]> scripts.mit.edu Git - autoinstalls/wordpress.git/commitdiff
WordPress 4.0 wordpress-4.0
authorEdward Z. Yang <ezyang@cs.stanford.edu>
Thu, 4 Sep 2014 22:16:38 +0000 (00:16 +0200)
committerEdward Z. Yang <ezyang@cs.stanford.edu>
Thu, 4 Sep 2014 22:16:38 +0000 (00:16 +0200)
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
508 files changed:
readme.html
wp-activate.php
wp-admin/about.php
wp-admin/admin-ajax.php
wp-admin/admin-header.php
wp-admin/admin-post.php
wp-admin/admin.php
wp-admin/async-upload.php
wp-admin/comment.php
wp-admin/credits.php
wp-admin/css/about-rtl.css
wp-admin/css/about.css
wp-admin/css/admin-menu-rtl.css
wp-admin/css/admin-menu.css
wp-admin/css/color-picker-rtl.css
wp-admin/css/color-picker-rtl.min.css
wp-admin/css/color-picker.css
wp-admin/css/color-picker.min.css
wp-admin/css/colors/_admin.scss
wp-admin/css/colors/_mixins.scss
wp-admin/css/colors/blue/colors-rtl.css
wp-admin/css/colors/blue/colors-rtl.min.css
wp-admin/css/colors/blue/colors.css
wp-admin/css/colors/blue/colors.min.css
wp-admin/css/colors/coffee/colors-rtl.css
wp-admin/css/colors/coffee/colors-rtl.min.css
wp-admin/css/colors/coffee/colors.css
wp-admin/css/colors/coffee/colors.min.css
wp-admin/css/colors/ectoplasm/colors-rtl.css
wp-admin/css/colors/ectoplasm/colors-rtl.min.css
wp-admin/css/colors/ectoplasm/colors.css
wp-admin/css/colors/ectoplasm/colors.min.css
wp-admin/css/colors/light/colors-rtl.css
wp-admin/css/colors/light/colors-rtl.min.css
wp-admin/css/colors/light/colors.css
wp-admin/css/colors/light/colors.min.css
wp-admin/css/colors/midnight/colors-rtl.css
wp-admin/css/colors/midnight/colors-rtl.min.css
wp-admin/css/colors/midnight/colors.css
wp-admin/css/colors/midnight/colors.min.css
wp-admin/css/colors/ocean/colors-rtl.css
wp-admin/css/colors/ocean/colors-rtl.min.css
wp-admin/css/colors/ocean/colors.css
wp-admin/css/colors/ocean/colors.min.css
wp-admin/css/colors/sunrise/colors-rtl.css
wp-admin/css/colors/sunrise/colors-rtl.min.css
wp-admin/css/colors/sunrise/colors.css
wp-admin/css/colors/sunrise/colors.min.css
wp-admin/css/common-rtl.css
wp-admin/css/common.css
wp-admin/css/customize-controls-rtl.css
wp-admin/css/customize-controls-rtl.min.css
wp-admin/css/customize-controls.css
wp-admin/css/customize-controls.min.css
wp-admin/css/customize-widgets-rtl.min.css
wp-admin/css/customize-widgets.min.css
wp-admin/css/dashboard-rtl.css
wp-admin/css/dashboard.css
wp-admin/css/deprecated-media-rtl.css
wp-admin/css/deprecated-media-rtl.min.css
wp-admin/css/deprecated-media.css
wp-admin/css/deprecated-media.min.css
wp-admin/css/edit-rtl.css
wp-admin/css/edit.css
wp-admin/css/forms-rtl.css
wp-admin/css/forms.css
wp-admin/css/ie-rtl.css
wp-admin/css/ie-rtl.min.css
wp-admin/css/ie.css
wp-admin/css/ie.min.css
wp-admin/css/install-rtl.css
wp-admin/css/install-rtl.min.css
wp-admin/css/install.css
wp-admin/css/install.min.css
wp-admin/css/l10n-rtl.css
wp-admin/css/l10n.css
wp-admin/css/list-tables-rtl.css
wp-admin/css/list-tables.css
wp-admin/css/login-rtl.css
wp-admin/css/login-rtl.min.css
wp-admin/css/login.css
wp-admin/css/login.min.css
wp-admin/css/media-rtl.css
wp-admin/css/media.css
wp-admin/css/nav-menus-rtl.css
wp-admin/css/nav-menus.css
wp-admin/css/revisions-rtl.css
wp-admin/css/revisions.css
wp-admin/css/themes-rtl.css
wp-admin/css/themes.css
wp-admin/css/widgets-rtl.css
wp-admin/css/widgets.css
wp-admin/css/wp-admin-rtl.min.css
wp-admin/css/wp-admin.min.css
wp-admin/custom-background.php
wp-admin/custom-header.php
wp-admin/customize.php
wp-admin/edit-form-advanced.php
wp-admin/edit-form-comment.php
wp-admin/edit-link-form.php
wp-admin/edit-tags.php
wp-admin/edit.php
wp-admin/freedoms.php
wp-admin/includes/admin.php
wp-admin/includes/ajax-actions.php
wp-admin/includes/bookmark.php
wp-admin/includes/class-wp-comments-list-table.php
wp-admin/includes/class-wp-filesystem-base.php
wp-admin/includes/class-wp-filesystem-direct.php
wp-admin/includes/class-wp-filesystem-ftpext.php
wp-admin/includes/class-wp-filesystem-ftpsockets.php
wp-admin/includes/class-wp-filesystem-ssh2.php
wp-admin/includes/class-wp-importer.php
wp-admin/includes/class-wp-links-list-table.php
wp-admin/includes/class-wp-list-table.php
wp-admin/includes/class-wp-media-list-table.php
wp-admin/includes/class-wp-ms-sites-list-table.php
wp-admin/includes/class-wp-ms-themes-list-table.php
wp-admin/includes/class-wp-ms-users-list-table.php
wp-admin/includes/class-wp-plugin-install-list-table.php
wp-admin/includes/class-wp-plugins-list-table.php
wp-admin/includes/class-wp-posts-list-table.php
wp-admin/includes/class-wp-terms-list-table.php
wp-admin/includes/class-wp-theme-install-list-table.php
wp-admin/includes/class-wp-themes-list-table.php
wp-admin/includes/class-wp-upgrader-skins.php
wp-admin/includes/class-wp-upgrader.php
wp-admin/includes/class-wp-users-list-table.php
wp-admin/includes/dashboard.php
wp-admin/includes/deprecated.php
wp-admin/includes/export.php
wp-admin/includes/file.php
wp-admin/includes/image-edit.php
wp-admin/includes/image.php
wp-admin/includes/import.php
wp-admin/includes/list-table.php
wp-admin/includes/media.php
wp-admin/includes/menu.php
wp-admin/includes/meta-boxes.php
wp-admin/includes/misc.php
wp-admin/includes/ms-deprecated.php
wp-admin/includes/ms.php
wp-admin/includes/nav-menu.php
wp-admin/includes/plugin-install.php
wp-admin/includes/plugin.php
wp-admin/includes/post.php
wp-admin/includes/revision.php
wp-admin/includes/schema.php
wp-admin/includes/screen.php
wp-admin/includes/taxonomy.php
wp-admin/includes/template.php
wp-admin/includes/theme.php
wp-admin/includes/translation-install.php [new file with mode: 0644]
wp-admin/includes/update-core.php
wp-admin/includes/update.php
wp-admin/includes/upgrade.php
wp-admin/includes/user.php
wp-admin/includes/widgets.php
wp-admin/install-helper.php
wp-admin/install.php
wp-admin/js/accordion.js
wp-admin/js/accordion.min.js
wp-admin/js/color-picker.js
wp-admin/js/color-picker.min.js
wp-admin/js/common.js
wp-admin/js/common.min.js
wp-admin/js/customize-controls.js
wp-admin/js/customize-controls.min.js
wp-admin/js/customize-widgets.js
wp-admin/js/customize-widgets.min.js
wp-admin/js/dashboard.js
wp-admin/js/dashboard.min.js
wp-admin/js/edit-comments.js
wp-admin/js/edit-comments.min.js
wp-admin/js/editor-expand.js [new file with mode: 0644]
wp-admin/js/editor-expand.min.js [new file with mode: 0644]
wp-admin/js/editor.js
wp-admin/js/editor.min.js
wp-admin/js/image-edit.js
wp-admin/js/image-edit.min.js
wp-admin/js/inline-edit-post.js
wp-admin/js/inline-edit-post.min.js
wp-admin/js/language-chooser.js [new file with mode: 0644]
wp-admin/js/language-chooser.min.js [new file with mode: 0644]
wp-admin/js/media-upload.js
wp-admin/js/media-upload.min.js
wp-admin/js/media.js
wp-admin/js/media.min.js
wp-admin/js/nav-menu.js
wp-admin/js/nav-menu.min.js
wp-admin/js/plugin-install.js
wp-admin/js/plugin-install.min.js
wp-admin/js/post.js
wp-admin/js/post.min.js
wp-admin/js/postbox.js
wp-admin/js/postbox.min.js
wp-admin/js/revisions.js
wp-admin/js/revisions.min.js
wp-admin/js/theme.js
wp-admin/js/theme.min.js
wp-admin/js/updates.js
wp-admin/js/updates.min.js
wp-admin/js/widgets.js
wp-admin/js/widgets.min.js
wp-admin/js/wp-fullscreen.js
wp-admin/js/wp-fullscreen.min.js
wp-admin/link-parse-opml.php
wp-admin/link.php
wp-admin/load-scripts.php
wp-admin/load-styles.php
wp-admin/maint/repair.php
wp-admin/media-upload.php
wp-admin/media.php
wp-admin/menu-header.php
wp-admin/menu.php
wp-admin/nav-menus.php
wp-admin/network.php
wp-admin/network/settings.php
wp-admin/network/site-info.php
wp-admin/network/site-new.php
wp-admin/network/site-settings.php
wp-admin/network/site-users.php
wp-admin/network/themes.php
wp-admin/network/upgrade.php
wp-admin/network/users.php
wp-admin/options-general.php
wp-admin/options.php
wp-admin/plugin-editor.php
wp-admin/plugin-install.php
wp-admin/plugins.php
wp-admin/post-new.php
wp-admin/post.php
wp-admin/press-this.php
wp-admin/revision.php
wp-admin/setup-config.php
wp-admin/theme-editor.php
wp-admin/theme-install.php
wp-admin/themes.php
wp-admin/update-core.php
wp-admin/update.php
wp-admin/upgrade.php
wp-admin/upload.php
wp-admin/user-edit.php
wp-admin/user-new.php
wp-admin/users.php
wp-admin/widgets.php
wp-comments-post.php
wp-config-sample.php
wp-content/plugins/akismet/akismet.php
wp-content/plugins/akismet/class.akismet-admin.php
wp-content/plugins/akismet/class.akismet.php
wp-content/plugins/akismet/readme.txt
wp-content/plugins/akismet/views/notice.php
wp-content/plugins/index.php
wp-content/themes/index.php
wp-content/themes/twentyfourteen/css/editor-style.css
wp-content/themes/twentyfourteen/css/ie.css
wp-content/themes/twentyfourteen/functions.php
wp-content/themes/twentyfourteen/genericons/Genericons-Regular.otf
wp-content/themes/twentyfourteen/genericons/README.txt
wp-content/themes/twentyfourteen/genericons/example.html
wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.eot
wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.svg
wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.ttf
wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.woff
wp-content/themes/twentyfourteen/genericons/genericons.css
wp-content/themes/twentyfourteen/header.php
wp-content/themes/twentyfourteen/image.php
wp-content/themes/twentyfourteen/inc/custom-header.php
wp-content/themes/twentyfourteen/inc/featured-content.php
wp-content/themes/twentyfourteen/inc/template-tags.php
wp-content/themes/twentyfourteen/inc/widgets.php
wp-content/themes/twentyfourteen/js/functions.js
wp-content/themes/twentyfourteen/languages/twentyfourteen.pot
wp-content/themes/twentyfourteen/style.css
wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.eot [deleted file]
wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.ttf [deleted file]
wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.woff [deleted file]
wp-content/themes/twentythirteen/fonts/genericons.css [deleted file]
wp-content/themes/twentythirteen/functions.php
wp-content/themes/twentythirteen/genericons/COPYING.txt [moved from wp-content/themes/twentythirteen/fonts/COPYING.txt with 100% similarity]
wp-content/themes/twentythirteen/genericons/Genericons-Regular.otf [new file with mode: 0644]
wp-content/themes/twentythirteen/genericons/LICENSE.txt [moved from wp-content/themes/twentythirteen/fonts/LICENSE.txt with 100% similarity]
wp-content/themes/twentythirteen/genericons/README.txt [new file with mode: 0644]
wp-content/themes/twentythirteen/genericons/example.html [new file with mode: 0644]
wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.eot [new file with mode: 0644]
wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.svg [moved from wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.svg with 56% similarity]
wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.ttf [new file with mode: 0644]
wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.woff [new file with mode: 0644]
wp-content/themes/twentythirteen/genericons/genericons.css [new file with mode: 0644]
wp-content/themes/twentythirteen/header.php
wp-content/themes/twentythirteen/inc/custom-header.php
wp-content/themes/twentythirteen/js/functions.js
wp-content/themes/twentythirteen/languages/twentythirteen.pot
wp-content/themes/twentythirteen/style.css
wp-content/themes/twentytwelve/functions.php
wp-content/themes/twentytwelve/header.php
wp-content/themes/twentytwelve/image.php
wp-content/themes/twentytwelve/js/navigation.js
wp-content/themes/twentytwelve/languages/twentytwelve.pot
wp-content/themes/twentytwelve/style.css
wp-cron.php
wp-includes/admin-bar.php
wp-includes/author-template.php
wp-includes/bookmark-template.php
wp-includes/bookmark.php
wp-includes/cache.php
wp-includes/canonical.php
wp-includes/capabilities.php
wp-includes/category-template.php
wp-includes/category.php
wp-includes/class-IXR.php
wp-includes/class-feed.php
wp-includes/class-http.php
wp-includes/class-oembed.php
wp-includes/class-simplepie.php
wp-includes/class-wp-admin-bar.php
wp-includes/class-wp-ajax-response.php
wp-includes/class-wp-customize-control.php
wp-includes/class-wp-customize-manager.php
wp-includes/class-wp-customize-panel.php [new file with mode: 0644]
wp-includes/class-wp-customize-section.php
wp-includes/class-wp-customize-setting.php
wp-includes/class-wp-customize-widgets.php
wp-includes/class-wp-editor.php
wp-includes/class-wp-embed.php
wp-includes/class-wp-error.php
wp-includes/class-wp-http-ixr-client.php
wp-includes/class-wp-image-editor-gd.php
wp-includes/class-wp-image-editor-imagick.php
wp-includes/class-wp-image-editor.php
wp-includes/class-wp-theme.php
wp-includes/class-wp-walker.php
wp-includes/class-wp-xmlrpc-server.php
wp-includes/class-wp.php
wp-includes/class.wp-dependencies.php
wp-includes/class.wp-scripts.php
wp-includes/class.wp-styles.php
wp-includes/comment-template.php
wp-includes/comment.php
wp-includes/cron.php
wp-includes/css/admin-bar-rtl.css
wp-includes/css/admin-bar-rtl.min.css
wp-includes/css/admin-bar.css
wp-includes/css/admin-bar.min.css
wp-includes/css/buttons-rtl.css
wp-includes/css/buttons-rtl.min.css
wp-includes/css/buttons.css
wp-includes/css/buttons.min.css
wp-includes/css/dashicons.css
wp-includes/css/dashicons.min.css
wp-includes/css/editor-rtl.css
wp-includes/css/editor-rtl.min.css
wp-includes/css/editor.css
wp-includes/css/editor.min.css
wp-includes/css/jquery-ui-dialog-rtl.css
wp-includes/css/jquery-ui-dialog-rtl.min.css
wp-includes/css/jquery-ui-dialog.css
wp-includes/css/jquery-ui-dialog.min.css
wp-includes/css/media-views-rtl.css
wp-includes/css/media-views-rtl.min.css
wp-includes/css/media-views.css
wp-includes/css/media-views.min.css
wp-includes/css/wp-auth-check-rtl.min.css
wp-includes/css/wp-auth-check.min.css
wp-includes/css/wp-pointer-rtl.css
wp-includes/css/wp-pointer-rtl.min.css
wp-includes/css/wp-pointer.css
wp-includes/css/wp-pointer.min.css
wp-includes/date.php
wp-includes/default-constants.php
wp-includes/default-widgets.php
wp-includes/deprecated.php
wp-includes/feed-atom-comments.php
wp-includes/feed-atom.php
wp-includes/feed-rdf.php
wp-includes/feed-rss2-comments.php
wp-includes/feed-rss2.php
wp-includes/feed.php
wp-includes/fonts/dashicons.eot
wp-includes/fonts/dashicons.svg
wp-includes/fonts/dashicons.ttf
wp-includes/fonts/dashicons.woff
wp-includes/formatting.php
wp-includes/functions.php
wp-includes/general-template.php
wp-includes/http.php
wp-includes/js/autosave.js
wp-includes/js/autosave.min.js
wp-includes/js/customize-base.js
wp-includes/js/customize-base.min.js
wp-includes/js/customize-loader.js
wp-includes/js/customize-loader.min.js
wp-includes/js/customize-preview-widgets.js
wp-includes/js/customize-preview-widgets.min.js
wp-includes/js/customize-preview.js
wp-includes/js/customize-preview.min.js
wp-includes/js/heartbeat.js
wp-includes/js/jquery/jquery.js
wp-includes/js/jquery/suggest.js
wp-includes/js/mce-view.js
wp-includes/js/mce-view.min.js
wp-includes/js/media-audiovideo.js
wp-includes/js/media-audiovideo.min.js
wp-includes/js/media-editor.js
wp-includes/js/media-editor.min.js
wp-includes/js/media-grid.js [new file with mode: 0644]
wp-includes/js/media-grid.min.js [new file with mode: 0644]
wp-includes/js/media-models.js
wp-includes/js/media-models.min.js
wp-includes/js/media-views.js
wp-includes/js/media-views.min.js
wp-includes/js/mediaelement/bigplay.svg
wp-includes/js/mediaelement/flashmediaelement.swf
wp-includes/js/mediaelement/mediaelement-and-player.min.js
wp-includes/js/mediaelement/mediaelementplayer.min.css
wp-includes/js/mediaelement/wp-mediaelement.css
wp-includes/js/mediaelement/wp-mediaelement.js
wp-includes/js/mediaelement/wp-playlist.js
wp-includes/js/shortcode.js
wp-includes/js/swfupload/swfupload.js
wp-includes/js/thickbox/thickbox.js
wp-includes/js/tinymce/plugins/charmap/plugin.js
wp-includes/js/tinymce/plugins/charmap/plugin.min.js
wp-includes/js/tinymce/plugins/colorpicker/plugin.js [new file with mode: 0644]
wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js [new file with mode: 0644]
wp-includes/js/tinymce/plugins/compat3x/plugin.js
wp-includes/js/tinymce/plugins/image/plugin.js
wp-includes/js/tinymce/plugins/image/plugin.min.js
wp-includes/js/tinymce/plugins/lists/plugin.js [new file with mode: 0644]
wp-includes/js/tinymce/plugins/lists/plugin.min.js [new file with mode: 0644]
wp-includes/js/tinymce/plugins/media/plugin.js
wp-includes/js/tinymce/plugins/media/plugin.min.js
wp-includes/js/tinymce/plugins/paste/plugin.js
wp-includes/js/tinymce/plugins/paste/plugin.min.js
wp-includes/js/tinymce/plugins/tabfocus/plugin.js
wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js
wp-includes/js/tinymce/plugins/textcolor/plugin.js
wp-includes/js/tinymce/plugins/textcolor/plugin.min.js
wp-includes/js/tinymce/plugins/wordpress/plugin.js
wp-includes/js/tinymce/plugins/wordpress/plugin.min.js
wp-includes/js/tinymce/plugins/wpautoresize/plugin.js [new file with mode: 0644]
wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js [new file with mode: 0644]
wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js
wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js
wp-includes/js/tinymce/plugins/wpfullscreen/plugin.min.js
wp-includes/js/tinymce/plugins/wplink/plugin.js
wp-includes/js/tinymce/plugins/wplink/plugin.min.js
wp-includes/js/tinymce/plugins/wpview/plugin.js
wp-includes/js/tinymce/plugins/wpview/plugin.min.js
wp-includes/js/tinymce/skins/lightgray/skin.ie7.min.css
wp-includes/js/tinymce/skins/lightgray/skin.min.css
wp-includes/js/tinymce/skins/wordpress/images/more.png
wp-includes/js/tinymce/skins/wordpress/wp-content.css
wp-includes/js/tinymce/themes/modern/theme.js
wp-includes/js/tinymce/themes/modern/theme.min.js
wp-includes/js/tinymce/tinymce.min.js
wp-includes/js/tinymce/wp-mce-help.php
wp-includes/js/tinymce/wp-tinymce.js.gz
wp-includes/js/tinymce/wp-tinymce.php
wp-includes/js/utils.js
wp-includes/js/utils.min.js
wp-includes/js/wplink.js
wp-includes/js/wplink.min.js
wp-includes/kses.php
wp-includes/l10n.php
wp-includes/link-template.php
wp-includes/load.php
wp-includes/media-template.php
wp-includes/media.php
wp-includes/meta.php
wp-includes/ms-blogs.php
wp-includes/ms-default-constants.php
wp-includes/ms-default-filters.php
wp-includes/ms-functions.php
wp-includes/ms-load.php
wp-includes/ms-settings.php
wp-includes/nav-menu-template.php
wp-includes/nav-menu.php
wp-includes/option.php
wp-includes/pluggable.php
wp-includes/plugin.php
wp-includes/pomo/mo.php
wp-includes/pomo/translations.php
wp-includes/post-template.php
wp-includes/post.php
wp-includes/query.php
wp-includes/revision.php
wp-includes/rewrite.php
wp-includes/rss.php
wp-includes/script-loader.php
wp-includes/session.php [new file with mode: 0644]
wp-includes/shortcodes.php
wp-includes/taxonomy.php
wp-includes/theme-compat/comments-popup.php
wp-includes/theme.php
wp-includes/update.php
wp-includes/user.php
wp-includes/version.php
wp-includes/widgets.php
wp-includes/wp-db.php
wp-includes/wp-diff.php
wp-load.php
wp-login.php
wp-mail.php
wp-settings.php
wp-signup.php

index 914fb2a4a07736e6a3db874f0f962f9c185a4eaa..48f59ef8ee8ba5f14cefb392a05049c6453e06c3 100644 (file)
@@ -9,7 +9,7 @@
 <body>
 <h1 id="logo">
        <a href="https://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a>
 <body>
 <h1 id="logo">
        <a href="https://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a>
-       <br /> Version 3.9.2
+       <br /> Version 4.0
 </h1>
 <p style="text-align: center">Semantic Personal Publishing Platform</p>
 
 </h1>
 <p style="text-align: center">Semantic Personal Publishing Platform</p>
 
index 5e9be6ea828a4566babf4670d813b410c9b1986b..a796cc5e48abf06a8602e39ad4656f4f2d2bfee2 100644 (file)
@@ -84,7 +84,7 @@ get_header();
        <?php } else {
 
                $key = !empty($_GET['key']) ? $_GET['key'] : $_POST['key'];
        <?php } else {
 
                $key = !empty($_GET['key']) ? $_GET['key'] : $_POST['key'];
-               $result = wpmu_activate_signup($key);
+               $result = wpmu_activate_signup( $key );
                if ( is_wp_error($result) ) {
                        if ( 'already_active' == $result->get_error_code() || 'blog_taken' == $result->get_error_code() ) {
                            $signup = $result->get_error_data();
                if ( is_wp_error($result) ) {
                        if ( 'already_active' == $result->get_error_code() || 'blog_taken' == $result->get_error_code() ) {
                            $signup = $result->get_error_data();
@@ -105,18 +105,17 @@ get_header();
                            echo '<p>'.$result->get_error_message().'</p>';
                        }
                } else {
                            echo '<p>'.$result->get_error_message().'</p>';
                        }
                } else {
-                       extract($result);
-                       $url = get_blogaddress_by_id( (int) $blog_id);
-                       $user = get_userdata( (int) $user_id);
+                       $url = isset( $result['blog_id'] ) ? get_blogaddress_by_id( (int) $result['blog_id'] ) : '';
+                       $user = get_userdata( (int) $result['user_id'] );
                        ?>
                        <h2><?php _e('Your account is now active!'); ?></h2>
 
                        <div id="signup-welcome">
                                <p><span class="h3"><?php _e('Username:'); ?></span> <?php echo $user->user_login ?></p>
                        ?>
                        <h2><?php _e('Your account is now active!'); ?></h2>
 
                        <div id="signup-welcome">
                                <p><span class="h3"><?php _e('Username:'); ?></span> <?php echo $user->user_login ?></p>
-                               <p><span class="h3"><?php _e('Password:'); ?></span> <?php echo $password; ?></p>
+                               <p><span class="h3"><?php _e('Password:'); ?></span> <?php echo $result['password']; ?></p>
                        </div>
 
                        </div>
 
-                       <?php if ( $url != network_home_url('', 'http') ) : ?>
+                       <?php if ( $url && $url != network_home_url( '', 'http' ) ) : ?>
                                <p class="view"><?php printf( __('Your account is now activated. <a href="%1$s">View your site</a> or <a href="%2$s">Log in</a>'), $url, $url . 'wp-login.php' ); ?></p>
                        <?php else: ?>
                                <p class="view"><?php printf( __('Your account is now activated. <a href="%1$s">Log in</a> or go back to the <a href="%2$s">homepage</a>.' ), network_site_url('wp-login.php', 'login'), network_home_url() ); ?></p>
                                <p class="view"><?php printf( __('Your account is now activated. <a href="%1$s">View your site</a> or <a href="%2$s">Log in</a>'), $url, $url . 'wp-login.php' ); ?></p>
                        <?php else: ?>
                                <p class="view"><?php printf( __('Your account is now activated. <a href="%1$s">Log in</a> or go back to the <a href="%2$s">homepage</a>.' ), network_site_url('wp-login.php', 'login'), network_home_url() ); ?></p>
@@ -129,4 +128,4 @@ get_header();
        var key_input = document.getElementById('key');
        key_input && key_input.focus();
 </script>
        var key_input = document.getElementById('key');
        key_input && key_input.focus();
 </script>
-<?php get_footer(); ?>
+<?php get_footer();
index f5c786012f55904ee476352247f917957e251c72..2e2ba5cf388dbf0e9ec4251cddb43654afcd2943 100644 (file)
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
 wp_enqueue_style( 'wp-mediaelement' );
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
 wp_enqueue_style( 'wp-mediaelement' );
-wp_enqueue_script( 'wp-playlist' );
-add_action( 'admin_footer', 'wp_underscore_playlist_templates', 0 );
+wp_enqueue_script( 'wp-mediaelement' );
+wp_localize_script( 'mediaelement', '_wpmejsSettings', array(
+       'pluginPath' => includes_url( 'js/mediaelement/', 'relative' ),
+       'pauseOtherPlayers' => ''
+) );
 
 $title = __( 'About' );
 
 
 $title = __( 'About' );
 
@@ -24,7 +27,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 
 <h1><?php printf( __( 'Welcome to WordPress&nbsp;%s' ), $display_version ); ?></h1>
 
 
 <h1><?php printf( __( 'Welcome to WordPress&nbsp;%s' ), $display_version ); ?></h1>
 
-<div class="about-text"><?php printf( __( 'Thank you for updating! WordPress %s has lots of refinements we think you&#8217;ll love.' ), $display_version ); ?></div>
+<div class="about-text"><?php printf( __( 'Thank you for updating! WordPress %s brings you a smoother writing and management experience.' ), $display_version ); ?></div>
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
@@ -38,219 +41,125 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
        </a>
 </h2>
 
        </a>
 </h2>
 
-<div class="changelog point-releases">
-       <h3><?php echo _n( 'Maintenance and Security Release', 'Maintenance and Security Releases', 2 ); ?></h3>
-       <p><?php printf( _n( '<strong>Version %1$s</strong> addressed a security issue.',
-         '<strong>Version %1$s</strong> addressed some security issues.', 6 ), '3.9.2', number_format_i18n( 6 ) ); ?>
-               <?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.9.2' ); ?>
-       </p>
-       <p><?php printf( _n( '<strong>Version %1$s</strong> addressed %2$s bug.',
-         '<strong>Version %1$s</strong> addressed %2$s bugs.', 34 ), '3.9.1', number_format_i18n( 34 ) ); ?>
-               <?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.9.1' ); ?>
-       </p>
-</div>
-
 <div class="changelog">
        <div class="about-overview">
 <div class="changelog">
        <div class="about-overview">
-       <?php
-       if ( ! is_ssl() && ( $locale = get_locale() ) && 'en_' === substr( $locale, 0, 3 ) ) : ?>
-               <embed src="//v0.wordpress.com/player.swf?v=1.03" type="application/x-shockwave-flash" width="640" height="360" wmode="direct" seamlesstabbing="true" allowfullscreen="true" allowscriptaccess="always" overstretch="true" flashvars="guid=sAiXhCfV&amp;isDynamicSeeking=true" title=""></embed>
-       <?php else : ?>
-               <img class="about-overview-img" src="//s.w.org/images/core/3.9/overview.png?0" />
-       <?php endif; ?>
+               <?php if ( ( $locale = get_locale() ) && 'en_' === substr( $locale, 0, 3 ) ) : ?>
+                       <embed src="//v.wordpress.com/bUdzKMro" type="application/x-shockwave-flash" width="640" height="360" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"></embed>
+               <?php else : ?>
+                       <img class="about-overview-img" src="//s.w.org/images/core/4.0/wp40.png" width="640" height="360" />
+               <?php endif; ?>
        </div>
        </div>
-       <h2 class="about-headline-callout"><?php _e( 'A smoother media editing&nbsp;experience' ); ?></h2>
-       <div class="feature-section col three-col">
+
+       <hr />
+
+       <div class="feature-section col two-col">
                <div class="col-1">
                <div class="col-1">
-                       <img src="//s.w.org/images/core/3.9/editor.jpg?0" />
-                       <h4><?php _e( 'Improved visual editing' ); ?></h4>
-                       <p><?php _e( 'The updated visual editor has improved speed, accessibility, and mobile support.' );
-                               echo ' ' . __( 'You can paste into the visual editor from your word processor without wasting time to clean up messy styling. (Yeah, we&#8217;re talking about you, Microsoft Word.)' ); ?></p>
+                       <h3><?php _e( 'Manage your media with style' ); ?></h3>
+                       <p><?php _e( 'Explore your uploads in a beautiful, endless grid. A new details preview makes viewing and editing any amount of media in sequence a snap.' ); ?></p>
                </div>
                </div>
-               <div class="col-2">
-                       <img src="//s.w.org/images/core/3.9/image.gif?0" />
-                       <h4><?php _e( 'Edit images easily' ); ?></h4>
-                       <p><?php _e( 'With quicker access to crop and rotation tools, it&#8217;s now much easier to edit your images while editing posts. You can also scale images directly in the editor to find just the right fit.' ); ?></p>
+               <div class="col-2 last-feature">
+                       <img src="//s.w.org/images/core/4.0/media.jpg" />
                </div>
                </div>
-               <div class="col-3 last-feature">
-                       <img src="//s.w.org/images/core/3.9/drop.jpg?0" />
-                       <h4><?php _e( 'Drag and drop your images' ); ?></h4>
-                       <p><?php _e( 'Uploading your images is easier than ever. Just grab them from your desktop and drop them onto the editor.' ); ?></p>
+       </div>
+
+       <hr />
+
+       <div class="feature-section col two-col">
+               <div class="col-1">
+                       <div class="about-video about-video-embed">
+                               <?php
+                                       echo wp_video_shortcode( array(
+                                               'mp4'      => '//s.w.org/images/core/4.0/embed.mp4',
+                                               'ogv'      => '//s.w.org/images/core/4.0/embed.ogv',
+                                               'webm'      => '//s.w.org/images/core/4.0/embed.webm',
+                                               'loop'     => true,
+                                               'autoplay' => true,
+                                               'width'    => 500,
+                                               'height'   => 352
+                                       ) );
+                               ?>
+                       </div>
+               </div>
+               <div class="col-2 last-feature">
+                       <h3><?php _e( 'Working with embeds has never been easier' ); ?></h3>
+                       <p><?php _e( 'Paste in a YouTube URL on a new line, and watch it magically become an embedded video. Now try it with a tweet. Oh yeah &#8212; embedding has become a visual experience. The editor shows a true preview of your embedded content, saving you time and giving you confidence.' ); ?></p>
+                       <p><?php _e( 'We&#8217;ve expanded the services supported by default, too &#8212; you can embed videos from CollegeHumor, playlists from YouTube, and talks from TED. <a href="http://codex.wordpress.org/Embeds">Check out all of the embeds</a> that WordPress supports.' ); ?></p>
                </div>
        </div>
 
                </div>
        </div>
 
-       <hr>
+       <hr />
 
        <div class="feature-section col two-col">
                <div class="col-1">
 
        <div class="feature-section col two-col">
                <div class="col-1">
-                       <img src="//s.w.org/images/core/3.9/gallery.jpg?0" />
-                       <h4><?php _e( 'Gallery previews' ); ?></h4>
-                       <p><?php _e( 'Galleries display a beautiful grid of images right in the editor, just like they do in your published post.' ); ?></p>
+                       <h3><?php _e( 'Focus on your content' ); ?></h3>
+                       <p><?php _e( 'Writing and editing is smoother and more immersive with an editor that expands to fit your content as you write, and keeps the formatting tools available at all times.' ); ?></p>
                </div>
                <div class="col-2 last-feature">
                </div>
                <div class="col-2 last-feature">
-                       <div class="wp-playlist wp-audio-playlist wp-playlist-light">
-                               <div class="wp-playlist-current-item"></div>
-                               <audio controls="controls" preload="metadata"></audio>
-                               <div class="wp-playlist-next"></div>
-                               <div class="wp-playlist-prev"></div>
+                       <div class="about-video about-video-focus">
                                <?php
                                <?php
-                               $audio_icon_js = esc_js( includes_url( 'images/media/audio.png' ) );
-                               $wp_host = '//s.w.org/images/core/3.9/';
+                                       echo wp_video_shortcode( array(
+                                               'mp4'      => '//s.w.org/images/core/4.0/focus.mp4',
+                                               'ogv'      => '//s.w.org/images/core/4.0/focus.ogv',
+                                               'webm'      => '//s.w.org/images/core/4.0/focus.webm',
+                                               'loop'     => true,
+                                               'autoplay' => true,
+                                               'width'    => 500,
+                                               'height'   => 281
+                                       ) );
                                ?>
                                ?>
-
-                               <script type="application/json">{
-                                       "type":"audio",
-                                       "tracklist":true,
-                                       "tracknumbers":true,
-                                       "images":true,
-                                       "artists":true,
-                                       "tracks":[{
-                                               "src":"<?php echo $wp_host ?>AintMisbehavin.mp3",
-                                               "type":"audio\/mpeg","title":"Ain't Misbehavin'","caption":"","description":"",
-                                               "meta":{
-                                                       "artist":"Louis Armstrong & His Orchestra",
-                                                       "album":"78 RPMs & Cylinder Recordings",
-                                                       "genre":"Jazz",
-                                                       "length_formatted":"3:21"
-                                               },
-                                               "image":{"src":"//s.w.org/images/core/3.9/louis.jpg","width":308,"height":240},
-                                               "thumb":{"src":"//s.w.org/images/core/3.9/louis.jpg","width":308,"height":240}
-                                       },
-                                       {
-                                               "src":"<?php echo $wp_host ?>JellyRollMorton-BuddyBoldensBlues.mp3",
-                                               "type":"audio\/mpeg","title":"Buddy Bolden's Blues","caption":"","description":"",
-                                               "meta":{
-                                                       "artist":"Jelly Roll Morten",
-                                                       "album":"78 RPMs & Cylinder Recordings",
-                                                       "genre":"Jazz",
-                                                       "length_formatted":"2:09"
-                                               },
-                                               "image":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64},
-                                               "thumb":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64}
-                                       },
-                                       {
-                                               "src":"<?php echo $wp_host ?>DavenportBlues.mp3",
-                                               "type":"audio\/mpeg","title":"Davenport Blues","caption":"","description":"",
-                                               "meta":{
-                                                       "artist":"Bix Beiderbecke & His Rhythm Jugglers",
-                                                       "album":"78 RPMs & Cylinder Recordings",
-                                                       "genre":"Jazz",
-                                                       "length_formatted":"2:48"
-                                               },
-                                               "image":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64},
-                                               "thumb":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64}
-                                       },
-                                       {
-                                               "src":"<?php echo $wp_host ?>WolverineBlues.mp3",
-                                               "type":"audio\/mpeg","title":"Wolverine Blues","caption":"","description":"",
-                                               "meta":{
-                                                       "artist":"Benny Goodman's Boys",
-                                                       "album":"78 RPMs & Cylinder Recordings",
-                                                       "genre":"Jazz",
-                                                       "length_formatted":"2:55"
-                                               },
-                                               "image":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64},
-                                               "thumb":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64}
-                                       },
-                                       {
-                                               "src":"<?php echo $wp_host ?>Louisiana_Five-Dixie_Blues-1919.mp3",
-                                               "type":"audio\/mpeg","title":"Dixie Blues","caption":"","description":"",
-                                               "meta":{
-                                                       "artist":"Louisiana Five",
-                                                       "album":"78 RPMs & Cylinder Recordings",
-                                                       "genre":"Jazz",
-                                                       "length_formatted":"3:01"
-                                               },
-                                               "image":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64},
-                                               "thumb":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64}
-                                       },
-                                       {
-                                               "src":"<?php echo $wp_host ?>Johnny_Hodges_Orchestra-Squaty_Roo-1941.mp3",
-                                               "type":"audio\/mpeg","title":"Squaty Roo","caption":"","description":"",
-                                               "meta":{
-                                                       "artist":"Johnny Hodges Orchestra",
-                                                       "album":"78 RPMs & Cylinder Recordings",
-                                                       "genre":"Jazz",
-                                                       "length_formatted":"2:24"
-                                               },
-                                               "image":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64},
-                                               "thumb":{"src":"<?php echo $audio_icon_js ?>","width":48,"height":64}
-                                       }]
-                               }</script>
                        </div>
                        </div>
-                       <h4><?php _e( 'Do more with audio and video' ); ?></h4>
-                       <p><?php _e( 'Images have galleries; now we&#8217;ve added simple audio and video playlists, so you can showcase your music and clips.' ); ?></p>
                </div>
        </div>
                </div>
        </div>
-</div>
 
 
-<hr>
+       <hr />
 
 
-<div class="changelog customize">
        <div class="feature-section col two-col">
        <div class="feature-section col two-col">
-               <div>
-                       <?php
-                               echo wp_video_shortcode( array(
-                                       'mp4'      => '//s.w.org/images/core/3.9/widgets.mp4',
-                                       'ogv'      => '//s.w.org/images/core/3.9/widgets.ogv',
-                                       'webm'     => '//s.w.org/images/core/3.9/widgets.webm',
-                                       'loop'     => true,
-                                       'autoplay' => true,
-                                       'width'    => 499
-                               ) );
-                       ?>
-                       <h4><?php _e( 'Live widget and header previews' ); ?></h4>
-                       <p><?php _e( 'Add, edit, and rearrange your site&#8217;s widgets right in the theme customizer. No &#8220;save and surprise&#8221; &mdash; preview your changes live and only save them when you&#8217;re ready.' ); ?></p>
-                       <p><?php _e( 'The improved header image tool also lets you upload, crop, and manage headers while customizing your theme.' ); ?></p>
+               <div class="col-1">
+                       <img src="//s.w.org/images/core/4.0/plugins.png" />
                </div>
                </div>
-               <div class="last-feature">
-                       <img src="//s.w.org/images/core/3.9/theme.jpg?0" />
-                       <h4><?php _e( 'Stunning new theme browser' ); ?></h4>
-                       <p><?php _e( 'Looking for a new theme should be easy and fun. Lose yourself in the boundless supply of free WordPress.org themes with the beautiful new theme browser.' ); ?></p>
-               <?php if ( current_user_can( 'install_themes' ) ) { ?>
-                       <p><a href="<?php echo network_admin_url( 'theme-install.php' ); ?>" class="button button-large button-primary"><?php _e( 'Browse Themes' ); ?></a></p>
-               <?php } ?>
+               <div class="col-2 last-feature">
+                       <h3 class="higher"><?php _e( 'Finding the right plugin' ); ?></h3>
+                       <p><?php _e( 'There are more than 30,000 free and open source plugins in the WordPress plugin directory. WordPress 4.0 makes it easier to find the right one for your needs, with new metrics, improved search, and a more visual browsing experience.' ); ?></p>
+                       <a href="<?php echo admin_url( 'plugin-install.php' ); ?>" class="button button-large button-primary"><?php _e( 'Browse plugins' ); ?></a>
                </div>
        </div>
 </div>
 
                </div>
        </div>
 </div>
 
-<hr>
+<hr />
 
 <div class="changelog under-the-hood">
        <h3><?php _e( 'Under the Hood' ); ?></h3>
 
        <div class="feature-section col three-col">
                <div>
 
 <div class="changelog under-the-hood">
        <h3><?php _e( 'Under the Hood' ); ?></h3>
 
        <div class="feature-section col three-col">
                <div>
-                       <h4><?php _e( 'Semantic Captions and Galleries' ); ?></h4>
-                       <p><?php _e( 'Theme developers have new options for images and galleries that use intelligent HTML5 markup.' ); ?></p>
-
-                       <h4><?php _e( 'Inline Code Documentation' ); ?></h4>
-                       <p><?php _e( 'Every action and filter hook in WordPress is now documented, along with expanded documentation for the media manager and customizer APIs.' ); ?></p>
+               <h4><?php _e( 'Customizer API' ); ?></h4>
+                       <p><?php _e( 'Contexts, panels, and a wider array of controls are now supported in the customizer.' ); ?></p>
                </div>
                <div>
                </div>
                <div>
-                       <h4><?php _e( 'External Libraries' ); ?></h4>
-                       <p><?php _e( 'Updated libraries: TinyMCE&nbsp;4, jQuery&nbsp;1.11, Backbone&nbsp;1.1, Underscore&nbsp;1.6, Plupload&nbsp;2, MediaElement&nbsp;2.14, Masonry&nbsp;3.' ); ?></p>
-
-                       <h4><?php _e( 'Improved Database Layer' ); ?></h4>
-                       <p><?php _e( 'Database connections are now more fault-resistant and have improved compatibility with PHP 5.5 and MySQL 5.6.' ); ?></p>
+                       <h4><?php _e( 'Query Ordering' ); ?></h4>
+                       <p><?php
+                               /* translators: 1: "ORDER BY" (SQL), 2: "WP_Query" */
+                               printf( __( 'Developers have more flexibility creating %1$s clauses through %2$s.' ), '<code>ORDER&nbsp;BY</code>', '<code>WP_Query</code>' );
+                       ?></p>
                </div>
                <div class="last-feature">
                </div>
                <div class="last-feature">
-                       <h4><?php _e( 'New Utility Functions' ); ?></h4>
-                       <p><?php _e( 'Identify a hook in progress with <code>doing_action()</code> and <code>doing_filter()</code>, and manipulate custom image sizes with <code>has_image_size()</code> and <code>remove_image_size()</code>.' ); ?></p>
-                       <p><?php _e( 'Plugins and themes registering custom image sizes can now register suggested cropping points. For example, prevent heads from being cropped out of photos with a top-center crop.' ); ?></p>
+                       <h4><?php _e( 'External Libraries' ); ?></h4>
+                       <p><?php _e( 'Updated libraries: TinyMCE&nbsp;4.1.3, jQuery&nbsp;1.11.1, MediaElement&nbsp;2.15.' ); ?></p>
                </div>
                </div>
-</div>
+       </div>
+
+       <hr />
 
 
-<hr>
+       <div class="return-to-dashboard">
+               <?php if ( current_user_can( 'update_core' ) && isset( $_GET['updated'] ) ) : ?>
+               <a href="<?php echo esc_url( self_admin_url( 'update-core.php' ) ); ?>"><?php
+                       is_multisite() ? _e( 'Return to Updates' ) : _e( 'Return to Dashboard &rarr; Updates' );
+               ?></a> |
+               <?php endif; ?>
+               <a href="<?php echo esc_url( self_admin_url() ); ?>"><?php
+                       is_blog_admin() ? _e( 'Go to Dashboard &rarr; Home' ) : _e( 'Go to Dashboard' ); ?></a>
+       </div>
 
 
-<div class="return-to-dashboard">
-       <?php if ( current_user_can( 'update_core' ) && isset( $_GET['updated'] ) ) : ?>
-       <a href="<?php echo esc_url( self_admin_url( 'update-core.php' ) ); ?>"><?php
-               is_multisite() ? _e( 'Return to Updates' ) : _e( 'Return to Dashboard &rarr; Updates' );
-       ?></a> |
-       <?php endif; ?>
-       <a href="<?php echo esc_url( self_admin_url() ); ?>"><?php
-               is_blog_admin() ? _e( 'Go to Dashboard &rarr; Home' ) : _e( 'Go to Dashboard' ); ?></a>
 </div>
 
 </div>
 </div>
 
 </div>
index f7aae0ff52b46ff41c4d468f21feea4fcbc9fda5..60f1778cd1a660ac5c1adde0208fd459c54c54c0 100644 (file)
@@ -14,7 +14,9 @@
  * @since 2.1.0
  */
 define( 'DOING_AJAX', true );
  * @since 2.1.0
  */
 define( 'DOING_AJAX', true );
-define( 'WP_ADMIN', true );
+if ( ! defined( 'WP_ADMIN' ) ) {
+       define( 'WP_ADMIN', true );
+}
 
 /** Load WordPress Bootstrap */
 require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
 
 /** Load WordPress Bootstrap */
 require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
@@ -58,7 +60,8 @@ $core_actions_post = array(
        'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment',
        'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor',
        'send-attachment-to-editor', 'save-attachment-order', 'heartbeat', 'get-revision-diffs',
        'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment',
        'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor',
        'send-attachment-to-editor', 'save-attachment-order', 'heartbeat', 'get-revision-diffs',
-       'save-user-color-scheme', 'update-widget', 'query-themes',
+       'save-user-color-scheme', 'update-widget', 'query-themes', 'parse-embed', 'set-attachment-thumbnail',
+       'parse-media-shortcode'
 );
 
 // Register core Ajax calls.
 );
 
 // Register core Ajax calls.
index 10349750ebec4e8e9cd4cd86d2187bde4f190c1c..c9d49d2b1b5418359d2c5076c301f020e26c51fd 100644 (file)
@@ -177,8 +177,9 @@ $admin_body_class .= ' no-customize-support no-svg';
 
 <?php
 // Make sure the customize body classes are correct as early as possible.
 
 <?php
 // Make sure the customize body classes are correct as early as possible.
-if ( current_user_can( 'edit_theme_options' ) )
+if ( current_user_can( 'customize' ) ) {
        wp_customize_support_script();
        wp_customize_support_script();
+}
 ?>
 
 <div id="wpwrap">
 ?>
 
 <div id="wpwrap">
index 710399407382fa483e296d32adcc6eab7a2a070e..f05cdf4e2d2ba2de8b1dfb32c95d15af80bd5015 100644 (file)
@@ -9,7 +9,9 @@
  */
 
 /** We are located in WordPress Administration Screens */
  */
 
 /** We are located in WordPress Administration Screens */
-define('WP_ADMIN', true);
+if ( ! defined( 'WP_ADMIN' ) ) {
+       define( 'WP_ADMIN', true );
+}
 
 if ( defined('ABSPATH') )
        require_once(ABSPATH . 'wp-load.php');
 
 if ( defined('ABSPATH') )
        require_once(ABSPATH . 'wp-load.php');
@@ -26,20 +28,44 @@ nocache_headers();
 /** This action is documented in wp-admin/admin.php */
 do_action( 'admin_init' );
 
 /** This action is documented in wp-admin/admin.php */
 do_action( 'admin_init' );
 
-$action = 'admin_post';
+$action = empty( $_REQUEST['action'] ) ? '' : $_REQUEST['action'];
 
 
-if ( !wp_validate_auth_cookie() )
-       $action .= '_nopriv';
-
-if ( !empty($_REQUEST['action']) )
-       $action .= '_' . $_REQUEST['action'];
-
-/**
- * Fires the requested handler action.
- *
- * admin_post_nopriv_{$_REQUEST['action']} is called for not-logged-in users.
- * admin_post_{$_REQUEST['action']} is called for logged-in users.
- *
- * @since 2.6.0
- */
-do_action( $action );
+if ( ! wp_validate_auth_cookie() ) {
+       if ( empty( $action ) ) {
+               /**
+                * Fires on a non-authenticated admin post request where no action was supplied.
+                *
+                * @since 2.6.0
+                */
+               do_action( 'admin_post_nopriv' );
+       } else {
+               /**
+                * Fires on a non-authenticated admin post request for the given action.
+                *
+                * The dynamic portion of the hook name, $action, refers to the given
+                * request action.
+                *
+                * @since 2.6.0
+                */
+               do_action( "admin_post_nopriv_{$action}" );
+       }
+} else {
+       if ( empty( $action ) ) {
+               /**
+                * Fires on an authenticated admin post request where no action was supplied.
+                *
+                * @since 2.6.0
+                */
+               do_action( 'admin_post' );
+       } else {
+               /**
+                * Fires on an authenticated admin post request for the given action.
+                *
+                * The dynamic portion of the hook name, $action, refers to the given
+                * request action.
+                *
+                * @since 2.6.0
+                */
+               do_action( "admin_post_{$action}" );
+       }
+}
index a617d113f767ca6dc4f72b34b7705c7755eb13e5..65e17af9ce441f6ff487290c2595f0e80e0f5445 100644 (file)
@@ -11,8 +11,9 @@
  *
  * @since 2.3.2
  */
  *
  * @since 2.3.2
  */
-if ( ! defined('WP_ADMIN') )
-       define('WP_ADMIN', true);
+if ( ! defined( 'WP_ADMIN' ) ) {
+       define( 'WP_ADMIN', true );
+}
 
 if ( ! defined('WP_NETWORK_ADMIN') )
        define('WP_NETWORK_ADMIN', false);
 
 if ( ! defined('WP_NETWORK_ADMIN') )
        define('WP_NETWORK_ADMIN', false);
@@ -50,8 +51,8 @@ if ( get_option('db_upgraded') ) {
         * Filter whether to attempt to perform the multisite DB upgrade routine.
         *
         * In single site, the user would be redirected to wp-admin/upgrade.php.
         * Filter whether to attempt to perform the multisite DB upgrade routine.
         *
         * In single site, the user would be redirected to wp-admin/upgrade.php.
-        * In multisite, it is automatically fired, but only when this filter
-        * returns true.
+        * In multisite, the DB upgrade routine is automatically fired, but only
+        * when this filter returns true.
         *
         * If the network is 50 sites or less, it will run every time. Otherwise,
         * it will throttle itself to reduce load.
         *
         * If the network is 50 sites or less, it will run every time. Otherwise,
         * it will throttle itself to reduce load.
@@ -150,7 +151,8 @@ if ( isset($plugin_page) ) {
                $the_parent = $pagenow;
        if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) {
                $page_hook = get_plugin_page_hook($plugin_page, $plugin_page);
                $the_parent = $pagenow;
        if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) {
                $page_hook = get_plugin_page_hook($plugin_page, $plugin_page);
-               // backwards compatibility for plugins using add_management_page
+
+               // Backwards compatibility for plugins using add_management_page().
                if ( empty( $page_hook ) && 'edit.php' == $pagenow && '' != get_plugin_page_hook($plugin_page, 'tools.php') ) {
                        // There could be plugin specific params on the URL, so we need the whole query string
                        if ( !empty($_SERVER[ 'QUERY_STRING' ]) )
                if ( empty( $page_hook ) && 'edit.php' == $pagenow && '' != get_plugin_page_hook($plugin_page, 'tools.php') ) {
                        // There could be plugin specific params on the URL, so we need the whole query string
                        if ( !empty($_SERVER[ 'QUERY_STRING' ]) )
@@ -204,8 +206,7 @@ if ( isset($plugin_page) ) {
                /**
                 * Used to call the registered callback for a plugin screen.
                 *
                /**
                 * Used to call the registered callback for a plugin screen.
                 *
-                * @access private
-                *
+                * @internal
                 * @since 1.5.0
                 */
                do_action( $page_hook );
                 * @since 1.5.0
                 */
                do_action( $page_hook );
@@ -289,8 +290,9 @@ if ( isset($plugin_page) ) {
         *
         * @param bool false Whether to force data to be filtered through kses. Default false.
         */
         *
         * @param bool false Whether to force data to be filtered through kses. Default false.
         */
-       if ( apply_filters( 'force_filtered_html_on_import', false ) )
+       if ( apply_filters( 'force_filtered_html_on_import', false ) ) {
                kses_init_filters();  // Always filter imported data with kses on multisite.
                kses_init_filters();  // Always filter imported data with kses on multisite.
+       }
 
        call_user_func($wp_importers[$importer][2]);
 
 
        call_user_func($wp_importers[$importer][2]);
 
@@ -308,13 +310,17 @@ if ( isset($plugin_page) ) {
         *
         * The dynamic portion of the hook name, $pagenow, is a global variable
         * referring to the filename of the current page, such as 'admin.php',
         *
         * The dynamic portion of the hook name, $pagenow, is a global variable
         * referring to the filename of the current page, such as 'admin.php',
-        * 'post-new.php' etc. A complete hook for the latter would be 'load-post-new.php'.
+        * 'post-new.php' etc. A complete hook for the latter would be
+        * 'load-post-new.php'.
         *
         * @since 2.1.0
         */
        do_action( 'load-' . $pagenow );
         *
         * @since 2.1.0
         */
        do_action( 'load-' . $pagenow );
-       // Backwards compatibility with old load-page-new.php, load-page.php,
-       // and load-categories.php actions.
+
+       /*
+        * The following hooks are fired to ensure backward compatibility.
+        * In all other cases, 'load-' . $pagenow should be used instead.
+        */
        if ( $typenow == 'page' ) {
                if ( $pagenow == 'post-new.php' )
                        do_action( 'load-page-new.php' );
        if ( $typenow == 'page' ) {
                if ( $pagenow == 'post-new.php' )
                        do_action( 'load-page-new.php' );
index e43fb58449d19265e053741b7576e96f031c146c..add616495411022343503d99d8ebcfd0efab68b8 100644 (file)
@@ -10,7 +10,9 @@ if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action']
        define( 'DOING_AJAX', true );
 }
 
        define( 'DOING_AJAX', true );
 }
 
-define('WP_ADMIN', true);
+if ( ! defined( 'WP_ADMIN' ) ) {
+       define( 'WP_ADMIN', true );
+}
 
 if ( defined('ABSPATH') )
        require_once(ABSPATH . 'wp-load.php');
 
 if ( defined('ABSPATH') )
        require_once(ABSPATH . 'wp-load.php');
@@ -36,7 +38,7 @@ if ( !current_user_can('upload_files') )
 header('Content-Type: text/html; charset=' . get_option('blog_charset'));
 
 if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) {
 header('Content-Type: text/html; charset=' . get_option('blog_charset'));
 
 if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) {
-       include ABSPATH . 'wp-admin/includes/ajax-actions.php';
+       include( ABSPATH . 'wp-admin/includes/ajax-actions.php' );
 
        send_nosniff_header();
        nocache_headers();
 
        send_nosniff_header();
        nocache_headers();
@@ -84,7 +86,7 @@ if ( isset( $_REQUEST['post_id'] ) ) {
 
 $id = media_handle_upload( 'async-upload', $post_id );
 if ( is_wp_error($id) ) {
 
 $id = media_handle_upload( 'async-upload', $post_id );
 if ( is_wp_error($id) ) {
-       echo '<div class="error-div">
+       echo '<div class="error-div error">
        <a class="dismiss" href="#" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">' . __('Dismiss') . '</a>
        <strong>' . sprintf(__('&#8220;%s&#8221; has failed to upload due to an error'), esc_html($_FILES['async-upload']['name']) ) . '</strong><br />' .
        esc_html($id->get_error_message()) . '</div>';
        <a class="dismiss" href="#" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">' . __('Dismiss') . '</a>
        <strong>' . sprintf(__('&#8220;%s&#8221; has failed to upload due to an error'), esc_html($_FILES['async-upload']['name']) ) . '</strong><br />' .
        esc_html($id->get_error_message()) . '</div>';
@@ -92,10 +94,10 @@ if ( is_wp_error($id) ) {
 }
 
 if ( $_REQUEST['short'] ) {
 }
 
 if ( $_REQUEST['short'] ) {
-       // short form response - attachment ID only
+       // Short form response - attachment ID only.
        echo $id;
 } else {
        echo $id;
 } else {
-       // long form response - big chunk o html
+       // Long form response - big chunk o html.
        $type = $_REQUEST['type'];
 
        /**
        $type = $_REQUEST['type'];
 
        /**
index 30c8d6d83b4dbdeb8300121dbcb7fc92f1ae96bc..1c46b0a9f1c1e9e1526876ccbda1ce40fb7143f5 100644 (file)
@@ -111,7 +111,7 @@ case 'spam'    :
        $nonce_action .= $comment_id;
 
 ?>
        $nonce_action .= $comment_id;
 
 ?>
-<div class='wrap'>
+<div class="wrap">
 
 <div class="narrow">
 
 
 <div class="narrow">
 
@@ -181,7 +181,7 @@ if ( $comment->comment_approved != '0' ) { // if not unapproved
 
 <p><?php _e('Are you sure you want to do this?'); ?></p>
 
 
 <p><?php _e('Are you sure you want to do this?'); ?></p>
 
-<form action='comment.php' method='get'>
+<form action="comment.php" method="get">
 
 <table width="100%">
 <tr>
 
 <table width="100%">
 <tr>
@@ -191,9 +191,9 @@ if ( $comment->comment_approved != '0' ) { // if not unapproved
 </table>
 
 <?php wp_nonce_field( $nonce_action ); ?>
 </table>
 
 <?php wp_nonce_field( $nonce_action ); ?>
-<input type='hidden' name='action' value='<?php echo esc_attr($formaction); ?>' />
-<input type='hidden' name='c' value='<?php echo esc_attr($comment->comment_ID); ?>' />
-<input type='hidden' name='noredir' value='1' />
+<input type="hidden" name="action" value="<?php echo esc_attr($formaction); ?>" />
+<input type="hidden" name="c" value="<?php echo esc_attr($comment->comment_ID); ?>" />
+<input type="hidden" name="noredir" value="1" />
 </form>
 
 </div>
 </form>
 
 </div>
@@ -266,7 +266,6 @@ case 'unapprovecomment' :
 
        wp_redirect( $redir );
        die;
 
        wp_redirect( $redir );
        die;
-       break;
 
 case 'editedcomment' :
 
 
 case 'editedcomment' :
 
@@ -291,11 +290,9 @@ case 'editedcomment' :
        wp_redirect( $location );
 
        exit();
        wp_redirect( $location );
 
        exit();
-       break;
 
 default:
        wp_die( __('Unknown action.') );
 
 default:
        wp_die( __('Unknown action.') );
-       break;
 
 } // end switch
 
 
 } // end switch
 
index 87ebc8659d7d0085adb0036d9de071fb43b12d8a..3d2e8a58ce211adf84d71c297c780f7b423cfbce 100644 (file)
@@ -82,7 +82,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 
 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
 
 
 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
 
-<div class="about-text"><?php printf( __( 'Thank you for updating! WordPress %s has lots of refinements we think you&#8217;ll love.' ), $display_version ); ?></div>
+<div class="about-text"><?php printf( __( 'Thank you for updating! WordPress %s brings you a smoother writing and management experience.' ), $display_version ); ?></div>
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
@@ -179,6 +179,7 @@ __( 'Core Contributors to WordPress %s' );
 __( 'Contributing Developers' );
 __( 'Cofounder, Project Lead' );
 __( 'Lead Developer' );
 __( 'Contributing Developers' );
 __( 'Cofounder, Project Lead' );
 __( 'Lead Developer' );
+__( 'Release Lead' );
 __( 'User Experience Lead' );
 __( 'Core Developer' );
 __( 'Core Committer' );
 __( 'User Experience Lead' );
 __( 'Core Developer' );
 __( 'Core Committer' );
index 873f7ac229b4e7c9e006627d1f0c699d04938a13..9cd3d12bd12c315c500592c7860d0b242e576a5d 100644 (file)
@@ -25,6 +25,7 @@
 .about-wrap img {
        margin: 0;
        max-width: 100%;
 .about-wrap img {
        margin: 0;
        max-width: 100%;
+       height: auto;
        vertical-align: middle;
 }
 
        vertical-align: middle;
 }
 
        line-height: 1.5em;
 }
 
        line-height: 1.5em;
 }
 
+.about-wrap h3.higher {
+       margin-top: .5em;
+}
+
 .customize h3 {
        margin-top: 1.75em;
        text-align: center;
 .customize h3 {
        margin-top: 1.75em;
        text-align: center;
 
 .about-overview {
        margin-top: 40px;
 
 .about-overview {
        margin-top: 40px;
+       margin-bottom: 40px;
        text-align: center;
 }
 
        text-align: center;
 }
 
-.about-overview .wp-video {
-       margin: 0 auto;
-}
-
-.changelog .wp-playlist .wp-playlist-current-item img {
-       height: 64px;
-       width: auto;
-       max-width: 100%;
+.about-overview p {
+       margin: 1em auto 50px;
+       max-width: 770px;
+       font-size: 18px;
+       line-height: 1.5;
+       text-align: center;
 }
 
 .about-wrap .feature-section {
 }
 
 .about-wrap .feature-section {
 
 .about-wrap .feature-section.two-col > div {
        position: relative;
 
 .about-wrap .feature-section.two-col > div {
        position: relative;
-       width: 47.5%;
-       margin-left: 4.999999999%;
+       width: 47.6%;
+       margin-left: 4.799999999%;
        float: right;
 }
 
        float: right;
 }
 
        max-width: 20%;
 }
 
        max-width: 20%;
 }
 
+/* responsive videos for 4.0 */
+.about-video {
+       position: relative;
+       width: 100%;
+       height: 0;
+}
+
+.about-video-embed {
+       padding-bottom: 70.4%; /* 352 / 500 */
+}
+
+.about-video-focus {
+       padding-bottom: 56.2%; /* 281 / 500 */
+}
+
+.about-video .wp-video,
+.about-video .mejs-container,
+.about-video video {
+       position: absolute;
+       top: 0;
+       right: 0;
+       width: 100% !important;
+       height: 100% !important;
+}
+
 .about-wrap .changelog li {
        list-style-type: disc;
        margin-right: 3em;
 .about-wrap .changelog li {
        list-style-type: disc;
        margin-right: 3em;
 
 }
 
 
 }
 
+/* Responsive release video */
+@media screen and ( max-width: 710px ) {
+       .about-overview {
+               position: relative;
+               padding-bottom: 56.25%; /* 360 / 640 */
+               width: 100%;
+               height: 0;
+       }
+
+       .about-overview embed {
+               position: absolute;
+               top: 0;
+               right: 0;
+               width: 100%;
+               height: 100%;
+       }
+}
+
 @media only screen and (max-width: 500px) {
        .about-wrap {
                margin-left: 20px;
 @media only screen and (max-width: 500px) {
        .about-wrap {
                margin-left: 20px;
                width: 100%;
        }
 
                width: 100%;
        }
 
+       .about-wrap h2.nav-tab-wrapper {
+               padding-right: 0;
+               border-bottom: 0;
+       }
+
+       .about-wrap h2 .nav-tab {
+               margin-top: 10px;
+               margin-left: 10px;
+               border-bottom: 1px solid #ccc;
+       }
+
        .about-wrap .feature-section.three-col div {
                width: 100%;
                float: none;
        .about-wrap .feature-section.three-col div {
                width: 100%;
                float: none;
                width: 100%;
                float: none;
        }
                width: 100%;
                float: none;
        }
-}
\ No newline at end of file
+}
index 44c85c8d293358557a05faf96f196464b03e6751..50c4d9230f960182f0f19120fbf12a3f9f447174 100644 (file)
@@ -25,6 +25,7 @@
 .about-wrap img {
        margin: 0;
        max-width: 100%;
 .about-wrap img {
        margin: 0;
        max-width: 100%;
+       height: auto;
        vertical-align: middle;
 }
 
        vertical-align: middle;
 }
 
        line-height: 1.5em;
 }
 
        line-height: 1.5em;
 }
 
+.about-wrap h3.higher {
+       margin-top: .5em;
+}
+
 .customize h3 {
        margin-top: 1.75em;
        text-align: center;
 .customize h3 {
        margin-top: 1.75em;
        text-align: center;
 
 .about-overview {
        margin-top: 40px;
 
 .about-overview {
        margin-top: 40px;
+       margin-bottom: 40px;
        text-align: center;
 }
 
        text-align: center;
 }
 
-.about-overview .wp-video {
-       margin: 0 auto;
-}
-
-.changelog .wp-playlist .wp-playlist-current-item img {
-       height: 64px;
-       width: auto;
-       max-width: 100%;
+.about-overview p {
+       margin: 1em auto 50px;
+       max-width: 770px;
+       font-size: 18px;
+       line-height: 1.5;
+       text-align: center;
 }
 
 .about-wrap .feature-section {
 }
 
 .about-wrap .feature-section {
 
 .about-wrap .feature-section.two-col > div {
        position: relative;
 
 .about-wrap .feature-section.two-col > div {
        position: relative;
-       width: 47.5%;
-       margin-right: 4.999999999%;
+       width: 47.6%;
+       margin-right: 4.799999999%;
        float: left;
 }
 
        float: left;
 }
 
        max-width: 20%;
 }
 
        max-width: 20%;
 }
 
+/* responsive videos for 4.0 */
+.about-video {
+       position: relative;
+       width: 100%;
+       height: 0;
+}
+
+.about-video-embed {
+       padding-bottom: 70.4%; /* 352 / 500 */
+}
+
+.about-video-focus {
+       padding-bottom: 56.2%; /* 281 / 500 */
+}
+
+.about-video .wp-video,
+.about-video .mejs-container,
+.about-video video {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 100% !important;
+       height: 100% !important;
+}
+
 .about-wrap .changelog li {
        list-style-type: disc;
        margin-left: 3em;
 .about-wrap .changelog li {
        list-style-type: disc;
        margin-left: 3em;
 
 }
 
 
 }
 
+/* Responsive release video */
+@media screen and ( max-width: 710px ) {
+       .about-overview {
+               position: relative;
+               padding-bottom: 56.25%; /* 360 / 640 */
+               width: 100%;
+               height: 0;
+       }
+
+       .about-overview embed {
+               position: absolute;
+               top: 0;
+               left: 0;
+               width: 100%;
+               height: 100%;
+       }
+}
+
 @media only screen and (max-width: 500px) {
        .about-wrap {
                margin-right: 20px;
 @media only screen and (max-width: 500px) {
        .about-wrap {
                margin-right: 20px;
                width: 100%;
        }
 
                width: 100%;
        }
 
+       .about-wrap h2.nav-tab-wrapper {
+               padding-left: 0;
+               border-bottom: 0;
+       }
+
+       .about-wrap h2 .nav-tab {
+               margin-top: 10px;
+               margin-right: 10px;
+               border-bottom: 1px solid #ccc;
+       }
+
        .about-wrap .feature-section.three-col div {
                width: 100%;
                float: none;
        .about-wrap .feature-section.three-col div {
                width: 100%;
                float: none;
                width: 100%;
                float: none;
        }
                width: 100%;
                float: none;
        }
-}
\ No newline at end of file
+}
index 9b10663db7b29545c609f0ec46578595e35d411f..7ea5ff6ba31f8dfb8181fd44302b3e6de71526fc 100644 (file)
@@ -612,10 +612,10 @@ li#wp-admin-bar-menu-toggle {
 
 
 /* Auto-folding of the admin menu */
 
 
 /* Auto-folding of the admin menu */
-@media only screen and (max-width: 900px) {
+@media only screen and (max-width: 960px) {
        .auto-fold #wpcontent,
        .auto-fold #wpfooter {
        .auto-fold #wpcontent,
        .auto-fold #wpfooter {
-               margin-right: 56px;
+               margin-right: 36px;
        }
 
        .auto-fold #adminmenuback,
        }
 
        .auto-fold #adminmenuback,
index a0a9f21889b489a3aca79e12067e23ab61f2df30..7f317bd33567d625befc0611c1b61ee9605b5ce5 100644 (file)
@@ -612,10 +612,10 @@ li#wp-admin-bar-menu-toggle {
 
 
 /* Auto-folding of the admin menu */
 
 
 /* Auto-folding of the admin menu */
-@media only screen and (max-width: 900px) {
+@media only screen and (max-width: 960px) {
        .auto-fold #wpcontent,
        .auto-fold #wpfooter {
        .auto-fold #wpcontent,
        .auto-fold #wpfooter {
-               margin-left: 56px;
+               margin-left: 36px;
        }
 
        .auto-fold #adminmenuback,
        }
 
        .auto-fold #adminmenuback,
index f95cbc6efdfe4ca2af1209cc3adc4f38de57ed45..257ad53fcca6fde81d765f768bd0008881c61213 100644 (file)
        box-shadow: inset 0 1px 0 #fff;
 }
 
        box-shadow: inset 0 1px 0 #fff;
 }
 
-.wp-color-result:hover {
+.wp-color-result:hover,
+.wp-color-result:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
-.wp-color-result:hover:after {
+.wp-color-result:hover:after,
+.wp-color-result:focus:after {
        color: #222;
        border-color: #aaa;
        border-right: 1px solid #999;
        color: #222;
        border-color: #aaa;
        border-right: 1px solid #999;
 }
 
 .wp-color-result:focus {
 }
 
 .wp-color-result:focus {
-       border-color: #888;
-       -webkit-box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
-       box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
-}
-
-.wp-color-result:focus:after {
-       border-color: #888;
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
 }
 
 .wp-picker-open + .wp-picker-input-wrap {
 }
 
 .wp-picker-open + .wp-picker-input-wrap {
index 023eccbab754e4bf6811d573526ec0d5b66e01a0..ee70a9d3f44655cfa77bcccafcf9209c64de9958 100644 (file)
@@ -1 +1 @@
-.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;height:22px;margin:0 0 6px 6px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:bottom;display:inline-block;padding-right:30px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08)}.wp-color-result:after{background:#f7f7f7;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px;border-right:1px solid #ccc;color:#555;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;left:0;text-align:center;top:0;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.wp-color-result:hover{background:#fafafa;border-color:#999;color:#222}.wp-color-result:hover:after{color:#222;border-color:#aaa;border-right:1px solid #999}.wp-color-result{top:0}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{border-color:#888;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.wp-color-result:focus:after{border-color:#888}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-right:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{-webkit-border-radius:0;border-radius:0;border-color:#dfdfdf;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:65px;font-size:12px;font-family:monospace;text-align:center;line-height:16px;margin:0}.wp-picker-container input[type=text].wp-color-picker:focus::-webkit-input-placeholder{color:transparent}.wp-picker-container input[type=text].wp-color-picker:-moz-placeholder{color:#999}.wp-picker-container input[type=text].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}
\ No newline at end of file
+.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;height:22px;margin:0 0 6px 6px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:bottom;display:inline-block;padding-right:30px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08)}.wp-color-result:after{background:#f7f7f7;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px;border-right:1px solid #ccc;color:#555;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;left:0;text-align:center;top:0;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.wp-color-result:focus,.wp-color-result:hover{background:#fafafa;border-color:#999;color:#222}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#222;border-color:#aaa;border-right:1px solid #999}.wp-color-result{top:0}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-right:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{-webkit-border-radius:0;border-radius:0;border-color:#dfdfdf;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:65px;font-size:12px;font-family:monospace;text-align:center;line-height:16px;margin:0}.wp-picker-container input[type=text].wp-color-picker:focus::-webkit-input-placeholder{color:transparent}.wp-picker-container input[type=text].wp-color-picker:-moz-placeholder{color:#999}.wp-picker-container input[type=text].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}
\ No newline at end of file
index 1d00d96aa186de1fd2ea66c85c8c98b8d502bc36..4229402a6188434a52a94289ed8617ad619f1b5c 100644 (file)
        box-shadow: inset 0 1px 0 #fff;
 }
 
        box-shadow: inset 0 1px 0 #fff;
 }
 
-.wp-color-result:hover {
+.wp-color-result:hover,
+.wp-color-result:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
-.wp-color-result:hover:after {
+.wp-color-result:hover:after,
+.wp-color-result:focus:after {
        color: #222;
        border-color: #aaa;
        border-left: 1px solid #999;
        color: #222;
        border-color: #aaa;
        border-left: 1px solid #999;
 }
 
 .wp-color-result:focus {
 }
 
 .wp-color-result:focus {
-       border-color: #888;
-       -webkit-box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
-       box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
-}
-
-.wp-color-result:focus:after {
-       border-color: #888;
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
 }
 
 .wp-picker-open + .wp-picker-input-wrap {
 }
 
 .wp-picker-open + .wp-picker-input-wrap {
index 8c225dd0092d0974a01514539f100189a6fe4ded..362cb2a5d941758fa5bf69b43986a07e63590546 100644 (file)
@@ -1 +1 @@
-.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;height:22px;margin:0 6px 6px 0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:bottom;display:inline-block;padding-left:30px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08)}.wp-color-result:after{background:#f7f7f7;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;border-left:1px solid #ccc;color:#555;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;right:0;text-align:center;top:0;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.wp-color-result:hover{background:#fafafa;border-color:#999;color:#222}.wp-color-result:hover:after{color:#222;border-color:#aaa;border-left:1px solid #999}.wp-color-result{top:0}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{border-color:#888;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.wp-color-result:focus:after{border-color:#888}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-left:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{-webkit-border-radius:0;border-radius:0;border-color:#dfdfdf;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:65px;font-size:12px;font-family:monospace;text-align:center;line-height:16px;margin:0}.wp-picker-container input[type=text].wp-color-picker:focus::-webkit-input-placeholder{color:transparent}.wp-picker-container input[type=text].wp-color-picker:-moz-placeholder{color:#999}.wp-picker-container input[type=text].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}
\ No newline at end of file
+.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;height:22px;margin:0 6px 6px 0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:bottom;display:inline-block;padding-left:30px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.08);box-shadow:0 1px 0 rgba(0,0,0,.08)}.wp-color-result:after{background:#f7f7f7;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;border-left:1px solid #ccc;color:#555;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;right:0;text-align:center;top:0;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.wp-color-result:focus,.wp-color-result:hover{background:#fafafa;border-color:#999;color:#222}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#222;border-color:#aaa;border-left:1px solid #999}.wp-color-result{top:0}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-left:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{-webkit-border-radius:0;border-radius:0;border-color:#dfdfdf;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:65px;font-size:12px;font-family:monospace;text-align:center;line-height:16px;margin:0}.wp-picker-container input[type=text].wp-color-picker:focus::-webkit-input-placeholder{color:transparent}.wp-picker-container input[type=text].wp-color-picker:-moz-placeholder{color:#999}.wp-picker-container input[type=text].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}
\ No newline at end of file
index 2ce80049c33cea41203a4f279fc2765edec49ead..032e3a0ac307f44b823e0737489ef6b83e6b8769 100644 (file)
@@ -400,7 +400,7 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 
 }
 
 
-/* Media Uploader */
+/* Media */
 
 .media-item .bar,
 .media-progress-bar div {
 
 .media-item .bar,
 .media-progress-bar div {
@@ -408,7 +408,9 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 .details.attachment {
 }
 
 .details.attachment {
-       box-shadow: 0 0 0 1px #fff, 0 0 0 5px $highlight-color;
+       box-shadow:
+               inset 0 0 0 3px #fff,
+               inset 0 0 0 7px $highlight-color;
 }
 
 .attachment.details .check {
 }
 
 .attachment.details .check {
@@ -416,6 +418,15 @@ ul#adminmenu > li.current > a.current:after {
        box-shadow: 0 0 0 1px #fff, 0 0 0 2px $highlight-color;
 }
 
        box-shadow: 0 0 0 1px #fff, 0 0 0 2px $highlight-color;
 }
 
+.media-selection .attachment.selection.details .thumbnail {
+       -webkit-box-shadow:
+               0px 0px 0px 1px #fff,
+               0px 0px 0px 3px $highlight-color;
+       box-shadow:
+               0px 0px 0px 1px #fff,
+               0px 0px 0px 3px $highlight-color;
+}
+
 
 /* Themes */
 
 
 /* Themes */
 
@@ -428,28 +439,28 @@ ul#adminmenu > li.current > a.current:after {
        color: $highlight-color;
 }
 
        color: $highlight-color;
 }
 
-.theme-overlay .theme-header .close:hover,
-.theme-overlay .theme-header .right:hover,
-.theme-overlay .theme-header .left:hover {
-       background: $highlight-color;
-}
-
 .theme-section.current,
 .theme-filter.current {
        border-bottom-color: $menu-background;
 }
 
 .theme-section.current,
 .theme-filter.current {
        border-bottom-color: $menu-background;
 }
 
-body.more-filters-opened .more-filters,
-body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
        color: $menu-text;
        background-color: $menu-background;
 }
 
        color: $menu-text;
        background-color: $menu-background;
 }
 
+body.more-filters-opened .more-filters:before {
+       color: $menu-text;
+}
+
 body.more-filters-opened .more-filters:hover,
 body.more-filters-opened .more-filters:hover,
-body.more-filters-opened .more-filters:focus,
+body.more-filters-opened .more-filters:focus {
+       background-color: $menu-highlight-background;
+       color: $menu-highlight-text;
+}
+
 body.more-filters-opened .more-filters:hover:before,
 body.more-filters-opened .more-filters:focus:before {
 body.more-filters-opened .more-filters:hover:before,
 body.more-filters-opened .more-filters:focus:before {
-       background-color: $menu-highlight-background;
        color: $menu-highlight-text;
 }
 
        color: $menu-highlight-text;
 }
 
@@ -472,7 +483,6 @@ body.more-filters-opened .more-filters:focus:before {
        color: $menu-highlight-text;
 }
 
        color: $menu-highlight-text;
 }
 
-
 /* jQuery UI Slider */
 
 .wp-slider .ui-slider-handle,
 /* jQuery UI Slider */
 
 .wp-slider .ui-slider-handle,
index 14db8a5017faeebfc7bb37d908694dcb6f095e62..9c196e0f3bc9654ebc3fd65dea72482b16b86bfb 100644 (file)
                background: darken( $button-color, 5% );
                border-color: darken( $button-color, 15% );
                color: $text-color;
                background: darken( $button-color, 5% );
                border-color: darken( $button-color, 15% );
                color: $text-color;
-               box-shadow: inset 0 1px 0 lighten( $button-color, 10% ), 0 1px 0 rgba(0,0,0,.15);
+               box-shadow: inset 0 1px 0 lighten( $button-color, 10% );
+       }
+
+       &:focus {
+               box-shadow: inset 0 1px 0 lighten( $button-color, 10% ),
+                           0 0 0 1px #5b9dd9,
+                           0 0 2px 1px rgba( 30, 140, 190, .8 );
        }
 
        &:active {
                background: darken( $button-color, 10% );
                border-color: darken( $button-color, 15% );
                color: $text-color;
        }
 
        &:active {
                background: darken( $button-color, 10% );
                border-color: darken( $button-color, 15% );
                color: $text-color;
-               box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+               box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ),
+                           0 0 0 1px #5b9dd9,
+                           0 0 2px 1px rgba( 30, 140, 190, .8 );
        }
 
        &[disabled],
        }
 
        &[disabled],
index 515f2b1b9d92120dc8e6c6d3aee7ff019363783b..7eb1e75b61ab654ac818288f072dc1aa91c78c8b 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #d39323;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #d39323;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #dd9f32;
     border-color: #bd831f;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #dd9f32;
     border-color: #bd831f;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #e8be74, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #e8be74, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #e8be74;
+            box-shadow: inset 0 1px 0 #e8be74; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #e8be74, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #e8be74, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #d39323;
     border-color: #bd831f;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #d39323;
     border-color: #bd831f;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cdc7 !important;
     background: #db9825 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cdc7 !important;
     background: #db9825 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #096484; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #096484; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #096484; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #096484; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #096484;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #096484; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #096484;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #096484; }
 
 .attachment.details .check {
   background-color: #096484;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #096484;
 
 .attachment.details .check {
   background-color: #096484;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #096484;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #096484; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #096484; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #096484;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #096484; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #096484; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #096484; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #096484; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #52accc; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #52accc; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #52accc; }
 
   color: #fff;
   background-color: #52accc; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #096484;
   color: #fff; }
 
   background-color: #096484;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #096484;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #096484;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #e1a948;
   border-color: #d39323;
   -webkit-box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #e1a948;
   border-color: #d39323;
   -webkit-box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index ca69e7125c37d46d0c209a099eaf65268fcfe7b4..979619290cef0044fa2cfb143f5da45b963ee5cf 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#096484}input[type=radio]:checked:before{background:#096484}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#e1a948;border-color:#d39323;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#dd9f32;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8be74,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8be74,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#d39323;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#52accc}.wp-core-ui .wp-ui-text-primary{color:#52accc}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#096484}.wp-core-ui .wp-ui-text-highlight{color:#096484}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#e1a948}.wp-core-ui .wp-ui-text-notification{color:#e1a948}.wp-core-ui .wp-ui-text-icon{color:#e5f8ff}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#52accc}.view-switch a.current:before{color:#52accc}.view-switch a:hover:before{color:#e1a948}.post-com-count:hover:after{border-top-color:#52accc}.post-com-count:hover span{color:#fff;background-color:#52accc}strong .post-com-count:after{border-top-color:#e1a948}strong .post-com-count span{background-color:#e1a948}#adminmenu,#adminmenuback,#adminmenuwrap{background:#52accc}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#e5f8ff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#096484}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4796b3}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#4796b3}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#fff}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#096484}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#e1a948}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4796b3}#collapse-menu{color:#e5f8ff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#e5f8ff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#52accc}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#e5f8ff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#fff;background:#4796b3}#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4796b3}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#74b7ce}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#e2ecf1}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#e5f8ff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#fff}#wpadminbar #adminbarsearch:before{color:#e5f8ff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6ebad4}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6ebad4;background-color:#6ebad4}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info .username{color:#e2ecf1}.wp-pointer .wp-pointer-content h3{background-color:#096484;border-color:#07536c}.wp-pointer .wp-pointer-content h3:before{color:#096484}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#096484}.media-item .bar,.media-progress-bar div{background-color:#096484}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #096484;box-shadow:0 0 0 1px #fff,0 0 0 5px #096484}.attachment.details .check{background-color:#096484;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #096484;box-shadow:0 0 0 1px #fff,0 0 0 2px #096484}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#096484}.theme-browser .theme.add-new-theme:hover span:after{color:#096484}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#096484}.theme-filter.current,.theme-section.current{border-bottom-color:#52accc}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#52accc}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#096484;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#096484;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#e1a948;border-color:#d39323;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#e1a948}div#wp-responsive-toggle a:before{color:#e5f8ff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#096484}.star-rating .star{color:#096484}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4796b3}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#096484}input[type=radio]:checked:before{background:#096484}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#e1a948;border-color:#d39323;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#dd9f32;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8be74;box-shadow:inset 0 1px 0 #e8be74}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #e8be74,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #e8be74,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#d39323;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#52accc}.wp-core-ui .wp-ui-text-primary{color:#52accc}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#096484}.wp-core-ui .wp-ui-text-highlight{color:#096484}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#e1a948}.wp-core-ui .wp-ui-text-notification{color:#e1a948}.wp-core-ui .wp-ui-text-icon{color:#e5f8ff}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#52accc}.view-switch a.current:before{color:#52accc}.view-switch a:hover:before{color:#e1a948}.post-com-count:hover:after{border-top-color:#52accc}.post-com-count:hover span{color:#fff;background-color:#52accc}strong .post-com-count:after{border-top-color:#e1a948}strong .post-com-count span{background-color:#e1a948}#adminmenu,#adminmenuback,#adminmenuwrap{background:#52accc}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#e5f8ff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#096484}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4796b3}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#4796b3}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#fff}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#096484}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#e1a948}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4796b3}#collapse-menu{color:#e5f8ff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#e5f8ff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#52accc}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#e5f8ff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#fff;background:#4796b3}#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4796b3}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#74b7ce}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#e2ecf1}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#e5f8ff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#fff}#wpadminbar #adminbarsearch:before{color:#e5f8ff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6ebad4}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6ebad4;background-color:#6ebad4}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info .username{color:#e2ecf1}.wp-pointer .wp-pointer-content h3{background-color:#096484;border-color:#07536c}.wp-pointer .wp-pointer-content h3:before{color:#096484}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#096484}.media-item .bar,.media-progress-bar div{background-color:#096484}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484}.attachment.details .check{background-color:#096484;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #096484;box-shadow:0 0 0 1px #fff,0 0 0 2px #096484}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #096484;box-shadow:0 0 0 1px #fff,0 0 0 3px #096484}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#096484}.theme-browser .theme.add-new-theme:hover span:after{color:#096484}.theme-filter.current,.theme-section.current{border-bottom-color:#52accc}body.more-filters-opened .more-filters{color:#fff;background-color:#52accc}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#096484;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#096484;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#096484;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#e1a948;border-color:#d39323;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#e1a948}div#wp-responsive-toggle a:before{color:#e5f8ff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#096484}.star-rating .star{color:#096484}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4796b3}
\ No newline at end of file
index df2877c08d6a02e778b742f892fd6db021f8414a..fc8b05d5b5eedd9c27cc9c96610230d11412599a 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #d39323;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #d39323;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #dd9f32;
     border-color: #bd831f;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #dd9f32;
     border-color: #bd831f;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #e8be74, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #e8be74, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #e8be74;
+            box-shadow: inset 0 1px 0 #e8be74; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #e8be74, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #e8be74, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #d39323;
     border-color: #bd831f;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #d39323;
     border-color: #bd831f;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cdc7 !important;
     background: #db9825 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cdc7 !important;
     background: #db9825 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #096484; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #096484; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #096484; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #096484; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #096484;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #096484; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #096484;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #096484; }
 
 .attachment.details .check {
   background-color: #096484;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #096484;
 
 .attachment.details .check {
   background-color: #096484;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #096484;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #096484; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #096484; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #096484;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #096484; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #096484; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #096484; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #096484; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #52accc; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #52accc; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #52accc; }
 
   color: #fff;
   background-color: #52accc; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #096484;
   color: #fff; }
 
   background-color: #096484;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #096484;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #096484;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #e1a948;
   border-color: #d39323;
   -webkit-box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #e1a948;
   border-color: #d39323;
   -webkit-box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #ecc88a, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index 6907e37307b948b4994bae5fbf980864401b30cd..a6bde243b863dc019b055bfc9fd16bab53005e33 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#096484}input[type=radio]:checked:before{background:#096484}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#e1a948;border-color:#d39323;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#dd9f32;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8be74,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8be74,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#d39323;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#52accc}.wp-core-ui .wp-ui-text-primary{color:#52accc}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#096484}.wp-core-ui .wp-ui-text-highlight{color:#096484}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#e1a948}.wp-core-ui .wp-ui-text-notification{color:#e1a948}.wp-core-ui .wp-ui-text-icon{color:#e5f8ff}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#52accc}.view-switch a.current:before{color:#52accc}.view-switch a:hover:before{color:#e1a948}.post-com-count:hover:after{border-top-color:#52accc}.post-com-count:hover span{color:#fff;background-color:#52accc}strong .post-com-count:after{border-top-color:#e1a948}strong .post-com-count span{background-color:#e1a948}#adminmenu,#adminmenuback,#adminmenuwrap{background:#52accc}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#e5f8ff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#096484}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4796b3}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#4796b3}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#fff}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#096484}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#e1a948}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4796b3}#collapse-menu{color:#e5f8ff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#e5f8ff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#52accc}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#e5f8ff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#fff;background:#4796b3}#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4796b3}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#74b7ce}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#e2ecf1}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#e5f8ff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#fff}#wpadminbar #adminbarsearch:before{color:#e5f8ff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6ebad4}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6ebad4;background-color:#6ebad4}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info .username{color:#e2ecf1}.wp-pointer .wp-pointer-content h3{background-color:#096484;border-color:#07536c}.wp-pointer .wp-pointer-content h3:before{color:#096484}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#096484}.media-item .bar,.media-progress-bar div{background-color:#096484}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #096484;box-shadow:0 0 0 1px #fff,0 0 0 5px #096484}.attachment.details .check{background-color:#096484;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #096484;box-shadow:0 0 0 1px #fff,0 0 0 2px #096484}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#096484}.theme-browser .theme.add-new-theme:hover span:after{color:#096484}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#096484}.theme-filter.current,.theme-section.current{border-bottom-color:#52accc}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#52accc}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#096484;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#096484;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#e1a948;border-color:#d39323;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#e1a948}div#wp-responsive-toggle a:before{color:#e5f8ff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#096484}.star-rating .star{color:#096484}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4796b3}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#096484}input[type=radio]:checked:before{background:#096484}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#e1a948;border-color:#d39323;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#dd9f32;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8be74;box-shadow:inset 0 1px 0 #e8be74}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #e8be74,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #e8be74,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#d39323;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#52accc}.wp-core-ui .wp-ui-text-primary{color:#52accc}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#096484}.wp-core-ui .wp-ui-text-highlight{color:#096484}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#e1a948}.wp-core-ui .wp-ui-text-notification{color:#e1a948}.wp-core-ui .wp-ui-text-icon{color:#e5f8ff}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#52accc}.view-switch a.current:before{color:#52accc}.view-switch a:hover:before{color:#e1a948}.post-com-count:hover:after{border-top-color:#52accc}.post-com-count:hover span{color:#fff;background-color:#52accc}strong .post-com-count:after{border-top-color:#e1a948}strong .post-com-count span{background-color:#e1a948}#adminmenu,#adminmenuback,#adminmenuwrap{background:#52accc}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#e5f8ff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#096484}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4796b3}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#4796b3}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#fff}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#096484}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#e1a948}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4796b3}#collapse-menu{color:#e5f8ff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#e5f8ff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#52accc}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#e5f8ff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#fff;background:#4796b3}#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4796b3}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#74b7ce}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#e2ecf1}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#e5f8ff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#fff}#wpadminbar #adminbarsearch:before{color:#e5f8ff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6ebad4}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6ebad4;background-color:#6ebad4}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info .username{color:#e2ecf1}.wp-pointer .wp-pointer-content h3{background-color:#096484;border-color:#07536c}.wp-pointer .wp-pointer-content h3:before{color:#096484}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#096484}.media-item .bar,.media-progress-bar div{background-color:#096484}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484}.attachment.details .check{background-color:#096484;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #096484;box-shadow:0 0 0 1px #fff,0 0 0 2px #096484}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #096484;box-shadow:0 0 0 1px #fff,0 0 0 3px #096484}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#096484}.theme-browser .theme.add-new-theme:hover span:after{color:#096484}.theme-filter.current,.theme-section.current{border-bottom-color:#52accc}body.more-filters-opened .more-filters{color:#fff;background-color:#52accc}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#096484;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#096484;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#096484;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#e1a948;border-color:#d39323;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#e1a948}div#wp-responsive-toggle a:before{color:#e5f8ff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#096484}.star-rating .star{color:#096484}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4796b3}
\ No newline at end of file
index a54579d1429aab196dbbabc9165f3794a41157ef..653a80dd1a6b5171d9b0bc87283e9badbf336fa6 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #b78a66;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #b78a66;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #bf9878;
     border-color: #ae7d55;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #bf9878;
     border-color: #ae7d55;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #d7bfac, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #d7bfac, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #d7bfac;
+            box-shadow: inset 0 1px 0 #d7bfac; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #d7bfac, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #d7bfac, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #b78a66;
     border-color: #ae7d55;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #b78a66;
     border-color: #ae7d55;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cbc7 !important;
     background: #ba906d !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cbc7 !important;
     background: #ba906d !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #c7a589; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #c7a589; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #c7a589; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #c7a589; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #c7a589;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #c7a589; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #c7a589;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #c7a589; }
 
 .attachment.details .check {
   background-color: #c7a589;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #c7a589;
 
 .attachment.details .check {
   background-color: #c7a589;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #c7a589;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #c7a589; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #c7a589; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #c7a589;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #c7a589; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #c7a589; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #c7a589; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #c7a589; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #59524c; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #59524c; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #59524c; }
 
   color: #fff;
   background-color: #59524c; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #c7a589;
   color: #fff; }
 
   background-color: #c7a589;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #c7a589;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #c7a589;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #c7a589;
   border-color: #b78a66;
   -webkit-box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #c7a589;
   border-color: #b78a66;
   -webkit-box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index ed81cb7be049707ccc75ad45a1b2162076da2893..20d4e49382e17f80bd6f449599e6005c199ed0de 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#59524c}input[type=radio]:checked:before{background:#59524c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#c7a589;border-color:#b78a66;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#bf9878;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 1px 0 #d7bfac,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #d7bfac,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#b78a66;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#59524c}.wp-core-ui .wp-ui-text-primary{color:#59524c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#c7a589}.wp-core-ui .wp-ui-text-highlight{color:#c7a589}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#9ea476}.wp-core-ui .wp-ui-text-notification{color:#9ea476}.wp-core-ui .wp-ui-text-icon{color:#f3f2f1}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#59524c}.view-switch a.current:before{color:#59524c}.view-switch a:hover:before{color:#9ea476}.post-com-count:hover:after{border-top-color:#59524c}.post-com-count:hover span{color:#fff;background-color:#59524c}strong .post-com-count:after{border-top-color:#9ea476}strong .post-com-count span{background-color:#9ea476}#adminmenu,#adminmenuback,#adminmenuwrap{background:#59524c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f2f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#c7a589}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#46403c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#46403c}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#c7a589}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#c7a589}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#c7a589}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#9ea476}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#46403c}#collapse-menu{color:#f3f2f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f2f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#59524c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f2f1}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#c7a589;background:#46403c}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#c7a589}#wpadminbar .menupop .ab-sub-wrapper{background:#46403c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#656463}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#cdcbc9}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f2f1}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#c7a589}#wpadminbar #adminbarsearch:before{color:#f3f2f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6c645c}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6c645c;background-color:#6c645c}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#c7a589}#wpadminbar #wp-admin-bar-user-info .username{color:#cdcbc9}.wp-pointer .wp-pointer-content h3{background-color:#c7a589;border-color:#bf9878}.wp-pointer .wp-pointer-content h3:before{color:#c7a589}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#c7a589}.media-item .bar,.media-progress-bar div{background-color:#c7a589}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 5px #c7a589}.attachment.details .check{background-color:#c7a589;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#c7a589}.theme-browser .theme.add-new-theme:hover span:after{color:#c7a589}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#c7a589}.theme-filter.current,.theme-section.current{border-bottom-color:#59524c}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#59524c}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#c7a589;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#c7a589;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#c7a589;border-color:#b78a66;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#c7a589}div#wp-responsive-toggle a:before{color:#f3f2f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#c7a589}.star-rating .star{color:#c7a589}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#46403c}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#59524c}input[type=radio]:checked:before{background:#59524c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#c7a589;border-color:#b78a66;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#bf9878;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 1px 0 #d7bfac;box-shadow:inset 0 1px 0 #d7bfac}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d7bfac,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #d7bfac,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#b78a66;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#59524c}.wp-core-ui .wp-ui-text-primary{color:#59524c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#c7a589}.wp-core-ui .wp-ui-text-highlight{color:#c7a589}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#9ea476}.wp-core-ui .wp-ui-text-notification{color:#9ea476}.wp-core-ui .wp-ui-text-icon{color:#f3f2f1}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#59524c}.view-switch a.current:before{color:#59524c}.view-switch a:hover:before{color:#9ea476}.post-com-count:hover:after{border-top-color:#59524c}.post-com-count:hover span{color:#fff;background-color:#59524c}strong .post-com-count:after{border-top-color:#9ea476}strong .post-com-count span{background-color:#9ea476}#adminmenu,#adminmenuback,#adminmenuwrap{background:#59524c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f2f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#c7a589}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#46403c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#46403c}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#c7a589}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#c7a589}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#c7a589}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#9ea476}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#46403c}#collapse-menu{color:#f3f2f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f2f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#59524c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f2f1}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#c7a589;background:#46403c}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#c7a589}#wpadminbar .menupop .ab-sub-wrapper{background:#46403c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#656463}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#cdcbc9}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f2f1}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#c7a589}#wpadminbar #adminbarsearch:before{color:#f3f2f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6c645c}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6c645c;background-color:#6c645c}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#c7a589}#wpadminbar #wp-admin-bar-user-info .username{color:#cdcbc9}.wp-pointer .wp-pointer-content h3{background-color:#c7a589;border-color:#bf9878}.wp-pointer .wp-pointer-content h3:before{color:#c7a589}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#c7a589}.media-item .bar,.media-progress-bar div{background-color:#c7a589}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589}.attachment.details .check{background-color:#c7a589;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#c7a589}.theme-browser .theme.add-new-theme:hover span:after{color:#c7a589}.theme-filter.current,.theme-section.current{border-bottom-color:#59524c}body.more-filters-opened .more-filters{color:#fff;background-color:#59524c}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#c7a589;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#c7a589;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#c7a589;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#c7a589;border-color:#b78a66;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#c7a589}div#wp-responsive-toggle a:before{color:#f3f2f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#c7a589}.star-rating .star{color:#c7a589}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#46403c}
\ No newline at end of file
index 281a17ea21d71e35ca9a97f6968e9e6073220596..3fd812e656482a25f3a52c851e48a88d918a049f 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #b78a66;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #b78a66;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #bf9878;
     border-color: #ae7d55;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #bf9878;
     border-color: #ae7d55;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #d7bfac, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #d7bfac, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #d7bfac;
+            box-shadow: inset 0 1px 0 #d7bfac; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #d7bfac, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #d7bfac, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #b78a66;
     border-color: #ae7d55;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #b78a66;
     border-color: #ae7d55;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cbc7 !important;
     background: #ba906d !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cbc7 !important;
     background: #ba906d !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #c7a589; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #c7a589; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #c7a589; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #c7a589; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #c7a589;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #c7a589; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #c7a589;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #c7a589; }
 
 .attachment.details .check {
   background-color: #c7a589;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #c7a589;
 
 .attachment.details .check {
   background-color: #c7a589;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #c7a589;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #c7a589; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #c7a589; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #c7a589;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #c7a589; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #c7a589; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #c7a589; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #c7a589; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #59524c; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #59524c; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #59524c; }
 
   color: #fff;
   background-color: #59524c; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #c7a589;
   color: #fff; }
 
   background-color: #c7a589;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #c7a589;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #c7a589;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #c7a589;
   border-color: #b78a66;
   -webkit-box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #c7a589;
   border-color: #b78a66;
   -webkit-box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #e0cdbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index bd3ef54b2519c82f1739f73383d64eaabd6599ce..1272763b0f7e9ea4d84125bcc14a2df3157995c9 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#59524c}input[type=radio]:checked:before{background:#59524c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#c7a589;border-color:#b78a66;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#bf9878;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 1px 0 #d7bfac,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #d7bfac,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#b78a66;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#59524c}.wp-core-ui .wp-ui-text-primary{color:#59524c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#c7a589}.wp-core-ui .wp-ui-text-highlight{color:#c7a589}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#9ea476}.wp-core-ui .wp-ui-text-notification{color:#9ea476}.wp-core-ui .wp-ui-text-icon{color:#f3f2f1}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#59524c}.view-switch a.current:before{color:#59524c}.view-switch a:hover:before{color:#9ea476}.post-com-count:hover:after{border-top-color:#59524c}.post-com-count:hover span{color:#fff;background-color:#59524c}strong .post-com-count:after{border-top-color:#9ea476}strong .post-com-count span{background-color:#9ea476}#adminmenu,#adminmenuback,#adminmenuwrap{background:#59524c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f2f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#c7a589}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#46403c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#46403c}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#c7a589}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#c7a589}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#c7a589}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#9ea476}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#46403c}#collapse-menu{color:#f3f2f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f2f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#59524c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f2f1}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#c7a589;background:#46403c}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#c7a589}#wpadminbar .menupop .ab-sub-wrapper{background:#46403c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#656463}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#cdcbc9}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f2f1}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#c7a589}#wpadminbar #adminbarsearch:before{color:#f3f2f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6c645c}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6c645c;background-color:#6c645c}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#c7a589}#wpadminbar #wp-admin-bar-user-info .username{color:#cdcbc9}.wp-pointer .wp-pointer-content h3{background-color:#c7a589;border-color:#bf9878}.wp-pointer .wp-pointer-content h3:before{color:#c7a589}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#c7a589}.media-item .bar,.media-progress-bar div{background-color:#c7a589}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 5px #c7a589}.attachment.details .check{background-color:#c7a589;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#c7a589}.theme-browser .theme.add-new-theme:hover span:after{color:#c7a589}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#c7a589}.theme-filter.current,.theme-section.current{border-bottom-color:#59524c}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#59524c}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#c7a589;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#c7a589;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#c7a589;border-color:#b78a66;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#c7a589}div#wp-responsive-toggle a:before{color:#f3f2f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#c7a589}.star-rating .star{color:#c7a589}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#46403c}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#59524c}input[type=radio]:checked:before{background:#59524c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#c7a589;border-color:#b78a66;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#bf9878;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 1px 0 #d7bfac;box-shadow:inset 0 1px 0 #d7bfac}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d7bfac,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #d7bfac,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#b78a66;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#59524c}.wp-core-ui .wp-ui-text-primary{color:#59524c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#c7a589}.wp-core-ui .wp-ui-text-highlight{color:#c7a589}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#9ea476}.wp-core-ui .wp-ui-text-notification{color:#9ea476}.wp-core-ui .wp-ui-text-icon{color:#f3f2f1}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#59524c}.view-switch a.current:before{color:#59524c}.view-switch a:hover:before{color:#9ea476}.post-com-count:hover:after{border-top-color:#59524c}.post-com-count:hover span{color:#fff;background-color:#59524c}strong .post-com-count:after{border-top-color:#9ea476}strong .post-com-count span{background-color:#9ea476}#adminmenu,#adminmenuback,#adminmenuwrap{background:#59524c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f2f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#c7a589}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#46403c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#46403c}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#c7a589}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#c7a589}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#c7a589}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#9ea476}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#46403c}#collapse-menu{color:#f3f2f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f2f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#59524c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f2f1}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#c7a589;background:#46403c}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#c7a589}#wpadminbar .menupop .ab-sub-wrapper{background:#46403c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#656463}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#cdcbc9}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f2f1}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#c7a589}#wpadminbar #adminbarsearch:before{color:#f3f2f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6c645c}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6c645c;background-color:#6c645c}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#c7a589}#wpadminbar #wp-admin-bar-user-info .username{color:#cdcbc9}.wp-pointer .wp-pointer-content h3{background-color:#c7a589;border-color:#bf9878}.wp-pointer .wp-pointer-content h3:before{color:#c7a589}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#c7a589}.media-item .bar,.media-progress-bar div{background-color:#c7a589}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589}.attachment.details .check{background-color:#c7a589;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#c7a589}.theme-browser .theme.add-new-theme:hover span:after{color:#c7a589}.theme-filter.current,.theme-section.current{border-bottom-color:#59524c}body.more-filters-opened .more-filters{color:#fff;background-color:#59524c}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#c7a589;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#c7a589;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#c7a589;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#c7a589;border-color:#b78a66;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#c7a589}div#wp-responsive-toggle a:before{color:#f3f2f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#c7a589}.star-rating .star{color:#c7a589}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#46403c}
\ No newline at end of file
index 73eb510d2ce7f3071191c884a2690dd7867b143f..f060a88aa9c0625228f617f7608c6114a50dba91 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #839237;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #839237;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #93a43e;
     border-color: #727f30;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #93a43e;
     border-color: #727f30;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #b7c669, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #b7c669, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #b7c669;
+            box-shadow: inset 0 1px 0 #b7c669; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #b7c669, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #b7c669, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #839237;
     border-color: #727f30;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #839237;
     border-color: #727f30;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #cfd1c7 !important;
     background: #89993a !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #cfd1c7 !important;
     background: #89993a !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #a3b745; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #a3b745; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #a3b745; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #a3b745; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #a3b745;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #a3b745; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #a3b745;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #a3b745; }
 
 .attachment.details .check {
   background-color: #a3b745;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #a3b745;
 
 .attachment.details .check {
   background-color: #a3b745;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #a3b745;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #a3b745; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #a3b745; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #a3b745;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #a3b745; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #a3b745; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #a3b745; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #a3b745; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #523f6d; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #523f6d; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #523f6d; }
 
   color: #fff;
   background-color: #523f6d; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #a3b745;
   color: #fff; }
 
   background-color: #a3b745;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #a3b745;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #a3b745;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #a3b745;
   border-color: #839237;
   -webkit-box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #a3b745;
   border-color: #839237;
   -webkit-box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index 2f6433e7f56480479c66faa733488e8782d492d8..3ab7e83254444a43ae41d4c8f0df074967e0c028 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#523f6d}input[type=radio]:checked:before{background:#523f6d}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#a3b745;border-color:#839237;color:#fff;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#93a43e;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 1px 0 #b7c669,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #b7c669,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#839237;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#523f6d}.wp-core-ui .wp-ui-text-primary{color:#523f6d}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#a3b745}.wp-core-ui .wp-ui-text-highlight{color:#a3b745}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d46f15}.wp-core-ui .wp-ui-text-notification{color:#d46f15}.wp-core-ui .wp-ui-text-icon{color:#ece6f6}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#523f6d}.view-switch a.current:before{color:#523f6d}.view-switch a:hover:before{color:#d46f15}.post-com-count:hover:after{border-top-color:#523f6d}.post-com-count:hover span{color:#fff;background-color:#523f6d}strong .post-com-count:after{border-top-color:#d46f15}strong .post-com-count span{background-color:#d46f15}#adminmenu,#adminmenuback,#adminmenuwrap{background:#523f6d}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#ece6f6}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#a3b745}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#413256}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#413256}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#a3b745}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#a3b745}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#a3b745}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d46f15}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#413256}#collapse-menu{color:#ece6f6}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#ece6f6}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#523f6d}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#ece6f6}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#a3b745;background:#413256}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#a3b745}#wpadminbar .menupop .ab-sub-wrapper{background:#413256}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#64537c}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#cbc5d3}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#ece6f6}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#a3b745}#wpadminbar #adminbarsearch:before{color:#ece6f6}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#624c84}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#624c84;background-color:#624c84}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#a3b745}#wpadminbar #wp-admin-bar-user-info .username{color:#cbc5d3}.wp-pointer .wp-pointer-content h3{background-color:#a3b745;border-color:#93a43e}.wp-pointer .wp-pointer-content h3:before{color:#a3b745}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#a3b745}.media-item .bar,.media-progress-bar div{background-color:#a3b745}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 5px #a3b745}.attachment.details .check{background-color:#a3b745;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#a3b745}.theme-browser .theme.add-new-theme:hover span:after{color:#a3b745}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#a3b745}.theme-filter.current,.theme-section.current{border-bottom-color:#523f6d}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#523f6d}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#a3b745;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#a3b745;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#a3b745;border-color:#839237;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#a3b745}div#wp-responsive-toggle a:before{color:#ece6f6}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#a3b745}.star-rating .star{color:#a3b745}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#413256}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#523f6d}input[type=radio]:checked:before{background:#523f6d}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#a3b745;border-color:#839237;color:#fff;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#93a43e;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 1px 0 #b7c669;box-shadow:inset 0 1px 0 #b7c669}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #b7c669,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #b7c669,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#839237;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#523f6d}.wp-core-ui .wp-ui-text-primary{color:#523f6d}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#a3b745}.wp-core-ui .wp-ui-text-highlight{color:#a3b745}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d46f15}.wp-core-ui .wp-ui-text-notification{color:#d46f15}.wp-core-ui .wp-ui-text-icon{color:#ece6f6}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#523f6d}.view-switch a.current:before{color:#523f6d}.view-switch a:hover:before{color:#d46f15}.post-com-count:hover:after{border-top-color:#523f6d}.post-com-count:hover span{color:#fff;background-color:#523f6d}strong .post-com-count:after{border-top-color:#d46f15}strong .post-com-count span{background-color:#d46f15}#adminmenu,#adminmenuback,#adminmenuwrap{background:#523f6d}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#ece6f6}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#a3b745}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#413256}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#413256}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#a3b745}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#a3b745}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#a3b745}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d46f15}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#413256}#collapse-menu{color:#ece6f6}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#ece6f6}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#523f6d}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#ece6f6}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#a3b745;background:#413256}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#a3b745}#wpadminbar .menupop .ab-sub-wrapper{background:#413256}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#64537c}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#cbc5d3}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#ece6f6}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#a3b745}#wpadminbar #adminbarsearch:before{color:#ece6f6}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#624c84}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#624c84;background-color:#624c84}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#a3b745}#wpadminbar #wp-admin-bar-user-info .username{color:#cbc5d3}.wp-pointer .wp-pointer-content h3{background-color:#a3b745;border-color:#93a43e}.wp-pointer .wp-pointer-content h3:before{color:#a3b745}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#a3b745}.media-item .bar,.media-progress-bar div{background-color:#a3b745}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745}.attachment.details .check{background-color:#a3b745;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#a3b745}.theme-browser .theme.add-new-theme:hover span:after{color:#a3b745}.theme-filter.current,.theme-section.current{border-bottom-color:#523f6d}body.more-filters-opened .more-filters{color:#fff;background-color:#523f6d}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#a3b745;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#a3b745;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#a3b745;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#a3b745;border-color:#839237;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#a3b745}div#wp-responsive-toggle a:before{color:#ece6f6}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#a3b745}.star-rating .star{color:#a3b745}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#413256}
\ No newline at end of file
index cc319a8909631c4be236995ae590b97a3e230d1f..d3566ce84d7b0608a4f65982d4a8186728a8a4db 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #839237;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #839237;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #93a43e;
     border-color: #727f30;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #93a43e;
     border-color: #727f30;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #b7c669, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #b7c669, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #b7c669;
+            box-shadow: inset 0 1px 0 #b7c669; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #b7c669, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #b7c669, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #839237;
     border-color: #727f30;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #839237;
     border-color: #727f30;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #cfd1c7 !important;
     background: #89993a !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #cfd1c7 !important;
     background: #89993a !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #a3b745; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #a3b745; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #a3b745; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #a3b745; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #a3b745;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #a3b745; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #a3b745;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #a3b745; }
 
 .attachment.details .check {
   background-color: #a3b745;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #a3b745;
 
 .attachment.details .check {
   background-color: #a3b745;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #a3b745;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #a3b745; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #a3b745; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #a3b745;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #a3b745; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #a3b745; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #a3b745; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #a3b745; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #523f6d; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #523f6d; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #523f6d; }
 
   color: #fff;
   background-color: #523f6d; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #a3b745;
   color: #fff; }
 
   background-color: #a3b745;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #a3b745;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #a3b745;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #a3b745;
   border-color: #839237;
   -webkit-box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #a3b745;
   border-color: #839237;
   -webkit-box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #c0cd7b, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index f99f8719d6aeacf3a894b62d0f4aba3a66fbdb85..82e28b49da70eb66178ea466365fa77ca49b862b 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#523f6d}input[type=radio]:checked:before{background:#523f6d}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#a3b745;border-color:#839237;color:#fff;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#93a43e;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 1px 0 #b7c669,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #b7c669,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#839237;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#523f6d}.wp-core-ui .wp-ui-text-primary{color:#523f6d}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#a3b745}.wp-core-ui .wp-ui-text-highlight{color:#a3b745}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d46f15}.wp-core-ui .wp-ui-text-notification{color:#d46f15}.wp-core-ui .wp-ui-text-icon{color:#ece6f6}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#523f6d}.view-switch a.current:before{color:#523f6d}.view-switch a:hover:before{color:#d46f15}.post-com-count:hover:after{border-top-color:#523f6d}.post-com-count:hover span{color:#fff;background-color:#523f6d}strong .post-com-count:after{border-top-color:#d46f15}strong .post-com-count span{background-color:#d46f15}#adminmenu,#adminmenuback,#adminmenuwrap{background:#523f6d}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#ece6f6}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#a3b745}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#413256}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#413256}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#a3b745}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#a3b745}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#a3b745}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d46f15}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#413256}#collapse-menu{color:#ece6f6}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#ece6f6}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#523f6d}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#ece6f6}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#a3b745;background:#413256}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#a3b745}#wpadminbar .menupop .ab-sub-wrapper{background:#413256}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#64537c}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#cbc5d3}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#ece6f6}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#a3b745}#wpadminbar #adminbarsearch:before{color:#ece6f6}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#624c84}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#624c84;background-color:#624c84}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#a3b745}#wpadminbar #wp-admin-bar-user-info .username{color:#cbc5d3}.wp-pointer .wp-pointer-content h3{background-color:#a3b745;border-color:#93a43e}.wp-pointer .wp-pointer-content h3:before{color:#a3b745}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#a3b745}.media-item .bar,.media-progress-bar div{background-color:#a3b745}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 5px #a3b745}.attachment.details .check{background-color:#a3b745;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#a3b745}.theme-browser .theme.add-new-theme:hover span:after{color:#a3b745}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#a3b745}.theme-filter.current,.theme-section.current{border-bottom-color:#523f6d}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#523f6d}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#a3b745;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#a3b745;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#a3b745;border-color:#839237;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#a3b745}div#wp-responsive-toggle a:before{color:#ece6f6}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#a3b745}.star-rating .star{color:#a3b745}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#413256}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#523f6d}input[type=radio]:checked:before{background:#523f6d}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#a3b745;border-color:#839237;color:#fff;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#93a43e;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 1px 0 #b7c669;box-shadow:inset 0 1px 0 #b7c669}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #b7c669,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #b7c669,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#839237;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#523f6d}.wp-core-ui .wp-ui-text-primary{color:#523f6d}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#a3b745}.wp-core-ui .wp-ui-text-highlight{color:#a3b745}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d46f15}.wp-core-ui .wp-ui-text-notification{color:#d46f15}.wp-core-ui .wp-ui-text-icon{color:#ece6f6}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#523f6d}.view-switch a.current:before{color:#523f6d}.view-switch a:hover:before{color:#d46f15}.post-com-count:hover:after{border-top-color:#523f6d}.post-com-count:hover span{color:#fff;background-color:#523f6d}strong .post-com-count:after{border-top-color:#d46f15}strong .post-com-count span{background-color:#d46f15}#adminmenu,#adminmenuback,#adminmenuwrap{background:#523f6d}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#ece6f6}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#a3b745}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#413256}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#413256}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#a3b745}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#a3b745}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#a3b745}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d46f15}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#413256}#collapse-menu{color:#ece6f6}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#ece6f6}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#523f6d}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#ece6f6}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#a3b745;background:#413256}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#a3b745}#wpadminbar .menupop .ab-sub-wrapper{background:#413256}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#64537c}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#cbc5d3}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#ece6f6}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#a3b745}#wpadminbar #adminbarsearch:before{color:#ece6f6}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#624c84}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#624c84;background-color:#624c84}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#a3b745}#wpadminbar #wp-admin-bar-user-info .username{color:#cbc5d3}.wp-pointer .wp-pointer-content h3{background-color:#a3b745;border-color:#93a43e}.wp-pointer .wp-pointer-content h3:before{color:#a3b745}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#a3b745}.media-item .bar,.media-progress-bar div{background-color:#a3b745}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745}.attachment.details .check{background-color:#a3b745;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#a3b745}.theme-browser .theme.add-new-theme:hover span:after{color:#a3b745}.theme-filter.current,.theme-section.current{border-bottom-color:#523f6d}body.more-filters-opened .more-filters{color:#fff;background-color:#523f6d}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#a3b745;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#a3b745;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#a3b745;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#a3b745;border-color:#839237;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#a3b745}div#wp-responsive-toggle a:before{color:#ece6f6}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#a3b745}.star-rating .star{color:#a3b745}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#413256}
\ No newline at end of file
index bdb778d032ab48a10eea559476d7a46fbb1df211..a8bb6154beed25526a62c8a666cd3e40cfc92ef9 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #037c9a;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #037c9a;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #0490b3;
     border-color: #036881;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #0490b3;
     border-color: #036881;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #09cafa, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #09cafa, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #09cafa;
+            box-shadow: inset 0 1px 0 #09cafa; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #037c9a;
     border-color: #036881;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #037c9a;
     border-color: #036881;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #c7cfd1 !important;
     background: #0384a4 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #c7cfd1 !important;
     background: #0384a4 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #04a4cc; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #04a4cc; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #04a4cc; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #04a4cc; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #04a4cc;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #04a4cc; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #04a4cc;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #04a4cc; }
 
 .attachment.details .check {
   background-color: #04a4cc;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #04a4cc;
 
 .attachment.details .check {
   background-color: #04a4cc;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #04a4cc;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #04a4cc; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #04a4cc; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #04a4cc;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #04a4cc; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #04a4cc; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #04a4cc; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #04a4cc; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #e5e5e5; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #e5e5e5; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #333;
   background-color: #e5e5e5; }
 
   color: #333;
   background-color: #e5e5e5; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #333; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #888;
   color: #fff; }
 
   background-color: #888;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #888;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #888;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #04a4cc;
   border-color: #037c9a;
   -webkit-box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #04a4cc;
   border-color: #037c9a;
   -webkit-box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index b0519d1cfe4a2438c039e52dbc324e62ad348284..81d93fba5dd40fc07c5ea07ea428d1e83c532133 100644 (file)
@@ -1 +1 @@
-html{background:#f5f5f5}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#04a4cc}input[type=radio]:checked:before{background:#04a4cc}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#04a4cc;border-color:#037c9a;color:#fff;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#0490b3;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 1px 0 #09cafa,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #09cafa,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#037c9a;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#333;background-color:#e5e5e5}.wp-core-ui .wp-ui-text-primary{color:#e5e5e5}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#888}.wp-core-ui .wp-ui-text-highlight{color:#888}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d64e07}.wp-core-ui .wp-ui-text-notification{color:#d64e07}.wp-core-ui .wp-ui-text-icon{color:#999}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#333;background-color:#e5e5e5}.view-switch a.current:before{color:#e5e5e5}.view-switch a:hover:before{color:#d64e07}.post-com-count:hover:after{border-top-color:#e5e5e5}.post-com-count:hover span{color:#333;background-color:#e5e5e5}strong .post-com-count:after{border-top-color:#d64e07}strong .post-com-count span{background-color:#d64e07}#adminmenu,#adminmenuback,#adminmenuwrap{background:#e5e5e5}#adminmenu a{color:#333}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#888}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#ccc}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f5f5f5;border-bottom-color:#f5f5f5}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#fff}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#fff}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#04a4cc}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#333}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#04a4cc}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f5f5f5}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#888}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#ccc}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d64e07}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#333;background:#fff}#collapse-menu{color:#777}#collapse-menu:hover{color:#333}#collapse-button div:after{color:#999}#collapse-menu:hover #collapse-button div:after{color:#555}#wpadminbar{color:#333;background:#e5e5e5}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#333}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#999}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{background:#fff}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#04a4cc}#wpadminbar .menupop .ab-sub-wrapper{background:#fff}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#f6f7f7}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#686868}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#999}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#04a4cc}#wpadminbar #adminbarsearch:before{color:#999}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#333;background:#f7f7f7}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#333;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#f7f7f7;background-color:#f7f7f7}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#04a4cc}#wpadminbar #wp-admin-bar-user-info .username{color:#686868}.wp-pointer .wp-pointer-content h3{background-color:#04a4cc;border-color:#0490b3}.wp-pointer .wp-pointer-content h3:before{color:#04a4cc}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#04a4cc}.media-item .bar,.media-progress-bar div{background-color:#04a4cc}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 5px #04a4cc}.attachment.details .check{background-color:#04a4cc;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#04a4cc}.theme-browser .theme.add-new-theme:hover span:after{color:#04a4cc}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#04a4cc}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#333;background-color:#e5e5e5}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#888;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#888;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#04a4cc;border-color:#037c9a;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f5f5f5;border-bottom-color:#f5f5f5}#plugin-information .action-button{background:#04a4cc}div#wp-responsive-toggle a:before{color:#999}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#888}.star-rating .star{color:#04a4cc}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#fff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default li:hover span.ab-label,#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary li.hover span.ab-label{color:#333}.theme-filter.current,.theme-section.current{border-bottom-color:#04a4cc}
\ No newline at end of file
+html{background:#f5f5f5}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#04a4cc}input[type=radio]:checked:before{background:#04a4cc}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#04a4cc;border-color:#037c9a;color:#fff;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#0490b3;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 1px 0 #09cafa;box-shadow:inset 0 1px 0 #09cafa}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #09cafa,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #09cafa,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#037c9a;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#333;background-color:#e5e5e5}.wp-core-ui .wp-ui-text-primary{color:#e5e5e5}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#888}.wp-core-ui .wp-ui-text-highlight{color:#888}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d64e07}.wp-core-ui .wp-ui-text-notification{color:#d64e07}.wp-core-ui .wp-ui-text-icon{color:#999}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#333;background-color:#e5e5e5}.view-switch a.current:before{color:#e5e5e5}.view-switch a:hover:before{color:#d64e07}.post-com-count:hover:after{border-top-color:#e5e5e5}.post-com-count:hover span{color:#333;background-color:#e5e5e5}strong .post-com-count:after{border-top-color:#d64e07}strong .post-com-count span{background-color:#d64e07}#adminmenu,#adminmenuback,#adminmenuwrap{background:#e5e5e5}#adminmenu a{color:#333}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#888}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#ccc}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f5f5f5;border-bottom-color:#f5f5f5}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#fff}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#fff}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#04a4cc}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#333}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#04a4cc}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f5f5f5}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#888}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#ccc}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d64e07}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#333;background:#fff}#collapse-menu{color:#777}#collapse-menu:hover{color:#333}#collapse-button div:after{color:#999}#collapse-menu:hover #collapse-button div:after{color:#555}#wpadminbar{color:#333;background:#e5e5e5}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#333}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#999}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{background:#fff}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#04a4cc}#wpadminbar .menupop .ab-sub-wrapper{background:#fff}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#f6f7f7}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#686868}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#999}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#04a4cc}#wpadminbar #adminbarsearch:before{color:#999}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#333;background:#f7f7f7}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#333;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#f7f7f7;background-color:#f7f7f7}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#04a4cc}#wpadminbar #wp-admin-bar-user-info .username{color:#686868}.wp-pointer .wp-pointer-content h3{background-color:#04a4cc;border-color:#0490b3}.wp-pointer .wp-pointer-content h3:before{color:#04a4cc}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#04a4cc}.media-item .bar,.media-progress-bar div{background-color:#04a4cc}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc}.attachment.details .check{background-color:#04a4cc;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#04a4cc}.theme-browser .theme.add-new-theme:hover span:after{color:#04a4cc}body.more-filters-opened .more-filters{color:#333;background-color:#e5e5e5}body.more-filters-opened .more-filters:before{color:#333}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#888;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#888;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#888;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#04a4cc;border-color:#037c9a;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f5f5f5;border-bottom-color:#f5f5f5}#plugin-information .action-button{background:#04a4cc}div#wp-responsive-toggle a:before{color:#999}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#888}.star-rating .star{color:#04a4cc}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#fff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default li:hover span.ab-label,#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary li.hover span.ab-label{color:#333}.theme-filter.current,.theme-section.current{border-bottom-color:#04a4cc}
\ No newline at end of file
index ca83d94f93e10cfa55f05418a4ca878b362286ee..441b352504294802932318ea91dea4c935a5bd8b 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #037c9a;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #037c9a;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #0490b3;
     border-color: #036881;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #0490b3;
     border-color: #036881;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #09cafa, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #09cafa, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #09cafa;
+            box-shadow: inset 0 1px 0 #09cafa; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #037c9a;
     border-color: #036881;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #037c9a;
     border-color: #036881;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #c7cfd1 !important;
     background: #0384a4 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #c7cfd1 !important;
     background: #0384a4 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #04a4cc; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #04a4cc; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #04a4cc; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #04a4cc; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #04a4cc;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #04a4cc; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #04a4cc;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #04a4cc; }
 
 .attachment.details .check {
   background-color: #04a4cc;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #04a4cc;
 
 .attachment.details .check {
   background-color: #04a4cc;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #04a4cc;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #04a4cc; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #04a4cc; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #04a4cc;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #04a4cc; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #04a4cc; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #04a4cc; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #04a4cc; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #e5e5e5; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #e5e5e5; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #333;
   background-color: #e5e5e5; }
 
   color: #333;
   background-color: #e5e5e5; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #333; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #888;
   color: #fff; }
 
   background-color: #888;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #888;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #888;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #04a4cc;
   border-color: #037c9a;
   -webkit-box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #04a4cc;
   border-color: #037c9a;
   -webkit-box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #22cffb, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index daaa6eafb26f50f9d399df45b90a5c404d71891b..60643d0d39ae5b43159c9f54020627057faeec69 100644 (file)
@@ -1 +1 @@
-html{background:#f5f5f5}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#04a4cc}input[type=radio]:checked:before{background:#04a4cc}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#04a4cc;border-color:#037c9a;color:#fff;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#0490b3;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 1px 0 #09cafa,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #09cafa,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#037c9a;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#333;background-color:#e5e5e5}.wp-core-ui .wp-ui-text-primary{color:#e5e5e5}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#888}.wp-core-ui .wp-ui-text-highlight{color:#888}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d64e07}.wp-core-ui .wp-ui-text-notification{color:#d64e07}.wp-core-ui .wp-ui-text-icon{color:#999}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#333;background-color:#e5e5e5}.view-switch a.current:before{color:#e5e5e5}.view-switch a:hover:before{color:#d64e07}.post-com-count:hover:after{border-top-color:#e5e5e5}.post-com-count:hover span{color:#333;background-color:#e5e5e5}strong .post-com-count:after{border-top-color:#d64e07}strong .post-com-count span{background-color:#d64e07}#adminmenu,#adminmenuback,#adminmenuwrap{background:#e5e5e5}#adminmenu a{color:#333}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#888}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#ccc}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f5f5f5;border-bottom-color:#f5f5f5}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#fff}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#fff}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#04a4cc}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#333}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#04a4cc}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f5f5f5}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#888}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#ccc}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d64e07}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#333;background:#fff}#collapse-menu{color:#777}#collapse-menu:hover{color:#333}#collapse-button div:after{color:#999}#collapse-menu:hover #collapse-button div:after{color:#555}#wpadminbar{color:#333;background:#e5e5e5}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#333}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#999}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{background:#fff}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#04a4cc}#wpadminbar .menupop .ab-sub-wrapper{background:#fff}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#f6f7f7}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#686868}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#999}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#04a4cc}#wpadminbar #adminbarsearch:before{color:#999}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#333;background:#f7f7f7}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#333;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#f7f7f7;background-color:#f7f7f7}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#04a4cc}#wpadminbar #wp-admin-bar-user-info .username{color:#686868}.wp-pointer .wp-pointer-content h3{background-color:#04a4cc;border-color:#0490b3}.wp-pointer .wp-pointer-content h3:before{color:#04a4cc}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#04a4cc}.media-item .bar,.media-progress-bar div{background-color:#04a4cc}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 5px #04a4cc}.attachment.details .check{background-color:#04a4cc;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#04a4cc}.theme-browser .theme.add-new-theme:hover span:after{color:#04a4cc}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#04a4cc}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#333;background-color:#e5e5e5}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#888;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#888;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#04a4cc;border-color:#037c9a;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f5f5f5;border-bottom-color:#f5f5f5}#plugin-information .action-button{background:#04a4cc}div#wp-responsive-toggle a:before{color:#999}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#888}.star-rating .star{color:#04a4cc}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#fff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default li:hover span.ab-label,#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary li.hover span.ab-label{color:#333}.theme-filter.current,.theme-section.current{border-bottom-color:#04a4cc}
\ No newline at end of file
+html{background:#f5f5f5}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#04a4cc}input[type=radio]:checked:before{background:#04a4cc}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#04a4cc;border-color:#037c9a;color:#fff;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#0490b3;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 1px 0 #09cafa;box-shadow:inset 0 1px 0 #09cafa}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #09cafa,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #09cafa,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#037c9a;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#333;background-color:#e5e5e5}.wp-core-ui .wp-ui-text-primary{color:#e5e5e5}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#888}.wp-core-ui .wp-ui-text-highlight{color:#888}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d64e07}.wp-core-ui .wp-ui-text-notification{color:#d64e07}.wp-core-ui .wp-ui-text-icon{color:#999}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#333;background-color:#e5e5e5}.view-switch a.current:before{color:#e5e5e5}.view-switch a:hover:before{color:#d64e07}.post-com-count:hover:after{border-top-color:#e5e5e5}.post-com-count:hover span{color:#333;background-color:#e5e5e5}strong .post-com-count:after{border-top-color:#d64e07}strong .post-com-count span{background-color:#d64e07}#adminmenu,#adminmenuback,#adminmenuwrap{background:#e5e5e5}#adminmenu a{color:#333}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#888}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#ccc}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f5f5f5;border-bottom-color:#f5f5f5}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#fff}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#fff}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#04a4cc}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#333}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#04a4cc}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f5f5f5}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#888}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#ccc}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d64e07}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#333;background:#fff}#collapse-menu{color:#777}#collapse-menu:hover{color:#333}#collapse-button div:after{color:#999}#collapse-menu:hover #collapse-button div:after{color:#555}#wpadminbar{color:#333;background:#e5e5e5}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#333}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#999}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{background:#fff}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#04a4cc}#wpadminbar .menupop .ab-sub-wrapper{background:#fff}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#f6f7f7}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#686868}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#999}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#04a4cc}#wpadminbar #adminbarsearch:before{color:#999}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#333;background:#f7f7f7}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#333;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#333;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#f7f7f7;background-color:#f7f7f7}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#04a4cc}#wpadminbar #wp-admin-bar-user-info .username{color:#686868}.wp-pointer .wp-pointer-content h3{background-color:#04a4cc;border-color:#0490b3}.wp-pointer .wp-pointer-content h3:before{color:#04a4cc}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#04a4cc}.media-item .bar,.media-progress-bar div{background-color:#04a4cc}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc}.attachment.details .check{background-color:#04a4cc;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#04a4cc}.theme-browser .theme.add-new-theme:hover span:after{color:#04a4cc}body.more-filters-opened .more-filters{color:#333;background-color:#e5e5e5}body.more-filters-opened .more-filters:before{color:#333}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#888;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#888;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#888;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#04a4cc;border-color:#037c9a;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f5f5f5;border-bottom-color:#f5f5f5}#plugin-information .action-button{background:#04a4cc}div#wp-responsive-toggle a:before{color:#999}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#888}.star-rating .star{color:#04a4cc}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#fff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default li:hover span.ab-label,#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary li.hover span.ab-label{color:#333}.theme-filter.current,.theme-section.current{border-bottom-color:#04a4cc}
\ No newline at end of file
index 2dc30e51bdc0844bcc837e2aad77c352e70cd15e..c804c3038bde41f49a0d83238d5a1c6576b051e7 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #d02a21;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #d02a21;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #dd362d;
     border-color: #ba251e;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #dd362d;
     border-color: #ba251e;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #e8756f, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #e8756f, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #e8756f;
+            box-shadow: inset 0 1px 0 #e8756f; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #e8756f, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #e8756f, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #d02a21;
     border-color: #ba251e;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #d02a21;
     border-color: #ba251e;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1c7c7 !important;
     background: #d92c23 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1c7c7 !important;
     background: #d92c23 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #e14d43; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #e14d43; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #e14d43; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #e14d43; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #e14d43;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #e14d43; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #e14d43;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #e14d43; }
 
 .attachment.details .check {
   background-color: #e14d43;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #e14d43;
 
 .attachment.details .check {
   background-color: #e14d43;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #e14d43;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #e14d43; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #e14d43; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #e14d43;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #e14d43; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #e14d43; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #e14d43; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #e14d43; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #363b3f; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #363b3f; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #363b3f; }
 
   color: #fff;
   background-color: #363b3f; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #e14d43;
   color: #fff; }
 
   background-color: #e14d43;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #e14d43;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #e14d43;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #e14d43;
   border-color: #d02a21;
   -webkit-box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #e14d43;
   border-color: #d02a21;
   -webkit-box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index 930461b240a2f9216e05fc96f57ea9591a04bc0d..cbaa8b4cdaf6e298b594b253afacd6f668087d7c 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#e14d43}input[type=radio]:checked:before{background:#e14d43}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#e14d43;border-color:#d02a21;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#dd362d;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8756f,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8756f,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#d02a21;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#363b3f}.wp-core-ui .wp-ui-text-primary{color:#363b3f}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#e14d43}.wp-core-ui .wp-ui-text-highlight{color:#e14d43}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#69a8bb}.wp-core-ui .wp-ui-text-notification{color:#69a8bb}.wp-core-ui .wp-ui-text-icon{color:#f1f2f3}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#363b3f}.view-switch a.current:before{color:#363b3f}.view-switch a:hover:before{color:#69a8bb}.post-com-count:hover:after{border-top-color:#363b3f}.post-com-count:hover span{color:#fff;background-color:#363b3f}strong .post-com-count:after{border-top-color:#69a8bb}strong .post-com-count span{background-color:#69a8bb}#adminmenu,#adminmenuback,#adminmenuwrap{background:#363b3f}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f2f3}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#e14d43}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#26292c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#26292c}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c2c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#e14d43}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#e14d43}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#e14d43}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#69a8bb}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#26292c}#collapse-menu{color:#f1f2f3}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f1f2f3}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#363b3f}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f2f3}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#e14d43;background:#26292c}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#e14d43}#wpadminbar .menupop .ab-sub-wrapper{background:#26292c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4c4c4d}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#c2c4c5}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f2f3}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#e14d43}#wpadminbar #adminbarsearch:before{color:#f1f2f3}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#464d52}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#464d52;background-color:#464d52}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#e14d43}#wpadminbar #wp-admin-bar-user-info .username{color:#c2c4c5}.wp-pointer .wp-pointer-content h3{background-color:#e14d43;border-color:#dd362d}.wp-pointer .wp-pointer-content h3:before{color:#e14d43}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#e14d43}.media-item .bar,.media-progress-bar div{background-color:#e14d43}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 5px #e14d43}.attachment.details .check{background-color:#e14d43;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#e14d43}.theme-browser .theme.add-new-theme:hover span:after{color:#e14d43}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#e14d43}.theme-filter.current,.theme-section.current{border-bottom-color:#363b3f}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#363b3f}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#e14d43;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#e14d43;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#e14d43;border-color:#d02a21;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#e14d43}div#wp-responsive-toggle a:before{color:#f1f2f3}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#e14d43}.star-rating .star{color:#e14d43}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#26292c}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#e14d43}input[type=radio]:checked:before{background:#e14d43}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#e14d43;border-color:#d02a21;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#dd362d;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8756f;box-shadow:inset 0 1px 0 #e8756f}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #e8756f,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #e8756f,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#d02a21;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#363b3f}.wp-core-ui .wp-ui-text-primary{color:#363b3f}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#e14d43}.wp-core-ui .wp-ui-text-highlight{color:#e14d43}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#69a8bb}.wp-core-ui .wp-ui-text-notification{color:#69a8bb}.wp-core-ui .wp-ui-text-icon{color:#f1f2f3}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#363b3f}.view-switch a.current:before{color:#363b3f}.view-switch a:hover:before{color:#69a8bb}.post-com-count:hover:after{border-top-color:#363b3f}.post-com-count:hover span{color:#fff;background-color:#363b3f}strong .post-com-count:after{border-top-color:#69a8bb}strong .post-com-count span{background-color:#69a8bb}#adminmenu,#adminmenuback,#adminmenuwrap{background:#363b3f}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f2f3}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#e14d43}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#26292c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#26292c}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c2c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#e14d43}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#e14d43}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#e14d43}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#69a8bb}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#26292c}#collapse-menu{color:#f1f2f3}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f1f2f3}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#363b3f}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f2f3}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#e14d43;background:#26292c}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#e14d43}#wpadminbar .menupop .ab-sub-wrapper{background:#26292c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4c4c4d}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#c2c4c5}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f2f3}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#e14d43}#wpadminbar #adminbarsearch:before{color:#f1f2f3}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#464d52}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#464d52;background-color:#464d52}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#e14d43}#wpadminbar #wp-admin-bar-user-info .username{color:#c2c4c5}.wp-pointer .wp-pointer-content h3{background-color:#e14d43;border-color:#dd362d}.wp-pointer .wp-pointer-content h3:before{color:#e14d43}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#e14d43}.media-item .bar,.media-progress-bar div{background-color:#e14d43}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43}.attachment.details .check{background-color:#e14d43;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#e14d43}.theme-browser .theme.add-new-theme:hover span:after{color:#e14d43}.theme-filter.current,.theme-section.current{border-bottom-color:#363b3f}body.more-filters-opened .more-filters{color:#fff;background-color:#363b3f}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#e14d43;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#e14d43;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#e14d43;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#e14d43;border-color:#d02a21;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#e14d43}div#wp-responsive-toggle a:before{color:#f1f2f3}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#e14d43}.star-rating .star{color:#e14d43}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#26292c}
\ No newline at end of file
index b1a11fe2b5fc3d806800dc4c2ec30651f758ae44..85287b261cedd7224b42b6711181434cf2540045 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #d02a21;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #d02a21;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #dd362d;
     border-color: #ba251e;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #dd362d;
     border-color: #ba251e;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #e8756f, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #e8756f, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #e8756f;
+            box-shadow: inset 0 1px 0 #e8756f; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #e8756f, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #e8756f, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #d02a21;
     border-color: #ba251e;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #d02a21;
     border-color: #ba251e;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1c7c7 !important;
     background: #d92c23 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1c7c7 !important;
     background: #d92c23 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #e14d43; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #e14d43; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #e14d43; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #e14d43; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #e14d43;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #e14d43; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #e14d43;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #e14d43; }
 
 .attachment.details .check {
   background-color: #e14d43;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #e14d43;
 
 .attachment.details .check {
   background-color: #e14d43;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #e14d43;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #e14d43; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #e14d43; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #e14d43;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #e14d43; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #e14d43; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #e14d43; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #e14d43; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #363b3f; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #363b3f; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #363b3f; }
 
   color: #fff;
   background-color: #363b3f; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #e14d43;
   color: #fff; }
 
   background-color: #e14d43;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #e14d43;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #e14d43;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #e14d43;
   border-color: #d02a21;
   -webkit-box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #e14d43;
   border-color: #d02a21;
   -webkit-box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #ec8a85, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index e4f464feda2901cffc32e3ed184dd8af6f4371c9..6d1affa67714291936893fb41feea0ffcb4a9596 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#e14d43}input[type=radio]:checked:before{background:#e14d43}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#e14d43;border-color:#d02a21;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#dd362d;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8756f,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8756f,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#d02a21;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#363b3f}.wp-core-ui .wp-ui-text-primary{color:#363b3f}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#e14d43}.wp-core-ui .wp-ui-text-highlight{color:#e14d43}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#69a8bb}.wp-core-ui .wp-ui-text-notification{color:#69a8bb}.wp-core-ui .wp-ui-text-icon{color:#f1f2f3}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#363b3f}.view-switch a.current:before{color:#363b3f}.view-switch a:hover:before{color:#69a8bb}.post-com-count:hover:after{border-top-color:#363b3f}.post-com-count:hover span{color:#fff;background-color:#363b3f}strong .post-com-count:after{border-top-color:#69a8bb}strong .post-com-count span{background-color:#69a8bb}#adminmenu,#adminmenuback,#adminmenuwrap{background:#363b3f}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f2f3}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#e14d43}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#26292c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#26292c}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c2c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#e14d43}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#e14d43}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#e14d43}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#69a8bb}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#26292c}#collapse-menu{color:#f1f2f3}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f1f2f3}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#363b3f}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f2f3}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#e14d43;background:#26292c}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#e14d43}#wpadminbar .menupop .ab-sub-wrapper{background:#26292c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4c4c4d}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#c2c4c5}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f2f3}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#e14d43}#wpadminbar #adminbarsearch:before{color:#f1f2f3}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#464d52}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#464d52;background-color:#464d52}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#e14d43}#wpadminbar #wp-admin-bar-user-info .username{color:#c2c4c5}.wp-pointer .wp-pointer-content h3{background-color:#e14d43;border-color:#dd362d}.wp-pointer .wp-pointer-content h3:before{color:#e14d43}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#e14d43}.media-item .bar,.media-progress-bar div{background-color:#e14d43}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 5px #e14d43}.attachment.details .check{background-color:#e14d43;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#e14d43}.theme-browser .theme.add-new-theme:hover span:after{color:#e14d43}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#e14d43}.theme-filter.current,.theme-section.current{border-bottom-color:#363b3f}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#363b3f}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#e14d43;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#e14d43;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#e14d43;border-color:#d02a21;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#e14d43}div#wp-responsive-toggle a:before{color:#f1f2f3}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#e14d43}.star-rating .star{color:#e14d43}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#26292c}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#e14d43}input[type=radio]:checked:before{background:#e14d43}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#e14d43;border-color:#d02a21;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#dd362d;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8756f;box-shadow:inset 0 1px 0 #e8756f}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #e8756f,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #e8756f,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#d02a21;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#363b3f}.wp-core-ui .wp-ui-text-primary{color:#363b3f}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#e14d43}.wp-core-ui .wp-ui-text-highlight{color:#e14d43}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#69a8bb}.wp-core-ui .wp-ui-text-notification{color:#69a8bb}.wp-core-ui .wp-ui-text-icon{color:#f1f2f3}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#363b3f}.view-switch a.current:before{color:#363b3f}.view-switch a:hover:before{color:#69a8bb}.post-com-count:hover:after{border-top-color:#363b3f}.post-com-count:hover span{color:#fff;background-color:#363b3f}strong .post-com-count:after{border-top-color:#69a8bb}strong .post-com-count span{background-color:#69a8bb}#adminmenu,#adminmenuback,#adminmenuwrap{background:#363b3f}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f2f3}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#e14d43}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#26292c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#26292c}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c2c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#e14d43}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#e14d43}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#e14d43}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#69a8bb}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#26292c}#collapse-menu{color:#f1f2f3}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f1f2f3}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#363b3f}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f2f3}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#e14d43;background:#26292c}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#e14d43}#wpadminbar .menupop .ab-sub-wrapper{background:#26292c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4c4c4d}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#c2c4c5}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f2f3}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#e14d43}#wpadminbar #adminbarsearch:before{color:#f1f2f3}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#464d52}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#464d52;background-color:#464d52}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#e14d43}#wpadminbar #wp-admin-bar-user-info .username{color:#c2c4c5}.wp-pointer .wp-pointer-content h3{background-color:#e14d43;border-color:#dd362d}.wp-pointer .wp-pointer-content h3:before{color:#e14d43}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#e14d43}.media-item .bar,.media-progress-bar div{background-color:#e14d43}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43}.attachment.details .check{background-color:#e14d43;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#e14d43}.theme-browser .theme.add-new-theme:hover span:after{color:#e14d43}.theme-filter.current,.theme-section.current{border-bottom-color:#363b3f}body.more-filters-opened .more-filters{color:#fff;background-color:#363b3f}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#e14d43;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#e14d43;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#e14d43;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#e14d43;border-color:#d02a21;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#e14d43}div#wp-responsive-toggle a:before{color:#f1f2f3}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#e14d43}.star-rating .star{color:#e14d43}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#26292c}
\ No newline at end of file
index 665efad3c9ef4885066af72b5abd38b5805b91d4..ee84d5aa41dd1a22c3c269de3a0dc06570ea2ccf 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #80a583;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #80a583;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #8faf91;
     border-color: #719a74;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #8faf91;
     border-color: #719a74;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #bccfbd, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #bccfbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #bccfbd;
+            box-shadow: inset 0 1px 0 #bccfbd; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #bccfbd, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #bccfbd, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #80a583;
     border-color: #719a74;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #80a583;
     border-color: #719a74;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #c7d1c8 !important;
     background: #86a988 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #c7d1c8 !important;
     background: #86a988 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #9ebaa0; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #9ebaa0; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #9ebaa0; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #9ebaa0; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #9ebaa0;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #9ebaa0; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #9ebaa0;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #9ebaa0; }
 
 .attachment.details .check {
   background-color: #9ebaa0;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #9ebaa0;
 
 .attachment.details .check {
   background-color: #9ebaa0;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #9ebaa0;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #9ebaa0; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #9ebaa0; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #9ebaa0;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #9ebaa0; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #9ebaa0; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #9ebaa0; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #9ebaa0; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #738e96; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #738e96; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #738e96; }
 
   color: #fff;
   background-color: #738e96; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #9ebaa0;
   color: #fff; }
 
   background-color: #9ebaa0;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #9ebaa0;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #9ebaa0;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #9ebaa0;
   border-color: #80a583;
   -webkit-box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #9ebaa0;
   border-color: #80a583;
   -webkit-box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index 45143c66cb6086099d35b6e49315f0400bbfc00a..b3cbfa7dbead8d5e9e5305367f51a51bec23c003 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#738e96}input[type=radio]:checked:before{background:#738e96}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#9ebaa0;border-color:#80a583;color:#fff;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#8faf91;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 1px 0 #bccfbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #bccfbd,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#80a583;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#738e96}.wp-core-ui .wp-ui-text-primary{color:#738e96}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#9ebaa0}.wp-core-ui .wp-ui-text-highlight{color:#9ebaa0}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#aa9d88}.wp-core-ui .wp-ui-text-notification{color:#aa9d88}.wp-core-ui .wp-ui-text-icon{color:#f2fcff}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#738e96}.view-switch a.current:before{color:#738e96}.view-switch a:hover:before{color:#aa9d88}.post-com-count:hover:after{border-top-color:#738e96}.post-com-count:hover span{color:#fff;background-color:#738e96}strong .post-com-count:after{border-top-color:#aa9d88}strong .post-com-count span{background-color:#aa9d88}#adminmenu,#adminmenuback,#adminmenuwrap{background:#738e96}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f2fcff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#9ebaa0}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#627c83}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#627c83}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#d5dddf}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#9ebaa0}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#9ebaa0}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#9ebaa0}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#aa9d88}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#627c83}#collapse-menu{color:#f2fcff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f2fcff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#738e96}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f2fcff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#9ebaa0;background:#627c83}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#9ebaa0}#wpadminbar .menupop .ab-sub-wrapper{background:#627c83}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#8f9b9e}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#d5dddf}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f2fcff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#9ebaa0}#wpadminbar #adminbarsearch:before{color:#f2fcff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#879fa5}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#879fa5;background-color:#879fa5}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#9ebaa0}#wpadminbar #wp-admin-bar-user-info .username{color:#d5dddf}.wp-pointer .wp-pointer-content h3{background-color:#9ebaa0;border-color:#8faf91}.wp-pointer .wp-pointer-content h3:before{color:#9ebaa0}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#9ebaa0}.media-item .bar,.media-progress-bar div{background-color:#9ebaa0}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 5px #9ebaa0}.attachment.details .check{background-color:#9ebaa0;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#9ebaa0}.theme-browser .theme.add-new-theme:hover span:after{color:#9ebaa0}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#9ebaa0}.theme-filter.current,.theme-section.current{border-bottom-color:#738e96}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#738e96}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#9ebaa0;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#9ebaa0;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#9ebaa0;border-color:#80a583;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#9ebaa0}div#wp-responsive-toggle a:before{color:#f2fcff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#9ebaa0}.star-rating .star{color:#9ebaa0}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#627c83}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#738e96}input[type=radio]:checked:before{background:#738e96}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#9ebaa0;border-color:#80a583;color:#fff;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#8faf91;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 1px 0 #bccfbd;box-shadow:inset 0 1px 0 #bccfbd}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #bccfbd,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #bccfbd,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#80a583;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#738e96}.wp-core-ui .wp-ui-text-primary{color:#738e96}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#9ebaa0}.wp-core-ui .wp-ui-text-highlight{color:#9ebaa0}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#aa9d88}.wp-core-ui .wp-ui-text-notification{color:#aa9d88}.wp-core-ui .wp-ui-text-icon{color:#f2fcff}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#738e96}.view-switch a.current:before{color:#738e96}.view-switch a:hover:before{color:#aa9d88}.post-com-count:hover:after{border-top-color:#738e96}.post-com-count:hover span{color:#fff;background-color:#738e96}strong .post-com-count:after{border-top-color:#aa9d88}strong .post-com-count span{background-color:#aa9d88}#adminmenu,#adminmenuback,#adminmenuwrap{background:#738e96}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f2fcff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#9ebaa0}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#627c83}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#627c83}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#d5dddf}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#9ebaa0}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#9ebaa0}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#9ebaa0}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#aa9d88}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#627c83}#collapse-menu{color:#f2fcff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f2fcff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#738e96}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f2fcff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#9ebaa0;background:#627c83}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#9ebaa0}#wpadminbar .menupop .ab-sub-wrapper{background:#627c83}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#8f9b9e}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#d5dddf}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f2fcff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#9ebaa0}#wpadminbar #adminbarsearch:before{color:#f2fcff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#879fa5}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#879fa5;background-color:#879fa5}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#9ebaa0}#wpadminbar #wp-admin-bar-user-info .username{color:#d5dddf}.wp-pointer .wp-pointer-content h3{background-color:#9ebaa0;border-color:#8faf91}.wp-pointer .wp-pointer-content h3:before{color:#9ebaa0}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#9ebaa0}.media-item .bar,.media-progress-bar div{background-color:#9ebaa0}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0}.attachment.details .check{background-color:#9ebaa0;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#9ebaa0}.theme-browser .theme.add-new-theme:hover span:after{color:#9ebaa0}.theme-filter.current,.theme-section.current{border-bottom-color:#738e96}body.more-filters-opened .more-filters{color:#fff;background-color:#738e96}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#9ebaa0;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#9ebaa0;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#9ebaa0;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#9ebaa0;border-color:#80a583;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#9ebaa0}div#wp-responsive-toggle a:before{color:#f2fcff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#9ebaa0}.star-rating .star{color:#9ebaa0}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#627c83}
\ No newline at end of file
index 0ee3295276882030a7ff9054ddcdc37aa0b486fd..0c76a8199e9f16d3694746881714260678fb00fe 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #80a583;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #80a583;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #8faf91;
     border-color: #719a74;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #8faf91;
     border-color: #719a74;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #bccfbd, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #bccfbd, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #bccfbd;
+            box-shadow: inset 0 1px 0 #bccfbd; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #bccfbd, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #bccfbd, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #80a583;
     border-color: #719a74;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #80a583;
     border-color: #719a74;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #c7d1c8 !important;
     background: #86a988 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #c7d1c8 !important;
     background: #86a988 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #9ebaa0; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #9ebaa0; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #9ebaa0; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #9ebaa0; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #9ebaa0;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #9ebaa0; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #9ebaa0;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #9ebaa0; }
 
 .attachment.details .check {
   background-color: #9ebaa0;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #9ebaa0;
 
 .attachment.details .check {
   background-color: #9ebaa0;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #9ebaa0;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #9ebaa0; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #9ebaa0; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #9ebaa0;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #9ebaa0; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #9ebaa0; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #9ebaa0; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #9ebaa0; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #738e96; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #738e96; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #738e96; }
 
   color: #fff;
   background-color: #738e96; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #9ebaa0;
   color: #fff; }
 
   background-color: #9ebaa0;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #9ebaa0;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #9ebaa0;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #9ebaa0;
   border-color: #80a583;
   -webkit-box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #9ebaa0;
   border-color: #80a583;
   -webkit-box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #cbdacc, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index e10635df445baa407a6c59c55c5fcaec1c989de0..df45994ce88a72953ca05b350d107915d813a386 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#738e96}input[type=radio]:checked:before{background:#738e96}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#9ebaa0;border-color:#80a583;color:#fff;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#8faf91;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 1px 0 #bccfbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #bccfbd,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#80a583;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#738e96}.wp-core-ui .wp-ui-text-primary{color:#738e96}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#9ebaa0}.wp-core-ui .wp-ui-text-highlight{color:#9ebaa0}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#aa9d88}.wp-core-ui .wp-ui-text-notification{color:#aa9d88}.wp-core-ui .wp-ui-text-icon{color:#f2fcff}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#738e96}.view-switch a.current:before{color:#738e96}.view-switch a:hover:before{color:#aa9d88}.post-com-count:hover:after{border-top-color:#738e96}.post-com-count:hover span{color:#fff;background-color:#738e96}strong .post-com-count:after{border-top-color:#aa9d88}strong .post-com-count span{background-color:#aa9d88}#adminmenu,#adminmenuback,#adminmenuwrap{background:#738e96}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f2fcff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#9ebaa0}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#627c83}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#627c83}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#d5dddf}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#9ebaa0}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#9ebaa0}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#9ebaa0}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#aa9d88}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#627c83}#collapse-menu{color:#f2fcff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f2fcff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#738e96}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f2fcff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#9ebaa0;background:#627c83}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#9ebaa0}#wpadminbar .menupop .ab-sub-wrapper{background:#627c83}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#8f9b9e}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#d5dddf}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f2fcff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#9ebaa0}#wpadminbar #adminbarsearch:before{color:#f2fcff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#879fa5}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#879fa5;background-color:#879fa5}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#9ebaa0}#wpadminbar #wp-admin-bar-user-info .username{color:#d5dddf}.wp-pointer .wp-pointer-content h3{background-color:#9ebaa0;border-color:#8faf91}.wp-pointer .wp-pointer-content h3:before{color:#9ebaa0}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#9ebaa0}.media-item .bar,.media-progress-bar div{background-color:#9ebaa0}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 5px #9ebaa0}.attachment.details .check{background-color:#9ebaa0;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#9ebaa0}.theme-browser .theme.add-new-theme:hover span:after{color:#9ebaa0}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#9ebaa0}.theme-filter.current,.theme-section.current{border-bottom-color:#738e96}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#738e96}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#9ebaa0;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#9ebaa0;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#9ebaa0;border-color:#80a583;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#9ebaa0}div#wp-responsive-toggle a:before{color:#f2fcff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#9ebaa0}.star-rating .star{color:#9ebaa0}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#627c83}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#738e96}input[type=radio]:checked:before{background:#738e96}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#9ebaa0;border-color:#80a583;color:#fff;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#8faf91;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 1px 0 #bccfbd;box-shadow:inset 0 1px 0 #bccfbd}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #bccfbd,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #bccfbd,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#80a583;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#738e96}.wp-core-ui .wp-ui-text-primary{color:#738e96}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#9ebaa0}.wp-core-ui .wp-ui-text-highlight{color:#9ebaa0}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#aa9d88}.wp-core-ui .wp-ui-text-notification{color:#aa9d88}.wp-core-ui .wp-ui-text-icon{color:#f2fcff}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#738e96}.view-switch a.current:before{color:#738e96}.view-switch a:hover:before{color:#aa9d88}.post-com-count:hover:after{border-top-color:#738e96}.post-com-count:hover span{color:#fff;background-color:#738e96}strong .post-com-count:after{border-top-color:#aa9d88}strong .post-com-count span{background-color:#aa9d88}#adminmenu,#adminmenuback,#adminmenuwrap{background:#738e96}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f2fcff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#9ebaa0}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#627c83}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#627c83}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#d5dddf}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#9ebaa0}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#9ebaa0}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#9ebaa0}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#aa9d88}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#627c83}#collapse-menu{color:#f2fcff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f2fcff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#738e96}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f2fcff}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#9ebaa0;background:#627c83}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#9ebaa0}#wpadminbar .menupop .ab-sub-wrapper{background:#627c83}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#8f9b9e}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#d5dddf}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f2fcff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#9ebaa0}#wpadminbar #adminbarsearch:before{color:#f2fcff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#879fa5}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#879fa5;background-color:#879fa5}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#9ebaa0}#wpadminbar #wp-admin-bar-user-info .username{color:#d5dddf}.wp-pointer .wp-pointer-content h3{background-color:#9ebaa0;border-color:#8faf91}.wp-pointer .wp-pointer-content h3:before{color:#9ebaa0}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#9ebaa0}.media-item .bar,.media-progress-bar div{background-color:#9ebaa0}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0}.attachment.details .check{background-color:#9ebaa0;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#9ebaa0}.theme-browser .theme.add-new-theme:hover span:after{color:#9ebaa0}.theme-filter.current,.theme-section.current{border-bottom-color:#738e96}body.more-filters-opened .more-filters{color:#fff;background-color:#738e96}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#9ebaa0;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#9ebaa0;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#9ebaa0;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#9ebaa0;border-color:#80a583;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#9ebaa0}div#wp-responsive-toggle a:before{color:#f2fcff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#9ebaa0}.star-rating .star{color:#9ebaa0}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#627c83}
\ No newline at end of file
index e80f79ae0e83856c003a56e35592cc7d1620bc3d..496914c210beef5f3db31b0f74835562c4752524 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #c36822;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #c36822;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #d97326;
     border-color: #ad5c1e;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #d97326;
     border-color: #ad5c1e;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #e59d66, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #e59d66, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #e59d66;
+            box-shadow: inset 0 1px 0 #e59d66; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #e59d66, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #e59d66, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #c36822;
     border-color: #ad5c1e;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #c36822;
     border-color: #ad5c1e;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cbc7 !important;
     background: #cc6c23 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cbc7 !important;
     background: #cc6c23 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #dd823b; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #dd823b; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #dd823b; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #dd823b; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #dd823b;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #dd823b; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #dd823b;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #dd823b; }
 
 .attachment.details .check {
   background-color: #dd823b;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #dd823b;
 
 .attachment.details .check {
   background-color: #dd823b;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #dd823b;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #dd823b; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #dd823b; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #dd823b;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #dd823b; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #dd823b; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #dd823b; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #dd823b; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #cf4944; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #cf4944; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #cf4944; }
 
   color: #fff;
   background-color: #cf4944; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #dd823b;
   color: #fff; }
 
   background-color: #dd823b;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #dd823b;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #dd823b;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #dd823b;
   border-color: #c36822;
   -webkit-box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #dd823b;
   border-color: #c36822;
   -webkit-box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index 2fbbff8e8bbefea76263924bd33ec9c684e8d7ea..48d86a78abb8ddc53820bb5066a1c0af68ba12b0 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#dd823b}input[type=radio]:checked:before{background:#dd823b}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#dd823b;border-color:#c36822;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#d97326;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e59d66,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e59d66,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#c36822;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#cf4944}.wp-core-ui .wp-ui-text-primary{color:#cf4944}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#dd823b}.wp-core-ui .wp-ui-text-highlight{color:#dd823b}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#ccaf0b}.wp-core-ui .wp-ui-text-notification{color:#ccaf0b}.wp-core-ui .wp-ui-text-icon{color:#f3f1f1}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#cf4944}.view-switch a.current:before{color:#cf4944}.view-switch a:hover:before{color:#ccaf0b}.post-com-count:hover:after{border-top-color:#cf4944}.post-com-count:hover span{color:#fff;background-color:#cf4944}strong .post-com-count:after{border-top-color:#ccaf0b}strong .post-com-count span{background-color:#ccaf0b}#adminmenu,#adminmenuback,#adminmenuwrap{background:#cf4944}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f1f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#dd823b}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#be3631}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#be3631}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#f0c8c6}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#f7e3d3}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#f7e3d3}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#dd823b}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#ccaf0b}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#be3631}#collapse-menu{color:#f3f1f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f1f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#cf4944}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f1f1}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#f7e3d3;background:#be3631}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#f7e3d3}#wpadminbar .menupop .ab-sub-wrapper{background:#be3631}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#cf6b67}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#f0c8c6}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f1f1}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#f7e3d3}#wpadminbar #adminbarsearch:before{color:#f3f1f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#d66460}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#d66460;background-color:#d66460}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f7e3d3}#wpadminbar #wp-admin-bar-user-info .username{color:#f0c8c6}.wp-pointer .wp-pointer-content h3{background-color:#dd823b;border-color:#d97326}.wp-pointer .wp-pointer-content h3:before{color:#dd823b}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#dd823b}.media-item .bar,.media-progress-bar div{background-color:#dd823b}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 5px #dd823b}.attachment.details .check{background-color:#dd823b;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#dd823b}.theme-browser .theme.add-new-theme:hover span:after{color:#dd823b}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#dd823b}.theme-filter.current,.theme-section.current{border-bottom-color:#cf4944}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#cf4944}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#dd823b;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#dd823b;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#dd823b;border-color:#c36822;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#dd823b}div#wp-responsive-toggle a:before{color:#f3f1f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#dd823b}.star-rating .star{color:#dd823b}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#be3631}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#dd823b}input[type=radio]:checked:before{background:#dd823b}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#dd823b;border-color:#c36822;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#d97326;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e59d66;box-shadow:inset 0 1px 0 #e59d66}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #e59d66,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #e59d66,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#c36822;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#cf4944}.wp-core-ui .wp-ui-text-primary{color:#cf4944}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#dd823b}.wp-core-ui .wp-ui-text-highlight{color:#dd823b}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#ccaf0b}.wp-core-ui .wp-ui-text-notification{color:#ccaf0b}.wp-core-ui .wp-ui-text-icon{color:#f3f1f1}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#cf4944}.view-switch a.current:before{color:#cf4944}.view-switch a:hover:before{color:#ccaf0b}.post-com-count:hover:after{border-top-color:#cf4944}.post-com-count:hover span{color:#fff;background-color:#cf4944}strong .post-com-count:after{border-top-color:#ccaf0b}strong .post-com-count span{background-color:#ccaf0b}#adminmenu,#adminmenuback,#adminmenuwrap{background:#cf4944}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f1f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#dd823b}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#be3631}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#be3631}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#f0c8c6}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#f7e3d3}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#f7e3d3}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#dd823b}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#ccaf0b}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#be3631}#collapse-menu{color:#f3f1f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f1f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#cf4944}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f1f1}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#f7e3d3;background:#be3631}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#f7e3d3}#wpadminbar .menupop .ab-sub-wrapper{background:#be3631}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#cf6b67}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#f0c8c6}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f1f1}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#f7e3d3}#wpadminbar #adminbarsearch:before{color:#f3f1f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#d66460}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#d66460;background-color:#d66460}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f7e3d3}#wpadminbar #wp-admin-bar-user-info .username{color:#f0c8c6}.wp-pointer .wp-pointer-content h3{background-color:#dd823b;border-color:#d97326}.wp-pointer .wp-pointer-content h3:before{color:#dd823b}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#dd823b}.media-item .bar,.media-progress-bar div{background-color:#dd823b}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b}.attachment.details .check{background-color:#dd823b;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#dd823b}.theme-browser .theme.add-new-theme:hover span:after{color:#dd823b}.theme-filter.current,.theme-section.current{border-bottom-color:#cf4944}body.more-filters-opened .more-filters{color:#fff;background-color:#cf4944}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#dd823b;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#dd823b;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#dd823b;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#dd823b;border-color:#c36822;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#dd823b}div#wp-responsive-toggle a:before{color:#f3f1f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#dd823b}.star-rating .star{color:#dd823b}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#be3631}
\ No newline at end of file
index 2a872ed3176b7579456516ccd62f97936adb1134..943bc8a42a0cf452434ae7f0ba4959d0b41e4b4c 100644 (file)
@@ -30,19 +30,22 @@ input[type=radio]:checked:before {
   border-color: #c36822;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15);
   border-color: #c36822;
   color: white;
   -webkit-box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15); }
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #d97326;
     border-color: #ad5c1e;
     color: white;
   .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
     background: #d97326;
     border-color: #ad5c1e;
     color: white;
-    -webkit-box-shadow: inset 0 1px 0 #e59d66, 0 1px 0 rgba(0, 0, 0, 0.15);
-    box-shadow: inset 0 1px 0 #e59d66, 0 1px 0 rgba(0, 0, 0, 0.15); }
+    -webkit-box-shadow: inset 0 1px 0 #e59d66;
+            box-shadow: inset 0 1px 0 #e59d66; }
+  .wp-core-ui .button-primary:focus {
+    -webkit-box-shadow: inset 0 1px 0 #e59d66, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 1px 0 #e59d66, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary:active {
     background: #c36822;
     border-color: #ad5c1e;
     color: white;
   .wp-core-ui .button-primary:active {
     background: #c36822;
     border-color: #ad5c1e;
     color: white;
-    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
-    box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5); }
+    -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+            box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); }
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cbc7 !important;
     background: #cc6c23 !important;
   .wp-core-ui .button-primary[disabled], .wp-core-ui .button-primary:disabled, .wp-core-ui .button-primary.button-primary-disabled, .wp-core-ui .button-primary.disabled {
     color: #d1cbc7 !important;
     background: #cc6c23 !important;
@@ -254,18 +257,22 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #dd823b; }
 
 .wp-pointer.wp-pointer-top .wp-pointer-arrow, .wp-pointer.wp-pointer-undefined .wp-pointer-arrow {
   border-bottom-color: #dd823b; }
 
-/* Media Uploader */
+/* Media */
 .media-item .bar, .media-progress-bar div {
   background-color: #dd823b; }
 
 .details.attachment {
 .media-item .bar, .media-progress-bar div {
   background-color: #dd823b; }
 
 .details.attachment {
-  -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 5px #dd823b;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 5px #dd823b; }
+  -webkit-box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #dd823b;
+          box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 7px #dd823b; }
 
 .attachment.details .check {
   background-color: #dd823b;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #dd823b;
 
 .attachment.details .check {
   background-color: #dd823b;
   -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px #dd823b;
-  box-shadow: 0 0 0 1px #fff, 0 0 0 2px #dd823b; }
+          box-shadow: 0 0 0 1px #fff, 0 0 0 2px #dd823b; }
+
+.media-selection .attachment.selection.details .thumbnail {
+  -webkit-box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #dd823b;
+  box-shadow: 0px 0px 0px 1px #fff, 0px 0px 0px 3px #dd823b; }
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
 
 /* Themes */
 .theme-browser .theme.active .theme-name, .theme-browser .theme.add-new-theme:hover:after {
@@ -274,20 +281,23 @@ ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu > li.current > a.curre
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #dd823b; }
 
 .theme-browser .theme.add-new-theme:hover span:after {
   color: #dd823b; }
 
-.theme-overlay .theme-header .close:hover, .theme-overlay .theme-header .right:hover, .theme-overlay .theme-header .left:hover {
-  background: #dd823b; }
-
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #cf4944; }
 
 .theme-section.current, .theme-filter.current {
   border-bottom-color: #cf4944; }
 
-body.more-filters-opened .more-filters, body.more-filters-opened .more-filters:before {
+body.more-filters-opened .more-filters {
   color: #fff;
   background-color: #cf4944; }
 
   color: #fff;
   background-color: #cf4944; }
 
-body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus, body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+body.more-filters-opened .more-filters:before {
+  color: #fff; }
+
+body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-filters:focus {
   background-color: #dd823b;
   color: #fff; }
 
   background-color: #dd823b;
   color: #fff; }
 
+body.more-filters-opened .more-filters:hover:before, body.more-filters-opened .more-filters:focus:before {
+  color: #fff; }
+
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #dd823b;
 /* Widgets */
 .widgets-chooser li.widgets-chooser-selected {
   background-color: #dd823b;
@@ -306,7 +316,7 @@ body.more-filters-opened .more-filters:hover, body.more-filters-opened .more-fil
   background: #dd823b;
   border-color: #c36822;
   -webkit-box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15);
   background: #dd823b;
   border-color: #c36822;
   -webkit-box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15); }
+          box-shadow: inset 0 1px 0 #e8ab7c, 0 1px 0 rgba(0, 0, 0, 0.15); }
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
 
 /* Thickbox: Plugin information */
 #sidemenu a.current {
index 39dd213464e29b8c0efccbdb1955edac7ebc2f96..228ff801e8e11ee0a6b7cde4342a460d38a2ce25 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#dd823b}input[type=radio]:checked:before{background:#dd823b}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#dd823b;border-color:#c36822;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#d97326;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e59d66,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e59d66,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:active{background:#c36822;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#cf4944}.wp-core-ui .wp-ui-text-primary{color:#cf4944}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#dd823b}.wp-core-ui .wp-ui-text-highlight{color:#dd823b}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#ccaf0b}.wp-core-ui .wp-ui-text-notification{color:#ccaf0b}.wp-core-ui .wp-ui-text-icon{color:#f3f1f1}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#cf4944}.view-switch a.current:before{color:#cf4944}.view-switch a:hover:before{color:#ccaf0b}.post-com-count:hover:after{border-top-color:#cf4944}.post-com-count:hover span{color:#fff;background-color:#cf4944}strong .post-com-count:after{border-top-color:#ccaf0b}strong .post-com-count span{background-color:#ccaf0b}#adminmenu,#adminmenuback,#adminmenuwrap{background:#cf4944}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f1f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#dd823b}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#be3631}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#be3631}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#f0c8c6}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#f7e3d3}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#f7e3d3}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#dd823b}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#ccaf0b}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#be3631}#collapse-menu{color:#f3f1f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f1f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#cf4944}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f1f1}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#f7e3d3;background:#be3631}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#f7e3d3}#wpadminbar .menupop .ab-sub-wrapper{background:#be3631}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#cf6b67}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#f0c8c6}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f1f1}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#f7e3d3}#wpadminbar #adminbarsearch:before{color:#f3f1f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#d66460}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#d66460;background-color:#d66460}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f7e3d3}#wpadminbar #wp-admin-bar-user-info .username{color:#f0c8c6}.wp-pointer .wp-pointer-content h3{background-color:#dd823b;border-color:#d97326}.wp-pointer .wp-pointer-content h3:before{color:#dd823b}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#dd823b}.media-item .bar,.media-progress-bar div{background-color:#dd823b}.details.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 5px #dd823b}.attachment.details .check{background-color:#dd823b;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#dd823b}.theme-browser .theme.add-new-theme:hover span:after{color:#dd823b}.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:hover{background:#dd823b}.theme-filter.current,.theme-section.current{border-bottom-color:#cf4944}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{color:#fff;background-color:#cf4944}.widgets-chooser li.widgets-chooser-selected,body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background-color:#dd823b;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#dd823b;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#dd823b;border-color:#c36822;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#dd823b}div#wp-responsive-toggle a:before{color:#f3f1f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#dd823b}.star-rating .star{color:#dd823b}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#be3631}
\ No newline at end of file
+html{background:#f1f1f1}a{color:#0074a2}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,a:active,a:focus,a:hover,div.dashboard-widget-submit input:hover{color:#0099d5}input[type=checkbox]:checked:before{color:#dd823b}input[type=radio]:checked:before{background:#dd823b}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0099d5}.wp-core-ui .button-primary{background:#dd823b;border-color:#c36822;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#d97326;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e59d66;box-shadow:inset 0 1px 0 #e59d66}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #e59d66,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 #e59d66,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary:active{background:#c36822;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#cf4944}.wp-core-ui .wp-ui-text-primary{color:#cf4944}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#dd823b}.wp-core-ui .wp-ui-text-highlight{color:#dd823b}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#ccaf0b}.wp-core-ui .wp-ui-text-notification{color:#ccaf0b}.wp-core-ui .wp-ui-text-icon{color:#f3f1f1}#add-new-comment a:hover,.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover{color:#fff;background-color:#cf4944}.view-switch a.current:before{color:#cf4944}.view-switch a:hover:before{color:#ccaf0b}.post-com-count:hover:after{border-top-color:#cf4944}.post-com-count:hover span{color:#fff;background-color:#cf4944}strong .post-com-count:after{border-top-color:#ccaf0b}strong .post-com-count span{background-color:#ccaf0b}#adminmenu,#adminmenuback,#adminmenuwrap{background:#cf4944}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f1f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#dd823b}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#be3631}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#be3631}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu .wp-submenu-head,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#f0c8c6}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#f7e3d3}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#f7e3d3}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#dd823b}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#ccaf0b}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#be3631}#collapse-menu{color:#f3f1f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f1f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#cf4944}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f1f1}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar-nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#f7e3d3;background:#be3631}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#f7e3d3}#wpadminbar .menupop .ab-sub-wrapper{background:#be3631}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#cf6b67}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar-nojs .quicklinks .menupop:hover ul li a{color:#f0c8c6}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f1f1}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:after,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:after,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#f7e3d3}#wpadminbar #adminbarsearch:before{color:#f3f1f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#d66460}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#fff;opacity:.7}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#fff;opacity:.7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#d66460;background-color:#d66460}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f7e3d3}#wpadminbar #wp-admin-bar-user-info .username{color:#f0c8c6}.wp-pointer .wp-pointer-content h3{background-color:#dd823b;border-color:#d97326}.wp-pointer .wp-pointer-content h3:before{color:#dd823b}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow{border-bottom-color:#dd823b}.media-item .bar,.media-progress-bar div{background-color:#dd823b}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b}.attachment.details .check{background-color:#dd823b;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme:hover:after{background:#dd823b}.theme-browser .theme.add-new-theme:hover span:after{color:#dd823b}.theme-filter.current,.theme-section.current{border-bottom-color:#cf4944}body.more-filters-opened .more-filters{color:#fff;background-color:#cf4944}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#dd823b;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#dd823b;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-theme-controls .widget-area-select .selected{background-color:#dd823b;color:#fff}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#dd823b;border-color:#c36822;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}#sidemenu a.current{background:#f1f1f1;border-bottom-color:#f1f1f1}#plugin-information .action-button{background:#dd823b}div#wp-responsive-toggle a:before{color:#f3f1f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#dd823b}.star-rating .star{color:#dd823b}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#be3631}
\ No newline at end of file
index 72c67766620afda66e82d0912c8d916834f61bdb..9ae620fd5db0ce87b333c8b2b82fdc997cf7bb4b 100644 (file)
@@ -9,16 +9,17 @@
 
 #wpcontent {
        height: 100%;
 
 #wpcontent {
        height: 100%;
+       padding-right: 20px;
 }
 
 #wpcontent,
 #wpfooter {
 }
 
 #wpcontent,
 #wpfooter {
-       margin-right: 180px;
+       margin-right: 160px;
 }
 
 .folded #wpcontent,
 .folded #wpfooter {
 }
 
 .folded #wpcontent,
 .folded #wpfooter {
-       margin-right: 56px;
+       margin-right: 36px;
 }
 
 #wpbody-content {
 }
 
 #wpbody-content {
@@ -218,6 +219,10 @@ body.iframe {
        padding-top: 1px;
 }
 
        padding-top: 1px;
 }
 
+body.modal-open {
+       overflow: hidden;
+}
+
 iframe,
 img {
        border: 0;
 iframe,
 img {
        border: 0;
@@ -252,16 +257,22 @@ a:active {
 
 a:focus {
        color: #124964;
 
 a:focus {
        color: #124964;
+    -webkit-box-shadow:
+       0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+    box-shadow:
+       0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
 }
 
 }
 
-a:focus,
-a:active {
-       outline: thin dotted;
+.ie8 a:focus {
+       outline: #5b9dd9 solid 1px;
 }
 
 #adminmenu a:focus,
 }
 
 #adminmenu a:focus,
-#adminmenu a:active,
 .screen-reader-text:focus {
 .screen-reader-text:focus {
+       -webkit-box-shadow: none;
+       box-shadow: none;
        outline: none;
 }
 
        outline: none;
 }
 
@@ -699,12 +710,9 @@ td.help {
 ------------------------------------------------------------------------------*/
 
 .widget .widget-top,
 ------------------------------------------------------------------------------*/
 
 .widget .widget-top,
-.postbox h3,
-.stuffbox h3,
+.postbox .hndle,
+.stuffbox .hndle,
 .control-section .accordion-section-title,
 .control-section .accordion-section-title,
-h3.dashboard-widget-title,
-h3.dashboard-widget-title span,
-h3.dashboard-widget-title small,
 .sidebar-name,
 #nav-menu-header,
 #nav-menu-footer,
 .sidebar-name,
 #nav-menu-header,
 #nav-menu-footer,
@@ -723,9 +731,8 @@ h3.dashboard-widget-title small,
        color: #222;
 }
 
        color: #222;
 }
 
-.postbox h3,
-#namediv h3,
-#submitdiv h3 {
+.postbox .hndle,
+.stuffbox .hndle {
        border-bottom: 1px solid #eee;
 }
 
        border-bottom: 1px solid #eee;
 }
 
@@ -741,7 +748,7 @@ h3.dashboard-widget-title small,
 }
 
 /* @todo can we combine these into a class or use an existing dashicon one? */
 }
 
 /* @todo can we combine these into a class or use an existing dashicon one? */
-#welcome-panel.welcome-panel .welcome-panel-close::before,
+#welcome-panel.welcome-panel .welcome-panel-close:before,
 .tagchecklist span a:before,
 #bulk-titles div a:before {
        background: none;
 .tagchecklist span a:before,
 #bulk-titles div a:before {
        background: none;
@@ -751,12 +758,20 @@ h3.dashboard-widget-title small,
        font: normal 16px/1 'dashicons';
        speak: none;
        height: 20px;
        font: normal 16px/1 'dashicons';
        speak: none;
        height: 20px;
-       margin: 2px 0;
        text-align: center;
        width: 20px;
        -webkit-font-smoothing: antialiased !important;
 }
 
        text-align: center;
        width: 20px;
        -webkit-font-smoothing: antialiased !important;
 }
 
+#welcome-panel.welcome-panel .welcome-panel-close:before {
+       margin: 0;
+}
+
+.tagchecklist span a:before,
+#bulk-titles div a:before {
+       margin: 2px 0;
+}
+
 #welcome-panel.welcome-panel .welcome-panel-close:hover:before,
 .tagchecklist span a:hover:before,
 #bulk-titles div a:hover:before {
 #welcome-panel.welcome-panel .welcome-panel-close:hover:before,
 .tagchecklist span a:hover:before,
 #bulk-titles div a:hover:before {
@@ -918,6 +933,320 @@ th.action-links {
        text-align: left;
 }
 
        text-align: left;
 }
 
+/* Filter bar */
+.wp-filter {
+       display: inline-block;
+       position: relative;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       margin: 12px 0 25px;
+       padding: 0 20px;
+       width: 100%;
+       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       border: 1px solid #e5e5e5;
+       background: #fff;
+       color: #555;
+       font-size: 13px;
+}
+
+.wp-filter a {
+       text-decoration: none;
+}
+
+.filter-count {
+       display: inline-block;
+       vertical-align: middle;
+       min-width: 4em;
+}
+
+.title-count,
+.filter-count .count {
+       display: inline-block;
+       position: relative;
+       top: -1px;
+       padding: 4px 10px;
+       -webkit-border-radius: 30px;
+       border-radius: 30px;
+       background: #777;
+       color: #fff;
+       font-size: 14px;
+       font-weight: 600;
+}
+
+/* not a part of filter bar, but derived from it, so here for now */
+.title-count {
+       display: inline;
+       top: -3px;
+       margin-right: 5px;
+       margin-left: 20px;
+}
+
+.filter-links {
+       display: inline-block;
+       margin: 0;
+}
+
+.filter-links li {
+       display: inline-block;
+       margin: 0;
+}
+
+.filter-links li > a {
+       display: inline-block;
+       margin: 0 10px;
+       padding: 15px 0;
+       border-bottom: 4px solid #fff;
+       color: #666;
+       cursor: pointer;
+}
+
+.filter-links .current {
+       -webkit-box-shadow: none;
+       box-shadow: none;
+       border-bottom: 4px solid #666;
+       color: #222;
+}
+
+.filter-links li > a:hover,
+.filter-links li > a:focus,
+.show-filters .filter-links a.current:hover,
+.show-filters .filter-links a.current:focus {
+       color: #2ea2cc;
+}
+
+.wp-filter .search-form {
+       float: left;
+       margin-top: 9px;
+}
+
+.wp-filter .search-form input[type="search"] {
+       margin: 0;
+       padding: 3px 5px;
+       width: 280px;
+       font-size: 16px;
+       font-weight: 300;
+       line-height: 1.5;
+}
+
+.wp-filter .search-form select {
+       height: 33px;
+       vertical-align: top;
+}
+
+.wp-filter .drawer-toggle {
+       display: inline-block;
+       margin: 0 10px;
+       padding: 4px 6px;
+       color: #666;
+       cursor: pointer;
+}
+
+.wp-filter .drawer-toggle:before {
+       display: inline-block;
+       vertical-align: top;
+       content: "\f111";
+       margin: 0 0 0 5px;
+       width: 16px;
+       height: 16px;
+       color: #777;
+       -webkit-transition: color .1s ease-in 0;
+       transition: color .1s ease-in 0;
+       font-family: "dashicons";
+       font-size: 16px;
+       line-height: 1;
+       text-align: center;
+       text-decoration: inherit;
+       font-weight: normal;
+       font-style: normal;
+       -webkit-font-smoothing: antialiased;
+}
+
+.wp-filter .drawer-toggle:hover,
+.wp-filter .drawer-toggle:hover:before {
+       color: #2ea2cc;
+}
+
+.wp-filter .drawer-toggle.current:before {
+       color: #fff;
+}
+
+.filter-drawer {
+       display: none;
+       margin: 0 -20px;
+       padding: 20px;
+       border-top: 1px solid #eee;
+       background: #fafafa;
+}
+
+.show-filters .filter-drawer {
+       display: block;
+       overflow: hidden;
+}
+
+.show-filters .wp-filter .drawer-toggle:hover,
+.show-filters .wp-filter .drawer-toggle:focus {
+       background: rgb(46, 162, 204);
+}
+
+.show-filters .filter-links a.current {
+       border-bottom: none;
+}
+
+.show-filters .wp-filter .drawer-toggle {
+       -webkit-border-radius: 2px;
+       border-radius: 2px;
+       border: none;
+       background: #777;
+       color: #fff;
+}
+
+.show-filters .wp-filter .drawer-toggle:before {
+       color: #fff;
+}
+
+.filter-group {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       float: right;
+       margin: 0 0 0 1%;
+       padding: 10px;
+       width: 19%;
+       background: #fff;
+       border: 1px solid #e5e5e5;
+       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+}
+
+.filter-group.wide {
+       width: 38%;
+}
+
+.filter-group h4 {
+       position: relative;
+       margin: 0;
+}
+
+.filter-drawer ol {
+       margin: 20px 0 0;
+       list-style-type: none;
+       font-size: 12px;
+}
+
+.filter-drawer li {
+       display: inline-block;
+       vertical-align: top;
+       margin: 5px 0;
+       padding-left: 25px;
+       width: 160px;
+       list-style-type: none;
+}
+
+.filter-drawer .buttons {
+       margin-bottom: 20px;
+}
+
+.filter-drawer .buttons .button span {
+       display: inline-block;
+       opacity: 0.8;
+       font-size: 12px;
+       text-indent: 10px;
+}
+
+.wp-filter .button.clear-filters {
+       display: none;
+       margin: 0 10px 20px 0;
+}
+
+.filtered-by {
+       display: none;
+       margin: 0;
+}
+
+.filtered-by > span {
+       font-weight: 600;
+}
+
+.filtered-by a {
+       margin-right: 10px;
+}
+
+.filtered-by .tags {
+       display: inline;
+}
+
+.filtered-by .tag {
+       margin: 0 5px;
+       padding: 4px 8px;
+       border: 1px solid #e5e5e5;
+       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       background: #fff;
+       font-size: 11px;
+}
+
+.filters-applied .filter-group,
+.filters-applied .filter-drawer .buttons,
+.filters-applied .filter-drawer br {
+       display: none !important;
+}
+
+.filters-applied .filtered-by {
+       display: block;
+}
+
+.filters-applied .filter-drawer {
+       padding: 20px;
+}
+
+.show-filters .content-filterable,
+.show-filters.filters-applied.loading-content .content-filterable,
+.loading-content .content-filterable,
+.error .content-filterable {
+       display: none;
+}
+
+.show-filters.filters-applied .content-filterable {
+       display: block;
+}
+
+.loading-content .spinner {
+       display: block;
+       margin: 40px auto 0;
+       float: none;
+}
+
+@media only screen and (max-width: 1120px) {
+       .wp-filter .search-form {
+               float: none;
+               margin: 20px 0;
+       }
+
+       .filter-drawer {
+               border-bottom: 1px solid #eee;
+       }
+
+       .filter-group {
+               margin-bottom: 0;
+               margin-top: 5px;
+               width: 100%;
+       }
+
+       .filter-group li {
+               margin: 10px 0;
+       }
+}
+
+@media only screen and (max-width: 782px) {
+       .filter-group,
+       .filter-group li {
+               width: 100%;
+       }
+
+}
+
 
 /*------------------------------------------------------------------------------
   4.0 - Notifications
 
 /*------------------------------------------------------------------------------
   4.0 - Notifications
@@ -1054,12 +1383,6 @@ form.upgrade .hint {
        color: #333;
 }
 
        color: #333;
 }
 
-#screen-meta-links a:focus {
-       border-color: #aaa;
-       -webkit-box-shadow: 0 2px 3px rgba(0,0,0,0.15);
-       box-shadow: 0 2px 3px rgba(0,0,0,0.15);
-}
-
 #screen-meta-links a.show-settings {
        display: block;
        font-size: 13px;
 #screen-meta-links a.show-settings {
        display: block;
        font-size: 13px;
@@ -1343,6 +1666,7 @@ html.wp-toolbar {
        }
 }
 
        }
 }
 
+.js .widget .widget-top,
 .js .postbox .hndle {
        cursor: move;
 }
 .js .postbox .hndle {
        cursor: move;
 }
@@ -1374,20 +1698,15 @@ html.wp-toolbar {
        line-height: 1;
 }
 
        line-height: 1;
 }
 
-.postbox h3,
-.stuffbox h3 {
-       margin-top: 1px;
+/* user-select is not a part of the CSS standard - may change behavior in the future */
+.postbox .hndle,
+.stuffbox .hndle {
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
 }
 
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
 }
 
-.js .widget .widget-top,
-.js .postbox h3 {
-       cursor: move;
-}
-
 .postbox .inside,
 .stuffbox .inside {
        padding: 0 12px 12px;
 .postbox .inside,
 .stuffbox .inside {
        padding: 0 12px 12px;
@@ -1454,8 +1773,7 @@ html.wp-toolbar {
        bottom: 0;
        right: 0;
        left: 0;
        bottom: 0;
        right: 0;
        left: 0;
-       padding: 10px 0;
-       margin-left: 20px;
+       padding: 10px 20px;
        color: #777;
 }
 
        color: #777;
 }
 
@@ -1651,6 +1969,10 @@ td.media-icon img {
        max-height: 60px;
 }
 
        max-height: 60px;
 }
 
+td.image-icon img {
+       border: 1px solid rgba(0, 0, 0, 0.07);
+}
+
 #howto {
        font-size: 11px;
        margin: 0 5px;
 #howto {
        font-size: 11px;
        margin: 0 5px;
@@ -1795,21 +2117,28 @@ div.action-links {
 
 /* Plugin install thickbox */
 #plugin-information {
 
 /* Plugin install thickbox */
 #plugin-information {
-       background: #fcfcfc;
+       background: #fff;
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
-       height: auto;
+       height: 100%;
        padding: 0;
 }
 
        padding: 0;
 }
 
+#plugin-information-scrollable {
+       overflow: auto;
+       height: 100%;
+}
+
 #plugin-information-title {
 #plugin-information-title {
-       padding: 0 20px 0 76px;
+       padding: 0 20px;
+       background: #f5f5f5;
        font-size: 22px;
        font-weight: 600;
        line-height: 56px;
        font-size: 22px;
        font-weight: 600;
        line-height: 56px;
+       position: relative;
        top: 0;
        left: 0;
        right: 0;
        top: 0;
        left: 0;
        right: 0;
@@ -1819,20 +2148,72 @@ div.action-links {
        white-space: nowrap;
 }
 
        white-space: nowrap;
 }
 
+#plugin-information-title.with-banner {
+       margin-left: 0;
+       height: 250px;
+       bottom: 250px;
+       -webkit-background-size: 100% auto;
+       background-size: 100% auto;
+}
+
+#plugin-information-title h2 {
+       font-size: 1em;
+       font-weight: bold;
+       padding: 0;
+       margin: 0;
+       max-width: 680px;
+       overflow: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
+}
+
+#plugin-information-title.with-banner h2 {
+       font-family: "Helvetica Neue", sans-serif;
+       display: inline-block;
+       font-size: 30px;
+       line-height: 50px;
+       padding: 0 15px;
+       margin: 174px 10px 0 0;
+       color: #fff;
+       background: rgba( 30, 30, 30, 0.9 );
+       text-shadow: 0 1px 3px rgba( 0, 0, 0, 0.4 );
+       -webkit-box-shadow: 0 0 30px rgba( 255, 255, 255, 0.1 );
+       box-shadow: 0 0 30px rgba( 255, 255, 255, 0.1 );
+       -webkit-border-radius: 8px;
+       border-radius: 8px;
+}
+
+#plugin-information-title div.vignette {
+       display: none;
+}
+
+#plugin-information-title.with-banner div.vignette {
+       display: block;
+       float: left;
+       top: 0;
+       height: 250px;
+       width: 830px;
+       margin: 0 -20px;
+       background: transparent;
+       -webkit-box-shadow: inset 0 0 50px 4px rgba( 0, 0, 0, 0.2 ), inset 0 -1px 0 rgba( 0, 0, 0, 0.1 );
+       box-shadow: inset 0 0 50px 4px rgba( 0, 0, 0, 0.2 ), inset 0 -1px 0 rgba( 0, 0, 0, 0.1 );
+}
+
 #plugin-information-tabs {
        padding: 0 16px;
 #plugin-information-tabs {
        padding: 0 16px;
-       position: absolute;
-       top: 56px;
+       position: relative;
        left: 0;
        right: 0;
        height: 36px;
        z-index: 1;
        left: 0;
        right: 0;
        height: 36px;
        z-index: 1;
+       border-bottom: 1px solid #ddd;
+       background: #f3f3f3;
 }
 
 #plugin-information-tabs a {
        position: relative;
        float: right;
 }
 
 #plugin-information-tabs a {
        position: relative;
        float: right;
-       padding: 8px 10px 9px;
+       padding: 9px 10px;
        margin: 0;
        height: 18px;
        line-height: 18px;
        margin: 0;
        height: 18px;
        line-height: 18px;
@@ -1843,38 +2224,53 @@ div.action-links {
 }
 
 #plugin-information-tabs a.current {
 }
 
 #plugin-information-tabs a.current {
-       margin: -1px -1px 0;
+       margin: 0 -1px 0;
        background: #fff;
        border: 1px solid #ddd;
        background: #fff;
        border: 1px solid #ddd;
-       border-bottom: none;
+       border-bottom-color: #fff;
+       padding-top: 8px;
        color: #333;
 }
 
        color: #333;
 }
 
+#plugin-information-tabs.with-banner a.current {
+       border-top: none;
+       padding-top: 9px;
+}
+
 #plugin-information-tabs a:active,
 #plugin-information-tabs a:focus {
        outline: none;
 }
 
 #plugin-information-content {
 #plugin-information-tabs a:active,
 #plugin-information-tabs a:focus {
        outline: none;
 }
 
 #plugin-information-content {
+       overflow: hidden; /* equal height column trick */
        background: #fff;
        background: #fff;
-       border-top: 1px solid #ddd;
-       border-bottom: 1px solid #ddd;
-       position: absolute;
-       top: 90px;
+       position: relative;
+       top: 0;
        left: 0;
        left: 0;
-       bottom: 58px;
        right: 0;
        right: 0;
+       min-height: 100%;
+       /* Height of title + tabs + install now */
+       min-height: -webkit-calc( 100% - 152px );
+       min-height: calc( 100% - 152px );
+}
+
+#plugin-information-content.with-banner {
+       /* Height of banner + tabs + install now */
+       min-height: -webkit-calc( 100% - 346px );
+       min-height: calc( 100% - 346px );
 }
 
 #section-holder {
 }
 
 #section-holder {
-       margin: 0;
-       padding: 10px 26px;
-       position: absolute;
+       position: relative;
        top: 0;
        left: 250px;
        bottom: 0;
        right: 0;
        top: 0;
        left: 250px;
        bottom: 0;
        right: 0;
-       overflow: auto;
+       margin-left: 250px; /* FYI box */
+       padding: 10px 26px;
+       margin-bottom: -99930px; /* a bit less than the padding below to accommodate footer */
+       padding-bottom: 99999px; /* equal height column trick */
 }
 
 #section-holder .updated {
 }
 
 #section-holder .updated {
@@ -1882,16 +2278,18 @@ div.action-links {
 }
 
 #plugin-information .fyi {
 }
 
 #plugin-information .fyi {
-       background: #f3f3f3;
-       border-right: 1px solid #ddd;
-       color: #666;
-       padding: 16px;
-       position: absolute;
+       display: block;
+       float: left;
+       position: relative;
        top: 0;
        left: 0;
        top: 0;
        left: 0;
-       bottom: 0;
+       padding: 16px;
+       margin-bottom: -99930px; /* slightly less than the padding below to accommodate footer */
+       padding-bottom: 99999px; /* equal height column trick */
        width: 217px;
        width: 217px;
-       overflow: auto;
+       border-right: 1px solid #ddd;
+       background: #f3f3f3;
+       color: #666;
 }
 
 #plugin-information .fyi strong {
 }
 
 #plugin-information .fyi strong {
@@ -1922,6 +2320,54 @@ div.action-links {
        margin: 0 0 10px;
 }
 
        margin: 0 0 10px;
 }
 
+#plugin-information .counter-container {
+       margin: 3px 0;
+}
+
+#plugin-information .counter-label {
+       float: right;
+       margin-left: 5px;
+       min-width: 55px;
+}
+
+#plugin-information .counter-back {
+       height: 17px;
+       width: 92px;
+       background-color: #ececec;
+       float: right;
+}
+
+#plugin-information .counter-bar {
+       height: 17px;
+       background-color: #fddb5a;
+       float: right;
+}
+
+#plugin-information .counter-count {
+       margin-right: 5px;
+}
+
+#plugin-information .fyi ul.contributors {
+       margin-top: 10px;
+}
+
+#plugin-information .fyi ul.contributors li {
+       display: inline-block;
+       margin-left: 8px;
+       vertical-align: middle;
+}
+
+#plugin-information .fyi ul.contributors li {
+       display: inline-block;
+       margin-left: 8px;
+       vertical-align: middle;
+}
+
+#plugin-information .fyi ul.contributors li img {
+       vertical-align: middle;
+       margin-left: 4px;
+}
+
 #plugin-information-footer {
        padding: 15px 16px;
        position: absolute;
 #plugin-information-footer {
        padding: 15px 16px;
        position: absolute;
@@ -1929,12 +2375,20 @@ div.action-links {
        bottom: 0;
        right: 0;
        height: 28px;
        bottom: 0;
        right: 0;
        height: 28px;
+       border-top: 1px solid #ddd;
+       background: #f3f3f3;
 }
 
 }
 
+/* @noflip */
+#plugin-information .section {
+       direction: ltr;
+}
+
+/* @noflip */
 #plugin-information .section ul,
 #plugin-information .section ol {
        list-style-type: disc;
 #plugin-information .section ul,
 #plugin-information .section ol {
        list-style-type: disc;
-       margin-right: 24px;
+       margin-left: 24px;
 }
 
 #plugin-information .section,
 }
 
 #plugin-information .section,
@@ -1958,9 +2412,10 @@ div.action-links {
        box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.3 );
 }
 
        box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.3 );
 }
 
+/* @noflip */
 #plugin-information #section-screenshots li p {
        font-style: italic;
 #plugin-information #section-screenshots li p {
        font-style: italic;
-       padding-right: 20px;
+       padding-left: 20px;
 }
 
 #plugin-information pre {
 }
 
 #plugin-information pre {
@@ -1969,25 +2424,101 @@ div.action-links {
        border: 1px solid #ccc;
 }
 
        border: 1px solid #ccc;
 }
 
+/* @noflip */
+#plugin-information .review {
+       overflow: hidden; /* clearfix */
+       width: 100%;
+       margin-bottom: 20px;
+       border-bottom: 1px solid #e6e6e6;
+}
+
+#plugin-information .review-title-section {
+       overflow: hidden; /* clearfix */
+}
+
+/* @noflip */
+#plugin-information .review-title-section h4 {
+       display: inline-block;
+       float: left;
+       margin: 0 6px 0 0;
+}
+
+#plugin-information .reviewer-info p {
+       clear: both;
+       margin: 0;
+       padding-top: 2px;
+}
+
+/* @noflip */
+#plugin-information .reviewer-info .avatar {
+       float: left;
+       margin: 4px 6px 0 0;
+}
+
+/* @noflip */
+#plugin-information .reviewer-info .star-rating {
+       float: left;
+}
+
+/* @noflip */
+#plugin-information .review-meta {
+       float: left;
+       margin-left: 0.75em;
+}
+
+/* @noflip */
+#plugin-information .review-body {
+       float: left;
+       width: 100%;
+}
+
 .plugin-version-author-uri {
        font-size: 13px;
 }
 
 .plugin-version-author-uri {
        font-size: 13px;
 }
 
-@media screen and ( max-width: 782px ) {
-       #plugin-information-content {
-               overflow: auto;
-               bottom: 58px;
+@media screen and ( max-width: 771px ) {
+       #plugin-information-title.with-banner {
+               height: 100px;
+               bottom: 100px;
+       }
+
+       #plugin-information-title.with-banner h2 {
+               margin-top: 30px;
+               font-size: 20px;
+               line-height: 40px;
+               max-width: 85%;
+       }
+
+       #plugin-information-title.with-banner div.vignette {
+               height: 100px;
+               bottom: 100px;
+               width: 800%;
+       }
+
+       #plugin-information-tabs {
+               overflow: hidden; /* clearfix */
+               padding: 0;
+               height: auto; /* let tabs wrap */
+       }
+
+       #plugin-information-tabs a.current {
+               margin-bottom: 0;
+               border-bottom: none;
        }
 
        #plugin-information .fyi {
        }
 
        #plugin-information .fyi {
+               float: none;
                border: 1px solid #ddd;
                position: static;
                width: auto;
                border: 1px solid #ddd;
                position: static;
                width: auto;
-               margin: 26px 26px 16px;
+               margin: 26px 26px 0;
+               padding-bottom: 0; /* reset from the two column height fix */
        }
 
        #section-holder {
                position: static;
        }
 
        #section-holder {
                position: static;
+               margin: 0;
+               padding-bottom: 70px; /* reset from the two column height fix, plus accomodate footer */
        }
 
        #plugin-information .fyi h3,
        }
 
        #plugin-information .fyi h3,
@@ -2048,9 +2579,37 @@ body.import-php .tb-close-icon,
 body.plugins-php .tb-close-icon,
 body.update-core-php .tb-close-icon,
 body.index-php .tb-close-icon {
 body.plugins-php .tb-close-icon,
 body.update-core-php .tb-close-icon,
 body.index-php .tb-close-icon {
-       line-height: 48px;
-       width: 48px;
-       height: 48px;
+       right: auto;
+       left: -30px;
+       color: #eee;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+body.plugin-install-php #TB_closeWindowButton:focus,
+body.plugin-install-php #TB_closeWindowButton:focus .tb-close-icon,
+body.plugin-install-php .tb-close-icon:focus,
+body.plugin-install-php .tb-close-icon:hover,
+body.import-php #TB_closeWindowButton:focus,
+body.import-php #TB_closeWindowButton:focus .tb-close-icon,
+body.import-php .tb-close-icon:focus,
+body.import-php .tb-close-icon:hover,
+body.plugins-php #TB_closeWindowButton:focus,
+body.plugins-php #TB_closeWindowButton:focus .tb-close-icon,
+body.plugins-php .tb-close-icon:focus,
+body.plugins-php .tb-close-icon:hover,
+body.update-core-php #TB_closeWindowButton:focus,
+body.update-core-php #TB_closeWindowButton:focus .tb-close-icon,
+body.update-core-php .tb-close-icon:focus,
+body.update-core-php .tb-close-icon:hover,
+body.index-php #TB_closeWindowButton:focus,
+body.index-php #TB_closeWindowButton:focus .tb-close-icon,
+body.index-php .tb-close-icon:focus,
+body.index-php .tb-close-icon:hover {
+       color: #2ea2cc;
+       outline: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
 }
 
 body.plugin-install-php .tb-close-icon:before,
 }
 
 body.plugin-install-php .tb-close-icon:before,
@@ -2058,7 +2617,20 @@ body.import-php .tb-close-icon:before,
 body.plugins-php .tb-close-icon:before,
 body.update-core-php .tb-close-icon:before,
 body.index-php .tb-close-icon:before {
 body.plugins-php .tb-close-icon:before,
 body.update-core-php .tb-close-icon:before,
 body.index-php .tb-close-icon:before {
-       line-height: 48px;
+       content: "\f335";
+       font-size: 32px;
+}
+
+/* move plugin install close icon to top on narrow screens */
+@media screen and ( max-width: 830px ) {
+       body.plugin-install-php .tb-close-icon,
+       body.import-php .tb-close-icon,
+       body.plugins-php .tb-close-icon,
+       body.update-core-php .tb-close-icon,
+       body.index-php .tb-close-icon {
+               left: 0;
+               top: -30px;
+       }
 }
 
 /* @todo: move this. */
 }
 
 /* @todo: move this. */
@@ -2270,7 +2842,8 @@ img {
 
 .control-section.open .accordion-section-title:after,
 #customize-info.open .accordion-section-title:after,
 
 .control-section.open .accordion-section-title:after,
 #customize-info.open .accordion-section-title:after,
-.nav-menus-php .menu-item-edit-active .item-edit:before {
+.nav-menus-php .menu-item-edit-active .item-edit:before,
+.widget.open .widget-top a.widget-action:after {
        content: '\f142';
 }
 
        content: '\f142';
 }
 
@@ -2487,10 +3060,6 @@ img {
                -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
        }
 
                -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
        }
 
-       #wpwrap {
-               background: #f0f0f0;
-       }
-
        #wpcontent {
                position: relative;
                margin-right: 0;
        #wpcontent {
                position: relative;
                margin-right: 0;
@@ -2550,6 +3119,10 @@ img {
                left: -190px;
        }
 
                left: -190px;
        }
 
+       code {
+               word-wrap: break-word;
+       }
+
        /* General Metabox */
        .postbox {
                font-size: 14px;
        /* General Metabox */
        .postbox {
                font-size: 14px;
index fbd77c29c7eae22a1207d29556b78af25de9b063..a995ee476c7d5e0f0133fbe0f20e95d56c01a7c0 100644 (file)
@@ -9,16 +9,17 @@
 
 #wpcontent {
        height: 100%;
 
 #wpcontent {
        height: 100%;
+       padding-left: 20px;
 }
 
 #wpcontent,
 #wpfooter {
 }
 
 #wpcontent,
 #wpfooter {
-       margin-left: 180px;
+       margin-left: 160px;
 }
 
 .folded #wpcontent,
 .folded #wpfooter {
 }
 
 .folded #wpcontent,
 .folded #wpfooter {
-       margin-left: 56px;
+       margin-left: 36px;
 }
 
 #wpbody-content {
 }
 
 #wpbody-content {
@@ -218,6 +219,10 @@ body.iframe {
        padding-top: 1px;
 }
 
        padding-top: 1px;
 }
 
+body.modal-open {
+       overflow: hidden;
+}
+
 iframe,
 img {
        border: 0;
 iframe,
 img {
        border: 0;
@@ -252,16 +257,22 @@ a:active {
 
 a:focus {
        color: #124964;
 
 a:focus {
        color: #124964;
+    -webkit-box-shadow:
+       0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+    box-shadow:
+       0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
 }
 
 }
 
-a:focus,
-a:active {
-       outline: thin dotted;
+.ie8 a:focus {
+       outline: #5b9dd9 solid 1px;
 }
 
 #adminmenu a:focus,
 }
 
 #adminmenu a:focus,
-#adminmenu a:active,
 .screen-reader-text:focus {
 .screen-reader-text:focus {
+       -webkit-box-shadow: none;
+       box-shadow: none;
        outline: none;
 }
 
        outline: none;
 }
 
@@ -699,12 +710,9 @@ td.help {
 ------------------------------------------------------------------------------*/
 
 .widget .widget-top,
 ------------------------------------------------------------------------------*/
 
 .widget .widget-top,
-.postbox h3,
-.stuffbox h3,
+.postbox .hndle,
+.stuffbox .hndle,
 .control-section .accordion-section-title,
 .control-section .accordion-section-title,
-h3.dashboard-widget-title,
-h3.dashboard-widget-title span,
-h3.dashboard-widget-title small,
 .sidebar-name,
 #nav-menu-header,
 #nav-menu-footer,
 .sidebar-name,
 #nav-menu-header,
 #nav-menu-footer,
@@ -723,9 +731,8 @@ h3.dashboard-widget-title small,
        color: #222;
 }
 
        color: #222;
 }
 
-.postbox h3,
-#namediv h3,
-#submitdiv h3 {
+.postbox .hndle,
+.stuffbox .hndle {
        border-bottom: 1px solid #eee;
 }
 
        border-bottom: 1px solid #eee;
 }
 
@@ -741,7 +748,7 @@ h3.dashboard-widget-title small,
 }
 
 /* @todo can we combine these into a class or use an existing dashicon one? */
 }
 
 /* @todo can we combine these into a class or use an existing dashicon one? */
-#welcome-panel.welcome-panel .welcome-panel-close::before,
+#welcome-panel.welcome-panel .welcome-panel-close:before,
 .tagchecklist span a:before,
 #bulk-titles div a:before {
        background: none;
 .tagchecklist span a:before,
 #bulk-titles div a:before {
        background: none;
@@ -751,12 +758,20 @@ h3.dashboard-widget-title small,
        font: normal 16px/1 'dashicons';
        speak: none;
        height: 20px;
        font: normal 16px/1 'dashicons';
        speak: none;
        height: 20px;
-       margin: 2px 0;
        text-align: center;
        width: 20px;
        -webkit-font-smoothing: antialiased !important;
 }
 
        text-align: center;
        width: 20px;
        -webkit-font-smoothing: antialiased !important;
 }
 
+#welcome-panel.welcome-panel .welcome-panel-close:before {
+       margin: 0;
+}
+
+.tagchecklist span a:before,
+#bulk-titles div a:before {
+       margin: 2px 0;
+}
+
 #welcome-panel.welcome-panel .welcome-panel-close:hover:before,
 .tagchecklist span a:hover:before,
 #bulk-titles div a:hover:before {
 #welcome-panel.welcome-panel .welcome-panel-close:hover:before,
 .tagchecklist span a:hover:before,
 #bulk-titles div a:hover:before {
@@ -918,6 +933,320 @@ th.action-links {
        text-align: right;
 }
 
        text-align: right;
 }
 
+/* Filter bar */
+.wp-filter {
+       display: inline-block;
+       position: relative;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       margin: 12px 0 25px;
+       padding: 0 20px;
+       width: 100%;
+       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       border: 1px solid #e5e5e5;
+       background: #fff;
+       color: #555;
+       font-size: 13px;
+}
+
+.wp-filter a {
+       text-decoration: none;
+}
+
+.filter-count {
+       display: inline-block;
+       vertical-align: middle;
+       min-width: 4em;
+}
+
+.title-count,
+.filter-count .count {
+       display: inline-block;
+       position: relative;
+       top: -1px;
+       padding: 4px 10px;
+       -webkit-border-radius: 30px;
+       border-radius: 30px;
+       background: #777;
+       color: #fff;
+       font-size: 14px;
+       font-weight: 600;
+}
+
+/* not a part of filter bar, but derived from it, so here for now */
+.title-count {
+       display: inline;
+       top: -3px;
+       margin-left: 5px;
+       margin-right: 20px;
+}
+
+.filter-links {
+       display: inline-block;
+       margin: 0;
+}
+
+.filter-links li {
+       display: inline-block;
+       margin: 0;
+}
+
+.filter-links li > a {
+       display: inline-block;
+       margin: 0 10px;
+       padding: 15px 0;
+       border-bottom: 4px solid #fff;
+       color: #666;
+       cursor: pointer;
+}
+
+.filter-links .current {
+       -webkit-box-shadow: none;
+       box-shadow: none;
+       border-bottom: 4px solid #666;
+       color: #222;
+}
+
+.filter-links li > a:hover,
+.filter-links li > a:focus,
+.show-filters .filter-links a.current:hover,
+.show-filters .filter-links a.current:focus {
+       color: #2ea2cc;
+}
+
+.wp-filter .search-form {
+       float: right;
+       margin-top: 9px;
+}
+
+.wp-filter .search-form input[type="search"] {
+       margin: 0;
+       padding: 3px 5px;
+       width: 280px;
+       font-size: 16px;
+       font-weight: 300;
+       line-height: 1.5;
+}
+
+.wp-filter .search-form select {
+       height: 33px;
+       vertical-align: top;
+}
+
+.wp-filter .drawer-toggle {
+       display: inline-block;
+       margin: 0 10px;
+       padding: 4px 6px;
+       color: #666;
+       cursor: pointer;
+}
+
+.wp-filter .drawer-toggle:before {
+       display: inline-block;
+       vertical-align: top;
+       content: "\f111";
+       margin: 0 5px 0 0;
+       width: 16px;
+       height: 16px;
+       color: #777;
+       -webkit-transition: color .1s ease-in 0;
+       transition: color .1s ease-in 0;
+       font-family: "dashicons";
+       font-size: 16px;
+       line-height: 1;
+       text-align: center;
+       text-decoration: inherit;
+       font-weight: normal;
+       font-style: normal;
+       -webkit-font-smoothing: antialiased;
+}
+
+.wp-filter .drawer-toggle:hover,
+.wp-filter .drawer-toggle:hover:before {
+       color: #2ea2cc;
+}
+
+.wp-filter .drawer-toggle.current:before {
+       color: #fff;
+}
+
+.filter-drawer {
+       display: none;
+       margin: 0 -20px;
+       padding: 20px;
+       border-top: 1px solid #eee;
+       background: #fafafa;
+}
+
+.show-filters .filter-drawer {
+       display: block;
+       overflow: hidden;
+}
+
+.show-filters .wp-filter .drawer-toggle:hover,
+.show-filters .wp-filter .drawer-toggle:focus {
+       background: rgb(46, 162, 204);
+}
+
+.show-filters .filter-links a.current {
+       border-bottom: none;
+}
+
+.show-filters .wp-filter .drawer-toggle {
+       -webkit-border-radius: 2px;
+       border-radius: 2px;
+       border: none;
+       background: #777;
+       color: #fff;
+}
+
+.show-filters .wp-filter .drawer-toggle:before {
+       color: #fff;
+}
+
+.filter-group {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       float: left;
+       margin: 0 1% 0 0;
+       padding: 10px;
+       width: 19%;
+       background: #fff;
+       border: 1px solid #e5e5e5;
+       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+}
+
+.filter-group.wide {
+       width: 38%;
+}
+
+.filter-group h4 {
+       position: relative;
+       margin: 0;
+}
+
+.filter-drawer ol {
+       margin: 20px 0 0;
+       list-style-type: none;
+       font-size: 12px;
+}
+
+.filter-drawer li {
+       display: inline-block;
+       vertical-align: top;
+       margin: 5px 0;
+       padding-right: 25px;
+       width: 160px;
+       list-style-type: none;
+}
+
+.filter-drawer .buttons {
+       margin-bottom: 20px;
+}
+
+.filter-drawer .buttons .button span {
+       display: inline-block;
+       opacity: 0.8;
+       font-size: 12px;
+       text-indent: 10px;
+}
+
+.wp-filter .button.clear-filters {
+       display: none;
+       margin: 0 0 20px 10px;
+}
+
+.filtered-by {
+       display: none;
+       margin: 0;
+}
+
+.filtered-by > span {
+       font-weight: 600;
+}
+
+.filtered-by a {
+       margin-left: 10px;
+}
+
+.filtered-by .tags {
+       display: inline;
+}
+
+.filtered-by .tag {
+       margin: 0 5px;
+       padding: 4px 8px;
+       border: 1px solid #e5e5e5;
+       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       background: #fff;
+       font-size: 11px;
+}
+
+.filters-applied .filter-group,
+.filters-applied .filter-drawer .buttons,
+.filters-applied .filter-drawer br {
+       display: none !important;
+}
+
+.filters-applied .filtered-by {
+       display: block;
+}
+
+.filters-applied .filter-drawer {
+       padding: 20px;
+}
+
+.show-filters .content-filterable,
+.show-filters.filters-applied.loading-content .content-filterable,
+.loading-content .content-filterable,
+.error .content-filterable {
+       display: none;
+}
+
+.show-filters.filters-applied .content-filterable {
+       display: block;
+}
+
+.loading-content .spinner {
+       display: block;
+       margin: 40px auto 0;
+       float: none;
+}
+
+@media only screen and (max-width: 1120px) {
+       .wp-filter .search-form {
+               float: none;
+               margin: 20px 0;
+       }
+
+       .filter-drawer {
+               border-bottom: 1px solid #eee;
+       }
+
+       .filter-group {
+               margin-bottom: 0;
+               margin-top: 5px;
+               width: 100%;
+       }
+
+       .filter-group li {
+               margin: 10px 0;
+       }
+}
+
+@media only screen and (max-width: 782px) {
+       .filter-group,
+       .filter-group li {
+               width: 100%;
+       }
+
+}
+
 
 /*------------------------------------------------------------------------------
   4.0 - Notifications
 
 /*------------------------------------------------------------------------------
   4.0 - Notifications
@@ -1054,12 +1383,6 @@ form.upgrade .hint {
        color: #333;
 }
 
        color: #333;
 }
 
-#screen-meta-links a:focus {
-       border-color: #aaa;
-       -webkit-box-shadow: 0 2px 3px rgba(0,0,0,0.15);
-       box-shadow: 0 2px 3px rgba(0,0,0,0.15);
-}
-
 #screen-meta-links a.show-settings {
        display: block;
        font-size: 13px;
 #screen-meta-links a.show-settings {
        display: block;
        font-size: 13px;
@@ -1343,6 +1666,7 @@ html.wp-toolbar {
        }
 }
 
        }
 }
 
+.js .widget .widget-top,
 .js .postbox .hndle {
        cursor: move;
 }
 .js .postbox .hndle {
        cursor: move;
 }
@@ -1374,20 +1698,15 @@ html.wp-toolbar {
        line-height: 1;
 }
 
        line-height: 1;
 }
 
-.postbox h3,
-.stuffbox h3 {
-       margin-top: 1px;
+/* user-select is not a part of the CSS standard - may change behavior in the future */
+.postbox .hndle,
+.stuffbox .hndle {
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
 }
 
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
 }
 
-.js .widget .widget-top,
-.js .postbox h3 {
-       cursor: move;
-}
-
 .postbox .inside,
 .stuffbox .inside {
        padding: 0 12px 12px;
 .postbox .inside,
 .stuffbox .inside {
        padding: 0 12px 12px;
@@ -1454,8 +1773,7 @@ html.wp-toolbar {
        bottom: 0;
        left: 0;
        right: 0;
        bottom: 0;
        left: 0;
        right: 0;
-       padding: 10px 0;
-       margin-right: 20px;
+       padding: 10px 20px;
        color: #777;
 }
 
        color: #777;
 }
 
@@ -1651,6 +1969,10 @@ td.media-icon img {
        max-height: 60px;
 }
 
        max-height: 60px;
 }
 
+td.image-icon img {
+       border: 1px solid rgba(0, 0, 0, 0.07);
+}
+
 #howto {
        font-size: 11px;
        margin: 0 5px;
 #howto {
        font-size: 11px;
        margin: 0 5px;
@@ -1795,21 +2117,28 @@ div.action-links {
 
 /* Plugin install thickbox */
 #plugin-information {
 
 /* Plugin install thickbox */
 #plugin-information {
-       background: #fcfcfc;
+       background: #fff;
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
-       height: auto;
+       height: 100%;
        padding: 0;
 }
 
        padding: 0;
 }
 
+#plugin-information-scrollable {
+       overflow: auto;
+       height: 100%;
+}
+
 #plugin-information-title {
 #plugin-information-title {
-       padding: 0 76px 0 20px;
+       padding: 0 20px;
+       background: #f5f5f5;
        font-size: 22px;
        font-weight: 600;
        line-height: 56px;
        font-size: 22px;
        font-weight: 600;
        line-height: 56px;
+       position: relative;
        top: 0;
        right: 0;
        left: 0;
        top: 0;
        right: 0;
        left: 0;
@@ -1819,20 +2148,72 @@ div.action-links {
        white-space: nowrap;
 }
 
        white-space: nowrap;
 }
 
+#plugin-information-title.with-banner {
+       margin-right: 0;
+       height: 250px;
+       bottom: 250px;
+       -webkit-background-size: 100% auto;
+       background-size: 100% auto;
+}
+
+#plugin-information-title h2 {
+       font-size: 1em;
+       font-weight: bold;
+       padding: 0;
+       margin: 0;
+       max-width: 680px;
+       overflow: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
+}
+
+#plugin-information-title.with-banner h2 {
+       font-family: "Helvetica Neue", sans-serif;
+       display: inline-block;
+       font-size: 30px;
+       line-height: 50px;
+       padding: 0 15px;
+       margin: 174px 0 0 10px;
+       color: #fff;
+       background: rgba( 30, 30, 30, 0.9 );
+       text-shadow: 0 1px 3px rgba( 0, 0, 0, 0.4 );
+       -webkit-box-shadow: 0 0 30px rgba( 255, 255, 255, 0.1 );
+       box-shadow: 0 0 30px rgba( 255, 255, 255, 0.1 );
+       -webkit-border-radius: 8px;
+       border-radius: 8px;
+}
+
+#plugin-information-title div.vignette {
+       display: none;
+}
+
+#plugin-information-title.with-banner div.vignette {
+       display: block;
+       float: right;
+       top: 0;
+       height: 250px;
+       width: 830px;
+       margin: 0 -20px;
+       background: transparent;
+       -webkit-box-shadow: inset 0 0 50px 4px rgba( 0, 0, 0, 0.2 ), inset 0 -1px 0 rgba( 0, 0, 0, 0.1 );
+       box-shadow: inset 0 0 50px 4px rgba( 0, 0, 0, 0.2 ), inset 0 -1px 0 rgba( 0, 0, 0, 0.1 );
+}
+
 #plugin-information-tabs {
        padding: 0 16px;
 #plugin-information-tabs {
        padding: 0 16px;
-       position: absolute;
-       top: 56px;
+       position: relative;
        right: 0;
        left: 0;
        height: 36px;
        z-index: 1;
        right: 0;
        left: 0;
        height: 36px;
        z-index: 1;
+       border-bottom: 1px solid #ddd;
+       background: #f3f3f3;
 }
 
 #plugin-information-tabs a {
        position: relative;
        float: left;
 }
 
 #plugin-information-tabs a {
        position: relative;
        float: left;
-       padding: 8px 10px 9px;
+       padding: 9px 10px;
        margin: 0;
        height: 18px;
        line-height: 18px;
        margin: 0;
        height: 18px;
        line-height: 18px;
@@ -1843,38 +2224,53 @@ div.action-links {
 }
 
 #plugin-information-tabs a.current {
 }
 
 #plugin-information-tabs a.current {
-       margin: -1px -1px 0;
+       margin: 0 -1px 0;
        background: #fff;
        border: 1px solid #ddd;
        background: #fff;
        border: 1px solid #ddd;
-       border-bottom: none;
+       border-bottom-color: #fff;
+       padding-top: 8px;
        color: #333;
 }
 
        color: #333;
 }
 
+#plugin-information-tabs.with-banner a.current {
+       border-top: none;
+       padding-top: 9px;
+}
+
 #plugin-information-tabs a:active,
 #plugin-information-tabs a:focus {
        outline: none;
 }
 
 #plugin-information-content {
 #plugin-information-tabs a:active,
 #plugin-information-tabs a:focus {
        outline: none;
 }
 
 #plugin-information-content {
+       overflow: hidden; /* equal height column trick */
        background: #fff;
        background: #fff;
-       border-top: 1px solid #ddd;
-       border-bottom: 1px solid #ddd;
-       position: absolute;
-       top: 90px;
+       position: relative;
+       top: 0;
        right: 0;
        right: 0;
-       bottom: 58px;
        left: 0;
        left: 0;
+       min-height: 100%;
+       /* Height of title + tabs + install now */
+       min-height: -webkit-calc( 100% - 152px );
+       min-height: calc( 100% - 152px );
+}
+
+#plugin-information-content.with-banner {
+       /* Height of banner + tabs + install now */
+       min-height: -webkit-calc( 100% - 346px );
+       min-height: calc( 100% - 346px );
 }
 
 #section-holder {
 }
 
 #section-holder {
-       margin: 0;
-       padding: 10px 26px;
-       position: absolute;
+       position: relative;
        top: 0;
        right: 250px;
        bottom: 0;
        left: 0;
        top: 0;
        right: 250px;
        bottom: 0;
        left: 0;
-       overflow: auto;
+       margin-right: 250px; /* FYI box */
+       padding: 10px 26px;
+       margin-bottom: -99930px; /* a bit less than the padding below to accommodate footer */
+       padding-bottom: 99999px; /* equal height column trick */
 }
 
 #section-holder .updated {
 }
 
 #section-holder .updated {
@@ -1882,16 +2278,18 @@ div.action-links {
 }
 
 #plugin-information .fyi {
 }
 
 #plugin-information .fyi {
-       background: #f3f3f3;
-       border-left: 1px solid #ddd;
-       color: #666;
-       padding: 16px;
-       position: absolute;
+       display: block;
+       float: right;
+       position: relative;
        top: 0;
        right: 0;
        top: 0;
        right: 0;
-       bottom: 0;
+       padding: 16px;
+       margin-bottom: -99930px; /* slightly less than the padding below to accommodate footer */
+       padding-bottom: 99999px; /* equal height column trick */
        width: 217px;
        width: 217px;
-       overflow: auto;
+       border-left: 1px solid #ddd;
+       background: #f3f3f3;
+       color: #666;
 }
 
 #plugin-information .fyi strong {
 }
 
 #plugin-information .fyi strong {
@@ -1922,6 +2320,54 @@ div.action-links {
        margin: 0 0 10px;
 }
 
        margin: 0 0 10px;
 }
 
+#plugin-information .counter-container {
+       margin: 3px 0;
+}
+
+#plugin-information .counter-label {
+       float: left;
+       margin-right: 5px;
+       min-width: 55px;
+}
+
+#plugin-information .counter-back {
+       height: 17px;
+       width: 92px;
+       background-color: #ececec;
+       float: left;
+}
+
+#plugin-information .counter-bar {
+       height: 17px;
+       background-color: #fddb5a;
+       float: left;
+}
+
+#plugin-information .counter-count {
+       margin-left: 5px;
+}
+
+#plugin-information .fyi ul.contributors {
+       margin-top: 10px;
+}
+
+#plugin-information .fyi ul.contributors li {
+       display: inline-block;
+       margin-right: 8px;
+       vertical-align: middle;
+}
+
+#plugin-information .fyi ul.contributors li {
+       display: inline-block;
+       margin-right: 8px;
+       vertical-align: middle;
+}
+
+#plugin-information .fyi ul.contributors li img {
+       vertical-align: middle;
+       margin-right: 4px;
+}
+
 #plugin-information-footer {
        padding: 15px 16px;
        position: absolute;
 #plugin-information-footer {
        padding: 15px 16px;
        position: absolute;
@@ -1929,8 +2375,16 @@ div.action-links {
        bottom: 0;
        left: 0;
        height: 28px;
        bottom: 0;
        left: 0;
        height: 28px;
+       border-top: 1px solid #ddd;
+       background: #f3f3f3;
+}
+
+/* @noflip */
+#plugin-information .section {
+       direction: ltr;
 }
 
 }
 
+/* @noflip */
 #plugin-information .section ul,
 #plugin-information .section ol {
        list-style-type: disc;
 #plugin-information .section ul,
 #plugin-information .section ol {
        list-style-type: disc;
@@ -1958,6 +2412,7 @@ div.action-links {
        box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.3 );
 }
 
        box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.3 );
 }
 
+/* @noflip */
 #plugin-information #section-screenshots li p {
        font-style: italic;
        padding-left: 20px;
 #plugin-information #section-screenshots li p {
        font-style: italic;
        padding-left: 20px;
@@ -1969,25 +2424,101 @@ div.action-links {
        border: 1px solid #ccc;
 }
 
        border: 1px solid #ccc;
 }
 
+/* @noflip */
+#plugin-information .review {
+       overflow: hidden; /* clearfix */
+       width: 100%;
+       margin-bottom: 20px;
+       border-bottom: 1px solid #e6e6e6;
+}
+
+#plugin-information .review-title-section {
+       overflow: hidden; /* clearfix */
+}
+
+/* @noflip */
+#plugin-information .review-title-section h4 {
+       display: inline-block;
+       float: left;
+       margin: 0 6px 0 0;
+}
+
+#plugin-information .reviewer-info p {
+       clear: both;
+       margin: 0;
+       padding-top: 2px;
+}
+
+/* @noflip */
+#plugin-information .reviewer-info .avatar {
+       float: left;
+       margin: 4px 6px 0 0;
+}
+
+/* @noflip */
+#plugin-information .reviewer-info .star-rating {
+       float: left;
+}
+
+/* @noflip */
+#plugin-information .review-meta {
+       float: left;
+       margin-left: 0.75em;
+}
+
+/* @noflip */
+#plugin-information .review-body {
+       float: left;
+       width: 100%;
+}
+
 .plugin-version-author-uri {
        font-size: 13px;
 }
 
 .plugin-version-author-uri {
        font-size: 13px;
 }
 
-@media screen and ( max-width: 782px ) {
-       #plugin-information-content {
-               overflow: auto;
-               bottom: 58px;
+@media screen and ( max-width: 771px ) {
+       #plugin-information-title.with-banner {
+               height: 100px;
+               bottom: 100px;
+       }
+
+       #plugin-information-title.with-banner h2 {
+               margin-top: 30px;
+               font-size: 20px;
+               line-height: 40px;
+               max-width: 85%;
+       }
+
+       #plugin-information-title.with-banner div.vignette {
+               height: 100px;
+               bottom: 100px;
+               width: 800%;
+       }
+
+       #plugin-information-tabs {
+               overflow: hidden; /* clearfix */
+               padding: 0;
+               height: auto; /* let tabs wrap */
+       }
+
+       #plugin-information-tabs a.current {
+               margin-bottom: 0;
+               border-bottom: none;
        }
 
        #plugin-information .fyi {
        }
 
        #plugin-information .fyi {
+               float: none;
                border: 1px solid #ddd;
                position: static;
                width: auto;
                border: 1px solid #ddd;
                position: static;
                width: auto;
-               margin: 26px 26px 16px;
+               margin: 26px 26px 0;
+               padding-bottom: 0; /* reset from the two column height fix */
        }
 
        #section-holder {
                position: static;
        }
 
        #section-holder {
                position: static;
+               margin: 0;
+               padding-bottom: 70px; /* reset from the two column height fix, plus accomodate footer */
        }
 
        #plugin-information .fyi h3,
        }
 
        #plugin-information .fyi h3,
@@ -2048,9 +2579,37 @@ body.import-php .tb-close-icon,
 body.plugins-php .tb-close-icon,
 body.update-core-php .tb-close-icon,
 body.index-php .tb-close-icon {
 body.plugins-php .tb-close-icon,
 body.update-core-php .tb-close-icon,
 body.index-php .tb-close-icon {
-       line-height: 48px;
-       width: 48px;
-       height: 48px;
+       left: auto;
+       right: -30px;
+       color: #eee;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+body.plugin-install-php #TB_closeWindowButton:focus,
+body.plugin-install-php #TB_closeWindowButton:focus .tb-close-icon,
+body.plugin-install-php .tb-close-icon:focus,
+body.plugin-install-php .tb-close-icon:hover,
+body.import-php #TB_closeWindowButton:focus,
+body.import-php #TB_closeWindowButton:focus .tb-close-icon,
+body.import-php .tb-close-icon:focus,
+body.import-php .tb-close-icon:hover,
+body.plugins-php #TB_closeWindowButton:focus,
+body.plugins-php #TB_closeWindowButton:focus .tb-close-icon,
+body.plugins-php .tb-close-icon:focus,
+body.plugins-php .tb-close-icon:hover,
+body.update-core-php #TB_closeWindowButton:focus,
+body.update-core-php #TB_closeWindowButton:focus .tb-close-icon,
+body.update-core-php .tb-close-icon:focus,
+body.update-core-php .tb-close-icon:hover,
+body.index-php #TB_closeWindowButton:focus,
+body.index-php #TB_closeWindowButton:focus .tb-close-icon,
+body.index-php .tb-close-icon:focus,
+body.index-php .tb-close-icon:hover {
+       color: #2ea2cc;
+       outline: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
 }
 
 body.plugin-install-php .tb-close-icon:before,
 }
 
 body.plugin-install-php .tb-close-icon:before,
@@ -2058,7 +2617,20 @@ body.import-php .tb-close-icon:before,
 body.plugins-php .tb-close-icon:before,
 body.update-core-php .tb-close-icon:before,
 body.index-php .tb-close-icon:before {
 body.plugins-php .tb-close-icon:before,
 body.update-core-php .tb-close-icon:before,
 body.index-php .tb-close-icon:before {
-       line-height: 48px;
+       content: "\f335";
+       font-size: 32px;
+}
+
+/* move plugin install close icon to top on narrow screens */
+@media screen and ( max-width: 830px ) {
+       body.plugin-install-php .tb-close-icon,
+       body.import-php .tb-close-icon,
+       body.plugins-php .tb-close-icon,
+       body.update-core-php .tb-close-icon,
+       body.index-php .tb-close-icon {
+               right: 0;
+               top: -30px;
+       }
 }
 
 /* @todo: move this. */
 }
 
 /* @todo: move this. */
@@ -2270,7 +2842,8 @@ img {
 
 .control-section.open .accordion-section-title:after,
 #customize-info.open .accordion-section-title:after,
 
 .control-section.open .accordion-section-title:after,
 #customize-info.open .accordion-section-title:after,
-.nav-menus-php .menu-item-edit-active .item-edit:before {
+.nav-menus-php .menu-item-edit-active .item-edit:before,
+.widget.open .widget-top a.widget-action:after {
        content: '\f142';
 }
 
        content: '\f142';
 }
 
@@ -2487,10 +3060,6 @@ img {
                -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
        }
 
                -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
        }
 
-       #wpwrap {
-               background: #f0f0f0;
-       }
-
        #wpcontent {
                position: relative;
                margin-left: 0;
        #wpcontent {
                position: relative;
                margin-left: 0;
@@ -2550,6 +3119,10 @@ img {
                right: -190px;
        }
 
                right: -190px;
        }
 
+       code {
+               word-wrap: break-word;
+       }
+
        /* General Metabox */
        .postbox {
                font-size: 14px;
        /* General Metabox */
        .postbox {
                font-size: 14px;
index f3108a38c3680496f8a808e6466c3fd8bbe94004..045decac0257d12526d11d42e501a8fec097223d 100644 (file)
@@ -32,6 +32,15 @@ body {
        display: block;
 }
 
        display: block;
 }
 
+#customize-header-actions {
+       border-bottom: 1px solid #ddd;
+}
+
+#customize-controls .wp-full-overlay-sidebar-content {
+       overflow-y: auto;
+       overflow-x: hidden;
+}
+
 #customize-info {
        border: none;
        border-top: 1px solid #ddd;
 #customize-info {
        border: none;
        border-top: 1px solid #ddd;
@@ -45,22 +54,12 @@ body {
        border-bottom: 1px solid #eeeeee;
 }
 
        border-bottom: 1px solid #eeeeee;
 }
 
-#customize-info.open .accordion-section-title,
-#customize-info .accordion-section-title:hover,
-#customize-info .accordion-section-title:focus {
-       color: #555555;
-}
-
 #customize-info.open .accordion-section-title:after,
 #customize-info .accordion-section-title:hover:after,
 #customize-info .accordion-section-title:focus:after {
        color: #555555;
 }
 
 #customize-info.open .accordion-section-title:after,
 #customize-info .accordion-section-title:hover:after,
 #customize-info .accordion-section-title:focus:after {
        color: #555555;
 }
 
-#customize-info.open .accordion-section-title {
-       border-color: transparent;
-}
-
 #customize-info .preview-notice {
        font-size: 13px;
        line-height: 24px;
 #customize-info .preview-notice {
        font-size: 13px;
        line-height: 24px;
@@ -83,11 +82,6 @@ body {
        line-height: 20px;
 }
 
        line-height: 20px;
 }
 
-#customize-theme-controls {
-       -webkit-box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.1);
-       box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.1);
-}
-
 #customize-theme-controls .control-section {
        border: none;
 }
 #customize-theme-controls .control-section {
        border: none;
 }
@@ -100,14 +94,17 @@ body {
 
 #customize-theme-controls .accordion-section-content {
        color: #555555;
 
 #customize-theme-controls .accordion-section-content {
        color: #555555;
-       background: white;
+       background: #fff;
 }
 
 }
 
-#customize-theme-controls .control-section:hover .accordion-section-title,
+#customize-info.open .accordion-section-title,
+#customize-info .accordion-section-title:hover,
+#customize-info .accordion-section-title:focus,
+#customize-theme-controls .control-section:hover > .accordion-section-title,
 #customize-theme-controls .control-section .accordion-section-title:hover,
 #customize-theme-controls .control-section.open .accordion-section-title,
 #customize-theme-controls .control-section .accordion-section-title:focus {
 #customize-theme-controls .control-section .accordion-section-title:hover,
 #customize-theme-controls .control-section.open .accordion-section-title,
 #customize-theme-controls .control-section .accordion-section-title:focus {
-       color: #555555;
+       color: #222;
        background: #f5f5f5;
 }
 
        background: #f5f5f5;
 }
 
@@ -118,13 +115,14 @@ body {
        background: #f5f5f5;
 }
 
        background: #f5f5f5;
 }
 
-#customize-theme-controls .control-section:hover .accordion-section-title::after,
-#customize-theme-controls .control-section .accordion-section-title:hover::after,
-#customize-theme-controls .control-section.open .accordion-section-title::after,
-#customize-theme-controls .control-section .accordion-section-title:focus::after {
-       color: #555555;
+#customize-theme-controls .control-section:hover > .accordion-section-title:after,
+#customize-theme-controls .control-section .accordion-section-title:hover:after,
+#customize-theme-controls .control-section.open .accordion-section-title:after,
+#customize-theme-controls .control-section .accordion-section-title:focus:after {
+       color: #555;
 }
 
 }
 
+#customize-info.open,
 #customize-theme-controls .control-section.open {
        border-bottom: 1px solid #eeeeee;
 }
 #customize-theme-controls .control-section.open {
        border-bottom: 1px solid #eeeeee;
 }
@@ -134,7 +132,7 @@ body {
 }
 
 #customize-theme-controls .control-section:last-of-type.open,
 }
 
 #customize-theme-controls .control-section:last-of-type.open,
-#customize-theme-controls .control-section:last-of-type .accordion-section-title {
+#customize-theme-controls .control-section:last-of-type .accordion-section-title {
        border-bottom-color: #ddd;
 }
 
        border-bottom-color: #ddd;
 }
 
@@ -143,6 +141,192 @@ body {
        margin: 0;
 }
 
        margin: 0;
 }
 
+.control-section.control-panel > .accordion-section-title {
+       padding-left: 54px;
+}
+
+.control-section.control-panel > .accordion-section-title:after {
+       content: "\f345";
+       background: #f5f5f5;
+       color: #555;
+       width: 38px;
+       height: 100%;
+       margin: -11px 0 -11px -10px; /* compensate for positioning */
+       line-height: 45px;
+       padding-right: 5px;
+       border-right: 1px solid #eee;
+       z-index: 0;
+}
+
+.rtl .control-section.control-panel > .accordion-section-title:after {
+       content: "\f341";
+}
+
+#customize-theme-controls .control-section.control-panel > h3.accordion-section-title:focus:after,
+#customize-theme-controls .control-section.control-panel > h3.accordion-section-title:hover:after {
+       background: #ddd;
+       color: #000;
+       border: 1px solid #d9d9d9;
+       border-left: none;
+       margin-top: -12px;
+       line-height: 44px;
+       z-index: 1;
+}
+
+.accordion-sub-container.control-panel-content {
+       display: none;
+       position: absolute;
+       right: 300px;
+       top: 0;
+       width: 300px;
+       border-top: 1px solid #ddd;
+       -webkit-transition: right ease-in-out .18s;
+       transition: right ease-in-out .18s;
+}
+
+.accordion-sub-container.control-panel-content.animating {
+       display: block;
+}
+
+.current-panel .accordion-sub-container.control-panel-content {
+       width: 100%;
+}
+
+.customize-controls-close {
+       display: block;
+       position: absolute;
+       top: 0;
+       right: 0;
+       width: 45px;
+       height: 45px;
+       padding-left: 2px;
+       background: #eee;
+       border-left: 1px solid #ddd;
+       color: #444;
+       cursor: pointer;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.control-panel-back {
+       display: block;
+       position: fixed;
+       top: 0;
+       z-index: 99;
+       right: -48px;
+       width: 45px;
+       height: 45px;
+       padding-left: 2px;
+       background: #eee;
+       border-left: 1px solid #ddd;
+       cursor: pointer;
+       -webkit-transition: right .18s ease-in-out, color .1s ease-in-out, background .1s ease-in-out;
+       transition: right .18s ease-in-out, color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.collapsed .control-panel-back {
+       display: none;
+}
+
+.customize-controls-close:focus,
+.customize-controls-close:hover,
+.control-panel-back:focus,
+.control-panel-back:hover {
+       background: #ddd;
+       border-color: #ccc;
+       color: #000;
+       outline: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
+}
+
+.customize-controls-close:before {
+       font: normal 22px/1 dashicons;
+       content: "\f335";
+       position: relative;
+       top: 7px;
+       right: 13px;
+}
+
+.control-panel-back:before {
+       font: normal 20px/1 dashicons;
+       content: "\f341";
+       position: relative;
+       top: 7px;
+       right: 13px;
+}
+
+.rtl .control-panel-back:before {
+       content: "\f344";
+}
+
+.in-sub-panel .control-panel-back {
+       right: 0;
+}
+
+.current-panel > .accordion-section-title {
+       height: 22px;
+}
+
+.wp-full-overlay-sidebar .wp-full-overlay-header {
+       -webkit-transition: padding ease-in-out .18s;
+       transition: padding ease-in-out .18s;
+}
+
+.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header {
+       padding-right: 62px;
+}
+
+#customize-info,
+#customize-theme-controls > ul > .accordion-section {
+       position: relative;
+       right: 0;
+       -webkit-transition: right ease-in-out .18s;
+       transition: right ease-in-out .18s;
+}
+
+.in-sub-panel #customize-info,
+.in-sub-panel #customize-theme-controls > ul > .accordion-section {
+       right: -300px;
+       width: 300px;
+}
+
+.in-sub-panel #customize-theme-controls .accordion-section.current-panel {
+       width: 100%;
+}
+
+#customize-theme-controls .control-section.current-panel {
+       padding: 0;
+}
+
+#customize-theme-controls .control-section > h3.accordion-section-title {
+       position: relative;
+       right: 0;
+}
+
+#customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
+       right: -300px;
+       -webkit-transition: right ease-in-out .18s;
+       transition: right ease-in-out .18s;
+}
+
+.control-section.control-panel .accordion-section-title .panel-title {
+       font-size: 20px;
+       font-weight: 200;
+       line-height: 24px;
+       display: block;
+       border: none;
+}
+
+.control-section.control-panel .preview-notice {
+       font-size: 13px;
+       line-height: 24px;
+}
+
+p.customize-section-description {
+       font-style: normal;
+}
+
 .customize-control {
        width: 100%;
        float: right;
 .customize-control {
        width: 100%;
        float: right;
@@ -151,18 +335,28 @@ body {
 }
 
 .customize-control select,
 }
 
 .customize-control select,
-.customize-control input[type="text"],
 .customize-control input[type="radio"],
 .customize-control input[type="checkbox"] {
        line-height: 28px;
 }
 
 .customize-control input[type="radio"],
 .customize-control input[type="checkbox"] {
        line-height: 28px;
 }
 
-.customize-control input[type="text"] {
+.customize-control input[type="text"],
+.customize-control input[type="password"],
+.customize-control input[type="email"],
+.customize-control input[type="number"],
+.customize-control input[type="search"],
+.customize-control input[type="tel"],
+.customize-control input[type="url"] {
        width: 98%;
        line-height: 18px;
        margin: 0;
 }
 
        width: 98%;
        line-height: 18px;
        margin: 0;
 }
 
+.customize-control-textarea textarea {
+       width: 100%;
+       resize: vertical;
+}
+
 .customize-control select {
        min-width: 50%;
        max-width: 100%;
 .customize-control select {
        min-width: 50%;
        max-width: 100%;
@@ -182,6 +376,13 @@ body {
        margin-bottom: 5px;
 }
 
        margin-bottom: 5px;
 }
 
+.customize-control-description {
+       display: block;
+       font-style: italic;
+       line-height: 18px;
+       margin-bottom: 5px;
+}
+
 .customize-control-color .color-picker,
 .customize-control-checkbox label,
 .customize-control-upload div {
 .customize-control-color .color-picker,
 .customize-control-checkbox label,
 .customize-control-upload div {
@@ -201,6 +402,10 @@ body {
        line-height: 22px;
 }
 
        line-height: 22px;
 }
 
+.customize-control-radio .customize-control-title + .customize-control-description {
+       margin-top: 7px;
+}
+
 .customize-control-radio label {
        line-height: 32px;
 }
 .customize-control-radio label {
        line-height: 32px;
 }
@@ -224,8 +429,8 @@ body {
        border: none !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
        border: none !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
-       -webkit-border-radius: !important 0;
-       border-radius: !important 0;
+       -webkit-border-radius: 0 !important;
+       border-radius: 0 !important;
 }
 
 
 }
 
 
index 9f672b95649f257e430821eba05cb783ad272806..aa9bb6cc8cc27e1fcff3f017b97e109aeb6bd857 100644 (file)
@@ -1 +1 @@
-body{overflow:hidden}#customize-controls a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls .submit{text-align:center}#customize-controls .description{color:#666}#customize-header-actions .button-primary{float:left;margin-top:9px}#customize-header-actions .spinner{margin-top:16px;margin-left:4px}.saving #customize-header-actions .spinner{display:block}#customize-info{border:0;border-top:1px solid #ddd}#customize-info .accordion-section-title{background-color:#fff;color:#666;border-right:0;border-left:0;border-bottom:1px solid #eee}#customize-info .accordion-section-title:focus,#customize-info .accordion-section-title:focus:after,#customize-info .accordion-section-title:hover,#customize-info .accordion-section-title:hover:after,#customize-info.open .accordion-section-title,#customize-info.open .accordion-section-title:after{color:#555}#customize-info.open .accordion-section-title{border-color:transparent}#customize-info .preview-notice{font-size:13px;line-height:24px}#customize-info .theme-name{font-size:20px;font-weight:200;line-height:24px;display:block}#customize-info .theme-screenshot{width:258px}#customize-info .theme-description{margin-top:1em;color:#666;line-height:20px}#customize-theme-controls{-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#customize-theme-controls .control-section{border:0}#customize-theme-controls .accordion-section-title{color:#555;background-color:#fff;border-bottom:1px solid #eee}#customize-theme-controls .accordion-section-content{color:#555;background:#fff}#customize-theme-controls .control-section .accordion-section-title:focus,#customize-theme-controls .control-section .accordion-section-title:hover,#customize-theme-controls .control-section.open .accordion-section-title,#customize-theme-controls .control-section:hover .accordion-section-title{color:#555;background:#f5f5f5}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f5f5f5}#customize-theme-controls .control-section .accordion-section-title:focus::after,#customize-theme-controls .control-section .accordion-section-title:hover::after,#customize-theme-controls .control-section.open .accordion-section-title::after,#customize-theme-controls .control-section:hover .accordion-section-title::after{color:#555}#customize-theme-controls .control-section.open{border-bottom:1px solid #eee}#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#eee!important}#customize-theme-controls .control-section:last-of-type .accordion-section-title,#customize-theme-controls .control-section:last-of-type.open{border-bottom-color:#ddd}#customize-theme-controls .accordion-section-content,#customize-theme-controls>ul{margin:0}.customize-control{width:100%;float:right;clear:both;margin-bottom:8px}.customize-control input[type=checkbox],.customize-control input[type=radio],.customize-control input[type=text],.customize-control select{line-height:28px}.customize-control input[type=text]{width:98%;line-height:18px;margin:0}.customize-control select{min-width:50%;max-width:100%;height:28px;line-height:28px}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:24px;font-weight:600;margin-bottom:5px}.customize-control-checkbox label,.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control-checkbox input{margin-left:5px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio label{line-height:32px}.customize-control-radio input{margin-left:5px}#customize-preview iframe{width:100%;height:100%}.wp-full-overlay-sidebar{background:#eee;border-left:1px solid #ddd}.collapse-sidebar{background-color:transparent!important;border:0!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:!important 0;border-radius:!important 0}.collapse-sidebar:active,.collapse-sidebar:active .collapse-sidebar-arrow:before,.collapse-sidebar:active .collapse-sidebar-label{text-shadow:none}.collapsed .collapse-sidebar-arrow:before{color:#888}.accordion-section .dropdown{float:right;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:right;min-width:30px;height:16px;line-height:16px;margin-left:16px;padding:4px 5px;border:2px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;left:0;width:20px;background:#eee}.customize-control .dropdown-arrow:after{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#333}.customize-control .dropdown-status{color:#333;background:#eee;display:none;max-width:112px}.customize-control-color .color-picker-hex{display:none}.customize-control-color.open .color-picker-hex{display:block}.customize-control-color .dropdown{margin-left:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#555;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.customize-control-image .actions,.customize-control-image .library{display:none;float:right;width:100%}.customize-control-image.open .actions,.customize-control-image.open .library{display:block}.accordion-section .customize-control-image .dropdown-content{height:auto;min-height:24px;min-width:40px;padding:0}.accordion-section .customize-control-image .dropdown-status{padding:4px 5px}.accordion-section .customize-control-image .preview-thumbnail img{display:block;width:100%;max-width:122px;max-height:98px;margin:0 auto}.accordion-section .customize-control-image .actions{text-align:left}.accordion-section .customize-control-image .library ul{border-bottom:1px solid #ddd;float:right;width:100%;margin:10px 0 0}.accordion-section .customize-control-image .library li{color:#ccc;float:right;padding:3px 15px;margin:0;border:1px solid transparent}.accordion-section .customize-control-image .library li.library-selected{margin-bottom:-1px;padding-bottom:4px;color:#666;border-color:#ddd;border-bottom-color:#fff}.accordion-section .customize-control-image .library .thumbnail{display:block;width:100%}.accordion-section .customize-control-image .library .thumbnail img{display:block;max-width:90%;max-height:80px;margin:5px auto;padding:2px;background:#666}.accordion-section .customize-control-image .library .thumbnail:hover img{background-color:#2ea2cc}.accordion-section .customize-control-image .library-content{display:none;width:100%;float:right;padding:10px 0}.accordion-section .customize-control-image .library-content.library-selected{display:block}.accordion-section .customize-control-image .upload-fallback,.accordion-section .customize-control-upload .upload-fallback{display:none}.accordion-section .customize-control-image .upload-dropzone,.accordion-section .customize-control-upload .upload-dropzone{display:none;padding:15px 10px;border:3px dashed #dfdfdf;margin:5px auto;text-align:center;position:relative;cursor:default}.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop,.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop{display:block;-webkit-transition:border-color .1s;transition:border-color .1s}.accordion-section .customize-control-image .library ul li,.accordion-section .customize-control-upload .library ul li{cursor:pointer}.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over,.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over{border-color:#83b4d8}.ios #customize-preview,.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}#customize-control-header_image .current{margin-bottom:8px}#customize-control-header_image .uploaded{margin-bottom:18px}#customize-control-header_image .default button:not(.random),#customize-control-header_image .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:0;color:inherit;cursor:pointer}#customize-control-header_image button img{display:block}#customize-control-header_image button.new,#customize-control-header_image button.remove{white-space:normal;width:48%;height:auto}#customize-control-header_image .current .container{overflow:hidden;border:1px solid #eee;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .placeholder{width:100%;position:relative;text-align:center;cursor:default}#customize-control-header_image .inner{display:none;position:absolute;width:100%;color:#555;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#customize-control-header_image .inner,#customize-control-header_image .inner .dashicons{line-height:20px;top:10px}#customize-control-header_image .list .inner,#customize-control-header_image .list .inner .dashicons{top:9px}#customize-control-header_image .header-view{position:relative;width:100%;margin-bottom:5px}#customize-control-header_image .header-view:last-child{margin-bottom:0}#customize-control-header_image .header-view:after{border:0}#customize-control-header_image .header-view.selected:after{content:'';position:absolute;height:auto;top:0;right:0;bottom:0;left:0;border:4px solid #2ea2cc;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .header-view.button.selected{border:0}#customize-control-header_image .uploaded .header-view .close{font-size:2em;color:grey;position:absolute;visibility:hidden;top:10px;left:10px;z-index:1;width:20px;height:20px;cursor:pointer}#customize-control-header_image .uploaded .header-view .close:hover{color:#000;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}#customize-control-header_image .header-view:hover .close{visibility:visible}#customize-control-header_image .random.placeholder{cursor:pointer;-webkit-border-radius:2px;border-radius:2px;height:40px}#customize-control-header_image button.random{width:100%;height:auto;min-height:40px;white-space:normal}#customize-control-header_image button.random .dice{margin-top:4px}#customize-control-header_image .header-view:hover>button.random .dice,#customize-control-header_image .placeholder:hover .dice{-webkit-animation:dice-color-change 3s infinite;-ms-animation:dice-color-change 3s infinite;animation:dice-color-change 3s infinite}@-webkit-keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}@-ms-keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}@keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}#customize-control-header_image .actions{margin-bottom:32px}#customize-control-header_image .choice{position:relative;display:block;margin-bottom:9px}#customize-control-header_image .uploaded div:last-child>.choice{margin-bottom:0}#customize-control-header_image img{width:100%;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .remove{float:right;margin-left:3px}#customize-control-header_image .new{float:left}body.cheatin{font-size:medium;height:auto;background:#fff;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}
\ No newline at end of file
+body{overflow:hidden}#customize-controls a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls .submit{text-align:center}#customize-controls .description{color:#666}#customize-header-actions .button-primary{float:left;margin-top:9px}#customize-header-actions .spinner{margin-top:16px;margin-left:4px}.saving #customize-header-actions .spinner{display:block}#customize-header-actions{border-bottom:1px solid #ddd}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}#customize-info{border:none;border-top:1px solid #ddd}#customize-info .accordion-section-title{background-color:#fff;color:#666;border-right:none;border-left:none;border-bottom:1px solid #eee}#customize-info .accordion-section-title:focus:after,#customize-info .accordion-section-title:hover:after,#customize-info.open .accordion-section-title:after{color:#555}#customize-info .preview-notice{font-size:13px;line-height:24px}#customize-info .theme-name{font-size:20px;font-weight:200;line-height:24px;display:block}#customize-info .theme-screenshot{width:258px}#customize-info .theme-description{margin-top:1em;color:#666;line-height:20px}#customize-theme-controls .control-section{border:none}#customize-theme-controls .accordion-section-title{color:#555;background-color:#fff;border-bottom:1px solid #eee}#customize-theme-controls .accordion-section-content{color:#555;background:#fff}#customize-info .accordion-section-title:focus,#customize-info .accordion-section-title:hover,#customize-info.open .accordion-section-title,#customize-theme-controls .control-section .accordion-section-title:focus,#customize-theme-controls .control-section .accordion-section-title:hover,#customize-theme-controls .control-section.open .accordion-section-title,#customize-theme-controls .control-section:hover>.accordion-section-title{color:#222;background:#f5f5f5}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f5f5f5}#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#555}#customize-info.open,#customize-theme-controls .control-section.open{border-bottom:1px solid #eee}#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#eee!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#ddd}#customize-theme-controls .accordion-section-content,#customize-theme-controls>ul{margin:0}.control-section.control-panel>.accordion-section-title{padding-left:54px}.control-section.control-panel>.accordion-section-title:after{content:"\f345";background:#f5f5f5;color:#555;width:38px;height:100%;margin:-11px 0 -11px -10px;line-height:45px;padding-right:5px;border-right:1px solid #eee;z-index:0}.rtl .control-section.control-panel>.accordion-section-title:after{content:"\f341"}#customize-theme-controls .control-section.control-panel>h3.accordion-section-title:focus:after,#customize-theme-controls .control-section.control-panel>h3.accordion-section-title:hover:after{background:#ddd;color:#000;border:1px solid #d9d9d9;border-left:none;margin-top:-12px;line-height:44px;z-index:1}.accordion-sub-container.control-panel-content{display:none;position:absolute;right:300px;top:0;width:300px;border-top:1px solid #ddd;-webkit-transition:right ease-in-out .18s;transition:right ease-in-out .18s}.accordion-sub-container.control-panel-content.animating{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;right:0;width:45px;height:45px;padding-left:2px;background:#eee;border-left:1px solid #ddd;color:#444;cursor:pointer;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.control-panel-back{display:block;position:fixed;top:0;z-index:99;right:-48px;width:45px;height:45px;padding-left:2px;background:#eee;border-left:1px solid #ddd;cursor:pointer;-webkit-transition:right .18s ease-in-out,color .1s ease-in-out,background .1s ease-in-out;transition:right .18s ease-in-out,color .1s ease-in-out,background .1s ease-in-out}.collapsed .control-panel-back{display:none}.control-panel-back:focus,.control-panel-back:hover,.customize-controls-close:focus,.customize-controls-close:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-controls-close:before{font:400 22px/1 dashicons;content:"\f335";position:relative;top:7px;right:13px}.control-panel-back:before{font:400 20px/1 dashicons;content:"\f341";position:relative;top:7px;right:13px}.rtl .control-panel-back:before{content:"\f344"}.in-sub-panel .control-panel-back{right:0}.current-panel>.accordion-section-title{height:22px}.wp-full-overlay-sidebar .wp-full-overlay-header{-webkit-transition:padding ease-in-out .18s;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-right:62px}#customize-info,#customize-theme-controls>ul>.accordion-section{position:relative;right:0;-webkit-transition:right ease-in-out .18s;transition:right ease-in-out .18s}.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls>ul>.accordion-section{right:-300px;width:300px}.in-sub-panel #customize-theme-controls .accordion-section.current-panel{width:100%}#customize-theme-controls .control-section.current-panel{padding:0}#customize-theme-controls .control-section>h3.accordion-section-title{position:relative;right:0}#customize-theme-controls .control-section.current-panel>h3.accordion-section-title{right:-300px;-webkit-transition:right ease-in-out .18s;transition:right ease-in-out .18s}.control-section.control-panel .accordion-section-title .panel-title{font-size:20px;font-weight:200;line-height:24px;display:block;border:none}.control-section.control-panel .preview-notice{font-size:13px;line-height:24px}p.customize-section-description{font-style:normal}.customize-control{width:100%;float:right;clear:both;margin-bottom:8px}.customize-control input[type=checkbox],.customize-control input[type=radio],.customize-control select{line-height:28px}.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=password],.customize-control input[type=search],.customize-control input[type=tel],.customize-control input[type=text],.customize-control input[type=url]{width:98%;line-height:18px;margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{min-width:50%;max-width:100%;height:28px;line-height:28px}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:24px;font-weight:600;margin-bottom:5px}.customize-control-description{display:block;font-style:italic;line-height:18px;margin-bottom:5px}.customize-control-checkbox label,.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control-checkbox input{margin-left:5px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control-radio label{line-height:32px}.customize-control-radio input{margin-left:5px}#customize-preview iframe{width:100%;height:100%}.wp-full-overlay-sidebar{background:#eee;border-left:1px solid #ddd}.collapse-sidebar{background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:0!important;border-radius:0!important}.collapse-sidebar:active,.collapse-sidebar:active .collapse-sidebar-arrow:before,.collapse-sidebar:active .collapse-sidebar-label{text-shadow:none}.collapsed .collapse-sidebar-arrow:before{color:#888}.accordion-section .dropdown{float:right;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:right;min-width:30px;height:16px;line-height:16px;margin-left:16px;padding:4px 5px;border:2px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;left:0;width:20px;background:#eee}.customize-control .dropdown-arrow:after{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#333}.customize-control .dropdown-status{color:#333;background:#eee;display:none;max-width:112px}.customize-control-color .color-picker-hex{display:none}.customize-control-color.open .color-picker-hex{display:block}.customize-control-color .dropdown{margin-left:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#555;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.customize-control-image .actions,.customize-control-image .library{display:none;float:right;width:100%}.customize-control-image.open .actions,.customize-control-image.open .library{display:block}.accordion-section .customize-control-image .dropdown-content{height:auto;min-height:24px;min-width:40px;padding:0}.accordion-section .customize-control-image .dropdown-status{padding:4px 5px}.accordion-section .customize-control-image .preview-thumbnail img{display:block;width:100%;max-width:122px;max-height:98px;margin:0 auto}.accordion-section .customize-control-image .actions{text-align:left}.accordion-section .customize-control-image .library ul{border-bottom:1px solid #ddd;float:right;width:100%;margin:10px 0 0}.accordion-section .customize-control-image .library li{color:#ccc;float:right;padding:3px 15px;margin:0;border:1px solid transparent}.accordion-section .customize-control-image .library li.library-selected{margin-bottom:-1px;padding-bottom:4px;color:#666;border-color:#ddd #ddd #fff}.accordion-section .customize-control-image .library .thumbnail{display:block;width:100%}.accordion-section .customize-control-image .library .thumbnail img{display:block;max-width:90%;max-height:80px;margin:5px auto;padding:2px;background:#666}.accordion-section .customize-control-image .library .thumbnail:hover img{background-color:#2ea2cc}.accordion-section .customize-control-image .library-content{display:none;width:100%;float:right;padding:10px 0}.accordion-section .customize-control-image .library-content.library-selected{display:block}.accordion-section .customize-control-image .upload-fallback,.accordion-section .customize-control-upload .upload-fallback{display:none}.accordion-section .customize-control-image .upload-dropzone,.accordion-section .customize-control-upload .upload-dropzone{display:none;padding:15px 10px;border:3px dashed #dfdfdf;margin:5px auto;text-align:center;position:relative;cursor:default}.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop,.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop{display:block;-webkit-transition:border-color .1s;transition:border-color .1s}.accordion-section .customize-control-image .library ul li,.accordion-section .customize-control-upload .library ul li{cursor:pointer}.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over,.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over{border-color:#83b4d8}.ios #customize-preview,.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}#customize-control-header_image .current{margin-bottom:8px}#customize-control-header_image .uploaded{margin-bottom:18px}#customize-control-header_image .default button:not(.random),#customize-control-header_image .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}#customize-control-header_image button img{display:block}#customize-control-header_image button.new,#customize-control-header_image button.remove{white-space:normal;width:48%;height:auto}#customize-control-header_image .current .container{overflow:hidden;border:1px solid #eee;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .placeholder{width:100%;position:relative;text-align:center;cursor:default}#customize-control-header_image .inner{display:none;position:absolute;width:100%;color:#555;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#customize-control-header_image .inner,#customize-control-header_image .inner .dashicons{line-height:20px;top:10px}#customize-control-header_image .list .inner,#customize-control-header_image .list .inner .dashicons{top:9px}#customize-control-header_image .header-view{position:relative;width:100%;margin-bottom:5px}#customize-control-header_image .header-view:last-child{margin-bottom:0}#customize-control-header_image .header-view:after{border:0}#customize-control-header_image .header-view.selected:after{content:'';position:absolute;height:auto;top:0;right:0;bottom:0;left:0;border:4px solid #2ea2cc;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .header-view.button.selected{border:0}#customize-control-header_image .uploaded .header-view .close{font-size:2em;color:grey;position:absolute;visibility:hidden;top:10px;left:10px;z-index:1;width:20px;height:20px;cursor:pointer}#customize-control-header_image .uploaded .header-view .close:hover{color:#000;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}#customize-control-header_image .header-view:hover .close{visibility:visible}#customize-control-header_image .random.placeholder{cursor:pointer;-webkit-border-radius:2px;border-radius:2px;height:40px}#customize-control-header_image button.random{width:100%;height:auto;min-height:40px;white-space:normal}#customize-control-header_image button.random .dice{margin-top:4px}#customize-control-header_image .header-view:hover>button.random .dice,#customize-control-header_image .placeholder:hover .dice{-webkit-animation:dice-color-change 3s infinite;-ms-animation:dice-color-change 3s infinite;animation:dice-color-change 3s infinite}@-webkit-keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}@-ms-keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}@keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}#customize-control-header_image .actions{margin-bottom:32px}#customize-control-header_image .choice{position:relative;display:block;margin-bottom:9px}#customize-control-header_image .uploaded div:last-child>.choice{margin-bottom:0}#customize-control-header_image img{width:100%;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .remove{float:right;margin-left:3px}#customize-control-header_image .new{float:left}body.cheatin{font-size:medium;height:auto;background:#fff;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}
\ No newline at end of file
index f9661147358a9f5525d074f07890284b04211e28..f9f11b37c40f958a76f11630e728ff668c0ba19c 100644 (file)
@@ -32,6 +32,15 @@ body {
        display: block;
 }
 
        display: block;
 }
 
+#customize-header-actions {
+       border-bottom: 1px solid #ddd;
+}
+
+#customize-controls .wp-full-overlay-sidebar-content {
+       overflow-y: auto;
+       overflow-x: hidden;
+}
+
 #customize-info {
        border: none;
        border-top: 1px solid #ddd;
 #customize-info {
        border: none;
        border-top: 1px solid #ddd;
@@ -45,22 +54,12 @@ body {
        border-bottom: 1px solid #eeeeee;
 }
 
        border-bottom: 1px solid #eeeeee;
 }
 
-#customize-info.open .accordion-section-title,
-#customize-info .accordion-section-title:hover,
-#customize-info .accordion-section-title:focus {
-       color: #555555;
-}
-
 #customize-info.open .accordion-section-title:after,
 #customize-info .accordion-section-title:hover:after,
 #customize-info .accordion-section-title:focus:after {
        color: #555555;
 }
 
 #customize-info.open .accordion-section-title:after,
 #customize-info .accordion-section-title:hover:after,
 #customize-info .accordion-section-title:focus:after {
        color: #555555;
 }
 
-#customize-info.open .accordion-section-title {
-       border-color: transparent;
-}
-
 #customize-info .preview-notice {
        font-size: 13px;
        line-height: 24px;
 #customize-info .preview-notice {
        font-size: 13px;
        line-height: 24px;
@@ -83,11 +82,6 @@ body {
        line-height: 20px;
 }
 
        line-height: 20px;
 }
 
-#customize-theme-controls {
-       -webkit-box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.1);
-       box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.1);
-}
-
 #customize-theme-controls .control-section {
        border: none;
 }
 #customize-theme-controls .control-section {
        border: none;
 }
@@ -100,14 +94,17 @@ body {
 
 #customize-theme-controls .accordion-section-content {
        color: #555555;
 
 #customize-theme-controls .accordion-section-content {
        color: #555555;
-       background: white;
+       background: #fff;
 }
 
 }
 
-#customize-theme-controls .control-section:hover .accordion-section-title,
+#customize-info.open .accordion-section-title,
+#customize-info .accordion-section-title:hover,
+#customize-info .accordion-section-title:focus,
+#customize-theme-controls .control-section:hover > .accordion-section-title,
 #customize-theme-controls .control-section .accordion-section-title:hover,
 #customize-theme-controls .control-section.open .accordion-section-title,
 #customize-theme-controls .control-section .accordion-section-title:focus {
 #customize-theme-controls .control-section .accordion-section-title:hover,
 #customize-theme-controls .control-section.open .accordion-section-title,
 #customize-theme-controls .control-section .accordion-section-title:focus {
-       color: #555555;
+       color: #222;
        background: #f5f5f5;
 }
 
        background: #f5f5f5;
 }
 
@@ -118,13 +115,14 @@ body {
        background: #f5f5f5;
 }
 
        background: #f5f5f5;
 }
 
-#customize-theme-controls .control-section:hover .accordion-section-title::after,
-#customize-theme-controls .control-section .accordion-section-title:hover::after,
-#customize-theme-controls .control-section.open .accordion-section-title::after,
-#customize-theme-controls .control-section .accordion-section-title:focus::after {
-       color: #555555;
+#customize-theme-controls .control-section:hover > .accordion-section-title:after,
+#customize-theme-controls .control-section .accordion-section-title:hover:after,
+#customize-theme-controls .control-section.open .accordion-section-title:after,
+#customize-theme-controls .control-section .accordion-section-title:focus:after {
+       color: #555;
 }
 
 }
 
+#customize-info.open,
 #customize-theme-controls .control-section.open {
        border-bottom: 1px solid #eeeeee;
 }
 #customize-theme-controls .control-section.open {
        border-bottom: 1px solid #eeeeee;
 }
@@ -134,7 +132,7 @@ body {
 }
 
 #customize-theme-controls .control-section:last-of-type.open,
 }
 
 #customize-theme-controls .control-section:last-of-type.open,
-#customize-theme-controls .control-section:last-of-type .accordion-section-title {
+#customize-theme-controls .control-section:last-of-type .accordion-section-title {
        border-bottom-color: #ddd;
 }
 
        border-bottom-color: #ddd;
 }
 
@@ -143,6 +141,192 @@ body {
        margin: 0;
 }
 
        margin: 0;
 }
 
+.control-section.control-panel > .accordion-section-title {
+       padding-right: 54px;
+}
+
+.control-section.control-panel > .accordion-section-title:after {
+       content: "\f345";
+       background: #f5f5f5;
+       color: #555;
+       width: 38px;
+       height: 100%;
+       margin: -11px -10px -11px 0; /* compensate for positioning */
+       line-height: 45px;
+       padding-left: 5px;
+       border-left: 1px solid #eee;
+       z-index: 0;
+}
+
+.rtl .control-section.control-panel > .accordion-section-title:after {
+       content: "\f341";
+}
+
+#customize-theme-controls .control-section.control-panel > h3.accordion-section-title:focus:after,
+#customize-theme-controls .control-section.control-panel > h3.accordion-section-title:hover:after {
+       background: #ddd;
+       color: #000;
+       border: 1px solid #d9d9d9;
+       border-right: none;
+       margin-top: -12px;
+       line-height: 44px;
+       z-index: 1;
+}
+
+.accordion-sub-container.control-panel-content {
+       display: none;
+       position: absolute;
+       left: 300px;
+       top: 0;
+       width: 300px;
+       border-top: 1px solid #ddd;
+       -webkit-transition: left ease-in-out .18s;
+       transition: left ease-in-out .18s;
+}
+
+.accordion-sub-container.control-panel-content.animating {
+       display: block;
+}
+
+.current-panel .accordion-sub-container.control-panel-content {
+       width: 100%;
+}
+
+.customize-controls-close {
+       display: block;
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 45px;
+       height: 45px;
+       padding-right: 2px;
+       background: #eee;
+       border-right: 1px solid #ddd;
+       color: #444;
+       cursor: pointer;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.control-panel-back {
+       display: block;
+       position: fixed;
+       top: 0;
+       z-index: 99;
+       left: -48px;
+       width: 45px;
+       height: 45px;
+       padding-right: 2px;
+       background: #eee;
+       border-right: 1px solid #ddd;
+       cursor: pointer;
+       -webkit-transition: left .18s ease-in-out, color .1s ease-in-out, background .1s ease-in-out;
+       transition: left .18s ease-in-out, color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.collapsed .control-panel-back {
+       display: none;
+}
+
+.customize-controls-close:focus,
+.customize-controls-close:hover,
+.control-panel-back:focus,
+.control-panel-back:hover {
+       background: #ddd;
+       border-color: #ccc;
+       color: #000;
+       outline: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
+}
+
+.customize-controls-close:before {
+       font: normal 22px/1 dashicons;
+       content: "\f335";
+       position: relative;
+       top: 7px;
+       left: 13px;
+}
+
+.control-panel-back:before {
+       font: normal 20px/1 dashicons;
+       content: "\f341";
+       position: relative;
+       top: 7px;
+       left: 13px;
+}
+
+.rtl .control-panel-back:before {
+       content: "\f344";
+}
+
+.in-sub-panel .control-panel-back {
+       left: 0;
+}
+
+.current-panel > .accordion-section-title {
+       height: 22px;
+}
+
+.wp-full-overlay-sidebar .wp-full-overlay-header {
+       -webkit-transition: padding ease-in-out .18s;
+       transition: padding ease-in-out .18s;
+}
+
+.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header {
+       padding-left: 62px;
+}
+
+#customize-info,
+#customize-theme-controls > ul > .accordion-section {
+       position: relative;
+       left: 0;
+       -webkit-transition: left ease-in-out .18s;
+       transition: left ease-in-out .18s;
+}
+
+.in-sub-panel #customize-info,
+.in-sub-panel #customize-theme-controls > ul > .accordion-section {
+       left: -300px;
+       width: 300px;
+}
+
+.in-sub-panel #customize-theme-controls .accordion-section.current-panel {
+       width: 100%;
+}
+
+#customize-theme-controls .control-section.current-panel {
+       padding: 0;
+}
+
+#customize-theme-controls .control-section > h3.accordion-section-title {
+       position: relative;
+       left: 0;
+}
+
+#customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
+       left: -300px;
+       -webkit-transition: left ease-in-out .18s;
+       transition: left ease-in-out .18s;
+}
+
+.control-section.control-panel .accordion-section-title .panel-title {
+       font-size: 20px;
+       font-weight: 200;
+       line-height: 24px;
+       display: block;
+       border: none;
+}
+
+.control-section.control-panel .preview-notice {
+       font-size: 13px;
+       line-height: 24px;
+}
+
+p.customize-section-description {
+       font-style: normal;
+}
+
 .customize-control {
        width: 100%;
        float: left;
 .customize-control {
        width: 100%;
        float: left;
@@ -151,18 +335,28 @@ body {
 }
 
 .customize-control select,
 }
 
 .customize-control select,
-.customize-control input[type="text"],
 .customize-control input[type="radio"],
 .customize-control input[type="checkbox"] {
        line-height: 28px;
 }
 
 .customize-control input[type="radio"],
 .customize-control input[type="checkbox"] {
        line-height: 28px;
 }
 
-.customize-control input[type="text"] {
+.customize-control input[type="text"],
+.customize-control input[type="password"],
+.customize-control input[type="email"],
+.customize-control input[type="number"],
+.customize-control input[type="search"],
+.customize-control input[type="tel"],
+.customize-control input[type="url"] {
        width: 98%;
        line-height: 18px;
        margin: 0;
 }
 
        width: 98%;
        line-height: 18px;
        margin: 0;
 }
 
+.customize-control-textarea textarea {
+       width: 100%;
+       resize: vertical;
+}
+
 .customize-control select {
        min-width: 50%;
        max-width: 100%;
 .customize-control select {
        min-width: 50%;
        max-width: 100%;
@@ -182,6 +376,13 @@ body {
        margin-bottom: 5px;
 }
 
        margin-bottom: 5px;
 }
 
+.customize-control-description {
+       display: block;
+       font-style: italic;
+       line-height: 18px;
+       margin-bottom: 5px;
+}
+
 .customize-control-color .color-picker,
 .customize-control-checkbox label,
 .customize-control-upload div {
 .customize-control-color .color-picker,
 .customize-control-checkbox label,
 .customize-control-upload div {
@@ -201,6 +402,10 @@ body {
        line-height: 22px;
 }
 
        line-height: 22px;
 }
 
+.customize-control-radio .customize-control-title + .customize-control-description {
+       margin-top: 7px;
+}
+
 .customize-control-radio label {
        line-height: 32px;
 }
 .customize-control-radio label {
        line-height: 32px;
 }
index 99b3ab5f4ac9d9d95893db67c084d51af923ff79..21345fbaf7a50b11ab9badec41e9a664814f9d7e 100644 (file)
@@ -1 +1 @@
-body{overflow:hidden}#customize-controls a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls .submit{text-align:center}#customize-controls .description{color:#666}#customize-header-actions .button-primary{float:right;margin-top:9px}#customize-header-actions .spinner{margin-top:16px;margin-right:4px}.saving #customize-header-actions .spinner{display:block}#customize-info{border:0;border-top:1px solid #ddd}#customize-info .accordion-section-title{background-color:#fff;color:#666;border-left:0;border-right:0;border-bottom:1px solid #eee}#customize-info .accordion-section-title:focus,#customize-info .accordion-section-title:focus:after,#customize-info .accordion-section-title:hover,#customize-info .accordion-section-title:hover:after,#customize-info.open .accordion-section-title,#customize-info.open .accordion-section-title:after{color:#555}#customize-info.open .accordion-section-title{border-color:transparent}#customize-info .preview-notice{font-size:13px;line-height:24px}#customize-info .theme-name{font-size:20px;font-weight:200;line-height:24px;display:block}#customize-info .theme-screenshot{width:258px}#customize-info .theme-description{margin-top:1em;color:#666;line-height:20px}#customize-theme-controls{-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#customize-theme-controls .control-section{border:0}#customize-theme-controls .accordion-section-title{color:#555;background-color:#fff;border-bottom:1px solid #eee}#customize-theme-controls .accordion-section-content{color:#555;background:#fff}#customize-theme-controls .control-section .accordion-section-title:focus,#customize-theme-controls .control-section .accordion-section-title:hover,#customize-theme-controls .control-section.open .accordion-section-title,#customize-theme-controls .control-section:hover .accordion-section-title{color:#555;background:#f5f5f5}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f5f5f5}#customize-theme-controls .control-section .accordion-section-title:focus::after,#customize-theme-controls .control-section .accordion-section-title:hover::after,#customize-theme-controls .control-section.open .accordion-section-title::after,#customize-theme-controls .control-section:hover .accordion-section-title::after{color:#555}#customize-theme-controls .control-section.open{border-bottom:1px solid #eee}#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#eee!important}#customize-theme-controls .control-section:last-of-type .accordion-section-title,#customize-theme-controls .control-section:last-of-type.open{border-bottom-color:#ddd}#customize-theme-controls .accordion-section-content,#customize-theme-controls>ul{margin:0}.customize-control{width:100%;float:left;clear:both;margin-bottom:8px}.customize-control input[type=checkbox],.customize-control input[type=radio],.customize-control input[type=text],.customize-control select{line-height:28px}.customize-control input[type=text]{width:98%;line-height:18px;margin:0}.customize-control select{min-width:50%;max-width:100%;height:28px;line-height:28px}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:24px;font-weight:600;margin-bottom:5px}.customize-control-checkbox label,.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control-checkbox input{margin-right:5px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio label{line-height:32px}.customize-control-radio input{margin-right:5px}#customize-preview iframe{width:100%;height:100%}.wp-full-overlay-sidebar{background:#eee;border-right:1px solid #ddd}.collapse-sidebar{background-color:transparent!important;border:0!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:0!important;border-radius:0!important}.collapse-sidebar:active,.collapse-sidebar:active .collapse-sidebar-arrow:before,.collapse-sidebar:active .collapse-sidebar-label{text-shadow:none}.collapsed .collapse-sidebar-arrow:before{color:#888}.accordion-section .dropdown{float:left;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:left;min-width:30px;height:16px;line-height:16px;margin-right:16px;padding:4px 5px;border:2px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;right:0;width:20px;background:#eee}.customize-control .dropdown-arrow:after{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#333}.customize-control .dropdown-status{color:#333;background:#eee;display:none;max-width:112px}.customize-control-color .color-picker-hex{display:none}.customize-control-color.open .color-picker-hex{display:block}.customize-control-color .dropdown{margin-right:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#555;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.customize-control-image .actions,.customize-control-image .library{display:none;float:left;width:100%}.customize-control-image.open .actions,.customize-control-image.open .library{display:block}.accordion-section .customize-control-image .dropdown-content{height:auto;min-height:24px;min-width:40px;padding:0}.accordion-section .customize-control-image .dropdown-status{padding:4px 5px}.accordion-section .customize-control-image .preview-thumbnail img{display:block;width:100%;max-width:122px;max-height:98px;margin:0 auto}.accordion-section .customize-control-image .actions{text-align:right}.accordion-section .customize-control-image .library ul{border-bottom:1px solid #ddd;float:left;width:100%;margin:10px 0 0}.accordion-section .customize-control-image .library li{color:#ccc;float:left;padding:3px 15px;margin:0;border:1px solid transparent}.accordion-section .customize-control-image .library li.library-selected{margin-bottom:-1px;padding-bottom:4px;color:#666;border-color:#ddd;border-bottom-color:#fff}.accordion-section .customize-control-image .library .thumbnail{display:block;width:100%}.accordion-section .customize-control-image .library .thumbnail img{display:block;max-width:90%;max-height:80px;margin:5px auto;padding:2px;background:#666}.accordion-section .customize-control-image .library .thumbnail:hover img{background-color:#2ea2cc}.accordion-section .customize-control-image .library-content{display:none;width:100%;float:left;padding:10px 0}.accordion-section .customize-control-image .library-content.library-selected{display:block}.accordion-section .customize-control-image .upload-fallback,.accordion-section .customize-control-upload .upload-fallback{display:none}.accordion-section .customize-control-image .upload-dropzone,.accordion-section .customize-control-upload .upload-dropzone{display:none;padding:15px 10px;border:3px dashed #dfdfdf;margin:5px auto;text-align:center;position:relative;cursor:default}.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop,.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop{display:block;-webkit-transition:border-color .1s;transition:border-color .1s}.accordion-section .customize-control-image .library ul li,.accordion-section .customize-control-upload .library ul li{cursor:pointer}.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over,.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over{border-color:#83b4d8}.ios #customize-preview,.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}#customize-control-header_image .current{margin-bottom:8px}#customize-control-header_image .uploaded{margin-bottom:18px}#customize-control-header_image .default button:not(.random),#customize-control-header_image .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:0;color:inherit;cursor:pointer}#customize-control-header_image button img{display:block}#customize-control-header_image button.new,#customize-control-header_image button.remove{white-space:normal;width:48%;height:auto}#customize-control-header_image .current .container{overflow:hidden;border:1px solid #eee;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .placeholder{width:100%;position:relative;text-align:center;cursor:default}#customize-control-header_image .inner{display:none;position:absolute;width:100%;color:#555;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#customize-control-header_image .inner,#customize-control-header_image .inner .dashicons{line-height:20px;top:10px}#customize-control-header_image .list .inner,#customize-control-header_image .list .inner .dashicons{top:9px}#customize-control-header_image .header-view{position:relative;width:100%;margin-bottom:5px}#customize-control-header_image .header-view:last-child{margin-bottom:0}#customize-control-header_image .header-view:after{border:0}#customize-control-header_image .header-view.selected:after{content:'';position:absolute;height:auto;top:0;left:0;bottom:0;right:0;border:4px solid #2ea2cc;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .header-view.button.selected{border:0}#customize-control-header_image .uploaded .header-view .close{font-size:2em;color:grey;position:absolute;visibility:hidden;top:10px;right:10px;z-index:1;width:20px;height:20px;cursor:pointer}#customize-control-header_image .uploaded .header-view .close:hover{color:#000;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}#customize-control-header_image .header-view:hover .close{visibility:visible}#customize-control-header_image .random.placeholder{cursor:pointer;-webkit-border-radius:2px;border-radius:2px;height:40px}#customize-control-header_image button.random{width:100%;height:auto;min-height:40px;white-space:normal}#customize-control-header_image button.random .dice{margin-top:4px}#customize-control-header_image .header-view:hover>button.random .dice,#customize-control-header_image .placeholder:hover .dice{-webkit-animation:dice-color-change 3s infinite;-ms-animation:dice-color-change 3s infinite;animation:dice-color-change 3s infinite}@-webkit-keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}@-ms-keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}@keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}#customize-control-header_image .actions{margin-bottom:32px}#customize-control-header_image .choice{position:relative;display:block;margin-bottom:9px}#customize-control-header_image .uploaded div:last-child>.choice{margin-bottom:0}#customize-control-header_image img{width:100%;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .remove{float:left;margin-right:3px}#customize-control-header_image .new{float:right}body.cheatin{font-size:medium;height:auto;background:#fff;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}
\ No newline at end of file
+body{overflow:hidden}#customize-controls a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls .submit{text-align:center}#customize-controls .description{color:#666}#customize-header-actions .button-primary{float:right;margin-top:9px}#customize-header-actions .spinner{margin-top:16px;margin-right:4px}.saving #customize-header-actions .spinner{display:block}#customize-header-actions{border-bottom:1px solid #ddd}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}#customize-info{border:none;border-top:1px solid #ddd}#customize-info .accordion-section-title{background-color:#fff;color:#666;border-left:none;border-right:none;border-bottom:1px solid #eee}#customize-info .accordion-section-title:focus:after,#customize-info .accordion-section-title:hover:after,#customize-info.open .accordion-section-title:after{color:#555}#customize-info .preview-notice{font-size:13px;line-height:24px}#customize-info .theme-name{font-size:20px;font-weight:200;line-height:24px;display:block}#customize-info .theme-screenshot{width:258px}#customize-info .theme-description{margin-top:1em;color:#666;line-height:20px}#customize-theme-controls .control-section{border:none}#customize-theme-controls .accordion-section-title{color:#555;background-color:#fff;border-bottom:1px solid #eee}#customize-theme-controls .accordion-section-content{color:#555;background:#fff}#customize-info .accordion-section-title:focus,#customize-info .accordion-section-title:hover,#customize-info.open .accordion-section-title,#customize-theme-controls .control-section .accordion-section-title:focus,#customize-theme-controls .control-section .accordion-section-title:hover,#customize-theme-controls .control-section.open .accordion-section-title,#customize-theme-controls .control-section:hover>.accordion-section-title{color:#222;background:#f5f5f5}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f5f5f5}#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#555}#customize-info.open,#customize-theme-controls .control-section.open{border-bottom:1px solid #eee}#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#eee!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#ddd}#customize-theme-controls .accordion-section-content,#customize-theme-controls>ul{margin:0}.control-section.control-panel>.accordion-section-title{padding-right:54px}.control-section.control-panel>.accordion-section-title:after{content:"\f345";background:#f5f5f5;color:#555;width:38px;height:100%;margin:-11px -10px -11px 0;line-height:45px;padding-left:5px;border-left:1px solid #eee;z-index:0}.rtl .control-section.control-panel>.accordion-section-title:after{content:"\f341"}#customize-theme-controls .control-section.control-panel>h3.accordion-section-title:focus:after,#customize-theme-controls .control-section.control-panel>h3.accordion-section-title:hover:after{background:#ddd;color:#000;border:1px solid #d9d9d9;border-right:none;margin-top:-12px;line-height:44px;z-index:1}.accordion-sub-container.control-panel-content{display:none;position:absolute;left:300px;top:0;width:300px;border-top:1px solid #ddd;-webkit-transition:left ease-in-out .18s;transition:left ease-in-out .18s}.accordion-sub-container.control-panel-content.animating{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;left:0;width:45px;height:45px;padding-right:2px;background:#eee;border-right:1px solid #ddd;color:#444;cursor:pointer;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.control-panel-back{display:block;position:fixed;top:0;z-index:99;left:-48px;width:45px;height:45px;padding-right:2px;background:#eee;border-right:1px solid #ddd;cursor:pointer;-webkit-transition:left .18s ease-in-out,color .1s ease-in-out,background .1s ease-in-out;transition:left .18s ease-in-out,color .1s ease-in-out,background .1s ease-in-out}.collapsed .control-panel-back{display:none}.control-panel-back:focus,.control-panel-back:hover,.customize-controls-close:focus,.customize-controls-close:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-controls-close:before{font:400 22px/1 dashicons;content:"\f335";position:relative;top:7px;left:13px}.control-panel-back:before{font:400 20px/1 dashicons;content:"\f341";position:relative;top:7px;left:13px}.rtl .control-panel-back:before{content:"\f344"}.in-sub-panel .control-panel-back{left:0}.current-panel>.accordion-section-title{height:22px}.wp-full-overlay-sidebar .wp-full-overlay-header{-webkit-transition:padding ease-in-out .18s;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-left:62px}#customize-info,#customize-theme-controls>ul>.accordion-section{position:relative;left:0;-webkit-transition:left ease-in-out .18s;transition:left ease-in-out .18s}.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls>ul>.accordion-section{left:-300px;width:300px}.in-sub-panel #customize-theme-controls .accordion-section.current-panel{width:100%}#customize-theme-controls .control-section.current-panel{padding:0}#customize-theme-controls .control-section>h3.accordion-section-title{position:relative;left:0}#customize-theme-controls .control-section.current-panel>h3.accordion-section-title{left:-300px;-webkit-transition:left ease-in-out .18s;transition:left ease-in-out .18s}.control-section.control-panel .accordion-section-title .panel-title{font-size:20px;font-weight:200;line-height:24px;display:block;border:none}.control-section.control-panel .preview-notice{font-size:13px;line-height:24px}p.customize-section-description{font-style:normal}.customize-control{width:100%;float:left;clear:both;margin-bottom:8px}.customize-control input[type=checkbox],.customize-control input[type=radio],.customize-control select{line-height:28px}.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=password],.customize-control input[type=search],.customize-control input[type=tel],.customize-control input[type=text],.customize-control input[type=url]{width:98%;line-height:18px;margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{min-width:50%;max-width:100%;height:28px;line-height:28px}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:24px;font-weight:600;margin-bottom:5px}.customize-control-description{display:block;font-style:italic;line-height:18px;margin-bottom:5px}.customize-control-checkbox label,.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control-checkbox input{margin-right:5px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control-radio label{line-height:32px}.customize-control-radio input{margin-right:5px}#customize-preview iframe{width:100%;height:100%}.wp-full-overlay-sidebar{background:#eee;border-right:1px solid #ddd}.collapse-sidebar{background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:0!important;border-radius:0!important}.collapse-sidebar:active,.collapse-sidebar:active .collapse-sidebar-arrow:before,.collapse-sidebar:active .collapse-sidebar-label{text-shadow:none}.collapsed .collapse-sidebar-arrow:before{color:#888}.accordion-section .dropdown{float:left;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:left;min-width:30px;height:16px;line-height:16px;margin-right:16px;padding:4px 5px;border:2px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;right:0;width:20px;background:#eee}.customize-control .dropdown-arrow:after{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#333}.customize-control .dropdown-status{color:#333;background:#eee;display:none;max-width:112px}.customize-control-color .color-picker-hex{display:none}.customize-control-color.open .color-picker-hex{display:block}.customize-control-color .dropdown{margin-right:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#555;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.customize-control-image .actions,.customize-control-image .library{display:none;float:left;width:100%}.customize-control-image.open .actions,.customize-control-image.open .library{display:block}.accordion-section .customize-control-image .dropdown-content{height:auto;min-height:24px;min-width:40px;padding:0}.accordion-section .customize-control-image .dropdown-status{padding:4px 5px}.accordion-section .customize-control-image .preview-thumbnail img{display:block;width:100%;max-width:122px;max-height:98px;margin:0 auto}.accordion-section .customize-control-image .actions{text-align:right}.accordion-section .customize-control-image .library ul{border-bottom:1px solid #ddd;float:left;width:100%;margin:10px 0 0}.accordion-section .customize-control-image .library li{color:#ccc;float:left;padding:3px 15px;margin:0;border:1px solid transparent}.accordion-section .customize-control-image .library li.library-selected{margin-bottom:-1px;padding-bottom:4px;color:#666;border-color:#ddd #ddd #fff}.accordion-section .customize-control-image .library .thumbnail{display:block;width:100%}.accordion-section .customize-control-image .library .thumbnail img{display:block;max-width:90%;max-height:80px;margin:5px auto;padding:2px;background:#666}.accordion-section .customize-control-image .library .thumbnail:hover img{background-color:#2ea2cc}.accordion-section .customize-control-image .library-content{display:none;width:100%;float:left;padding:10px 0}.accordion-section .customize-control-image .library-content.library-selected{display:block}.accordion-section .customize-control-image .upload-fallback,.accordion-section .customize-control-upload .upload-fallback{display:none}.accordion-section .customize-control-image .upload-dropzone,.accordion-section .customize-control-upload .upload-dropzone{display:none;padding:15px 10px;border:3px dashed #dfdfdf;margin:5px auto;text-align:center;position:relative;cursor:default}.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop,.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop{display:block;-webkit-transition:border-color .1s;transition:border-color .1s}.accordion-section .customize-control-image .library ul li,.accordion-section .customize-control-upload .library ul li{cursor:pointer}.accordion-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over,.accordion-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over{border-color:#83b4d8}.ios #customize-preview,.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}#customize-control-header_image .current{margin-bottom:8px}#customize-control-header_image .uploaded{margin-bottom:18px}#customize-control-header_image .default button:not(.random),#customize-control-header_image .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}#customize-control-header_image button img{display:block}#customize-control-header_image button.new,#customize-control-header_image button.remove{white-space:normal;width:48%;height:auto}#customize-control-header_image .current .container{overflow:hidden;border:1px solid #eee;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .placeholder{width:100%;position:relative;text-align:center;cursor:default}#customize-control-header_image .inner{display:none;position:absolute;width:100%;color:#555;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#customize-control-header_image .inner,#customize-control-header_image .inner .dashicons{line-height:20px;top:10px}#customize-control-header_image .list .inner,#customize-control-header_image .list .inner .dashicons{top:9px}#customize-control-header_image .header-view{position:relative;width:100%;margin-bottom:5px}#customize-control-header_image .header-view:last-child{margin-bottom:0}#customize-control-header_image .header-view:after{border:0}#customize-control-header_image .header-view.selected:after{content:'';position:absolute;height:auto;top:0;left:0;bottom:0;right:0;border:4px solid #2ea2cc;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .header-view.button.selected{border:0}#customize-control-header_image .uploaded .header-view .close{font-size:2em;color:grey;position:absolute;visibility:hidden;top:10px;right:10px;z-index:1;width:20px;height:20px;cursor:pointer}#customize-control-header_image .uploaded .header-view .close:hover{color:#000;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}#customize-control-header_image .header-view:hover .close{visibility:visible}#customize-control-header_image .random.placeholder{cursor:pointer;-webkit-border-radius:2px;border-radius:2px;height:40px}#customize-control-header_image button.random{width:100%;height:auto;min-height:40px;white-space:normal}#customize-control-header_image button.random .dice{margin-top:4px}#customize-control-header_image .header-view:hover>button.random .dice,#customize-control-header_image .placeholder:hover .dice{-webkit-animation:dice-color-change 3s infinite;-ms-animation:dice-color-change 3s infinite;animation:dice-color-change 3s infinite}@-webkit-keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}@-ms-keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}@keyframes dice-color-change{0%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}100%{color:#d4b146}}#customize-control-header_image .actions{margin-bottom:32px}#customize-control-header_image .choice{position:relative;display:block;margin-bottom:9px}#customize-control-header_image .uploaded div:last-child>.choice{margin-bottom:0}#customize-control-header_image img{width:100%;-webkit-border-radius:2px;border-radius:2px}#customize-control-header_image .remove{float:left;margin-right:3px}#customize-control-header_image .new{float:right}body.cheatin{font-size:medium;height:auto;background:#fff;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}
\ No newline at end of file
index f8bd054e0cadd12f47eb7eadfd62cbfa472341a5..407c08793d9d59d76cd196f26c1a55be0558653e 100644 (file)
@@ -1 +1 @@
-.wp-full-overlay-sidebar{overflow:visible}.control-section[id^=accordion-section-sidebar-widgets-],.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .spinner,.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form.previewer-loading .spinner{display:inline}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;right:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:0;line-height:16px}.widget-top{cursor:move}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}.reorder-toggle{float:left;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:focus{outline:1px dotted}.reorder-done,.reordering .reorder{display:none}.reordering .reorder-done{display:block;color:#a00}#customize-theme-controls .reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#customize-theme-controls .widget-reorder-nav{display:none;float:left;background-color:#fafafa}.widget-reorder-nav span{position:relative;overflow:hidden;float:right;display:block;width:33px;height:43px;color:#888;text-indent:-9999px;cursor:pointer;outline:0}.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;left:0;width:100%;height:100%;font:400 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#444;background:#eee}.move-widget:before{content:'\f504'}.move-widget-down:before{content:'\f347'}.move-widget-up:before{content:'\f343'}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down{color:#d5d5d5;cursor:default}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #dedede;border-top:0;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 42px 15px 15px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:'\f147';position:absolute;top:12px;right:10px;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);background:#2ea2cc}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .move-widget-actions{text-align:left;padding:12px}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}.wp-full-overlay-main{left:auto;width:100%}#customize-theme-controls .add-new-widget{cursor:pointer;float:left;margin-right:10px;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.add-new-widget:before{content:"\f132";display:inline-block;position:relative;right:-2px;top:-1px;font:400 20px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-widgets .widget{position:static}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}#available-widgets{position:absolute;overflow:auto;top:0;bottom:0;right:-301px;width:300px;margin:0;z-index:1;background:#fff;-webkit-transition:all .2s;transition:all .2s;border-left:1px solid #ddd}#available-widgets-filter{padding:8px 13px 7px 17px;border-bottom:1px solid #e4e4e4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-widgets-filter input{padding:5px 10px 2px;width:100%}#available-widgets .widget-tpl{position:relative;padding:20px 60px 20px 15px;border-bottom:1px solid #e4e4e4;cursor:pointer;display:none}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#fafafa}#available-widgets .widget-top,#available-widgets .widget-top:hover{border:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-title h4{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#777}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{right:0}body.adding-widget .wp-full-overlay-main{right:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;left:100%;margin-left:20px;width:20px;height:20px;color:#333;font:400 20px/1 dashicons;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=like] .widget-title:before,#available-widgets [class*=super] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=chat] .widget-title:before,#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=calendar] .widget-title:before,#available-widgets [class*=event] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=tube] .widget-title:before,#available-widgets [class*=video] .widget-title:before{content:"\f126"}#available-widgets [class*=audio] .widget-title:before,#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before{content:"\f127"}#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before,#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=user] .widget-title:before{content:"\f110"}#available-widgets [class*=cart] .widget-title:before,#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=firewall] .widget-title:before,#available-widgets [class*=secur] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=poll] .widget-title:before,#available-widgets [class*=stat] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=subscribe] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h4{padding:13px 15px}.widget-top a.widget-action:after{padding-top:9px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 42px 11px 15px}#customize-theme-controls .widget-area-select li:before{top:8px}}
\ No newline at end of file
+.wp-full-overlay-sidebar{overflow:visible}.control-section[id^=accordion-section-sidebar-widgets-],.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .spinner,.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form.previewer-loading .spinner{display:inline}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;right:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:none;line-height:16px}.widget-top{cursor:move}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}.reorder-toggle{float:left;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:focus{outline:dotted 1px}.reorder-done,.reordering .reorder{display:none}.reordering .reorder-done{display:block;color:#a00}#customize-theme-controls .reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#customize-theme-controls .widget-reorder-nav{display:none;float:left;background-color:#fafafa}.widget-reorder-nav span{position:relative;overflow:hidden;float:right;display:block;width:33px;height:43px;color:#888;text-indent:-9999px;cursor:pointer;outline:0}.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;left:0;width:100%;height:100%;font:400 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#444;background:#eee}.move-widget:before{content:'\f504'}.move-widget-down:before{content:'\f347'}.move-widget-up:before{content:'\f343'}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down{color:#d5d5d5;cursor:default}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #dedede;border-top:none;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 42px 15px 15px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:'\f147';position:absolute;top:12px;right:10px;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);background:#2ea2cc}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .move-widget-actions{text-align:left;padding:12px}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}.wp-full-overlay-main{left:auto;width:100%}#customize-theme-controls .add-new-widget{cursor:pointer;float:left;margin-right:10px;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.add-new-widget:before{content:"\f132";display:inline-block;position:relative;right:-2px;top:-1px;font:400 20px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-widgets .widget{position:static}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}#available-widgets{position:absolute;overflow:auto;top:0;bottom:0;right:-301px;width:300px;margin:0;z-index:1;background:#fff;-webkit-transition:all .2s;transition:all .2s;border-left:1px solid #ddd}#available-widgets-filter{padding:8px 13px 7px 17px;border-bottom:1px solid #e4e4e4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-widgets-filter input{padding:5px 10px 2px;width:100%}#available-widgets .widget-tpl{position:relative;padding:20px 60px 20px 15px;border-bottom:1px solid #e4e4e4;cursor:pointer;display:none}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#fafafa}#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-title h4{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#777}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{right:0}body.adding-widget .wp-full-overlay-main{right:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;left:100%;margin-left:20px;width:20px;height:20px;color:#333;font:400 20px/1 dashicons;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=like] .widget-title:before,#available-widgets [class*=super] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=chat] .widget-title:before,#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=calendar] .widget-title:before,#available-widgets [class*=event] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=tube] .widget-title:before,#available-widgets [class*=video] .widget-title:before{content:"\f126"}#available-widgets [class*=audio] .widget-title:before,#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before{content:"\f127"}#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before,#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=user] .widget-title:before{content:"\f110"}#available-widgets [class*=cart] .widget-title:before,#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=firewall] .widget-title:before,#available-widgets [class*=secur] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=poll] .widget-title:before,#available-widgets [class*=stat] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=subscribe] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h4{padding:13px 15px}.widget-top a.widget-action:after{padding-top:9px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 42px 11px 15px}#customize-theme-controls .widget-area-select li:before{top:8px}}
\ No newline at end of file
index cac07db2afc70494fd1e1d1b538a3b1337de3785..7c7cf4a10833b5383ca4a2718d397b7b00f2e2b0 100644 (file)
@@ -1 +1 @@
-.wp-full-overlay-sidebar{overflow:visible}.control-section[id^=accordion-section-sidebar-widgets-],.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .spinner,.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form.previewer-loading .spinner{display:inline}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;left:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:0;line-height:16px}.widget-top{cursor:move}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}.reorder-toggle{float:right;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:focus{outline:1px dotted}.reorder-done,.reordering .reorder{display:none}.reordering .reorder-done{display:block;color:#a00}#customize-theme-controls .reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#customize-theme-controls .widget-reorder-nav{display:none;float:right;background-color:#fafafa}.widget-reorder-nav span{position:relative;overflow:hidden;float:left;display:block;width:33px;height:43px;color:#888;text-indent:-9999px;cursor:pointer;outline:0}.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:400 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#444;background:#eee}.move-widget:before{content:'\f504'}.move-widget-down:before{content:'\f347'}.move-widget-up:before{content:'\f343'}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down{color:#d5d5d5;cursor:default}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #dedede;border-top:0;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 15px 15px 42px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:'\f147';position:absolute;top:12px;left:10px;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);background:#2ea2cc}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .move-widget-actions{text-align:right;padding:12px}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}.wp-full-overlay-main{right:auto;width:100%}#customize-theme-controls .add-new-widget{cursor:pointer;float:right;margin-left:10px;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.add-new-widget:before{content:"\f132";display:inline-block;position:relative;left:-2px;top:-1px;font:400 20px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-widgets .widget{position:static}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}#available-widgets{position:absolute;overflow:auto;top:0;bottom:0;left:-301px;width:300px;margin:0;z-index:1;background:#fff;-webkit-transition:all .2s;transition:all .2s;border-right:1px solid #ddd}#available-widgets-filter{padding:8px 17px 7px 13px;border-bottom:1px solid #e4e4e4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-widgets-filter input{padding:5px 10px 2px;width:100%}#available-widgets .widget-tpl{position:relative;padding:20px 15px 20px 60px;border-bottom:1px solid #e4e4e4;cursor:pointer;display:none}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#fafafa}#available-widgets .widget-top,#available-widgets .widget-top:hover{border:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-title h4{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#777}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{left:0}body.adding-widget .wp-full-overlay-main{left:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;right:100%;margin-right:20px;width:20px;height:20px;color:#333;font:400 20px/1 dashicons;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=like] .widget-title:before,#available-widgets [class*=super] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=chat] .widget-title:before,#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=calendar] .widget-title:before,#available-widgets [class*=event] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=tube] .widget-title:before,#available-widgets [class*=video] .widget-title:before{content:"\f126"}#available-widgets [class*=audio] .widget-title:before,#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before{content:"\f127"}#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before,#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=user] .widget-title:before{content:"\f110"}#available-widgets [class*=cart] .widget-title:before,#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=firewall] .widget-title:before,#available-widgets [class*=secur] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=poll] .widget-title:before,#available-widgets [class*=stat] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=subscribe] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h4{padding:13px 15px}.widget-top a.widget-action:after{padding-top:9px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 15px 11px 42px}#customize-theme-controls .widget-area-select li:before{top:8px}}
\ No newline at end of file
+.wp-full-overlay-sidebar{overflow:visible}.control-section[id^=accordion-section-sidebar-widgets-],.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .spinner,.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form.previewer-loading .spinner{display:inline}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;left:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:none;line-height:16px}.widget-top{cursor:move}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}.reorder-toggle{float:right;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:focus{outline:dotted 1px}.reorder-done,.reordering .reorder{display:none}.reordering .reorder-done{display:block;color:#a00}#customize-theme-controls .reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#customize-theme-controls .widget-reorder-nav{display:none;float:right;background-color:#fafafa}.widget-reorder-nav span{position:relative;overflow:hidden;float:left;display:block;width:33px;height:43px;color:#888;text-indent:-9999px;cursor:pointer;outline:0}.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:400 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#444;background:#eee}.move-widget:before{content:'\f504'}.move-widget-down:before{content:'\f347'}.move-widget-up:before{content:'\f343'}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down{color:#d5d5d5;cursor:default}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #dedede;border-top:none;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 15px 15px 42px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:'\f147';position:absolute;top:12px;left:10px;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);background:#2ea2cc}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .move-widget-actions{text-align:right;padding:12px}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}.wp-full-overlay-main{right:auto;width:100%}#customize-theme-controls .add-new-widget{cursor:pointer;float:right;margin-left:10px;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.add-new-widget:before{content:"\f132";display:inline-block;position:relative;left:-2px;top:-1px;font:400 20px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-widgets .widget{position:static}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}#available-widgets{position:absolute;overflow:auto;top:0;bottom:0;left:-301px;width:300px;margin:0;z-index:1;background:#fff;-webkit-transition:all .2s;transition:all .2s;border-right:1px solid #ddd}#available-widgets-filter{padding:8px 17px 7px 13px;border-bottom:1px solid #e4e4e4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-widgets-filter input{padding:5px 10px 2px;width:100%}#available-widgets .widget-tpl{position:relative;padding:20px 15px 20px 60px;border-bottom:1px solid #e4e4e4;cursor:pointer;display:none}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#fafafa}#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-title h4{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#777}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{left:0}body.adding-widget .wp-full-overlay-main{left:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;right:100%;margin-right:20px;width:20px;height:20px;color:#333;font:400 20px/1 dashicons;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=like] .widget-title:before,#available-widgets [class*=super] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=chat] .widget-title:before,#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=calendar] .widget-title:before,#available-widgets [class*=event] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=tube] .widget-title:before,#available-widgets [class*=video] .widget-title:before{content:"\f126"}#available-widgets [class*=audio] .widget-title:before,#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before{content:"\f127"}#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before,#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=user] .widget-title:before{content:"\f110"}#available-widgets [class*=cart] .widget-title:before,#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=firewall] .widget-title:before,#available-widgets [class*=secur] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=poll] .widget-title:before,#available-widgets [class*=stat] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=subscribe] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h4{padding:13px 15px}.widget-top a.widget-action:after{padding-top:9px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 15px 11px 42px}#customize-theme-controls .widget-area-select li:before{top:8px}}
\ No newline at end of file
index f608d45016567bd807d17a69d6b4b9c7e7797b62..d6a051b48cd72c8113ad40ee5956fc030626c43d 100644 (file)
        min-height: 100px;
 }
 
        min-height: 100px;
 }
 
-h3.dashboard-widget-title,
-h3.dashboard-widget-title span,
-h3.dashboard-widget-title small {
-       color: #333;
-}
-
-h3.dashboard-widget-title small a {
-       color: #d7d7d7;
-}
-
-h3.dashboard-widget-title small a:hover {
-       color: #fff;
-}
-
 /* @todo: this was originally in this section, but likely belongs elsewhere */
 #the-comment-list td.comment p.comment-author {
        margin-top: 0;
 /* @todo: this was originally in this section, but likely belongs elsewhere */
 #the-comment-list td.comment p.comment-author {
        margin-top: 0;
@@ -168,7 +154,7 @@ h3.dashboard-widget-title small a:hover {
        line-height: 1;
 }
 
        line-height: 1;
 }
 
-#welcome-panel.welcome-panel .welcome-panel-close::before {
+#welcome-panel.welcome-panel .welcome-panel-close:before {
        position: absolute;
        right: -18px;
        margin-top: -2px;
        position: absolute;
        right: -18px;
        margin-top: -2px;
@@ -301,15 +287,6 @@ body #dashboard-widgets .postbox form .submit {
        margin-top: 0;
 }
 
        margin-top: 0;
 }
 
-/* @todo: are these actually used anywhere? no non-CSS results in plugin search */
-div.dashboard-widget-error {
-       background-color: #c43;
-}
-
-div.dashboard-widget-notice {
-       background-color: #cfe1ef;
-}
-
 .rssSummary {
        color: #777;
        margin-top: 4px;
 .rssSummary {
        color: #777;
        margin-top: 4px;
@@ -710,6 +687,7 @@ form.initial-form.quickpress-open input#title {
 #activity-widget #the-comment-list div.undo {
        background: none;
        padding: 6px 0;
 #activity-widget #the-comment-list div.undo {
        background: none;
        padding: 6px 0;
+       margin-right: 12px;
 }
 
 #activity-widget #the-comment-list .alternate,
 }
 
 #activity-widget #the-comment-list .alternate,
@@ -725,7 +703,6 @@ form.initial-form.quickpress-open input#title {
 
 #activity-widget #the-comment-list img {
        position: absolute;
 
 #activity-widget #the-comment-list img {
        position: absolute;
-       right: 13px;
        top: 13px;
 }
 
        top: 13px;
 }
 
@@ -767,7 +744,6 @@ form.initial-form.quickpress-open input#title {
 
 #activity-widget #the-comment-list .spam-undo-inside .avatar,
 #activity-widget #the-comment-list .trash-undo-inside .avatar {
 
 #activity-widget #the-comment-list .spam-undo-inside .avatar,
 #activity-widget #the-comment-list .trash-undo-inside .avatar {
-       margin-left: 20px;
        position: relative;
        top: 0;
 }
        position: relative;
        top: 0;
 }
@@ -842,7 +818,8 @@ h3:hover .edit-box {
        position: relative;
 }
 
        position: relative;
 }
 
-#activity-widget #the-comment-list .comment {
+#activity-widget #the-comment-list .comment,
+#activity-widget #the-comment-list .pingback {
        -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
        box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
 }
        -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
        box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
 }
@@ -889,14 +866,14 @@ h3:hover .edit-box {
 
 /* QuickDraft */
 
 
 /* QuickDraft */
 
-#title-wrap label {
+#title-wrap label,
+#description-wrap label {
        cursor: text;
 }
 
 #title-wrap #title {
        padding: 2px 6px;
        font-size: 1.3em;
        cursor: text;
 }
 
 #title-wrap #title {
        padding: 2px 6px;
        font-size: 1.3em;
-       line-height: 100%;
        outline: none;
 }
 
        outline: none;
 }
 
@@ -1128,7 +1105,7 @@ a.rsswidget {
        }
 
        /* Make the close icon larger for tappability. */
        }
 
        /* Make the close icon larger for tappability. */
-       #welcome-panel.welcome-panel .welcome-panel-close::before {
+       #welcome-panel.welcome-panel .welcome-panel-close:before {
                font-size: 20px;
                margin: 0;
        }
                font-size: 20px;
                margin: 0;
        }
index bd94d964d095d8456aece44c4523cb90dbfb0edb..9759e4004695108851a9499357404270f806344b 100644 (file)
        min-height: 100px;
 }
 
        min-height: 100px;
 }
 
-h3.dashboard-widget-title,
-h3.dashboard-widget-title span,
-h3.dashboard-widget-title small {
-       color: #333;
-}
-
-h3.dashboard-widget-title small a {
-       color: #d7d7d7;
-}
-
-h3.dashboard-widget-title small a:hover {
-       color: #fff;
-}
-
 /* @todo: this was originally in this section, but likely belongs elsewhere */
 #the-comment-list td.comment p.comment-author {
        margin-top: 0;
 /* @todo: this was originally in this section, but likely belongs elsewhere */
 #the-comment-list td.comment p.comment-author {
        margin-top: 0;
@@ -168,7 +154,7 @@ h3.dashboard-widget-title small a:hover {
        line-height: 1;
 }
 
        line-height: 1;
 }
 
-#welcome-panel.welcome-panel .welcome-panel-close::before {
+#welcome-panel.welcome-panel .welcome-panel-close:before {
        position: absolute;
        left: -18px;
        margin-top: -2px;
        position: absolute;
        left: -18px;
        margin-top: -2px;
@@ -301,15 +287,6 @@ body #dashboard-widgets .postbox form .submit {
        margin-top: 0;
 }
 
        margin-top: 0;
 }
 
-/* @todo: are these actually used anywhere? no non-CSS results in plugin search */
-div.dashboard-widget-error {
-       background-color: #c43;
-}
-
-div.dashboard-widget-notice {
-       background-color: #cfe1ef;
-}
-
 .rssSummary {
        color: #777;
        margin-top: 4px;
 .rssSummary {
        color: #777;
        margin-top: 4px;
@@ -710,6 +687,7 @@ form.initial-form.quickpress-open input#title {
 #activity-widget #the-comment-list div.undo {
        background: none;
        padding: 6px 0;
 #activity-widget #the-comment-list div.undo {
        background: none;
        padding: 6px 0;
+       margin-left: 12px;
 }
 
 #activity-widget #the-comment-list .alternate,
 }
 
 #activity-widget #the-comment-list .alternate,
@@ -725,7 +703,6 @@ form.initial-form.quickpress-open input#title {
 
 #activity-widget #the-comment-list img {
        position: absolute;
 
 #activity-widget #the-comment-list img {
        position: absolute;
-       left: 13px;
        top: 13px;
 }
 
        top: 13px;
 }
 
@@ -767,7 +744,6 @@ form.initial-form.quickpress-open input#title {
 
 #activity-widget #the-comment-list .spam-undo-inside .avatar,
 #activity-widget #the-comment-list .trash-undo-inside .avatar {
 
 #activity-widget #the-comment-list .spam-undo-inside .avatar,
 #activity-widget #the-comment-list .trash-undo-inside .avatar {
-       margin-right: 20px;
        position: relative;
        top: 0;
 }
        position: relative;
        top: 0;
 }
@@ -842,7 +818,8 @@ h3:hover .edit-box {
        position: relative;
 }
 
        position: relative;
 }
 
-#activity-widget #the-comment-list .comment {
+#activity-widget #the-comment-list .comment,
+#activity-widget #the-comment-list .pingback {
        -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
        box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
 }
        -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
        box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.06);
 }
@@ -889,14 +866,14 @@ h3:hover .edit-box {
 
 /* QuickDraft */
 
 
 /* QuickDraft */
 
-#title-wrap label {
+#title-wrap label,
+#description-wrap label {
        cursor: text;
 }
 
 #title-wrap #title {
        padding: 2px 6px;
        font-size: 1.3em;
        cursor: text;
 }
 
 #title-wrap #title {
        padding: 2px 6px;
        font-size: 1.3em;
-       line-height: 100%;
        outline: none;
 }
 
        outline: none;
 }
 
@@ -1128,7 +1105,7 @@ a.rsswidget {
        }
 
        /* Make the close icon larger for tappability. */
        }
 
        /* Make the close icon larger for tappability. */
-       #welcome-panel.welcome-panel .welcome-panel-close::before {
+       #welcome-panel.welcome-panel .welcome-panel-close:before {
                font-size: 20px;
                margin: 0;
        }
                font-size: 20px;
                margin: 0;
        }
index 7b69804be52d26aad0219d6b72f100326910b7d3..ed90138d3f60733e2cd3169164f92989c6d662f1 100644 (file)
@@ -24,11 +24,6 @@ body#media-upload ul#sidemenu {
        clear: both;
 }
 
        clear: both;
 }
 
-#media-upload,
-#media-upload .media-item .slidetoggle {
-       background: #fff;
-}
-
 #media-upload .slidetoggle {
        border-top-color: #dfdfdf;
 }
 #media-upload .slidetoggle {
        border-top-color: #dfdfdf;
 }
@@ -185,7 +180,7 @@ abbr.required {
 .menu_order {
        float: left;
        font-size: 11px;
 .menu_order {
        float: left;
        font-size: 11px;
-       margin: 10px 10px 0;
+       margin: 8px 10px 0;
 }
 
 .menu_order_input {
 }
 
 .menu_order_input {
@@ -217,7 +212,6 @@ abbr.required {
 }
 
 #media-upload .widefat {
 }
 
 #media-upload .widefat {
-       width: 626px;
        border-style: solid solid none;
 }
 
        border-style: solid solid none;
 }
 
@@ -273,9 +267,10 @@ h4.media-sub-title {
 
 #gallery-settings .describe {
        padding: 5px;
 
 #gallery-settings .describe {
        padding: 5px;
-       width: 615px;
+       width: 100%;
        clear: both;
        cursor: default;
        clear: both;
        cursor: default;
+       background: #fff;
 }
 
 #gallery-settings .describe select {
 }
 
 #gallery-settings .describe select {
@@ -327,7 +322,7 @@ h4.media-sub-title {
 }
 
 p.media-types {
 }
 
 p.media-types {
-       margin: 1em;
+       padding: 1em;
 }
 
 tr.not-image {
 }
 
 tr.not-image {
index a16b0121f2616dc07672d775b4fdcc4db1b58d93..c97733dd2fa9cf6289841610e054873859bab637 100644 (file)
@@ -1 +1 @@
-div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:700;position:relative;border-bottom:1px solid #dfdfdf;background:#f9f9f9}body#media-upload ul#sidemenu{font-weight:400;margin:0 5px;right:0;bottom:-1px;float:none;overflow:hidden}#media-upload:after{content:"";display:table;clear:both}#media-upload,#media-upload .media-item .slidetoggle{background:#fff}#media-upload .slidetoggle{border-top-color:#dfdfdf}#media-upload input[type=radio]{padding:0}form{margin:1em}#search-filter{text-align:left}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:400}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:0;text-align:justify;margin:0 0 1em;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center right}.image-align-left-label{background:url(../images/align-left.png) no-repeat center right}.image-align-center-label{background:url(../images/align-center.png) no-repeat center right}.image-align-right-label{background:url(../images/align-right.png) no-repeat center right}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#gallery-form .progress,#library-form .progress,.describe.startclosed,.describe.startopen,.insert-gallery{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required{text-decoration:none;border:0}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type=text],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload label.help,#media-upload p.help{font-family:sans-serif;font-style:italic;font-weight:400}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:left;font-size:11px;margin:10px 10px 0}.menu_order_input{border:1px solid #ddd;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #aaa;opacity:.6;filter:alpha(opacity=60)}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{width:626px;border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 0 5px 5px}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #DADADA}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #DADADA;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:400;color:#5A5A5A}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:right}#gallery-settings .describe{padding:5px;width:615px;clear:both;cursor:default}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#464646;margin-left:15px}#gallery-settings .align .field label{margin:0 3px 0 1em}#gallery-settings p.ml-submit{border-top:1px solid #dfdfdf}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 0 -8px 25px;text-align:left;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-right:5px}#sort-buttons span{margin-left:25px}p.media-types{margin:1em}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.image-align-none-label{background-image:url(../images/align-none-2x.png?ver=20120916);-webkit-background-size:21px 15px;background-size:21px 15px}.image-align-left-label{background-image:url(../images/align-left-2x.png?ver=20120916);-webkit-background-size:22px 15px;background-size:22px 15px}.image-align-center-label{background-image:url(../images/align-center-2x.png?ver=20120916);-webkit-background-size:21px 15px;background-size:21px 15px}.image-align-right-label{background-image:url(../images/align-right-2x.png?ver=20120916);-webkit-background-size:22px 15px;background-size:22px 15px}}
\ No newline at end of file
+div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:700;position:relative;border-bottom:1px solid #dfdfdf;background:#f9f9f9}body#media-upload ul#sidemenu{font-weight:400;margin:0 5px;right:0;bottom:-1px;float:none;overflow:hidden}#media-upload:after{content:"";display:table;clear:both}#media-upload .slidetoggle{border-top-color:#dfdfdf}#media-upload input[type=radio]{padding:0}form{margin:1em}#search-filter{text-align:left}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:400}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:none;text-align:justify;margin:0 0 1em;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center right}.image-align-left-label{background:url(../images/align-left.png) no-repeat center right}.image-align-center-label{background:url(../images/align-center.png) no-repeat center right}.image-align-right-label{background:url(../images/align-right.png) no-repeat center right}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#gallery-form .progress,#library-form .progress,.describe.startclosed,.describe.startopen,.insert-gallery{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required{text-decoration:none;border:none}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type=text],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload label.help,#media-upload p.help{font-family:sans-serif;font-style:italic;font-weight:400}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:left;font-size:11px;margin:8px 10px 0}.menu_order_input{border:1px solid #ddd;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #aaa;opacity:.6;filter:alpha(opacity=60)}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 0 5px 5px}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #DADADA}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #DADADA;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:400;color:#5A5A5A}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:right}#gallery-settings .describe{padding:5px;width:100%;clear:both;cursor:default;background:#fff}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#464646;margin-left:15px}#gallery-settings .align .field label{margin:0 3px 0 1em}#gallery-settings p.ml-submit{border-top:1px solid #dfdfdf}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 0 -8px 25px;text-align:left;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-right:5px}#sort-buttons span{margin-left:25px}p.media-types{padding:1em}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.image-align-none-label{background-image:url(../images/align-none-2x.png?ver=20120916);-webkit-background-size:21px 15px;background-size:21px 15px}.image-align-left-label{background-image:url(../images/align-left-2x.png?ver=20120916);-webkit-background-size:22px 15px;background-size:22px 15px}.image-align-center-label{background-image:url(../images/align-center-2x.png?ver=20120916);-webkit-background-size:21px 15px;background-size:21px 15px}.image-align-right-label{background-image:url(../images/align-right-2x.png?ver=20120916);-webkit-background-size:22px 15px;background-size:22px 15px}}
\ No newline at end of file
index edd4c0b2bc780470ef6e50d6c635e3d736a5585f..ee7c08fe3133317607cb90977a21d67374f23c80 100644 (file)
@@ -24,11 +24,6 @@ body#media-upload ul#sidemenu {
        clear: both;
 }
 
        clear: both;
 }
 
-#media-upload,
-#media-upload .media-item .slidetoggle {
-       background: #fff;
-}
-
 #media-upload .slidetoggle {
        border-top-color: #dfdfdf;
 }
 #media-upload .slidetoggle {
        border-top-color: #dfdfdf;
 }
@@ -185,7 +180,7 @@ abbr.required {
 .menu_order {
        float: right;
        font-size: 11px;
 .menu_order {
        float: right;
        font-size: 11px;
-       margin: 10px 10px 0;
+       margin: 8px 10px 0;
 }
 
 .menu_order_input {
 }
 
 .menu_order_input {
@@ -217,7 +212,6 @@ abbr.required {
 }
 
 #media-upload .widefat {
 }
 
 #media-upload .widefat {
-       width: 626px;
        border-style: solid solid none;
 }
 
        border-style: solid solid none;
 }
 
@@ -273,9 +267,10 @@ h4.media-sub-title {
 
 #gallery-settings .describe {
        padding: 5px;
 
 #gallery-settings .describe {
        padding: 5px;
-       width: 615px;
+       width: 100%;
        clear: both;
        cursor: default;
        clear: both;
        cursor: default;
+       background: #fff;
 }
 
 #gallery-settings .describe select {
 }
 
 #gallery-settings .describe select {
@@ -327,7 +322,7 @@ h4.media-sub-title {
 }
 
 p.media-types {
 }
 
 p.media-types {
-       margin: 1em;
+       padding: 1em;
 }
 
 tr.not-image {
 }
 
 tr.not-image {
index a6aca1d4ae630366a5455483a130e2cfcc3b8feb..59b3a6867a2a5b920f87850482510e6e4efafd00 100644 (file)
@@ -1 +1 @@
-div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:700;position:relative;border-bottom:1px solid #dfdfdf;background:#f9f9f9}body#media-upload ul#sidemenu{font-weight:400;margin:0 5px;left:0;bottom:-1px;float:none;overflow:hidden}#media-upload:after{content:"";display:table;clear:both}#media-upload,#media-upload .media-item .slidetoggle{background:#fff}#media-upload .slidetoggle{border-top-color:#dfdfdf}#media-upload input[type=radio]{padding:0}form{margin:1em}#search-filter{text-align:right}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:400}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:0;text-align:justify;margin:0 0 1em;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center left}.image-align-left-label{background:url(../images/align-left.png) no-repeat center left}.image-align-center-label{background:url(../images/align-center.png) no-repeat center left}.image-align-right-label{background:url(../images/align-right.png) no-repeat center left}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#gallery-form .progress,#library-form .progress,.describe.startclosed,.describe.startopen,.insert-gallery{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required{text-decoration:none;border:0}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type=text],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload label.help,#media-upload p.help{font-family:sans-serif;font-style:italic;font-weight:400}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:right;font-size:11px;margin:10px 10px 0}.menu_order_input{border:1px solid #ddd;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #aaa;opacity:.6;filter:alpha(opacity=60)}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{width:626px;border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 5px 5px 0}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #DADADA}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #DADADA;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:400;color:#5A5A5A}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:left}#gallery-settings .describe{padding:5px;width:615px;clear:both;cursor:default}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#464646;margin-right:15px}#gallery-settings .align .field label{margin:0 1em 0 3px}#gallery-settings p.ml-submit{border-top:1px solid #dfdfdf}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 25px -8px 0;text-align:right;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-left:5px}#sort-buttons span{margin-right:25px}p.media-types{margin:1em}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.image-align-none-label{background-image:url(../images/align-none-2x.png?ver=20120916);-webkit-background-size:21px 15px;background-size:21px 15px}.image-align-left-label{background-image:url(../images/align-left-2x.png?ver=20120916);-webkit-background-size:22px 15px;background-size:22px 15px}.image-align-center-label{background-image:url(../images/align-center-2x.png?ver=20120916);-webkit-background-size:21px 15px;background-size:21px 15px}.image-align-right-label{background-image:url(../images/align-right-2x.png?ver=20120916);-webkit-background-size:22px 15px;background-size:22px 15px}}
\ No newline at end of file
+div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:700;position:relative;border-bottom:1px solid #dfdfdf;background:#f9f9f9}body#media-upload ul#sidemenu{font-weight:400;margin:0 5px;left:0;bottom:-1px;float:none;overflow:hidden}#media-upload:after{content:"";display:table;clear:both}#media-upload .slidetoggle{border-top-color:#dfdfdf}#media-upload input[type=radio]{padding:0}form{margin:1em}#search-filter{text-align:right}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:400}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:none;text-align:justify;margin:0 0 1em;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center left}.image-align-left-label{background:url(../images/align-left.png) no-repeat center left}.image-align-center-label{background:url(../images/align-center.png) no-repeat center left}.image-align-right-label{background:url(../images/align-right.png) no-repeat center left}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#gallery-form .progress,#library-form .progress,.describe.startclosed,.describe.startopen,.insert-gallery{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required{text-decoration:none;border:none}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type=text],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload label.help,#media-upload p.help{font-family:sans-serif;font-style:italic;font-weight:400}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:right;font-size:11px;margin:8px 10px 0}.menu_order_input{border:1px solid #ddd;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #aaa;opacity:.6;filter:alpha(opacity=60)}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 5px 5px 0}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #DADADA}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #DADADA;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:400;color:#5A5A5A}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:left}#gallery-settings .describe{padding:5px;width:100%;clear:both;cursor:default;background:#fff}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#464646;margin-right:15px}#gallery-settings .align .field label{margin:0 1em 0 3px}#gallery-settings p.ml-submit{border-top:1px solid #dfdfdf}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 25px -8px 0;text-align:right;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-left:5px}#sort-buttons span{margin-right:25px}p.media-types{padding:1em}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.image-align-none-label{background-image:url(../images/align-none-2x.png?ver=20120916);-webkit-background-size:21px 15px;background-size:21px 15px}.image-align-left-label{background-image:url(../images/align-left-2x.png?ver=20120916);-webkit-background-size:22px 15px;background-size:22px 15px}.image-align-center-label{background-image:url(../images/align-center-2x.png?ver=20120916);-webkit-background-size:21px 15px;background-size:21px 15px}.image-align-right-label{background-image:url(../images/align-right-2x.png?ver=20120916);-webkit-background-size:22px 15px;background-size:22px 15px}}
\ No newline at end of file
index 2bb6650a39ddc9cca4cd202b75767b4d930ba949..ecda622221e23a445a4a5843cdb18968a3f5f6f6 100644 (file)
@@ -37,7 +37,6 @@
 
 #titlediv {
        position: relative;
 
 #titlediv {
        position: relative;
-       margin-bottom: 10px;
 }
 
 #titlediv label {
 }
 
 #titlediv label {
@@ -337,6 +336,7 @@ td.plugin-title p {
        background-color: #f7f7f7;
        -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
        box-shadow: 0 1px 1px rgba(0,0,0,0.04);
        background-color: #f7f7f7;
        -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
        box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       z-index: 999;
 }
 
 #post-status-info td {
 }
 
 #post-status-info td {
@@ -344,7 +344,7 @@ td.plugin-title p {
 }
 
 .autosave-info {
 }
 
 .autosave-info {
-       padding: 2px;
+       padding: 2px 10px;
        text-align: left;
 }
 
        text-align: left;
 }
 
@@ -362,11 +362,87 @@ td.plugin-title p {
        background: transparent url(../images/resize-rtl.gif) no-repeat scroll right bottom;
 }
 
        background: transparent url(../images/resize-rtl.gif) no-repeat scroll right bottom;
 }
 
+.wp-editor-expand #content-resize-handle {
+       display: none;
+}
+
+#postdivrich #content {
+       resize: none;
+}
+
 #wp-word-count {
        display: block;
        padding: 2px 10px;
 }
 
 #wp-word-count {
        display: block;
        padding: 2px 10px;
 }
 
+#wp-content-editor-container {
+       position: relative;
+}
+
+#content-textarea-clone {
+       z-index: -1;
+       position: absolute;
+       top: 0;
+       visibility: hidden;
+       overflow: hidden;
+       max-width: 100%;
+       border: 1px solid transparent;
+}
+
+.wp-fullscreen-wrap #content-textarea-clone {
+       display: none;
+}
+
+/* editor-expand.js override */
+.wp-fullscreen-wrap {
+       padding-top: 0 !important;
+}
+
+.wp-fullscreen-wrap .wp-editor-area {
+       margin-top: 0 !important;
+}
+
+.wp-fullscreen-wrap .mce-edit-area {
+       padding-top: 0 !important;
+}
+/* end editor-expand.js override */
+
+.wp-editor-expand #wp-content-editor-tools {
+       z-index: 1000;
+       border-bottom: 1px solid #e5e5e5;
+}
+
+.wp-editor-expand #wp-content-editor-container {
+       -webkit-box-shadow: none;
+       box-shadow: none;
+       margin-top: -1px;
+}
+
+.wp-editor-expand #wp-content-editor-container {
+       border-bottom: 0 none;
+}
+
+.wp-editor-expand div.mce-statusbar {
+       z-index: 1;
+}
+
+.wp-editor-expand #post-status-info {
+       border-top: 1px solid #e5e5e5;
+}
+
+.wp-editor-expand div.mce-toolbar-grp {
+       z-index: 999;
+}
+
+#wp-content-editor-tools {
+       background-color: #f1f1f1;
+       padding-top: 20px;
+}
+
+#poststuff #post-body.columns-2 #side-sortables {
+       width: 280px;
+}
+
 #timestampdiv select {
        height: 21px;
        line-height: 14px;
 #timestampdiv select {
        height: 21px;
        line-height: 14px;
@@ -594,6 +670,7 @@ span.wp-media-buttons-icon:before {
        padding: 0;
 }
 
        padding: 0;
 }
 
+#post-body-content,
 .edit-form-section {
        margin-bottom: 20px;
 }
 .edit-form-section {
        margin-bottom: 20px;
 }
@@ -913,7 +990,13 @@ ul.categorychecklist li {
        font-size: 12px;
 }
 
        font-size: 12px;
 }
 
-.form-field input,
+.form-field input[type="text"],
+.form-field input[type="password"],
+.form-field input[type="email"],
+.form-field input[type="number"],
+.form-field input[type="search"],
+.form-field input[type="tel"],
+.form-field input[type="url"],
 .form-field textarea {
        border-style: solid;
        border-width: 1px;
 .form-field textarea {
        border-style: solid;
        border-width: 1px;
@@ -1008,7 +1091,6 @@ input.newtag:focus ~ div.taghint {
 p.popular-tags {
        border: none;
        line-height: 2em;
 p.popular-tags {
        border: none;
        line-height: 2em;
-       max-width: 1000px;
        padding: 8px 12px 12px;
        text-align: justify;
 }
        padding: 8px 12px 12px;
        text-align: justify;
 }
@@ -1185,6 +1267,7 @@ table.links-table {
 
        #poststuff #post-body.columns-2 #side-sortables {
                min-height: 0;
 
        #poststuff #post-body.columns-2 #side-sortables {
                min-height: 0;
+               width: auto;
        }
 
        /* hide the radio buttons for column prefs */
        }
 
        /* hide the radio buttons for column prefs */
@@ -1348,12 +1431,6 @@ table.links-table {
                padding: 10px 20px;
        }
 
                padding: 10px 20px;
        }
 
-       #wp-content-editor-tools {
-               overflow: hidden;
-               padding: 20px 0 1px 15px;
-               top: 1px;
-       }
-
        a.wp-switch-editor {
                font-size: 16px;
                line-height: 1em;
        a.wp-switch-editor {
                font-size: 16px;
                line-height: 1em;
index 646384efef5047fa304d809769449f52897d3043..cc64ae5711c94a17167de0c9a618647704358a32 100644 (file)
@@ -37,7 +37,6 @@
 
 #titlediv {
        position: relative;
 
 #titlediv {
        position: relative;
-       margin-bottom: 10px;
 }
 
 #titlediv label {
 }
 
 #titlediv label {
@@ -337,6 +336,7 @@ td.plugin-title p {
        background-color: #f7f7f7;
        -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
        box-shadow: 0 1px 1px rgba(0,0,0,0.04);
        background-color: #f7f7f7;
        -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
        box-shadow: 0 1px 1px rgba(0,0,0,0.04);
+       z-index: 999;
 }
 
 #post-status-info td {
 }
 
 #post-status-info td {
@@ -344,7 +344,7 @@ td.plugin-title p {
 }
 
 .autosave-info {
 }
 
 .autosave-info {
-       padding: 2px;
+       padding: 2px 10px;
        text-align: right;
 }
 
        text-align: right;
 }
 
@@ -362,11 +362,87 @@ td.plugin-title p {
        background: transparent url(../images/resize-rtl.gif) no-repeat scroll left bottom;
 }
 
        background: transparent url(../images/resize-rtl.gif) no-repeat scroll left bottom;
 }
 
+.wp-editor-expand #content-resize-handle {
+       display: none;
+}
+
+#postdivrich #content {
+       resize: none;
+}
+
 #wp-word-count {
        display: block;
        padding: 2px 10px;
 }
 
 #wp-word-count {
        display: block;
        padding: 2px 10px;
 }
 
+#wp-content-editor-container {
+       position: relative;
+}
+
+#content-textarea-clone {
+       z-index: -1;
+       position: absolute;
+       top: 0;
+       visibility: hidden;
+       overflow: hidden;
+       max-width: 100%;
+       border: 1px solid transparent;
+}
+
+.wp-fullscreen-wrap #content-textarea-clone {
+       display: none;
+}
+
+/* editor-expand.js override */
+.wp-fullscreen-wrap {
+       padding-top: 0 !important;
+}
+
+.wp-fullscreen-wrap .wp-editor-area {
+       margin-top: 0 !important;
+}
+
+.wp-fullscreen-wrap .mce-edit-area {
+       padding-top: 0 !important;
+}
+/* end editor-expand.js override */
+
+.wp-editor-expand #wp-content-editor-tools {
+       z-index: 1000;
+       border-bottom: 1px solid #e5e5e5;
+}
+
+.wp-editor-expand #wp-content-editor-container {
+       -webkit-box-shadow: none;
+       box-shadow: none;
+       margin-top: -1px;
+}
+
+.wp-editor-expand #wp-content-editor-container {
+       border-bottom: 0 none;
+}
+
+.wp-editor-expand div.mce-statusbar {
+       z-index: 1;
+}
+
+.wp-editor-expand #post-status-info {
+       border-top: 1px solid #e5e5e5;
+}
+
+.wp-editor-expand div.mce-toolbar-grp {
+       z-index: 999;
+}
+
+#wp-content-editor-tools {
+       background-color: #f1f1f1;
+       padding-top: 20px;
+}
+
+#poststuff #post-body.columns-2 #side-sortables {
+       width: 280px;
+}
+
 #timestampdiv select {
        height: 21px;
        line-height: 14px;
 #timestampdiv select {
        height: 21px;
        line-height: 14px;
@@ -594,6 +670,7 @@ span.wp-media-buttons-icon:before {
        padding: 0;
 }
 
        padding: 0;
 }
 
+#post-body-content,
 .edit-form-section {
        margin-bottom: 20px;
 }
 .edit-form-section {
        margin-bottom: 20px;
 }
@@ -913,7 +990,13 @@ ul.categorychecklist li {
        font-size: 12px;
 }
 
        font-size: 12px;
 }
 
-.form-field input,
+.form-field input[type="text"],
+.form-field input[type="password"],
+.form-field input[type="email"],
+.form-field input[type="number"],
+.form-field input[type="search"],
+.form-field input[type="tel"],
+.form-field input[type="url"],
 .form-field textarea {
        border-style: solid;
        border-width: 1px;
 .form-field textarea {
        border-style: solid;
        border-width: 1px;
@@ -1008,7 +1091,6 @@ input.newtag:focus ~ div.taghint {
 p.popular-tags {
        border: none;
        line-height: 2em;
 p.popular-tags {
        border: none;
        line-height: 2em;
-       max-width: 1000px;
        padding: 8px 12px 12px;
        text-align: justify;
 }
        padding: 8px 12px 12px;
        text-align: justify;
 }
@@ -1185,6 +1267,7 @@ table.links-table {
 
        #poststuff #post-body.columns-2 #side-sortables {
                min-height: 0;
 
        #poststuff #post-body.columns-2 #side-sortables {
                min-height: 0;
+               width: auto;
        }
 
        /* hide the radio buttons for column prefs */
        }
 
        /* hide the radio buttons for column prefs */
@@ -1348,12 +1431,6 @@ table.links-table {
                padding: 10px 20px;
        }
 
                padding: 10px 20px;
        }
 
-       #wp-content-editor-tools {
-               overflow: hidden;
-               padding: 20px 15px 1px 0;
-               top: 1px;
-       }
-
        a.wp-switch-editor {
                font-size: 16px;
                line-height: 1em;
        a.wp-switch-editor {
                font-size: 16px;
                line-height: 1em;
index 9014537581cdb262582585b87f9580e2afcdddac..d8970422fbbd8d726239253214f48da799f57284 100644 (file)
@@ -1,15 +1,64 @@
-/* include margin and padding in the width calculation of input and textarea */
+/* Include margin and padding in the width calculation of input and textarea. */
 input,
 input,
+textarea {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
 input[type="text"],
 input[type="password"],
 input[type="text"],
 input[type="password"],
+input[type="checkbox"],
+input[type="color"],
+input[type="date"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="email"],
+input[type="month"],
 input[type="number"],
 input[type="number"],
+input[type="password"],
 input[type="search"],
 input[type="search"],
-input[type="email"],
+input[type="radio"],
+input[type="tel"],
+input[type="text"],
+input[type="time"],
 input[type="url"],
 input[type="url"],
+input[type="week"],
+select,
 textarea {
 textarea {
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       box-sizing: border-box;
+       border: 1px solid #ddd;
+       -webkit-box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.07 );
+       box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.07 );
+       background-color: #fff;
+       color: #333;
+       outline: none;
+       -webkit-transition: 0.05s border-color ease-in-out;
+       transition: 0.05s border-color ease-in-out;
+}
+
+input[type="text"]:focus,
+input[type="password"]:focus,
+input[type="color"]:focus,
+input[type="date"]:focus,
+input[type="datetime"]:focus,
+input[type="datetime-local"]:focus,
+input[type="email"]:focus,
+input[type="month"]:focus,
+input[type="number"]:focus,
+input[type="password"]:focus,
+input[type="search"]:focus,
+input[type="tel"]:focus,
+input[type="text"]:focus,
+input[type="time"]:focus,
+input[type="url"]:focus,
+input[type="week"]:focus,
+input[type="checkbox"]:focus,
+input[type="radio"]:focus,
+select:focus,
+textarea:focus {
+       border-color: #5b9dd9;
+       -webkit-box-shadow: 0 0 2px rgba( 30, 140, 190, 0.8 );
+       box-shadow: 0 0 2px rgba( 30, 140, 190, 0.8 );
 }
 
 /* @noflip */
 }
 
 /* @noflip */
@@ -36,11 +85,8 @@ input[type="radio"] {
        width: 16px;
        min-width: 16px;
        -webkit-appearance: none;
        width: 16px;
        min-width: 16px;
        -webkit-appearance: none;
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       box-sizing: border-box;
-       -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
-       box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
+       -webkit-box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.1 );
+       box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.1 );
        -webkit-transition: .05s border-color ease-in-out;
        transition: .05s border-color ease-in-out;
 }
        -webkit-transition: .05s border-color ease-in-out;
        transition: .05s border-color ease-in-out;
 }
@@ -55,28 +101,28 @@ input[type="radio"]:checked + label:before {
 }
 
 td > input[type="checkbox"],
 }
 
 td > input[type="checkbox"],
-.wp-admin p input[type=checkbox],
-.wp-admin p input[type=radio] {
+.wp-admin p input[type="checkbox"],
+.wp-admin p input[type="radio"] {
        margin-top: 0;
 }
 
        margin-top: 0;
 }
 
-.wp-admin p label input[type=checkbox] {
+.wp-admin p label input[type="checkbox"] {
        margin-top: -4px;
 }
 
        margin-top: -4px;
 }
 
-.wp-admin p label input[type=radio] {
+.wp-admin p label input[type="radio"] {
        margin-top: -2px;
 }
 
        margin-top: -2px;
 }
 
-input[type=radio] {
+input[type="radio"] {
        -webkit-border-radius: 50%;
        border-radius: 50%;
        margin-left: 4px;
        line-height: 10px;
 }
 
        -webkit-border-radius: 50%;
        border-radius: 50%;
        margin-left: 4px;
        line-height: 10px;
 }
 
-input[type=checkbox]:checked:before,
-input[type=radio]:checked:before {
+input[type="checkbox"]:checked:before,
+input[type="radio"]:checked:before {
        float: right;
        display: inline-block;
        vertical-align: middle;
        float: right;
        display: inline-block;
        vertical-align: middle;
@@ -87,13 +133,13 @@ input[type=radio]:checked:before {
        -moz-osx-font-smoothing: grayscale;
 }
 
        -moz-osx-font-smoothing: grayscale;
 }
 
-input[type=checkbox]:checked:before {
+input[type="checkbox"]:checked:before {
        content: '\f147';
        margin: -3px -4px 0 0;
        color: #1e8cbe;
 }
 
        content: '\f147';
        margin: -3px -4px 0 0;
        color: #1e8cbe;
 }
 
-input[type=radio]:checked:before {
+input[type="radio"]:checked:before {
        content: '\2022';
        text-indent: -9999px;
        -webkit-border-radius: 50px;
        content: '\2022';
        text-indent: -9999px;
        -webkit-border-radius: 50px;
@@ -106,13 +152,9 @@ input[type=radio]:checked:before {
        background-color: #1e8cbe;
 }
 
        background-color: #1e8cbe;
 }
 
-input.readonly, textarea.readonly {
-       background-color: #ddd;
-}
-
 @-moz-document url-prefix() {
 @-moz-document url-prefix() {
-       input[type=checkbox],
-       input[type=radio],
+       input[type="checkbox"],
+       input[type="radio"],
        .form-table input.tog {
                margin-bottom: -1px;
        }
        .form-table input.tog {
                margin-bottom: -1px;
        }
@@ -145,7 +187,6 @@ input,
 select {
        font-size: 14px;
        padding: 3px 5px;
 select {
        font-size: 14px;
        padding: 3px 5px;
-       line-height: 15px;
        -webkit-border-radius: 0;
        border-radius: 0; /* Reset mobile webkit's default element styling */
 }
        -webkit-border-radius: 0;
        border-radius: 0; /* Reset mobile webkit's default element styling */
 }
@@ -156,17 +197,6 @@ textarea {
        line-height: 1.4;
 }
 
        line-height: 1.4;
 }
 
-input[type="text"],
-input[type="password"],
-input[type="number"],
-input[type="search"],
-input[type="email"],
-input[type="url"],
-textarea,
-select {
-       outline: 0;
-}
-
 .wp-admin input[type="file"] {
        padding: 3px 0;
 }
 .wp-admin input[type="file"] {
        padding: 3px 0;
 }
@@ -190,45 +220,10 @@ textarea.code {
        padding: 4px 6px 1px 6px;
 }
 
        padding: 4px 6px 1px 6px;
 }
 
-textarea,
-input[type="text"],
-input[type="password"],
-input[type="email"],
-input[type="number"],
-input[type="search"],
-input[type="tel"],
-input[type="url"],
-select {
-       border: 1px solid #ddd;
-       -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
-       box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
-       background-color: #fff;
-       color: #333;
-       -webkit-transition: .05s border-color ease-in-out;
-       transition: .05s border-color ease-in-out;
-}
-
-select[disabled] {
-       color: #7f7f7f;
-}
-
-textarea:focus,
-input[type="text"]:focus,
-input[type="password"]:focus,
-input[type="email"]:focus,
-input[type="number"]:focus,
-input[type="search"]:focus,
-input[type="tel"]:focus,
-input[type="url"]:focus,
-input[type="checkbox"]:focus,
-input[type="radio"]:focus,
-select:focus {
-       border-color: #5b9dd9;
-       -webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8);
-       box-shadow: 0 0 2px rgba(30,140,190,0.8);
-}
-
-input[readonly] {
+input.readonly,
+input[readonly],
+textarea.readonly,
+textarea[readonly] {
        background-color: #eee;
 }
 
        background-color: #eee;
 }
 
@@ -252,19 +247,34 @@ input[readonly] {
 
 input:disabled,
 input.disabled,
 
 input:disabled,
 input.disabled,
+select:disabled,
+select.disabled,
 textarea:disabled,
 textarea.disabled {
 textarea:disabled,
 textarea.disabled {
-       -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
-       box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
-       border-color: rgba(222, 222, 222, .75);
-       background: rgba(255, 255, 255, .5);
-       color: rgba(51, 51, 51, .5);
-}
-
-input[type=checkbox]:disabled,
-input[type=radio]:disabled,
-input[type=checkbox]:disabled:checked:before,
-input[type=radio]:disabled:checked:before {
+       background: rgba( 255, 255, 255, 0.5 );
+       border-color: rgba( 222, 222, 222, 0.75 );
+       -webkit-box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.04 );
+       box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.04 );
+       color: rgba( 51, 51, 51, 0.5 );
+}
+
+input[type="file"]:disabled,
+input[type="file"].disabled,
+input[type="range"]:disabled,
+input[type="range"].disabled {
+       background: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
+}
+
+input[type="checkbox"]:disabled,
+input[type="checkbox"].disabled,
+input[type="radio"]:disabled,
+input[type="radio"].disabled,
+input[type="checkbox"]:disabled:checked:before,
+input[type="checkbox"].disabled:checked:before,
+input[type="radio"]:disabled:checked:before,
+input[type="radio"].disabled:checked:before {
        opacity: 0.7;
 }
 
        opacity: 0.7;
 }
 
@@ -364,7 +374,8 @@ input[type="number"].small-text {
 
 .tablenav #changeit,
 .tablenav #delete_all,
 
 .tablenav #changeit,
 .tablenav #delete_all,
-.tablenav #clear-recent-list {
+.tablenav #clear-recent-list,
+.wp-filter #delete_all {
        margin-top: 1px;
 }
 
        margin-top: 1px;
 }
 
@@ -465,7 +476,7 @@ p.search-box {
 }
 
 .search-box input[name="s"],
 }
 
 .search-box input[name="s"],
-#search-plugins input[name="s"],
+.tablenav .search-plugins input[name="s"],
 .tagsdiv .newtag {
        float: right;
        height: 28px;
 .tagsdiv .newtag {
        float: right;
        height: 28px;
@@ -585,7 +596,7 @@ ul#add-to-blog-users {
 }
 
 .form-table input.tog,
 }
 
 .form-table input.tog,
-.form-table input[type=radio] {
+.form-table input[type="radio"] {
        margin-top: -4px;
        margin-left: 4px;
        float: none;
        margin-top: -4px;
        margin-left: 4px;
        float: none;
@@ -760,8 +771,8 @@ table.form-table td .updated {
                -webkit-appearance: none;
        }
 
                -webkit-appearance: none;
        }
 
-       input[type=text], input[type=search],
-       input[type=password], input[type=number] {
+       input[type=text], input[type="search"],
+       input[type=password], input[type="number"] {
                -webkit-appearance: none;
                padding: 6px 10px;
        }
                -webkit-appearance: none;
                padding: 6px 10px;
        }
@@ -771,32 +782,32 @@ table.form-table td .updated {
                padding-top: 10px;
        }
 
                padding-top: 10px;
        }
 
-       input[type=checkbox], .widefat th input[type=checkbox] {
+       input[type="checkbox"], .widefat th input[type="checkbox"] {
                -webkit-appearance: none;
                padding: 10px;
        }
 
                -webkit-appearance: none;
                padding: 10px;
        }
 
-       .widefat th input[type=checkbox] {
+       .widefat th input[type="checkbox"] {
                margin-bottom: 8px;
        }
 
                margin-bottom: 8px;
        }
 
-       input[type=checkbox]:checked:before, .widefat th input[type=checkbox]:before {
+       input[type="checkbox"]:checked:before, .widefat th input[type="checkbox"]:before {
                font: normal 30px/1 'Dashicons';
                margin: -3px -5px;
        }
 
                font: normal 30px/1 'Dashicons';
                margin: -3px -5px;
        }
 
-       input[type=radio],
-       input[type=checkbox] {
+       input[type="radio"],
+       input[type="checkbox"] {
                height: 25px;
                width: 25px;
        }
 
                height: 25px;
                width: 25px;
        }
 
-       .wp-admin p input[type=checkbox],
-       .wp-admin p input[type=radio] {
+       .wp-admin p input[type="checkbox"],
+       .wp-admin p input[type="radio"] {
                margin-top: -3px;
        }
 
                margin-top: -3px;
        }
 
-       input[type=radio]:checked:before {
+       input[type="radio"]:checked:before {
                vertical-align: middle;
                width: 9px;
                height: 9px;
                vertical-align: middle;
                width: 9px;
                height: 9px;
@@ -804,7 +815,7 @@ table.form-table td .updated {
                line-height: 16px;
        }
 
                line-height: 16px;
        }
 
-       .wp-upload-form input[type=submit] {
+       .wp-upload-form input[type="submit"] {
                margin-top: 10px;
        }
 
                margin-top: 10px;
        }
 
@@ -866,12 +877,16 @@ table.form-table td .updated {
                box-sizing: border-box;
        }
 
                box-sizing: border-box;
        }
 
-       input[type=text].small-text,
-       input[type=search].small-text,
-       input[type=password].small-text,
-       input[type=number].small-text,
+       #wpbody .form-table td select {
+               height: 40px;
+       }
+
+       input[type="text"].small-text,
+       input[type="search"].small-text,
+       input[type="password"].small-text,
+       input[type="number"].small-text,
        input[type="number"].small-text,
        input[type="number"].small-text,
-       .form-table input[type=text].small-text {
+       .form-table input[type="text"].small-text {
                width: auto;
                max-width: 55px;
                display: inline;
                width: auto;
                max-width: 55px;
                display: inline;
index 14cfe850caac7ba37f11542221510da19c01c243..b80f98aaa2fdbd3d575af7d65066f03642696e9f 100644 (file)
@@ -1,15 +1,64 @@
-/* include margin and padding in the width calculation of input and textarea */
+/* Include margin and padding in the width calculation of input and textarea. */
 input,
 input,
+textarea {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
 input[type="text"],
 input[type="password"],
 input[type="text"],
 input[type="password"],
+input[type="checkbox"],
+input[type="color"],
+input[type="date"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="email"],
+input[type="month"],
 input[type="number"],
 input[type="number"],
+input[type="password"],
 input[type="search"],
 input[type="search"],
-input[type="email"],
+input[type="radio"],
+input[type="tel"],
+input[type="text"],
+input[type="time"],
 input[type="url"],
 input[type="url"],
+input[type="week"],
+select,
 textarea {
 textarea {
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       box-sizing: border-box;
+       border: 1px solid #ddd;
+       -webkit-box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.07 );
+       box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.07 );
+       background-color: #fff;
+       color: #333;
+       outline: none;
+       -webkit-transition: 0.05s border-color ease-in-out;
+       transition: 0.05s border-color ease-in-out;
+}
+
+input[type="text"]:focus,
+input[type="password"]:focus,
+input[type="color"]:focus,
+input[type="date"]:focus,
+input[type="datetime"]:focus,
+input[type="datetime-local"]:focus,
+input[type="email"]:focus,
+input[type="month"]:focus,
+input[type="number"]:focus,
+input[type="password"]:focus,
+input[type="search"]:focus,
+input[type="tel"]:focus,
+input[type="text"]:focus,
+input[type="time"]:focus,
+input[type="url"]:focus,
+input[type="week"]:focus,
+input[type="checkbox"]:focus,
+input[type="radio"]:focus,
+select:focus,
+textarea:focus {
+       border-color: #5b9dd9;
+       -webkit-box-shadow: 0 0 2px rgba( 30, 140, 190, 0.8 );
+       box-shadow: 0 0 2px rgba( 30, 140, 190, 0.8 );
 }
 
 /* @noflip */
 }
 
 /* @noflip */
@@ -36,11 +85,8 @@ input[type="radio"] {
        width: 16px;
        min-width: 16px;
        -webkit-appearance: none;
        width: 16px;
        min-width: 16px;
        -webkit-appearance: none;
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       box-sizing: border-box;
-       -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
-       box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
+       -webkit-box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.1 );
+       box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.1 );
        -webkit-transition: .05s border-color ease-in-out;
        transition: .05s border-color ease-in-out;
 }
        -webkit-transition: .05s border-color ease-in-out;
        transition: .05s border-color ease-in-out;
 }
@@ -55,28 +101,28 @@ input[type="radio"]:checked + label:before {
 }
 
 td > input[type="checkbox"],
 }
 
 td > input[type="checkbox"],
-.wp-admin p input[type=checkbox],
-.wp-admin p input[type=radio] {
+.wp-admin p input[type="checkbox"],
+.wp-admin p input[type="radio"] {
        margin-top: 0;
 }
 
        margin-top: 0;
 }
 
-.wp-admin p label input[type=checkbox] {
+.wp-admin p label input[type="checkbox"] {
        margin-top: -4px;
 }
 
        margin-top: -4px;
 }
 
-.wp-admin p label input[type=radio] {
+.wp-admin p label input[type="radio"] {
        margin-top: -2px;
 }
 
        margin-top: -2px;
 }
 
-input[type=radio] {
+input[type="radio"] {
        -webkit-border-radius: 50%;
        border-radius: 50%;
        margin-right: 4px;
        line-height: 10px;
 }
 
        -webkit-border-radius: 50%;
        border-radius: 50%;
        margin-right: 4px;
        line-height: 10px;
 }
 
-input[type=checkbox]:checked:before,
-input[type=radio]:checked:before {
+input[type="checkbox"]:checked:before,
+input[type="radio"]:checked:before {
        float: left;
        display: inline-block;
        vertical-align: middle;
        float: left;
        display: inline-block;
        vertical-align: middle;
@@ -87,13 +133,13 @@ input[type=radio]:checked:before {
        -moz-osx-font-smoothing: grayscale;
 }
 
        -moz-osx-font-smoothing: grayscale;
 }
 
-input[type=checkbox]:checked:before {
+input[type="checkbox"]:checked:before {
        content: '\f147';
        margin: -3px 0 0 -4px;
        color: #1e8cbe;
 }
 
        content: '\f147';
        margin: -3px 0 0 -4px;
        color: #1e8cbe;
 }
 
-input[type=radio]:checked:before {
+input[type="radio"]:checked:before {
        content: '\2022';
        text-indent: -9999px;
        -webkit-border-radius: 50px;
        content: '\2022';
        text-indent: -9999px;
        -webkit-border-radius: 50px;
@@ -106,13 +152,9 @@ input[type=radio]:checked:before {
        background-color: #1e8cbe;
 }
 
        background-color: #1e8cbe;
 }
 
-input.readonly, textarea.readonly {
-       background-color: #ddd;
-}
-
 @-moz-document url-prefix() {
 @-moz-document url-prefix() {
-       input[type=checkbox],
-       input[type=radio],
+       input[type="checkbox"],
+       input[type="radio"],
        .form-table input.tog {
                margin-bottom: -1px;
        }
        .form-table input.tog {
                margin-bottom: -1px;
        }
@@ -145,7 +187,6 @@ input,
 select {
        font-size: 14px;
        padding: 3px 5px;
 select {
        font-size: 14px;
        padding: 3px 5px;
-       line-height: 15px;
        -webkit-border-radius: 0;
        border-radius: 0; /* Reset mobile webkit's default element styling */
 }
        -webkit-border-radius: 0;
        border-radius: 0; /* Reset mobile webkit's default element styling */
 }
@@ -156,17 +197,6 @@ textarea {
        line-height: 1.4;
 }
 
        line-height: 1.4;
 }
 
-input[type="text"],
-input[type="password"],
-input[type="number"],
-input[type="search"],
-input[type="email"],
-input[type="url"],
-textarea,
-select {
-       outline: 0;
-}
-
 .wp-admin input[type="file"] {
        padding: 3px 0;
 }
 .wp-admin input[type="file"] {
        padding: 3px 0;
 }
@@ -190,45 +220,10 @@ textarea.code {
        padding: 4px 6px 1px 6px;
 }
 
        padding: 4px 6px 1px 6px;
 }
 
-textarea,
-input[type="text"],
-input[type="password"],
-input[type="email"],
-input[type="number"],
-input[type="search"],
-input[type="tel"],
-input[type="url"],
-select {
-       border: 1px solid #ddd;
-       -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
-       box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
-       background-color: #fff;
-       color: #333;
-       -webkit-transition: .05s border-color ease-in-out;
-       transition: .05s border-color ease-in-out;
-}
-
-select[disabled] {
-       color: #7f7f7f;
-}
-
-textarea:focus,
-input[type="text"]:focus,
-input[type="password"]:focus,
-input[type="email"]:focus,
-input[type="number"]:focus,
-input[type="search"]:focus,
-input[type="tel"]:focus,
-input[type="url"]:focus,
-input[type="checkbox"]:focus,
-input[type="radio"]:focus,
-select:focus {
-       border-color: #5b9dd9;
-       -webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8);
-       box-shadow: 0 0 2px rgba(30,140,190,0.8);
-}
-
-input[readonly] {
+input.readonly,
+input[readonly],
+textarea.readonly,
+textarea[readonly] {
        background-color: #eee;
 }
 
        background-color: #eee;
 }
 
@@ -252,19 +247,34 @@ input[readonly] {
 
 input:disabled,
 input.disabled,
 
 input:disabled,
 input.disabled,
+select:disabled,
+select.disabled,
 textarea:disabled,
 textarea.disabled {
 textarea:disabled,
 textarea.disabled {
-       -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
-       box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
-       border-color: rgba(222, 222, 222, .75);
-       background: rgba(255, 255, 255, .5);
-       color: rgba(51, 51, 51, .5);
-}
-
-input[type=checkbox]:disabled,
-input[type=radio]:disabled,
-input[type=checkbox]:disabled:checked:before,
-input[type=radio]:disabled:checked:before {
+       background: rgba( 255, 255, 255, 0.5 );
+       border-color: rgba( 222, 222, 222, 0.75 );
+       -webkit-box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.04 );
+       box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.04 );
+       color: rgba( 51, 51, 51, 0.5 );
+}
+
+input[type="file"]:disabled,
+input[type="file"].disabled,
+input[type="range"]:disabled,
+input[type="range"].disabled {
+       background: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
+}
+
+input[type="checkbox"]:disabled,
+input[type="checkbox"].disabled,
+input[type="radio"]:disabled,
+input[type="radio"].disabled,
+input[type="checkbox"]:disabled:checked:before,
+input[type="checkbox"].disabled:checked:before,
+input[type="radio"]:disabled:checked:before,
+input[type="radio"].disabled:checked:before {
        opacity: 0.7;
 }
 
        opacity: 0.7;
 }
 
@@ -364,7 +374,8 @@ input[type="number"].small-text {
 
 .tablenav #changeit,
 .tablenav #delete_all,
 
 .tablenav #changeit,
 .tablenav #delete_all,
-.tablenav #clear-recent-list {
+.tablenav #clear-recent-list,
+.wp-filter #delete_all {
        margin-top: 1px;
 }
 
        margin-top: 1px;
 }
 
@@ -465,7 +476,7 @@ p.search-box {
 }
 
 .search-box input[name="s"],
 }
 
 .search-box input[name="s"],
-#search-plugins input[name="s"],
+.tablenav .search-plugins input[name="s"],
 .tagsdiv .newtag {
        float: left;
        height: 28px;
 .tagsdiv .newtag {
        float: left;
        height: 28px;
@@ -585,7 +596,7 @@ ul#add-to-blog-users {
 }
 
 .form-table input.tog,
 }
 
 .form-table input.tog,
-.form-table input[type=radio] {
+.form-table input[type="radio"] {
        margin-top: -4px;
        margin-right: 4px;
        float: none;
        margin-top: -4px;
        margin-right: 4px;
        float: none;
@@ -760,8 +771,8 @@ table.form-table td .updated {
                -webkit-appearance: none;
        }
 
                -webkit-appearance: none;
        }
 
-       input[type=text], input[type=search],
-       input[type=password], input[type=number] {
+       input[type=text], input[type="search"],
+       input[type=password], input[type="number"] {
                -webkit-appearance: none;
                padding: 6px 10px;
        }
                -webkit-appearance: none;
                padding: 6px 10px;
        }
@@ -771,32 +782,32 @@ table.form-table td .updated {
                padding-top: 10px;
        }
 
                padding-top: 10px;
        }
 
-       input[type=checkbox], .widefat th input[type=checkbox] {
+       input[type="checkbox"], .widefat th input[type="checkbox"] {
                -webkit-appearance: none;
                padding: 10px;
        }
 
                -webkit-appearance: none;
                padding: 10px;
        }
 
-       .widefat th input[type=checkbox] {
+       .widefat th input[type="checkbox"] {
                margin-bottom: 8px;
        }
 
                margin-bottom: 8px;
        }
 
-       input[type=checkbox]:checked:before, .widefat th input[type=checkbox]:before {
+       input[type="checkbox"]:checked:before, .widefat th input[type="checkbox"]:before {
                font: normal 30px/1 'Dashicons';
                margin: -3px -5px;
        }
 
                font: normal 30px/1 'Dashicons';
                margin: -3px -5px;
        }
 
-       input[type=radio],
-       input[type=checkbox] {
+       input[type="radio"],
+       input[type="checkbox"] {
                height: 25px;
                width: 25px;
        }
 
                height: 25px;
                width: 25px;
        }
 
-       .wp-admin p input[type=checkbox],
-       .wp-admin p input[type=radio] {
+       .wp-admin p input[type="checkbox"],
+       .wp-admin p input[type="radio"] {
                margin-top: -3px;
        }
 
                margin-top: -3px;
        }
 
-       input[type=radio]:checked:before {
+       input[type="radio"]:checked:before {
                vertical-align: middle;
                width: 9px;
                height: 9px;
                vertical-align: middle;
                width: 9px;
                height: 9px;
@@ -804,7 +815,7 @@ table.form-table td .updated {
                line-height: 16px;
        }
 
                line-height: 16px;
        }
 
-       .wp-upload-form input[type=submit] {
+       .wp-upload-form input[type="submit"] {
                margin-top: 10px;
        }
 
                margin-top: 10px;
        }
 
@@ -866,12 +877,16 @@ table.form-table td .updated {
                box-sizing: border-box;
        }
 
                box-sizing: border-box;
        }
 
-       input[type=text].small-text,
-       input[type=search].small-text,
-       input[type=password].small-text,
-       input[type=number].small-text,
+       #wpbody .form-table td select {
+               height: 40px;
+       }
+
+       input[type="text"].small-text,
+       input[type="search"].small-text,
+       input[type="password"].small-text,
+       input[type="number"].small-text,
        input[type="number"].small-text,
        input[type="number"].small-text,
-       .form-table input[type=text].small-text {
+       .form-table input[type="text"].small-text {
                width: auto;
                max-width: 55px;
                display: inline;
                width: auto;
                max-width: 55px;
                display: inline;
index 4783f2faf7a1d2b7c08f66724d4c0798a253dbb8..590d44ec1e2b5bc48c38bb30446c07655f5204c5 100644 (file)
@@ -260,7 +260,7 @@ table.fixed td {
        border: 1px solid #dfdfdf;
 }
 
        border: 1px solid #dfdfdf;
 }
 
-#wpbody-content .postbox h3 {
+#wpbody-content .postbox .hndle {
        margin-bottom: -1px;
 }
 
        margin-bottom: -1px;
 }
 
index f8c6f3ba6124f89640d85dcfc4a0103d9adf7722..dee9313bdbe790d28bfdaee7629ccd971cbec557 100644 (file)
@@ -1 +1 @@
-#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:99%}#dashboard-widgets form #title{width:98%}#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:left;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}.wp-editor-wrap .wp-editor-container,.wp-editor-wrap .wp-editor-tabs,.wp-editor-wrap .wp-editor-tools,.wp-editor-wrap .wp-switch-editor{zoom:100%}.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-right:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column:first-child{width:35%}.wp-fullscreen-title{width:97%}#wp_mce_fullscreen_ifr{background-color:#f9f9f9}#wp-fullscreen-tagline{color:#888;font-size:14px}#adminmenuback{right:0;background-image:none}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu,#adminmenu a{cursor:pointer}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu{right:110px}#adminmenu .wp-submenu ul{margin:0}.folded #wpcontent,.folded #wpfooter{margin-right:170px}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:150px}.folded #adminmenu .wp-submenu{border-top-color:transparent}.folded #adminmenu .wp-menu-name{display:block}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open{right:110px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{top:-1px;position:relative}.folded #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:transparent}#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#ddd}.folded #adminmenu .wp-submenu ul{margin-right:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu .wp-menu-arrow{display:none!important}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#adminmenu li.wp-has-current-submenu .wp-submenu{right:-40px}#adminmenu .wp-menu-image{display:none!important}#adminmenu a.menu-top .wp-menu-name{padding-right:8px}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}.theme-browser .theme{width:30%;margin:0 0 4% 3%;cursor:auto}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:auto}.theme-browser .theme .theme-screenshot{height:180px}.theme-browser .theme .theme-actions{position:static;background-color:#e8e8e8}.theme-browser .theme .more-details{display:none}.plugins td,.plugins th,table.fixed td,table.fixed th{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary,#wpbody-content input.button-secondary{overflow:visible}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox{border:1px solid #dfdfdf}#wpbody-content .postbox h3{margin-bottom:-1px}#addcat,#editcat,#template,#template div,.major-publishing-actions,.wp-submenu,.wp-submenu li{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:right;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-right:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}.button,input[type=button],input[type=reset],input[type=submit]{padding:0 8px;line-height:20px;height:auto}.button.button-large,input[type=button].button-large,input[type=reset].button-large,input[type=submit].button-large{padding:0 10px;line-height:24px;height:auto}.button.button-small,input[type=button].button-small,input[type=reset].button-small,input[type=submit].button-small{padding:0 6px;line-height:16px;height:auto}a.button{margin:1px;padding:1px 9px 2px}a.button.button-large{padding:1px 11px 2px}a.button.button-small{padding:1px 7px 2px}#screen-options-wrap{overflow:hidden}#col-container,#col-left,#col-right,#dragHelper,#editorcontainer,#post-body,#post-status-info,#postdiv,#postdivrich,#poststuff,#the-comment-list .comment-item,#titlediv,#widgets-left,#wpwrap,#wrap,.fileedit-sub,.metabox-holder,.tablenav,.tagchecklist,.widget .widget-top,.widget-control-actions,.widget-liquid-left,.widget-liquid-right,.widgets-sortables{display:block;zoom:100%}p.search-box{position:static;float:left;margin:-3px 0 4px}#widget-list .widget,.feature-filter .feature-group li{display:inline}.feature-filter .feature-group li input{vertical-align:middle}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#poststuff .inside #page_template,#poststuff .inside #parent_id,.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{width:250px}#submitdiv a.button,#submitdiv input,#submitdiv select{position:relative}#bh{margin:7px 0 0 10px;float:left}div#dashboard-widgets{padding-left:1px}.tagchecklist span,.tagchecklist span a{display:inline-block;display:block}.nav .button-secondary,.tablenav .button-secondary{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}.subsubsub li{display:inline}a.post-state-format{text-indent:0;line-height:0;font-size:0}table.ie-fixed{table-layout:fixed}.widefat th,.widefat tr{margin-bottom:0;border-spacing:0}.widefat th input{margin:0 5px 0 0}.widefat tfoot .check-column,.widefat thead .check-column{padding-top:6px}.media.widefat tbody th.check-column,.widefat tbody th.check-column{padding:4px 0 0}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button-secondary{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.inactive-sidebar .widget,.widget-liquid-right .widget{position:relative}.inactive-sidebar .widget{display:block;float:right}#wpcontent .button-primary-disabled{color:#9FD0D5;background:#298CBA}#the-comment-list .unapproved td,#the-comment-list .unapproved tr{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.available-theme{display:inline}.available-theme ul{margin:0}.available-theme .action-links li{padding-left:7px;margin-left:7px}.about-wrap .three-col.about-updates .col-2{width:15%}.about-wrap .about-password-meter input{width:98%}.revisions-tickmarks,.revisions-tooltip{display:none!important}.revisions.pinned .revisions-controls{position:relative}.login form .input,input[type=password]{font-family:sans-serif}.mce-btn i.mce-i-aligncenter,.mce-btn i.mce-i-alignjustify,.mce-btn i.mce-i-alignleft,.mce-btn i.mce-i-alignright,.mce-btn i.mce-i-blockquote,.mce-btn i.mce-i-bold,.mce-btn i.mce-i-bullist,.mce-btn i.mce-i-charmap,.mce-btn i.mce-i-forecolor,.mce-btn i.mce-i-fullscreen,.mce-btn i.mce-i-help,.mce-btn i.mce-i-hr,.mce-btn i.mce-i-indent,.mce-btn i.mce-i-italic,.mce-btn i.mce-i-link,.mce-btn i.mce-i-ltr,.mce-btn i.mce-i-numlist,.mce-btn i.mce-i-outdent,.mce-btn i.mce-i-pastetext,.mce-btn i.mce-i-pasteword,.mce-btn i.mce-i-redo,.mce-btn i.mce-i-removeformat,.mce-btn i.mce-i-spellchecker,.mce-btn i.mce-i-strikethrough,.mce-btn i.mce-i-underline,.mce-btn i.mce-i-undo,.mce-btn i.mce-i-unlink,.mce-btn i.mce-i-wp-media-library,.mce-btn i.mce-i-wp_adv,.mce-btn i.mce-i-wp_fullscreen,.mce-btn i.mce-i-wp_help,.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page,.mce-close{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;margin-right:0;padding-left:0}.mce-btn i.mce-i-wp_fullscreen,.qt-fullscreen{-ie7-icon:'\e023'}.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page{-ie7-icon:'\e027'}.mce-btn i.mce-i-wp_adv{background-color:#aaa}.mce-btn i.mce-i-help,.mce-btn i.mce-i-wp_help{-ie7-icon:'\e016'}* html .row-actions{visibility:visible}* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-right:0}* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea{border:1px solid #DFDFDF}* html .feature-filter .feature-group li{width:145px}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{left:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html input{border:1px solid #dfdfdf}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-right:-80px}* html .folded #adminmenu{margin-right:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #wpfooter{margin:0}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
+#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:99%}#dashboard-widgets form #title{width:98%}#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:left;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}.wp-editor-wrap .wp-editor-container,.wp-editor-wrap .wp-editor-tabs,.wp-editor-wrap .wp-editor-tools,.wp-editor-wrap .wp-switch-editor{zoom:100%}.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-right:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column:first-child{width:35%}.wp-fullscreen-title{width:97%}#wp_mce_fullscreen_ifr{background-color:#f9f9f9}#wp-fullscreen-tagline{color:#888;font-size:14px}#adminmenuback{right:0;background-image:none}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu,#adminmenu a{cursor:pointer}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu{right:110px}#adminmenu .wp-submenu ul{margin:0}.folded #wpcontent,.folded #wpfooter{margin-right:170px}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:150px}.folded #adminmenu .wp-submenu{border-top-color:transparent}.folded #adminmenu .wp-menu-name{display:block}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open{right:110px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{top:-1px;position:relative}.folded #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:transparent}#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#ddd}.folded #adminmenu .wp-submenu ul{margin-right:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu .wp-menu-arrow{display:none!important}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#adminmenu li.wp-has-current-submenu .wp-submenu{right:-40px}#adminmenu .wp-menu-image{display:none!important}#adminmenu a.menu-top .wp-menu-name{padding-right:8px}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}.theme-browser .theme{width:30%;margin:0 0 4% 3%;cursor:auto}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:auto}.theme-browser .theme .theme-screenshot{height:180px}.theme-browser .theme .theme-actions{position:static;background-color:#e8e8e8}.theme-browser .theme .more-details{display:none}.plugins td,.plugins th,table.fixed td,table.fixed th{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary,#wpbody-content input.button-secondary{overflow:visible}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox{border:1px solid #dfdfdf}#wpbody-content .postbox .hndle{margin-bottom:-1px}#addcat,#editcat,#template,#template div,.major-publishing-actions,.wp-submenu,.wp-submenu li{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:right;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-right:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}.button,input[type=button],input[type=reset],input[type=submit]{padding:0 8px;line-height:20px;height:auto}.button.button-large,input[type=button].button-large,input[type=reset].button-large,input[type=submit].button-large{padding:0 10px;line-height:24px;height:auto}.button.button-small,input[type=button].button-small,input[type=reset].button-small,input[type=submit].button-small{padding:0 6px;line-height:16px;height:auto}a.button{margin:1px;padding:1px 9px 2px}a.button.button-large{padding:1px 11px 2px}a.button.button-small{padding:1px 7px 2px}#screen-options-wrap{overflow:hidden}#col-container,#col-left,#col-right,#dragHelper,#editorcontainer,#post-body,#post-status-info,#postdiv,#postdivrich,#poststuff,#the-comment-list .comment-item,#titlediv,#widgets-left,#wpwrap,#wrap,.fileedit-sub,.metabox-holder,.tablenav,.tagchecklist,.widget .widget-top,.widget-control-actions,.widget-liquid-left,.widget-liquid-right,.widgets-sortables{display:block;zoom:100%}p.search-box{position:static;float:left;margin:-3px 0 4px}#widget-list .widget,.feature-filter .feature-group li{display:inline}.feature-filter .feature-group li input{vertical-align:middle}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#poststuff .inside #page_template,#poststuff .inside #parent_id,.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{width:250px}#submitdiv a.button,#submitdiv input,#submitdiv select{position:relative}#bh{margin:7px 0 0 10px;float:left}div#dashboard-widgets{padding-left:1px}.tagchecklist span,.tagchecklist span a{display:inline-block;display:block}.nav .button-secondary,.tablenav .button-secondary{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}.subsubsub li{display:inline}a.post-state-format{text-indent:0;line-height:0;font-size:0}table.ie-fixed{table-layout:fixed}.widefat th,.widefat tr{margin-bottom:0;border-spacing:0}.widefat th input{margin:0 5px 0 0}.widefat tfoot .check-column,.widefat thead .check-column{padding-top:6px}.media.widefat tbody th.check-column,.widefat tbody th.check-column{padding:4px 0 0}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button-secondary{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.inactive-sidebar .widget,.widget-liquid-right .widget{position:relative}.inactive-sidebar .widget{display:block;float:right}#wpcontent .button-primary-disabled{color:#9FD0D5;background:#298CBA}#the-comment-list .unapproved td,#the-comment-list .unapproved tr{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.available-theme{display:inline}.available-theme ul{margin:0}.available-theme .action-links li{padding-left:7px;margin-left:7px}.about-wrap .three-col.about-updates .col-2{width:15%}.about-wrap .about-password-meter input{width:98%}.revisions-tickmarks,.revisions-tooltip{display:none!important}.revisions.pinned .revisions-controls{position:relative}.login form .input,input[type=password]{font-family:sans-serif}.mce-btn i.mce-i-aligncenter,.mce-btn i.mce-i-alignjustify,.mce-btn i.mce-i-alignleft,.mce-btn i.mce-i-alignright,.mce-btn i.mce-i-blockquote,.mce-btn i.mce-i-bold,.mce-btn i.mce-i-bullist,.mce-btn i.mce-i-charmap,.mce-btn i.mce-i-forecolor,.mce-btn i.mce-i-fullscreen,.mce-btn i.mce-i-help,.mce-btn i.mce-i-hr,.mce-btn i.mce-i-indent,.mce-btn i.mce-i-italic,.mce-btn i.mce-i-link,.mce-btn i.mce-i-ltr,.mce-btn i.mce-i-numlist,.mce-btn i.mce-i-outdent,.mce-btn i.mce-i-pastetext,.mce-btn i.mce-i-pasteword,.mce-btn i.mce-i-redo,.mce-btn i.mce-i-removeformat,.mce-btn i.mce-i-spellchecker,.mce-btn i.mce-i-strikethrough,.mce-btn i.mce-i-underline,.mce-btn i.mce-i-undo,.mce-btn i.mce-i-unlink,.mce-btn i.mce-i-wp-media-library,.mce-btn i.mce-i-wp_adv,.mce-btn i.mce-i-wp_fullscreen,.mce-btn i.mce-i-wp_help,.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page,.mce-close{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;margin-right:0;padding-left:0}.mce-btn i.mce-i-wp_fullscreen,.qt-fullscreen{-ie7-icon:'\e023'}.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page{-ie7-icon:'\e027'}.mce-btn i.mce-i-wp_adv{background-color:#aaa}.mce-btn i.mce-i-help,.mce-btn i.mce-i-wp_help{-ie7-icon:'\e016'}* html .row-actions{visibility:visible}* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-right:0}* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea{border:1px solid #DFDFDF}* html .feature-filter .feature-group li{width:145px}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{left:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html input{border:1px solid #dfdfdf}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-right:-80px}* html .folded #adminmenu{margin-right:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #wpfooter{margin:0}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
index 967fae2639a5f1941aa5c822d29022c646aed424..c49f576a7147d8d928c8e49582bd504cdb319932 100644 (file)
@@ -260,7 +260,7 @@ table.fixed td {
        border: 1px solid #dfdfdf;
 }
 
        border: 1px solid #dfdfdf;
 }
 
-#wpbody-content .postbox h3 {
+#wpbody-content .postbox .hndle {
        margin-bottom: -1px;
 }
 
        margin-bottom: -1px;
 }
 
index 849f4d1552b87fdb70f70b986cacc12a0f6f7dbc..0b4b692946e271e86f103925b4b658cff1f6a088 100644 (file)
@@ -1 +1 @@
-#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:99%}#dashboard-widgets form #title{width:98%}#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}.wp-editor-wrap .wp-editor-container,.wp-editor-wrap .wp-editor-tabs,.wp-editor-wrap .wp-editor-tools,.wp-editor-wrap .wp-switch-editor{zoom:100%}.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-left:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column:first-child{width:35%}.wp-fullscreen-title{width:97%}#wp_mce_fullscreen_ifr{background-color:#f9f9f9}#wp-fullscreen-tagline{color:#888;font-size:14px}#adminmenuback{left:0;background-image:none}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu,#adminmenu a{cursor:pointer}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu{left:110px}#adminmenu .wp-submenu ul{margin:0}.folded #wpcontent,.folded #wpfooter{margin-left:170px}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:150px}.folded #adminmenu .wp-submenu{border-top-color:transparent}.folded #adminmenu .wp-menu-name{display:block}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open{left:110px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{top:-1px;position:relative}.folded #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:transparent}#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#ddd}.folded #adminmenu .wp-submenu ul{margin-left:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu .wp-menu-arrow{display:none!important}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#adminmenu li.wp-has-current-submenu .wp-submenu{left:-40px}#adminmenu .wp-menu-image{display:none!important}#adminmenu a.menu-top .wp-menu-name{padding-left:8px}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}.theme-browser .theme{width:30%;margin:0 3% 4% 0;cursor:auto}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:auto}.theme-browser .theme .theme-screenshot{height:180px}.theme-browser .theme .theme-actions{position:static;background-color:#e8e8e8}.theme-browser .theme .more-details{display:none}.plugins td,.plugins th,table.fixed td,table.fixed th{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary,#wpbody-content input.button-secondary{overflow:visible}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox{border:1px solid #dfdfdf}#wpbody-content .postbox h3{margin-bottom:-1px}#addcat,#editcat,#template,#template div,.major-publishing-actions,.wp-submenu,.wp-submenu li{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}.button,input[type=button],input[type=reset],input[type=submit]{padding:0 8px;line-height:20px;height:auto}.button.button-large,input[type=button].button-large,input[type=reset].button-large,input[type=submit].button-large{padding:0 10px;line-height:24px;height:auto}.button.button-small,input[type=button].button-small,input[type=reset].button-small,input[type=submit].button-small{padding:0 6px;line-height:16px;height:auto}a.button{margin:1px;padding:1px 9px 2px}a.button.button-large{padding:1px 11px 2px}a.button.button-small{padding:1px 7px 2px}#screen-options-wrap{overflow:hidden}#col-container,#col-left,#col-right,#dragHelper,#editorcontainer,#post-body,#post-status-info,#postdiv,#postdivrich,#poststuff,#the-comment-list .comment-item,#titlediv,#widgets-left,#wpwrap,#wrap,.fileedit-sub,.metabox-holder,.tablenav,.tagchecklist,.widget .widget-top,.widget-control-actions,.widget-liquid-left,.widget-liquid-right,.widgets-sortables{display:block;zoom:100%}p.search-box{position:static;float:right;margin:-3px 0 4px}#widget-list .widget,.feature-filter .feature-group li{display:inline}.feature-filter .feature-group li input{vertical-align:middle}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#poststuff .inside #page_template,#poststuff .inside #parent_id,.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{width:250px}#submitdiv a.button,#submitdiv input,#submitdiv select{position:relative}#bh{margin:7px 10px 0 0;float:right}div#dashboard-widgets{padding-right:1px}.tagchecklist span,.tagchecklist span a{display:inline-block;display:block}.nav .button-secondary,.tablenav .button-secondary{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}.subsubsub li{display:inline}a.post-state-format{text-indent:0;line-height:0;font-size:0}table.ie-fixed{table-layout:fixed}.widefat th,.widefat tr{margin-bottom:0;border-spacing:0}.widefat th input{margin:0 0 0 5px}.widefat tfoot .check-column,.widefat thead .check-column{padding-top:6px}.media.widefat tbody th.check-column,.widefat tbody th.check-column{padding:4px 0 0}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button-secondary{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.inactive-sidebar .widget,.widget-liquid-right .widget{position:relative}.inactive-sidebar .widget{display:block;float:left}#wpcontent .button-primary-disabled{color:#9FD0D5;background:#298CBA}#the-comment-list .unapproved td,#the-comment-list .unapproved tr{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.available-theme{display:inline}.available-theme ul{margin:0}.available-theme .action-links li{padding-right:7px;margin-right:7px}.about-wrap .three-col.about-updates .col-2{width:15%}.about-wrap .about-password-meter input{width:98%}.revisions-tickmarks,.revisions-tooltip{display:none!important}.revisions.pinned .revisions-controls{position:relative}.login form .input,input[type=password]{font-family:sans-serif}.mce-btn i.mce-i-aligncenter,.mce-btn i.mce-i-alignjustify,.mce-btn i.mce-i-alignleft,.mce-btn i.mce-i-alignright,.mce-btn i.mce-i-blockquote,.mce-btn i.mce-i-bold,.mce-btn i.mce-i-bullist,.mce-btn i.mce-i-charmap,.mce-btn i.mce-i-forecolor,.mce-btn i.mce-i-fullscreen,.mce-btn i.mce-i-help,.mce-btn i.mce-i-hr,.mce-btn i.mce-i-indent,.mce-btn i.mce-i-italic,.mce-btn i.mce-i-link,.mce-btn i.mce-i-ltr,.mce-btn i.mce-i-numlist,.mce-btn i.mce-i-outdent,.mce-btn i.mce-i-pastetext,.mce-btn i.mce-i-pasteword,.mce-btn i.mce-i-redo,.mce-btn i.mce-i-removeformat,.mce-btn i.mce-i-spellchecker,.mce-btn i.mce-i-strikethrough,.mce-btn i.mce-i-underline,.mce-btn i.mce-i-undo,.mce-btn i.mce-i-unlink,.mce-btn i.mce-i-wp-media-library,.mce-btn i.mce-i-wp_adv,.mce-btn i.mce-i-wp_fullscreen,.mce-btn i.mce-i-wp_help,.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page,.mce-close{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;margin-left:0;padding-right:0}.mce-btn i.mce-i-wp_fullscreen,.qt-fullscreen{-ie7-icon:'\e023'}.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page{-ie7-icon:'\e027'}.mce-btn i.mce-i-wp_adv{background-color:#aaa}.mce-btn i.mce-i-help,.mce-btn i.mce-i-wp_help{-ie7-icon:'\e016'}* html .row-actions{visibility:visible}* html div.widget-liquid-left,* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-left:0}* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea{border:1px solid #DFDFDF}* html .feature-filter .feature-group li{width:145px}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{right:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html input{border:1px solid #dfdfdf}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-left:-80px}* html .folded #adminmenu{margin-left:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #wpfooter{margin:0}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
+#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:99%}#dashboard-widgets form #title{width:98%}#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}.wp-editor-wrap .wp-editor-container,.wp-editor-wrap .wp-editor-tabs,.wp-editor-wrap .wp-editor-tools,.wp-editor-wrap .wp-switch-editor{zoom:100%}.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-left:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column:first-child{width:35%}.wp-fullscreen-title{width:97%}#wp_mce_fullscreen_ifr{background-color:#f9f9f9}#wp-fullscreen-tagline{color:#888;font-size:14px}#adminmenuback{left:0;background-image:none}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu,#adminmenu a{cursor:pointer}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu{left:110px}#adminmenu .wp-submenu ul{margin:0}.folded #wpcontent,.folded #wpfooter{margin-left:170px}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:150px}.folded #adminmenu .wp-submenu{border-top-color:transparent}.folded #adminmenu .wp-menu-name{display:block}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open{left:110px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{top:-1px;position:relative}.folded #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:transparent}#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#ddd}.folded #adminmenu .wp-submenu ul{margin-left:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu .wp-menu-arrow{display:none!important}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#adminmenu li.wp-has-current-submenu .wp-submenu{left:-40px}#adminmenu .wp-menu-image{display:none!important}#adminmenu a.menu-top .wp-menu-name{padding-left:8px}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}.theme-browser .theme{width:30%;margin:0 3% 4% 0;cursor:auto}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:auto}.theme-browser .theme .theme-screenshot{height:180px}.theme-browser .theme .theme-actions{position:static;background-color:#e8e8e8}.theme-browser .theme .more-details{display:none}.plugins td,.plugins th,table.fixed td,table.fixed th{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary,#wpbody-content input.button-secondary{overflow:visible}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox{border:1px solid #dfdfdf}#wpbody-content .postbox .hndle{margin-bottom:-1px}#addcat,#editcat,#template,#template div,.major-publishing-actions,.wp-submenu,.wp-submenu li{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}.button,input[type=button],input[type=reset],input[type=submit]{padding:0 8px;line-height:20px;height:auto}.button.button-large,input[type=button].button-large,input[type=reset].button-large,input[type=submit].button-large{padding:0 10px;line-height:24px;height:auto}.button.button-small,input[type=button].button-small,input[type=reset].button-small,input[type=submit].button-small{padding:0 6px;line-height:16px;height:auto}a.button{margin:1px;padding:1px 9px 2px}a.button.button-large{padding:1px 11px 2px}a.button.button-small{padding:1px 7px 2px}#screen-options-wrap{overflow:hidden}#col-container,#col-left,#col-right,#dragHelper,#editorcontainer,#post-body,#post-status-info,#postdiv,#postdivrich,#poststuff,#the-comment-list .comment-item,#titlediv,#widgets-left,#wpwrap,#wrap,.fileedit-sub,.metabox-holder,.tablenav,.tagchecklist,.widget .widget-top,.widget-control-actions,.widget-liquid-left,.widget-liquid-right,.widgets-sortables{display:block;zoom:100%}p.search-box{position:static;float:right;margin:-3px 0 4px}#widget-list .widget,.feature-filter .feature-group li{display:inline}.feature-filter .feature-group li input{vertical-align:middle}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#poststuff .inside #page_template,#poststuff .inside #parent_id,.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{width:250px}#submitdiv a.button,#submitdiv input,#submitdiv select{position:relative}#bh{margin:7px 10px 0 0;float:right}div#dashboard-widgets{padding-right:1px}.tagchecklist span,.tagchecklist span a{display:inline-block;display:block}.nav .button-secondary,.tablenav .button-secondary{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}.subsubsub li{display:inline}a.post-state-format{text-indent:0;line-height:0;font-size:0}table.ie-fixed{table-layout:fixed}.widefat th,.widefat tr{margin-bottom:0;border-spacing:0}.widefat th input{margin:0 0 0 5px}.widefat tfoot .check-column,.widefat thead .check-column{padding-top:6px}.media.widefat tbody th.check-column,.widefat tbody th.check-column{padding:4px 0 0}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button-secondary{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.inactive-sidebar .widget,.widget-liquid-right .widget{position:relative}.inactive-sidebar .widget{display:block;float:left}#wpcontent .button-primary-disabled{color:#9FD0D5;background:#298CBA}#the-comment-list .unapproved td,#the-comment-list .unapproved tr{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.available-theme{display:inline}.available-theme ul{margin:0}.available-theme .action-links li{padding-right:7px;margin-right:7px}.about-wrap .three-col.about-updates .col-2{width:15%}.about-wrap .about-password-meter input{width:98%}.revisions-tickmarks,.revisions-tooltip{display:none!important}.revisions.pinned .revisions-controls{position:relative}.login form .input,input[type=password]{font-family:sans-serif}.mce-btn i.mce-i-aligncenter,.mce-btn i.mce-i-alignjustify,.mce-btn i.mce-i-alignleft,.mce-btn i.mce-i-alignright,.mce-btn i.mce-i-blockquote,.mce-btn i.mce-i-bold,.mce-btn i.mce-i-bullist,.mce-btn i.mce-i-charmap,.mce-btn i.mce-i-forecolor,.mce-btn i.mce-i-fullscreen,.mce-btn i.mce-i-help,.mce-btn i.mce-i-hr,.mce-btn i.mce-i-indent,.mce-btn i.mce-i-italic,.mce-btn i.mce-i-link,.mce-btn i.mce-i-ltr,.mce-btn i.mce-i-numlist,.mce-btn i.mce-i-outdent,.mce-btn i.mce-i-pastetext,.mce-btn i.mce-i-pasteword,.mce-btn i.mce-i-redo,.mce-btn i.mce-i-removeformat,.mce-btn i.mce-i-spellchecker,.mce-btn i.mce-i-strikethrough,.mce-btn i.mce-i-underline,.mce-btn i.mce-i-undo,.mce-btn i.mce-i-unlink,.mce-btn i.mce-i-wp-media-library,.mce-btn i.mce-i-wp_adv,.mce-btn i.mce-i-wp_fullscreen,.mce-btn i.mce-i-wp_help,.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page,.mce-close{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;margin-left:0;padding-right:0}.mce-btn i.mce-i-wp_fullscreen,.qt-fullscreen{-ie7-icon:'\e023'}.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page{-ie7-icon:'\e027'}.mce-btn i.mce-i-wp_adv{background-color:#aaa}.mce-btn i.mce-i-help,.mce-btn i.mce-i-wp_help{-ie7-icon:'\e016'}* html .row-actions{visibility:visible}* html div.widget-liquid-left,* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-left:0}* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea{border:1px solid #DFDFDF}* html .feature-filter .feature-group li{width:145px}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{right:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html input{border:1px solid #dfdfdf}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-left:-80px}* html .folded #adminmenu{margin-left:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #wpfooter{margin:0}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
index b73329e8fdf107cd5ec6d495d4d5332d5c12c57d..0a9deda0aa9c51f1fcbef68a20be98c48fe4fbe0 100644 (file)
@@ -60,6 +60,11 @@ abbr {
        border: 0;
        font-variant: normal;
 }
        border: 0;
        font-variant: normal;
 }
+
+label {
+       cursor: pointer;
+}
+
 #logo {
        margin: 6px 0 14px 0;
        border-bottom: none;
 #logo {
        margin: 6px 0 14px 0;
        border-bottom: none;
@@ -68,19 +73,19 @@ abbr {
 #logo a {
        background-image: url(../images/w-logo-blue.png?ver=20131202);
        background-image: none, url(../images/wordpress-logo.svg?ver=20131107);
 #logo a {
        background-image: url(../images/w-logo-blue.png?ver=20131202);
        background-image: none, url(../images/wordpress-logo.svg?ver=20131107);
-       -webkit-background-size: 80px 80px;
-       background-size: 80px 80px;
+       -webkit-background-size: 84px;
+       background-size: 84px;
        background-position: center top;
        background-repeat: no-repeat;
        color: #999;
        background-position: center top;
        background-repeat: no-repeat;
        color: #999;
-       height: 80px;
+       height: 84px;
        font-size: 20px;
        font-weight: normal;
        line-height: 1.3em;
        margin: -130px auto 25px;
        padding: 0;
        text-decoration: none;
        font-size: 20px;
        font-weight: normal;
        line-height: 1.3em;
        margin: -130px auto 25px;
        padding: 0;
        text-decoration: none;
-       width: 80px;
+       width: 84px;
        text-indent: -9999px;
        outline: none;
        overflow: hidden;
        text-indent: -9999px;
        outline: none;
        overflow: hidden;
@@ -93,7 +98,9 @@ abbr {
        text-align: right;
        padding: 0;
 }
        text-align: right;
        padding: 0;
 }
-.step .button-large {
+.language-chooser.wp-core-ui .step .button.button-large {
+       height: 36px;
+       vertical-align: middle;
        font-size: 14px;
 }
 textarea {
        font-size: 14px;
 }
 textarea {
@@ -152,6 +159,8 @@ submit {
 }
 
 .form-table input[type=text],
 }
 
 .form-table input[type=text],
+.form-table input[type=email],
+.form-table input[type=url],
 .form-table input[type=password] {
        width: 206px;
 }
 .form-table input[type=password] {
        width: 206px;
 }
@@ -295,6 +304,8 @@ body.rtl,
        }
 
        .form-table td input[type="text"],
        }
 
        .form-table td input[type="text"],
+       .form-table td input[type="email"],
+       .form-table td input[type="url"],
        .form-table td input[type="password"],
        .form-table td select,
        .form-table td textarea,
        .form-table td input[type="password"],
        .form-table td select,
        .form-table td textarea,
@@ -311,3 +322,68 @@ body.rtl,
        }
 
 }
        }
 
 }
+
+body.language-chooser {
+       max-width: 300px;
+}
+
+.language-chooser select {
+       padding: 8px;
+       width: 100%;
+       display: block;
+       border: 1px solid #ddd;
+       background-color: #fff;
+       color: #333;
+       font-size: 16px;
+       font-family: Arial, sans-serif;
+       font-weight: normal;
+}
+
+.language-chooser p {
+       text-align: left;
+}
+
+.screen-reader-input,
+.screen-reader-text {
+       position: absolute;
+       margin: -1px;
+       padding: 0;
+       height: 1px;
+       width: 1px;
+       overflow: hidden;
+       clip: rect(0 0 0 0);
+       border: 0;
+}
+
+.spinner {
+       background: url(../images/spinner.gif) no-repeat;
+       -webkit-background-size: 20px 20px;
+       background-size: 20px 20px;
+       visibility: hidden;
+       opacity: 0.7;
+       filter: alpha(opacity=70);
+       width: 20px;
+       height: 20px;
+       margin: 2px 5px 0;
+}
+
+.step .spinner {
+       display: inline-block;
+       margin-top: 8px;
+       margin-left: 15px;
+       vertical-align: top;
+}
+
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+
+       .spinner {
+               background-image: url(../images/spinner-2x.gif);
+       }
+
+}
index 6b112f7e2d5c4784fed8056c7abbbb5ebb309efa..c63802d5136f4a909b9dabb26f4b7aa50f2b577a 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1;margin:0 20px}body{background:#fff;color:#444;font-family:"Open Sans",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}a{color:#0074a2;text-decoration:none}a:hover{color:#2ea2cc}h1{border-bottom:1px solid #dedede;clear:both;color:#666;font-size:24px;margin:30px 0;padding:0;padding-bottom:7px;font-weight:400}h2{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}dl,ol,ul{padding:5px 22px 5px 5px}a img{border:0}abbr{border:0;font-variant:normal}#logo{margin:6px 0 14px;border-bottom:0;text-align:center}#logo a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:80px 80px;background-size:80px 80px;background-position:center top;background-repeat:no-repeat;color:#999;height:80px;font-size:20px;font-weight:400;line-height:1.3em;margin:-130px auto 25px;padding:0;text-decoration:none;width:80px;text-indent:-9999px;outline:0;overflow:hidden;display:block}.step{margin:20px 0 15px}.step,th{text-align:right;padding:0}.step .button-large{font-size:14px}textarea{border:1px solid #dfdfdf;font-family:"Open Sans",sans-serif;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 0 10px 20px;border-bottom:8px solid #fff;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:right;padding:16px 0 10px 20px;width:140px;vertical-align:top}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:3px 5px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07)}input,submit{font-family:"Open Sans",sans-serif}.form-table input[type=password],.form-table input[type=text]{width:206px}.form-table th p{font-weight:400}.form-table.install-success td{vertical-align:middle;padding:16px 0 10px 20px}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}#pass-strength-result{background-color:#eee;border-color:#ddd!important;border-style:solid;border-width:1px;margin:5px 0 5px 5px;padding:5px;text-align:center;width:200px;display:none}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}.message{border:1px solid #c00;padding:.5em .7em;margin:5px 0 15px;background-color:#ffebe8}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}
\ No newline at end of file
+html{background:#f1f1f1;margin:0 20px}body{background:#fff;color:#444;font-family:"Open Sans",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}a{color:#0074a2;text-decoration:none}a:hover{color:#2ea2cc}h1{border-bottom:1px solid #dedede;clear:both;color:#666;font-size:24px;margin:30px 0;padding:0 0 7px;font-weight:400}h2{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}dl,ol,ul{padding:5px 22px 5px 5px}a img{border:0}abbr{border:0;font-variant:normal}label{cursor:pointer}#logo{margin:6px 0 14px;border-bottom:none;text-align:center}#logo a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#999;height:84px;font-size:20px;font-weight:400;line-height:1.3em;margin:-130px auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;overflow:hidden;display:block}.step{margin:20px 0 15px}.step,th{text-align:right;padding:0}.language-chooser.wp-core-ui .step .button.button-large{height:36px;vertical-align:middle;font-size:14px}textarea{border:1px solid #dfdfdf;font-family:"Open Sans",sans-serif;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 0 10px 20px;border-bottom:8px solid #fff;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:right;padding:16px 0 10px 20px;width:140px;vertical-align:top}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:3px 5px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07)}input,submit{font-family:"Open Sans",sans-serif}.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:206px}.form-table th p{font-weight:400}.form-table.install-success td{vertical-align:middle;padding:16px 0 10px 20px}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}#pass-strength-result{background-color:#eee;border-color:#ddd!important;border-style:solid;border-width:1px;margin:5px 0 5px 5px;padding:5px;text-align:center;width:200px;display:none}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}.message{border:1px solid #c00;padding:.5em .7em;margin:5px 0 15px;background-color:#ffebe8}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=email],.form-table td input[type=password],.form-table td input[type=text],.form-table td input[type=url],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #ddd;background-color:#fff;color:#333;font-size:16px;font-family:Arial,sans-serif;font-weight:400}.language-chooser p{text-align:left}.screen-reader-input,.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;visibility:hidden;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;margin-top:8px;margin-left:15px;vertical-align:top}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}
\ No newline at end of file
index a2e19a1cc2e28cffe6da0848fa01eb729c08e02f..28c071c311ef8679c09ba07840a9940bf10d049a 100644 (file)
@@ -60,6 +60,11 @@ abbr {
        border: 0;
        font-variant: normal;
 }
        border: 0;
        font-variant: normal;
 }
+
+label {
+       cursor: pointer;
+}
+
 #logo {
        margin: 6px 0 14px 0;
        border-bottom: none;
 #logo {
        margin: 6px 0 14px 0;
        border-bottom: none;
@@ -68,19 +73,19 @@ abbr {
 #logo a {
        background-image: url(../images/w-logo-blue.png?ver=20131202);
        background-image: none, url(../images/wordpress-logo.svg?ver=20131107);
 #logo a {
        background-image: url(../images/w-logo-blue.png?ver=20131202);
        background-image: none, url(../images/wordpress-logo.svg?ver=20131107);
-       -webkit-background-size: 80px 80px;
-       background-size: 80px 80px;
+       -webkit-background-size: 84px;
+       background-size: 84px;
        background-position: center top;
        background-repeat: no-repeat;
        color: #999;
        background-position: center top;
        background-repeat: no-repeat;
        color: #999;
-       height: 80px;
+       height: 84px;
        font-size: 20px;
        font-weight: normal;
        line-height: 1.3em;
        margin: -130px auto 25px;
        padding: 0;
        text-decoration: none;
        font-size: 20px;
        font-weight: normal;
        line-height: 1.3em;
        margin: -130px auto 25px;
        padding: 0;
        text-decoration: none;
-       width: 80px;
+       width: 84px;
        text-indent: -9999px;
        outline: none;
        overflow: hidden;
        text-indent: -9999px;
        outline: none;
        overflow: hidden;
@@ -93,7 +98,9 @@ abbr {
        text-align: left;
        padding: 0;
 }
        text-align: left;
        padding: 0;
 }
-.step .button-large {
+.language-chooser.wp-core-ui .step .button.button-large {
+       height: 36px;
+       vertical-align: middle;
        font-size: 14px;
 }
 textarea {
        font-size: 14px;
 }
 textarea {
@@ -152,6 +159,8 @@ submit {
 }
 
 .form-table input[type=text],
 }
 
 .form-table input[type=text],
+.form-table input[type=email],
+.form-table input[type=url],
 .form-table input[type=password] {
        width: 206px;
 }
 .form-table input[type=password] {
        width: 206px;
 }
@@ -295,6 +304,8 @@ body.rtl,
        }
 
        .form-table td input[type="text"],
        }
 
        .form-table td input[type="text"],
+       .form-table td input[type="email"],
+       .form-table td input[type="url"],
        .form-table td input[type="password"],
        .form-table td select,
        .form-table td textarea,
        .form-table td input[type="password"],
        .form-table td select,
        .form-table td textarea,
@@ -311,3 +322,68 @@ body.rtl,
        }
 
 }
        }
 
 }
+
+body.language-chooser {
+       max-width: 300px;
+}
+
+.language-chooser select {
+       padding: 8px;
+       width: 100%;
+       display: block;
+       border: 1px solid #ddd;
+       background-color: #fff;
+       color: #333;
+       font-size: 16px;
+       font-family: Arial, sans-serif;
+       font-weight: normal;
+}
+
+.language-chooser p {
+       text-align: right;
+}
+
+.screen-reader-input,
+.screen-reader-text {
+       position: absolute;
+       margin: -1px;
+       padding: 0;
+       height: 1px;
+       width: 1px;
+       overflow: hidden;
+       clip: rect(0 0 0 0);
+       border: 0;
+}
+
+.spinner {
+       background: url(../images/spinner.gif) no-repeat;
+       -webkit-background-size: 20px 20px;
+       background-size: 20px 20px;
+       visibility: hidden;
+       opacity: 0.7;
+       filter: alpha(opacity=70);
+       width: 20px;
+       height: 20px;
+       margin: 2px 5px 0;
+}
+
+.step .spinner {
+       display: inline-block;
+       margin-top: 8px;
+       margin-right: 15px;
+       vertical-align: top;
+}
+
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+
+       .spinner {
+               background-image: url(../images/spinner-2x.gif);
+       }
+
+}
index 1a712e8652af1a7e725d1d6c79908406f08ad9b5..4b9b23c11e3d779cb055a14b4864c2df22ca14e8 100644 (file)
@@ -1 +1 @@
-html{background:#f1f1f1;margin:0 20px}body{background:#fff;color:#444;font-family:"Open Sans",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}a{color:#0074a2;text-decoration:none}a:hover{color:#2ea2cc}h1{border-bottom:1px solid #dedede;clear:both;color:#666;font-size:24px;margin:30px 0;padding:0;padding-bottom:7px;font-weight:400}h2{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}dl,ol,ul{padding:5px 5px 5px 22px}a img{border:0}abbr{border:0;font-variant:normal}#logo{margin:6px 0 14px;border-bottom:0;text-align:center}#logo a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:80px 80px;background-size:80px 80px;background-position:center top;background-repeat:no-repeat;color:#999;height:80px;font-size:20px;font-weight:400;line-height:1.3em;margin:-130px auto 25px;padding:0;text-decoration:none;width:80px;text-indent:-9999px;outline:0;overflow:hidden;display:block}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.step .button-large{font-size:14px}textarea{border:1px solid #dfdfdf;font-family:"Open Sans",sans-serif;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 20px 10px 0;border-bottom:8px solid #fff;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:left;padding:16px 20px 10px 0;width:140px;vertical-align:top}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:3px 5px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07)}input,submit{font-family:"Open Sans",sans-serif}.form-table input[type=password],.form-table input[type=text]{width:206px}.form-table th p{font-weight:400}.form-table.install-success td{vertical-align:middle;padding:16px 20px 10px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}#pass-strength-result{background-color:#eee;border-color:#ddd!important;border-style:solid;border-width:1px;margin:5px 5px 5px 0;padding:5px;text-align:center;width:200px;display:none}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}.message{border:1px solid #c00;padding:.5em .7em;margin:5px 0 15px;background-color:#ffebe8}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}
\ No newline at end of file
+html{background:#f1f1f1;margin:0 20px}body{background:#fff;color:#444;font-family:"Open Sans",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}a{color:#0074a2;text-decoration:none}a:hover{color:#2ea2cc}h1{border-bottom:1px solid #dedede;clear:both;color:#666;font-size:24px;margin:30px 0;padding:0 0 7px;font-weight:400}h2{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}dl,ol,ul{padding:5px 5px 5px 22px}a img{border:0}abbr{border:0;font-variant:normal}label{cursor:pointer}#logo{margin:6px 0 14px;border-bottom:none;text-align:center}#logo a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#999;height:84px;font-size:20px;font-weight:400;line-height:1.3em;margin:-130px auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;overflow:hidden;display:block}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.language-chooser.wp-core-ui .step .button.button-large{height:36px;vertical-align:middle;font-size:14px}textarea{border:1px solid #dfdfdf;font-family:"Open Sans",sans-serif;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 20px 10px 0;border-bottom:8px solid #fff;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:left;padding:16px 20px 10px 0;width:140px;vertical-align:top}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:3px 5px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07)}input,submit{font-family:"Open Sans",sans-serif}.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:206px}.form-table th p{font-weight:400}.form-table.install-success td{vertical-align:middle;padding:16px 20px 10px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}#pass-strength-result{background-color:#eee;border-color:#ddd!important;border-style:solid;border-width:1px;margin:5px 5px 5px 0;padding:5px;text-align:center;width:200px;display:none}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}.message{border:1px solid #c00;padding:.5em .7em;margin:5px 0 15px;background-color:#ffebe8}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=email],.form-table td input[type=password],.form-table td input[type=text],.form-table td input[type=url],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #ddd;background-color:#fff;color:#333;font-size:16px;font-family:Arial,sans-serif;font-weight:400}.language-chooser p{text-align:right}.screen-reader-input,.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;visibility:hidden;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;margin-top:8px;margin-right:15px;vertical-align:top}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}
\ No newline at end of file
index 5590f1d6121e7b6682d6dd51a2fd9db1c1453788..3deb3033fa1a717d43e1d65d42197513f645931c 100644 (file)
@@ -75,7 +75,8 @@ body.locale-he-il .press-this a.wp-switch-editor {
 .locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap {
        margin-right: 8em; /* default 5em */
 }
 .locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap {
        margin-right: 8em; /* default 5em */
 }
-.locale-ru-ru.post-php .tagsdiv .newtag {
+.locale-ru-ru.post-php .tagsdiv .newtag,
+.locale-ru-ru.post-new-php .tagsdiv .newtag {
        width: 165px; /* default 180px - 15px */
 }
 .locale-ru-ru.press-this .posting {
        width: 165px; /* default 180px - 15px */
 }
 .locale-ru-ru.press-this .posting {
index 3b056d6ec35eb7924e1f028bd7acb0750b08ee7e..4e405862cde1e560ba8763f284bcbf4546398ec1 100644 (file)
@@ -75,7 +75,8 @@ body.locale-he-il .press-this a.wp-switch-editor {
 .locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap {
        margin-left: 8em; /* default 5em */
 }
 .locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap {
        margin-left: 8em; /* default 5em */
 }
-.locale-ru-ru.post-php .tagsdiv .newtag {
+.locale-ru-ru.post-php .tagsdiv .newtag,
+.locale-ru-ru.post-new-php .tagsdiv .newtag {
        width: 165px; /* default 180px - 15px */
 }
 .locale-ru-ru.press-this .posting {
        width: 165px; /* default 180px - 15px */
 }
 .locale-ru-ru.press-this .posting {
index 6f36c9ebc7b9163b8da13f753ed8942234e8c059..59eede9c80aa6356ee1c42e974b6b3866ba45a18 100644 (file)
@@ -263,6 +263,10 @@ table.fixed {
        width: 10%;
 }
 
        width: 10%;
 }
 
+.fixed .column-posts {
+    width: 74px;
+}
+
 .fixed .column-comment .comment-author {
        display: none;
 }
 .fixed .column-comment .comment-author {
        display: none;
 }
@@ -591,6 +595,11 @@ th.asc:hover span.sorting-indicator {
        padding: 2px 0 0 8px;
 }
 
        padding: 2px 0 0 8px;
 }
 
+.wp-filter .actions {
+       display: inline-block;
+       vertical-align: middle;
+}
+
 .tablenav .delete {
        margin-left: 20px;
 }
 .tablenav .delete {
        margin-left: 20px;
 }
@@ -613,13 +622,16 @@ classes exist in paginate_links() but not seen in list table output. */
        color: #2ea2cc;
 }
 
        color: #2ea2cc;
 }
 
-.view-switch {
+.tablenav .view-switch {
        float: left;
        margin: 5px 8px 0 16px;
 }
 
        float: left;
        margin: 5px 8px 0 16px;
 }
 
-.view-switch img {
-       display: none;
+.wp-filter .view-switch {
+       display: inline-block;
+       vertical-align: middle;
+       padding: 14px 0;
+       margin: 0 0 0 20px;
 }
 
 .view-switch a {
 }
 
 .view-switch a {
@@ -634,7 +646,6 @@ classes exist in paginate_links() but not seen in list table output. */
 
 .view-switch > a:before {
        color: #bbb;
 
 .view-switch > a:before {
        color: #bbb;
-       content: '\f163';
        display: inline-block;
        float: right;
        font: normal 20px/1 'dashicons';
        display: inline-block;
        float: right;
        font: normal 20px/1 'dashicons';
@@ -645,6 +656,10 @@ classes exist in paginate_links() but not seen in list table output. */
        -moz-osx-font-smoothing: grayscale;
 }
 
        -moz-osx-font-smoothing: grayscale;
 }
 
+.view-switch > .view-list:before {
+       content: '\f163';
+}
+
 .view-switch a:hover:before {
        color: #727272;
 }
 .view-switch a:hover:before {
        color: #727272;
 }
@@ -653,11 +668,18 @@ classes exist in paginate_links() but not seen in list table output. */
        color: #0074a2;
 }
 
        color: #0074a2;
 }
 
-.view-switch > a + a:before {
+.view-switch > a + a {
        margin-right: 5px;
        margin-right: 5px;
+}
+
+.view-switch > .view-excerpt:before {
        content: '\f164';
 }
 
        content: '\f164';
 }
 
+.view-switch > .view-grid:before {
+       content: '\f509';
+}
+
 .filter {
        float: right;
        margin: -5px 10px 0 0;
 .filter {
        float: right;
        margin: -5px 10px 0 0;
@@ -671,6 +693,10 @@ classes exist in paginate_links() but not seen in list table output. */
        width: 4em;
 }
 
        width: 4em;
 }
 
+#posts-filter .wp-filter {
+       margin-bottom: 0;
+}
+
 #posts-filter fieldset {
        float: right;
        margin: 0 0 1em 1.5ex;
 #posts-filter fieldset {
        float: right;
        margin: 0 0 1em 1.5ex;
@@ -1201,10 +1227,214 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
        background-color: #fcf3ef;
 }
 
        background-color: #fcf3ef;
 }
 
+.plugin-install-php h3 {
+       clear: both;
+}
+
 .plugin-install-php h4 {
        margin: 2.5em 0 8px;
 }
 
 .plugin-install-php h4 {
        margin: 2.5em 0 8px;
 }
 
+.plugin-install-php .wp-filter {
+       margin-bottom: 0;
+}
+
+/* Plugin card table view */
+.plugin-group {
+       overflow: hidden; /* clearfix */
+       margin-top: 1.5em;
+}
+
+.plugin-group h3 {
+       margin-top: 0;
+}
+
+.plugin-card {
+       float: right;
+       margin: 0 8px 16px;
+       width: 48.5%;
+       width: -webkit-calc( 50% - 8px );
+       width: calc( 50% - 8px );
+       background-color: #fff;
+       border: 1px solid #dedede;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
+.plugin-card:nth-child(odd) {
+       clear: both;
+       margin-right: 0;
+}
+
+.plugin-card:nth-child(even) {
+       margin-left: 0;
+}
+
+@media screen and ( min-width: 1600px ) {
+       .plugin-card {
+               width: 30%;
+               width: -webkit-calc( 33.1% - 8px );
+               width: calc( 33.1% - 8px );
+       }
+
+       .plugin-card:nth-child(odd) {
+               clear: none;
+               margin-right: 8px;
+       }
+
+       .plugin-card:nth-child(even) {
+               margin-left: 8px;
+       }
+
+       .plugin-card:nth-child(3n+1) {
+               clear: both;
+               margin-right: 0;
+       }
+
+       .plugin-card:nth-child(3n) {
+               margin-left: 0;
+       }
+}
+
+@media screen and ( max-width: 782px ) {
+       .plugin-card {
+               margin-right: 0;
+               margin-left: 0;
+               width: 100%;
+       }
+}
+
+.plugin-card-top {
+       position: relative;
+       padding: 20px 20px 10px;
+       min-height: 135px;
+}
+
+div.action-links,
+.plugin-action-buttons {
+       margin: 0; /* Override existing margins */
+}
+
+.plugin-card h4 {
+       margin: 0 0 12px;
+       font-size: 18px;
+       line-height: 1.3;
+}
+
+.plugin-card .name,
+.plugin-card .desc {
+       margin-right: 148px; /* icon + margin */
+       margin-left: 120px; /* action links */
+}
+
+.plugin-card .action-links {
+       position: absolute;
+       top: 20px;
+       left: 20px;
+       width: 120px;
+}
+
+.plugin-action-buttons {
+       clear: left;
+       float: left;
+       margin-right: 2em;
+       margin-bottom: 1em;
+       text-align: left;
+}
+
+.plugin-action-buttons li {
+       margin-bottom: 10px;
+}
+
+.plugin-card-bottom {
+       clear: both;
+       padding: 12px 20px;
+       background-color: #fafafa;
+       border-top: 1px solid #dedede;
+       overflow: hidden;
+}
+
+.plugin-card-bottom .star-rating {
+       display: inline;
+}
+
+.plugin-card .column-rating {
+       line-height: 23px;
+}
+
+.plugin-card .column-rating,
+.plugin-card .column-updated {
+       margin-bottom: 4px;
+}
+
+.plugin-card .column-rating,
+.plugin-card .column-downloaded {
+       float: right;
+       clear: right;
+       max-width: 180px;
+}
+
+.plugin-card .column-updated,
+.plugin-card .column-compatibility {
+       text-align: left;
+       float: left;
+       clear: left;
+       width: 65%;
+       width: -webkit-calc( 100% - 180px );
+       width: calc( 100% - 180px );
+}
+
+.plugin-card .column-compatibility span:before {
+       font: normal 20px/.5 'dashicons';
+       speak: none;
+       display: inline-block;
+       padding: 0;
+       top: 4px;
+       right: -2px;
+       position: relative;
+       vertical-align: top;
+       -webkit-font-smoothing: antialiased;
+       -moz-osx-font-smoothing: grayscale;
+       text-decoration: none !important;
+       color: #444;
+}
+
+.plugin-card .compatibility-incompatible:before {
+       content: '\f158';
+}
+
+.plugin-card .compatibility-compatible:before {
+       content: '\f147';
+}
+
+.plugin-card .compatibility-untested strong {
+       font-weight: normal;
+}
+
+.plugin-icon {
+       position: absolute;
+       top: 20px;
+       right: 20px;
+       width: 128px;
+       height: 128px;
+       margin: 0 0 20px 20px;
+}
+
+.plugin-icon img {
+       width: 128px;
+       height: 128px;
+}
+
+.no-plugin-results {
+       color: #999;
+       font-size: 18px;
+       font-style: normal;
+       margin: 0;
+       padding: 100px 0 0;
+       text-align: center;
+}
+
 /* ms */
 /* Background Color for Site Status */
 .wp-list-table .site-deleted {
 /* ms */
 /* Background Color for Site Status */
 .wp-list-table .site-deleted {
@@ -1223,9 +1453,38 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
 /* =Media Queries
 -------------------------------------------------------------- */
 
 /* =Media Queries
 -------------------------------------------------------------- */
 
-/**
- * HiDPI Displays
- */
+@media screen and ( max-width: 1100px ) and ( min-width: 782px ), ( max-width: 480px ) {
+       .plugin-card .action-links {
+               position: static;
+               margin-right: 148px;
+               width: auto;
+       }
+
+       .plugin-action-buttons {
+               float: none;
+               margin: 1em 0 0;
+               text-align: right;
+       }
+
+       .plugin-action-buttons li {
+               display: inline-block;
+               vertical-align: middle;
+       }
+
+       .plugin-action-buttons li .button {
+               margin-left: 20px;
+       }
+
+       .plugin-card .name,
+       .plugin-card .desc {
+               margin-left: 0;
+       }
+
+       .plugin-card .desc p:first-of-type {
+               margin-top: 0;
+       }
+}
+
 @media screen and ( max-width: 782px ) {
        /* WP List Table Options & Filters */
        .tablenav {
 @media screen and ( max-width: 782px ) {
        /* WP List Table Options & Filters */
        .tablenav {
@@ -1233,7 +1492,7 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
        }
 
        .tablenav.top {
        }
 
        .tablenav.top {
-               margin: 0;
+               margin: 20px 0 5px 0;
        }
 
        .tablenav.bottom {
        }
 
        .tablenav.bottom {
@@ -1249,7 +1508,8 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
                display: block;
        }
 
                display: block;
        }
 
-       .tablenav.top .actions, .view-switch {
+       .tablenav.top .actions,
+       .tablenav .view-switch {
                display: none;
        }
 
                display: none;
        }
 
@@ -1416,7 +1676,7 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
 
        /* Taxonomies */
        .tags .column-posts {
 
        /* Taxonomies */
        .tags .column-posts {
-               width: 50px;
+               width: 74px;
        }
 
        .tags .column-slug {
        }
 
        .tags .column-slug {
index 0b4115d1dea3096f7dbf381b36f011ab4b599e40..a2fc7bc6ae64e8e6c13a67e6599f67575b470e2c 100644 (file)
@@ -263,6 +263,10 @@ table.fixed {
        width: 10%;
 }
 
        width: 10%;
 }
 
+.fixed .column-posts {
+    width: 74px;
+}
+
 .fixed .column-comment .comment-author {
        display: none;
 }
 .fixed .column-comment .comment-author {
        display: none;
 }
@@ -591,6 +595,11 @@ th.asc:hover span.sorting-indicator {
        padding: 2px 8px 0 0;
 }
 
        padding: 2px 8px 0 0;
 }
 
+.wp-filter .actions {
+       display: inline-block;
+       vertical-align: middle;
+}
+
 .tablenav .delete {
        margin-right: 20px;
 }
 .tablenav .delete {
        margin-right: 20px;
 }
@@ -613,13 +622,16 @@ classes exist in paginate_links() but not seen in list table output. */
        color: #2ea2cc;
 }
 
        color: #2ea2cc;
 }
 
-.view-switch {
+.tablenav .view-switch {
        float: right;
        margin: 5px 16px 0 8px;
 }
 
        float: right;
        margin: 5px 16px 0 8px;
 }
 
-.view-switch img {
-       display: none;
+.wp-filter .view-switch {
+       display: inline-block;
+       vertical-align: middle;
+       padding: 14px 0;
+       margin: 0 20px 0 0;
 }
 
 .view-switch a {
 }
 
 .view-switch a {
@@ -634,7 +646,6 @@ classes exist in paginate_links() but not seen in list table output. */
 
 .view-switch > a:before {
        color: #bbb;
 
 .view-switch > a:before {
        color: #bbb;
-       content: '\f163';
        display: inline-block;
        float: left;
        font: normal 20px/1 'dashicons';
        display: inline-block;
        float: left;
        font: normal 20px/1 'dashicons';
@@ -645,6 +656,10 @@ classes exist in paginate_links() but not seen in list table output. */
        -moz-osx-font-smoothing: grayscale;
 }
 
        -moz-osx-font-smoothing: grayscale;
 }
 
+.view-switch > .view-list:before {
+       content: '\f163';
+}
+
 .view-switch a:hover:before {
        color: #727272;
 }
 .view-switch a:hover:before {
        color: #727272;
 }
@@ -653,11 +668,18 @@ classes exist in paginate_links() but not seen in list table output. */
        color: #0074a2;
 }
 
        color: #0074a2;
 }
 
-.view-switch > a + a:before {
+.view-switch > a + a {
        margin-left: 5px;
        margin-left: 5px;
+}
+
+.view-switch > .view-excerpt:before {
        content: '\f164';
 }
 
        content: '\f164';
 }
 
+.view-switch > .view-grid:before {
+       content: '\f509';
+}
+
 .filter {
        float: left;
        margin: -5px 0 0 10px;
 .filter {
        float: left;
        margin: -5px 0 0 10px;
@@ -671,6 +693,10 @@ classes exist in paginate_links() but not seen in list table output. */
        width: 4em;
 }
 
        width: 4em;
 }
 
+#posts-filter .wp-filter {
+       margin-bottom: 0;
+}
+
 #posts-filter fieldset {
        float: left;
        margin: 0 1.5ex 1em 0;
 #posts-filter fieldset {
        float: left;
        margin: 0 1.5ex 1em 0;
@@ -1201,10 +1227,214 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
        background-color: #fcf3ef;
 }
 
        background-color: #fcf3ef;
 }
 
+.plugin-install-php h3 {
+       clear: both;
+}
+
 .plugin-install-php h4 {
        margin: 2.5em 0 8px;
 }
 
 .plugin-install-php h4 {
        margin: 2.5em 0 8px;
 }
 
+.plugin-install-php .wp-filter {
+       margin-bottom: 0;
+}
+
+/* Plugin card table view */
+.plugin-group {
+       overflow: hidden; /* clearfix */
+       margin-top: 1.5em;
+}
+
+.plugin-group h3 {
+       margin-top: 0;
+}
+
+.plugin-card {
+       float: left;
+       margin: 0 8px 16px;
+       width: 48.5%;
+       width: -webkit-calc( 50% - 8px );
+       width: calc( 50% - 8px );
+       background-color: #fff;
+       border: 1px solid #dedede;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
+.plugin-card:nth-child(odd) {
+       clear: both;
+       margin-left: 0;
+}
+
+.plugin-card:nth-child(even) {
+       margin-right: 0;
+}
+
+@media screen and ( min-width: 1600px ) {
+       .plugin-card {
+               width: 30%;
+               width: -webkit-calc( 33.1% - 8px );
+               width: calc( 33.1% - 8px );
+       }
+
+       .plugin-card:nth-child(odd) {
+               clear: none;
+               margin-left: 8px;
+       }
+
+       .plugin-card:nth-child(even) {
+               margin-right: 8px;
+       }
+
+       .plugin-card:nth-child(3n+1) {
+               clear: both;
+               margin-left: 0;
+       }
+
+       .plugin-card:nth-child(3n) {
+               margin-right: 0;
+       }
+}
+
+@media screen and ( max-width: 782px ) {
+       .plugin-card {
+               margin-left: 0;
+               margin-right: 0;
+               width: 100%;
+       }
+}
+
+.plugin-card-top {
+       position: relative;
+       padding: 20px 20px 10px;
+       min-height: 135px;
+}
+
+div.action-links,
+.plugin-action-buttons {
+       margin: 0; /* Override existing margins */
+}
+
+.plugin-card h4 {
+       margin: 0 0 12px;
+       font-size: 18px;
+       line-height: 1.3;
+}
+
+.plugin-card .name,
+.plugin-card .desc {
+       margin-left: 148px; /* icon + margin */
+       margin-right: 120px; /* action links */
+}
+
+.plugin-card .action-links {
+       position: absolute;
+       top: 20px;
+       right: 20px;
+       width: 120px;
+}
+
+.plugin-action-buttons {
+       clear: right;
+       float: right;
+       margin-left: 2em;
+       margin-bottom: 1em;
+       text-align: right;
+}
+
+.plugin-action-buttons li {
+       margin-bottom: 10px;
+}
+
+.plugin-card-bottom {
+       clear: both;
+       padding: 12px 20px;
+       background-color: #fafafa;
+       border-top: 1px solid #dedede;
+       overflow: hidden;
+}
+
+.plugin-card-bottom .star-rating {
+       display: inline;
+}
+
+.plugin-card .column-rating {
+       line-height: 23px;
+}
+
+.plugin-card .column-rating,
+.plugin-card .column-updated {
+       margin-bottom: 4px;
+}
+
+.plugin-card .column-rating,
+.plugin-card .column-downloaded {
+       float: left;
+       clear: left;
+       max-width: 180px;
+}
+
+.plugin-card .column-updated,
+.plugin-card .column-compatibility {
+       text-align: right;
+       float: right;
+       clear: right;
+       width: 65%;
+       width: -webkit-calc( 100% - 180px );
+       width: calc( 100% - 180px );
+}
+
+.plugin-card .column-compatibility span:before {
+       font: normal 20px/.5 'dashicons';
+       speak: none;
+       display: inline-block;
+       padding: 0;
+       top: 4px;
+       left: -2px;
+       position: relative;
+       vertical-align: top;
+       -webkit-font-smoothing: antialiased;
+       -moz-osx-font-smoothing: grayscale;
+       text-decoration: none !important;
+       color: #444;
+}
+
+.plugin-card .compatibility-incompatible:before {
+       content: '\f158';
+}
+
+.plugin-card .compatibility-compatible:before {
+       content: '\f147';
+}
+
+.plugin-card .compatibility-untested strong {
+       font-weight: normal;
+}
+
+.plugin-icon {
+       position: absolute;
+       top: 20px;
+       left: 20px;
+       width: 128px;
+       height: 128px;
+       margin: 0 20px 20px 0;
+}
+
+.plugin-icon img {
+       width: 128px;
+       height: 128px;
+}
+
+.no-plugin-results {
+       color: #999;
+       font-size: 18px;
+       font-style: normal;
+       margin: 0;
+       padding: 100px 0 0;
+       text-align: center;
+}
+
 /* ms */
 /* Background Color for Site Status */
 .wp-list-table .site-deleted {
 /* ms */
 /* Background Color for Site Status */
 .wp-list-table .site-deleted {
@@ -1223,9 +1453,38 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
 /* =Media Queries
 -------------------------------------------------------------- */
 
 /* =Media Queries
 -------------------------------------------------------------- */
 
-/**
- * HiDPI Displays
- */
+@media screen and ( max-width: 1100px ) and ( min-width: 782px ), ( max-width: 480px ) {
+       .plugin-card .action-links {
+               position: static;
+               margin-left: 148px;
+               width: auto;
+       }
+
+       .plugin-action-buttons {
+               float: none;
+               margin: 1em 0 0;
+               text-align: left;
+       }
+
+       .plugin-action-buttons li {
+               display: inline-block;
+               vertical-align: middle;
+       }
+
+       .plugin-action-buttons li .button {
+               margin-right: 20px;
+       }
+
+       .plugin-card .name,
+       .plugin-card .desc {
+               margin-right: 0;
+       }
+
+       .plugin-card .desc p:first-of-type {
+               margin-top: 0;
+       }
+}
+
 @media screen and ( max-width: 782px ) {
        /* WP List Table Options & Filters */
        .tablenav {
 @media screen and ( max-width: 782px ) {
        /* WP List Table Options & Filters */
        .tablenav {
@@ -1233,7 +1492,7 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
        }
 
        .tablenav.top {
        }
 
        .tablenav.top {
-               margin: 0;
+               margin: 20px 0 5px 0;
        }
 
        .tablenav.bottom {
        }
 
        .tablenav.bottom {
@@ -1249,7 +1508,8 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
                display: block;
        }
 
                display: block;
        }
 
-       .tablenav.top .actions, .view-switch {
+       .tablenav.top .actions,
+       .tablenav .view-switch {
                display: none;
        }
 
                display: none;
        }
 
@@ -1416,7 +1676,7 @@ tr.active + tr.plugin-update-tr .plugin-update .update-message {
 
        /* Taxonomies */
        .tags .column-posts {
 
        /* Taxonomies */
        .tags .column-posts {
-               width: 50px;
+               width: 74px;
        }
 
        .tags .column-slug {
        }
 
        .tags .column-slug {
index a3c7bed9878f4d0c31f625a6780a3507a61ee9f9..787b81eddfb660e09dbe76238c9e0624f458fa6e 100644 (file)
@@ -1,5 +1,5 @@
-@import url(forms.css);
-@import url(l10n.css);
+@import url(forms-rtl.css);
+@import url(l10n-rtl.css);
 
 html,
 body {
 
 html,
 body {
@@ -126,19 +126,19 @@ p {
 .login h1 a {
        background-image: url(../images/w-logo-blue.png?ver=20131202);
        background-image: none, url(../images/wordpress-logo.svg?ver=20131107);
 .login h1 a {
        background-image: url(../images/w-logo-blue.png?ver=20131202);
        background-image: none, url(../images/wordpress-logo.svg?ver=20131107);
-       -webkit-background-size: 80px 80px;
-       background-size: 80px 80px;
+       -webkit-background-size: 84px;
+       background-size: 84px;
        background-position: center top;
        background-repeat: no-repeat;
        color: #999;
        background-position: center top;
        background-repeat: no-repeat;
        color: #999;
-       height: 80px;
+       height: 84px;
        font-size: 20px;
        font-weight: normal;
        line-height: 1.3em;
        margin: 0 auto 25px;
        padding: 0;
        text-decoration: none;
        font-size: 20px;
        font-weight: normal;
        line-height: 1.3em;
        margin: 0 auto 25px;
        padding: 0;
        text-decoration: none;
-       width: 80px;
+       width: 84px;
        text-indent: -9999px;
        outline: none;
        overflow: hidden;
        text-indent: -9999px;
        outline: none;
        overflow: hidden;
@@ -186,7 +186,6 @@ p {
 .login form .input,
 .login input[type="text"] {
        font-size: 24px;
 .login form .input,
 .login input[type="text"] {
        font-size: 24px;
-       line-height: 1;
        width: 100%;
        padding: 3px;
        margin: 2px 0 16px 6px;
        width: 100%;
        padding: 3px;
        margin: 2px 0 16px 6px;
@@ -267,4 +266,4 @@ body.interim-login {
                font: normal 21px/1 'dashicons';
                margin: -3px -4px 0 0;
        }
                font: normal 21px/1 'dashicons';
                margin: -3px -4px 0 0;
        }
-}
\ No newline at end of file
+}
index 52197f321fd9e2b4c264b40a774971cc989d1540..4b8b31f12f7f4ba47f654f41cbb98e97d9dc6959 100644 (file)
@@ -1 +1 @@
-input,input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=url],textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=email],input[type=url]{direction:ltr}input[type=checkbox],input[type=radio]{border:1px solid #bbb;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#888}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#2ea2cc}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=checkbox]:checked:before,input[type=radio]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:'\f147';margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:'\2022';text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}input.readonly,textarea.readonly{background-color:#ddd}@-moz-document url-prefix(){.form-table input.tog,input[type=checkbox],input[type=radio]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;padding:3px 5px;line-height:15px;-webkit-border-radius:0;border-radius:0}textarea{overflow:auto;padding:2px 6px;line-height:1.4}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=url],select,textarea{outline:0}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}select[disabled]{color:#7f7f7f}input[type=checkbox]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.form-input-tip{color:#666}input.disabled,input:disabled,textarea.disabled,textarea:disabled{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);border-color:rgba(222,222,222,.75);background:rgba(255,255,255,.5);color:rgba(51,51,51,.5)}input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px;vertical-align:middle}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:0}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:0;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:0;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}#adduser .form-field input,input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}#upload-form label{color:#777}#your-profile label+a,fieldset label,label{vertical-align:middle}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:'\f173';display:inline-block;font:400 20px/1 dashicons;speak:none;left:-1px;padding:0 5px 0 0;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass-strength-result{background-color:#eee;border:1px solid #ddd;float:left;margin:13px 5px 5px 1px;padding:3px 5px;text-align:center;width:200px;display:none}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c}.indicator-hint{padding-top:8px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}#search-plugins input[name="s"],.search-box input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}input[type=text].ui-autocomplete-loading{background:transparent url(../images/loading.gif) no-repeat right center;visibility:visible}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete-input.open{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:1px solid #aaa;background-color:#efefef}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:left}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px;color:#444}.ui-autocomplete li a.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th,.form-wrap label{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#222;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:0}.color-option{cursor:pointer}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.pressthis{margin:20px 0}.pressthis a,.pressthis a:active,.pressthis a:focus,.pressthis a:hover{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis a span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis a span:before{color:#777;font:400 20px/1 dashicons;content:'\f157';position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}#local-time,#utc-time{padding-left:25px;font-style:italic}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input.code{padding-bottom:5px;padding-top:10px}.widefat th input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat th input[type=checkbox]{margin-bottom:8px}.widefat th input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 Dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table input[type=text].small-text,input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{padding:4px 0 0;line-height:1.4em}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{padding-top:8px;padding-left:0}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#utc-time{margin-top:10px}#local-time,#utc-time{display:block;float:none;padding:0;line-height:2}}@media only screen and (max-width:768px){.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media screen and (max-width:600px){.color-option{width:49%}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:700}.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de .inline-edit-row fieldset label span.title{width:7em}.locale-de-de .inline-edit-row fieldset label span.input-text-wrap{margin-left:7em}.locale-de-de #customize-header-actions .button{padding:0 5px 1px}.locale-de-de #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru .inline-edit-row fieldset label span.title{width:8em}.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}body,html{height:100%;margin:0;padding:0}html{background:#f1f1f1}body{background:#f1f1f1;min-width:0;color:#444;font-family:"Open Sans",sans-serif;font-size:13px;line-height:1.4em}a{color:#0074a2;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#2ea2cc}a:focus{color:#124964}a:active,a:focus{outline:thin dotted}p{line-height:1.5}.login .message{border-right:4px solid #7ad03a;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-right:4px solid #dd3d36;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#loginform p.submit,.login-action-lostpassword p.submit{border:0;margin:-10px 0 20px}.login *{margin:0;padding:0}.login form{margin-top:20px;margin-right:0;padding:26px 24px 46px;font-weight:400;overflow:hidden;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:right;margin-bottom:0}.login .button-primary{float:left}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#777;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:80px 80px;background-size:80px 80px;background-position:center top;background-repeat:no-repeat;color:#999;height:80px;font-size:20px;font-weight:400;line-height:1.3em;margin:0 auto 25px;padding:0;text-decoration:none;width:80px;text-indent:-9999px;outline:0;overflow:hidden;display:block}#login{width:320px;padding:8% 0 0;margin:auto}#login_error,.login .message{margin-right:0;padding:12px}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#999}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#2ea2cc}.login form .input,.login input[type=text]{font-size:24px;line-height:1;width:100%;padding:3px;margin:2px 0 16px 6px}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login #pass-strength-result{width:250px;font-weight:600;margin:12px 0 6px;padding:6px 5px;text-align:center}.mobile #login{padding:20px 0}.mobile #login .message,.mobile #login form,.mobile #login_error{margin-right:0}.mobile #login #backtoblog,.mobile #login #nav{margin-right:8px}.mobile #login h1 a{width:auto}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px -4px 0 0}}
\ No newline at end of file
+input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=radio],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;outline:0;-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=email],input[type=url]{direction:ltr}input[type=checkbox],input[type=radio]{border:1px solid #bbb;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#888}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#2ea2cc}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-left:4px;line-height:10px}input[type=checkbox]:checked:before,input[type=radio]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:'\f147';margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:'\2022';text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=checkbox],input[type=radio]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{overflow:auto;padding:2px 6px;line-height:1.4}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none}input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px;vertical-align:middle}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:right;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}#adduser .form-field input,input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}#upload-form label{color:#777}#your-profile label+a,fieldset label,label{vertical-align:middle}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:'\f173';display:inline-block;font:400 20px/1 dashicons;speak:none;right:-1px;padding:0 0 0 5px;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass-strength-result{background-color:#eee;border:1px solid #ddd;float:right;margin:13px 1px 5px 5px;padding:3px 5px;text-align:center;width:200px;display:none}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c}.indicator-hint{padding-top:8px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}input[type=text].ui-autocomplete-loading{background:url(../images/loading.gif) no-repeat left center;visibility:visible}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete-input.open{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:1px solid #aaa;background-color:#efefef}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:right}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px;color:#444}.ui-autocomplete li a.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th,.form-wrap label{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#222;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.color-option{cursor:pointer}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.pressthis{margin:20px 0}.pressthis a,.pressthis a:active,.pressthis a:focus,.pressthis a:hover{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis a span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis a span:before{color:#777;font:400 20px/1 dashicons;content:'\f157';position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}#local-time,#utc-time{padding-right:25px;font-style:italic}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input.code{padding-bottom:5px;padding-top:10px}.widefat th input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat th input[type=checkbox]{margin-bottom:8px}.widefat th input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 Dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{padding:4px 0 0;line-height:1.4em}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{padding-top:8px;padding-right:0}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#utc-time{margin-top:10px}#local-time,#utc-time{display:block;float:none;padding:0;line-height:2}}@media only screen and (max-width:768px){.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media screen and (max-width:600px){.color-option{width:49%}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:700}.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de .inline-edit-row fieldset label span.title{width:7em}.locale-de-de .inline-edit-row fieldset label span.input-text-wrap{margin-right:7em}.locale-de-de #customize-header-actions .button{padding:0 5px 1px}.locale-de-de #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru .inline-edit-row fieldset label span.title{width:8em}.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-left:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}body,html{height:100%;margin:0;padding:0}html{background:#f1f1f1}body{background:#f1f1f1;min-width:0;color:#444;font-family:"Open Sans",sans-serif;font-size:13px;line-height:1.4em}a{color:#0074a2;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#2ea2cc}a:focus{color:#124964}a:active,a:focus{outline:dotted thin}p{line-height:1.5}.login .message{border-right:4px solid #7ad03a;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-right:4px solid #dd3d36;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login form{margin-top:20px;margin-right:0;padding:26px 24px 46px;font-weight:400;overflow:hidden;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:right;margin-bottom:0}.login .button-primary{float:left}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#777;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#999;height:84px;font-size:20px;font-weight:400;line-height:1.3em;margin:0 auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;overflow:hidden;display:block}#login{width:320px;padding:8% 0 0;margin:auto}#login_error,.login .message{margin-right:0;padding:12px}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#999}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#2ea2cc}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 0 16px 6px}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login #pass-strength-result{width:250px;font-weight:600;margin:12px 0 6px;padding:6px 5px;text-align:center}.mobile #login{padding:20px 0}.mobile #login .message,.mobile #login form,.mobile #login_error{margin-right:0}.mobile #login #backtoblog,.mobile #login #nav{margin-right:8px}.mobile #login h1 a{width:auto}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px -4px 0 0}}
\ No newline at end of file
index 679e4e7f9f35a20f125ab00db06d9076a5068df5..02ee1d87e955752670ca4f92f968492d13e541ad 100644 (file)
@@ -126,19 +126,19 @@ p {
 .login h1 a {
        background-image: url(../images/w-logo-blue.png?ver=20131202);
        background-image: none, url(../images/wordpress-logo.svg?ver=20131107);
 .login h1 a {
        background-image: url(../images/w-logo-blue.png?ver=20131202);
        background-image: none, url(../images/wordpress-logo.svg?ver=20131107);
-       -webkit-background-size: 80px 80px;
-       background-size: 80px 80px;
+       -webkit-background-size: 84px;
+       background-size: 84px;
        background-position: center top;
        background-repeat: no-repeat;
        color: #999;
        background-position: center top;
        background-repeat: no-repeat;
        color: #999;
-       height: 80px;
+       height: 84px;
        font-size: 20px;
        font-weight: normal;
        line-height: 1.3em;
        margin: 0 auto 25px;
        padding: 0;
        text-decoration: none;
        font-size: 20px;
        font-weight: normal;
        line-height: 1.3em;
        margin: 0 auto 25px;
        padding: 0;
        text-decoration: none;
-       width: 80px;
+       width: 84px;
        text-indent: -9999px;
        outline: none;
        overflow: hidden;
        text-indent: -9999px;
        outline: none;
        overflow: hidden;
@@ -186,7 +186,6 @@ p {
 .login form .input,
 .login input[type="text"] {
        font-size: 24px;
 .login form .input,
 .login input[type="text"] {
        font-size: 24px;
-       line-height: 1;
        width: 100%;
        padding: 3px;
        margin: 2px 6px 16px 0;
        width: 100%;
        padding: 3px;
        margin: 2px 6px 16px 0;
@@ -267,4 +266,4 @@ body.interim-login {
                font: normal 21px/1 'dashicons';
                margin: -3px 0 0 -4px;
        }
                font: normal 21px/1 'dashicons';
                margin: -3px 0 0 -4px;
        }
-}
\ No newline at end of file
+}
index 86722df55ef412543ed1387fd5a0dc85f276263f..10df780ab3074874f025a5b33f5ecac736ff9588 100644 (file)
@@ -1 +1 @@
-input,input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=url],textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=email],input[type=url]{direction:ltr}input[type=checkbox],input[type=radio]{border:1px solid #bbb;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#888}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#2ea2cc}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=checkbox]:checked:before,input[type=radio]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:'\f147';margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:'\2022';text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}input.readonly,textarea.readonly{background-color:#ddd}@-moz-document url-prefix(){.form-table input.tog,input[type=checkbox],input[type=radio]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;padding:3px 5px;line-height:15px;-webkit-border-radius:0;border-radius:0}textarea{overflow:auto;padding:2px 6px;line-height:1.4}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=url],select,textarea{outline:0}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}select[disabled]{color:#7f7f7f}input[type=checkbox]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.form-input-tip{color:#666}input.disabled,input:disabled,textarea.disabled,textarea:disabled{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);border-color:rgba(222,222,222,.75);background:rgba(255,255,255,.5);color:rgba(51,51,51,.5)}input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px;vertical-align:middle}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:0}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:0;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:0;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}#adduser .form-field input,input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}#upload-form label{color:#777}#your-profile label+a,fieldset label,label{vertical-align:middle}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:'\f173';display:inline-block;font:400 20px/1 dashicons;speak:none;left:-1px;padding:0 5px 0 0;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass-strength-result{background-color:#eee;border:1px solid #ddd;float:left;margin:13px 5px 5px 1px;padding:3px 5px;text-align:center;width:200px;display:none}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c}.indicator-hint{padding-top:8px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}#search-plugins input[name="s"],.search-box input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}input[type=text].ui-autocomplete-loading{background:transparent url(../images/loading.gif) no-repeat right center;visibility:visible}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete-input.open{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:1px solid #aaa;background-color:#efefef}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:left}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px;color:#444}.ui-autocomplete li a.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th,.form-wrap label{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#222;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:0}.color-option{cursor:pointer}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.pressthis{margin:20px 0}.pressthis a,.pressthis a:active,.pressthis a:focus,.pressthis a:hover{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis a span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis a span:before{color:#777;font:400 20px/1 dashicons;content:'\f157';position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}#local-time,#utc-time{padding-left:25px;font-style:italic}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input.code{padding-bottom:5px;padding-top:10px}.widefat th input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat th input[type=checkbox]{margin-bottom:8px}.widefat th input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 Dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table input[type=text].small-text,input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{padding:4px 0 0;line-height:1.4em}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{padding-top:8px;padding-left:0}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#utc-time{margin-top:10px}#local-time,#utc-time{display:block;float:none;padding:0;line-height:2}}@media only screen and (max-width:768px){.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media screen and (max-width:600px){.color-option{width:49%}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:700}.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de .inline-edit-row fieldset label span.title{width:7em}.locale-de-de .inline-edit-row fieldset label span.input-text-wrap{margin-left:7em}.locale-de-de #customize-header-actions .button{padding:0 5px 1px}.locale-de-de #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru .inline-edit-row fieldset label span.title{width:8em}.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}body,html{height:100%;margin:0;padding:0}html{background:#f1f1f1}body{background:#f1f1f1;min-width:0;color:#444;font-family:"Open Sans",sans-serif;font-size:13px;line-height:1.4em}a{color:#0074a2;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#2ea2cc}a:focus{color:#124964}a:active,a:focus{outline:thin dotted}p{line-height:1.5}.login .message{border-left:4px solid #7ad03a;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-left:4px solid #dd3d36;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#loginform p.submit,.login-action-lostpassword p.submit{border:0;margin:-10px 0 20px}.login *{margin:0;padding:0}.login form{margin-top:20px;margin-left:0;padding:26px 24px 46px;font-weight:400;overflow:hidden;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:left;margin-bottom:0}.login .button-primary{float:right}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#777;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:80px 80px;background-size:80px 80px;background-position:center top;background-repeat:no-repeat;color:#999;height:80px;font-size:20px;font-weight:400;line-height:1.3em;margin:0 auto 25px;padding:0;text-decoration:none;width:80px;text-indent:-9999px;outline:0;overflow:hidden;display:block}#login{width:320px;padding:8% 0 0;margin:auto}#login_error,.login .message{margin-left:0;padding:12px}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#999}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#2ea2cc}.login form .input,.login input[type=text]{font-size:24px;line-height:1;width:100%;padding:3px;margin:2px 6px 16px 0}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login #pass-strength-result{width:250px;font-weight:600;margin:12px 0 6px;padding:6px 5px;text-align:center}.mobile #login{padding:20px 0}.mobile #login .message,.mobile #login form,.mobile #login_error{margin-left:0}.mobile #login #backtoblog,.mobile #login #nav{margin-left:8px}.mobile #login h1 a{width:auto}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px 0 0 -4px}}
\ No newline at end of file
+input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=radio],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;outline:0;-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=email],input[type=url]{direction:ltr}input[type=checkbox],input[type=radio]{border:1px solid #bbb;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#888}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#2ea2cc}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=checkbox]:checked:before,input[type=radio]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:'\f147';margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:'\2022';text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=checkbox],input[type=radio]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{overflow:auto;padding:2px 6px;line-height:1.4}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none}input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px;vertical-align:middle}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}#adduser .form-field input,input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}#upload-form label{color:#777}#your-profile label+a,fieldset label,label{vertical-align:middle}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:'\f173';display:inline-block;font:400 20px/1 dashicons;speak:none;left:-1px;padding:0 5px 0 0;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass-strength-result{background-color:#eee;border:1px solid #ddd;float:left;margin:13px 5px 5px 1px;padding:3px 5px;text-align:center;width:200px;display:none}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c}.indicator-hint{padding-top:8px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}input[type=text].ui-autocomplete-loading{background:url(../images/loading.gif) no-repeat right center;visibility:visible}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete-input.open{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:1px solid #aaa;background-color:#efefef}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:left}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px;color:#444}.ui-autocomplete li a.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th,.form-wrap label{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#222;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.color-option{cursor:pointer}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.pressthis{margin:20px 0}.pressthis a,.pressthis a:active,.pressthis a:focus,.pressthis a:hover{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis a span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis a span:before{color:#777;font:400 20px/1 dashicons;content:'\f157';position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}#local-time,#utc-time{padding-left:25px;font-style:italic}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input.code{padding-bottom:5px;padding-top:10px}.widefat th input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat th input[type=checkbox]{margin-bottom:8px}.widefat th input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 Dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{padding:4px 0 0;line-height:1.4em}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{padding-top:8px;padding-left:0}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#utc-time{margin-top:10px}#local-time,#utc-time{display:block;float:none;padding:0;line-height:2}}@media only screen and (max-width:768px){.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media screen and (max-width:600px){.color-option{width:49%}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:700}.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de .inline-edit-row fieldset label span.title{width:7em}.locale-de-de .inline-edit-row fieldset label span.input-text-wrap{margin-left:7em}.locale-de-de #customize-header-actions .button{padding:0 5px 1px}.locale-de-de #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru .inline-edit-row fieldset label span.title{width:8em}.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}body,html{height:100%;margin:0;padding:0}html{background:#f1f1f1}body{background:#f1f1f1;min-width:0;color:#444;font-family:"Open Sans",sans-serif;font-size:13px;line-height:1.4em}a{color:#0074a2;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#2ea2cc}a:focus{color:#124964}a:active,a:focus{outline:dotted thin}p{line-height:1.5}.login .message{border-left:4px solid #7ad03a;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-left:4px solid #dd3d36;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login form{margin-top:20px;margin-left:0;padding:26px 24px 46px;font-weight:400;overflow:hidden;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:left;margin-bottom:0}.login .button-primary{float:right}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#777;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#999;height:84px;font-size:20px;font-weight:400;line-height:1.3em;margin:0 auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;overflow:hidden;display:block}#login{width:320px;padding:8% 0 0;margin:auto}#login_error,.login .message{margin-left:0;padding:12px}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#999}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#2ea2cc}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 6px 16px 0}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login #pass-strength-result{width:250px;font-weight:600;margin:12px 0 6px;padding:6px 5px;text-align:center}.mobile #login{padding:20px 0}.mobile #login .message,.mobile #login form,.mobile #login_error{margin-left:0}.mobile #login #backtoblog,.mobile #login #nav{margin-left:8px}.mobile #login h1 a{width:auto}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px 0 0 -4px}}
\ No newline at end of file
index 2ad628040e4fadb1f73f792c066da5b1d794241c..585d1f3d9f706ef7f529b68749764e46835fcac1 100644 (file)
        display: block;
        line-height: 36px;
        float: left;
        display: block;
        line-height: 36px;
        float: left;
+       margin-left: 10px;
 }
 
 .media-item .describe-toggle-off,
 }
 
 .media-item .describe-toggle-off,
        display: block;
 }
 
        display: block;
 }
 
-#media-items .media-item {
-       border-bottom: 1px solid #dfdfdf;
+.media-upload-form .media-item {
        min-height: 36px;
        min-height: 36px;
+       margin-bottom: 1px;
        position: relative;
        width: 100%;
        position: relative;
        width: 100%;
+       background: #fff;
 }
 
 }
 
-#media-items {
-       width: 623px;
-}
-
-.media-new-php #media-items {
-       margin: 1em 0;
+.media-upload-form .media-item,
+.media-upload-form .media-item .error {
+       -webkit-box-shadow: 0 1px 0 #dfdfdf;
+       box-shadow: 0 1px 0 #dfdfdf;
 }
 
 #media-items:empty {
 }
 
 #media-items:empty {
 .media-item .filename {
        line-height: 36px;
        overflow: hidden;
 .media-item .filename {
        line-height: 36px;
        overflow: hidden;
-}
-
-.media-item .error-div {
-       padding-right: 10px;
+       margin-right: 6px;
 }
 
 .media-item .pinkynail {
        float: right;
 }
 
 .media-item .pinkynail {
        float: right;
-       margin: 2px 0 0 10px;
+       margin: 2px 3px 0 10px;
        max-width: 40px;
        max-height: 32px;
 }
        max-width: 40px;
        max-height: 32px;
 }
 .media-item .progress {
        float: left;
        height: 22px;
 .media-item .progress {
        float: left;
        height: 22px;
-       margin: 7px 0 0;
+       margin: 7px 6px;
        width: 200px;
        line-height: 2em;
        padding: 0;
        overflow: hidden;
        width: 200px;
        line-height: 2em;
        padding: 0;
        overflow: hidden;
-       margin-bottom: 2px;
        -webkit-border-radius: 22px;
        border-radius: 22px;
        background: #ddd;
        -webkit-border-radius: 22px;
        border-radius: 22px;
        background: #ddd;
-       -webkit-box-shadow: inset 0px 1px 2px rgba(0,0,0,0.1);
-       box-shadow: inset 0px 1px 2px rgba(0,0,0,0.1);
+       -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
+       box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
 }
 
 .media-item .bar {
 }
 
 .media-item .bar {
        text-align: center;
        line-height: 22px;
        font-weight: 400;
        text-align: center;
        line-height: 22px;
        font-weight: 400;
-       text-shadow: 0px 1px 2px rgba(0,0,0,0.2);
+       text-shadow: 0 1px 2px rgba(0,0,0,0.2);
 }
 
 .upload-php .fixed .column-parent {
 }
 
 .upload-php .fixed .column-parent {
        display: block;
 }
 
        display: block;
 }
 
-.media-upload-form .media-item.error {
-       margin: 0;
-       padding: 0;
+.media-upload-form .media-item.error,
+.media-upload-form .media-item .error {
+       width: auto;
+       margin: 0 0 1px 0;
 }
 
 }
 
-.media-upload-form .media-item.error p,
-.media-item .error-div {
-       line-height: 16px;
-       margin: 5px 10px;
-       padding: 0;
+.media-upload-form .media-item .error {
+       padding: 10px 14px 10px 0;
 }
 
 .media-item .error-div a.dismiss {
        display: block;
        float: left;
 }
 
 .media-item .error-div a.dismiss {
        display: block;
        float: left;
-       margin: 5px 15px 0 4px;
+       margin: 0 15px 0 10px;
 }
 
 /*------------------------------------------------------------------------------
 }
 
 /*------------------------------------------------------------------------------
 
 .find-box-search .spinner {
        float: none;
 
 .find-box-search .spinner {
        float: none;
-       right: 125px;
+       right: 110px;
        position: absolute;
        position: absolute;
-       top: 18px;
+       top: 2px;
+}
+
+.find-box-search,
+#find-posts-response {
+       position: relative; /* RTL fix, #WP28010 */
 }
 
 #find-posts-input,
 }
 
 #find-posts-input,
@@ -433,6 +432,390 @@ border color while dragging a file over the uploader drop area */
        position: relative;
 }
 
        position: relative;
 }
 
+/**
+ * Media Library grid view
+ */
+
+.media-frame.mode-grid,
+.media-frame.mode-grid .media-frame-content,
+.media-frame.mode-grid .attachments-browser .attachments,
+.media-frame.mode-grid .uploader-inline-content {
+       position: static;
+}
+
+/* Regions we don't use at all */
+.media-frame.mode-grid .media-frame-title,
+.media-frame.mode-grid .media-frame-router,
+.media-frame.mode-grid .media-frame-menu {
+       display: none;
+}
+
+.media-frame.mode-grid .media-frame-content {
+       background-color: transparent;
+       border: none;
+}
+
+.upload-php .mode-grid .media-sidebar {
+       position: relative;
+       width: auto;
+       margin-bottom: 16px;
+       padding: 0 16px;
+       border: 1px solid #c00;
+       background-color: #feebe8;
+}
+
+.upload-php .mode-grid .hide-sidebar .media-sidebar {
+       display: none;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status {
+       border-bottom: none;
+       padding-bottom: 0;
+       max-width: 100%;
+}
+
+.upload-php .mode-grid .media-sidebar .upload-error {
+       margin: 20px 0;
+       padding: 0;
+       border: none;
+       background: none;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors {
+       font-size: 0;
+       top: -12px;
+       left: -10px;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:before {
+       content: "\f158";
+       font: normal 20px/1 dashicons;
+       color: #666;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:focus:before,
+.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:hover:before {
+       color: #2ea2cc;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h3 {
+       display: none;
+}
+
+.media-frame.mode-grid .uploader-inline {
+       position: relative;
+       top: auto;
+       left: auto;
+       right: auto;
+       bottom: auto;
+       padding-top: 0;
+       margin-top: 0;
+       border: 4px dashed #bbb;
+}
+
+.media-frame.mode-select .attachments-browser.fixed .attachments {
+       position: relative;
+       top: 94px; /* prevent jumping up when the toolbar becomes fixed */
+       padding-bottom: 94px; /* offset for above so the bottom doesn't get cut off */
+}
+
+.media-frame.mode-grid .attachment:focus,
+.media-frame.mode-grid .selected.attachment:focus,
+.media-frame.mode-grid .attachment.details:focus {
+       -webkit-box-shadow:
+               inset 0 0 2px 3px #f1f1f1,
+               inset 0 0 0 7px #5b9dd9;
+       box-shadow:
+               inset 0 0 2px 3px #f1f1f1,
+               inset 0 0 0 7px #5b9dd9;
+       outline: none;
+}
+
+.media-frame.mode-grid .selected.attachment {
+       -webkit-box-shadow:
+               inset 0 0 0 5px #f1f1f1,
+               inset 0 0 0 7px #ccc;
+       box-shadow:
+               inset 0 0 0 5px #f1f1f1,
+               inset 0 0 0 7px #ccc;
+}
+
+.media-frame.mode-grid .attachment.details {
+       -webkit-box-shadow:
+               inset 0 0 0 3px #f1f1f1,
+               inset 0 0 0 7px #1e8cbe;
+       box-shadow:
+               inset 0 0 0 3px #f1f1f1,
+               inset 0 0 0 7px #1e8cbe;
+}
+
+.media-frame.mode-grid.mode-select .attachment .thumbnail {
+       opacity: 0.65;
+}
+
+.media-frame.mode-select .attachment.selected .thumbnail {
+       opacity: 1;
+}
+
+.media-frame.mode-grid .media-toolbar {
+       margin-bottom: 15px;
+       height: auto;
+}
+
+.media-frame.mode-grid .media-toolbar select {
+       margin: 0 0 0 10px;
+       font-size: 14px;
+}
+
+.media-frame.mode-grid .media-toolbar-secondary > .media-button {
+       margin-top: 10px;
+       margin-bottom: 10px;
+}
+
+.media-frame.mode-grid .attachments-browser .bulk-select {
+       display: inline-block;
+       margin: 0 0 0 10px;
+}
+
+.media-frame.mode-grid .search {
+       margin-top: 0;
+}
+
+.media-frame.mode-grid .spinner {
+       margin-top: 15px;
+}
+
+.attachments-browser .media-toolbar-secondary > .select-mode-toggle-button {
+       margin-left: 10px;
+}
+
+.media-frame.mode-select .attachments-browser.fixed .media-toolbar {
+       position: fixed;
+       top: 32px;
+       right: auto;
+       left: 20px;
+       margin-top: 0;
+}
+
+.media-frame.mode-grid .attachments-browser {
+       padding: 0;
+}
+
+.media-frame.mode-grid .attachments-browser .attachments {
+       padding: 2px;
+}
+
+.media-frame.mode-grid .attachments-browser .no-media {
+       color: #999;
+       font-size: 18px;
+       font-style: normal;
+       margin: 0;
+       padding: 100px 0 0;
+       text-align: center;
+}
+
+/**
+ * Attachment details modal
+ */
+
+.edit-attachment-frame {
+       display: block;
+       height: 100%;
+       width: 100%;
+}
+
+.edit-attachment-frame .edit-media-header {
+       overflow: hidden;
+}
+
+.upload-php .media-modal-close .media-modal-icon:before {
+       content: '\f335';
+       font-size: 22px;
+}
+
+.upload-php .media-modal-close .media-modal-icon {
+       margin: 14px;
+       width: 22px;
+}
+
+.upload-php .media-modal-close,
+.edit-attachment-frame .edit-media-header .left,
+.edit-attachment-frame .edit-media-header .right {
+       cursor: pointer;
+       color: #777;
+       background-color: transparent;
+       height: 50px;
+       width: 50px;
+       padding: 0;
+       position: absolute;
+       text-align: center;
+       border: 0;
+       border-right: 1px solid #ddd;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+    transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.upload-php .media-modal-close {
+       top: 0;
+       left: 0;
+}
+
+.edit-attachment-frame .edit-media-header .left {
+       left: 102px;
+}
+
+.edit-attachment-frame .edit-media-header .right {
+       left: 51px;
+}
+
+.edit-attachment-frame .media-frame-title {
+       right: 0;
+       left: 150px; /* leave space for prev/next/close */
+}
+
+.edit-attachment-frame .edit-media-header .right:before,
+.edit-attachment-frame .edit-media-header .left:before {
+       font: normal 20px/50px 'dashicons' !important;
+       display: inline;
+       font-weight: 300;
+}
+
+.upload-php .media-modal-close:hover,
+.upload-php .media-modal-close:focus,
+.edit-attachment-frame .edit-media-header .left:hover,
+.edit-attachment-frame .edit-media-header .right:hover,
+.edit-attachment-frame .edit-media-header .left:focus,
+.edit-attachment-frame .edit-media-header .right:focus {
+       background: #ddd;
+       border-color: #ccc;
+       color: #000;
+       outline: none;
+}
+
+.upload-php .media-modal-close:focus .media-modal-icon:before,
+.upload-php .media-modal-close:hover .media-modal-icon:before {
+       color: #000;
+}
+
+.edit-attachment-frame .edit-media-header .left:before,
+.rtl .edit-attachment-frame .edit-media-header .right:before {
+       content: '\f341';
+}
+
+.edit-attachment-frame .edit-media-header .right:before,
+.rtl .edit-attachment-frame .edit-media-header .left:before {
+       content: '\f345';
+}
+
+.edit-attachment-frame .edit-media-header .left.disabled,
+.edit-attachment-frame .edit-media-header .right.disabled,
+.edit-attachment-frame .edit-media-header .left.disabled:hover,
+.edit-attachment-frame .edit-media-header .right.disabled:hover {
+       color: #ccc;
+       background: inherit;
+       cursor: default;
+       pointer-events: none;
+}
+
+.edit-attachment-frame .media-frame-content,
+.edit-attachment-frame .media-frame-router {
+       right: 0;
+}
+
+.edit-attachment-frame .media-frame-content {
+       border-bottom: none;
+       bottom: 0;
+       top: 50px;
+}
+
+.edit-attachment-frame .attachment-details {
+       position: absolute;
+       overflow: auto;
+       top: 0;
+       bottom: 0;
+       left: 0;
+       right: 0;
+       -webkit-box-shadow: inset 0px 4px 4px -4px rgba(0, 0, 0, 0.1);
+       box-shadow: inset 0px 4px 4px -4px rgba(0, 0, 0, 0.1);
+}
+
+.edit-attachment-frame .attachment-media-view {
+       float: right;
+       width: 65%;
+       height: 100%;
+}
+
+.edit-attachment-frame .attachment-media-view .thumbnail {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       padding: 16px;
+       height: 100%;
+}
+
+.edit-attachment-frame .attachment-media-view .details-image {
+       display: block;
+       margin-bottom: 16px;
+       max-width: 100%;
+       max-height: 90%;
+       max-height: -webkit-calc( 100% - 42px );
+       max-height: calc( 100% - 42px ); /* leave space for actions underneath */
+}
+
+.edit-attachment-frame .wp-media-wrapper {
+       margin-bottom: 12px;
+}
+
+.edit-attachment-frame input,
+.edit-attachment-frame textarea {
+       padding: 6px 8px;
+       line-height: 16px;
+}
+
+.edit-attachment-frame .attachment-info {
+       overflow: auto;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       margin-bottom: 0;
+       padding: 12px 16px 0;
+       width: 35%;
+       height: 100%;
+       -webkit-box-shadow: inset 0px 4px 4px -4px rgba(0, 0, 0, 0.1);
+       box-shadow: inset 0px 4px 4px -4px rgba(0, 0, 0, 0.1);
+       border-bottom: 0;
+       border-right: 1px solid #ddd;
+       background: #f3f3f3;
+}
+
+.edit-attachment-frame .attachment-info .details,
+.edit-attachment-frame .attachment-info .settings {
+       position: relative; /* RTL fix, #WP29352 */
+       overflow: hidden;
+       float: none;
+       margin-bottom: 15px;
+       padding-bottom: 15px;
+       border-bottom: 1px solid #ddd;
+}
+
+.edit-attachment-frame .attachment-info .filename {
+       font-weight: normal;
+       color: #666;
+}
+
+.edit-attachment-frame .attachment-info .thumbnail {
+       margin-bottom: 12px;
+}
+
+.attachment-info .actions {
+       margin-bottom: 16px;
+}
+
+.attachment-info .actions a {
+       display: inline;
+       text-decoration: none;
+}
+
 
 /*------------------------------------------------------------------------------
   14.2 - Image Editor
 
 /*------------------------------------------------------------------------------
   14.2 - Image Editor
@@ -507,7 +890,7 @@ border color while dragging a file over the uploader drop area */
 }
 
 .media-disabled,
 }
 
 .media-disabled,
-.imgedit-settings .disabled  {
+.imgedit-settings .disabled {
        color: grey;
 }
 
        color: grey;
 }
 
@@ -699,6 +1082,7 @@ audio, video {
 
 .mejs-container {
        width: 100%;
 
 .mejs-container {
        width: 100%;
+       max-width: 100%;
 }
 
 /* =Media Queries
 }
 
 /* =Media Queries
@@ -721,4 +1105,92 @@ audio, video {
                font-size: 14px;
                line-height: 1.5em;
        }
                font-size: 14px;
                line-height: 1.5em;
        }
+
+       .media-upload-form .media-item.error,
+       .media-upload-form .media-item .error {
+               font-size: 13px;
+               line-height: 1.5;
+       }
+
+       .media-upload-form .media-item.error {
+               padding: 1px 10px;
+       }
+
+       .media-upload-form .media-item .error {
+               padding: 10px 12px 10px 0;
+       }
+}
+
+/**
+ * Media queries for media grid.
+ */
+
+@media only screen and (max-width: 1120px) {
+       .media-frame.mode-grid .attachments-browser .media-toolbar-secondary {
+               float: none;
+       }
+}
+
+@media only screen and ( max-width: 782px ) {
+       .media-frame.mode-select .attachments-browser.fixed .media-toolbar {
+               top: 46px;
+               left: 10px;
+       }
+}
+
+@media only screen and (max-width: 600px) {
+       .media-frame.mode-select .attachments-browser.fixed .media-toolbar {
+               top: 0;
+       }
+}
+
+@media only screen and (max-width: 480px) {
+       .edit-attachment-frame .media-frame-title {
+               left: 110px;
+       }
+
+       .upload-php .media-modal-close,
+       .edit-attachment-frame .edit-media-header .left,
+       .edit-attachment-frame .edit-media-header .right {
+               width: 40px;
+               height: 40px;
+       }
+
+       .upload-php .media-modal-close .media-modal-icon {
+               margin: 9px 10px;
+       }
+
+       .edit-attachment-frame .edit-media-header .right:before,
+       .edit-attachment-frame .edit-media-header .left:before {
+               line-height: 40px !important;
+       }
+
+       .edit-attachment-frame .edit-media-header .left {
+               left: 82px;
+       }
+
+       .edit-attachment-frame .edit-media-header .right {
+               left: 41px;
+       }
+
+       .edit-attachment-frame .media-frame-content {
+               top: 40px;
+       }
+
+       .edit-attachment-frame .attachment-media-view {
+               float: none;
+               height: auto;
+               width: 100%;
+       }
+
+       .edit-attachment-frame .attachment-info {
+               height: auto;
+               width: 100%;
+       }
+}
+
+@media only screen and (max-width: 640px), screen and (max-height: 400px) {
+       .upload-php .mode-grid .media-sidebar{
+               max-width: 100%;
+       }
 }
 }
index e6bbdcbb1600308b7136381f69e2540096fe360b..e27b665cfbb5148e86b92f4c5fdb6998dfbad80b 100644 (file)
        display: block;
        line-height: 36px;
        float: right;
        display: block;
        line-height: 36px;
        float: right;
+       margin-right: 10px;
 }
 
 .media-item .describe-toggle-off,
 }
 
 .media-item .describe-toggle-off,
        display: block;
 }
 
        display: block;
 }
 
-#media-items .media-item {
-       border-bottom: 1px solid #dfdfdf;
+.media-upload-form .media-item {
        min-height: 36px;
        min-height: 36px;
+       margin-bottom: 1px;
        position: relative;
        width: 100%;
        position: relative;
        width: 100%;
+       background: #fff;
 }
 
 }
 
-#media-items {
-       width: 623px;
-}
-
-.media-new-php #media-items {
-       margin: 1em 0;
+.media-upload-form .media-item,
+.media-upload-form .media-item .error {
+       -webkit-box-shadow: 0 1px 0 #dfdfdf;
+       box-shadow: 0 1px 0 #dfdfdf;
 }
 
 #media-items:empty {
 }
 
 #media-items:empty {
 .media-item .filename {
        line-height: 36px;
        overflow: hidden;
 .media-item .filename {
        line-height: 36px;
        overflow: hidden;
-}
-
-.media-item .error-div {
-       padding-left: 10px;
+       margin-left: 6px;
 }
 
 .media-item .pinkynail {
        float: left;
 }
 
 .media-item .pinkynail {
        float: left;
-       margin: 2px 10px 0 0;
+       margin: 2px 10px 0 3px;
        max-width: 40px;
        max-height: 32px;
 }
        max-width: 40px;
        max-height: 32px;
 }
 .media-item .progress {
        float: right;
        height: 22px;
 .media-item .progress {
        float: right;
        height: 22px;
-       margin: 7px 0 0;
+       margin: 7px 6px;
        width: 200px;
        line-height: 2em;
        padding: 0;
        overflow: hidden;
        width: 200px;
        line-height: 2em;
        padding: 0;
        overflow: hidden;
-       margin-bottom: 2px;
        -webkit-border-radius: 22px;
        border-radius: 22px;
        background: #ddd;
        -webkit-border-radius: 22px;
        border-radius: 22px;
        background: #ddd;
-       -webkit-box-shadow: inset 0px 1px 2px rgba(0,0,0,0.1);
-       box-shadow: inset 0px 1px 2px rgba(0,0,0,0.1);
+       -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
+       box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
 }
 
 .media-item .bar {
 }
 
 .media-item .bar {
        text-align: center;
        line-height: 22px;
        font-weight: 400;
        text-align: center;
        line-height: 22px;
        font-weight: 400;
-       text-shadow: 0px 1px 2px rgba(0,0,0,0.2);
+       text-shadow: 0 1px 2px rgba(0,0,0,0.2);
 }
 
 .upload-php .fixed .column-parent {
 }
 
 .upload-php .fixed .column-parent {
        display: block;
 }
 
        display: block;
 }
 
-.media-upload-form .media-item.error {
-       margin: 0;
-       padding: 0;
+.media-upload-form .media-item.error,
+.media-upload-form .media-item .error {
+       width: auto;
+       margin: 0 0 1px 0;
 }
 
 }
 
-.media-upload-form .media-item.error p,
-.media-item .error-div {
-       line-height: 16px;
-       margin: 5px 10px;
-       padding: 0;
+.media-upload-form .media-item .error {
+       padding: 10px 0 10px 14px;
 }
 
 .media-item .error-div a.dismiss {
        display: block;
        float: right;
 }
 
 .media-item .error-div a.dismiss {
        display: block;
        float: right;
-       margin: 5px 4px 0 15px;
+       margin: 0 10px 0 15px;
 }
 
 /*------------------------------------------------------------------------------
 }
 
 /*------------------------------------------------------------------------------
 
 .find-box-search .spinner {
        float: none;
 
 .find-box-search .spinner {
        float: none;
-       left: 125px;
+       left: 110px;
        position: absolute;
        position: absolute;
-       top: 18px;
+       top: 2px;
+}
+
+.find-box-search,
+#find-posts-response {
+       position: relative; /* RTL fix, #WP28010 */
 }
 
 #find-posts-input,
 }
 
 #find-posts-input,
@@ -433,6 +432,390 @@ border color while dragging a file over the uploader drop area */
        position: relative;
 }
 
        position: relative;
 }
 
+/**
+ * Media Library grid view
+ */
+
+.media-frame.mode-grid,
+.media-frame.mode-grid .media-frame-content,
+.media-frame.mode-grid .attachments-browser .attachments,
+.media-frame.mode-grid .uploader-inline-content {
+       position: static;
+}
+
+/* Regions we don't use at all */
+.media-frame.mode-grid .media-frame-title,
+.media-frame.mode-grid .media-frame-router,
+.media-frame.mode-grid .media-frame-menu {
+       display: none;
+}
+
+.media-frame.mode-grid .media-frame-content {
+       background-color: transparent;
+       border: none;
+}
+
+.upload-php .mode-grid .media-sidebar {
+       position: relative;
+       width: auto;
+       margin-bottom: 16px;
+       padding: 0 16px;
+       border: 1px solid #c00;
+       background-color: #feebe8;
+}
+
+.upload-php .mode-grid .hide-sidebar .media-sidebar {
+       display: none;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status {
+       border-bottom: none;
+       padding-bottom: 0;
+       max-width: 100%;
+}
+
+.upload-php .mode-grid .media-sidebar .upload-error {
+       margin: 20px 0;
+       padding: 0;
+       border: none;
+       background: none;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors {
+       font-size: 0;
+       top: -12px;
+       right: -10px;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:before {
+       content: "\f158";
+       font: normal 20px/1 dashicons;
+       color: #666;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:focus:before,
+.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:hover:before {
+       color: #2ea2cc;
+}
+
+.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h3 {
+       display: none;
+}
+
+.media-frame.mode-grid .uploader-inline {
+       position: relative;
+       top: auto;
+       right: auto;
+       left: auto;
+       bottom: auto;
+       padding-top: 0;
+       margin-top: 0;
+       border: 4px dashed #bbb;
+}
+
+.media-frame.mode-select .attachments-browser.fixed .attachments {
+       position: relative;
+       top: 94px; /* prevent jumping up when the toolbar becomes fixed */
+       padding-bottom: 94px; /* offset for above so the bottom doesn't get cut off */
+}
+
+.media-frame.mode-grid .attachment:focus,
+.media-frame.mode-grid .selected.attachment:focus,
+.media-frame.mode-grid .attachment.details:focus {
+       -webkit-box-shadow:
+               inset 0 0 2px 3px #f1f1f1,
+               inset 0 0 0 7px #5b9dd9;
+       box-shadow:
+               inset 0 0 2px 3px #f1f1f1,
+               inset 0 0 0 7px #5b9dd9;
+       outline: none;
+}
+
+.media-frame.mode-grid .selected.attachment {
+       -webkit-box-shadow:
+               inset 0 0 0 5px #f1f1f1,
+               inset 0 0 0 7px #ccc;
+       box-shadow:
+               inset 0 0 0 5px #f1f1f1,
+               inset 0 0 0 7px #ccc;
+}
+
+.media-frame.mode-grid .attachment.details {
+       -webkit-box-shadow:
+               inset 0 0 0 3px #f1f1f1,
+               inset 0 0 0 7px #1e8cbe;
+       box-shadow:
+               inset 0 0 0 3px #f1f1f1,
+               inset 0 0 0 7px #1e8cbe;
+}
+
+.media-frame.mode-grid.mode-select .attachment .thumbnail {
+       opacity: 0.65;
+}
+
+.media-frame.mode-select .attachment.selected .thumbnail {
+       opacity: 1;
+}
+
+.media-frame.mode-grid .media-toolbar {
+       margin-bottom: 15px;
+       height: auto;
+}
+
+.media-frame.mode-grid .media-toolbar select {
+       margin: 0 10px 0 0;
+       font-size: 14px;
+}
+
+.media-frame.mode-grid .media-toolbar-secondary > .media-button {
+       margin-top: 10px;
+       margin-bottom: 10px;
+}
+
+.media-frame.mode-grid .attachments-browser .bulk-select {
+       display: inline-block;
+       margin: 0 10px 0 0;
+}
+
+.media-frame.mode-grid .search {
+       margin-top: 0;
+}
+
+.media-frame.mode-grid .spinner {
+       margin-top: 15px;
+}
+
+.attachments-browser .media-toolbar-secondary > .select-mode-toggle-button {
+       margin-right: 10px;
+}
+
+.media-frame.mode-select .attachments-browser.fixed .media-toolbar {
+       position: fixed;
+       top: 32px;
+       left: auto;
+       right: 20px;
+       margin-top: 0;
+}
+
+.media-frame.mode-grid .attachments-browser {
+       padding: 0;
+}
+
+.media-frame.mode-grid .attachments-browser .attachments {
+       padding: 2px;
+}
+
+.media-frame.mode-grid .attachments-browser .no-media {
+       color: #999;
+       font-size: 18px;
+       font-style: normal;
+       margin: 0;
+       padding: 100px 0 0;
+       text-align: center;
+}
+
+/**
+ * Attachment details modal
+ */
+
+.edit-attachment-frame {
+       display: block;
+       height: 100%;
+       width: 100%;
+}
+
+.edit-attachment-frame .edit-media-header {
+       overflow: hidden;
+}
+
+.upload-php .media-modal-close .media-modal-icon:before {
+       content: '\f335';
+       font-size: 22px;
+}
+
+.upload-php .media-modal-close .media-modal-icon {
+       margin: 14px;
+       width: 22px;
+}
+
+.upload-php .media-modal-close,
+.edit-attachment-frame .edit-media-header .left,
+.edit-attachment-frame .edit-media-header .right {
+       cursor: pointer;
+       color: #777;
+       background-color: transparent;
+       height: 50px;
+       width: 50px;
+       padding: 0;
+       position: absolute;
+       text-align: center;
+       border: 0;
+       border-left: 1px solid #ddd;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+    transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.upload-php .media-modal-close {
+       top: 0;
+       right: 0;
+}
+
+.edit-attachment-frame .edit-media-header .left {
+       right: 102px;
+}
+
+.edit-attachment-frame .edit-media-header .right {
+       right: 51px;
+}
+
+.edit-attachment-frame .media-frame-title {
+       left: 0;
+       right: 150px; /* leave space for prev/next/close */
+}
+
+.edit-attachment-frame .edit-media-header .right:before,
+.edit-attachment-frame .edit-media-header .left:before {
+       font: normal 20px/50px 'dashicons' !important;
+       display: inline;
+       font-weight: 300;
+}
+
+.upload-php .media-modal-close:hover,
+.upload-php .media-modal-close:focus,
+.edit-attachment-frame .edit-media-header .left:hover,
+.edit-attachment-frame .edit-media-header .right:hover,
+.edit-attachment-frame .edit-media-header .left:focus,
+.edit-attachment-frame .edit-media-header .right:focus {
+       background: #ddd;
+       border-color: #ccc;
+       color: #000;
+       outline: none;
+}
+
+.upload-php .media-modal-close:focus .media-modal-icon:before,
+.upload-php .media-modal-close:hover .media-modal-icon:before {
+       color: #000;
+}
+
+.edit-attachment-frame .edit-media-header .left:before,
+.rtl .edit-attachment-frame .edit-media-header .right:before {
+       content: '\f341';
+}
+
+.edit-attachment-frame .edit-media-header .right:before,
+.rtl .edit-attachment-frame .edit-media-header .left:before {
+       content: '\f345';
+}
+
+.edit-attachment-frame .edit-media-header .left.disabled,
+.edit-attachment-frame .edit-media-header .right.disabled,
+.edit-attachment-frame .edit-media-header .left.disabled:hover,
+.edit-attachment-frame .edit-media-header .right.disabled:hover {
+       color: #ccc;
+       background: inherit;
+       cursor: default;
+       pointer-events: none;
+}
+
+.edit-attachment-frame .media-frame-content,
+.edit-attachment-frame .media-frame-router {
+       left: 0;
+}
+
+.edit-attachment-frame .media-frame-content {
+       border-bottom: none;
+       bottom: 0;
+       top: 50px;
+}
+
+.edit-attachment-frame .attachment-details {
+       position: absolute;
+       overflow: auto;
+       top: 0;
+       bottom: 0;
+       right: 0;
+       left: 0;
+       -webkit-box-shadow: inset 0px 4px 4px -4px rgba(0, 0, 0, 0.1);
+       box-shadow: inset 0px 4px 4px -4px rgba(0, 0, 0, 0.1);
+}
+
+.edit-attachment-frame .attachment-media-view {
+       float: left;
+       width: 65%;
+       height: 100%;
+}
+
+.edit-attachment-frame .attachment-media-view .thumbnail {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       padding: 16px;
+       height: 100%;
+}
+
+.edit-attachment-frame .attachment-media-view .details-image {
+       display: block;
+       margin-bottom: 16px;
+       max-width: 100%;
+       max-height: 90%;
+       max-height: -webkit-calc( 100% - 42px );
+       max-height: calc( 100% - 42px ); /* leave space for actions underneath */
+}
+
+.edit-attachment-frame .wp-media-wrapper {
+       margin-bottom: 12px;
+}
+
+.edit-attachment-frame input,
+.edit-attachment-frame textarea {
+       padding: 6px 8px;
+       line-height: 16px;
+}
+
+.edit-attachment-frame .attachment-info {
+       overflow: auto;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       margin-bottom: 0;
+       padding: 12px 16px 0;
+       width: 35%;
+       height: 100%;
+       -webkit-box-shadow: inset 0px 4px 4px -4px rgba(0, 0, 0, 0.1);
+       box-shadow: inset 0px 4px 4px -4px rgba(0, 0, 0, 0.1);
+       border-bottom: 0;
+       border-left: 1px solid #ddd;
+       background: #f3f3f3;
+}
+
+.edit-attachment-frame .attachment-info .details,
+.edit-attachment-frame .attachment-info .settings {
+       position: relative; /* RTL fix, #WP29352 */
+       overflow: hidden;
+       float: none;
+       margin-bottom: 15px;
+       padding-bottom: 15px;
+       border-bottom: 1px solid #ddd;
+}
+
+.edit-attachment-frame .attachment-info .filename {
+       font-weight: normal;
+       color: #666;
+}
+
+.edit-attachment-frame .attachment-info .thumbnail {
+       margin-bottom: 12px;
+}
+
+.attachment-info .actions {
+       margin-bottom: 16px;
+}
+
+.attachment-info .actions a {
+       display: inline;
+       text-decoration: none;
+}
+
 
 /*------------------------------------------------------------------------------
   14.2 - Image Editor
 
 /*------------------------------------------------------------------------------
   14.2 - Image Editor
@@ -507,7 +890,7 @@ border color while dragging a file over the uploader drop area */
 }
 
 .media-disabled,
 }
 
 .media-disabled,
-.imgedit-settings .disabled  {
+.imgedit-settings .disabled {
        color: grey;
 }
 
        color: grey;
 }
 
@@ -699,6 +1082,7 @@ audio, video {
 
 .mejs-container {
        width: 100%;
 
 .mejs-container {
        width: 100%;
+       max-width: 100%;
 }
 
 /* =Media Queries
 }
 
 /* =Media Queries
@@ -721,4 +1105,92 @@ audio, video {
                font-size: 14px;
                line-height: 1.5em;
        }
                font-size: 14px;
                line-height: 1.5em;
        }
+
+       .media-upload-form .media-item.error,
+       .media-upload-form .media-item .error {
+               font-size: 13px;
+               line-height: 1.5;
+       }
+
+       .media-upload-form .media-item.error {
+               padding: 1px 10px;
+       }
+
+       .media-upload-form .media-item .error {
+               padding: 10px 0 10px 12px;
+       }
+}
+
+/**
+ * Media queries for media grid.
+ */
+
+@media only screen and (max-width: 1120px) {
+       .media-frame.mode-grid .attachments-browser .media-toolbar-secondary {
+               float: none;
+       }
+}
+
+@media only screen and ( max-width: 782px ) {
+       .media-frame.mode-select .attachments-browser.fixed .media-toolbar {
+               top: 46px;
+               right: 10px;
+       }
+}
+
+@media only screen and (max-width: 600px) {
+       .media-frame.mode-select .attachments-browser.fixed .media-toolbar {
+               top: 0;
+       }
+}
+
+@media only screen and (max-width: 480px) {
+       .edit-attachment-frame .media-frame-title {
+               right: 110px;
+       }
+
+       .upload-php .media-modal-close,
+       .edit-attachment-frame .edit-media-header .left,
+       .edit-attachment-frame .edit-media-header .right {
+               width: 40px;
+               height: 40px;
+       }
+
+       .upload-php .media-modal-close .media-modal-icon {
+               margin: 9px 10px;
+       }
+
+       .edit-attachment-frame .edit-media-header .right:before,
+       .edit-attachment-frame .edit-media-header .left:before {
+               line-height: 40px !important;
+       }
+
+       .edit-attachment-frame .edit-media-header .left {
+               right: 82px;
+       }
+
+       .edit-attachment-frame .edit-media-header .right {
+               right: 41px;
+       }
+
+       .edit-attachment-frame .media-frame-content {
+               top: 40px;
+       }
+
+       .edit-attachment-frame .attachment-media-view {
+               float: none;
+               height: auto;
+               width: 100%;
+       }
+
+       .edit-attachment-frame .attachment-info {
+               height: auto;
+               width: 100%;
+       }
+}
+
+@media only screen and (max-width: 640px), screen and (max-height: 400px) {
+       .upload-php .mode-grid .media-sidebar{
+               max-width: 100%;
+       }
 }
 }
index 82c91e90fae040b5e628f94ae74a2f6a91687b74..ed2405b4e5a894508c63ba94b9f3bf68a5d08ff9 100644 (file)
@@ -507,6 +507,10 @@ ul.add-menu-item-tabs li {
        margin-left: 13em;
 }
 
        margin-left: 13em;
 }
 
+.menu-item-handle .menu-item-title.no-title {
+       color: #999;
+}
+
 /* Sortables */
 li.menu-item.ui-sortable-helper dl {
        margin-top: 0;
 /* Sortables */
 li.menu-item.ui-sortable-helper dl {
        margin-top: 0;
index 6466d94f675b290a083b8c883e629c576e20daae..28e32b802458905a101185e3b65938ac151d6719 100644 (file)
@@ -507,6 +507,10 @@ ul.add-menu-item-tabs li {
        margin-right: 13em;
 }
 
        margin-right: 13em;
 }
 
+.menu-item-handle .menu-item-title.no-title {
+       color: #999;
+}
+
 /* Sortables */
 li.menu-item.ui-sortable-helper dl {
        margin-top: 0;
 /* Sortables */
 li.menu-item.ui-sortable-helper dl {
        margin-top: 0;
index d870006253e0d0b71c66255834e0d89305bfd244..ee035f2d243f1eccdcc52352818d9f6354471acf 100644 (file)
 }
 
 .revisions .loading-indicator {
 }
 
 .revisions .loading-indicator {
-       position: fixed;
+       position: absolute;
        vertical-align: middle;
        opacity: 0;
        width: 100%;
        vertical-align: middle;
        opacity: 0;
        width: 100%;
+       width: -webkit-calc( 100% - 30px );
+       width: calc( 100% - 30px );
        top: 50%;
        top: 50%;
-       margin-right: -90px;
+       top: -webkit-calc( 50% - 10px );
+       top: calc( 50% - 10px );
        -webkit-transition: opacity 0.5s;
        transition: opacity 0.5s;
        filter: alpha(opacity=0); /* ie8 and earlier */
        -webkit-transition: opacity 0.5s;
        transition: opacity 0.5s;
        filter: alpha(opacity=0); /* ie8 and earlier */
@@ -405,7 +408,7 @@ table.diff .diff-addedline ins {
        z-index: 10000;
 }
 
        z-index: 10000;
 }
 
-.arrow::after {
+.arrow:after {
        z-index: 9999;
        background-color: #fff;
        -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        z-index: 9999;
        background-color: #fff;
        -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1);
index 026367480de22d596a2bb991f29e98b6085e0001..f191494227c977079cb898f30ef6f1ef9eb2304b 100644 (file)
 }
 
 .revisions .loading-indicator {
 }
 
 .revisions .loading-indicator {
-       position: fixed;
+       position: absolute;
        vertical-align: middle;
        opacity: 0;
        width: 100%;
        vertical-align: middle;
        opacity: 0;
        width: 100%;
+       width: -webkit-calc( 100% - 30px );
+       width: calc( 100% - 30px );
        top: 50%;
        top: 50%;
-       margin-left: -90px;
+       top: -webkit-calc( 50% - 10px );
+       top: calc( 50% - 10px );
        -webkit-transition: opacity 0.5s;
        transition: opacity 0.5s;
        filter: alpha(opacity=0); /* ie8 and earlier */
        -webkit-transition: opacity 0.5s;
        transition: opacity 0.5s;
        filter: alpha(opacity=0); /* ie8 and earlier */
@@ -405,7 +408,7 @@ table.diff .diff-addedline ins {
        z-index: 10000;
 }
 
        z-index: 10000;
 }
 
-.arrow::after {
+.arrow:after {
        z-index: 9999;
        background-color: #fff;
        -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        z-index: 9999;
        background-color: #fff;
        -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1);
index 5ae8f35faf847d79184d102b0f74a56076ae44d8..264eb3c627e97c07a548868a5ee8351841aa73b1 100644 (file)
        margin-right: 20px;
 }
 
        margin-right: 20px;
 }
 
-.themes-php .wrap .theme-count,
-.theme-navigation .theme-count {
-       color: #fff;
-       -webkit-border-radius: 30px;
-       border-radius: 30px;
-       background: #777;
-       font-size: 14px;
-       padding: 4px 10px;
-       font-weight: 600;
-       margin-right: 5px;
-       margin-left: 20px;
+/* Search form */
+.themes-php .wp-filter-search {
        position: relative;
        position: relative;
-       top: -3px;
-}
-
-.theme-navigation a {
-       text-decoration:none;
+       top: -2px;
+       right: 20px;
+       margin: 0;
+       width: 280px;
+       font-size: 16px;
+       font-weight: 300;
+       line-height: 1.5;
 }
 
 /* Position admin messages */
 }
 
 /* Position admin messages */
        -webkit-transition: opacity 0.1s ease-in-out;
        transition: opacity 0.1s ease-in-out;
 }
        -webkit-transition: opacity 0.1s ease-in-out;
        transition: opacity 0.1s ease-in-out;
 }
+
 .theme-browser .theme:focus {
 .theme-browser .theme:focus {
-       outline: 1px dotted #222;
+       border-color: #5b9dd9;
+       -webkit-box-shadow: 0 0 2px rgba( 30, 140, 190, 0.8 );
+       box-shadow: 0 0 2px rgba( 30, 140, 190, 0.8 );
 }
 
 .theme-browser .theme:focus .more-details {
        opacity: 1;
 }
 }
 
 .theme-browser .theme:focus .more-details {
        opacity: 1;
 }
+
 /* Current theme needs to have its action always on view */
 .theme-browser .theme.active:focus .theme-actions {
        display: block;
 /* Current theme needs to have its action always on view */
 .theme-browser .theme.active:focus .theme-actions {
        display: block;
        z-index: 2;
 }
 
        z-index: 2;
 }
 
-/*
- * The search form
- */
-.themes-php .theme-search {
-       position: relative;
-       top: -2px;
-       right: 20px;
-       font-size: 16px;
-       font-weight: 300;
-       line-height: 1.5;
-       width: 280px;
-}
-
 /**
  * Theme Overlay
  * Shown when clicking a theme
 /**
  * Theme Overlay
  * Shown when clicking a theme
        z-index: 10;
 }
 
        z-index: 10;
 }
 
-body.theme-overlay-open {
-       overflow: hidden;
-}
-
 .theme-overlay .theme-header {
        position: absolute;
        top: 0;
 .theme-overlay .theme-header {
        position: absolute;
        top: 0;
@@ -451,15 +431,12 @@ body.theme-overlay-open {
        border: 0;
        border-right: 1px solid #ddd;
        background-color: transparent;
        border: 0;
        border-right: 1px solid #ddd;
        background-color: transparent;
-}
-
-.theme-overlay .theme-header .close:hover:before,
-.theme-overlay .theme-header .close:focus:before {
-       color: #fff;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
 }
 
 .theme-overlay .theme-header .close:before {
 }
 
 .theme-overlay .theme-header .close:before {
-       font: normal 30px/50px 'dashicons' !important;
+       font: normal 22px/50px 'dashicons' !important;
        color: #777;
        display: inline-block;
        content: '\f335';
        color: #777;
        display: inline-block;
        content: '\f335';
@@ -478,16 +455,32 @@ body.theme-overlay-open {
        text-align: center;
        border: 0;
        border-left: 1px solid #ddd;
        text-align: center;
        border: 0;
        border-left: 1px solid #ddd;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
 }
 
 }
 
+.theme-overlay .theme-header .close:focus,
 .theme-overlay .theme-header .close:hover,
 .theme-overlay .theme-header .close:hover,
+.theme-overlay .theme-header .right:focus,
 .theme-overlay .theme-header .right:hover,
 .theme-overlay .theme-header .right:hover,
-.theme-overlay .theme-header .left:hover,
+.theme-overlay .theme-header .left:focus,
+.theme-overlay .theme-header .left:hover {
+       background: #ddd;
+       border-color: #ccc;
+       color: #000;
+}
+
+.theme-overlay .theme-header .close:focus:before,
+.theme-overlay .theme-header .close:hover:before {
+       color: #000;
+}
+
 .theme-overlay .theme-header .close:focus,
 .theme-overlay .theme-header .right:focus,
 .theme-overlay .theme-header .left:focus {
 .theme-overlay .theme-header .close:focus,
 .theme-overlay .theme-header .right:focus,
 .theme-overlay .theme-header .left:focus {
-       background: #0074a2;
-       color: #fff;
+    -webkit-box-shadow: none;
+    box-shadow: none;
+    outline: none;
 }
 
 .theme-overlay .theme-header .left.disabled,
 }
 
 .theme-overlay .theme-header .left.disabled,
@@ -506,21 +499,17 @@ body.theme-overlay-open {
        font-weight: 300;
 }
 
        font-weight: 300;
 }
 
-.theme-overlay .theme-header .left:before {
-       content: '\f340';
-}
-
-.theme-overlay .theme-header .right:before {
-       content: '\f344';
+.theme-overlay .theme-header .left:before,
+.rtl .theme-overlay .theme-header .right:before {
+       content: '\f341';
 }
 
 }
 
+.theme-overlay .theme-header .right:before,
 .rtl .theme-overlay .theme-header .left:before {
        content: '\f345';
 }
 
 .rtl .theme-overlay .theme-header .left:before {
        content: '\f345';
 }
 
-.rtl .theme-overlay .theme-header .right:before {
-       content: '\f341';
-}
+
 
 .theme-overlay .theme-wrap {
        clear: both;
 
 .theme-overlay .theme-wrap {
        clear: both;
@@ -1025,7 +1014,7 @@ body.folded .theme-overlay .theme-wrap {
                width: 100%;
        }
 
                width: 100%;
        }
 
-       .themes-php .theme-search {
+       .themes-php .wp-filter-search {
                float: none;
                clear: both;
                right: 0;
                float: none;
                clear: both;
                right: 0;
@@ -1088,21 +1077,6 @@ body.folded .theme-overlay .theme-wrap {
        display: none !important;
 }
 
        display: none !important;
 }
 
-.theme-navigation {
-       background: #fff;
-       -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
-       box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       box-sizing: border-box;
-       color: #555;
-       display: inline-block;
-       font-size: 13px;
-       margin: 20px 0 30px;
-       padding: 0 20px;
-       position: relative;
-       width: 100%;
-}
 .theme-install-php a.upload,
 .theme-install-php a.browse-themes {
        cursor: pointer;
 .theme-install-php a.upload,
 .theme-install-php a.browse-themes {
        cursor: pointer;
@@ -1114,29 +1088,33 @@ body.folded .theme-overlay .theme-wrap {
 .theme-install-php.show-upload-theme a.browse-themes {
        display: inline;
 }
 .theme-install-php.show-upload-theme a.browse-themes {
        display: inline;
 }
-.upload-theme {
+.upload-theme,
+.upload-plugin {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        display: none;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        display: none;
-       margin: 0px 0 0;
+       margin: 0;
        padding: 0;
        width: 100%;
        overflow: hidden;
        position: relative;
        top: 10px;
 }
        padding: 0;
        width: 100%;
        overflow: hidden;
        position: relative;
        top: 10px;
 }
-body.show-upload-theme .upload-theme {
+body.show-upload-theme .upload-theme,
+.upload-plugin {
        display: block;
 }
        display: block;
 }
-.upload-theme .wp-upload-form {
+.upload-theme .wp-upload-form,
+.upload-plugin .wp-upload-form {
        background: #fafafa;
        border: 1px solid #e5e5e5;
        padding: 30px;
        margin: 30px auto;
        max-width: 380px;
 }
        background: #fafafa;
        border: 1px solid #e5e5e5;
        padding: 30px;
        margin: 30px auto;
        max-width: 380px;
 }
-.upload-theme .install-help {
+.upload-theme .install-help,
+.upload-plugin .install-help {
        color: #999;
        font-size: 18px;
        font-style: normal;
        color: #999;
        font-size: 18px;
        font-style: normal;
@@ -1144,190 +1122,11 @@ body.show-upload-theme .upload-theme {
        padding: 40px 0 0;
        text-align: center;
 }
        padding: 40px 0 0;
        text-align: center;
 }
-body.show-upload-theme .upload-theme + .theme-navigation,
-body.show-upload-theme .upload-theme + .theme-navigation + .theme-browser {
+body.show-upload-theme .upload-theme + .wp-filter,
+body.show-upload-theme .upload-theme + .wp-filter + .theme-browser {
        display: none;
 }
        display: none;
 }
-.theme-navigation .theme-count {
-       margin-right: 0;
-       position: absolute;
-       top: 12px;
-}
-.theme-count + .theme-section {
-       margin-right: 60px;
-}
-.theme-section,
-.theme-filter {
-       border-bottom: 4px solid #fff;
-       color: #666;
-       cursor: pointer;
-       display: inline-block;
-       margin: 0 10px;
-       padding: 15px 0;
-}
-.theme-section.current,
-.theme-filter.current {
-       border-bottom: 4px solid #666;
-       color: #222;
-}
-.theme-top-filters {
-       display: inline-block;
-}
-.theme-navigation .more-filters {
-       color: #666;
-       cursor: pointer;
-       display: inline-block;
-       margin: 0 10px;
-       padding: 4px 6px;
-}
-body.more-filters-opened .more-filters,
-body.more-filters-opened .more-filters:before {
-       background: #777;
-       -webkit-border-radius: 2px;
-       border-radius: 2px;
-       border: none;
-       color: #fff;
-}
 
 
-body.more-filters-opened .more-filters:hover,
-body.more-filters-opened .more-filters:focus,
-body.more-filters-opened .more-filters:hover:before,
-body.more-filters-opened .more-filters:focus:before {
-       background: rgb(46, 162, 204);
-}
-
-.theme-install-php .theme-search {
-       position: absolute;
-       left: 10px;
-       top: 9px;
-       font-size: 16px;
-       font-weight: 300;
-       line-height: 1.5;
-       width: 280px;
-}
-.more-filters:before {
-       color: #777;
-       text-align: center;
-       margin: 0 0 0 5px;
-       content: "\f111";
-       display: inline-block;
-       width: 16px;
-       height: 16px;
-       -webkit-font-smoothing: antialiased;
-       font-size: 16px;
-       line-height: 1;
-       font-family: "dashicons";
-       text-decoration: inherit;
-       font-weight: normal;
-       font-style: normal;
-       vertical-align: top;
-       -webkit-transition: color .1s ease-in 0;
-       transition: color .1s ease-in 0;
-       text-align: center;
-}
-.more-filters.current:before {
-       color: #fff;
-}
-.more-filters-container {
-       display: none;
-       padding: 20px;
-       border-top: 1px solid #eee;
-       margin: 0 -20px;
-       background: #fafafa;
-}
-body.more-filters-opened .more-filters-container {
-       display: block;
-       overflow: hidden;
-}
-body.more-filters-opened .theme-section.current {
-       border-bottom: none;
-}
-body.more-filters-opened .theme-browser,
-body.more-filters-opened.filters-applied.loading-themes .theme-browser {
-       display: none;
-}
-body.more-filters-opened.filters-applied .theme-browser {
-       display: block;
-}
-.more-filters-container .filters-group {
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       box-sizing: border-box;
-       float: right;
-       width: 19%;
-       background: #fff;
-       margin: 0 0 0 1%;
-       border: 1px solid #e5e5e5;
-       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
-       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
-       padding: 10px;
-}
-.more-filters-container .wide-filters-group {
-       width: 38%;
-}
-.more-filters-container .feature-name {
-       margin: 0;
-       position: relative;
-}
-.more-filters-container ol {
-       list-style-type: none;
-       margin: 20px 0 0;
-       font-size: 12px;
-}
-.more-filters-container li {
-       display: inline-block;
-       vertical-align: top;
-       list-style-type: none;
-       margin: 5px 0;
-       padding-left: 25px;
-       width: 160px;
-}
-.theme-navigation .more-filters-container .apply-filters {
-       margin: 0 0 20px;
-}
-.theme-navigation .more-filters-container .clear-filters {
-       display: none;
-       margin: 0 10px 20px 0;
-}
-.more-filters-container .apply-filters span {
-       display: inline-block;
-       font-size: 12px;
-       text-indent: 10px;
-       opacity: 0.8;
-}
-.more-filters-container .filtering-by {
-       display: none;
-       margin: 0;
-}
-.more-filters-container .filtering-by > span {
-       font-weight: 600;
-}
-.more-filters-container .filtering-by .tags {
-       display: inline;
-}
-.more-filters-container .filtering-by .tag {
-       background: #fff;
-       border: 1px solid #e5e5e5;
-       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
-       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
-       font-size: 11px;
-       margin: 0 5px;
-       padding: 4px 8px;
-}
-.more-filters-container .filtering-by a {
-       margin-right: 10px;
-}
-body.filters-applied .more-filters-container .filters-group,
-body.filters-applied .more-filters-container a.button,
-body.filters-applied .more-filters-container br {
-       display: none !important;
-}
-body.filters-applied .more-filters-container .filtering-by {
-       display: block;
-}
-body.filters-applied .more-filters-container {
-       padding: 20px;
-}
 p.no-themes {
        color: #999;
        font-size: 18px;
 p.no-themes {
        color: #999;
        font-size: 18px;
@@ -1344,20 +1143,11 @@ body.show-upload-theme p.no-themes {
        display: none !important;
 }
 
        display: none !important;
 }
 
-
 .theme-install-php .add-new-theme {
        display: none !important;
 }
 
 @media only screen and (max-width: 1120px) {
 .theme-install-php .add-new-theme {
        display: none !important;
 }
 
 @media only screen and (max-width: 1120px) {
-       .theme-install-php .theme-search {
-               margin: 20px 0;
-               position: static;
-               width: 100%;
-       }
-       .more-filters-container {
-               border-bottom: 1px solid #eee;
-       }
        .upload-theme .wp-upload-form {
                margin: 20px 0;
                max-width: 100%;
        .upload-theme .wp-upload-form {
                margin: 20px 0;
                max-width: 100%;
@@ -1367,23 +1157,6 @@ body.show-upload-theme p.no-themes {
                padding: 20px 0 0;
                text-align: right;
        }
                padding: 20px 0 0;
                text-align: right;
        }
-       .more-filters-container .filters-group {
-               margin-bottom: 0;
-               margin-top: 5px;
-               width: 100%;
-       }
-       .more-filters-container .filters-group li {
-               margin: 10px 0;
-       }
-}
-
-@media only screen and (max-width: 782px) {
-       .more-filters-container .filters-group {
-               width: 100%;
-       }
-       .more-filters-container .filters-group li {
-               width: 100%;
-       }
 }
 
 .rating {
 }
 
 .rating {
@@ -1447,15 +1220,6 @@ body.show-upload-theme p.no-themes {
        line-height: 20px;
        color: #999;
 }
        line-height: 20px;
        color: #999;
 }
-.loading-themes .theme-browser,
-.error .theme-browser {
-       display: none;
-}
-.loading-themes .spinner {
-       display: block;
-       margin: 40px auto 0;
-       float: none;
-}
 
 /*------------------------------------------------------------------------------
   16.3 - Custom Header Screen
 
 /*------------------------------------------------------------------------------
   16.3 - Custom Header Screen
@@ -1617,9 +1381,85 @@ body.full-overlay-active {
        overflow: auto;
 }
 
        overflow: auto;
 }
 
-/* Close Link */
-.wp-full-overlay .close-full-overlay {
+/* Close & Navigation Links */
+.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header {
+       padding: 0;
+}
+
+.theme-install-overlay .close-full-overlay,
+.theme-install-overlay .previous-theme,
+.theme-install-overlay .next-theme {
+       display: block;
+       position: relative;
+       float: right;
+       width: 45px;
+       height: 45px;
+       padding-left: 2px;
+       background: #eee;
+       border-left: 1px solid #ddd;
+       color: #444;
+       cursor: pointer;
        text-decoration: none;
        text-decoration: none;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.theme-install-overlay .close-full-overlay:hover,
+.theme-install-overlay .close-full-overlay:focus,
+.theme-install-overlay .previous-theme:hover,
+.theme-install-overlay .previous-theme:focus,
+.theme-install-overlay .next-theme:hover,
+.theme-install-overlay .next-theme:focus {
+       background: #ddd;
+       border-color: #ccc;
+       color: #000;
+       outline: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
+}
+
+.theme-install-overlay .close-full-overlay:before {
+       font: normal 22px/1 dashicons;
+       content: "\f335";
+       position: relative;
+       top: 7px;
+       right: 13px;
+}
+
+.theme-install-overlay .previous-theme:before {
+       font: normal 20px/1 dashicons;
+       content: "\f341";
+       position: relative;
+       top: 6px;
+       right: 14px;
+}
+
+.theme-install-overlay .next-theme:before {
+       font: normal 20px/1 dashicons;
+       content: "\f345";
+       position: relative;
+       top: 6px;
+       right: 13px;
+}
+
+.theme-install-overlay .previous-theme.disabled,
+.theme-install-overlay .next-theme.disabled,
+.theme-install-overlay .previous-theme.disabled:hover,
+.theme-install-overlay .previous-theme.disabled:focus,
+.theme-install-overlay .next-theme.disabled:hover,
+.theme-install-overlay .next-theme.disabled:focus {
+       color: #bbb;
+       background: #eee;
+       cursor: default;
+       pointer-events: none;
+}
+
+.rtl .theme-install-overlay .previous-theme:before {
+       content: "\f345";
+}
+
+.rtl .theme-install-overlay .next-theme:before {
+       content: "\f341";
 }
 
 /* Collapse Button */
 }
 
 /* Collapse Button */
@@ -1704,19 +1544,6 @@ body.full-overlay-active {
        display: none;
 }
 
        display: none;
 }
 
-.wp-full-overlay .theme-navigation {
-       padding: 10px 20px;
-       position: absolute;
-               bottom: 10px;
-       text-align: right;
-}
-.wp-full-overlay .theme-navigation .next-theme {
-       float: left;
-}
-.wp-full-overlay.no-navigation .theme-navigation {
-       display: none;
-}
-
 /* Animations */
 .wp-full-overlay,
 .wp-full-overlay-sidebar,
 /* Animations */
 .wp-full-overlay,
 .wp-full-overlay-sidebar,
@@ -1845,19 +1672,22 @@ body.full-overlay-active {
        max-width: 100%;
 }
 
        max-width: 100%;
 }
 
-.theme-install-overlay .wp-full-overlay-header {
-       margin-top: 9px;
-}
-
 .theme-install-overlay .wp-full-overlay-header .theme-install {
        float: left;
 .theme-install-overlay .wp-full-overlay-header .theme-install {
        float: left;
+       margin: 8px 0 0 10px;
        /* For when .theme-install is a span rather than a.button-primary (already installed theme) */
        line-height: 26px;
 }
 
 .theme-install-overlay .wp-full-overlay-sidebar {
        /* For when .theme-install is a span rather than a.button-primary (already installed theme) */
        line-height: 26px;
 }
 
 .theme-install-overlay .wp-full-overlay-sidebar {
-       background: #EEE;
-       border-left: 1px solid #DDD;
+       background: #eee;
+       border-left: 1px solid #ddd;
+}
+
+.theme-install-overlay .wp-full-overlay-sidebar-content {
+       background: #fff;
+       border-top: 1px solid #ddd;
+       border-bottom: 1px solid #ddd;
 }
 
 .theme-install-overlay .wp-full-overlay-main {
 }
 
 .theme-install-overlay .wp-full-overlay-main {
index 13076cbf6fc37396803ed6c6370b1df6dc1010a1..6ff0f9ffe07d79a0f2ac02b49e4f30acb0870065 100644 (file)
        margin-left: 20px;
 }
 
        margin-left: 20px;
 }
 
-.themes-php .wrap .theme-count,
-.theme-navigation .theme-count {
-       color: #fff;
-       -webkit-border-radius: 30px;
-       border-radius: 30px;
-       background: #777;
-       font-size: 14px;
-       padding: 4px 10px;
-       font-weight: 600;
-       margin-left: 5px;
-       margin-right: 20px;
+/* Search form */
+.themes-php .wp-filter-search {
        position: relative;
        position: relative;
-       top: -3px;
-}
-
-.theme-navigation a {
-       text-decoration:none;
+       top: -2px;
+       left: 20px;
+       margin: 0;
+       width: 280px;
+       font-size: 16px;
+       font-weight: 300;
+       line-height: 1.5;
 }
 
 /* Position admin messages */
 }
 
 /* Position admin messages */
        -webkit-transition: opacity 0.1s ease-in-out;
        transition: opacity 0.1s ease-in-out;
 }
        -webkit-transition: opacity 0.1s ease-in-out;
        transition: opacity 0.1s ease-in-out;
 }
+
 .theme-browser .theme:focus {
 .theme-browser .theme:focus {
-       outline: 1px dotted #222;
+       border-color: #5b9dd9;
+       -webkit-box-shadow: 0 0 2px rgba( 30, 140, 190, 0.8 );
+       box-shadow: 0 0 2px rgba( 30, 140, 190, 0.8 );
 }
 
 .theme-browser .theme:focus .more-details {
        opacity: 1;
 }
 }
 
 .theme-browser .theme:focus .more-details {
        opacity: 1;
 }
+
 /* Current theme needs to have its action always on view */
 .theme-browser .theme.active:focus .theme-actions {
        display: block;
 /* Current theme needs to have its action always on view */
 .theme-browser .theme.active:focus .theme-actions {
        display: block;
        z-index: 2;
 }
 
        z-index: 2;
 }
 
-/*
- * The search form
- */
-.themes-php .theme-search {
-       position: relative;
-       top: -2px;
-       left: 20px;
-       font-size: 16px;
-       font-weight: 300;
-       line-height: 1.5;
-       width: 280px;
-}
-
 /**
  * Theme Overlay
  * Shown when clicking a theme
 /**
  * Theme Overlay
  * Shown when clicking a theme
        z-index: 10;
 }
 
        z-index: 10;
 }
 
-body.theme-overlay-open {
-       overflow: hidden;
-}
-
 .theme-overlay .theme-header {
        position: absolute;
        top: 0;
 .theme-overlay .theme-header {
        position: absolute;
        top: 0;
@@ -451,15 +431,12 @@ body.theme-overlay-open {
        border: 0;
        border-left: 1px solid #ddd;
        background-color: transparent;
        border: 0;
        border-left: 1px solid #ddd;
        background-color: transparent;
-}
-
-.theme-overlay .theme-header .close:hover:before,
-.theme-overlay .theme-header .close:focus:before {
-       color: #fff;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
 }
 
 .theme-overlay .theme-header .close:before {
 }
 
 .theme-overlay .theme-header .close:before {
-       font: normal 30px/50px 'dashicons' !important;
+       font: normal 22px/50px 'dashicons' !important;
        color: #777;
        display: inline-block;
        content: '\f335';
        color: #777;
        display: inline-block;
        content: '\f335';
@@ -478,16 +455,32 @@ body.theme-overlay-open {
        text-align: center;
        border: 0;
        border-right: 1px solid #ddd;
        text-align: center;
        border: 0;
        border-right: 1px solid #ddd;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
 }
 
 }
 
+.theme-overlay .theme-header .close:focus,
 .theme-overlay .theme-header .close:hover,
 .theme-overlay .theme-header .close:hover,
+.theme-overlay .theme-header .right:focus,
 .theme-overlay .theme-header .right:hover,
 .theme-overlay .theme-header .right:hover,
-.theme-overlay .theme-header .left:hover,
+.theme-overlay .theme-header .left:focus,
+.theme-overlay .theme-header .left:hover {
+       background: #ddd;
+       border-color: #ccc;
+       color: #000;
+}
+
+.theme-overlay .theme-header .close:focus:before,
+.theme-overlay .theme-header .close:hover:before {
+       color: #000;
+}
+
 .theme-overlay .theme-header .close:focus,
 .theme-overlay .theme-header .right:focus,
 .theme-overlay .theme-header .left:focus {
 .theme-overlay .theme-header .close:focus,
 .theme-overlay .theme-header .right:focus,
 .theme-overlay .theme-header .left:focus {
-       background: #0074a2;
-       color: #fff;
+    -webkit-box-shadow: none;
+    box-shadow: none;
+    outline: none;
 }
 
 .theme-overlay .theme-header .left.disabled,
 }
 
 .theme-overlay .theme-header .left.disabled,
@@ -506,21 +499,17 @@ body.theme-overlay-open {
        font-weight: 300;
 }
 
        font-weight: 300;
 }
 
-.theme-overlay .theme-header .left:before {
-       content: '\f340';
-}
-
-.theme-overlay .theme-header .right:before {
-       content: '\f344';
+.theme-overlay .theme-header .left:before,
+.rtl .theme-overlay .theme-header .right:before {
+       content: '\f341';
 }
 
 }
 
+.theme-overlay .theme-header .right:before,
 .rtl .theme-overlay .theme-header .left:before {
        content: '\f345';
 }
 
 .rtl .theme-overlay .theme-header .left:before {
        content: '\f345';
 }
 
-.rtl .theme-overlay .theme-header .right:before {
-       content: '\f341';
-}
+
 
 .theme-overlay .theme-wrap {
        clear: both;
 
 .theme-overlay .theme-wrap {
        clear: both;
@@ -1025,7 +1014,7 @@ body.folded .theme-overlay .theme-wrap {
                width: 100%;
        }
 
                width: 100%;
        }
 
-       .themes-php .theme-search {
+       .themes-php .wp-filter-search {
                float: none;
                clear: both;
                left: 0;
                float: none;
                clear: both;
                left: 0;
@@ -1088,21 +1077,6 @@ body.folded .theme-overlay .theme-wrap {
        display: none !important;
 }
 
        display: none !important;
 }
 
-.theme-navigation {
-       background: #fff;
-       -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
-       box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       box-sizing: border-box;
-       color: #555;
-       display: inline-block;
-       font-size: 13px;
-       margin: 20px 0 30px;
-       padding: 0 20px;
-       position: relative;
-       width: 100%;
-}
 .theme-install-php a.upload,
 .theme-install-php a.browse-themes {
        cursor: pointer;
 .theme-install-php a.upload,
 .theme-install-php a.browse-themes {
        cursor: pointer;
@@ -1114,29 +1088,33 @@ body.folded .theme-overlay .theme-wrap {
 .theme-install-php.show-upload-theme a.browse-themes {
        display: inline;
 }
 .theme-install-php.show-upload-theme a.browse-themes {
        display: inline;
 }
-.upload-theme {
+.upload-theme,
+.upload-plugin {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        display: none;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        display: none;
-       margin: 0px 0 0;
+       margin: 0;
        padding: 0;
        width: 100%;
        overflow: hidden;
        position: relative;
        top: 10px;
 }
        padding: 0;
        width: 100%;
        overflow: hidden;
        position: relative;
        top: 10px;
 }
-body.show-upload-theme .upload-theme {
+body.show-upload-theme .upload-theme,
+.upload-plugin {
        display: block;
 }
        display: block;
 }
-.upload-theme .wp-upload-form {
+.upload-theme .wp-upload-form,
+.upload-plugin .wp-upload-form {
        background: #fafafa;
        border: 1px solid #e5e5e5;
        padding: 30px;
        margin: 30px auto;
        max-width: 380px;
 }
        background: #fafafa;
        border: 1px solid #e5e5e5;
        padding: 30px;
        margin: 30px auto;
        max-width: 380px;
 }
-.upload-theme .install-help {
+.upload-theme .install-help,
+.upload-plugin .install-help {
        color: #999;
        font-size: 18px;
        font-style: normal;
        color: #999;
        font-size: 18px;
        font-style: normal;
@@ -1144,190 +1122,11 @@ body.show-upload-theme .upload-theme {
        padding: 40px 0 0;
        text-align: center;
 }
        padding: 40px 0 0;
        text-align: center;
 }
-body.show-upload-theme .upload-theme + .theme-navigation,
-body.show-upload-theme .upload-theme + .theme-navigation + .theme-browser {
+body.show-upload-theme .upload-theme + .wp-filter,
+body.show-upload-theme .upload-theme + .wp-filter + .theme-browser {
        display: none;
 }
        display: none;
 }
-.theme-navigation .theme-count {
-       margin-left: 0;
-       position: absolute;
-       top: 12px;
-}
-.theme-count + .theme-section {
-       margin-left: 60px;
-}
-.theme-section,
-.theme-filter {
-       border-bottom: 4px solid #fff;
-       color: #666;
-       cursor: pointer;
-       display: inline-block;
-       margin: 0 10px;
-       padding: 15px 0;
-}
-.theme-section.current,
-.theme-filter.current {
-       border-bottom: 4px solid #666;
-       color: #222;
-}
-.theme-top-filters {
-       display: inline-block;
-}
-.theme-navigation .more-filters {
-       color: #666;
-       cursor: pointer;
-       display: inline-block;
-       margin: 0 10px;
-       padding: 4px 6px;
-}
-body.more-filters-opened .more-filters,
-body.more-filters-opened .more-filters:before {
-       background: #777;
-       -webkit-border-radius: 2px;
-       border-radius: 2px;
-       border: none;
-       color: #fff;
-}
 
 
-body.more-filters-opened .more-filters:hover,
-body.more-filters-opened .more-filters:focus,
-body.more-filters-opened .more-filters:hover:before,
-body.more-filters-opened .more-filters:focus:before {
-       background: rgb(46, 162, 204);
-}
-
-.theme-install-php .theme-search {
-       position: absolute;
-       right: 10px;
-       top: 9px;
-       font-size: 16px;
-       font-weight: 300;
-       line-height: 1.5;
-       width: 280px;
-}
-.more-filters:before {
-       color: #777;
-       text-align: center;
-       margin: 0 5px 0 0;
-       content: "\f111";
-       display: inline-block;
-       width: 16px;
-       height: 16px;
-       -webkit-font-smoothing: antialiased;
-       font-size: 16px;
-       line-height: 1;
-       font-family: "dashicons";
-       text-decoration: inherit;
-       font-weight: normal;
-       font-style: normal;
-       vertical-align: top;
-       -webkit-transition: color .1s ease-in 0;
-       transition: color .1s ease-in 0;
-       text-align: center;
-}
-.more-filters.current:before {
-       color: #fff;
-}
-.more-filters-container {
-       display: none;
-       padding: 20px;
-       border-top: 1px solid #eee;
-       margin: 0 -20px;
-       background: #fafafa;
-}
-body.more-filters-opened .more-filters-container {
-       display: block;
-       overflow: hidden;
-}
-body.more-filters-opened .theme-section.current {
-       border-bottom: none;
-}
-body.more-filters-opened .theme-browser,
-body.more-filters-opened.filters-applied.loading-themes .theme-browser {
-       display: none;
-}
-body.more-filters-opened.filters-applied .theme-browser {
-       display: block;
-}
-.more-filters-container .filters-group {
-       -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-       box-sizing: border-box;
-       float: left;
-       width: 19%;
-       background: #fff;
-       margin: 0 1% 0 0;
-       border: 1px solid #e5e5e5;
-       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
-       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
-       padding: 10px;
-}
-.more-filters-container .wide-filters-group {
-       width: 38%;
-}
-.more-filters-container .feature-name {
-       margin: 0;
-       position: relative;
-}
-.more-filters-container ol {
-       list-style-type: none;
-       margin: 20px 0 0;
-       font-size: 12px;
-}
-.more-filters-container li {
-       display: inline-block;
-       vertical-align: top;
-       list-style-type: none;
-       margin: 5px 0;
-       padding-right: 25px;
-       width: 160px;
-}
-.theme-navigation .more-filters-container .apply-filters {
-       margin: 0 0 20px;
-}
-.theme-navigation .more-filters-container .clear-filters {
-       display: none;
-       margin: 0 0 20px 10px;
-}
-.more-filters-container .apply-filters span {
-       display: inline-block;
-       font-size: 12px;
-       text-indent: 10px;
-       opacity: 0.8;
-}
-.more-filters-container .filtering-by {
-       display: none;
-       margin: 0;
-}
-.more-filters-container .filtering-by > span {
-       font-weight: 600;
-}
-.more-filters-container .filtering-by .tags {
-       display: inline;
-}
-.more-filters-container .filtering-by .tag {
-       background: #fff;
-       border: 1px solid #e5e5e5;
-       -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.04);
-       box-shadow: 0 1px 1px rgba(0,0,0,0.04);
-       font-size: 11px;
-       margin: 0 5px;
-       padding: 4px 8px;
-}
-.more-filters-container .filtering-by a {
-       margin-left: 10px;
-}
-body.filters-applied .more-filters-container .filters-group,
-body.filters-applied .more-filters-container a.button,
-body.filters-applied .more-filters-container br {
-       display: none !important;
-}
-body.filters-applied .more-filters-container .filtering-by {
-       display: block;
-}
-body.filters-applied .more-filters-container {
-       padding: 20px;
-}
 p.no-themes {
        color: #999;
        font-size: 18px;
 p.no-themes {
        color: #999;
        font-size: 18px;
@@ -1344,20 +1143,11 @@ body.show-upload-theme p.no-themes {
        display: none !important;
 }
 
        display: none !important;
 }
 
-
 .theme-install-php .add-new-theme {
        display: none !important;
 }
 
 @media only screen and (max-width: 1120px) {
 .theme-install-php .add-new-theme {
        display: none !important;
 }
 
 @media only screen and (max-width: 1120px) {
-       .theme-install-php .theme-search {
-               margin: 20px 0;
-               position: static;
-               width: 100%;
-       }
-       .more-filters-container {
-               border-bottom: 1px solid #eee;
-       }
        .upload-theme .wp-upload-form {
                margin: 20px 0;
                max-width: 100%;
        .upload-theme .wp-upload-form {
                margin: 20px 0;
                max-width: 100%;
@@ -1367,23 +1157,6 @@ body.show-upload-theme p.no-themes {
                padding: 20px 0 0;
                text-align: left;
        }
                padding: 20px 0 0;
                text-align: left;
        }
-       .more-filters-container .filters-group {
-               margin-bottom: 0;
-               margin-top: 5px;
-               width: 100%;
-       }
-       .more-filters-container .filters-group li {
-               margin: 10px 0;
-       }
-}
-
-@media only screen and (max-width: 782px) {
-       .more-filters-container .filters-group {
-               width: 100%;
-       }
-       .more-filters-container .filters-group li {
-               width: 100%;
-       }
 }
 
 .rating {
 }
 
 .rating {
@@ -1447,15 +1220,6 @@ body.show-upload-theme p.no-themes {
        line-height: 20px;
        color: #999;
 }
        line-height: 20px;
        color: #999;
 }
-.loading-themes .theme-browser,
-.error .theme-browser {
-       display: none;
-}
-.loading-themes .spinner {
-       display: block;
-       margin: 40px auto 0;
-       float: none;
-}
 
 /*------------------------------------------------------------------------------
   16.3 - Custom Header Screen
 
 /*------------------------------------------------------------------------------
   16.3 - Custom Header Screen
@@ -1617,9 +1381,85 @@ body.full-overlay-active {
        overflow: auto;
 }
 
        overflow: auto;
 }
 
-/* Close Link */
-.wp-full-overlay .close-full-overlay {
+/* Close & Navigation Links */
+.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header {
+       padding: 0;
+}
+
+.theme-install-overlay .close-full-overlay,
+.theme-install-overlay .previous-theme,
+.theme-install-overlay .next-theme {
+       display: block;
+       position: relative;
+       float: left;
+       width: 45px;
+       height: 45px;
+       padding-right: 2px;
+       background: #eee;
+       border-right: 1px solid #ddd;
+       color: #444;
+       cursor: pointer;
        text-decoration: none;
        text-decoration: none;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.theme-install-overlay .close-full-overlay:hover,
+.theme-install-overlay .close-full-overlay:focus,
+.theme-install-overlay .previous-theme:hover,
+.theme-install-overlay .previous-theme:focus,
+.theme-install-overlay .next-theme:hover,
+.theme-install-overlay .next-theme:focus {
+       background: #ddd;
+       border-color: #ccc;
+       color: #000;
+       outline: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
+}
+
+.theme-install-overlay .close-full-overlay:before {
+       font: normal 22px/1 dashicons;
+       content: "\f335";
+       position: relative;
+       top: 7px;
+       left: 13px;
+}
+
+.theme-install-overlay .previous-theme:before {
+       font: normal 20px/1 dashicons;
+       content: "\f341";
+       position: relative;
+       top: 6px;
+       left: 14px;
+}
+
+.theme-install-overlay .next-theme:before {
+       font: normal 20px/1 dashicons;
+       content: "\f345";
+       position: relative;
+       top: 6px;
+       left: 13px;
+}
+
+.theme-install-overlay .previous-theme.disabled,
+.theme-install-overlay .next-theme.disabled,
+.theme-install-overlay .previous-theme.disabled:hover,
+.theme-install-overlay .previous-theme.disabled:focus,
+.theme-install-overlay .next-theme.disabled:hover,
+.theme-install-overlay .next-theme.disabled:focus {
+       color: #bbb;
+       background: #eee;
+       cursor: default;
+       pointer-events: none;
+}
+
+.rtl .theme-install-overlay .previous-theme:before {
+       content: "\f345";
+}
+
+.rtl .theme-install-overlay .next-theme:before {
+       content: "\f341";
 }
 
 /* Collapse Button */
 }
 
 /* Collapse Button */
@@ -1704,19 +1544,6 @@ body.full-overlay-active {
        display: none;
 }
 
        display: none;
 }
 
-.wp-full-overlay .theme-navigation {
-       padding: 10px 20px;
-       position: absolute;
-               bottom: 10px;
-       text-align: left;
-}
-.wp-full-overlay .theme-navigation .next-theme {
-       float: right;
-}
-.wp-full-overlay.no-navigation .theme-navigation {
-       display: none;
-}
-
 /* Animations */
 .wp-full-overlay,
 .wp-full-overlay-sidebar,
 /* Animations */
 .wp-full-overlay,
 .wp-full-overlay-sidebar,
@@ -1845,19 +1672,22 @@ body.full-overlay-active {
        max-width: 100%;
 }
 
        max-width: 100%;
 }
 
-.theme-install-overlay .wp-full-overlay-header {
-       margin-top: 9px;
-}
-
 .theme-install-overlay .wp-full-overlay-header .theme-install {
        float: right;
 .theme-install-overlay .wp-full-overlay-header .theme-install {
        float: right;
+       margin: 8px 10px 0 0;
        /* For when .theme-install is a span rather than a.button-primary (already installed theme) */
        line-height: 26px;
 }
 
 .theme-install-overlay .wp-full-overlay-sidebar {
        /* For when .theme-install is a span rather than a.button-primary (already installed theme) */
        line-height: 26px;
 }
 
 .theme-install-overlay .wp-full-overlay-sidebar {
-       background: #EEE;
-       border-right: 1px solid #DDD;
+       background: #eee;
+       border-right: 1px solid #ddd;
+}
+
+.theme-install-overlay .wp-full-overlay-sidebar-content {
+       background: #fff;
+       border-top: 1px solid #ddd;
+       border-bottom: 1px solid #ddd;
 }
 
 .theme-install-overlay .wp-full-overlay-main {
 }
 
 .theme-install-overlay .wp-full-overlay-main {
index be4d9c3074106c7092ff7f13e260bbfc8b4d247b..187f00573d68819fc4d8214f5f1d3000b149a3e0 100644 (file)
@@ -16,6 +16,9 @@
 
 .widget-top a.widget-action,
 .widget-top a.widget-action:hover {
 
 .widget-top a.widget-action,
 .widget-top a.widget-action:hover {
+       -webkit-box-shadow: none;
+       box-shadow: none;
+       outline: none;
        text-decoration: none;
 }
 
        text-decoration: none;
 }
 
index 75014f6ddc1cf37da614885311b2f20d0356b009..409a39371eeb79b05d8444675fd0f116e98b7952 100644 (file)
@@ -16,6 +16,9 @@
 
 .widget-top a.widget-action,
 .widget-top a.widget-action:hover {
 
 .widget-top a.widget-action,
 .widget-top a.widget-action:hover {
+       -webkit-box-shadow: none;
+       box-shadow: none;
+       outline: none;
        text-decoration: none;
 }
 
        text-decoration: none;
 }
 
index 25e9fbbe8ba19efa47c8d2029e30bebd9f314124..4c5e357afe83a982ab184fbcc991f2ad47210db5 100644 (file)
@@ -1 +1 @@
-#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%}#wpcontent,#wpfooter{margin-right:180px}.folded #wpcontent,.folded #wpfooter{margin-right:56px}#wpbody-content{padding-bottom:65px;float:right;width:100%;overflow:visible!important}.inner-sidebar{float:left;clear:left;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-left:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:right;clear:right;width:100%;margin-left:-2000px}.has-right-sidebar #post-body-content{margin-left:300px;float:none;width:auto}#col-container,#col-left,#col-right{overflow:hidden;padding:0;margin:0}#col-left{width:35%}#col-right{float:left;clear:left;width:65%}.col-wrap{padding:0 7px}.alignleft{float:right}.alignright{float:left}.textleft{text-align:right}.textright{text-align:left}.clear{clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{right:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}html{background:#f1f1f1}body{color:#444;font-family:"Open Sans",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0074a2;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#2ea2cc}a:focus{color:#124964}a:active,a:focus{outline:thin dotted}#adminmenu a:active,#adminmenu a:focus,.screen-reader-text:focus{outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2{color:#222;font-size:1.5em;margin:.83em 0;font-weight:400}h3{color:#222;font-size:1.3em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-right:2em}ul.ul-disc{list-style:disc outside}ul.ul-square{list-style:square outside}ol.ol-decimal{list-style:decimal outside}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-right:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.ltr{direction:ltr}.code,code{font-family:Consolas,Monaco,monospace;direction:ltr}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;float:right;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#999;font-weight:400}.subsubsub a.current{font-weight:600;border:0}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:0}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat th{text-align:right;line-height:1.3em;font-size:14px}.widefat th input{margin:0 8px 0 0;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.widefat th input[type=checkbox]{margin-top:-1px}.widefat.media .check-column{padding-top:8px}.widefat tbody th.check-column,.widefat tfoot th.check-column,.widefat thead th.check-column{padding:11px 3px 0 0}.widefat thead th.check-column{padding-top:10px}.update-php div.error,.update-php div.updated{margin-right:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 2px 0 20px}div.error,div.updated{margin:5px 15px 2px}div.error p,div.updated p{margin:.5em 0;padding:2px}.media-upload-form div.error,.wrap div.error,.wrap div.updated{margin:5px 0 15px}div.updated{border-right:4px solid #7ad03a;padding:1px 12px;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}div.error{border-right:4px solid #dd3d36;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:1px 12px}.attention{color:#2ea2cc}.subtitle,.wrap h2{font-weight:400;margin:0}.wrap h2{font-size:23px;font-weight:400;padding:9px 0 4px 15px;line-height:29px}.subtitle{color:#777;font-size:14px;padding-right:25px}.wrap .add-new-h2,.wrap .add-new-h2:active{margin-right:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:0;-webkit-border-radius:2px;border-radius:2px;background:#e0e0e0;text-shadow:none;font-weight:600;font-size:13px}.wrap .add-new-h2:hover{background:#2ea2cc;color:#fff}.wrap h2.long-header{padding-left:0}.wp-dialog{background-color:#fff}.sorthelper{background-color:#ccf3fa}.ac_match,.subsubsub a.current{color:#000}.alt,.alternate{background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-left-color:#99d}.media-upload-form label.form-help,td.help{color:#9a9a9a}.highlight{background-color:#e4f2fd;color:#000}.wp-ui-primary{color:#fff;background-color:#333}.wp-ui-text-primary{color:#333}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#999}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox h3,.side-info,.sidebar-name,.stuffbox h3,.widefat tfoot th,.widefat thead th,.widget .widget-top,h3.dashboard-widget-title,h3.dashboard-widget-title small,h3.dashboard-widget-title span{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#222}#namediv h3,#submitdiv h3,.postbox h3{border-bottom:1px solid #eee}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,#welcome-panel.welcome-panel .welcome-panel-close::before,.tagchecklist span a:before{background:0 0;color:#bbb;content:'\f153';display:block!important;font:400 16px/1 dashicons;speak:none;height:20px;margin:2px 0;text-align:center;width:20px;-webkit-font-smoothing:antialiased!important}#bulk-titles div a:hover:before,#welcome-panel.welcome-panel .welcome-panel-close:hover:before,.tagchecklist span a:hover:before{color:#c00}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap;word-wrap:break-word}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,.widget-control-remove:hover,abbr.required{color:red;text-decoration:none;border:0}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{line-height:28px;vertical-align:middle;text-align:right;float:right}#publishing-action{text-align:left;float:left;line-height:23px}#publishing-action .spinner{float:right}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:left}#save-post{float:right}.preview{float:left}#sticky-span{margin-right:18px}.side-info{margin:0;padding:4px;font-size:11px}.side-info h5{padding-bottom:7px;font-size:14px;margin:12px 2px 5px;border-bottom:1px solid #dadada}.side-info ul{margin:0;padding-right:18px;list-style:square;color:#666}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:left}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:right;margin:25px 2px 0 20px;background-color:#fff;border-right:4px solid #ffba00;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.update-message{color:#000}.update-php .spinner{float:none;margin:-4px 0}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-right:2em}#adminmenu a,#catlist a,#sidemenu a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-right:0!important}#screen-meta .screen-reader-text{visibility:hidden}#screen-meta-links{margin:0 0 0 20px}#screen-meta-links a{padding:3px 16px 3px 6px}#screen-meta-links a:focus{outline:0}#screen-meta{display:none;margin:0 0 -1px 20px;position:relative;background-color:#fff;border:1px solid #ddd;border-top:0;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.025);box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:left;height:28px;margin:0 6px 0 0;border:1px solid #ddd;border-top:0;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links a{color:#777}#screen-meta-links a:active,#screen-meta-links a:focus,#screen-meta-links a:hover{color:#333}#screen-meta-links a:focus{border-color:#aaa;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.15);box-shadow:0 2px 3px rgba(0,0,0,.15)}#screen-meta-links a.show-settings{display:block;font-size:13px;height:22px;line-height:22px;text-decoration:none;z-index:1}#screen-meta-links a:after{left:0;content:'\f140';font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 5px;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#bbb}#screen-meta-links a.screen-meta-active:after{content:'\f142'}#screen-meta-links a.show-settings:hover{text-decoration:none}.toggle-arrow{background-repeat:no-repeat;background-position:top right;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom right}#contextual-help-wrap h5,#screen-options-wrap h5{margin:8px 0;font-size:13px}.metabox-prefs label{display:inline-block;padding-left:15px;line-height:30px}.metabox-prefs label input[type=checkbox]{margin-top:-4px;margin-left:6px}.metabox-prefs label input{margin:0 2px 0 5px}.metabox-prefs .columns-prefs label input{margin:0 2px}.metabox-prefs label a{display:none}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;right:150px;left:170px;border:1px solid #e1e1e1;border-top:0;border-bottom:0;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;border-left-width:0;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px}.contextual-help-tabs{float:right;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 2px 0 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 12px 5px 5px;line-height:18px;text-decoration:none;border:1px solid transparent;border-left:0;border-right:0}.contextual-help-tabs a:hover{color:#333}.contextual-help-tabs .active{padding:0;margin:0 0 0 -1px;border-right:2px solid #2ea2cc;background:#f6fbfd;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02);box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#333}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 0 12px 22px;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-right:18px}.contextual-help-sidebar{width:150px;float:left;padding:0 12px 0 8px;overflow:auto}html.wp-toolbar{padding-top:32px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.narrow{width:70%;margin-bottom:40px}.narrow p{line-height:150%}.widefat td,.widefat th{overflow:hidden;color:#555}.widefat th{font-weight:400}.widefat tfoot tr th,.widefat thead tr th{color:#333}.widefat td p{margin:2px 0 .8em}.widefat ol,.widefat p,.widefat ul{color:#333}.widefat .column-comment p{margin:.6em 0}.postbox-container{float:right}.postbox-container .meta-box-sortables{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #bbb;height:250px}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0 none;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:right}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0 none;height:0;min-height:0}}.js .postbox .hndle{cursor:move}.hndle a{font-size:11px;font-weight:400}.postbox .handlediv{float:left;width:27px;height:30px}.js .postbox .handlediv{cursor:pointer}.sortable-placeholder{border:1px dashed #bbb;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox h3,.stuffbox h3{margin-top:1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .postbox h3,.js .widget .widget-top{cursor:move}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:0;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{-webkit-box-shadow:none;box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 5px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.plugins .name{font-weight:600}#wpfooter{position:absolute;bottom:0;right:0;left:0;padding:10px 0;margin-left:20px;color:#777}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}#wpfooter a{text-decoration:none}#wpfooter a:hover{text-decoration:underline}.nav-tab{border:1px solid #ccc;border-bottom:0;background:#e4e4e4;color:#555;font-size:12px;line-height:16px;display:inline-block;padding:4px 14px 6px;text-decoration:none;margin:-4px 0 -1px 4px}.nav-tab:hover{background-color:#fff;color:#464646}.nav-tab-active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}h2.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom:1px solid #ccc;padding-bottom:0;padding-right:10px}h2 .nav-tab{padding:6px 10px;font-weight:700;font-size:15px;line-height:24px}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:left;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}#template div{margin-left:190px}.metabox-holder h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#templateside ul li a{text-decoration:none}#sidemenu{margin:-30px 315px 0 15px;list-style:none;position:relative;float:left;padding-right:10px;font-size:12px}#sidemenu a{padding:0 7px;display:block;float:right;line-height:28px;border-top:1px solid #f9f9f9;border-bottom:1px solid #dfdfdf;background-color:#f9f9f9;-webkit-transition:none;transition:none}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:400;padding-right:6px;padding-left:6px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;border:1px solid #dfdfdf;border-bottom-color:#f1f1f1;background-color:#f1f1f1;color:#000}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:right}.error-message{color:red;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}td.media-icon{text-align:center;width:80px;padding-top:8px;padding-bottom:8px}td.media-icon img{max-width:80px;max-height:60px}#howto{font-size:11px;margin:0 5px;display:block}.importers td{padding-left:14px}.importers{font-size:16px;width:auto}#post-body #post-body-content #namediv h3{margin-top:0}#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:0;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) repeat-x bottom right}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) repeat-x top right;height:17px;float:right}.star-rating{white-space:nowrap}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center;color:#0074a2}.star-rating .star-full:before{content:'\f155'}.star-rating .star-half:before{content:'\f459'}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:'\f154'}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fcfcfc;position:fixed;top:0;left:0;bottom:0;right:0;height:auto;padding:0}#plugin-information-title{padding:0 20px 0 76px;font-size:22px;font-weight:600;line-height:56px;top:0;left:0;right:0;height:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-tabs{padding:0 16px;position:absolute;top:56px;left:0;right:0;height:36px;z-index:1}#plugin-information-tabs a{position:relative;float:right;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;-webkit-transition:none;transition:none}#plugin-information-tabs a.current{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:0;color:#333}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd;position:absolute;top:90px;left:0;bottom:58px;right:0}#section-holder{margin:0;padding:10px 26px;position:absolute;top:0;left:250px;bottom:0;right:0;overflow:auto}#section-holder .updated{margin:16px 0}#plugin-information .fyi{background:#f3f3f3;border-right:1px solid #ddd;color:#666;padding:16px;position:absolute;top:0;left:0;bottom:0;width:217px;overflow:auto}#plugin-information .fyi strong{color:#464646}#plugin-information .fyi h3{font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-left:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information-footer{padding:15px 16px;position:absolute;left:0;bottom:0;right:0;height:28px}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-right:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-right:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}.plugin-version-author-uri{font-size:13px}@media screen and (max-width:782px){#plugin-information-content{overflow:auto;bottom:58px}#plugin-information .fyi{border:1px solid #ddd;position:static;width:auto;margin:26px 26px 16px}#section-holder{position:static}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc url( ../images/spinner.gif ) no-repeat center}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc url( ../images/spinner-2x.gif ) no-repeat center;-webkit-background-size:20px 20px;background-size:20px 20px}}body.import-php #TB_title,body.index-php #TB_title,body.plugin-install-php #TB_title,body.plugins-php #TB_title,body.update-core-php #TB_title{float:right;height:1px}body.import-php #TB_ajaxWindowTitle,body.index-php #TB_ajaxWindowTitle,body.plugin-install-php #TB_ajaxWindowTitle,body.plugins-php #TB_ajaxWindowTitle,body.update-core-php #TB_ajaxWindowTitle{display:none}body.import-php .tb-close-icon,body.index-php .tb-close-icon,body.plugin-install-php .tb-close-icon,body.plugins-php .tb-close-icon,body.update-core-php .tb-close-icon{line-height:48px;width:48px;height:48px}body.import-php .tb-close-icon:before,body.index-php .tb-close-icon:before,body.plugin-install-php .tb-close-icon:before,body.plugins-php .tb-close-icon:before,body.update-core-php .tb-close-icon:before{line-height:48px}img{border:0}#wphead{border-bottom:1px solid #dfdfdf}#wphead h1 a{color:#464646}.js .meta-box-sortables .postbox:hover .handlediv{margin-left:0!important}.js .meta-box-sortables .postbox .handlediv:before,.js .sidebar-name .sidebar-name-arrow:before{left:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js #widgets-left .sidebar-name .sidebar-name-arrow{display:none}.js #widgets-left .sidebar-name:hover .sidebar-name-arrow,.js #widgets-left .widgets-holder-wrap.closed .sidebar-name .sidebar-name-arrow{display:block}.js .meta-box-sortables .postbox .handlediv:before,.js .sidebar-name .sidebar-name-arrow:before{content:'\f142'}.js .meta-box-sortables .postbox.closed .handlediv:before,.js .widgets-holder-wrap.closed .sidebar-name-arrow:before{content:'\f140'}.error a{text-decoration:underline}.updated a{text-decoration:none;padding-bottom:2px}#photo-add-url-div input[type=text]{width:300px}.alignleft h3{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;width:97%;background:#f9f9f9;outline:0}#docs-list,#template textarea{direction:ltr}#template p{width:97%}#templateside{float:left;width:190px;word-wrap:break-word}#postcustomstuff p.submit,#templateside h3{margin:0}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em 0;padding:0}#templateside li{margin:4px 0}#templateside a,.theme-editor-php .highlight{display:block;padding:3px 12px 3px 3px;text-decoration:none}.theme-editor-php .highlight{margin:-3px -12px -3px 3px}#templateside .highlight{border:0;font-weight:700}.nonessential{color:#666;font-size:11px;font-style:italic;padding-right:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top a.widget-action:after{left:0;content:'\f140';border:0;background:0 0;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.accordion-section-title:after,.handlediv,.item-edit,.sidebar-name-arrow,.widget-action{color:#aaa}.accordion-section-title:hover:after,.handlediv:hover,.item-edit:hover,.sidebar-name:hover .sidebar-name-arrow,.widget-action:hover{color:#777}.widget-top a.widget-action:after{padding:12px 12px 0}.nav-menus-php .item-edit:before{line-height:2.1}.accordion-section-title:after,.control-section .accordion-section-title:after{float:left;left:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before{content:'\f142'}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.menu.ui-sortable,.meta-box-sortables.ui-sortable,.widgets-holder-wrap .ui-draggable,.widgets-holder-wrap .ui-sortable{-ms-touch-action:auto;touch-action:auto}.menu.ui-sortable .menu-item-handle,.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.accordion-section{border-bottom:1px solid #dfdfdf;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#dfdfdf}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-right:1px solid #dfdfdf;border-left:1px solid #dfdfdf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;left:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#aaa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title{border-right:0;border-left:0;padding:10px 14px 11px 10px;line-height:21px;background:#fff}.control-section .accordion-section-title:after{top:11px}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#222;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #dfdfdf}@media only screen and (min-width:769px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:860px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (min-width:980px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:768px){#col-left,#col-right{width:100%}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) repeat-x bottom right;-webkit-background-size:21px 37px;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.sidebar-name:hover .sidebar-name-arrow,.tagchecklist span a,.tagchecklist span a:hover,.widget-top a.widget-action,.widget-top a.widget-action:hover{background:none!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpwrap{background:#f0f0f0}#wpcontent{position:relative;margin-right:0;padding-right:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-left:12px;margin-right:0}.col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}.wrap .add-new-h2,.wrap .add-new-h2:active{padding:10px 15px;font-size:14px}.wp-color-result{height:auto;padding-right:45px}.wp-color-result:after{font-size:14px;height:auto;padding:6px 14px}.media-upload-form div.error,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{left:-190px}.postbox{font-size:14px}.metabox-holder h3{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside{float:none;width:auto}#templateside li{margin:0}#templateside li a{display:block;padding:5px}#templateside .highlight{padding:5px;margin-right:-5px;margin-top:-5px}#template div{float:none;margin:0;width:auto}#template textarea{width:100%}.fileedit-sub .alignright{margin-top:15px}#comments-form .checkforspam,#wpfooter{display:none}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}div#post-body.metabox-holder.columns-1{overflow-x:hidden}}input,input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=url],textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=email],input[type=url]{direction:ltr}input[type=checkbox],input[type=radio]{border:1px solid #bbb;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#888}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#2ea2cc}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-left:4px;line-height:10px}input[type=checkbox]:checked:before,input[type=radio]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:'\f147';margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:'\2022';text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}input.readonly,textarea.readonly{background-color:#ddd}@-moz-document url-prefix(){.form-table input.tog,input[type=checkbox],input[type=radio]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;padding:3px 5px;line-height:15px;-webkit-border-radius:0;border-radius:0}textarea{overflow:auto;padding:2px 6px;line-height:1.4}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=url],select,textarea{outline:0}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}select[disabled]{color:#7f7f7f}input[type=checkbox]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.form-input-tip{color:#666}input.disabled,input:disabled,textarea.disabled,textarea:disabled{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);border-color:rgba(222,222,222,.75);background:rgba(255,255,255,.5);color:rgba(51,51,51,.5)}input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px;vertical-align:middle}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:0}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:right;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:0;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:0;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}#adduser .form-field input,input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}#upload-form label{color:#777}#your-profile label+a,fieldset label,label{vertical-align:middle}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:'\f173';display:inline-block;font:400 20px/1 dashicons;speak:none;right:-1px;padding:0 0 0 5px;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass-strength-result{background-color:#eee;border:1px solid #ddd;float:right;margin:13px 1px 5px 5px;padding:3px 5px;text-align:center;width:200px;display:none}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c}.indicator-hint{padding-top:8px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}#search-plugins input[name="s"],.search-box input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}input[type=text].ui-autocomplete-loading{background:transparent url(../images/loading.gif) no-repeat left center;visibility:visible}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete-input.open{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:1px solid #aaa;background-color:#efefef}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:right}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px;color:#444}.ui-autocomplete li a.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th,.form-wrap label{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#222;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:0}.color-option{cursor:pointer}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.pressthis{margin:20px 0}.pressthis a,.pressthis a:active,.pressthis a:focus,.pressthis a:hover{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis a span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis a span:before{color:#777;font:400 20px/1 dashicons;content:'\f157';position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}#local-time,#utc-time{padding-right:25px;font-style:italic}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input.code{padding-bottom:5px;padding-top:10px}.widefat th input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat th input[type=checkbox]{margin-bottom:8px}.widefat th input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 Dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table input[type=text].small-text,input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{padding:4px 0 0;line-height:1.4em}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{padding-top:8px;padding-right:0}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#utc-time{margin-top:10px}#local-time,#utc-time{display:block;float:none;padding:0;line-height:2}}@media only screen and (max-width:768px){.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media screen and (max-width:600px){.color-option{width:49%}}#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:160px;background-color:#222}#adminmenuback{position:absolute;top:0;bottom:0;z-index:-1}#adminmenu{clear:right;margin:12px 0 0;padding:0;list-style:none}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:36px}.icon16{height:18px;width:18px;padding:6px;margin:-6px -8px 0 0;float:right}.icon16:before{color:#999;font:400 20px/1 dashicons;speak:none;padding:6px 0;height:34px;width:20px;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.icon16.icon-dashboard:before{content:'\f226'}.icon16.icon-post:before{content:'\f109'}.icon16.icon-media:before{content:'\f104'}.icon16.icon-links:before{content:'\f103'}.icon16.icon-page:before{content:'\f105'}.icon16.icon-comments:before{content:'\f101';margin-top:1px}.icon16.icon-appearance:before{content:'\f100'}.icon16.icon-plugins:before{content:'\f106'}.icon16.icon-users:before{content:'\f110'}.icon16.icon-tools:before{content:'\f107'}.icon16.icon-settings:before{content:'\f108'}.icon16.icon-site:before{content:'\f112'}.icon16.icon-generic:before{content:'\f111'}.icon16.icon-appearance,.icon16.icon-comments,.icon16.icon-dashboard,.icon16.icon-generic,.icon16.icon-links,.icon16.icon-media,.icon16.icon-page,.icon16.icon-plugins,.icon16.icon-post,.icon16.icon-settings,.icon16.icon-site,.icon16.icon-tools,.icon16.icon-users,.menu-icon-appearance div.wp-menu-image,.menu-icon-comments div.wp-menu-image,.menu-icon-dashboard div.wp-menu-image,.menu-icon-generic div.wp-menu-image,.menu-icon-links div.wp-menu-image,.menu-icon-media div.wp-menu-image,.menu-icon-page div.wp-menu-image,.menu-icon-plugins div.wp-menu-image,.menu-icon-post div.wp-menu-image,.menu-icon-settings div.wp-menu-image,.menu-icon-site div.wp-menu-image,.menu-icon-tools div.wp-menu-image,.menu-icon-users div.wp-menu-image{background-image:none!important}#adminmenuwrap{position:relative;float:right}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px;color:#eee}#adminmenu .wp-submenu a{color:#bbb}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover{background:0 0}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a:hover,#adminmenu li.menu-top>a:focus{color:#2ea2cc}#adminmenu li.menu-top{border:0;min-height:34px;position:relative}#adminmenu .wp-submenu{list-style:none;position:absolute;top:-1000em;right:160px;overflow:visible;word-wrap:break-word}#adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{padding:7px 0 8px;z-index:9999;background-color:#333;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}#adminmenu a.menu-top:focus+.wp-submenu,.js #adminmenu .opensub .wp-submenu,.js #adminmenu .sub-open,.no-js li.wp-has-submenu:hover .wp-submenu{top:-1px}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.no-js li.wp-has-current-submenu:hover .wp-submenu{position:relative;z-index:3;top:auto;right:auto;left:auto;bottom:auto;border:0 none;margin-top:0;-webkit-box-shadow:none;box-shadow:none;background-color:#333}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{position:relative;background-color:#111}.folded #adminmenu li.menu-top:hover,.folded #adminmenu li.opensub>a.menu-top,.folded #adminmenu li>a.menu-top:focus{z-index:10000}#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu .wp-menu-arrow,#adminmenu .wp-menu-arrow div,#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu{background:#0074a2;color:#fff}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{top:0;right:36px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:160px;width:auto}#adminmenu .wp-submenu a{font-size:13px;line-height:1.2;margin:0;padding:6px 0}#adminmenu .opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-not-current-submenu li>a,.folded #adminmenu .wp-has-current-submenu li>a{padding-left:16px;padding-right:14px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu .wp-has-current-submenu ul>li>a,.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:6px 12px}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{font-size:14px;font-weight:400;line-height:18px;padding:0}#adminmenu .wp-submenu-head,.folded #adminmenu .wp-menu-name{display:none}.folded #adminmenu .wp-submenu-head{display:block}#adminmenu .wp-submenu li{padding:0;margin:0;overflow:hidden}#adminmenu .wp-menu-image img{padding:9px 0 0;opacity:.6;filter:alpha(opacity=60)}#adminmenu div.wp-menu-name{padding:8px 0}#adminmenu div.wp-menu-image{float:right;width:36px;height:34px;margin:0;text-align:center}#adminmenu div.wp-menu-image.svg{background-repeat:no-repeat;background-position:center;-webkit-background-size:20px auto;background-size:20px auto}div.wp-menu-image:before{color:#999;padding:7px 0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu .current div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before{color:#fff}#adminmenu li:hover div.wp-menu-image:before{color:#2ea2cc}.folded #adminmenu div.wp-menu-image{width:35px;height:30px;position:absolute;z-index:25}.folded #adminmenu a.menu-top{height:34px}.no-font-face #adminmenu .wp-menu-image{display:none}.no-font-face #adminmenu div.wp-menu-name{padding:8px 12px}.no-font-face.auto-fold #adminmenu .wp-menu-name{margin-right:0}.sticky-menu #adminmenuwrap{position:fixed;z-index:9999}.wp-menu-arrow{display:none!important}ul#adminmenu a.wp-has-current-submenu{position:relative}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{left:0;border:solid 8px transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-left-color:#f1f1f1;top:50%;margin-top:-8px}.folded ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.folded ul#adminmenu a.wp-has-current-submenu:after,.folded ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{left:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;top:10px;z-index:10000}.folded ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:18px}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#333}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:5px;padding:0;margin:0 0 6px;cursor:inherit}#adminmenu div.separator{height:2px;padding:0}#adminmenu .wp-submenu .wp-submenu-head{color:#fff;font-weight:400;font-size:14px;padding:8px 11px 8px 4px;margin:-7px 0 4px}#adminmenu li.current,.folded #adminmenu li.wp-menu-open{border:0 none}#adminmenu .awaiting-mod,#adminmenu .update-plugins,#sidemenu li a span.update-plugins{display:inline-block;background-color:#d54e21;color:#fff;font-size:9px;line-height:17px;font-weight:600;margin:1px 2px 0 0;vertical-align:top;-webkit-border-radius:10px;border-radius:10px;z-index:26}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span,#sidemenu li a span.update-plugins span{display:block;padding:0 6px}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod{background-color:#2ea2cc;color:#fff}#adminmenu li span.count-0,#sidemenu li a .count-0{display:none}#collapse-menu{font-size:13px;line-height:34px;margin-top:10px;color:#aaa;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#collapse-menu:hover,#collapse-menu:hover #collapse-button div:after{color:#2ea2cc}.folded #collapse-menu span{display:none}#collapse-button,#collapse-button div{width:15px;height:15px}#collapse-button{float:right;height:15px;margin:10px 11px 10px 8px;width:15px;-webkit-border-radius:10px;border-radius:10px}#wpwrap #collapse-button div{padding:0}#collapse-button div:after{content:'\f148';display:block;line-height:15px;right:-3px;top:-3px;color:#aaa;font:400 20px/1 dashicons!important;speak:none;margin:0 auto;padding:0!important;position:relative;text-align:center;width:20px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folded #collapse-button div:after,.rtl #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.folded #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}li#wp-admin-bar-menu-toggle{display:none}@media only screen and (max-width:900px){.auto-fold #wpcontent,.auto-fold #wpfooter{margin-right:56px}.auto-fold #adminmenu,.auto-fold #adminmenu li.menu-top,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:36px}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{top:0;right:36px}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu,.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em;margin-left:-1px;padding:7px 0 8px;z-index:9999}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{min-width:150px;width:auto}.auto-fold #adminmenu .wp-has-current-submenu li>a{padding-left:16px;padding-right:14px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-right:12px}.auto-fold #adminmenu .wp-menu-name{display:none}.auto-fold #adminmenu .wp-submenu-head{display:block}.auto-fold #adminmenu div.wp-menu-image{height:30px;width:34px;position:absolute;z-index:25}.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.wp-menu-open{border:0 none}.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:16px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}.auto-fold #adminmenu li.menu-top:hover,.auto-fold #adminmenu li.opensub>a.menu-top,.auto-fold #adminmenu li>a.menu-top:focus{z-index:10000}.auto-fold #collapse-menu span{display:none}.auto-fold #collapse-button div{background:0 0}.auto-fold #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.auto-fold #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}}@media screen and (max-width:782px){.auto-fold #wpcontent{position:relative;margin-right:0;padding-right:10px}.sticky-menu #adminmenuwrap{position:relative;z-index:auto;top:0}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{position:absolute;width:190px;z-index:100}.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{display:none}.auto-fold .wp-responsive-open #adminmenuback,.auto-fold .wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu li.menu-top{width:100%}.auto-fold #adminmenu li a{font-size:16px;padding:5px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding:10px 20px 10px 10px}.auto-fold #adminmenu .wp-menu-name{display:block;margin-right:35px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li.current>a.current:after{border-width:8px;margin-top:-8px}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{display:none}#adminmenu .wp-submenu{position:relative;display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu{position:relative;display:block;top:0;right:-1px;-webkit-box-shadow:none;box-shadow:none}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .selected .wp-submenu:after,.auto-fold #adminmenu .wp-menu-open .wp-submenu:after{display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:block}.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{position:relative;right:-1px;left:0;top:0}#adminmenu .wp-submenu .wp-submenu-head{display:none}#wp-responsive-toggle{position:fixed;top:5px;right:4px;padding-left:10px;z-index:99999;border:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpadminbar #wp-admin-bar-menu-toggle a{display:block;padding:0;overflow:hidden;outline:0;text-decoration:none;border:1px solid transparent;background:0 0;height:44px;margin-right:-1px}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#333}li#wp-admin-bar-menu-toggle{display:block}#wpadminbar #wp-admin-bar-menu-toggle a:hover{border:1px solid transparent}#wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{content:'\f228';display:inline-block;float:right;font:400 40px/45px Dashicons;vertical-align:middle;outline:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:44px;width:50px;padding:0;border:0;text-align:center;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}@media screen and (max-width:600px){#adminmenuback,#adminmenuwrap{display:none}.wp-responsive-open #adminmenuback,.wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu{top:46px}}#wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody-content #dashboard-widgets.columns-2 .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets.columns-2 #postbox-container-2,#wpbody-content #dashboard-widgets.columns-2 #postbox-container-3,#wpbody-content #dashboard-widgets.columns-2 #postbox-container-4{float:left;width:50.5%}#wpbody-content #dashboard-widgets.columns-3 .postbox-container{width:33.5%}#wpbody-content #dashboard-widgets.columns-3 #postbox-container-1{width:33%}#wpbody-content #dashboard-widgets.columns-3 #postbox-container-3,#wpbody-content #dashboard-widgets.columns-3 #postbox-container-4{float:left}#dashboard-widgets .postbox-container,#wpbody-content #dashboard-widgets.columns-4 .postbox-container{width:25%}#dashboard-widgets-wrap .columns-3 #postbox-container-4 .empty-container{border:0!important}.ie8 #wpbody-content #dashboard-widgets .postbox-container{width:49.5%}.ie8 #wpbody-content #dashboard-widgets #postbox-container-2,.ie8 #wpbody-content #dashboard-widgets #postbox-container-3,.ie8 #wpbody-content #dashboard-widgets #postbox-container-4{float:left;width:50.5%}.ie8 #dashboard-widgets #postbox-container-3 .empty-container,.ie8 #dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}#dashboard-widgets-wrap{overflow:hidden;margin:0 -8px}#dashboard-widgets .postbox .inside{margin-bottom:0}#dashboard-widgets .meta-box-sortables{margin:0 8px;min-height:100px}h3.dashboard-widget-title,h3.dashboard-widget-title small,h3.dashboard-widget-title span{color:#333}h3.dashboard-widget-title small a{color:#d7d7d7}h3.dashboard-widget-title small a:hover{color:#fff}#the-comment-list td.comment p.comment-author{margin-top:0;margin-right:0}#the-comment-list p.comment-author img{float:right;margin-left:8px}#the-comment-list p.comment-author strong a{border:0}#the-comment-list td{vertical-align:top}#the-comment-list td.comment{word-wrap:break-word}#the-comment-list td.comment img{max-width:100%}.welcome-panel{position:relative;overflow:auto;margin:16px 0;padding:23px 10px 0;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:13px;line-height:2.1em}.welcome-panel h3{margin:0;font-size:21px;font-weight:400;line-height:1.2}.welcome-panel h4{margin:1.33em 0 0;font-size:16px}.welcome-panel li{font-size:14px}.welcome-panel p{color:#777}.welcome-panel a{text-decoration:none}.welcome-panel .about-description{font-size:16px;margin:0}.welcome-panel .welcome-panel-close{position:absolute;top:5px;left:10px;padding:20px 3px 0 15px;font-size:13px;text-decoration:none;line-height:1}#welcome-panel.welcome-panel .welcome-panel-close::before{position:absolute;right:-18px;margin-top:-2px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.wp-core-ui .welcome-panel .button.button-hero{margin:15px 0 3px}.welcome-panel-content{margin-right:13px;max-width:1500px}.welcome-panel .welcome-panel-column-container{clear:both;overflow:hidden;position:relative}.welcome-panel .welcome-panel-column{width:32%;min-width:200px;float:right}.ie8 .welcome-panel .welcome-panel-column{min-width:230px}.welcome-panel .welcome-panel-column:first-child{width:36%}.welcome-panel-column p.hide-if-no-customize{margin-top:10px}.welcome-panel-column p{margin-top:7px;color:#464646}.welcome-panel .welcome-icon{display:block;padding:0 0 8px;background:transparent!important}.welcome-panel .welcome-icon:before{color:#888;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 10px;top:-1px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;vertical-align:top}.welcome-panel .welcome-edit-page:before,.welcome-panel .welcome-write-blog:before{content:'\f119';top:-3px}.welcome-panel .welcome-add-page:before{content:'\f132'}.welcome-panel .welcome-view-site:before{content:'\f115';top:-2px}.welcome-panel .welcome-widgets-menus:before{content:'\f116';top:-2px}.welcome-panel .welcome-comments:before{content:'\f117';top:-1px}.welcome-panel .welcome-learn-more:before{content:'\f118';top:-1px}.welcome-panel .welcome-widgets-menus{line-height:16px}.welcome-panel .welcome-panel-column ul{margin:.8em 0 1em 1em}.welcome-panel .welcome-panel-column li{line-height:16px;list-style-type:none}#dashboard_primary .inside{margin:0;padding:0}#dashboard_primary .dashboard-widget-control-form,#dashboard_primary .widget-loading{padding:12px 12px 0}body #dashboard-widgets .postbox form .submit{margin:0}.dashboard-widget-control-form{overflow:hidden}.dashboard-widget-control-form p{margin-top:0}div.dashboard-widget-error{background-color:#c43}div.dashboard-widget-notice{background-color:#cfe1ef}.rssSummary{color:#777;margin-top:4px}#dashboard_primary .rss-widget{border-bottom:1px solid #eee;font-size:13px;padding:8px 12px 10px}#dashboard_primary .rss-widget:last-child{border-bottom:0;padding-bottom:8px}#dashboard_primary .rss-widget a{font-weight:400}#dashboard_primary .rss-widget span,#dashboard_primary .rss-widget span.rss-date{color:#777}#dashboard_primary .rss-widget span.rss-date{margin-right:12px}#dashboard_primary .rss-widget ul li{margin-bottom:8px}#dashboard_right_now ul{margin:0;overflow:hidden}#dashboard_right_now li{width:50%;float:right;margin-bottom:10px}#dashboard_right_now .inside{overflow:hidden;padding:0}#dashboard_right_now .main{overflow:hidden;padding:0 12px 11px}#dashboard_right_now .main p{margin:0}#dashboard_right_now #wp-version-message .button{clear:left;float:left;position:relative;top:-5px}.mu-storage{overflow:hidden}#dashboard-widgets h4.mu-storage{margin-bottom:10px}#dashboard_right_now li a:before,#dashboard_right_now li span:before{color:#888}#dashboard_right_now .sub{color:#777;background:#f5f5f5;border-top:1px solid #eee;padding:10px 12px 6px}#dashboard_right_now .sub h4{color:#555}#dashboard_right_now .sub p{margin:0 0 1em}#dashboard_right_now .warning a:before,#dashboard_right_now .warning span:before{color:#d54e21}#dashboard_right_now li a:before,#dashboard_right_now li span:before{content:'\f159';font:400 20px/1 dashicons;speak:none;display:block;float:right;margin:0 0 0 5px;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;text-decoration:none!important}#dashboard_right_now .page-count a:before,#dashboard_right_now .page-count span:before{content:'\f105'}#dashboard_right_now .post-count a:before,#dashboard_right_now .post-count span:before{content:'\f109'}#dashboard_right_now .comment-count a:before{content:'\f101'}#dashboard_right_now .comment-mod-count a:before{content:'\f125'}#dashboard_right_now .storage-count a:before{content:'\f104'}#dashboard_right_now .storage-count.warning a:before{content:'\f153'}#dashboard_quick_press .inside{margin:0;padding:0}#dashboard_quick_press div.updated{margin-bottom:10px;border:1px solid #eee;border-width:1px 0 1px 1px}#dashboard_quick_press form{overflow:hidden;margin:12px}#dashboard_quick_press .drafts,#dashboard_quick_press .easy-blogging{padding:10px 0 0}input#save-post{float:right}form.initial-form.quickpress-open label.prompt{font-style:normal}form.initial-form.quickpress-open input#title{height:auto}#dashboard_quick_press input,#dashboard_quick_press textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0}#dashboard_quick_press textarea{resize:vertical}#description-wrap{margin-top:12px}#title-wrap #title-prompt-text,.textarea-wrap #content-prompt-text{color:#777}.input-text-wrap,.textarea-wrap{position:relative}.input-text-wrap .prompt,.textarea-wrap .prompt{position:absolute}.textarea-wrap #content-prompt-text{font-size:1.1em;padding:7px 8px}.textarea-wrap textarea#content{margin:0 0 8px;padding:6px 7px}#quick-press textarea#content{min-height:90px;max-height:1300px;resize:none}.js #dashboard_quick_press .drafts{border-top:1px solid #eee}#dashboard_quick_press .drafts abbr{border:0}#dashboard_quick_press .drafts h4{margin:0 12px 8px;font-weight:400}#dashboard_quick_press .drafts .view-all{float:left;margin:0 0 0 12px}#dashboard_primary a.rsswidget{font-weight:400}#dashboard_quick_press .drafts ul{margin:0 12px}#dashboard_quick_press .drafts li{margin-bottom:1em}#dashboard_quick_press .drafts li time{color:#777}#dashboard_quick_press .drafts p{margin:0;word-wrap:break-word}#dashboard_quick_press .draft-title{overflow:hidden}#dashboard_quick_press .draft-title a,#dashboard_quick_press .draft-title time{float:right;margin:0 0 0 5px}#dashboard-widgets #dashboard_activity h4{margin:0 12px 8px 0;font-weight:400}#dashboard-widgets #dashboard_activity h4.comment-meta{margin:0}#dashboard_activity h4.comment-meta{margin-bottom:4px}#dashboard_activity ul{padding:0 12px}#dashboard_activity .comment-meta span.approve:before{content:'\f227';font:20px/.5 dashicons;margin-right:12px;vertical-align:middle;position:relative;top:-1px;margin-left:2px}#dashboard_activity .inside{padding:0;margin:0}#dashboard_activity .no-activity{overflow:hidden;padding:0 12px 12px;text-align:center}#dashboard_activity .no-activity p{color:#999;font-size:16px}#dashboard_activity .no-activity .smiley{margin-top:0}#dashboard_activity .no-activity .smiley:before{content:'\f328';font:400 120px/1 dashicons;speak:none;display:block;margin:0 0 0 5px;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;text-decoration:none!important}#dashboard_activity .subsubsub{float:none;border-top:1px solid #eee;margin-top:0;padding:8px 12px 4px}#future-posts ul,#published-posts ul{clear:both;margin-bottom:0}#future-posts li,#published-posts li{overflow:hidden;margin-bottom:8px}#future-posts ul span,#published-posts ul span{color:#777;float:right;margin-left:8px;min-width:150px}.activity-block{border-bottom:1px solid #eee;overflow:hidden;padding:8px 0 4px}.activity-block:last-child{border-bottom:0}.activity-block .subsubsub li{color:#ddd}#activity-widget #the-comment-list div.undo,#activity-widget #the-comment-list tr.undo{background:0 0;padding:6px 0}#activity-widget #the-comment-list .alt,#activity-widget #the-comment-list .alternate{background:0 0}#activity-widget #the-comment-list .comment-item{background:#fafafa;padding:12px;position:relative}#activity-widget #the-comment-list img{position:absolute;right:13px;top:13px}#activity-widget #the-comment-list .dashboard-comment-wrap{padding-right:63px}#activity-widget #the-comment-list .dashboard-comment-wrap blockquote{margin:1em 0}#activity-widget #the-comment-list .comment-item h4{font-size:13px;color:#999}#activity-widget #the-comment-list .comment-item p.row-actions{margin:4px 0 0}#activity-widget #the-comment-list .comment-item:first-child{border-top:1px solid #eee}#activity-widget #the-comment-list .unapproved{background-color:#fef7f1}#activity-widget #the-comment-list .unapproved:before{content:"";display:block;position:absolute;right:0;top:0;bottom:0;background:#d54e21;width:4px}#activity-widget #the-comment-list .spam-undo-inside .avatar,#activity-widget #the-comment-list .trash-undo-inside .avatar{margin-left:20px;position:relative;top:0}#dashboard-widgets #dashboard_browser_nag.postbox .inside{margin:10px}.edit-box{display:none}h3:hover .edit-box{display:inline}#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:100%}#dashboard-widgets .postbox form .submit{float:none;margin:.5em 0 0;padding:0;border:0}#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit #publish{min-width:0}#dashboard-widgets a{text-decoration:none}#dashboard-widgets h3 a{text-decoration:underline}#dashboard-widgets h3 .postbox-title-action{position:absolute;left:10px;padding:0;top:5px}.js #dashboard-widgets h3 .postbox-title-action{left:33px}#dashboard-widgets h4{color:#222;font-weight:400;font-size:14px;margin:0 0 .2em;padding:0}#dashboard_plugins h5{font-size:14px}#latest-comments #the-comment-list{position:relative}#activity-widget #the-comment-list .comment{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.06);box-shadow:inset 0 1px 0 rgba(0,0,0,.06)}#activity-widget .comments #the-comment-list .alt{background-color:transparent}#activity-widget #latest-comments #the-comment-list .comment-item{padding:1em 12px}#latest-comments #the-comment-list .pingback{padding-right:12px!important}#latest-comments #the-comment-list .comment-item:first-child{border-top:0}#latest-comments #the-comment-list .comment-item h4{line-height:1.5em;margin-top:0;color:#666}#latest-comments #the-comment-list .comment-item h4 cite{font-style:normal;font-weight:400}#latest-comments #the-comment-list .comment-item blockquote,#latest-comments #the-comment-list .comment-item blockquote p{margin:0;padding:0;display:inline}#latest-comments #the-comment-list .comment-item p.row-actions{margin:3px 0 0;padding:0;font-size:13px}#title-wrap label{cursor:text}#title-wrap #title{padding:2px 6px;font-size:1.3em;line-height:100%;outline:0}#title-wrap #title-prompt-text{font-size:1.1em;padding:5px 8px}.rss-widget ul{margin:0;padding:0;list-style:none}a.rsswidget{font-size:14px;font-weight:600;line-height:1.7em}.rss-widget ul li{line-height:1.5em;margin-bottom:12px}.rss-widget span.rss-date{color:#999;font-size:13px;margin-right:3px}.rss-widget cite{display:block;text-align:left;margin:0 0 1em;padding:0}.rss-widget cite:before{content:'\2014'}.dashboard-comment-wrap{overflow:hidden;word-wrap:break-word}#dashboard_browser_nag a.update-browser-link{font-size:1.2em;font-weight:600}#dashboard_browser_nag a{text-decoration:underline}#dashboard_browser_nag p.browser-update-nag.has-browser-icon{padding-left:125px}#dashboard_browser_nag .browser-icon{margin-top:-35px}#dashboard_browser_nag.postbox.browser-insecure{background-color:#ac1b1b;border-color:#ac1b1b}#dashboard_browser_nag.postbox{background-color:#e29808;background-image:none;border-color:#edc048;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag.postbox.browser-insecure h3{border-bottom-color:#cd5a5a;color:#fff}#dashboard_browser_nag.postbox h3{border-bottom-color:#f6e2ac;background:transparent none;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag a{color:#fff}#dashboard_browser_nag h3.hndle{border:0;font-weight:600;font-size:20px;padding-top:10px}.postbox#dashboard_browser_nag p a.dismiss{font-size:14px}.postbox#dashboard_browser_nag a,.postbox#dashboard_browser_nag p,.postbox#dashboard_browser_nag p.browser-update-nag{font-size:16px}@media only screen and (max-width:799px){#wpbody-content #dashboard-widgets .postbox-container{width:100%}}@media only screen and (min-width:800px) and (max-width:1499px){#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:left;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}#wpbody #wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody #wpbody-content .metabox-holder.columns-1 .postbox-container .empty-container{border:0 none;height:0;min-height:0}.index-php .columns-prefs,.index-php .screen-layout{display:block}.columns-prefs .columns-prefs-3,.columns-prefs .columns-prefs-4{display:none}}@media only screen and (min-width:1500px) and (max-width:1800px){#wpbody-content #dashboard-widgets .postbox-container{width:33.5%}#wpbody-content #dashboard-widgets #postbox-container-1{width:33%}#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:left}#dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}}@media screen and (max-width:870px){.welcome-panel .welcome-panel-column,.welcome-panel .welcome-panel-column:first-child{display:block;float:none;width:100%}.welcome-panel .welcome-panel-column li{display:inline-block;margin-left:13px}.welcome-panel .welcome-panel-column ul{margin:.4em 0 0}}@media screen and (max-width:782px){#dashboard_recent_comments #the-comment-list .comment-item .avatar{height:30px;width:30px;margin:4px 0 5px 10px}}@media screen and (max-width:600px){.welcome-panel .welcome-panel-close{overflow:hidden;text-indent:100%;white-space:nowrap;width:20px;height:20px;left:0;padding:5px}#welcome-panel.welcome-panel .welcome-panel-close::before{font-size:20px;margin:0}}.post-com-count-wrapper{min-width:22px}.post-com-count{background:0 0;height:1.3em;line-height:1.1em;display:block;text-decoration:none;padding:0 0 6px;cursor:pointer;background-position:center -80px;background-repeat:no-repeat;color:#fff}.post-com-count:after{content:"";display:block;width:0;height:0;margin-right:8px;border-top:5px solid #bbb;border-left:5px solid transparent}.post-com-count span{font-size:11px;font-weight:600;height:1.4em;line-height:1.4em;min-width:.7em;padding:0 6px;display:inline-block;-webkit-border-radius:5px;border-radius:5px;background-color:#bbb;color:#fff}.post-com-count:hover{background-position:center -3px}.post-com-count:hover span{background-color:#2ea2cc}.post-com-count:hover:after{border-top:5px solid #2ea2cc}strong .post-com-count{background-position:center -55px}strong .post-com-count span{background-color:#0074a2}strong .post-com-count:after{border-top:5px solid #0074a2}.column-response .post-com-count{float:right;margin-left:5px;text-align:center}.response-links{float:right}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom:1px solid #ccc}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#submitted-on,.submitted-on{color:#777}#replyrow td{padding:2px}#replysubmit{margin:0;padding:0 5px 3px;text-align:center}#replysubmit .spinner{padding:2px 0 0;vertical-align:top;float:left}#replysubmit .button{margin-left:5px}#replysubmit .error{color:red;line-height:21px;text-align:center}#replyrow h5{margin:.2em 0 0;padding:0 5px;line-height:1.4em;font-size:1em}#edithead .inside{float:right;padding:3px 5px 2px 0;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px;-webkit-box-shadow:none;box-shadow:none}#replyerror{border-color:#ddd;background-color:#f9f9f9}.commentlist .avatar{vertical-align:text-top}#the-comment-list .attachment-80x60{padding:4px 8px}#the-comment-list div.undo,#the-comment-list tr.undo{background-color:#f4f4f4}#the-comment-list .unapproved td,#the-comment-list .unapproved th{background-color:#fef7f1}#the-comment-list .unapproved th.check-column{border-right:4px solid #d54e21}#the-comment-list .unapproved th.check-column input{margin-right:4px}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}#the-comment-list td,#the-comment-list th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}#the-comment-list tr:last-child td,#the-comment-list tr:last-child th{-webkit-box-shadow:none;box-shadow:none}#the-comment-list tr.unapproved+tr.approved td,#the-comment-list tr.unapproved+tr.approved th{border-top:1px solid rgba(0,0,0,.03)}.vim-current,.vim-current td,.vim-current th{background-color:#e4f2fd!important}th .comment-grey-bubble{height:16px;width:16px}th .comment-grey-bubble:before{content:'\f101';font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;right:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-author,.fixed .column-date,.fixed .column-format,.fixed .column-links,.fixed .column-parent,.fixed .column-posts{width:10%}.fixed .column-comment .comment-author{display:none}.fixed .column-categories,.fixed .column-rel,.fixed .column-response,.fixed .column-role,.fixed .column-tags{width:15%}.fixed .column-slug{width:25%}.fixed .column-locations{width:35%}.fixed .column-comments{width:4em;padding:8px 0;text-align:right}.fixed .column-comments .vers{padding-right:3px}.fixed .column-comments a{float:right}.fixed .column-icon{width:80px}.wp-list-table a{-webkit-transition:none;transition:none}#the-list tr:last-child td,#the-list tr:last-child th{border-bottom:0!important;-webkit-box-shadow:none;box-shadow:none}#comments-form .fixed .column-author{width:20%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv .comments-box{border:0 none}#commentsdiv .comments-box thead th{background:0 0;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv .spinner{padding-right:5px}.sorting-indicator{display:none;width:10px;height:4px;margin-top:8px;margin-right:7px}.sorting-indicator:before{background:0 0;content:'\f142';font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0;top:-4px;right:-8px;line-height:10px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.column-comments .sorting-indicator:before{top:0;right:-10px}th.desc:hover span.sorting-indicator:before,th.sorted.asc .sorting-indicator:before{content:'\f142'}th.asc:hover span.sorting-indicator:before,th.sorted.desc .sorting-indicator:before{content:'\f140'}tr.wp-locked .locked-indicator{margin-right:6px;height:20px;width:16px}tr.wp-locked .locked-indicator:before{color:#888;content:'\f160';display:inline-block;float:right;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-right:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}tr.wp-locked .check-column input[type=checkbox],tr.wp-locked .check-column label,tr.wp-locked .row-actions .inline,tr.wp-locked .row-actions .trash{display:none}tr .locked-info{height:0;opacity:0}tr.wp-locked .locked-info{margin-top:8px;height:auto;opacity:1}.locked-text{vertical-align:top}tr.locked-info,tr.wp-locked .locked-info{-webkit-transition:height 1s,opacity .5s;transition:height 1s,opacity .5s}.fixed .column-comments .sorting-indicator{margin-top:3px}#menu-locations-wrap .widefat{width:60%}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:7px 10px 8px 7px}th.manage-column a,th.sortable a:active,th.sortable a:focus,th.sortable a:hover{color:#333}th.sortable a:focus{background:#e1e1e1}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:right;cursor:pointer}th.desc:hover span.sorting-indicator,th.sorted.asc .sorting-indicator{display:block;background-position:0 0}th.asc:hover span.sorting-indicator,th.sorted.desc .sorting-indicator{display:block;background-position:-7px 0}.tablenav-pages a{font-weight:600;margin-left:1px;padding:0 2px}.tablenav-pages .current-page{padding-top:0;text-align:center}.tablenav-pages .next-page{margin-right:2px}.tablenav a.button-secondary{display:block;margin:3px 0 0 8px}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:left;display:block;cursor:default;height:30px;color:#555;line-height:30px;font-size:12px}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a{padding:0 10px 3px;background:#eee;background:rgba(0,0,0,.05);font-size:16px;font-weight:400}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover{color:#fff;background:#2ea2cc}.tablenav .tablenav-pages a.disabled,.tablenav .tablenav-pages a.disabled:active,.tablenav .tablenav-pages a.disabled:focus,.tablenav .tablenav-pages a.disabled:hover{color:#aaa;background:#eee;background:rgba(0,0,0,.05)}.tablenav .displaying-num{margin-left:2px;color:#777;font-size:12px;font-style:italic}.tablenav .actions{overflow:hidden;padding:2px 0 0 8px}.tablenav .delete{margin-left:20px}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#0074a2}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#2ea2cc}.view-switch{float:left;margin:5px 8px 0 16px}.view-switch img{display:none}.view-switch a{text-decoration:none}.view-switch>a{display:inline-block;width:18px;height:18px}.view-switch>a:before{color:#bbb;content:'\f163';display:inline-block;float:right;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-right:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.view-switch a:hover:before{color:#727272}.view-switch a.current:before{color:#0074a2}.view-switch>a+a:before{margin-right:5px;content:'\f164'}.filter{float:right;margin:-5px 10px 0 0}.filter .subsubsub{margin-right:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter fieldset{float:right;margin:0 0 1em 1.5ex;padding:0}#posts-filter fieldset legend{padding:0 1px .2em 0}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:600;margin:0 6px}.row-title{font-size:14px!important;font-weight:600}.column-comment .comment-author{margin-bottom:.6em}.column-author img,.column-comment .comment-author img,.column-username img{float:right;margin-left:10px;margin-top:1px}.row-actions{color:#ddd;font-size:13px;visibility:hidden;padding:2px 0 0}.mobile .row-actions,.row-actions.visible,div.comment-item:hover .row-actions,tr:hover .row-actions{visibility:visible}.row-actions-visible{padding:2px 0 0}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:right;margin:0;padding:0;width:100%}#wpbody-content .inline-edit-row fieldset .inline-edit-col,tr.inline-edit-row td{padding:0 .5em}#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col{border-width:0 1px 0 0;border-style:none none none solid}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .quick-edit-row-page .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:left;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both}.inline-edit-row fieldset .inline-edit-group:after{content:".";display:block;height:0;clear:both;visibility:hidden}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}.inline-edit-row h4{margin:.2em 0;padding:0;line-height:23px}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{margin:0;padding:0}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0;width:auto}.inline-edit-row fieldset label span.title{display:block;float:right;width:5em}.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-right:5em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-left:.5em}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:text-bottom}.inline-edit-row fieldset label textarea{width:100%;height:4em}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-left:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-save .spinner{padding:4px 10px 0;vertical-align:top;float:left}.inline-edit-row h4{text-transform:uppercase}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{font-style:italic;line-height:1.8em}.inline-edit-row fieldset .inline-edit-date{float:right}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.1em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}ul.cat-checklist{height:12em;border:solid 1px #ddd;overflow-y:scroll;padding:0 5px;margin:0;background-color:#fff}#bulk-titles{display:block;height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px;margin:0 0 5px}.inline-edit-row fieldset ul.cat-checklist input,.inline-edit-row fieldset ul.cat-checklist li{margin:0;position:relative}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-style:normal;font-size:11px}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{max-width:80%}.ie8 .inline-edit-row #post_parent,.ie8 .inline-edit-row select[name=page_template]{width:250px}.quick-edit-row-post fieldset label.inline-edit-status{float:right}#bulk-titles{line-height:140%}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:right;height:18px;margin:0 -2px 0 3px;overflow:hidden;position:relative;width:20px}#bulk-titles div a:before{position:relative;top:-3px}.plugins tbody,.plugins tbody th.check-column{padding:8px 2px 0 0}.plugins tbody th.check-column input[type=checkbox]{margin-top:4px}#update-plugins-table tbody td p{margin-top:0}#update-plugins-table tbody td p strong{font-size:14px}.plugins .inactive th.check-column,.plugins tfoot th.check-column,.plugins thead th.check-column{padding-right:6px}#update-plugins-table tfoot th.check-column,#update-plugins-table thead th.check-column{padding-top:11px}.plugins,.plugins td,.plugins th{color:#000}.plugins tr{background:#fff}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ol,.plugins .desc ul{margin:0 2em 0 0}.plugins .desc ul{list-style-type:disc}.plugins .row-actions{font-size:13px}.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th{padding:10px 9px}.plugins .active td,.plugins .active th{background-color:#f7fcfe}.plugins .update td,.plugins .update th{border-bottom:0}.plugin-update-tr td{border-top:0}.plugin-install #the-list td,.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th,.upgrade .plugins td,.upgrade .plugins th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th,.plugins tr.active.plugin-update-tr+tr.inactive td,.plugins tr.active.plugin-update-tr+tr.inactive th{border-top:1px solid rgba(0,0,0,.03);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1;box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1}.plugins .update td,.plugins .update th,.plugins tr.active+tr.inactive.update td,.plugins tr.active+tr.inactive.update th,.upgrade .plugins tr:last-of-type td,.upgrade .plugins tr:last-of-type th{-webkit-box-shadow:none;box-shadow:none}.plugins .active.update td,.plugins .active.update th,tr.active.update+tr.plugin-update-tr .plugin-update{background-color:#fef7f1}.plugins .active th.check-column{border-right:4px solid #2ea2cc}.plugins .active.update th.check-column,.plugins .active.update+.plugin-update-tr .plugin-update{border-right:4px solid #d54e21}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-left:12px;white-space:nowrap}.plugins .inactive .plugin-title strong{font-weight:400}.plugins .row-actions,.plugins .second{padding:0 0 5px}.plugins .update .row-actions,.plugins .update .second{padding-bottom:0}.plugins-php .widefat tfoot td,.plugins-php .widefat tfoot th{border-top-style:solid;border-top-width:1px}.plugin-update-tr .update-message{font-size:13px;font-weight:400;padding:6px 12px;margin:0 31px 8px 10px;background-color:#f7f7f7;background-color:rgba(0,0,0,.03)}.plugin-update-tr .update-message:before{color:#d54e21;content:'\f463';display:inline-block;font:400 20px/1 dashicons;speak:none;margin:0 -2px 0 8px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.plugins .plugin-update{padding:0;border:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}tr.active+tr.plugin-update-tr .plugin-update{background-color:#f7fcfe}tr.active+tr.plugin-update-tr .plugin-update .update-message{background-color:#fcf3ef}.plugin-install-php h4{margin:2.5em 0 8px}.wp-list-table .site-deleted{background:#ff8573}.wp-list-table .site-spammed{background:#faafaa}.wp-list-table .site-archived{background:#ffebe8}.wp-list-table .site-mature{background:#fecac2}@media screen and (max-width:782px){.tablenav{height:auto}.tablenav.top{margin:0}.tablenav.bottom{position:relative;margin-top:15px}.tablenav br{display:none}.tablenav br.clear{display:block}.tablenav.top .actions,.tablenav.top .displaying-num,.view-switch{display:none}.tablenav.bottom .displaying-num{position:absolute;left:0;top:10px;font-size:14px}.tablenav-pages{width:100%;text-align:center;margin:0 0 25px}.tablenav.bottom .tablenav-pages{margin-top:25px}.tablenav.top .tablenav-pages.one-page{display:none}.tablenav.bottom .tablenav-pages.one-page{margin:15px 0 0;height:0}.tablenav-pages .pagination-links .paging-input{font-size:18px}.tablenav-pages .pagination-links a{padding:8px 20px 11px;font-size:18px;background:rgba(0,0,0,.05)}.tablenav-pages .pagination-links .current-page{padding:10px;font-size:14px}.form-wrap>p{display:none}.comment-count{font-size:14px}.column-categories,.column-tags,.fixed .column-author,.fixed .column-date,.media .column-parent,.sites .column-registered,.sites .column-users,.tags .column-description,.users .column-email,.users .column-name{display:none}.fixed .column-comment .comment-author{display:block}.column-title{width:85%}.fixed .column-comments,.widefat .check-column{width:35px}.widefat tfoot .check-column,.widefat thead .check-column{padding:10px 0}.widefat *{word-wrap:normal}#wpbody-content .bulk-edit-row .inline-edit-col-bottom,#wpbody-content .bulk-edit-row .inline-edit-col-left,#wpbody-content .bulk-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .inline-edit-row-post .inline-edit-col-center,#wpbody-content .quick-edit-row-page .inline-edit-col-left,#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .quick-edit-row-post .inline-edit-col-left,#wpbody-content .quick-edit-row-post .inline-edit-col-right{float:none;width:100%}#wpbody-content .bulk-edit-row fieldset .inline-edit-col label,#wpbody-content .bulk-edit-row fieldset .inline-edit-group label,#wpbody-content .quick-edit-row fieldset .inline-edit-col label,#wpbody-content .quick-edit-row fieldset .inline-edit-group label{max-width:none;float:none;margin-bottom:5px}#wpbody .bulk-edit-row fieldset select{display:block;width:100%;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-size:16px}.inline-edit-row fieldset label span.title{float:none}.inline-edit-row fieldset label.inline-edit-tags{padding:0 .5em}.inline-edit-row fieldset .inline-edit-col label.inline-edit-tags{padding:0}.inline-edit-row fieldset label span.input-text-wrap{margin-right:0}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{width:3em}.inline-edit-row fieldset input[name=aa]{width:4.5em}#bulk-titles div{margin:.8em .3em}#bulk-titles div a{height:22px}.tags .column-posts{width:50px}.tags .column-slug{width:30%}.comments .column-response,.users .column-role{width:35%}.sites .column-blogname{width:55%}#wpbody-content #update-themes-table .plugin-title{width:auto}.link-manager-php #posts-filter{margin-top:25px}.link-manager-php .tablenav.bottom{overflow:hidden}.wp-list-table.plugins{position:relative;margin-top:35px;margin-bottom:50px}#wpbody-content .wp-list-table.plugins tfoot .column-description,.wp-list-table.plugins th#description,.wp-list-table.plugins thead .column-description{display:none}#wpbody-content .wp-list-table.plugins,#wpbody-content .wp-list-table.plugins .column-description,#wpbody-content .wp-list-table.plugins .manage-column.column-name,#wpbody-content .wp-list-table.plugins .plugin-title,#wpbody-content .wp-list-table.plugins .plugin-update,#wpbody-content .wp-list-table.plugins .theme-title,#wpbody-content .wp-list-table.plugins tbody,#wpbody-content .wp-list-table.plugins thead,#wpbody-content .wp-list-table.plugins tr{display:block;width:auto}.wp-list-table.plugins tfoot,.wp-list-table.plugins thead{position:absolute;top:-35px;right:0;left:0;width:auto;height:35px}.wp-list-table.plugins tfoot{bottom:-35px;top:auto}.active,.inactive{padding-top:0}.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-top:13px;padding-bottom:4px}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column,.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title,.wp-list-table.plugins tbody th{-webkit-box-shadow:none;box-shadow:none}.plugins tbody{padding:1px 0 0}.plugins tr.active+tr.inactive td.column-description{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column{border-top:0}.wp-list-table.plugins .column-description{padding-top:0}.wp-list-table.plugins .column-description,.wp-list-table.plugins .manage-column.column-name,.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-left:12px;padding-right:46px}.wp-list-table.plugins tr{position:relative}.wp-list-table.plugins th.check-column,.wp-list-table.plugins tr.update th.check-column{position:absolute;height:auto;top:0;bottom:0;right:0;padding-right:2px;padding-top:18px}.wp-list-table.plugins tfoot th.check-column,.wp-list-table.plugins thead th.check-column{padding-right:3px;padding-top:11px;background:0 0}.widefat tbody th.check-column input[type=checkbox]{margin-top:-3px;margin-right:8px}.wp-list-table.plugins .active .check-column input,.wp-list-table.plugins .update .check-column input{margin-right:5px}.wp-list-table.plugins tfoot .check-column input,.wp-list-table.plugins thead .check-column input{margin-top:-6px}.wp-list-table.plugins .active th.check-column{background:0 0}.wp-list-table.plugins .plugin-title strong,.wp-list-table.plugins .theme-title strong{font-size:1.4em;line-height:1.6em}table.plugin-install .column-description,table.plugin-install .column-name,table.plugin-install .column-rating,table.plugin-install .column-version{display:block;width:auto}table.plugin-install th.column-description,table.plugin-install th.column-name,table.plugin-install th.column-rating,table.plugin-install th.column-version{display:none}table.plugin-install td.column-name strong{font-size:1.4em;line-height:1.6em}table.plugin-install #the-list td{-webkit-box-shadow:none;box-shadow:none}table.plugin-install #the-list tr{display:block;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}}#poststuff{padding-top:10px;min-width:763px}#poststuff #post-body{padding:0}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-left:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments .spinner,#show-comments a{float:right}#lost-connection-notice .spinner{display:block;float:right;margin:0 0 0 5px}#titlediv{position:relative;margin-bottom:10px}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0;background-color:#fff}#titlediv #title-prompt-text{color:#777;position:absolute;font-size:1.7em;padding:11px 10px}#wp-fullscreen-save .fs-saved{color:#999;float:left;margin-top:4px}#poststuff .inside-submitbox,#side-sortables .inside-submitbox{margin:0 3px;font-size:11px}input#link_description,input#link_url{width:98%}#pending{background:0 none;border:0 none;padding:0;font-size:11px;margin-top:-1px}#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-left:10px;font-size:11px}#editable-post-name-full{display:none}#editable-post-name{background-color:#fffbcc}#editable-post-name input{font-size:13px;height:22px;margin:0;width:16em}.postarea h3 label{float:right}.submitbox .submit{text-align:right;padding:12px 10px 10px;font-size:11px;background-color:#464646;color:#ccc}.submitbox .submitdelete{text-decoration:none;padding:1px 2px}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:red;border-bottom-color:red}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-left:4px;padding:6px}.inside-submitbox #post_status{margin:2px -2px 2px 0}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{position:relative;min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:transparent none;border:0 none;float:left;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#333}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:10px 0}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:0 7px 5px}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0 none}#side-sortables .inside-submitbox .insidebox,.stuffbox .insidebox{margin:11px 0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:solid 1px transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #dfdfdf;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 5px}#postimagediv .inside img{max-width:100%;height:auto}form#tags-filter{position:relative}td.plugin-title strong,td.post-title strong{display:block;margin-bottom:.2em;font-size:14px}td.plugin-title p,td.post-title p{margin:6px 0}.ui-tabs-hide,.wp-hidden-children .wp-hidden-child{display:none}#post-body .tagsdiv #newtag{margin-left:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:0;background-color:#f7f7f7;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}#post-status-info td{font-size:12px}.autosave-info{padding:2px;text-align:left}#editorcontent #post-status-info{border:0}#content-resize-handle{background:transparent url(../images/resize.gif) no-repeat scroll left bottom;width:12px;cursor:row-resize}.rtl #content-resize-handle{background:transparent url(../images/resize-rtl.gif) no-repeat scroll right bottom}#wp-word-count{display:block;padding:2px 10px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#misc-publishing-actions label[for=post_status]:before,#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#888}#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 2px;top:0;right:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}#post-body #visibility:before{content:'\f177'}.curtime #timestamp:before{content:'\f145';top:-1px}#post-body .misc-pub-revisions:before{content:'\f321'}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;right:50%;width:450px;margin-right:-225px;background:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005}.notification-dialog-background{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#post-lock-dialog .post-locked-message a.button{margin-left:10px}#post-lock-dialog .post-locked-avatar{float:right;margin:0 0 20px 20px}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:right;margin-left:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt,.attachmentlinks{margin:0;height:4em;width:98%}.tagchecklist{margin-right:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-right:-8px;position:absolute}.tagchecklist span{margin-left:25px;display:block;float:right;font-size:13px;line-height:1.8em;white-space:nowrap;cursor:default}.tagchecklist span a{margin:1px -17px 0 0;cursor:pointer;width:20px;height:20px;display:block;float:right;text-indent:0;overflow:hidden;position:absolute}#poststuff h2{margin-top:20px;font-size:1.5em;margin-bottom:15px;padding:0 0 3px;clear:right}#poststuff h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}#poststuff .inside label.deleted,#poststuff .inside label.spam{color:red}#poststuff .inside label.waiting{color:orange}#poststuff .inside label.approved{color:green}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}#post-visibility-select{line-height:1.5em;margin-top:3px}#poststuff #submitdiv .inside{margin:0;padding:0}.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0 none;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #dfdfdf;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-left:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:right;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-left:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#2ea2cc}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-right:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-left:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:'\f109'}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:'\f128'}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:'\f161'}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:'\f127'}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:'\f126'}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:'\f125'}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:'\f130'}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:'\f123'}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:'\f122'}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:'\f103'}.category-adder{margin-right:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:solid 1px #dfdfdf;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-right:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px;font-size:12px}.form-field input,.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:0 0 10px;padding:8px 0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h3{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.tagsdiv{margin-top:-8px}#poststuff .taghint{color:#aaa;margin:15px 12px -24px 0}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}.taghint{color:#aaa;margin:-17px 7px 0 0;visibility:hidden}input.newtag~div.taghint{visibility:visible}input.newtag:focus~div.taghint{visibility:hidden}p.popular-tags{border:0;line-height:2em;max-width:1000px;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h3{margin:2px 0 12px}.ac_results{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;display:none;border:1px solid gray;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{padding:2px 5px;white-space:nowrap;color:#101010;text-align:right}.ac_over{background-color:#f0f0b8;cursor:pointer}.ac_match{text-decoration:underline}.comment-php .wp-editor-area{height:200px}.comment-ays{margin-bottom:0;border-bottom-style:solid;border-bottom-width:1px}.comment-ays .alt{background-color:transparent}.spam-undo-inside,.trash-undo-inside{margin:1px 0 1px 8px;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-left:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 0 5px 3px;vertical-align:middle}#comment-status-radio label{padding:5px 0}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:right;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td,.links-table th{padding:5px 0}.links-table td label{margin-left:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url(../images/resize-2x.gif) no-repeat scroll left bottom;-webkit-background-size:11px 11px;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url(../images/resize-rtl-2x.gif) no-repeat scroll left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0 none;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff h3{padding:12px}.post-format-options{padding-left:0}.post-format-options a{margin-left:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-left:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist li{margin-bottom:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto;margin-bottom:15px}.tagchecklist{margin:25px 10px}.tagchecklist span{font-size:16px;line-height:120%}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:right!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-right:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding-top:6px;padding-bottom:6px;padding-right:6px;padding-left:3px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}#wp-content-editor-tools{overflow:hidden;padding:20px 0 1px 15px;top:1px}a.wp-switch-editor{font-size:16px;line-height:1em;margin:3px 7px 0 0;padding:12px 15px}#wp-content-media-buttons a{font-size:16px;line-height:37px;height:39px;padding:0 15px 0 20px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-top:-3px!important;margin-right:-5px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:left;font-size:16px}#delete-action,#publishing-action{line-height:47px}.comment-ays{border-bottom:0}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}}@media only screen and (max-width:500px){#wp-content-media-buttons a{font-size:14px;padding:0 10px}}.revisions-control-frame,.revisions-diff-frame{position:relative}.revisions-controls{padding-top:40px;height:100px;z-index:1}.revisions-controls input[type=checkbox]{position:relative;top:-1px;vertical-align:text-bottom}.revisions.pinned .revisions-controls{position:fixed;top:0;height:82px;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-tickmarks{position:relative;margin:0 auto;height:.7em;top:7px;max-width:70%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.revisions-tickmarks>div{position:absolute;height:100%;border-right:1px solid #aaa;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.revisions-tickmarks>div:first-child{border-width:0}.comparing-two-revisions .revisions-controls{height:140px}.comparing-two-revisions.pinned .revisions-controls{height:124px}.revisions .diff-error{position:absolute;text-align:center;margin:0 auto;width:100%;display:none}.revisions.diff-error .diff-error{display:block}.revisions .loading-indicator{position:fixed;vertical-align:middle;opacity:0;width:100%;top:50%;margin-right:-90px;-webkit-transition:opacity .5s;transition:opacity .5s;filter:alpha(opacity=0)}body.folded .revisions .loading-indicator{margin-right:-32px}.revisions .loading-indicator span.spinner{display:block;margin:0 auto;float:none}.revisions.loading .loading-indicator{opacity:1;filter:alpha(opacity=100)}.revisions .diff{-webkit-transition:opacity .5s;transition:opacity .5s}.revisions.loading .diff{opacity:.5;filter:alpha(opacity=50)}.revisions.diff-error .diff{visibility:hidden}.revisions-meta{margin-top:20px;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions.pinned .revisions-meta{-webkit-box-shadow:none;box-shadow:none}.revision-toggle-compare-mode{position:absolute;top:0;left:0}.comparing-two-revisions .revisions-next,.comparing-two-revisions .revisions-previous,.revisions-meta .diff-meta-to strong{display:none}.revisions-controls .author-card .date{color:#777}.revisions-controls .author-card.autosave{color:#d54e21}.revisions-controls .author-card .author-name{font-weight:700}.comparing-two-revisions .diff-meta-to strong{display:block}.revisions.pinned .revisions-buttons{padding:0 11px}.revisions-next,.revisions-previous{position:relative;z-index:1}.revisions-previous{float:right}.revisions-next{float:left}.revisions-controls .wp-slider{max-width:70%;margin:0 auto;top:-3px}.revisions-diff{padding:15px;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-diff h3:first-child{margin-top:0}#revisions-meta-restored img,.post-revisions li img{vertical-align:middle}table.diff tbody tr td:nth-child(2){width:4%}table.diff{table-layout:fixed;width:100%;white-space:pre-wrap}table.diff col.content{width:auto}table.diff col.content.diffsplit{width:48%}table.diff col.diffsplit.middle{width:auto}table.diff col.ltype{width:30px}table.diff tr{background-color:transparent}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.618;padding:.5em;vertical-align:top;word-wrap:break-word}table.diff td h1,table.diff td h2,table.diff td h3,table.diff td h4,table.diff td h5,table.diff td h6{margin:0}table.diff .diff-addedline ins,table.diff .diff-deletedline del{text-decoration:none}table.diff .diff-deletedline{background-color:#ffe9e9}table.diff .diff-deletedline del{background-color:#faa}table.diff .diff-addedline{background-color:#e9ffe9}table.diff .diff-addedline ins{background-color:#afa}.diff-meta{padding:5px;clear:both;min-height:32px}.diff-title strong{line-height:32px;min-width:60px;text-align:left;float:right;margin-left:5px}.revisions-controls .author-card .author-info{font-size:12px;line-height:16px}.revisions-controls .author-card .author-info,.revisions-controls .author-card .avatar{float:right;margin-right:6px;margin-left:6px}.revisions-controls .author-card .byline{display:block;font-size:12px}.revisions-controls .author-card .avatar{vertical-align:middle}.diff-meta input.restore-revision{float:left;margin-right:6px;margin-left:6px;margin-top:4px}.diff-meta-from{display:none}.comparing-two-revisions .diff-meta-from{display:block}.revisions-tooltip{position:absolute;bottom:105px;margin-left:0;margin-right:-69px;z-index:0;max-width:350px;min-width:130px;padding:8px 4px;opacity:0}.revisions-tooltip.flipped{margin-right:0;margin-left:-70px}.revisions.pinned .revisions-tooltip{display:none!important}.comparing-two-revisions .revisions-tooltip{bottom:145px}.revisions-tooltip-arrow{width:70px;height:15px;overflow:hidden;position:absolute;right:0;margin-right:35px;bottom:-15px}.revisions-tooltip.flipped .revisions-tooltip-arrow{margin-right:0;margin-left:35px;right:auto;left:0}.revisions-tooltip-arrow>span{content:"";position:absolute;right:20px;top:-20px;width:25px;height:25px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.revisions-tooltip.flipped .revisions-tooltip-arrow>span{right:auto;left:20px}.ie8 .revisions-tooltip-arrow>span{right:15px;top:-25px;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476)"}.ie8 .revisions-tooltip.flipped .revisions-tooltip-arrow>span{left:25px}.revisions-tooltip,.revisions-tooltip-arrow>span{border:1px solid #d7d7d7;background-color:#fff}.revisions-tooltip{display:none}.arrow{width:70px;height:16px;overflow:hidden;position:absolute;right:0;margin-right:-35px;bottom:90px;z-index:10000}.arrow::after{z-index:9999;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.arrow.top{top:-16px;bottom:auto}.arrow.left{right:20%}.arrow:after{content:"";position:absolute;right:20px;top:-20px;width:25px;height:25px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.revisions-tooltip,.revisions-tooltip-arrow:after{border-width:1px;border-style:solid}div.revisions-controls>.wp-slider>.ui-slider-handle{margin-right:-10px}.rtl div.revisions-controls>.wp-slider>.ui-slider-handle{margin-left:-10px}.wp-slider.ui-slider{position:relative;border:1px solid #d7d7d7;text-align:right;cursor:pointer}.wp-slider .ui-slider-handle{-webkit-border-radius:50%;border-radius:50%;height:18px;margin-top:-3px;outline:0;position:absolute;width:18px;z-index:2}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#2ea2cc;border:1px solid #0074a2;-webkit-box-shadow:inset 0 1px 0 #78c8e6,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #78c8e6,0 1px 0 rgba(0,0,0,.15)}.wp-slider .ui-slider-handle:before{background:0 0;position:absolute;top:0;right:0;color:#fff;content:"\f229";font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{font-size:20px!important;margin:-1px -1px 0 0}.wp-slider .ui-slider-handle.from-handle:before{content:'\f139'}.rtl .wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{content:'\f141'}.rtl .wp-slider .ui-slider-handle.to-handle:before{content:'\f139';left:-1px}.wp-slider .ui-slider-range{position:absolute;font-size:.7em;display:block;border:0;background-color:transparent;background-image:none}.wp-slider.ui-slider-horizontal{height:.7em}.wp-slider.ui-slider-horizontal .ui-slider-handle{top:-.25em;margin-right:-.6em}.wp-slider.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.wp-slider.ui-slider-horizontal .ui-slider-range-min{right:0}.wp-slider.ui-slider-horizontal .ui-slider-range-max{left:0}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.revision-tick.completed-false{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){#diff-next-revision,#diff-previous-revision{margin-top:-1em}table.diff{-ms-word-break:break-all;word-break:break-all;word-wrap:break-word}}.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #dfdfdf;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:right;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 0 8px 8px;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 10px 0 0}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-left:6px;margin-right:2px}.media-upload-form .align .field label{display:inline;padding:0 23px 0 0;margin:0 3px 0 1em;font-weight:600}.media-upload-form tr.image-size label{margin:0 5px 0 0;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 5px 0 0}.describe-toggle-off,.describe-toggle-on,.media-item .edit-attachment{display:block;line-height:36px;float:left}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}#media-items .media-item{border-bottom:1px solid #dfdfdf;min-height:36px;position:relative;width:100%}#media-items{width:623px}.media-new-php #media-items{margin:1em 0}#media-items:empty{border:0 none}.media-item .filename{line-height:36px;overflow:hidden}.media-item .pinkynail{float:right;margin:2px 0 0 10px;max-width:40px;max-height:32px}.media-item .startclosed,.media-item .startopen{display:none}.media-item .original{position:relative;height:34px}.media-item .progress{float:left;height:22px;margin:7px 0 0;width:200px;line-height:2em;padding:0;overflow:hidden;margin-bottom:2px;-webkit-border-radius:22px;border-radius:22px;background:#ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;-webkit-border-radius:22px;border-radius:22px;background-color:#0074a2;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,.3);box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item.error{margin:0;padding:0}.media-item .error-div,.media-upload-form .media-item.error p{line-height:16px;margin:5px 10px;padding:0}.media-item .error-div a.dismiss{display:block;float:left;margin:5px 15px 0 4px}.find-box{background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-right:-300px;position:fixed;top:30px;bottom:30px;right:50%;z-index:100105}.find-box-head{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 16px 0 36px;position:absolute;top:0;right:0;left:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;right:125px;position:absolute;top:18px}#find-posts-input,#find-posts-search{float:right}#find-posts-input{width:140px;height:28px;margin:0 0 0 4px}.widefat .found-radio{padding-left:0;width:16px}#find-posts-close{width:36px;height:36px;position:absolute;top:0;left:0;cursor:pointer;text-align:center;color:#666}#find-posts-close:hover{color:#2ea2cc}#find-posts-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f158'}.find-box-buttons{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;right:0;left:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;right:0;left:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em 0}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #ddd;line-height:1.8em;word-spacing:3px;-webkit-border-radius:6px;border-radius:6px}.drag-drop #drag-drop-area{border:4px dashed #bbb;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#aaa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative}.imgedit-settings p{margin:8px 0 0}.describe .imgedit-wrap .imgedit-settings{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto;overflow:hidden}.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{padding-left:16px;width:auto;overflow:hidden}.wp_attachment_holder .imgedit-wrap .imgedit-settings{float:left;width:250px}.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;background:#fff url(../images/spinner.gif) no-repeat center;-webkit-background-size:20px 20px;background-size:20px 20px;opacity:.7;filter:alpha(opacity=70);width:100%;height:500px;display:none}.no-float{float:none}.imgedit-settings .disabled,.media-disabled{color:grey}.A1B1,.wp_attachment_image{overflow:hidden}.A1B1 .button,.wp_attachment_image .button{float:right}.no-js .wp_attachment_image .button{display:none}.A1B1 .spinner,.wp_attachment_image .spinner{float:right;padding:0 0 4px;vertical-align:bottom}.imgedit-menu{margin:0 0 12px;min-width:300px}.imgedit-menu div{float:right;width:32px;border:1px solid #d5d5d5;background:#f1f1f1;margin:0 0 0 8px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;line-height:28px;color:#777;cursor:pointer}.imgedit-menu div:before{font:400 20px/1 dashicons;speak:none;vertical-align:middle}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea;color:#333}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;color:#777;filter:alpha(opacity=50);opacity:.5;cursor:default}.imgedit-crop:before{content:'\f165'}.imgedit-rleft:before{content:'\f166'}.imgedit-rright:before{content:'\f167'}.imgedit-flipv:before{content:'\f168'}.imgedit-fliph:before{content:'\f169'}.imgedit-undo:before{content:'\f171'}.imgedit-redo:before{content:'\f172'}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 0 0 8px}.imgedit-rleft{margin:0 3px}.imgedit-rright{margin:0 3px 0 8px}.imgedit-flipv{margin:0 3px}.imgedit-fliph{margin:0 3px 0 8px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 3px 0 8px}.imgedit-applyto img{margin:0 0 0 8px}.imgedit-group-top{margin:5px 0}#poststuff .imgedit-group-top h3{padding:0}.imgedit-group-top h3 a{text-decoration:none}.imgedit-applyto .imgedit-label{padding:2px 0 0;display:block}.imgedit-help{display:none;font-style:italic}a.imgedit-help-toggle{text-decoration:none}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0}.imgedit-submit-btn{margin-right:20px}.imgedit-wrap .nowrap{white-space:nowrap}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-group{margin-bottom:8px;padding:2px 10px}audio,video{display:inline-block;max-width:100%}.mejs-container{width:100%}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5em}}.theme-browser .themes{clear:both;padding:0 0 100px}.themes-php .wrap h2{float:right;margin-bottom:15px}.network-admin.themes-php .wrap h2{margin-bottom:0}.themes-php .wrap h2 .button{margin-right:20px}.theme-navigation .theme-count,.themes-php .wrap .theme-count{color:#fff;-webkit-border-radius:30px;border-radius:30px;background:#777;font-size:14px;padding:4px 10px;font-weight:600;margin-right:5px;margin-left:20px;position:relative;top:-3px}.theme-navigation a{text-decoration:none}.themes-php div.error,.themes-php div.updated{margin:0 0 20px;clear:both}.themes-php div.updated a{text-decoration:underline}.theme-browser .theme{cursor:pointer;float:right;margin:0 0 4% 4%;position:relative;width:30.6%;border:1px solid #dedede;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ie8 .theme-browser .theme{width:30%;margin:0 0 4% 3%}.theme-browser .theme:nth-child(3n){margin-left:0}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{-ms-filter:"alpha(Opacity=0)";opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;left:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-right:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:focus .theme-actions,.theme-browser .theme:hover .theme-actions{-ms-filter:"alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-left:3px}.theme-browser .theme .theme-actions .button-secondary{float:none;margin-right:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:'';display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;right:0;top:0;width:100%;-webkit-transform:translateZ(0);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme:focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{-ms-filter:"alpha(Opacity=0)";opacity:0;position:absolute;top:35%;left:25%;right:25%;background:#222;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.theme-browser .theme:focus{outline:1px dotted #222}.theme-browser .theme:focus .more-details{opacity:1}.theme-browser .theme.active:focus .theme-actions{display:block}.theme-browser.rendered .theme:focus .more-details,.theme-browser.rendered .theme:hover .more-details{-ms-filter:"alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-installed,.theme-browser .theme .theme-update{background:#d54e21;background:rgba(213,78,33,.95);color:#fff;display:block;font-size:13px;font-weight:400;height:48px;line-height:48px;padding:0 10px;position:absolute;top:0;left:0;right:0;border-bottom:1px solid rgba(0,0,0,.25);overflow:hidden}.theme-browser .theme .theme-installed:before,.theme-browser .theme .theme-update:before{content:'\f463';display:inline-block;font:400 20px/1 dashicons;margin:0 0 0 6px;opacity:.8;position:relative;top:5px;speak:none;-webkit-font-smoothing:antialiased}.theme-browser .theme.active .theme-name{background:#2f2f2f;color:#fff;padding-left:110px;font-weight:300;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(49,49,49,.7);border-right:0;opacity:1}.theme-browser .theme.active .theme-actions .button-primary{margin-left:0}.theme-browser .theme .theme-author{background:#222;color:#eee;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit;text-decoration:none}.theme-browser .theme.add-new-theme{border:0;-webkit-box-shadow:none;box-shadow:none}.theme-browser .theme.add-new-theme a{color:#999;text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme:after{display:block;content:'';-ms-filter:"alpha(Opacity=100)";opacity:1;background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;right:0;left:0;bottom:0;padding:10% 0 0;text-shadow:none;border:5px dashed #d5d2ca;border:5px dashed rgba(0,0,0,.1);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#e5e5e5;background:rgba(153,153,153,.1);-webkit-border-radius:50%;border-radius:50%;display:inline-block;content:'\f132';-webkit-font-smoothing:antialiased;font:400 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#999;position:absolute;top:30%;right:50%;margin-right:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme:focus .theme-screenshot,.theme-browser .theme.add-new-theme:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme:focus span:after,.theme-browser .theme.add-new-theme:hover span:after{background:#fff;color:#0074a2}.theme-browser .theme.add-new-theme:focus:after,.theme-browser .theme.add-new-theme:hover:after{border-color:transparent;color:#fff;background:#0074a2;content:''}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;-webkit-box-shadow:none;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-10%;margin-bottom:10%}.theme-browser .theme.add-new-theme:focus .theme-name,.theme-browser .theme.add-new-theme:hover .theme-name{color:#fff;z-index:2}.themes-php .theme-search{position:relative;top:-2px;right:20px;font-size:16px;font-weight:300;line-height:1.5;width:280px}.theme-overlay .theme-backdrop{position:absolute;right:-20px;left:0;top:0;bottom:0;background:#f1f1f1;background:rgba(238,238,238,.9);z-index:10}body.theme-overlay-open{overflow:hidden}.theme-overlay .theme-header{position:absolute;top:0;right:0;left:0;height:48px;border-bottom:1px solid #ddd}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:left;border:0;border-right:1px solid #ddd;background-color:transparent}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#fff}.theme-overlay .theme-header .close:before{font:400 30px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#777;background-color:transparent;height:48px;width:54px;float:right;text-align:center;border:0;border-left:1px solid #ddd}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#0074a2;color:#fff}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#ccc;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.theme-overlay .theme-header .left:before{content:'\f340'}.theme-overlay .theme-header .right:before{content:'\f344'}.rtl .theme-overlay .theme-header .left:before{content:'\f345'}.rtl .theme-overlay .theme-header .right:before{content:'\f341'}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;right:190px;left:30px;bottom:3%;background:#fff;-webkit-box-shadow:0 1px 20px 5px rgba(0,0,0,.1);box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:20;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-overlay .theme-wrap:after{content:".";display:block;height:0;clear:both;visibility:hidden}body.folded .theme-overlay .theme-wrap{right:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;right:0;left:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-about:after{content:".";display:block;height:0;clear:both;visibility:hidden}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;right:0;left:0;padding:10px 25px 5px;background:#f3f3f3;z-index:30;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-top:1px solid #eee}.ie8 .theme-overlay .theme-actions{border:1px solid #eee}.theme-overlay .theme-actions a{margin-left:5px;margin-bottom:5px}.theme-overlay .theme-actions .delete-theme{color:#a00;position:absolute;left:10px;bottom:5px;text-decoration:none;border-color:transparent;-webkit-box-shadow:none;box-shadow:none;background:0 0}.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#d54e21;color:#fff;border-color:#d54e21}.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:right;margin:0 0 0 30px;width:55%;max-width:880px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:'';display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;right:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:350px;width:auto}.theme-overlay .screenshot.thumb{background:#ccc;border:1px solid #eee;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:'';display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;position:absolute;right:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #2ea2cc}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:right}.theme-overlay .current-label{background:#333;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;-webkit-border-radius:2px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-name{color:#222;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3}.theme-overlay .theme-version{color:#999;font-size:13px;font-weight:400;float:none;display:inline-block;margin-right:10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-author{color:#686868;font-size:16px;font-weight:400;margin:15px 0 25px}.theme-overlay .theme-author a{text-decoration:none}.theme-overlay .theme-description{color:#555;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #eee;color:#888;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#444;font-weight:700;margin-left:5px}.theme-overlay .theme-update-message{background:#fef7f1;border:1px solid #eee;border-right:4px solid #d54e21;-webkit-border-radius:3px;border-radius:3px;padding:5px 20px 10px}.theme-overlay .theme-update{color:#222;font-size:18px;display:inline-block;line-height:40px;margin:0}.theme-overlay .parent-theme{background:#f7fcfe;border:1px solid #eee;border-right:4px solid #2ea2cc;font-size:14px;font-weight:400;margin-top:30px;padding:10px 20px 10px 10px}.theme-overlay .parent-theme strong{font-weight:700}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;right:auto;left:auto;top:auto;bottom:auto}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 0 3% 3%}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-left:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-left:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 0 3% 3%}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-left:3%}.theme-browser .theme:nth-child(4n){margin-left:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-left:0}.theme-browser .theme:nth-child(even){margin-left:0}.theme-browser .theme:nth-child(odd){margin-left:5%}}@media only screen and (max-width:900px){.theme-overlay .theme-wrap{right:65px}}@media only screen and (max-width:780px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;left:0;bottom:0;right:0;padding:70px 20px 20px;border:0;z-index:500;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:0;width:auto}.theme:focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-left:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-left:0}}@media only screen and (max-width:650px){.theme-overlay .theme-description,.theme-overlay .theme-update{margin-right:0}.theme-overlay .theme-actions .delete-theme{position:relative;left:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wrap h2{width:100%}.themes-php .theme-search{float:none;clear:both;right:0;top:0;left:0;margin:10px 0;width:100%}.theme-browser .theme.add-new-theme span:after{font:400 60px/90px dashicons;width:80px;height:80px;top:30%;right:50%;text-indent:0;margin-right:-40px}.single-theme .theme-wrap{margin:0 -10px 0 -12px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:right;width:50%;border-spacing:3px;padding:3px}.theme-browser .theme .theme-installed{background:#0074a2}.theme-browser .theme .theme-installed:before{content:'\f147'}.theme-browser .theme.is-installed .theme-actions .button-primary{display:none!important}.theme-navigation{background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:#555;display:inline-block;font-size:13px;margin:20px 0 30px;padding:0 20px;position:relative;width:100%}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.theme-install-php a.browse-themes,.theme-install-php.show-upload-theme a.upload{display:none}.theme-install-php.show-upload-theme a.browse-themes{display:inline}.upload-theme{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:none;margin:0;padding:0;width:100%;overflow:hidden;position:relative;top:10px}body.show-upload-theme .upload-theme{display:block}.upload-theme .wp-upload-form{background:#fafafa;border:1px solid #e5e5e5;padding:30px;margin:30px auto;max-width:380px}.upload-theme .install-help{color:#999;font-size:18px;font-style:normal;margin:0;padding:40px 0 0;text-align:center}body.show-upload-theme .upload-theme+.theme-navigation,body.show-upload-theme .upload-theme+.theme-navigation+.theme-browser{display:none}.theme-navigation .theme-count{margin-right:0;position:absolute;top:12px}.theme-count+.theme-section{margin-right:60px}.theme-filter,.theme-section{border-bottom:4px solid #fff;color:#666;cursor:pointer;display:inline-block;margin:0 10px;padding:15px 0}.theme-filter.current,.theme-section.current{border-bottom:4px solid #666;color:#222}.theme-top-filters{display:inline-block}.theme-navigation .more-filters{color:#666;cursor:pointer;display:inline-block;margin:0 10px;padding:4px 6px}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{background:#777;-webkit-border-radius:2px;border-radius:2px;border:0;color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background:#2ea2cc}.theme-install-php .theme-search{position:absolute;left:10px;top:9px;font-size:16px;font-weight:300;line-height:1.5;width:280px}.more-filters:before{color:#777;margin:0 0 0 5px;content:"\f111";display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center}.more-filters.current:before{color:#fff}.more-filters-container{display:none;padding:20px;border-top:1px solid #eee;margin:0 -20px;background:#fafafa}body.more-filters-opened .more-filters-container{display:block;overflow:hidden}body.more-filters-opened .theme-section.current{border-bottom:0}body.more-filters-opened .theme-browser,body.more-filters-opened.filters-applied.loading-themes .theme-browser{display:none}body.more-filters-opened.filters-applied .theme-browser{display:block}.more-filters-container .filters-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:right;width:19%;background:#fff;margin:0 0 0 1%;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);padding:10px}.more-filters-container .wide-filters-group{width:38%}.more-filters-container .feature-name{margin:0;position:relative}.more-filters-container ol{list-style-type:none;margin:20px 0 0;font-size:12px}.more-filters-container li{display:inline-block;vertical-align:top;list-style-type:none;margin:5px 0;padding-left:25px;width:160px}.theme-navigation .more-filters-container .apply-filters{margin:0 0 20px}.theme-navigation .more-filters-container .clear-filters{display:none;margin:0 10px 20px 0}.more-filters-container .apply-filters span{display:inline-block;font-size:12px;text-indent:10px;opacity:.8}.more-filters-container .filtering-by{display:none;margin:0}.more-filters-container .filtering-by>span{font-weight:600}.more-filters-container .filtering-by .tags{display:inline}.more-filters-container .filtering-by .tag{background:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);font-size:11px;margin:0 5px;padding:4px 8px}.more-filters-container .filtering-by a{margin-right:10px}body.filters-applied .more-filters-container .filters-group,body.filters-applied .more-filters-container a.button,body.filters-applied .more-filters-container br{display:none!important}body.filters-applied .more-filters-container .filtering-by{display:block}body.filters-applied .more-filters-container{padding:20px}p.no-themes{color:#999;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center;display:none}body.no-results p.no-themes{display:block}.theme-install-php .add-new-theme,body.show-upload-theme p.no-themes{display:none!important}@media only screen and (max-width:1120px){.theme-install-php .theme-search{margin:20px 0;position:static;width:100%}.more-filters-container{border-bottom:1px solid #eee}.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0;text-align:right}.more-filters-container .filters-group{margin-bottom:0;margin-top:5px;width:100%}.more-filters-container .filters-group li{margin:10px 0}}@media only screen and (max-width:782px){.more-filters-container .filters-group,.more-filters-container .filters-group li{width:100%}}.rating{margin:30px 0}.rating span:before{color:#e6b800;content:"\f154";display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/1 dashicons;vertical-align:top}.rating-10 span.one:before,.rating-30 span.two:before,.rating-50 span.three:before,.rating-70 span.four:before,.rating-90 span.five:before{content:"\f459"}.rating-100 span.five:before,.rating-100 span.four:before,.rating-100 span.one:before,.rating-100 span.three:before,.rating-100 span.two:before,.rating-20 span.one:before,.rating-30 span.one:before,.rating-40 span.one:before,.rating-40 span.two:before,.rating-50 span.one:before,.rating-50 span.two:before,.rating-60 span.one:before,.rating-60 span.three:before,.rating-60 span.two:before,.rating-70 span.one:before,.rating-70 span.three:before,.rating-70 span.two:before,.rating-80 span.four:before,.rating-80 span.one:before,.rating-80 span.three:before,.rating-80 span.two:before,.rating-90 span.four:before,.rating-90 span.one:before,.rating-90 span.three:before,.rating-90 span.two:before{content:"\f155"}.rating .ratings{display:inline;margin-right:10px;line-height:20px;color:#999}.error .theme-browser,.loading-themes .theme-browser{display:none}.loading-themes .spinner{display:block;margin:40px auto 0;float:none}.appearance_page_custom-header #headimg{border:1px solid #DFDFDF;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:right;margin:0 0 20px 20px}.appearance_page_custom-header .random-header{clear:both;margin:0 0 20px 20px;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-left:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dfdfdf}div#custom-background-image img{max-width:400px;max-height:300px}body.full-overlay-active{overflow:hidden}.wp-full-overlay{background:0 0;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:fixed;width:300px;height:100%;top:0;bottom:0;right:0;padding:0;margin:0;z-index:10;overflow:auto;background:#eee;border-left:0}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-right:0!important}.wp-full-overlay.expanded{margin-right:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-300px}.wp-full-overlay-sidebar:after{content:'';display:block;position:absolute;top:0;bottom:0;left:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;right:0;left:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;right:0;left:0;height:45px;padding:0 15px;line-height:45px;z-index:10;margin:0;border-top:0;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:0;border-top:0;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;right:0;left:0;overflow:auto}.wp-full-overlay .close-full-overlay{text-decoration:none}.wp-full-overlay a.collapse-sidebar{position:absolute;bottom:12px;right:0;z-index:50;display:block;width:19px;height:19px;margin-right:15px;padding:0;-webkit-border-radius:50%;border-radius:50%;color:#777;text-decoration:none}.wp-full-overlay a.collapse-sidebar:hover{color:#0074a2}.wp-full-overlay.collapsed .collapse-sidebar{position:absolute;right:100%}.wp-full-overlay .collapse-sidebar-arrow{position:static;margin-top:0;margin-right:0;display:block;width:auto;height:auto;background:0 0}.wp-full-overlay .collapse-sidebar-arrow:before{-webkit-border-radius:50%;border-radius:50%;float:right;content:"\f148";background:#eee;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:none;-ms-transform:none;transform:none}.wp-full-overlay.collapsed .collapse-sidebar-arrow{background-position:-1px -109px}.wp-full-overlay .collapse-sidebar-label{position:absolute;right:100%;line-height:20px;margin-right:10px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .theme-navigation{padding:10px 20px;position:absolute;bottom:10px;text-align:right}.wp-full-overlay .theme-navigation .next-theme{float:left}.wp-full-overlay.no-navigation .theme-navigation{display:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{-webkit-transition-property:right,left,top,bottom,width,margin;transition-property:right,left,top,bottom,width,margin;-webkit-transition-duration:.2s;transition-duration:.2s}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%}.customize-active #customize-container{display:block}.customize-loading #customize-container iframe{opacity:0}.customize-loading #customize-container{background:#fff url(../images/spinner.gif) no-repeat fixed center center;-webkit-background-size:20px 20px;background-size:20px 20px}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;transition:opacity .3s}#customize-container .collapse-sidebar{bottom:16px}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:left;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin-top:15px;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0;float:right}.theme-details .star-rating{margin:7px 0;float:left}.theme-details .theme-description{float:right;color:#777;line-height:20px;max-width:100%}.theme-install-overlay .wp-full-overlay-header{margin-top:9px}.theme-install-overlay .wp-full-overlay-header .theme-install{float:left;line-height:26px}.theme-install-overlay .wp-full-overlay-sidebar{background:#EEE;border-left:1px solid #DDD}.theme-install-overlay .wp-full-overlay-main{background:#fff url(../images/spinner.gif) no-repeat center center;-webkit-background-size:20px 20px;background-size:20px 20px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);-webkit-background-size:15px 123px;background-size:15px 123px}.customize-loading #customize-container,.theme-install-overlay .wp-full-overlay-main{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}}.press-this #message{border-right:4px solid #7ad03a;padding:1px 12px;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.press-this #side-sortables .category-tabs li{display:inline;line-height:1.35em}body.press-this ul.category-tabs li.tabs a{color:#333}.press-this #content-resize-handle{bottom:2px}body.press-this{color:#333;margin:0;padding:0;min-width:708px;min-height:400px}.press-this #titlediv #title{font-size:1.4em}.press-this #site-heading:before{top:3px;position:relative;display:inline-block;font:400 18px/1 dashicons;speak:none;color:#727272;content:'\f120';-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.press-this #wphead{height:32px;margin-right:0;margin-left:0;margin-bottom:5px}.press-this #header-logo{float:right;margin:7px 7px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.press-this #wphead h1{font-weight:400;font-size:16px;line-height:32px;margin:0;float:right}.press-this #wphead h1 a{text-decoration:none}.press-this #wphead h1 a:hover{text-decoration:underline}.press-this #message{margin:10px 0}.press-this .posting{margin-left:250px}.press-this-sidebar{float:left;width:240px;padding-top:10px}.press-this #title{margin-right:0;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.press-this .tagchecklist{margin-top:8px}.press-this #titlediv{margin:0}.press-this #wp-content-wrap #wp-content-editor-tools{padding:0;top:3px;overflow:hidden}.press-this .wp-media-buttons{cursor:default;padding:8px 8px 6px}.press-this #wp-content-wrap #wp-content-media-buttons a{padding:0;line-height:normal;height:auto;font-size:16px}.press-this #wp-content-wrap .mce-toolbar .mce-btn-group .mce-btn{margin:0 1px}.press-this #wp-content-wrap .mce-toolbar .mce-btn button{padding:2px 3px}.press-this #wp-content-wrap .quicktags-toolbar,.press-this #wp-content-wrap div.mce-toolbar-grp{padding-left:3px}.press-this .howto{margin-top:2px;margin-bottom:3px;font-size:12px;font-style:italic;display:block}.press-this #wp-content-editor-container{clear:none}.press-this #poststuff .inside{margin-top:18px}.press-this .category-tabs{margin-bottom:3px}.press-this #poststuff{margin:0 8px;padding:0}.press-this #photo-add-url-div input[type=text]{width:220px}#poststuff #editor-toolbar{height:30px}.posting{margin-left:212px;position:relative}.press-this .inner-sidebar{width:200px}.press-this .inner-sidebar .sleeve{padding-top:5px}.press-this #submitdiv p{margin:0;padding:6px}.press-this #submitdiv #publishing-actions{border-bottom:1px solid #dfdfdf}.press-this #publish{float:left}.press-this #poststuff h2,.press-this #poststuff h3{font-size:14px;line-height:1}.press-this #categorydiv h3,.press-this #tagsdiv-post_tag h3{cursor:pointer}.press-this #submitdiv h3{cursor:default}h3.tb{font-weight:600;font-size:12px;margin-right:5px}.press-this .postbox,.press-this .stuffbox{margin-bottom:10px;min-width:0}.press-this #submitdiv:hover .handlediv{background:0 0}.tbtitle{font-size:1.7em;outline:0;padding:3px 4px;border:1px solid #dfdfdf}.press-this .actions{float:left;margin:-19px 0 0}.press-this #extra-fields .actions{margin:-32px 0 0 -7px}.press-this .actions li{float:right;list-style:none;margin-left:10px}#extra-fields .button{margin-left:5px}#photo_saving{margin:0 8px 8px;vertical-align:middle}#img_container_container{overflow:auto}#extra-fields{margin-top:10px;position:relative}#extra-fields h2{margin:12px}#waiting{margin-top:10px;overflow:hidden}#waiting span{float:left;margin:0 5px 0 0}#waiting .spinner{display:block}#extra-fields .postbox{margin-bottom:5px}#extra-fields .titlewrap{padding:0;overflow:auto;height:120px}#img_container a{float:right;overflow:hidden}#img_container a,#img_container img{width:68px;height:68px}#img_container img{border:0;background-color:#f4f4f4;cursor:pointer}#img_container a,#img_container a:link,#img_container a:visited{border:1px solid #ccc;display:block;position:relative}#img_container a:active,#img_container a:hover{border-color:#000;z-index:1000;border-width:1px}#embed-code{width:100%;height:98px}.press-this .categorydiv div.tabs-panel{height:100px}.press-this .tagsdiv .newtag{width:120px}.press-this #content{margin:5px 0;padding:0 5px;border:0 none;height:340px;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:19px;background:0 0}.press-this #publishing-actions .spinner{display:inline;vertical-align:middle}@media screen and (max-width:782px){.press-this ul.category-tabs li.tabs{padding:3px 5px 5px}.press-this a.wp-switch-editor{font:13px/19px "Open Sans",sans-serif;margin:5px 5px 0 0;padding:3px 8px 4px}.press-this #wp-content-media-buttons a{padding:0;line-height:normal;height:auto}.press-this #wp-content-editor-tools{padding:0;top:3px}.press-this .category-tabs{margin-top:0}.press-this .tagsdiv .newtag{width:120px;padding:3px 5px;margin-bottom:0}.press-this .tagchecklist{padding:0;margin-bottom:0}.press-this .wp_themeSkin a.mceButton{width:20px;height:20px}.press-this .wp_themeSkin .mceButton .mceIcon{margin:0}.press-this #poststuff h3,.press-this .metabox-holder h3{padding:7px 12px}.press-this input[type=checkbox],.press-this input[type=radio]{height:16px;width:16px}.press-this input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px -4px 0 0}.press-this input[type=radio]:checked:before{font:400 21px/1 dashicons;width:6px;height:6px;margin:4px}.press-this ul.categorychecklist li,.press-this ul.categorychecklist ul{margin-top:0;margin-bottom:0}.press-this div.quicktags-toolbar input{padding:2px 4px}.press-this input,.press-this textarea{font-size:14px}.press-this .tagchecklist span{font-size:13px;line-height:1.8em}}.about-wrap{position:relative;margin:25px 20px 0 40px;max-width:1050px;font-size:15px}.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;vertical-align:middle}.about-wrap p{line-height:1.6em;font-size:14px}.about-wrap h1{margin:.2em 0 0 200px;color:#333;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h4{color:#222}.about-wrap .about-text,.about-wrap li.wp-person a.web,.about-wrap p.about-description{font-weight:400;line-height:1.6em;font-size:19px}.about-description{margin-top:1.4em}.about-text{margin:1em 0 1em 200px;min-height:60px;color:#777;font-size:24px}.about-wrap .changelog h2.about-headline-callout{margin:1.1em 0 .2em;font-size:2.4em;font-weight:300;line-height:1.3;text-align:center}.about-wrap h3{margin:1em 0 .6em;font-size:1.5em;line-height:1.5em}.customize h3{margin-top:1.75em;text-align:center}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1.2em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap code,.about-wrap ol li p{font-size:14px}.about-wrap .button.button-large{padding:8px 20px 10px!important;height:46px!important;font-size:14px;line-height:28px!important}.about-wrap .about-overview-img{margin:0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #dfdfdf}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.wp-badge{background:#0074a2 url(../images/w-logo-white.png?ver=20131202) no-repeat;background:#0074a2,url(../images/wordpress-logo-white.svg?ver=20131110) no-repeat;background-position:center 24px;-webkit-background-size:85px 85px;background-size:85px 85px;color:#78c8e6;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:150px;text-rendering:optimizeLegibility;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.about-wrap .wp-badge{position:absolute;top:0;left:0}.about-wrap h2.nav-tab-wrapper{padding-right:6px}.about-wrap h2 .nav-tab{padding:4px 15px 6px;margin:0 0 -1px 3px;font-size:18px;vertical-align:top;border-width:1px}.about-overview{margin-top:40px;text-align:center}.about-overview .wp-video{margin:0 auto}.changelog .wp-playlist .wp-playlist-current-item img{height:64px;width:auto;max-width:100%}.about-wrap .feature-section{margin-top:40px;padding-bottom:20px}.about-wrap .feature-section.two-col>div{position:relative;width:47.5%;margin-left:4.999999999%;float:right}.about-wrap .feature-section.three-col>div{position:relative;width:29.95%;margin-left:4.999999999%;float:right}.about-wrap .feature-section.col .last-feature{margin-left:0}.about-wrap .under-the-hood .feature-section{margin-top:0}.about-wrap .changelog .feature-section{overflow:hidden}.about-wrap .feature-section.two-col div p{margin-left:3%}.about-wrap .feature-section div p img{float:left;margin-right:10px;max-width:20%}.about-wrap .changelog li{list-style-type:disc;margin-right:3em}.about-wrap .return-to-dashboard{margin:30px -5px 0 0;font-size:14px;font-weight:700}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h4.wp-people-group{margin-top:2.6em;font-size:16px}.about-wrap ul.wp-people-group{overflow:hidden;padding:0 5px;margin:0 -5px 0 -15px}.about-wrap ul.compact{margin-bottom:0}.about-wrap li.wp-person{float:right;margin-left:10px}.about-wrap li.wp-person img.gravatar{float:right;margin:0 0 10px 10px;padding:2px;width:60px;height:60px}.about-wrap ul.compact li.wp-person img.gravatar{width:30px;height:30px}.about-wrap li.wp-person{height:70px;width:280px;padding-bottom:15px}.about-wrap ul.compact li.wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap li.wp-person a.web{display:block;margin:6px 0 2px;font-size:16px;text-decoration:none}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:700}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:782px){.about-wrap .feature-section.one-col>div,.about-wrap .feature-section.three-col>div,.about-wrap .feature-section.two-col>div{width:100%;margin:0 0 40px;padding:0 0 40px;float:none;border-bottom:1px solid rgba(0,0,0,.1)}.about-wrap .feature-section.col>div.last-feature,.about-wrap .under-the-hood .feature-section>div{margin:0;padding:0;border-bottom:0}}@media only screen and (max-width:500px){.about-wrap{margin-left:20px;margin-right:10px}.about-text,.about-wrap h1{margin-left:0}.about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .feature-section.three-col div{width:100%;float:none}.about-wrap .three-col.about-updates .col-1{padding:0;float:none}.about-wrap .three-col.about-updates .col-2{margin:0 0 20px;width:100%;float:none}}.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 8px 3px 5px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}#nav-menus-frame{margin-right:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-right:-300px;clear:both;float:right;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-name{height:2em}.blank-slate .menu-settings{border:0;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#999;font-style:italic;font-weight:400;margin-right:4px}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus select{float:right;margin-left:6px}.manage-menus .selected-menu{float:right;margin:5px 0 0 6px}.manage-menus .submit-btn{float:right;margin-top:1px}.menu-edit p{margin:.3em 0 .6em}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings dl{margin:0 0 10px;overflow:hidden;padding-right:18%}.menu-settings dd{float:right;margin:0;width:100%}.menu-settings dt{float:right;clear:both;width:21.951%;padding:3px 0 0;margin-right:-21.951%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#999;font-size:11px}#menu-management-liquid{float:right;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-left:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #dfdfdf;margin-bottom:0}#nav-menu-header .menu-name-label{margin-top:4px}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#menu-management .menu-add-new abbr{font-weight:600}#select-nav-menu-container{text-align:left;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat td.menu-location-menus{padding-bottom:5px}.menu-location-menus select{float:right}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:right;width:160px;margin-left:5px}.locations-row-links{float:right;margin:6px 6px 0 0}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-left:3px;border-left:1px solid #ccc}#wpbody .open-label{display:block;float:right}#wpbody .open-label span{padding-left:10px}.js .input-with-default-title{color:#aaa;font-style:italic}#menu-management .inside{padding:0 10px}.accordion-container .howto input,.postbox .howto input{width:180px;float:left}.accordion-container .outer-border{margin:0}.customlinkdiv .howto input{width:180px}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:left}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}.nav-menus-php .add-new-menu-action{float:right;margin:6px 6px 0 0;line-height:15px}.nav-menus-php .meta-sep,.nav-menus-php .submitcancel,.nav-menus-php .submitdelete{display:block;float:right;margin:6px 0;line-height:15px}.meta-sep{padding:0 2px}#cancel-save{text-decoration:underline;font-size:12px;margin-right:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:left}.list-controls{float:right;margin-top:5px}.add-to-menu{float:left}.postbox .spinner{display:none;vertical-align:middle}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link .howto{font-size:12px}#add-custom-link label span{display:block;float:right;margin-top:5px;padding-left:5px}.menu-item-textbox{width:180px}.nav-menus-php .howto span{margin-top:6px;display:block;float:right}.quick-search{width:190px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0;margin-bottom:5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-left:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #dfdfdf;position:relative;padding:10px 15px;height:auto;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-left:13em}li.menu-item.ui-sortable-helper dl{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport dl{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item-depth-0{margin-right:0}.menu-item-depth-1{margin-right:30px}.menu-item-depth-2{margin-right:60px}.menu-item-depth-3{margin-right:90px}.menu-item-depth-4{margin-right:120px}.menu-item-depth-5{margin-right:150px}.menu-item-depth-6{margin-right:180px}.menu-item-depth-7{margin-right:210px}.menu-item-depth-8{margin-right:240px}.menu-item-depth-9{margin-right:270px}.menu-item-depth-10{margin-right:300px}.menu-item-depth-11{margin-right:330px}.menu-item-depth-0 .menu-item-transport{margin-right:0}.menu-item-depth-1 .menu-item-transport{margin-right:-30px}.menu-item-depth-2 .menu-item-transport{margin-right:-60px}.menu-item-depth-3 .menu-item-transport{margin-right:-90px}.menu-item-depth-4 .menu-item-transport{margin-right:-120px}.menu-item-depth-5 .menu-item-transport{margin-right:-150px}.menu-item-depth-6 .menu-item-transport{margin-right:-180px}.menu-item-depth-7 .menu-item-transport{margin-right:-210px}.menu-item-depth-8 .menu-item-transport{margin-right:-240px}.menu-item-depth-9 .menu-item-transport{margin-right:-270px}.menu-item-depth-10 .menu-item-transport{margin-right:-300px}.menu-item-depth-11 .menu-item-transport{margin-right:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{color:#777;font-size:12px;padding:12px 10px;line-height:18px;display:block}.item-controls{font-size:12px;position:absolute;left:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls a:hover{cursor:pointer}.item-controls .item-order{padding-left:10px}.nav-menus-php .item-edit{position:absolute;left:-20px;top:0;display:block;width:30px;height:40px;margin-left:0!important;text-indent:100%;outline:0;overflow:hidden;white-space:nowrap}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 10px 10px 0;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move a{display:none;margin:0 2px}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em auto;text-align:center}.link-to-original{display:block;margin:0 0 10px;padding:3px 5px 5px;border:1px solid #dfdfdf;color:#777;font-size:12px;font-style:italic}.link-to-original a{padding-right:4px;font-style:normal}.hidden-field{display:none}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-left:10px;float:right}.description-thin{width:190px;height:40px}.description-wide{width:390px}.menu-item-actions{padding-top:15px}#cancel-save{cursor:pointer}.nav-menus-php .major-publishing-actions{clear:both;padding:3px 0 6px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:left;float:left;line-height:23px;margin:4px 0 1px}.nav-menus-php .blank-slate .menu-settings{display:none}.nav-menus-php .delete-action{float:right;margin-top:2px}.nav-menus-php .submitbox .submitcancel{border-bottom:1px solid #0074a2;padding:1px 2px;color:#0074a2;text-decoration:none}.nav-menus-php .submitbox .submitcancel:hover{background:#0074a2;color:#fff}.nav-menus-php .major-publishing-actions .form-invalid{padding-right:4px;margin-right:-4px}#menu-item-name-wrap:after,#menu-item-url-wrap:after,#menu-name-label:after,#menu-settings-column .inside:after,#nav-menus-frame:after,.nav-menus-php #post-body-content:after,.nav-menus-php .button-controls:after,.nav-menus-php .major-publishing-actions:after,.nav-menus-php .menu-item-settings:after{clear:both;content:".";display:block;height:0;visibility:hidden}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-right:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-right:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .item-controls .item-type{margin-top:2px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}.menu-name-label #menu-name{margin-top:4px}.nav-menus-php .major-publishing-actions .publishing-action{margin-top:6px}.nav-menus-php .delete-action{font-size:14px;line-height:50px;margin-top:12px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide{width:100%;height:auto}.menu-item-settings input{width:100%}.menu-settings dl{padding-right:0}.menu-settings dd{float:none;width:100%;margin-bottom:15px}.menu-settings dt{float:none;width:auto;margin-right:0;margin-bottom:15px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}}.widget{margin:0 auto 10px;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.widget-top{font-size:13px;font-weight:600;background:#f7f7f7}.widget-top a.widget-action,.widget-top a.widget-action:hover{text-decoration:none}.widget-title h4{margin:0;padding:15px;line-height:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.widgets-holder-wrap .widget-inside{border-top:0;padding:1px 15px 15px;line-height:16px}#available-widgets .widget-description,#widgets-right a.widget-control-edit,.in-widget-title{color:#666}.deleting .widget-title,.deleting .widget-top a.widget-action:after{color:#aaa}.widget.ui-draggable-dragging{min-width:100%}.widget.ui-sortable-helper{opacity:.8}.widget-placeholder{border:1px dashed #bbb;margin:0 auto 10px;height:45px;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#widgets-right .widget-placeholder{margin-top:0}#widgets-right .closed .widget-placeholder{height:0;border:0;margin-top:-10px}.sidebar-name{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sidebar-name-arrow{position:absolute;top:0;left:0;bottom:0}.js .sidebar-name{cursor:pointer}.sidebar-name h3{margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap}.widgets-holder-wrap .description{padding:0 0 15px;margin:0;font-style:normal;color:#777}#widgets-right .widgets-holder-wrap .description{padding-right:7px;padding-left:7px}div.widget-liquid-left{margin:0;width:38%;float:right}div.widget-liquid-right{float:left;width:58%}div#widgets-left{padding-top:12px}div#widgets-left .closed .sidebar-name,div#widgets-left .inactive-sidebar.closed .sidebar-name{margin-bottom:10px}div#widgets-left .sidebar-name h3{padding:10px 0;margin:0 0 0 10px}div#widgets-left .sidebar-name .sidebar-name-arrow:before{left:0;top:4px;padding:4px 4px 4px 6px}#widgets-left #available-widgets,div#widgets-left .widget-holder{background:0 0;border:0}#widgets-left .widgets-holder-wrap{border:0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-action{display:none}#available-widgets .widget{margin:0}#available-widgets .widget:nth-child(odd){clear:both}#available-widgets .widget .widget-description{display:block;padding:10px 15px;font-size:12px}#available-widgets #widget-list{position:relative}#widgets-left .inactive-sidebar{clear:both;width:100%;background:0 0;padding:0;margin:0 0 20px;border:0;-webkit-box-shadow:none;box-shadow:none}#widgets-left .inactive-sidebar.first{margin-top:40px}div#widgets-left .inactive-sidebar .widget.expanded{right:auto}.widget-title-action{float:left;position:relative}div#widgets-left .inactive-sidebar .widgets-sortables{min-height:42px;padding:0;background:0 0;margin:0;position:relative}div#widgets-right:after{content:".";display:block;height:0;clear:both;visibility:hidden}div#widgets-right .sidebars-column-1,div#widgets-right .sidebars-column-2{max-width:450px}div#widgets-right .widgets-holder-wrap{margin:10px 0 0}div#widgets-right .sidebar-description{min-height:20px;margin-top:-5px}div#widgets-right .sidebar-name h3{padding:15px 7px}div#widgets-right .sidebar-name .sidebar-name-arrow:before{left:0;top:4px}div#widgets-right .widget-top{padding:0}div#widgets-right .widgets-sortables{padding:0 8px;margin-bottom:9px;position:relative;min-height:123px}div#widgets-right .closed .widgets-sortables{min-height:0;margin-bottom:0}.sidebar-name .spinner{margin:-5px 5px;float:none}#widgets-right .widgets-holder-wrap.widget-hover{border-color:#777;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}.widgets_access #widgets-left .widget .widget-top{cursor:auto}.widgets_access #wpwrap .widget-control-edit,.widgets_access #wpwrap .widgets-holder-wrap.closed .sidebar-description,.widgets_access #wpwrap .widgets-holder-wrap.closed .widget{display:block}.widgets_access #widgets-left .widget .widget-top:hover,.widgets_access #widgets-right .widget .widget-top:hover{border-color:#ddd}#available-widgets .widget-control-edit .edit,#widgets-left .inactive-sidebar .widget-control-edit .add,#widgets-right .widget-control-edit .add{display:none}.widget-control-edit{display:block;color:#666;background:#EEE;padding:0 15px;line-height:43px;border-right:1px solid #DDD}#widgets-left .widget-control-edit:hover,#widgets-right .widget-control-edit:hover{color:#fff;background:#444;border-right:0;outline:1px solid #444}.widgets-holder-wrap .sidebar-description,.widgets-holder-wrap .sidebar-name{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.editwidget{margin:0 auto}.editwidget .widget-inside{display:block;padding:0 15px}.editwidget .widget-control-actions{margin-top:20px}.js .closed br.clear,.js .widgets-holder-wrap.closed .sidebar-description,.js .widgets-holder-wrap.closed .widget,.widget-description,.widget-inside{display:none}.widget-inside{background:#fff}#removing-widget{display:none;font-weight:400;padding-right:15px;font-size:12px;line-height:1;color:#000}.js #removing-widget{color:#2ea2cc}#access-off,.no-js .widget-holder .description,.widget-control-noform,.widgets_access #access-on,.widgets_access .sidebar-name-arrow,.widgets_access .widget-action,.widgets_access .widget-holder .description{display:none}.widgets_access #widget-list,.widgets_access .widget-holder{padding-top:10px}.widgets_access #access-off{display:inline}.widgets_access .sidebar-name,.widgets_access .widget .widget-top{cursor:default}.widget-liquid-left #widgets-left.chooser #available-widgets .widget,.widget-liquid-left #widgets-left.chooser .inactive-sidebar{-webkit-transition:opacity .1s linear;transition:opacity .1s linear;opacity:.2;pointer-events:none}.widget-liquid-left #widgets-left.chooser #available-widgets .widget-in-question{opacity:1;pointer-events:auto}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.widgets-chooser ul.widgets-chooser-sidebars{margin:0;list-style-type:none;max-height:300px;overflow:auto}.widgets-chooser{display:none}.widgets-chooser ul{border:1px solid #ccc}.widgets-chooser li{padding:10px 35px 10px 15px;border-bottom:1px solid #ccc;background:#fff;margin:0;cursor:pointer;outline:0;position:relative;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.widgets-chooser li:focus,.widgets-chooser li:hover{background:rgba(255,255,255,.7)}.widgets-chooser li:focus:before{content:'\f147';display:block;-webkit-font-smoothing:antialiased;font:400 26px/1 dashicons;color:#999;position:absolute;top:7px;right:5px}.widgets-chooser li:last-child{border:0}.widgets-chooser li.widgets-chooser-selected{background:#2ea2cc;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{content:'\f147';display:block;-webkit-font-smoothing:antialiased;font:400 26px/1 dashicons;color:#fff;position:absolute;top:7px;right:5px}.widgets-chooser .widgets-chooser-actions{padding:10px 0 12px;text-align:center}.widgets-chooser button{margin-left:5px}#available-widgets .widget .widget-top{cursor:pointer}@media screen and (max-width:480px){div.widget-liquid-left{width:100%;float:none;border-left:0;padding-left:0}#widgets-left #available-widgets .widget-top,#widgets-left .inactive-sidebar .widgets-sortables,#widgets-left .sidebar-name{margin-left:0}div.widget-liquid-right{width:100%;float:none}div.widget{margin:0 auto 10px!important;max-width:480px}}@media screen and (max-width:320px){div.widget{max-width:320px}}@media only screen and (min-width:1250px){#widgets-left #available-widgets .widget{width:49%;float:right}.widget.ui-draggable-dragging{min-width:49%}#widgets-left #available-widgets .widget:nth-child(even){float:left}#widgets-right .sidebars-column-1,#widgets-right .sidebars-column-2{float:right;width:49%}#widgets-right .sidebars-column-1{margin-left:2%}#widgets-right.single-sidebar .sidebars-column-1,#widgets-right.single-sidebar .sidebars-column-2{float:none;width:100%;margin:0}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:700}.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de .inline-edit-row fieldset label span.title{width:7em}.locale-de-de .inline-edit-row fieldset label span.input-text-wrap{margin-right:7em}.locale-de-de #customize-header-actions .button{padding:0 5px 1px}.locale-de-de #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru .inline-edit-row fieldset label span.title{width:8em}.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-left:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}
\ No newline at end of file
+#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-right:20px}#wpcontent,#wpfooter{margin-right:160px}.folded #wpcontent,.folded #wpfooter{margin-right:36px}#wpbody-content{padding-bottom:65px;float:right;width:100%;overflow:visible!important}.inner-sidebar{float:left;clear:left;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-left:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:right;clear:right;width:100%;margin-left:-2000px}.has-right-sidebar #post-body-content{margin-left:300px;float:none;width:auto}#col-container,#col-left,#col-right{overflow:hidden;padding:0;margin:0}#col-left{width:35%}#col-right{float:left;clear:left;width:65%}.col-wrap{padding:0 7px}.alignleft{float:right}.alignright{float:left}.textleft{text-align:right}.textright{text-align:left}.clear{clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{right:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}html{background:#f1f1f1}body{color:#444;font-family:"Open Sans",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0074a2;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#2ea2cc}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2{color:#222;font-size:1.5em;margin:.83em 0;font-weight:400}h3{color:#222;font-size:1.3em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-right:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-right:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.ltr{direction:ltr}.code,code{font-family:Consolas,Monaco,monospace;direction:ltr}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;float:right;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#999;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat th{text-align:right;line-height:1.3em;font-size:14px}.widefat th input{margin:0 8px 0 0;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.widefat th input[type=checkbox]{margin-top:-1px}.widefat.media .check-column{padding-top:8px}.widefat tbody th.check-column,.widefat tfoot th.check-column,.widefat thead th.check-column{padding:11px 3px 0 0}.widefat thead th.check-column{padding-top:10px}.update-php div.error,.update-php div.updated{margin-right:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 2px 0 20px}div.error,div.updated{margin:5px 15px 2px}div.error p,div.updated p{margin:.5em 0;padding:2px}.media-upload-form div.error,.wrap div.error,.wrap div.updated{margin:5px 0 15px}div.updated{border-right:4px solid #7ad03a;padding:1px 12px;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}div.error{border-right:4px solid #dd3d36;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:1px 12px}.attention{color:#2ea2cc}.subtitle,.wrap h2{font-weight:400;margin:0}.wrap h2{font-size:23px;font-weight:400;padding:9px 0 4px 15px;line-height:29px}.subtitle{color:#777;font-size:14px;padding-right:25px}.wrap .add-new-h2,.wrap .add-new-h2:active{margin-right:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;-webkit-border-radius:2px;border-radius:2px;background:#e0e0e0;text-shadow:none;font-weight:600;font-size:13px}.wrap .add-new-h2:hover{background:#2ea2cc;color:#fff}.wrap h2.long-header{padding-left:0}.wp-dialog{background-color:#fff}.sorthelper{background-color:#ccf3fa}.ac_match,.subsubsub a.current{color:#000}.alt,.alternate{background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-left-color:#99d}.media-upload-form label.form-help,td.help{color:#9a9a9a}.highlight{background-color:#e4f2fd;color:#000}.wp-ui-primary{color:#fff;background-color:#333}.wp-ui-text-primary{color:#333}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#999}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot th,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#222}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,#welcome-panel.welcome-panel .welcome-panel-close:before,.tagchecklist span a:before{background:0 0;color:#bbb;content:'\f153';display:block!important;font:400 16px/1 dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased!important}#welcome-panel.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before,.tagchecklist span a:before{margin:2px 0}#bulk-titles div a:hover:before,#welcome-panel.welcome-panel .welcome-panel-close:hover:before,.tagchecklist span a:hover:before{color:#c00}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap;word-wrap:break-word}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,.widget-control-remove:hover,abbr.required{color:red;text-decoration:none;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{line-height:28px;vertical-align:middle;text-align:right;float:right}#publishing-action{text-align:left;float:left;line-height:23px}#publishing-action .spinner{float:right}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:left}#save-post{float:right}.preview{float:left}#sticky-span{margin-right:18px}.side-info{margin:0;padding:4px;font-size:11px}.side-info h5{padding-bottom:7px;font-size:14px;margin:12px 2px 5px;border-bottom:1px solid #dadada}.side-info ul{margin:0;padding-right:18px;list-style:square;color:#666}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:left}.wp-filter{display:inline-block;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:12px 0 25px;padding:0 20px;width:100%;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;-webkit-border-radius:30px;border-radius:30px;background:#777;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-right:5px;margin-left:20px}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{display:inline-block;margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{-webkit-box-shadow:none;box-shadow:none;border-bottom:4px solid #666;color:#222}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#2ea2cc}.wp-filter .search-form{float:left;margin-top:9px}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{height:33px;vertical-align:top}.wp-filter .drawer-toggle{display:inline-block;margin:0 10px;padding:4px 6px;color:#666;cursor:pointer}.wp-filter .drawer-toggle:before{display:inline-block;vertical-align:top;content:"\f111";margin:0 0 0 5px;width:16px;height:16px;color:#777;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;font-family:dashicons;font-size:16px;line-height:1;text-align:center;text-decoration:inherit;font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased}.wp-filter .drawer-toggle:hover,.wp-filter .drawer-toggle:hover:before{color:#2ea2cc}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer{display:none;margin:0 -20px;padding:20px;border-top:1px solid #eee;background:#fafafa}.show-filters .filter-drawer{display:block;overflow:hidden}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .drawer-toggle{-webkit-border-radius:2px;border-radius:2px;border:none;background:#777;color:#fff}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:right;margin:0 0 0 1%;padding:10px;width:19%;background:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group.wide{width:38%}.filter-group h4{position:relative;margin:0}.filter-drawer ol{margin:20px 0 0;list-style-type:none;font-size:12px}.filter-drawer li{display:inline-block;vertical-align:top;margin:5px 0;padding-left:25px;width:160px;list-style-type:none}.filter-drawer .buttons{margin-bottom:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin:0 10px 20px 0}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-right:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.wp-filter .search-form{float:none;margin:20px 0}.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:782px){.filter-group,.filter-group li{width:100%}}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:right;margin:25px 2px 0 20px;background-color:#fff;border-right:4px solid #ffba00;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.update-message{color:#000}.update-php .spinner{float:none;margin:-4px 0}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-right:2em}#adminmenu a,#catlist a,#sidemenu a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-right:0!important}#screen-meta .screen-reader-text{visibility:hidden}#screen-meta-links{margin:0 0 0 20px}#screen-meta-links a{padding:3px 16px 3px 6px}#screen-meta-links a:focus{outline:0}#screen-meta{display:none;margin:0 0 -1px 20px;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.025);box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:left;height:28px;margin:0 6px 0 0;border:1px solid #ddd;border-top:none;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links a{color:#777}#screen-meta-links a:active,#screen-meta-links a:focus,#screen-meta-links a:hover{color:#333}#screen-meta-links a.show-settings{display:block;font-size:13px;height:22px;line-height:22px;text-decoration:none;z-index:1}#screen-meta-links a:after{left:0;content:'\f140';font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 5px;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#bbb}#screen-meta-links a.screen-meta-active:after{content:'\f142'}#screen-meta-links a.show-settings:hover{text-decoration:none}.toggle-arrow{background-repeat:no-repeat;background-position:top right;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom right}#contextual-help-wrap h5,#screen-options-wrap h5{margin:8px 0;font-size:13px}.metabox-prefs label{display:inline-block;padding-left:15px;line-height:30px}.metabox-prefs label input[type=checkbox]{margin-top:-4px;margin-left:6px}.metabox-prefs label input{margin:0 2px 0 5px}.metabox-prefs .columns-prefs label input{margin:0 2px}.metabox-prefs label a{display:none}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;right:150px;left:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;border-left-width:0;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px}.contextual-help-tabs{float:right;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 2px 0 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 12px 5px 5px;line-height:18px;text-decoration:none;border:1px solid transparent;border-left:none;border-right:none}.contextual-help-tabs a:hover{color:#333}.contextual-help-tabs .active{padding:0;margin:0 0 0 -1px;border-right:2px solid #2ea2cc;background:#f6fbfd;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02);box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#333}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 0 12px 22px;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-right:18px}.contextual-help-sidebar{width:150px;float:left;padding:0 12px 0 8px;overflow:auto}html.wp-toolbar{padding-top:32px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.narrow{width:70%;margin-bottom:40px}.narrow p{line-height:150%}.widefat td,.widefat th{overflow:hidden;color:#555}.widefat th{font-weight:400}.widefat tfoot tr th,.widefat thead tr th{color:#333}.widefat td p{margin:2px 0 .8em}.widefat ol,.widefat p,.widefat ul{color:#333}.widefat .column-comment p{margin:.6em 0}.postbox-container{float:right}.postbox-container .meta-box-sortables{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #bbb;height:250px}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:right}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px;font-weight:400}.postbox .handlediv{float:left;width:27px;height:30px}.js .postbox .handlediv{cursor:pointer}.sortable-placeholder{border:1px dashed #bbb;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .hndle,.stuffbox .hndle{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{-webkit-box-shadow:none;box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 5px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.plugins .name{font-weight:600}#wpfooter{position:absolute;bottom:0;right:0;left:0;padding:10px 20px;color:#777}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}#wpfooter a{text-decoration:none}#wpfooter a:hover{text-decoration:underline}.nav-tab{border:1px solid #ccc;border-bottom:none;background:#e4e4e4;color:#555;font-size:12px;line-height:16px;display:inline-block;padding:4px 14px 6px;text-decoration:none;margin:-4px 0 -1px 4px}.nav-tab:hover{background-color:#fff;color:#464646}.nav-tab-active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}h2.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom:1px solid #ccc;padding-bottom:0;padding-right:10px}h2 .nav-tab{padding:6px 10px;font-weight:700;font-size:15px;line-height:24px}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:left;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}#template div{margin-left:190px}.metabox-holder h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#templateside ul li a{text-decoration:none}#sidemenu{margin:-30px 315px 0 15px;list-style:none;position:relative;float:left;padding-right:10px;font-size:12px}#sidemenu a{padding:0 7px;display:block;float:right;line-height:28px;border-top:1px solid #f9f9f9;border-bottom:1px solid #dfdfdf;background-color:#f9f9f9;-webkit-transition:none;transition:none}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:400;padding-right:6px;padding-left:6px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;border:1px solid #dfdfdf;border-bottom-color:#f1f1f1;background-color:#f1f1f1;color:#000}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:right}.error-message{color:red;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}td.media-icon{text-align:center;width:80px;padding-top:8px;padding-bottom:8px}td.media-icon img{max-width:80px;max-height:60px}td.image-icon img{border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px;display:block}.importers td{padding-left:14px}.importers{font-size:16px;width:auto}#post-body #post-body-content #namediv h3{margin-top:0}#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) repeat-x bottom right}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) repeat-x top right;height:17px;float:right}.star-rating{white-space:nowrap}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center;color:#0074a2}.star-rating .star-full:before{content:'\f155'}.star-rating .star-half:before{content:'\f459'}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:'\f154'}div.action-links{font-weight:400}#plugin-information{background:#fff;position:fixed;top:0;left:0;bottom:0;right:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;height:100%}#plugin-information-title{padding:0 20px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;top:0;left:0;right:0;height:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner{margin-left:0;height:250px;bottom:250px;-webkit-background-size:100% auto;background-size:100% auto}#plugin-information-title h2{font-size:1em;font-weight:700;padding:0;margin:0;max-width:680px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;padding:0 15px;margin:174px 10px 0 0;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);-webkit-box-shadow:0 0 30px rgba(255,255,255,.1);box-shadow:0 0 30px rgba(255,255,255,.1);-webkit-border-radius:8px;border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{display:block;float:left;top:0;height:250px;width:830px;margin:0 -20px;background:0 0;-webkit-box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;left:0;right:0;height:36px;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;float:right;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;-webkit-transition:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#333}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;left:0;right:0;min-height:100%;min-height:-webkit-calc(100% - 152px);min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:-webkit-calc(100% - 346px);min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;left:250px;bottom:0;right:0;margin-left:250px;padding:10px 26px 99999px;margin-bottom:-99930px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{display:block;float:left;position:relative;top:0;left:0;padding:16px 16px 99999px;margin-bottom:-99930px;width:217px;border-right:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#464646}#plugin-information .fyi h3{font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-left:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:right;margin-left:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#ececec;float:right}#plugin-information .counter-bar{height:17px;background-color:#fddb5a;float:right}#plugin-information .counter-count{margin-right:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-left:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-left:4px}#plugin-information-footer{padding:15px 16px;position:absolute;left:0;bottom:0;right:0;height:28px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section{direction:ltr}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e6e6e6}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px;bottom:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px;bottom:100px;width:800%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc url(../images/spinner.gif) no-repeat center}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc url(../images/spinner-2x.gif) no-repeat center;-webkit-background-size:20px 20px;background-size:20px 20px}}body.import-php #TB_title,body.index-php #TB_title,body.plugin-install-php #TB_title,body.plugins-php #TB_title,body.update-core-php #TB_title{float:right;height:1px}body.import-php #TB_ajaxWindowTitle,body.index-php #TB_ajaxWindowTitle,body.plugin-install-php #TB_ajaxWindowTitle,body.plugins-php #TB_ajaxWindowTitle,body.update-core-php #TB_ajaxWindowTitle{display:none}body.import-php .tb-close-icon,body.index-php .tb-close-icon,body.plugin-install-php .tb-close-icon,body.plugins-php .tb-close-icon,body.update-core-php .tb-close-icon{right:auto;left:-30px;color:#eee;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}body.import-php #TB_closeWindowButton:focus,body.import-php #TB_closeWindowButton:focus .tb-close-icon,body.import-php .tb-close-icon:focus,body.import-php .tb-close-icon:hover,body.index-php #TB_closeWindowButton:focus,body.index-php #TB_closeWindowButton:focus .tb-close-icon,body.index-php .tb-close-icon:focus,body.index-php .tb-close-icon:hover,body.plugin-install-php #TB_closeWindowButton:focus,body.plugin-install-php #TB_closeWindowButton:focus .tb-close-icon,body.plugin-install-php .tb-close-icon:focus,body.plugin-install-php .tb-close-icon:hover,body.plugins-php #TB_closeWindowButton:focus,body.plugins-php #TB_closeWindowButton:focus .tb-close-icon,body.plugins-php .tb-close-icon:focus,body.plugins-php .tb-close-icon:hover,body.update-core-php #TB_closeWindowButton:focus,body.update-core-php #TB_closeWindowButton:focus .tb-close-icon,body.update-core-php .tb-close-icon:focus,body.update-core-php .tb-close-icon:hover{color:#2ea2cc;outline:0;-webkit-box-shadow:none;box-shadow:none}body.import-php .tb-close-icon:before,body.index-php .tb-close-icon:before,body.plugin-install-php .tb-close-icon:before,body.plugins-php .tb-close-icon:before,body.update-core-php .tb-close-icon:before{content:"\f335";font-size:32px}@media screen and (max-width:830px){body.import-php .tb-close-icon,body.index-php .tb-close-icon,body.plugin-install-php .tb-close-icon,body.plugins-php .tb-close-icon,body.update-core-php .tb-close-icon{left:0;top:-30px}}img{border:none}#wphead{border-bottom:1px solid #dfdfdf}#wphead h1 a{color:#464646}.js .meta-box-sortables .postbox:hover .handlediv{margin-left:0!important}.js .meta-box-sortables .postbox .handlediv:before,.js .sidebar-name .sidebar-name-arrow:before{left:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js #widgets-left .sidebar-name .sidebar-name-arrow{display:none}.js #widgets-left .sidebar-name:hover .sidebar-name-arrow,.js #widgets-left .widgets-holder-wrap.closed .sidebar-name .sidebar-name-arrow{display:block}.js .meta-box-sortables .postbox .handlediv:before,.js .sidebar-name .sidebar-name-arrow:before{content:'\f142'}.js .meta-box-sortables .postbox.closed .handlediv:before,.js .widgets-holder-wrap.closed .sidebar-name-arrow:before{content:'\f140'}.error a{text-decoration:underline}.updated a{text-decoration:none;padding-bottom:2px}#photo-add-url-div input[type=text]{width:300px}.alignleft h3{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;width:97%;background:#f9f9f9;outline:0}#docs-list,#template textarea{direction:ltr}#template p{width:97%}#templateside{float:left;width:190px;word-wrap:break-word}#postcustomstuff p.submit,#templateside h3{margin:0}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em 0;padding:0}#templateside li{margin:4px 0}#templateside a,.theme-editor-php .highlight{display:block;padding:3px 12px 3px 3px;text-decoration:none}.theme-editor-php .highlight{margin:-3px -12px -3px 3px}#templateside .highlight{border:none;font-weight:700}.nonessential{color:#666;font-size:11px;font-style:italic;padding-right:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top a.widget-action:after{left:0;content:'\f140';border:none;background:0 0;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.accordion-section-title:after,.handlediv,.item-edit,.sidebar-name-arrow,.widget-action{color:#aaa}.accordion-section-title:hover:after,.handlediv:hover,.item-edit:hover,.sidebar-name:hover .sidebar-name-arrow,.widget-action:hover{color:#777}.widget-top a.widget-action:after{padding:12px 12px 0}.nav-menus-php .item-edit:before{line-height:2.1}.accordion-section-title:after,.control-section .accordion-section-title:after{float:left;left:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top a.widget-action:after{content:'\f142'}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.menu.ui-sortable,.meta-box-sortables.ui-sortable,.widgets-holder-wrap .ui-draggable,.widgets-holder-wrap .ui-sortable{-ms-touch-action:auto;touch-action:auto}.menu.ui-sortable .menu-item-handle,.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.accordion-section{border-bottom:1px solid #dfdfdf;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#dfdfdf}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-right:1px solid #dfdfdf;border-left:1px solid #dfdfdf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;left:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#aaa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title{border-right:none;border-left:none;padding:10px 14px 11px 10px;line-height:21px;background:#fff}.control-section .accordion-section-title:after{top:11px}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#222;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #dfdfdf}@media only screen and (min-width:769px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:860px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (min-width:980px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:768px){#col-left,#col-right{width:100%}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) repeat-x bottom right;-webkit-background-size:21px 37px;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.sidebar-name:hover .sidebar-name-arrow,.tagchecklist span a,.tagchecklist span a:hover,.widget-top a.widget-action,.widget-top a.widget-action:hover{background:none!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:transparent!important}#wpcontent{position:relative;margin-right:0;padding-right:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-left:12px;margin-right:0}.col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}.wrap .add-new-h2,.wrap .add-new-h2:active{padding:10px 15px;font-size:14px}.wp-color-result{height:auto;padding-right:45px}.wp-color-result:after{font-size:14px;height:auto;padding:6px 14px}.media-upload-form div.error,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{left:-190px}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder h3{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside{float:none;width:auto}#templateside li{margin:0}#templateside li a{display:block;padding:5px}#templateside .highlight{padding:5px;margin-right:-5px;margin-top:-5px}#template div{float:none;margin:0;width:auto}#template textarea{width:100%}.fileedit-sub .alignright{margin-top:15px}#comments-form .checkforspam,#wpfooter{display:none}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}div#post-body.metabox-holder.columns-1{overflow-x:hidden}}input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=radio],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;outline:0;-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=email],input[type=url]{direction:ltr}input[type=checkbox],input[type=radio]{border:1px solid #bbb;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#888}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#2ea2cc}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-left:4px;line-height:10px}input[type=checkbox]:checked:before,input[type=radio]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:'\f147';margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:'\2022';text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=checkbox],input[type=radio]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{overflow:auto;padding:2px 6px;line-height:1.4}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none}input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px;vertical-align:middle}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:right;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}#adduser .form-field input,input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}#upload-form label{color:#777}#your-profile label+a,fieldset label,label{vertical-align:middle}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:'\f173';display:inline-block;font:400 20px/1 dashicons;speak:none;right:-1px;padding:0 0 0 5px;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass-strength-result{background-color:#eee;border:1px solid #ddd;float:right;margin:13px 1px 5px 5px;padding:3px 5px;text-align:center;width:200px;display:none}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c}.indicator-hint{padding-top:8px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}input[type=text].ui-autocomplete-loading{background:url(../images/loading.gif) no-repeat left center;visibility:visible}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete-input.open{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:1px solid #aaa;background-color:#efefef}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:right}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px;color:#444}.ui-autocomplete li a.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th,.form-wrap label{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#222;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.color-option{cursor:pointer}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.pressthis{margin:20px 0}.pressthis a,.pressthis a:active,.pressthis a:focus,.pressthis a:hover{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis a span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis a span:before{color:#777;font:400 20px/1 dashicons;content:'\f157';position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}#local-time,#utc-time{padding-right:25px;font-style:italic}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input.code{padding-bottom:5px;padding-top:10px}.widefat th input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat th input[type=checkbox]{margin-bottom:8px}.widefat th input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 Dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{padding:4px 0 0;line-height:1.4em}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{padding-top:8px;padding-right:0}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#utc-time{margin-top:10px}#local-time,#utc-time{display:block;float:none;padding:0;line-height:2}}@media only screen and (max-width:768px){.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media screen and (max-width:600px){.color-option{width:49%}}#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:160px;background-color:#222}#adminmenuback{position:absolute;top:0;bottom:0;z-index:-1}#adminmenu{clear:right;margin:12px 0 0;padding:0;list-style:none}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:36px}.icon16{height:18px;width:18px;padding:6px;margin:-6px -8px 0 0;float:right}.icon16:before{color:#999;font:400 20px/1 dashicons;speak:none;padding:6px 0;height:34px;width:20px;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.icon16.icon-dashboard:before{content:'\f226'}.icon16.icon-post:before{content:'\f109'}.icon16.icon-media:before{content:'\f104'}.icon16.icon-links:before{content:'\f103'}.icon16.icon-page:before{content:'\f105'}.icon16.icon-comments:before{content:'\f101';margin-top:1px}.icon16.icon-appearance:before{content:'\f100'}.icon16.icon-plugins:before{content:'\f106'}.icon16.icon-users:before{content:'\f110'}.icon16.icon-tools:before{content:'\f107'}.icon16.icon-settings:before{content:'\f108'}.icon16.icon-site:before{content:'\f112'}.icon16.icon-generic:before{content:'\f111'}.icon16.icon-appearance,.icon16.icon-comments,.icon16.icon-dashboard,.icon16.icon-generic,.icon16.icon-links,.icon16.icon-media,.icon16.icon-page,.icon16.icon-plugins,.icon16.icon-post,.icon16.icon-settings,.icon16.icon-site,.icon16.icon-tools,.icon16.icon-users,.menu-icon-appearance div.wp-menu-image,.menu-icon-comments div.wp-menu-image,.menu-icon-dashboard div.wp-menu-image,.menu-icon-generic div.wp-menu-image,.menu-icon-links div.wp-menu-image,.menu-icon-media div.wp-menu-image,.menu-icon-page div.wp-menu-image,.menu-icon-plugins div.wp-menu-image,.menu-icon-post div.wp-menu-image,.menu-icon-settings div.wp-menu-image,.menu-icon-site div.wp-menu-image,.menu-icon-tools div.wp-menu-image,.menu-icon-users div.wp-menu-image{background-image:none!important}#adminmenuwrap{position:relative;float:right}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px;color:#eee}#adminmenu .wp-submenu a{color:#bbb}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover{background:0 0}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a:hover,#adminmenu li.menu-top>a:focus{color:#2ea2cc}#adminmenu li.menu-top{border:none;min-height:34px;position:relative}#adminmenu .wp-submenu{list-style:none;position:absolute;top:-1000em;right:160px;overflow:visible;word-wrap:break-word}#adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{padding:7px 0 8px;z-index:9999;background-color:#333;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}#adminmenu a.menu-top:focus+.wp-submenu,.js #adminmenu .opensub .wp-submenu,.js #adminmenu .sub-open,.no-js li.wp-has-submenu:hover .wp-submenu{top:-1px}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.no-js li.wp-has-current-submenu:hover .wp-submenu{position:relative;z-index:3;top:auto;right:auto;left:auto;bottom:auto;border:0;margin-top:0;-webkit-box-shadow:none;box-shadow:none;background-color:#333}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{position:relative;background-color:#111}.folded #adminmenu li.menu-top:hover,.folded #adminmenu li.opensub>a.menu-top,.folded #adminmenu li>a.menu-top:focus{z-index:10000}#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu .wp-menu-arrow,#adminmenu .wp-menu-arrow div,#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu{background:#0074a2;color:#fff}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{top:0;right:36px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:160px;width:auto}#adminmenu .wp-submenu a{font-size:13px;line-height:1.2;margin:0;padding:6px 0}#adminmenu .opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-not-current-submenu li>a,.folded #adminmenu .wp-has-current-submenu li>a{padding-left:16px;padding-right:14px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu .wp-has-current-submenu ul>li>a,.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:6px 12px}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{font-size:14px;font-weight:400;line-height:18px;padding:0}#adminmenu .wp-submenu-head,.folded #adminmenu .wp-menu-name{display:none}.folded #adminmenu .wp-submenu-head{display:block}#adminmenu .wp-submenu li{padding:0;margin:0;overflow:hidden}#adminmenu .wp-menu-image img{padding:9px 0 0;opacity:.6;filter:alpha(opacity=60)}#adminmenu div.wp-menu-name{padding:8px 0}#adminmenu div.wp-menu-image{float:right;width:36px;height:34px;margin:0;text-align:center}#adminmenu div.wp-menu-image.svg{background-repeat:no-repeat;background-position:center;-webkit-background-size:20px auto;background-size:20px auto}div.wp-menu-image:before{color:#999;padding:7px 0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu .current div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before{color:#fff}#adminmenu li:hover div.wp-menu-image:before{color:#2ea2cc}.folded #adminmenu div.wp-menu-image{width:35px;height:30px;position:absolute;z-index:25}.folded #adminmenu a.menu-top{height:34px}.no-font-face #adminmenu .wp-menu-image{display:none}.no-font-face #adminmenu div.wp-menu-name{padding:8px 12px}.no-font-face.auto-fold #adminmenu .wp-menu-name{margin-right:0}.sticky-menu #adminmenuwrap{position:fixed;z-index:9999}.wp-menu-arrow{display:none!important}ul#adminmenu a.wp-has-current-submenu{position:relative}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{left:0;border:8px solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-left-color:#f1f1f1;top:50%;margin-top:-8px}.folded ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.folded ul#adminmenu a.wp-has-current-submenu:after,.folded ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{left:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;top:10px;z-index:10000}.folded ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:18px}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#333}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:5px;padding:0;margin:0 0 6px;cursor:inherit}#adminmenu div.separator{height:2px;padding:0}#adminmenu .wp-submenu .wp-submenu-head{color:#fff;font-weight:400;font-size:14px;padding:8px 11px 8px 4px;margin:-7px 0 4px}#adminmenu li.current,.folded #adminmenu li.wp-menu-open{border:0}#adminmenu .awaiting-mod,#adminmenu .update-plugins,#sidemenu li a span.update-plugins{display:inline-block;background-color:#d54e21;color:#fff;font-size:9px;line-height:17px;font-weight:600;margin:1px 2px 0 0;vertical-align:top;-webkit-border-radius:10px;border-radius:10px;z-index:26}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span,#sidemenu li a span.update-plugins span{display:block;padding:0 6px}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod{background-color:#2ea2cc;color:#fff}#adminmenu li span.count-0,#sidemenu li a .count-0{display:none}#collapse-menu{font-size:13px;line-height:34px;margin-top:10px;color:#aaa;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#collapse-menu:hover,#collapse-menu:hover #collapse-button div:after{color:#2ea2cc}.folded #collapse-menu span{display:none}#collapse-button,#collapse-button div{width:15px;height:15px}#collapse-button{float:right;height:15px;margin:10px 11px 10px 8px;width:15px;-webkit-border-radius:10px;border-radius:10px}#wpwrap #collapse-button div{padding:0}#collapse-button div:after{content:'\f148';display:block;line-height:15px;right:-3px;top:-3px;color:#aaa;font:400 20px/1 dashicons!important;speak:none;margin:0 auto;padding:0!important;position:relative;text-align:center;width:20px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folded #collapse-button div:after,.rtl #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.folded #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}li#wp-admin-bar-menu-toggle{display:none}@media only screen and (max-width:960px){.auto-fold #wpcontent,.auto-fold #wpfooter{margin-right:36px}.auto-fold #adminmenu,.auto-fold #adminmenu li.menu-top,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:36px}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{top:0;right:36px}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu,.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em;margin-left:-1px;padding:7px 0 8px;z-index:9999}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{min-width:150px;width:auto}.auto-fold #adminmenu .wp-has-current-submenu li>a{padding-left:16px;padding-right:14px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-right:12px}.auto-fold #adminmenu .wp-menu-name{display:none}.auto-fold #adminmenu .wp-submenu-head{display:block}.auto-fold #adminmenu div.wp-menu-image{height:30px;width:34px;position:absolute;z-index:25}.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.wp-menu-open{border:0}.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:16px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}.auto-fold #adminmenu li.menu-top:hover,.auto-fold #adminmenu li.opensub>a.menu-top,.auto-fold #adminmenu li>a.menu-top:focus{z-index:10000}.auto-fold #collapse-menu span{display:none}.auto-fold #collapse-button div{background:0 0}.auto-fold #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.auto-fold #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}}@media screen and (max-width:782px){.auto-fold #wpcontent{position:relative;margin-right:0;padding-right:10px}.sticky-menu #adminmenuwrap{position:relative;z-index:auto;top:0}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{position:absolute;width:190px;z-index:100}.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{display:none}.auto-fold .wp-responsive-open #adminmenuback,.auto-fold .wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu li.menu-top{width:100%}.auto-fold #adminmenu li a{font-size:16px;padding:5px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding:10px 20px 10px 10px}.auto-fold #adminmenu .wp-menu-name{display:block;margin-right:35px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li.current>a.current:after{border-width:8px;margin-top:-8px}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{display:none}#adminmenu .wp-submenu{position:relative;display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu{position:relative;display:block;top:0;right:-1px;-webkit-box-shadow:none;box-shadow:none}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .selected .wp-submenu:after,.auto-fold #adminmenu .wp-menu-open .wp-submenu:after{display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:block}.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{position:relative;right:-1px;left:0;top:0}#adminmenu .wp-submenu .wp-submenu-head{display:none}#wp-responsive-toggle{position:fixed;top:5px;right:4px;padding-left:10px;z-index:99999;border:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpadminbar #wp-admin-bar-menu-toggle a{display:block;padding:0;overflow:hidden;outline:0;text-decoration:none;border:1px solid transparent;background:0 0;height:44px;margin-right:-1px}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#333}li#wp-admin-bar-menu-toggle{display:block}#wpadminbar #wp-admin-bar-menu-toggle a:hover{border:1px solid transparent}#wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{content:'\f228';display:inline-block;float:right;font:400 40px/45px Dashicons;vertical-align:middle;outline:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:44px;width:50px;padding:0;border:none;text-align:center;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}@media screen and (max-width:600px){#adminmenuback,#adminmenuwrap{display:none}.wp-responsive-open #adminmenuback,.wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu{top:46px}}#wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody-content #dashboard-widgets.columns-2 .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets.columns-2 #postbox-container-2,#wpbody-content #dashboard-widgets.columns-2 #postbox-container-3,#wpbody-content #dashboard-widgets.columns-2 #postbox-container-4{float:left;width:50.5%}#wpbody-content #dashboard-widgets.columns-3 .postbox-container{width:33.5%}#wpbody-content #dashboard-widgets.columns-3 #postbox-container-1{width:33%}#wpbody-content #dashboard-widgets.columns-3 #postbox-container-3,#wpbody-content #dashboard-widgets.columns-3 #postbox-container-4{float:left}#dashboard-widgets .postbox-container,#wpbody-content #dashboard-widgets.columns-4 .postbox-container{width:25%}#dashboard-widgets-wrap .columns-3 #postbox-container-4 .empty-container{border:none!important}.ie8 #wpbody-content #dashboard-widgets .postbox-container{width:49.5%}.ie8 #wpbody-content #dashboard-widgets #postbox-container-2,.ie8 #wpbody-content #dashboard-widgets #postbox-container-3,.ie8 #wpbody-content #dashboard-widgets #postbox-container-4{float:left;width:50.5%}.ie8 #dashboard-widgets #postbox-container-3 .empty-container,.ie8 #dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}#dashboard-widgets-wrap{overflow:hidden;margin:0 -8px}#dashboard-widgets .postbox .inside{margin-bottom:0}#dashboard-widgets .meta-box-sortables{margin:0 8px;min-height:100px}#the-comment-list td.comment p.comment-author{margin-top:0;margin-right:0}#the-comment-list p.comment-author img{float:right;margin-left:8px}#the-comment-list p.comment-author strong a{border:none}#the-comment-list td{vertical-align:top}#the-comment-list td.comment{word-wrap:break-word}#the-comment-list td.comment img{max-width:100%}.welcome-panel{position:relative;overflow:auto;margin:16px 0;padding:23px 10px 0;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:13px;line-height:2.1em}.welcome-panel h3{margin:0;font-size:21px;font-weight:400;line-height:1.2}.welcome-panel h4{margin:1.33em 0 0;font-size:16px}.welcome-panel li{font-size:14px}.welcome-panel p{color:#777}.welcome-panel a{text-decoration:none}.welcome-panel .about-description{font-size:16px;margin:0}.welcome-panel .welcome-panel-close{position:absolute;top:5px;left:10px;padding:20px 3px 0 15px;font-size:13px;text-decoration:none;line-height:1}#welcome-panel.welcome-panel .welcome-panel-close:before{position:absolute;right:-18px;margin-top:-2px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.wp-core-ui .welcome-panel .button.button-hero{margin:15px 0 3px}.welcome-panel-content{margin-right:13px;max-width:1500px}.welcome-panel .welcome-panel-column-container{clear:both;overflow:hidden;position:relative}.welcome-panel .welcome-panel-column{width:32%;min-width:200px;float:right}.ie8 .welcome-panel .welcome-panel-column{min-width:230px}.welcome-panel .welcome-panel-column:first-child{width:36%}.welcome-panel-column p.hide-if-no-customize{margin-top:10px}.welcome-panel-column p{margin-top:7px;color:#464646}.welcome-panel .welcome-icon{display:block;padding:0 0 8px;background:0 0!important}.welcome-panel .welcome-icon:before{color:#888;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 10px;top:-1px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;vertical-align:top}.welcome-panel .welcome-edit-page:before,.welcome-panel .welcome-write-blog:before{content:'\f119';top:-3px}.welcome-panel .welcome-add-page:before{content:'\f132'}.welcome-panel .welcome-view-site:before{content:'\f115';top:-2px}.welcome-panel .welcome-widgets-menus:before{content:'\f116';top:-2px}.welcome-panel .welcome-comments:before{content:'\f117';top:-1px}.welcome-panel .welcome-learn-more:before{content:'\f118';top:-1px}.welcome-panel .welcome-widgets-menus{line-height:16px}.welcome-panel .welcome-panel-column ul{margin:.8em 0 1em 1em}.welcome-panel .welcome-panel-column li{line-height:16px;list-style-type:none}#dashboard_primary .inside{margin:0;padding:0}#dashboard_primary .dashboard-widget-control-form,#dashboard_primary .widget-loading{padding:12px 12px 0}body #dashboard-widgets .postbox form .submit{margin:0}.dashboard-widget-control-form{overflow:hidden}.dashboard-widget-control-form p{margin-top:0}.rssSummary{color:#777;margin-top:4px}#dashboard_primary .rss-widget{border-bottom:1px solid #eee;font-size:13px;padding:8px 12px 10px}#dashboard_primary .rss-widget:last-child{border-bottom:none;padding-bottom:8px}#dashboard_primary .rss-widget a{font-weight:400}#dashboard_primary .rss-widget span,#dashboard_primary .rss-widget span.rss-date{color:#777}#dashboard_primary .rss-widget span.rss-date{margin-right:12px}#dashboard_primary .rss-widget ul li{margin-bottom:8px}#dashboard_right_now ul{margin:0;overflow:hidden}#dashboard_right_now li{width:50%;float:right;margin-bottom:10px}#dashboard_right_now .inside{overflow:hidden;padding:0}#dashboard_right_now .main{overflow:hidden;padding:0 12px 11px}#dashboard_right_now .main p{margin:0}#dashboard_right_now #wp-version-message .button{clear:left;float:left;position:relative;top:-5px}.mu-storage{overflow:hidden}#dashboard-widgets h4.mu-storage{margin-bottom:10px}#dashboard_right_now li a:before,#dashboard_right_now li span:before{color:#888}#dashboard_right_now .sub{color:#777;background:#f5f5f5;border-top:1px solid #eee;padding:10px 12px 6px}#dashboard_right_now .sub h4{color:#555}#dashboard_right_now .sub p{margin:0 0 1em}#dashboard_right_now .warning a:before,#dashboard_right_now .warning span:before{color:#d54e21}#dashboard_right_now li a:before,#dashboard_right_now li span:before{content:'\f159';font:400 20px/1 dashicons;speak:none;display:block;float:right;margin:0 0 0 5px;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;text-decoration:none!important}#dashboard_right_now .page-count a:before,#dashboard_right_now .page-count span:before{content:'\f105'}#dashboard_right_now .post-count a:before,#dashboard_right_now .post-count span:before{content:'\f109'}#dashboard_right_now .comment-count a:before{content:'\f101'}#dashboard_right_now .comment-mod-count a:before{content:'\f125'}#dashboard_right_now .storage-count a:before{content:'\f104'}#dashboard_right_now .storage-count.warning a:before{content:'\f153'}#dashboard_quick_press .inside{margin:0;padding:0}#dashboard_quick_press div.updated{margin-bottom:10px;border:1px solid #eee;border-width:1px 0 1px 1px}#dashboard_quick_press form{overflow:hidden;margin:12px}#dashboard_quick_press .drafts,#dashboard_quick_press .easy-blogging{padding:10px 0 0}input#save-post{float:right}form.initial-form.quickpress-open label.prompt{font-style:normal}form.initial-form.quickpress-open input#title{height:auto}#dashboard_quick_press input,#dashboard_quick_press textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0}#dashboard_quick_press textarea{resize:vertical}#description-wrap{margin-top:12px}#title-wrap #title-prompt-text,.textarea-wrap #content-prompt-text{color:#777}.input-text-wrap,.textarea-wrap{position:relative}.input-text-wrap .prompt,.textarea-wrap .prompt{position:absolute}.textarea-wrap #content-prompt-text{font-size:1.1em;padding:7px 8px}.textarea-wrap textarea#content{margin:0 0 8px;padding:6px 7px}#quick-press textarea#content{min-height:90px;max-height:1300px;resize:none}.js #dashboard_quick_press .drafts{border-top:1px solid #eee}#dashboard_quick_press .drafts abbr{border:none}#dashboard_quick_press .drafts h4{margin:0 12px 8px;font-weight:400}#dashboard_quick_press .drafts .view-all{float:left;margin:0 0 0 12px}#dashboard_primary a.rsswidget{font-weight:400}#dashboard_quick_press .drafts ul{margin:0 12px}#dashboard_quick_press .drafts li{margin-bottom:1em}#dashboard_quick_press .drafts li time{color:#777}#dashboard_quick_press .drafts p{margin:0;word-wrap:break-word}#dashboard_quick_press .draft-title{overflow:hidden}#dashboard_quick_press .draft-title a,#dashboard_quick_press .draft-title time{float:right;margin:0 0 0 5px}#dashboard-widgets #dashboard_activity h4{margin:0 12px 8px 0;font-weight:400}#dashboard-widgets #dashboard_activity h4.comment-meta{margin:0}#dashboard_activity h4.comment-meta{margin-bottom:4px}#dashboard_activity ul{padding:0 12px}#dashboard_activity .comment-meta span.approve:before{content:'\f227';font:20px/.5 dashicons;margin-right:12px;vertical-align:middle;position:relative;top:-1px;margin-left:2px}#dashboard_activity .inside{padding:0;margin:0}#dashboard_activity .no-activity{overflow:hidden;padding:0 12px 12px;text-align:center}#dashboard_activity .no-activity p{color:#999;font-size:16px}#dashboard_activity .no-activity .smiley{margin-top:0}#dashboard_activity .no-activity .smiley:before{content:'\f328';font:400 120px/1 dashicons;speak:none;display:block;margin:0 0 0 5px;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;text-decoration:none!important}#dashboard_activity .subsubsub{float:none;border-top:1px solid #eee;margin-top:0;padding:8px 12px 4px}#future-posts ul,#published-posts ul{clear:both;margin-bottom:0}#future-posts li,#published-posts li{overflow:hidden;margin-bottom:8px}#future-posts ul span,#published-posts ul span{color:#777;float:right;margin-left:8px;min-width:150px}.activity-block{border-bottom:1px solid #eee;overflow:hidden;padding:8px 0 4px}.activity-block:last-child{border-bottom:none}.activity-block .subsubsub li{color:#ddd}#activity-widget #the-comment-list div.undo,#activity-widget #the-comment-list tr.undo{background:0 0;padding:6px 0;margin-right:12px}#activity-widget #the-comment-list .alt,#activity-widget #the-comment-list .alternate{background:0 0}#activity-widget #the-comment-list .comment-item{background:#fafafa;padding:12px;position:relative}#activity-widget #the-comment-list img{position:absolute;top:13px}#activity-widget #the-comment-list .dashboard-comment-wrap{padding-right:63px}#activity-widget #the-comment-list .dashboard-comment-wrap blockquote{margin:1em 0}#activity-widget #the-comment-list .comment-item h4{font-size:13px;color:#999}#activity-widget #the-comment-list .comment-item p.row-actions{margin:4px 0 0}#activity-widget #the-comment-list .comment-item:first-child{border-top:1px solid #eee}#activity-widget #the-comment-list .unapproved{background-color:#fef7f1}#activity-widget #the-comment-list .unapproved:before{content:"";display:block;position:absolute;right:0;top:0;bottom:0;background:#d54e21;width:4px}#activity-widget #the-comment-list .spam-undo-inside .avatar,#activity-widget #the-comment-list .trash-undo-inside .avatar{position:relative;top:0}#dashboard-widgets #dashboard_browser_nag.postbox .inside{margin:10px}.edit-box{display:none}h3:hover .edit-box{display:inline}#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:100%}#dashboard-widgets .postbox form .submit{float:none;margin:.5em 0 0;padding:0;border:none}#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit #publish{min-width:0}#dashboard-widgets a{text-decoration:none}#dashboard-widgets h3 a{text-decoration:underline}#dashboard-widgets h3 .postbox-title-action{position:absolute;left:10px;padding:0;top:5px}.js #dashboard-widgets h3 .postbox-title-action{left:33px}#dashboard-widgets h4{color:#222;font-weight:400;font-size:14px;margin:0 0 .2em;padding:0}#dashboard_plugins h5{font-size:14px}#latest-comments #the-comment-list{position:relative}#activity-widget #the-comment-list .comment,#activity-widget #the-comment-list .pingback{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.06);box-shadow:inset 0 1px 0 rgba(0,0,0,.06)}#activity-widget .comments #the-comment-list .alt{background-color:transparent}#activity-widget #latest-comments #the-comment-list .comment-item{padding:1em 12px}#latest-comments #the-comment-list .pingback{padding-right:12px!important}#latest-comments #the-comment-list .comment-item:first-child{border-top:none}#latest-comments #the-comment-list .comment-item h4{line-height:1.5em;margin-top:0;color:#666}#latest-comments #the-comment-list .comment-item h4 cite{font-style:normal;font-weight:400}#latest-comments #the-comment-list .comment-item blockquote,#latest-comments #the-comment-list .comment-item blockquote p{margin:0;padding:0;display:inline}#latest-comments #the-comment-list .comment-item p.row-actions{margin:3px 0 0;padding:0;font-size:13px}#description-wrap label,#title-wrap label{cursor:text}#title-wrap #title{padding:2px 6px;font-size:1.3em;outline:0}#title-wrap #title-prompt-text{font-size:1.1em;padding:5px 8px}.rss-widget ul{margin:0;padding:0;list-style:none}a.rsswidget{font-size:14px;font-weight:600;line-height:1.7em}.rss-widget ul li{line-height:1.5em;margin-bottom:12px}.rss-widget span.rss-date{color:#999;font-size:13px;margin-right:3px}.rss-widget cite{display:block;text-align:left;margin:0 0 1em;padding:0}.rss-widget cite:before{content:'\2014'}.dashboard-comment-wrap{overflow:hidden;word-wrap:break-word}#dashboard_browser_nag a.update-browser-link{font-size:1.2em;font-weight:600}#dashboard_browser_nag a{text-decoration:underline}#dashboard_browser_nag p.browser-update-nag.has-browser-icon{padding-left:125px}#dashboard_browser_nag .browser-icon{margin-top:-35px}#dashboard_browser_nag.postbox.browser-insecure{background-color:#ac1b1b;border-color:#ac1b1b}#dashboard_browser_nag.postbox{background-color:#e29808;background-image:none;border-color:#edc048;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag.postbox.browser-insecure h3{border-bottom-color:#cd5a5a;color:#fff}#dashboard_browser_nag.postbox h3{border-bottom-color:#f6e2ac;background:0 0;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag a{color:#fff}#dashboard_browser_nag h3.hndle{border:none;font-weight:600;font-size:20px;padding-top:10px}.postbox#dashboard_browser_nag p a.dismiss{font-size:14px}.postbox#dashboard_browser_nag a,.postbox#dashboard_browser_nag p,.postbox#dashboard_browser_nag p.browser-update-nag{font-size:16px}@media only screen and (max-width:799px){#wpbody-content #dashboard-widgets .postbox-container{width:100%}}@media only screen and (min-width:800px) and (max-width:1499px){#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:left;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}#wpbody #wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody #wpbody-content .metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}.index-php .columns-prefs,.index-php .screen-layout{display:block}.columns-prefs .columns-prefs-3,.columns-prefs .columns-prefs-4{display:none}}@media only screen and (min-width:1500px) and (max-width:1800px){#wpbody-content #dashboard-widgets .postbox-container{width:33.5%}#wpbody-content #dashboard-widgets #postbox-container-1{width:33%}#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:left}#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}}@media screen and (max-width:870px){.welcome-panel .welcome-panel-column,.welcome-panel .welcome-panel-column:first-child{display:block;float:none;width:100%}.welcome-panel .welcome-panel-column li{display:inline-block;margin-left:13px}.welcome-panel .welcome-panel-column ul{margin:.4em 0 0}}@media screen and (max-width:782px){#dashboard_recent_comments #the-comment-list .comment-item .avatar{height:30px;width:30px;margin:4px 0 5px 10px}}@media screen and (max-width:600px){.welcome-panel .welcome-panel-close{overflow:hidden;text-indent:100%;white-space:nowrap;width:20px;height:20px;left:0;padding:5px}#welcome-panel.welcome-panel .welcome-panel-close:before{font-size:20px;margin:0}}.post-com-count-wrapper{min-width:22px}.post-com-count{background:no-repeat center -80px;height:1.3em;line-height:1.1em;display:block;text-decoration:none;padding:0 0 6px;cursor:pointer;color:#fff}.post-com-count:after{content:"";display:block;width:0;height:0;margin-right:8px;border-top:5px solid #bbb;border-left:5px solid transparent}.post-com-count span{font-size:11px;font-weight:600;height:1.4em;line-height:1.4em;min-width:.7em;padding:0 6px;display:inline-block;-webkit-border-radius:5px;border-radius:5px;background-color:#bbb;color:#fff}.post-com-count:hover{background-position:center -3px}.post-com-count:hover span{background-color:#2ea2cc}.post-com-count:hover:after{border-top:5px solid #2ea2cc}strong .post-com-count{background-position:center -55px}strong .post-com-count span{background-color:#0074a2}strong .post-com-count:after{border-top:5px solid #0074a2}.column-response .post-com-count{float:right;margin-left:5px;text-align:center}.response-links{float:right}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom:1px solid #ccc}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#submitted-on,.submitted-on{color:#777}#replyrow td{padding:2px}#replysubmit{margin:0;padding:0 5px 3px;text-align:center}#replysubmit .spinner{padding:2px 0 0;vertical-align:top;float:left}#replysubmit .button{margin-left:5px}#replysubmit .error{color:red;line-height:21px;text-align:center}#replyrow h5{margin:.2em 0 0;padding:0 5px;line-height:1.4em;font-size:1em}#edithead .inside{float:right;padding:3px 5px 2px 0;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px;-webkit-box-shadow:none;box-shadow:none}#replyerror{border-color:#ddd;background-color:#f9f9f9}.commentlist .avatar{vertical-align:text-top}#the-comment-list .attachment-80x60{padding:4px 8px}#the-comment-list div.undo,#the-comment-list tr.undo{background-color:#f4f4f4}#the-comment-list .unapproved td,#the-comment-list .unapproved th{background-color:#fef7f1}#the-comment-list .unapproved th.check-column{border-right:4px solid #d54e21}#the-comment-list .unapproved th.check-column input{margin-right:4px}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}#the-comment-list td,#the-comment-list th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}#the-comment-list tr:last-child td,#the-comment-list tr:last-child th{-webkit-box-shadow:none;box-shadow:none}#the-comment-list tr.unapproved+tr.approved td,#the-comment-list tr.unapproved+tr.approved th{border-top:1px solid rgba(0,0,0,.03)}.vim-current,.vim-current td,.vim-current th{background-color:#e4f2fd!important}th .comment-grey-bubble{height:16px;width:16px}th .comment-grey-bubble:before{content:'\f101';font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;right:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-author,.fixed .column-date,.fixed .column-format,.fixed .column-links,.fixed .column-parent,.fixed .column-posts{width:10%}.fixed .column-posts{width:74px}.fixed .column-comment .comment-author{display:none}.fixed .column-categories,.fixed .column-rel,.fixed .column-response,.fixed .column-role,.fixed .column-tags{width:15%}.fixed .column-slug{width:25%}.fixed .column-locations{width:35%}.fixed .column-comments{width:4em;padding:8px 0;text-align:right}.fixed .column-comments .vers{padding-right:3px}.fixed .column-comments a{float:right}.fixed .column-icon{width:80px}.wp-list-table a{-webkit-transition:none;transition:none}#the-list tr:last-child td,#the-list tr:last-child th{border-bottom:none!important;-webkit-box-shadow:none;box-shadow:none}#comments-form .fixed .column-author{width:20%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv .comments-box{border:0}#commentsdiv .comments-box thead th{background:0 0;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv .spinner{padding-right:5px}.sorting-indicator{display:none;width:10px;height:4px;margin-top:8px;margin-right:7px}.sorting-indicator:before{background:0 0;content:'\f142';font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0;top:-4px;right:-8px;line-height:10px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.column-comments .sorting-indicator:before{top:0;right:-10px}th.desc:hover span.sorting-indicator:before,th.sorted.asc .sorting-indicator:before{content:'\f142'}th.asc:hover span.sorting-indicator:before,th.sorted.desc .sorting-indicator:before{content:'\f140'}tr.wp-locked .locked-indicator{margin-right:6px;height:20px;width:16px}tr.wp-locked .locked-indicator:before{color:#888;content:'\f160';display:inline-block;float:right;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-right:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}tr.wp-locked .check-column input[type=checkbox],tr.wp-locked .check-column label,tr.wp-locked .row-actions .inline,tr.wp-locked .row-actions .trash{display:none}tr .locked-info{height:0;opacity:0}tr.wp-locked .locked-info{margin-top:8px;height:auto;opacity:1}.locked-text{vertical-align:top}tr.locked-info,tr.wp-locked .locked-info{-webkit-transition:height 1s,opacity .5s;transition:height 1s,opacity .5s}.fixed .column-comments .sorting-indicator{margin-top:3px}#menu-locations-wrap .widefat{width:60%}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:7px 10px 8px 7px}th.manage-column a,th.sortable a:active,th.sortable a:focus,th.sortable a:hover{color:#333}th.sortable a:focus{background:#e1e1e1}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:right;cursor:pointer}th.desc:hover span.sorting-indicator,th.sorted.asc .sorting-indicator{display:block;background-position:0 0}th.asc:hover span.sorting-indicator,th.sorted.desc .sorting-indicator{display:block;background-position:-7px 0}.tablenav-pages a{font-weight:600;margin-left:1px;padding:0 2px}.tablenav-pages .current-page{padding-top:0;text-align:center}.tablenav-pages .next-page{margin-right:2px}.tablenav a.button-secondary{display:block;margin:3px 0 0 8px}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:left;display:block;cursor:default;height:30px;color:#555;line-height:30px;font-size:12px}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a{padding:0 10px 3px;background:#eee;background:rgba(0,0,0,.05);font-size:16px;font-weight:400}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover{color:#fff;background:#2ea2cc}.tablenav .tablenav-pages a.disabled,.tablenav .tablenav-pages a.disabled:active,.tablenav .tablenav-pages a.disabled:focus,.tablenav .tablenav-pages a.disabled:hover{color:#aaa;background:#eee;background:rgba(0,0,0,.05)}.tablenav .displaying-num{margin-left:2px;color:#777;font-size:12px;font-style:italic}.tablenav .actions{overflow:hidden;padding:2px 0 0 8px}.wp-filter .actions{display:inline-block;vertical-align:middle}.tablenav .delete{margin-left:20px}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#0074a2}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#2ea2cc}.tablenav .view-switch{float:left;margin:5px 8px 0 16px}.wp-filter .view-switch{display:inline-block;vertical-align:middle;padding:14px 0;margin:0 0 0 20px}.view-switch a{text-decoration:none}.view-switch>a{display:inline-block;width:18px;height:18px}.view-switch>a:before{color:#bbb;display:inline-block;float:right;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-right:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.view-switch>.view-list:before{content:'\f163'}.view-switch a:hover:before{color:#727272}.view-switch a.current:before{color:#0074a2}.view-switch>a+a{margin-right:5px}.view-switch>.view-excerpt:before{content:'\f164'}.view-switch>.view-grid:before{content:'\f509'}.filter{float:right;margin:-5px 10px 0 0}.filter .subsubsub{margin-right:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter .wp-filter{margin-bottom:0}#posts-filter fieldset{float:right;margin:0 0 1em 1.5ex;padding:0}#posts-filter fieldset legend{padding:0 1px .2em 0}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:600;margin:0 6px}.row-title{font-size:14px!important;font-weight:600}.column-comment .comment-author{margin-bottom:.6em}.column-author img,.column-comment .comment-author img,.column-username img{float:right;margin-left:10px;margin-top:1px}.row-actions{color:#ddd;font-size:13px;visibility:hidden;padding:2px 0 0}.mobile .row-actions,.row-actions.visible,div.comment-item:hover .row-actions,tr:hover .row-actions{visibility:visible}.row-actions-visible{padding:2px 0 0}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:right;margin:0;padding:0;width:100%}#wpbody-content .inline-edit-row fieldset .inline-edit-col,tr.inline-edit-row td{padding:0 .5em}#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col{border-width:0 1px 0 0;border-style:none none none solid}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .quick-edit-row-page .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:left;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both}.inline-edit-row fieldset .inline-edit-group:after{content:".";display:block;height:0;clear:both;visibility:hidden}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}.inline-edit-row h4{margin:.2em 0;padding:0;line-height:23px}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{margin:0;padding:0}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0;width:auto}.inline-edit-row fieldset label span.title{display:block;float:right;width:5em}.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-right:5em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-left:.5em}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:text-bottom}.inline-edit-row fieldset label textarea{width:100%;height:4em}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-left:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-save .spinner{padding:4px 10px 0;vertical-align:top;float:left}.inline-edit-row h4{text-transform:uppercase}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{font-style:italic;line-height:1.8em}.inline-edit-row fieldset .inline-edit-date{float:right}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.1em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}ul.cat-checklist{height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px;margin:0;background-color:#fff}#bulk-titles{display:block;height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px;margin:0 0 5px}.inline-edit-row fieldset ul.cat-checklist input,.inline-edit-row fieldset ul.cat-checklist li{margin:0;position:relative}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-style:normal;font-size:11px}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{max-width:80%}.ie8 .inline-edit-row #post_parent,.ie8 .inline-edit-row select[name=page_template]{width:250px}.quick-edit-row-post fieldset label.inline-edit-status{float:right}#bulk-titles{line-height:140%}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:right;height:18px;margin:0 -2px 0 3px;overflow:hidden;position:relative;width:20px}#bulk-titles div a:before{position:relative;top:-3px}.plugins tbody,.plugins tbody th.check-column{padding:8px 2px 0 0}.plugins tbody th.check-column input[type=checkbox]{margin-top:4px}#update-plugins-table tbody td p{margin-top:0}#update-plugins-table tbody td p strong{font-size:14px}.plugins .inactive th.check-column,.plugins tfoot th.check-column,.plugins thead th.check-column{padding-right:6px}#update-plugins-table tfoot th.check-column,#update-plugins-table thead th.check-column{padding-top:11px}.plugins,.plugins td,.plugins th{color:#000}.plugins tr{background:#fff}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ol,.plugins .desc ul{margin:0 2em 0 0}.plugins .desc ul{list-style-type:disc}.plugins .row-actions{font-size:13px}.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th{padding:10px 9px}.plugins .active td,.plugins .active th{background-color:#f7fcfe}.plugins .update td,.plugins .update th{border-bottom:0}.plugin-update-tr td{border-top:0}.plugin-install #the-list td,.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th,.upgrade .plugins td,.upgrade .plugins th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th,.plugins tr.active.plugin-update-tr+tr.inactive td,.plugins tr.active.plugin-update-tr+tr.inactive th{border-top:1px solid rgba(0,0,0,.03);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1;box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1}.plugins .update td,.plugins .update th,.plugins tr.active+tr.inactive.update td,.plugins tr.active+tr.inactive.update th,.upgrade .plugins tr:last-of-type td,.upgrade .plugins tr:last-of-type th{-webkit-box-shadow:none;box-shadow:none}.plugins .active.update td,.plugins .active.update th,tr.active.update+tr.plugin-update-tr .plugin-update{background-color:#fef7f1}.plugins .active th.check-column{border-right:4px solid #2ea2cc}.plugins .active.update th.check-column,.plugins .active.update+.plugin-update-tr .plugin-update{border-right:4px solid #d54e21}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-left:12px;white-space:nowrap}.plugins .inactive .plugin-title strong{font-weight:400}.plugins .row-actions,.plugins .second{padding:0 0 5px}.plugins .update .row-actions,.plugins .update .second{padding-bottom:0}.plugins-php .widefat tfoot td,.plugins-php .widefat tfoot th{border-top-style:solid;border-top-width:1px}.plugin-update-tr .update-message{font-size:13px;font-weight:400;padding:6px 12px;margin:0 31px 8px 10px;background-color:#f7f7f7;background-color:rgba(0,0,0,.03)}.plugin-update-tr .update-message:before{color:#d54e21;content:'\f463';display:inline-block;font:400 20px/1 dashicons;speak:none;margin:0 -2px 0 8px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.plugins .plugin-update{padding:0;border:none;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}tr.active+tr.plugin-update-tr .plugin-update{background-color:#f7fcfe}tr.active+tr.plugin-update-tr .plugin-update .update-message{background-color:#fcf3ef}.plugin-install-php h3{clear:both}.plugin-install-php h4{margin:2.5em 0 8px}.plugin-install-php .wp-filter{margin-bottom:0}.plugin-group{overflow:hidden;margin-top:1.5em}.plugin-group h3{margin-top:0}.plugin-card{float:right;margin:0 8px 16px;width:48.5%;width:-webkit-calc(50% - 8px);width:calc(50% - 8px);background-color:#fff;border:1px solid #dedede;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.plugin-card:nth-child(odd){clear:both;margin-right:0}.plugin-card:nth-child(even){margin-left:0}@media screen and (min-width:1600px){.plugin-card{width:30%;width:-webkit-calc(33.1% - 8px);width:calc(33.1% - 8px)}.plugin-card:nth-child(odd){clear:none;margin-right:8px}.plugin-card:nth-child(even){margin-left:8px}.plugin-card:nth-child(3n+1){clear:both;margin-right:0}.plugin-card:nth-child(3n){margin-left:0}}@media screen and (max-width:782px){.plugin-card{margin-right:0;margin-left:0;width:100%}}.plugin-card-top{position:relative;padding:20px 20px 10px;min-height:135px}.plugin-action-buttons,div.action-links{margin:0}.plugin-card h4{margin:0 0 12px;font-size:18px;line-height:1.3}.plugin-card .desc,.plugin-card .name{margin-right:148px;margin-left:120px}.plugin-card .action-links{position:absolute;top:20px;left:20px;width:120px}.plugin-action-buttons{clear:left;float:left;margin-right:2em;margin-bottom:1em;text-align:left}.plugin-action-buttons li{margin-bottom:10px}.plugin-card-bottom{clear:both;padding:12px 20px;background-color:#fafafa;border-top:1px solid #dedede;overflow:hidden}.plugin-card-bottom .star-rating{display:inline}.plugin-card .column-rating{line-height:23px}.plugin-card .column-rating,.plugin-card .column-updated{margin-bottom:4px}.plugin-card .column-downloaded,.plugin-card .column-rating{float:right;clear:right;max-width:180px}.plugin-card .column-compatibility,.plugin-card .column-updated{text-align:left;float:left;clear:left;width:65%;width:-webkit-calc(100% - 180px);width:calc(100% - 180px)}.plugin-card .column-compatibility span:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;right:-2px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.plugin-card .compatibility-incompatible:before{content:'\f158'}.plugin-card .compatibility-compatible:before{content:'\f147'}.plugin-card .compatibility-untested strong{font-weight:400}.plugin-icon{position:absolute;top:20px;right:20px;width:128px;height:128px;margin:0 0 20px 20px}.plugin-icon img{width:128px;height:128px}.no-plugin-results{color:#999;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.wp-list-table .site-deleted{background:#ff8573}.wp-list-table .site-spammed{background:#faafaa}.wp-list-table .site-archived{background:#ffebe8}.wp-list-table .site-mature{background:#fecac2}@media screen and (max-width:1100px) and (min-width:782px),(max-width:480px){.plugin-card .action-links{position:static;margin-right:148px;width:auto}.plugin-action-buttons{float:none;margin:1em 0 0;text-align:right}.plugin-action-buttons li{display:inline-block;vertical-align:middle}.plugin-action-buttons li .button{margin-left:20px}.plugin-card .desc,.plugin-card .name{margin-left:0}.plugin-card .desc p:first-of-type{margin-top:0}}@media screen and (max-width:782px){.tablenav{height:auto}.tablenav.top{margin:20px 0 5px}.tablenav.bottom{position:relative;margin-top:15px}.tablenav br{display:none}.tablenav br.clear{display:block}.tablenav .view-switch,.tablenav.top .actions,.tablenav.top .displaying-num{display:none}.tablenav.bottom .displaying-num{position:absolute;left:0;top:10px;font-size:14px}.tablenav-pages{width:100%;text-align:center;margin:0 0 25px}.tablenav.bottom .tablenav-pages{margin-top:25px}.tablenav.top .tablenav-pages.one-page{display:none}.tablenav.bottom .tablenav-pages.one-page{margin:15px 0 0;height:0}.tablenav-pages .pagination-links .paging-input{font-size:18px}.tablenav-pages .pagination-links a{padding:8px 20px 11px;font-size:18px;background:rgba(0,0,0,.05)}.tablenav-pages .pagination-links .current-page{padding:10px;font-size:14px}.form-wrap>p{display:none}.comment-count{font-size:14px}.column-categories,.column-tags,.fixed .column-author,.fixed .column-date,.media .column-parent,.sites .column-registered,.sites .column-users,.tags .column-description,.users .column-email,.users .column-name{display:none}.fixed .column-comment .comment-author{display:block}.column-title{width:85%}.fixed .column-comments,.widefat .check-column{width:35px}.widefat tfoot .check-column,.widefat thead .check-column{padding:10px 0}.widefat *{word-wrap:normal}#wpbody-content .bulk-edit-row .inline-edit-col-bottom,#wpbody-content .bulk-edit-row .inline-edit-col-left,#wpbody-content .bulk-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .inline-edit-row-post .inline-edit-col-center,#wpbody-content .quick-edit-row-page .inline-edit-col-left,#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .quick-edit-row-post .inline-edit-col-left,#wpbody-content .quick-edit-row-post .inline-edit-col-right{float:none;width:100%}#wpbody-content .bulk-edit-row fieldset .inline-edit-col label,#wpbody-content .bulk-edit-row fieldset .inline-edit-group label,#wpbody-content .quick-edit-row fieldset .inline-edit-col label,#wpbody-content .quick-edit-row fieldset .inline-edit-group label{max-width:none;float:none;margin-bottom:5px}#wpbody .bulk-edit-row fieldset select{display:block;width:100%;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-size:16px}.inline-edit-row fieldset label span.title{float:none}.inline-edit-row fieldset label.inline-edit-tags{padding:0 .5em}.inline-edit-row fieldset .inline-edit-col label.inline-edit-tags{padding:0}.inline-edit-row fieldset label span.input-text-wrap{margin-right:0}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{width:3em}.inline-edit-row fieldset input[name=aa]{width:4.5em}#bulk-titles div{margin:.8em .3em}#bulk-titles div a{height:22px}.tags .column-posts{width:74px}.tags .column-slug{width:30%}.comments .column-response,.users .column-role{width:35%}.sites .column-blogname{width:55%}#wpbody-content #update-themes-table .plugin-title{width:auto}.link-manager-php #posts-filter{margin-top:25px}.link-manager-php .tablenav.bottom{overflow:hidden}.wp-list-table.plugins{position:relative;margin-top:35px;margin-bottom:50px}#wpbody-content .wp-list-table.plugins tfoot .column-description,.wp-list-table.plugins th#description,.wp-list-table.plugins thead .column-description{display:none}#wpbody-content .wp-list-table.plugins,#wpbody-content .wp-list-table.plugins .column-description,#wpbody-content .wp-list-table.plugins .manage-column.column-name,#wpbody-content .wp-list-table.plugins .plugin-title,#wpbody-content .wp-list-table.plugins .plugin-update,#wpbody-content .wp-list-table.plugins .theme-title,#wpbody-content .wp-list-table.plugins tbody,#wpbody-content .wp-list-table.plugins thead,#wpbody-content .wp-list-table.plugins tr{display:block;width:auto}.wp-list-table.plugins tfoot,.wp-list-table.plugins thead{position:absolute;top:-35px;right:0;left:0;width:auto;height:35px}.wp-list-table.plugins tfoot{bottom:-35px;top:auto}.active,.inactive{padding-top:0}.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-top:13px;padding-bottom:4px}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column,.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title,.wp-list-table.plugins tbody th{-webkit-box-shadow:none;box-shadow:none}.plugins tbody{padding:1px 0 0}.plugins tr.active+tr.inactive td.column-description{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column{border-top:none}.wp-list-table.plugins .column-description{padding-top:0}.wp-list-table.plugins .column-description,.wp-list-table.plugins .manage-column.column-name,.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-left:12px;padding-right:46px}.wp-list-table.plugins tr{position:relative}.wp-list-table.plugins th.check-column,.wp-list-table.plugins tr.update th.check-column{position:absolute;height:auto;top:0;bottom:0;right:0;padding-right:2px;padding-top:18px}.wp-list-table.plugins tfoot th.check-column,.wp-list-table.plugins thead th.check-column{padding-right:3px;padding-top:11px;background:0 0}.widefat tbody th.check-column input[type=checkbox]{margin-top:-3px;margin-right:8px}.wp-list-table.plugins .active .check-column input,.wp-list-table.plugins .update .check-column input{margin-right:5px}.wp-list-table.plugins tfoot .check-column input,.wp-list-table.plugins thead .check-column input{margin-top:-6px}.wp-list-table.plugins .active th.check-column{background:0 0}.wp-list-table.plugins .plugin-title strong,.wp-list-table.plugins .theme-title strong{font-size:1.4em;line-height:1.6em}table.plugin-install .column-description,table.plugin-install .column-name,table.plugin-install .column-rating,table.plugin-install .column-version{display:block;width:auto}table.plugin-install th.column-description,table.plugin-install th.column-name,table.plugin-install th.column-rating,table.plugin-install th.column-version{display:none}table.plugin-install td.column-name strong{font-size:1.4em;line-height:1.6em}table.plugin-install #the-list td{-webkit-box-shadow:none;box-shadow:none}table.plugin-install #the-list tr{display:block;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}}#poststuff{padding-top:10px;min-width:763px}#poststuff #post-body{padding:0}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-left:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments .spinner,#show-comments a{float:right}#lost-connection-notice .spinner{display:block;float:right;margin:0 0 0 5px}#titlediv{position:relative}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0;background-color:#fff}#titlediv #title-prompt-text{color:#777;position:absolute;font-size:1.7em;padding:11px 10px}#wp-fullscreen-save .fs-saved{color:#999;float:left;margin-top:4px}#poststuff .inside-submitbox,#side-sortables .inside-submitbox{margin:0 3px;font-size:11px}input#link_description,input#link_url{width:98%}#pending{background:0 none;border:0;padding:0;font-size:11px;margin-top:-1px}#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-left:10px;font-size:11px}#editable-post-name-full{display:none}#editable-post-name{background-color:#fffbcc}#editable-post-name input{font-size:13px;height:22px;margin:0;width:16em}.postarea h3 label{float:right}.submitbox .submit{text-align:right;padding:12px 10px 10px;font-size:11px;background-color:#464646;color:#ccc}.submitbox .submitdelete{text-decoration:none;padding:1px 2px}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:red;border-bottom-color:red}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-left:4px;padding:6px}.inside-submitbox #post_status{margin:2px -2px 2px 0}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{position:relative;min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:left;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#333}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:10px 0}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:0 7px 5px}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}#side-sortables .inside-submitbox .insidebox,.stuffbox .insidebox{margin:11px 0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #dfdfdf;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 5px}#postimagediv .inside img{max-width:100%;height:auto}form#tags-filter{position:relative}td.plugin-title strong,td.post-title strong{display:block;margin-bottom:.2em;font-size:14px}td.plugin-title p,td.post-title p{margin:6px 0}.ui-tabs-hide,.wp-hidden-children .wp-hidden-child{display:none}#post-body .tagsdiv #newtag{margin-left:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:left}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) no-repeat scroll left bottom;width:12px;cursor:row-resize}.rtl #content-resize-handle{background:url(../images/resize-rtl.gif) no-repeat scroll right bottom}.wp-editor-expand #content-resize-handle{display:none}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}#wp-content-editor-container{position:relative}#content-textarea-clone{z-index:-1;position:absolute;top:0;visibility:hidden;overflow:hidden;max-width:100%;border:1px solid transparent}.wp-fullscreen-wrap #content-textarea-clone{display:none}.wp-fullscreen-wrap{padding-top:0!important}.wp-fullscreen-wrap .wp-editor-area{margin-top:0!important}.wp-fullscreen-wrap .mce-edit-area{padding-top:0!important}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#misc-publishing-actions label[for=post_status]:before,#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#888}#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 2px;top:0;right:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}#post-body #visibility:before{content:'\f177'}.curtime #timestamp:before{content:'\f145';top:-1px}#post-body .misc-pub-revisions:before{content:'\f321'}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;right:50%;width:450px;margin-right:-225px;background:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005}.notification-dialog-background{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#post-lock-dialog .post-locked-message a.button{margin-left:10px}#post-lock-dialog .post-locked-avatar{float:right;margin:0 0 20px 20px}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:right;margin-left:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt,.attachmentlinks{margin:0;height:4em;width:98%}.tagchecklist{margin-right:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-right:-8px;position:absolute}.tagchecklist span{margin-left:25px;display:block;float:right;font-size:13px;line-height:1.8em;white-space:nowrap;cursor:default}.tagchecklist span a{margin:1px -17px 0 0;cursor:pointer;width:20px;height:20px;display:block;float:right;text-indent:0;overflow:hidden;position:absolute}#poststuff h2{margin-top:20px;font-size:1.5em;margin-bottom:15px;padding:0 0 3px;clear:right}#poststuff h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}#poststuff .inside label.deleted,#poststuff .inside label.spam{color:red}#poststuff .inside label.waiting{color:orange}#poststuff .inside label.approved{color:green}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}#post-visibility-select{line-height:1.5em;margin-top:3px}#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #dfdfdf;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-left:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:right;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-left:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#2ea2cc}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-right:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-left:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:'\f109'}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:'\f128'}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:'\f161'}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:'\f127'}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:'\f126'}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:'\f125'}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:'\f130'}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:'\f123'}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:'\f122'}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:'\f103'}.category-adder{margin-right:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #dfdfdf;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-right:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px;font-size:12px}.form-field input[type=email],.form-field input[type=number],.form-field input[type=password],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=text],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:0 0 10px;padding:8px 0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h3{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.tagsdiv{margin-top:-8px}#poststuff .taghint{color:#aaa;margin:15px 12px -24px 0}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}.taghint{color:#aaa;margin:-17px 7px 0 0;visibility:hidden}input.newtag~div.taghint{visibility:visible}input.newtag:focus~div.taghint{visibility:hidden}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h3{margin:2px 0 12px}.ac_results{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;display:none;border:1px solid gray;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{padding:2px 5px;white-space:nowrap;color:#101010;text-align:right}.ac_over{background-color:#f0f0b8;cursor:pointer}.ac_match{text-decoration:underline}.comment-php .wp-editor-area{height:200px}.comment-ays{margin-bottom:0;border-bottom-style:solid;border-bottom-width:1px}.comment-ays .alt{background-color:transparent}.spam-undo-inside,.trash-undo-inside{margin:1px 0 1px 8px;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-left:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 0 5px 3px;vertical-align:middle}#comment-status-radio label{padding:5px 0}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:right;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td,.links-table th{padding:5px 0}.links-table td label{margin-left:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) no-repeat scroll left bottom;-webkit-background-size:11px 11px;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-rtl-2x.gif) no-repeat scroll left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff h3{padding:12px}.post-format-options{padding-left:0}.post-format-options a{margin-left:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-left:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist li{margin-bottom:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto;margin-bottom:15px}.tagchecklist{margin:25px 10px}.tagchecklist span{font-size:16px;line-height:120%}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:right!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-right:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 6px 6px 3px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}a.wp-switch-editor{font-size:16px;line-height:1em;margin:3px 7px 0 0;padding:12px 15px}#wp-content-media-buttons a{font-size:16px;line-height:37px;height:39px;padding:0 15px 0 20px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-top:-3px!important;margin-right:-5px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:left;font-size:16px}#delete-action,#publishing-action{line-height:47px}.comment-ays{border-bottom:none}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}}@media only screen and (max-width:500px){#wp-content-media-buttons a{font-size:14px;padding:0 10px}}.revisions-control-frame,.revisions-diff-frame{position:relative}.revisions-controls{padding-top:40px;height:100px;z-index:1}.revisions-controls input[type=checkbox]{position:relative;top:-1px;vertical-align:text-bottom}.revisions.pinned .revisions-controls{position:fixed;top:0;height:82px;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-tickmarks{position:relative;margin:0 auto;height:.7em;top:7px;max-width:70%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.revisions-tickmarks>div{position:absolute;height:100%;border-right:1px solid #aaa;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.revisions-tickmarks>div:first-child{border-width:0}.comparing-two-revisions .revisions-controls{height:140px}.comparing-two-revisions.pinned .revisions-controls{height:124px}.revisions .diff-error{position:absolute;text-align:center;margin:0 auto;width:100%;display:none}.revisions.diff-error .diff-error{display:block}.revisions .loading-indicator{position:absolute;vertical-align:middle;opacity:0;width:100%;width:-webkit-calc(100% - 30px);width:calc(100% - 30px);top:50%;top:-webkit-calc(50% - 10px);top:calc(50% - 10px);-webkit-transition:opacity .5s;transition:opacity .5s;filter:alpha(opacity=0)}body.folded .revisions .loading-indicator{margin-right:-32px}.revisions .loading-indicator span.spinner{display:block;margin:0 auto;float:none}.revisions.loading .loading-indicator{opacity:1;filter:alpha(opacity=100)}.revisions .diff{-webkit-transition:opacity .5s;transition:opacity .5s}.revisions.loading .diff{opacity:.5;filter:alpha(opacity=50)}.revisions.diff-error .diff{visibility:hidden}.revisions-meta{margin-top:20px;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions.pinned .revisions-meta{-webkit-box-shadow:none;box-shadow:none}.revision-toggle-compare-mode{position:absolute;top:0;left:0}.comparing-two-revisions .revisions-next,.comparing-two-revisions .revisions-previous,.revisions-meta .diff-meta-to strong{display:none}.revisions-controls .author-card .date{color:#777}.revisions-controls .author-card.autosave{color:#d54e21}.revisions-controls .author-card .author-name{font-weight:700}.comparing-two-revisions .diff-meta-to strong{display:block}.revisions.pinned .revisions-buttons{padding:0 11px}.revisions-next,.revisions-previous{position:relative;z-index:1}.revisions-previous{float:right}.revisions-next{float:left}.revisions-controls .wp-slider{max-width:70%;margin:0 auto;top:-3px}.revisions-diff{padding:15px;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-diff h3:first-child{margin-top:0}#revisions-meta-restored img,.post-revisions li img{vertical-align:middle}table.diff tbody tr td:nth-child(2){width:4%}table.diff{table-layout:fixed;width:100%;white-space:pre-wrap}table.diff col.content{width:auto}table.diff col.content.diffsplit{width:48%}table.diff col.diffsplit.middle{width:auto}table.diff col.ltype{width:30px}table.diff tr{background-color:transparent}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.618;padding:.5em;vertical-align:top;word-wrap:break-word}table.diff td h1,table.diff td h2,table.diff td h3,table.diff td h4,table.diff td h5,table.diff td h6{margin:0}table.diff .diff-addedline ins,table.diff .diff-deletedline del{text-decoration:none}table.diff .diff-deletedline{background-color:#ffe9e9}table.diff .diff-deletedline del{background-color:#faa}table.diff .diff-addedline{background-color:#e9ffe9}table.diff .diff-addedline ins{background-color:#afa}.diff-meta{padding:5px;clear:both;min-height:32px}.diff-title strong{line-height:32px;min-width:60px;text-align:left;float:right;margin-left:5px}.revisions-controls .author-card .author-info{font-size:12px;line-height:16px}.revisions-controls .author-card .author-info,.revisions-controls .author-card .avatar{float:right;margin-right:6px;margin-left:6px}.revisions-controls .author-card .byline{display:block;font-size:12px}.revisions-controls .author-card .avatar{vertical-align:middle}.diff-meta input.restore-revision{float:left;margin-right:6px;margin-left:6px;margin-top:4px}.diff-meta-from{display:none}.comparing-two-revisions .diff-meta-from{display:block}.revisions-tooltip{position:absolute;bottom:105px;margin-left:0;margin-right:-69px;z-index:0;max-width:350px;min-width:130px;padding:8px 4px;opacity:0}.revisions-tooltip.flipped{margin-right:0;margin-left:-70px}.revisions.pinned .revisions-tooltip{display:none!important}.comparing-two-revisions .revisions-tooltip{bottom:145px}.revisions-tooltip-arrow{width:70px;height:15px;overflow:hidden;position:absolute;right:0;margin-right:35px;bottom:-15px}.revisions-tooltip.flipped .revisions-tooltip-arrow{margin-right:0;margin-left:35px;right:auto;left:0}.revisions-tooltip-arrow>span{content:"";position:absolute;right:20px;top:-20px;width:25px;height:25px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.revisions-tooltip.flipped .revisions-tooltip-arrow>span{right:auto;left:20px}.ie8 .revisions-tooltip-arrow>span{right:15px;top:-25px;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476)"}.ie8 .revisions-tooltip.flipped .revisions-tooltip-arrow>span{left:25px}.revisions-tooltip,.revisions-tooltip-arrow>span{border:1px solid #d7d7d7;background-color:#fff}.revisions-tooltip{display:none}.arrow{width:70px;height:16px;overflow:hidden;position:absolute;right:0;margin-right:-35px;bottom:90px;z-index:10000}.arrow:after{z-index:9999;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.arrow.top{top:-16px;bottom:auto}.arrow.left{right:20%}.arrow:after{content:"";position:absolute;right:20px;top:-20px;width:25px;height:25px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.revisions-tooltip,.revisions-tooltip-arrow:after{border-width:1px;border-style:solid}div.revisions-controls>.wp-slider>.ui-slider-handle{margin-right:-10px}.rtl div.revisions-controls>.wp-slider>.ui-slider-handle{margin-left:-10px}.wp-slider.ui-slider{position:relative;border:1px solid #d7d7d7;text-align:right;cursor:pointer}.wp-slider .ui-slider-handle{-webkit-border-radius:50%;border-radius:50%;height:18px;margin-top:-3px;outline:0;position:absolute;width:18px;z-index:2}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#2ea2cc;border:1px solid #0074a2;-webkit-box-shadow:inset 0 1px 0 #78c8e6,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #78c8e6,0 1px 0 rgba(0,0,0,.15)}.wp-slider .ui-slider-handle:before{background:0 0;position:absolute;top:0;right:0;color:#fff;content:"\f229";font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{font-size:20px!important;margin:-1px -1px 0 0}.wp-slider .ui-slider-handle.from-handle:before{content:'\f139'}.rtl .wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{content:'\f141'}.rtl .wp-slider .ui-slider-handle.to-handle:before{content:'\f139';left:-1px}.wp-slider .ui-slider-range{position:absolute;font-size:.7em;display:block;border:0;background-color:transparent;background-image:none}.wp-slider.ui-slider-horizontal{height:.7em}.wp-slider.ui-slider-horizontal .ui-slider-handle{top:-.25em;margin-right:-.6em}.wp-slider.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.wp-slider.ui-slider-horizontal .ui-slider-range-min{right:0}.wp-slider.ui-slider-horizontal .ui-slider-range-max{left:0}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.revision-tick.completed-false{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){#diff-next-revision,#diff-previous-revision{margin-top:-1em}table.diff{-ms-word-break:break-all;word-break:break-all;word-wrap:break-word}}.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #dfdfdf;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:right;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 0 8px 8px;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 10px 0 0}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-left:6px;margin-right:2px}.media-upload-form .align .field label{display:inline;padding:0 23px 0 0;margin:0 3px 0 1em;font-weight:600}.media-upload-form tr.image-size label{margin:0 5px 0 0;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 5px 0 0}.describe-toggle-off,.describe-toggle-on,.media-item .edit-attachment{display:block;line-height:36px;float:left;margin-left:10px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.media-upload-form .media-item{min-height:36px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{-webkit-box-shadow:0 1px 0 #dfdfdf;box-shadow:0 1px 0 #dfdfdf}#media-items:empty{border:0}.media-item .filename{line-height:36px;overflow:hidden;margin-right:6px}.media-item .pinkynail{float:right;margin:2px 3px 0 10px;max-width:40px;max-height:32px}.media-item .startclosed,.media-item .startopen{display:none}.media-item .original{position:relative;height:34px}.media-item .progress{float:left;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;-webkit-border-radius:22px;border-radius:22px;background:#ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;-webkit-border-radius:22px;border-radius:22px;background-color:#0074a2;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,.3);box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 14px 10px 0}.media-item .error-div a.dismiss{display:block;float:left;margin:0 15px 0 10px}.find-box{background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-right:-300px;position:fixed;top:30px;bottom:30px;right:50%;z-index:100105}.find-box-head{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 16px 0 36px;position:absolute;top:0;right:0;left:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;right:110px;position:absolute;top:2px}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:right}#find-posts-input{width:140px;height:28px;margin:0 0 0 4px}.widefat .found-radio{padding-left:0;width:16px}#find-posts-close{width:36px;height:36px;position:absolute;top:0;left:0;cursor:pointer;text-align:center;color:#666}#find-posts-close:hover{color:#2ea2cc}#find-posts-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f158'}.find-box-buttons{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;right:0;left:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;right:0;left:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #ddd;line-height:1.8em;word-spacing:3px;-webkit-border-radius:6px;border-radius:6px}.drag-drop #drag-drop-area{border:4px dashed #bbb;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#aaa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title{display:none}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-bottom:16px;padding:0 16px;border:1px solid #c00;background-color:#feebe8}.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:20px 0;padding:0;border:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors{font-size:0;top:-12px;left:-10px}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:before{content:"\f158";font:400 20px/1 dashicons;color:#666}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:focus:before,.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:hover:before{color:#2ea2cc}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h3{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;left:auto;right:auto;bottom:auto;padding-top:0;margin-top:0;border:4px dashed #bbb}.media-frame.mode-select .attachments-browser.fixed .attachments{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;outline:0}.media-frame.mode-grid .selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc}.media-frame.mode-grid .attachment.details{-webkit-box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 0 0 10px;font-size:14px}.media-frame.mode-grid .media-toolbar-secondary>.media-button{margin-top:10px;margin-bottom:10px}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 0 0 10px}.media-frame.mode-grid .search{margin-top:0}.media-frame.mode-grid .spinner{margin-top:15px}.attachments-browser .media-toolbar-secondary>.select-mode-toggle-button{margin-left:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;right:auto;left:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#999;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:'\f335';font-size:22px}.upload-php .media-modal-close .media-modal-icon{margin:14px;width:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#777;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-right:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;left:0}.edit-attachment-frame .edit-media-header .left{left:102px}.edit-attachment-frame .edit-media-header .right{left:51px}.edit-attachment-frame .media-frame-title{right:0;left:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#ddd;border-color:#ccc;color:#000;outline:0}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before,.rtl .edit-attachment-frame .edit-media-header .right:before{content:'\f341'}.edit-attachment-frame .edit-media-header .right:before,.rtl .edit-attachment-frame .edit-media-header .left:before{content:'\f345'}.edit-attachment-frame .edit-media-header .left.disabled,.edit-attachment-frame .edit-media-header .left.disabled:hover,.edit-attachment-frame .edit-media-header .right.disabled,.edit-attachment-frame .edit-media-header .right.disabled:hover{color:#ccc;background:inherit;cursor:default;pointer-events:none}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{right:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;left:0;right:0;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:right;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin-bottom:16px;max-width:100%;max-height:90%;max-height:-webkit-calc(100% - 42px);max-height:calc(100% - 42px)}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:6px 8px;line-height:16px}.edit-attachment-frame .attachment-info{overflow:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-right:1px solid #ddd;background:#f3f3f3}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #ddd}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#666}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative}.imgedit-settings p{margin:8px 0 0}.describe .imgedit-wrap .imgedit-settings{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto;overflow:hidden}.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{padding-left:16px;width:auto;overflow:hidden}.wp_attachment_holder .imgedit-wrap .imgedit-settings{float:left;width:250px}.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;background:#fff url(../images/spinner.gif) no-repeat center;-webkit-background-size:20px 20px;background-size:20px 20px;opacity:.7;filter:alpha(opacity=70);width:100%;height:500px;display:none}.no-float{float:none}.imgedit-settings .disabled,.media-disabled{color:grey}.A1B1,.wp_attachment_image{overflow:hidden}.A1B1 .button,.wp_attachment_image .button{float:right}.no-js .wp_attachment_image .button{display:none}.A1B1 .spinner,.wp_attachment_image .spinner{float:right;padding:0 0 4px;vertical-align:bottom}.imgedit-menu{margin:0 0 12px;min-width:300px}.imgedit-menu div{float:right;width:32px;border:1px solid #d5d5d5;background:#f1f1f1;margin:0 0 0 8px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;line-height:28px;color:#777;cursor:pointer}.imgedit-menu div:before{font:400 20px/1 dashicons;speak:none;vertical-align:middle}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea;color:#333}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;color:#777;filter:alpha(opacity=50);opacity:.5;cursor:default}.imgedit-crop:before{content:'\f165'}.imgedit-rleft:before{content:'\f166'}.imgedit-rright:before{content:'\f167'}.imgedit-flipv:before{content:'\f168'}.imgedit-fliph:before{content:'\f169'}.imgedit-undo:before{content:'\f171'}.imgedit-redo:before{content:'\f172'}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 0 0 8px}.imgedit-rleft{margin:0 3px}.imgedit-rright{margin:0 3px 0 8px}.imgedit-flipv{margin:0 3px}.imgedit-fliph{margin:0 3px 0 8px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 3px 0 8px}.imgedit-applyto img{margin:0 0 0 8px}.imgedit-group-top{margin:5px 0}#poststuff .imgedit-group-top h3{padding:0}.imgedit-group-top h3 a{text-decoration:none}.imgedit-applyto .imgedit-label{padding:2px 0 0;display:block}.imgedit-help{display:none;font-style:italic}a.imgedit-help-toggle{text-decoration:none}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0}.imgedit-submit-btn{margin-right:20px}.imgedit-wrap .nowrap{white-space:nowrap}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-group{margin-bottom:8px;padding:2px 10px}audio,video{display:inline-block;max-width:100%}.mejs-container{width:100%;max-width:100%}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 12px 10px 0}}@media only screen and (max-width:1120px){.media-frame.mode-grid .attachments-browser .media-toolbar-secondary{float:none}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;left:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{left:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.upload-php .media-modal-close .media-modal-icon{margin:9px 10px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{left:82px}.edit-attachment-frame .edit-media-header .right{left:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}}.theme-browser .themes{clear:both;padding:0 0 100px}.themes-php .wrap h2{float:right;margin-bottom:15px}.network-admin.themes-php .wrap h2{margin-bottom:0}.themes-php .wrap h2 .button{margin-right:20px}.themes-php .wp-filter-search{position:relative;top:-2px;right:20px;margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5}.themes-php div.error,.themes-php div.updated{margin:0 0 20px;clear:both}.themes-php div.updated a{text-decoration:underline}.theme-browser .theme{cursor:pointer;float:right;margin:0 0 4% 4%;position:relative;width:30.6%;border:1px solid #dedede;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ie8 .theme-browser .theme{width:30%;margin:0 0 4% 3%}.theme-browser .theme:nth-child(3n){margin-left:0}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{-ms-filter:"alpha(Opacity=0)";opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;left:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-right:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:focus .theme-actions,.theme-browser .theme:hover .theme-actions{-ms-filter:"alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-left:3px}.theme-browser .theme .theme-actions .button-secondary{float:none;margin-right:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:'';display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;right:0;top:0;width:100%;-webkit-transform:translateZ(0);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme:focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{-ms-filter:"alpha(Opacity=0)";opacity:0;position:absolute;top:35%;left:25%;right:25%;background:#222;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.theme-browser .theme:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.theme-browser .theme:focus .more-details{opacity:1}.theme-browser .theme.active:focus .theme-actions{display:block}.theme-browser.rendered .theme:focus .more-details,.theme-browser.rendered .theme:hover .more-details{-ms-filter:"alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-installed,.theme-browser .theme .theme-update{background:#d54e21;background:rgba(213,78,33,.95);color:#fff;display:block;font-size:13px;font-weight:400;height:48px;line-height:48px;padding:0 10px;position:absolute;top:0;left:0;right:0;border-bottom:1px solid rgba(0,0,0,.25);overflow:hidden}.theme-browser .theme .theme-installed:before,.theme-browser .theme .theme-update:before{content:'\f463';display:inline-block;font:400 20px/1 dashicons;margin:0 0 0 6px;opacity:.8;position:relative;top:5px;speak:none;-webkit-font-smoothing:antialiased}.theme-browser .theme.active .theme-name{background:#2f2f2f;color:#fff;padding-left:110px;font-weight:300;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(49,49,49,.7);border-right:none;opacity:1}.theme-browser .theme.active .theme-actions .button-primary{margin-left:0}.theme-browser .theme .theme-author{background:#222;color:#eee;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit;text-decoration:none}.theme-browser .theme.add-new-theme{border:none;-webkit-box-shadow:none;box-shadow:none}.theme-browser .theme.add-new-theme a{color:#999;text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme:after{display:block;content:'';-ms-filter:"alpha(Opacity=100)";opacity:1;background:0 0;position:absolute;top:0;right:0;left:0;bottom:0;padding:10% 0 0;text-shadow:none;border:5px dashed #d5d2ca;border:5px dashed rgba(0,0,0,.1);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#e5e5e5;background:rgba(153,153,153,.1);-webkit-border-radius:50%;border-radius:50%;display:inline-block;content:'\f132';-webkit-font-smoothing:antialiased;font:400 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#999;position:absolute;top:30%;right:50%;margin-right:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme:focus .theme-screenshot,.theme-browser .theme.add-new-theme:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme:focus span:after,.theme-browser .theme.add-new-theme:hover span:after{background:#fff;color:#0074a2}.theme-browser .theme.add-new-theme:focus:after,.theme-browser .theme.add-new-theme:hover:after{border-color:transparent;color:#fff;background:#0074a2;content:''}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;-webkit-box-shadow:none;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-10%;margin-bottom:10%}.theme-browser .theme.add-new-theme:focus .theme-name,.theme-browser .theme.add-new-theme:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;right:-20px;left:0;top:0;bottom:0;background:#f1f1f1;background:rgba(238,238,238,.9);z-index:10}.theme-overlay .theme-header{position:absolute;top:0;right:0;left:0;height:48px;border-bottom:1px solid #ddd}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:left;border:0;border-right:1px solid #ddd;background-color:transparent;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:400 22px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#777;background-color:transparent;height:48px;width:54px;float:right;text-align:center;border:0;border-left:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#ddd;border-color:#ccc;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#ccc;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.rtl .theme-overlay .theme-header .right:before,.theme-overlay .theme-header .left:before{content:'\f341'}.rtl .theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{content:'\f345'}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;right:190px;left:30px;bottom:3%;background:#fff;-webkit-box-shadow:0 1px 20px 5px rgba(0,0,0,.1);box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:20;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-overlay .theme-wrap:after{content:".";display:block;height:0;clear:both;visibility:hidden}body.folded .theme-overlay .theme-wrap{right:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;right:0;left:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-about:after{content:".";display:block;height:0;clear:both;visibility:hidden}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;right:0;left:0;padding:10px 25px 5px;background:#f3f3f3;z-index:30;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-top:1px solid #eee}.ie8 .theme-overlay .theme-actions{border:1px solid #eee}.theme-overlay .theme-actions a{margin-left:5px;margin-bottom:5px}.theme-overlay .theme-actions .delete-theme{color:#a00;position:absolute;left:10px;bottom:5px;text-decoration:none;border-color:transparent;-webkit-box-shadow:none;box-shadow:none;background:0 0}.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#d54e21;color:#fff;border-color:#d54e21}.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:right;margin:0 0 0 30px;width:55%;max-width:880px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:'';display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;right:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:350px;width:auto}.theme-overlay .screenshot.thumb{background:#ccc;border:1px solid #eee;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:'';display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;position:absolute;right:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #2ea2cc}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:right}.theme-overlay .current-label{background:#333;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;-webkit-border-radius:2px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-name{color:#222;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3}.theme-overlay .theme-version{color:#999;font-size:13px;font-weight:400;float:none;display:inline-block;margin-right:10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-author{color:#686868;font-size:16px;font-weight:400;margin:15px 0 25px}.theme-overlay .theme-author a{text-decoration:none}.theme-overlay .theme-description{color:#555;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #eee;color:#888;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#444;font-weight:700;margin-left:5px}.theme-overlay .theme-update-message{background:#fef7f1;border:1px solid #eee;border-right:4px solid #d54e21;-webkit-border-radius:3px;border-radius:3px;padding:5px 20px 10px}.theme-overlay .theme-update{color:#222;font-size:18px;display:inline-block;line-height:40px;margin:0}.theme-overlay .parent-theme{background:#f7fcfe;border:1px solid #eee;border-right:4px solid #2ea2cc;font-size:14px;font-weight:400;margin-top:30px;padding:10px 20px 10px 10px}.theme-overlay .parent-theme strong{font-weight:700}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;right:auto;left:auto;top:auto;bottom:auto}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 0 3% 3%}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-left:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-left:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 0 3% 3%}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-left:3%}.theme-browser .theme:nth-child(4n){margin-left:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-left:0}.theme-browser .theme:nth-child(even){margin-left:0}.theme-browser .theme:nth-child(odd){margin-left:5%}}@media only screen and (max-width:900px){.theme-overlay .theme-wrap{right:65px}}@media only screen and (max-width:780px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;left:0;bottom:0;right:0;padding:70px 20px 20px;border:none;z-index:500;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:0;width:auto}.theme:focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-left:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-left:0}}@media only screen and (max-width:650px){.theme-overlay .theme-description,.theme-overlay .theme-update{margin-right:0}.theme-overlay .theme-actions .delete-theme{position:relative;left:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wrap h2{width:100%}.themes-php .wp-filter-search{float:none;clear:both;right:0;top:0;left:0;margin:10px 0;width:100%}.theme-browser .theme.add-new-theme span:after{font:400 60px/90px dashicons;width:80px;height:80px;top:30%;right:50%;text-indent:0;margin-right:-40px}.single-theme .theme-wrap{margin:0 -10px 0 -12px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:right;width:50%;border-spacing:3px;padding:3px}.theme-browser .theme .theme-installed{background:#0074a2}.theme-browser .theme .theme-installed:before{content:'\f147'}.theme-browser .theme.is-installed .theme-actions .button-primary{display:none!important}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.theme-install-php a.browse-themes,.theme-install-php.show-upload-theme a.upload{display:none}.theme-install-php.show-upload-theme a.browse-themes{display:inline}.upload-plugin,.upload-theme{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:none;margin:0;padding:0;width:100%;overflow:hidden;position:relative;top:10px}.upload-plugin,body.show-upload-theme .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#fafafa;border:1px solid #e5e5e5;padding:30px;margin:30px auto;max-width:380px}.upload-plugin .install-help,.upload-theme .install-help{color:#999;font-size:18px;font-style:normal;margin:0;padding:40px 0 0;text-align:center}body.show-upload-theme .upload-theme+.wp-filter,body.show-upload-theme .upload-theme+.wp-filter+.theme-browser{display:none}p.no-themes{color:#999;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center;display:none}body.no-results p.no-themes{display:block}.theme-install-php .add-new-theme,body.show-upload-theme p.no-themes{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0;text-align:right}}.rating{margin:30px 0}.rating span:before{color:#e6b800;content:"\f154";display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/1 dashicons;vertical-align:top}.rating-10 span.one:before,.rating-30 span.two:before,.rating-50 span.three:before,.rating-70 span.four:before,.rating-90 span.five:before{content:"\f459"}.rating-100 span.five:before,.rating-100 span.four:before,.rating-100 span.one:before,.rating-100 span.three:before,.rating-100 span.two:before,.rating-20 span.one:before,.rating-30 span.one:before,.rating-40 span.one:before,.rating-40 span.two:before,.rating-50 span.one:before,.rating-50 span.two:before,.rating-60 span.one:before,.rating-60 span.three:before,.rating-60 span.two:before,.rating-70 span.one:before,.rating-70 span.three:before,.rating-70 span.two:before,.rating-80 span.four:before,.rating-80 span.one:before,.rating-80 span.three:before,.rating-80 span.two:before,.rating-90 span.four:before,.rating-90 span.one:before,.rating-90 span.three:before,.rating-90 span.two:before{content:"\f155"}.rating .ratings{display:inline;margin-right:10px;line-height:20px;color:#999}.appearance_page_custom-header #headimg{border:1px solid #DFDFDF;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:right;margin:0 0 20px 20px}.appearance_page_custom-header .random-header{clear:both;margin:0 0 20px 20px;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-left:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dfdfdf}div#custom-background-image img{max-width:400px;max-height:300px}body.full-overlay-active{overflow:hidden}.wp-full-overlay{background:0 0;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:fixed;width:300px;height:100%;top:0;bottom:0;right:0;padding:0;margin:0;z-index:10;overflow:auto;background:#eee;border-left:none}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-right:0!important}.wp-full-overlay.expanded{margin-right:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-300px}.wp-full-overlay-sidebar:after{content:'';display:block;position:absolute;top:0;bottom:0;left:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;right:0;left:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;right:0;left:0;height:45px;padding:0 15px;line-height:45px;z-index:10;margin:0;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;right:0;left:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:right;width:45px;height:45px;padding-left:2px;background:#eee;border-left:1px solid #ddd;color:#444;cursor:pointer;text-decoration:none;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:400 22px/1 dashicons;content:"\f335";position:relative;top:7px;right:13px}.theme-install-overlay .previous-theme:before{font:400 20px/1 dashicons;content:"\f341";position:relative;top:6px;right:14px}.theme-install-overlay .next-theme:before{font:400 20px/1 dashicons;content:"\f345";position:relative;top:6px;right:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#bbb;background:#eee;cursor:default;pointer-events:none}.rtl .theme-install-overlay .previous-theme:before{content:"\f345"}.rtl .theme-install-overlay .next-theme:before{content:"\f341"}.wp-full-overlay a.collapse-sidebar{position:absolute;bottom:12px;right:0;z-index:50;display:block;width:19px;height:19px;margin-right:15px;padding:0;-webkit-border-radius:50%;border-radius:50%;color:#777;text-decoration:none}.wp-full-overlay a.collapse-sidebar:hover{color:#0074a2}.wp-full-overlay.collapsed .collapse-sidebar{position:absolute;right:100%}.wp-full-overlay .collapse-sidebar-arrow{position:static;margin-top:0;margin-right:0;display:block;width:auto;height:auto;background:0 0}.wp-full-overlay .collapse-sidebar-arrow:before{-webkit-border-radius:50%;border-radius:50%;float:right;content:"\f148";background:#eee;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:none;-ms-transform:none;transform:none}.wp-full-overlay.collapsed .collapse-sidebar-arrow{background-position:-1px -109px}.wp-full-overlay .collapse-sidebar-label{position:absolute;right:100%;line-height:20px;margin-right:10px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{-webkit-transition-property:right,left,top,bottom,width,margin;transition-property:right,left,top,bottom,width,margin;-webkit-transition-duration:.2s;transition-duration:.2s}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%}.customize-active #customize-container{display:block}.customize-loading #customize-container iframe{opacity:0}.customize-loading #customize-container{background:#fff url(../images/spinner.gif) no-repeat fixed center center;-webkit-background-size:20px 20px;background-size:20px 20px}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;transition:opacity .3s}#customize-container .collapse-sidebar{bottom:16px}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:left;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin-top:15px;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0;float:right}.theme-details .star-rating{margin:7px 0;float:left}.theme-details .theme-description{float:right;color:#777;line-height:20px;max-width:100%}.theme-install-overlay .wp-full-overlay-header .theme-install{float:left;margin:8px 0 0 10px;line-height:26px}.theme-install-overlay .wp-full-overlay-sidebar{background:#eee;border-left:1px solid #ddd}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.theme-install-overlay .wp-full-overlay-main{background:#fff url(../images/spinner.gif) no-repeat center center;-webkit-background-size:20px 20px;background-size:20px 20px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);-webkit-background-size:15px 123px;background-size:15px 123px}.customize-loading #customize-container,.theme-install-overlay .wp-full-overlay-main{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}}.press-this #message{border-right:4px solid #7ad03a;padding:1px 12px;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.press-this #side-sortables .category-tabs li{display:inline;line-height:1.35em}body.press-this ul.category-tabs li.tabs a{color:#333}.press-this #content-resize-handle{bottom:2px}body.press-this{color:#333;margin:0;padding:0;min-width:708px;min-height:400px}.press-this #titlediv #title{font-size:1.4em}.press-this #site-heading:before{top:3px;position:relative;display:inline-block;font:400 18px/1 dashicons;speak:none;color:#727272;content:'\f120';-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.press-this #wphead{height:32px;margin-right:0;margin-left:0;margin-bottom:5px}.press-this #header-logo{float:right;margin:7px 7px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.press-this #wphead h1{font-weight:400;font-size:16px;line-height:32px;margin:0;float:right}.press-this #wphead h1 a{text-decoration:none}.press-this #wphead h1 a:hover{text-decoration:underline}.press-this #message{margin:10px 0}.press-this .posting{margin-left:250px}.press-this-sidebar{float:left;width:240px;padding-top:10px}.press-this #title{margin-right:0;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.press-this .tagchecklist{margin-top:8px}.press-this #titlediv{margin:0}.press-this #wp-content-wrap #wp-content-editor-tools{padding:0;top:3px;overflow:hidden}.press-this .wp-media-buttons{cursor:default;padding:8px 8px 6px}.press-this #wp-content-wrap #wp-content-media-buttons a{padding:0;line-height:normal;height:auto;font-size:16px}.press-this #wp-content-wrap .mce-toolbar .mce-btn-group .mce-btn{margin:0 1px}.press-this #wp-content-wrap .mce-toolbar .mce-btn button{padding:2px 3px}.press-this #wp-content-wrap .quicktags-toolbar,.press-this #wp-content-wrap div.mce-toolbar-grp{padding-left:3px}.press-this .howto{margin-top:2px;margin-bottom:3px;font-size:12px;font-style:italic;display:block}.press-this #wp-content-editor-container{clear:none}.press-this #poststuff .inside{margin-top:18px}.press-this .category-tabs{margin-bottom:3px}.press-this #poststuff{margin:0 8px;padding:0}.press-this #photo-add-url-div input[type=text]{width:220px}#poststuff #editor-toolbar{height:30px}.posting{margin-left:212px;position:relative}.press-this .inner-sidebar{width:200px}.press-this .inner-sidebar .sleeve{padding-top:5px}.press-this #submitdiv p{margin:0;padding:6px}.press-this #submitdiv #publishing-actions{border-bottom:1px solid #dfdfdf}.press-this #publish{float:left}.press-this #poststuff h2,.press-this #poststuff h3{font-size:14px;line-height:1}.press-this #categorydiv h3,.press-this #tagsdiv-post_tag h3{cursor:pointer}.press-this #submitdiv h3{cursor:default}h3.tb{font-weight:600;font-size:12px;margin-right:5px}.press-this .postbox,.press-this .stuffbox{margin-bottom:10px;min-width:0}.press-this #submitdiv:hover .handlediv{background:0 0}.tbtitle{font-size:1.7em;outline:0;padding:3px 4px;border:1px solid #dfdfdf}.press-this .actions{float:left;margin:-19px 0 0}.press-this #extra-fields .actions{margin:-32px 0 0 -7px}.press-this .actions li{float:right;list-style:none;margin-left:10px}#extra-fields .button{margin-left:5px}#photo_saving{margin:0 8px 8px;vertical-align:middle}#img_container_container{overflow:auto}#extra-fields{margin-top:10px;position:relative}#extra-fields h2{margin:12px}#waiting{margin-top:10px;overflow:hidden}#waiting span{float:left;margin:0 5px 0 0}#waiting .spinner{display:block}#extra-fields .postbox{margin-bottom:5px}#extra-fields .titlewrap{padding:0;overflow:auto;height:120px}#img_container a{float:right;overflow:hidden}#img_container a,#img_container img{width:68px;height:68px}#img_container img{border:none;background-color:#f4f4f4;cursor:pointer}#img_container a,#img_container a:link,#img_container a:visited{border:1px solid #ccc;display:block;position:relative}#img_container a:active,#img_container a:hover{border-color:#000;z-index:1000;border-width:1px}#embed-code{width:100%;height:98px}.press-this .categorydiv div.tabs-panel{height:100px}.press-this .tagsdiv .newtag{width:120px}.press-this #content{margin:5px 0;padding:0 5px;border:0;height:340px;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:19px;background:0 0}.press-this #publishing-actions .spinner{display:inline;vertical-align:middle}@media screen and (max-width:782px){.press-this ul.category-tabs li.tabs{padding:3px 5px 5px}.press-this a.wp-switch-editor{font:13px/19px "Open Sans",sans-serif;margin:5px 5px 0 0;padding:3px 8px 4px}.press-this #wp-content-media-buttons a{padding:0;line-height:normal;height:auto}.press-this #wp-content-editor-tools{padding:0;top:3px}.press-this .category-tabs{margin-top:0}.press-this .tagsdiv .newtag{width:120px;padding:3px 5px;margin-bottom:0}.press-this .tagchecklist{padding:0;margin-bottom:0}.press-this .wp_themeSkin a.mceButton{width:20px;height:20px}.press-this .wp_themeSkin .mceButton .mceIcon{margin:0}.press-this #poststuff h3,.press-this .metabox-holder h3{padding:7px 12px}.press-this input[type=checkbox],.press-this input[type=radio]{height:16px;width:16px}.press-this input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px -4px 0 0}.press-this input[type=radio]:checked:before{font:400 21px/1 dashicons;width:6px;height:6px;margin:4px}.press-this ul.categorychecklist li,.press-this ul.categorychecklist ul{margin-top:0;margin-bottom:0}.press-this div.quicktags-toolbar input{padding:2px 4px}.press-this input,.press-this textarea{font-size:14px}.press-this .tagchecklist span{font-size:13px;line-height:1.8em}}.about-wrap{position:relative;margin:25px 20px 0 40px;max-width:1050px;font-size:15px}.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle}.about-wrap p{line-height:1.6em;font-size:14px}.about-wrap h1{margin:.2em 0 0 200px;color:#333;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h4{color:#222}.about-wrap .about-text,.about-wrap li.wp-person a.web,.about-wrap p.about-description{font-weight:400;line-height:1.6em;font-size:19px}.about-description{margin-top:1.4em}.about-text{margin:1em 0 1em 200px;min-height:60px;color:#777;font-size:24px}.about-wrap .changelog h2.about-headline-callout{margin:1.1em 0 .2em;font-size:2.4em;font-weight:300;line-height:1.3;text-align:center}.about-wrap h3{margin:1em 0 .6em;font-size:1.5em;line-height:1.5em}.about-wrap h3.higher{margin-top:.5em}.customize h3{margin-top:1.75em;text-align:center}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1.2em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap code,.about-wrap ol li p{font-size:14px}.about-wrap .button.button-large{padding:8px 20px 10px!important;height:46px!important;font-size:14px;line-height:28px!important}.about-wrap .about-overview-img{margin:0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #dfdfdf}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.wp-badge{background:#0074a2 url(../images/w-logo-white.png?ver=20131202) no-repeat center 24px;background:#0074a2 center 24px,url(../images/wordpress-logo-white.svg?ver=20131110) no-repeat center 24px;-webkit-background-size:85px 85px;background-size:85px 85px;color:#78c8e6;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:150px;text-rendering:optimizeLegibility;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.about-wrap .wp-badge{position:absolute;top:0;left:0}.about-wrap h2.nav-tab-wrapper{padding-right:6px}.about-wrap h2 .nav-tab{padding:4px 15px 6px;margin:0 0 -1px 3px;font-size:18px;vertical-align:top;border-width:1px}.about-overview{margin-top:40px;margin-bottom:40px;text-align:center}.about-overview p{margin:1em auto 50px;max-width:770px;font-size:18px;line-height:1.5;text-align:center}.about-wrap .feature-section{margin-top:40px;padding-bottom:20px}.about-wrap .feature-section.two-col>div{position:relative;width:47.6%;margin-left:4.799999999%;float:right}.about-wrap .feature-section.three-col>div{position:relative;width:29.95%;margin-left:4.999999999%;float:right}.about-wrap .feature-section.col .last-feature{margin-left:0}.about-wrap .under-the-hood .feature-section{margin-top:0}.about-wrap .changelog .feature-section{overflow:hidden}.about-wrap .feature-section.two-col div p{margin-left:3%}.about-wrap .feature-section div p img{float:left;margin-right:10px;max-width:20%}.about-video{position:relative;width:100%;height:0}.about-video-embed{padding-bottom:70.4%}.about-video-focus{padding-bottom:56.2%}.about-video .mejs-container,.about-video .wp-video,.about-video video{position:absolute;top:0;right:0;width:100%!important;height:100%!important}.about-wrap .changelog li{list-style-type:disc;margin-right:3em}.about-wrap .return-to-dashboard{margin:30px -5px 0 0;font-size:14px;font-weight:700}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h4.wp-people-group{margin-top:2.6em;font-size:16px}.about-wrap ul.wp-people-group{overflow:hidden;padding:0 5px;margin:0 -5px 0 -15px}.about-wrap ul.compact{margin-bottom:0}.about-wrap li.wp-person{float:right;margin-left:10px}.about-wrap li.wp-person img.gravatar{float:right;margin:0 0 10px 10px;padding:2px;width:60px;height:60px}.about-wrap ul.compact li.wp-person img.gravatar{width:30px;height:30px}.about-wrap li.wp-person{height:70px;width:280px;padding-bottom:15px}.about-wrap ul.compact li.wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap li.wp-person a.web{display:block;margin:6px 0 2px;font-size:16px;text-decoration:none}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:700}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:782px){.about-wrap .feature-section.one-col>div,.about-wrap .feature-section.three-col>div,.about-wrap .feature-section.two-col>div{width:100%;margin:0 0 40px;padding:0 0 40px;float:none;border-bottom:1px solid rgba(0,0,0,.1)}.about-wrap .feature-section.col>div.last-feature,.about-wrap .under-the-hood .feature-section>div{margin:0;padding:0;border-bottom:none}}@media screen and (max-width:710px){.about-overview{position:relative;padding-bottom:56.25%;width:100%;height:0}.about-overview embed{position:absolute;top:0;right:0;width:100%;height:100%}}@media only screen and (max-width:500px){.about-wrap{margin-left:20px;margin-right:10px}.about-text,.about-wrap h1{margin-left:0}.about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap h2.nav-tab-wrapper{padding-right:0;border-bottom:0}.about-wrap h2 .nav-tab{margin-top:10px;margin-left:10px;border-bottom:1px solid #ccc}.about-wrap .feature-section.three-col div{width:100%;float:none}.about-wrap .three-col.about-updates .col-1{padding:0;float:none}.about-wrap .three-col.about-updates .col-2{margin:0 0 20px;width:100%;float:none}}.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 8px 3px 5px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}#nav-menus-frame{margin-right:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-right:-300px;clear:both;float:right;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-name{height:2em}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#999;font-style:italic;font-weight:400;margin-right:4px}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus select{float:right;margin-left:6px}.manage-menus .selected-menu{float:right;margin:5px 0 0 6px}.manage-menus .submit-btn{float:right;margin-top:1px}.menu-edit p{margin:.3em 0 .6em}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings dl{margin:0 0 10px;overflow:hidden;padding-right:18%}.menu-settings dd{float:right;margin:0;width:100%}.menu-settings dt{float:right;clear:both;width:21.951%;padding:3px 0 0;margin-right:-21.951%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#999;font-size:11px}#menu-management-liquid{float:right;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-left:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #dfdfdf;margin-bottom:0}#nav-menu-header .menu-name-label{margin-top:4px}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#menu-management .menu-add-new abbr{font-weight:600}#select-nav-menu-container{text-align:left;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat td.menu-location-menus{padding-bottom:5px}.menu-location-menus select{float:right}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:right;width:160px;margin-left:5px}.locations-row-links{float:right;margin:6px 6px 0 0}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-left:3px;border-left:1px solid #ccc}#wpbody .open-label{display:block;float:right}#wpbody .open-label span{padding-left:10px}.js .input-with-default-title{color:#aaa;font-style:italic}#menu-management .inside{padding:0 10px}.accordion-container .howto input,.postbox .howto input{width:180px;float:left}.accordion-container .outer-border{margin:0}.customlinkdiv .howto input{width:180px}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:left}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}.nav-menus-php .add-new-menu-action{float:right;margin:6px 6px 0 0;line-height:15px}.nav-menus-php .meta-sep,.nav-menus-php .submitcancel,.nav-menus-php .submitdelete{display:block;float:right;margin:6px 0;line-height:15px}.meta-sep{padding:0 2px}#cancel-save{text-decoration:underline;font-size:12px;margin-right:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:left}.list-controls{float:right;margin-top:5px}.add-to-menu{float:left}.postbox .spinner{display:none;vertical-align:middle}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link .howto{font-size:12px}#add-custom-link label span{display:block;float:right;margin-top:5px;padding-left:5px}.menu-item-textbox{width:180px}.nav-menus-php .howto span{margin-top:6px;display:block;float:right}.quick-search{width:190px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-left:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #dfdfdf;position:relative;padding:10px 15px;height:auto;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-left:13em}.menu-item-handle .menu-item-title.no-title{color:#999}li.menu-item.ui-sortable-helper dl{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport dl{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item-depth-0{margin-right:0}.menu-item-depth-1{margin-right:30px}.menu-item-depth-2{margin-right:60px}.menu-item-depth-3{margin-right:90px}.menu-item-depth-4{margin-right:120px}.menu-item-depth-5{margin-right:150px}.menu-item-depth-6{margin-right:180px}.menu-item-depth-7{margin-right:210px}.menu-item-depth-8{margin-right:240px}.menu-item-depth-9{margin-right:270px}.menu-item-depth-10{margin-right:300px}.menu-item-depth-11{margin-right:330px}.menu-item-depth-0 .menu-item-transport{margin-right:0}.menu-item-depth-1 .menu-item-transport{margin-right:-30px}.menu-item-depth-2 .menu-item-transport{margin-right:-60px}.menu-item-depth-3 .menu-item-transport{margin-right:-90px}.menu-item-depth-4 .menu-item-transport{margin-right:-120px}.menu-item-depth-5 .menu-item-transport{margin-right:-150px}.menu-item-depth-6 .menu-item-transport{margin-right:-180px}.menu-item-depth-7 .menu-item-transport{margin-right:-210px}.menu-item-depth-8 .menu-item-transport{margin-right:-240px}.menu-item-depth-9 .menu-item-transport{margin-right:-270px}.menu-item-depth-10 .menu-item-transport{margin-right:-300px}.menu-item-depth-11 .menu-item-transport{margin-right:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{color:#777;font-size:12px;padding:12px 10px;line-height:18px;display:block}.item-controls{font-size:12px;position:absolute;left:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls a:hover{cursor:pointer}.item-controls .item-order{padding-left:10px}.nav-menus-php .item-edit{position:absolute;left:-20px;top:0;display:block;width:30px;height:40px;margin-left:0!important;text-indent:100%;outline:0;overflow:hidden;white-space:nowrap}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 10px 10px 0;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move a{display:none;margin:0 2px}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em auto;text-align:center}.link-to-original{display:block;margin:0 0 10px;padding:3px 5px 5px;border:1px solid #dfdfdf;color:#777;font-size:12px;font-style:italic}.link-to-original a{padding-right:4px;font-style:normal}.hidden-field{display:none}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-left:10px;float:right}.description-thin{width:190px;height:40px}.description-wide{width:390px}.menu-item-actions{padding-top:15px}#cancel-save{cursor:pointer}.nav-menus-php .major-publishing-actions{clear:both;padding:3px 0 6px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:left;float:left;line-height:23px;margin:4px 0 1px}.nav-menus-php .blank-slate .menu-settings{display:none}.nav-menus-php .delete-action{float:right;margin-top:2px}.nav-menus-php .submitbox .submitcancel{border-bottom:1px solid #0074a2;padding:1px 2px;color:#0074a2;text-decoration:none}.nav-menus-php .submitbox .submitcancel:hover{background:#0074a2;color:#fff}.nav-menus-php .major-publishing-actions .form-invalid{padding-right:4px;margin-right:-4px}#menu-item-name-wrap:after,#menu-item-url-wrap:after,#menu-name-label:after,#menu-settings-column .inside:after,#nav-menus-frame:after,.nav-menus-php #post-body-content:after,.nav-menus-php .button-controls:after,.nav-menus-php .major-publishing-actions:after,.nav-menus-php .menu-item-settings:after{clear:both;content:".";display:block;height:0;visibility:hidden}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-right:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-right:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .item-controls .item-type{margin-top:2px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}.menu-name-label #menu-name{margin-top:4px}.nav-menus-php .major-publishing-actions .publishing-action{margin-top:6px}.nav-menus-php .delete-action{font-size:14px;line-height:50px;margin-top:12px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide{width:100%;height:auto}.menu-item-settings input{width:100%}.menu-settings dl{padding-right:0}.menu-settings dd{float:none;width:100%;margin-bottom:15px}.menu-settings dt{float:none;width:auto;margin-right:0;margin-bottom:15px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}}.widget{margin:0 auto 10px;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.widget-top{font-size:13px;font-weight:600;background:#f7f7f7}.widget-top a.widget-action,.widget-top a.widget-action:hover{-webkit-box-shadow:none;box-shadow:none;outline:0;text-decoration:none}.widget-title h4{margin:0;padding:15px;line-height:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.widgets-holder-wrap .widget-inside{border-top:none;padding:1px 15px 15px;line-height:16px}#available-widgets .widget-description,#widgets-right a.widget-control-edit,.in-widget-title{color:#666}.deleting .widget-title,.deleting .widget-top a.widget-action:after{color:#aaa}.widget.ui-draggable-dragging{min-width:100%}.widget.ui-sortable-helper{opacity:.8}.widget-placeholder{border:1px dashed #bbb;margin:0 auto 10px;height:45px;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#widgets-right .widget-placeholder{margin-top:0}#widgets-right .closed .widget-placeholder{height:0;border:0;margin-top:-10px}.sidebar-name{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sidebar-name-arrow{position:absolute;top:0;left:0;bottom:0}.js .sidebar-name{cursor:pointer}.sidebar-name h3{margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap}.widgets-holder-wrap .description{padding:0 0 15px;margin:0;font-style:normal;color:#777}#widgets-right .widgets-holder-wrap .description{padding-right:7px;padding-left:7px}div.widget-liquid-left{margin:0;width:38%;float:right}div.widget-liquid-right{float:left;width:58%}div#widgets-left{padding-top:12px}div#widgets-left .closed .sidebar-name,div#widgets-left .inactive-sidebar.closed .sidebar-name{margin-bottom:10px}div#widgets-left .sidebar-name h3{padding:10px 0;margin:0 0 0 10px}div#widgets-left .sidebar-name .sidebar-name-arrow:before{left:0;top:4px;padding:4px 4px 4px 6px}#widgets-left #available-widgets,div#widgets-left .widget-holder{background:0 0;border:none}#widgets-left .widgets-holder-wrap{border:none;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-action{display:none}#available-widgets .widget{margin:0}#available-widgets .widget:nth-child(odd){clear:both}#available-widgets .widget .widget-description{display:block;padding:10px 15px;font-size:12px}#available-widgets #widget-list{position:relative}#widgets-left .inactive-sidebar{clear:both;width:100%;background:0 0;padding:0;margin:0 0 20px;border:none;-webkit-box-shadow:none;box-shadow:none}#widgets-left .inactive-sidebar.first{margin-top:40px}div#widgets-left .inactive-sidebar .widget.expanded{right:auto}.widget-title-action{float:left;position:relative}div#widgets-left .inactive-sidebar .widgets-sortables{min-height:42px;padding:0;background:0 0;margin:0;position:relative}div#widgets-right:after{content:".";display:block;height:0;clear:both;visibility:hidden}div#widgets-right .sidebars-column-1,div#widgets-right .sidebars-column-2{max-width:450px}div#widgets-right .widgets-holder-wrap{margin:10px 0 0}div#widgets-right .sidebar-description{min-height:20px;margin-top:-5px}div#widgets-right .sidebar-name h3{padding:15px 7px}div#widgets-right .sidebar-name .sidebar-name-arrow:before{left:0;top:4px}div#widgets-right .widget-top{padding:0}div#widgets-right .widgets-sortables{padding:0 8px;margin-bottom:9px;position:relative;min-height:123px}div#widgets-right .closed .widgets-sortables{min-height:0;margin-bottom:0}.sidebar-name .spinner{margin:-5px 5px;float:none}#widgets-right .widgets-holder-wrap.widget-hover{border-color:#777;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}.widgets_access #widgets-left .widget .widget-top{cursor:auto}.widgets_access #wpwrap .widget-control-edit,.widgets_access #wpwrap .widgets-holder-wrap.closed .sidebar-description,.widgets_access #wpwrap .widgets-holder-wrap.closed .widget{display:block}.widgets_access #widgets-left .widget .widget-top:hover,.widgets_access #widgets-right .widget .widget-top:hover{border-color:#ddd}#available-widgets .widget-control-edit .edit,#widgets-left .inactive-sidebar .widget-control-edit .add,#widgets-right .widget-control-edit .add{display:none}.widget-control-edit{display:block;color:#666;background:#EEE;padding:0 15px;line-height:43px;border-right:1px solid #DDD}#widgets-left .widget-control-edit:hover,#widgets-right .widget-control-edit:hover{color:#fff;background:#444;border-right:0;outline:#444 solid 1px}.widgets-holder-wrap .sidebar-description,.widgets-holder-wrap .sidebar-name{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.editwidget{margin:0 auto}.editwidget .widget-inside{display:block;padding:0 15px}.editwidget .widget-control-actions{margin-top:20px}.js .closed br.clear,.js .widgets-holder-wrap.closed .sidebar-description,.js .widgets-holder-wrap.closed .widget,.widget-description,.widget-inside{display:none}.widget-inside{background:#fff}#removing-widget{display:none;font-weight:400;padding-right:15px;font-size:12px;line-height:1;color:#000}.js #removing-widget{color:#2ea2cc}#access-off,.no-js .widget-holder .description,.widget-control-noform,.widgets_access #access-on,.widgets_access .sidebar-name-arrow,.widgets_access .widget-action,.widgets_access .widget-holder .description{display:none}.widgets_access #widget-list,.widgets_access .widget-holder{padding-top:10px}.widgets_access #access-off{display:inline}.widgets_access .sidebar-name,.widgets_access .widget .widget-top{cursor:default}.widget-liquid-left #widgets-left.chooser #available-widgets .widget,.widget-liquid-left #widgets-left.chooser .inactive-sidebar{-webkit-transition:opacity .1s linear;transition:opacity .1s linear;opacity:.2;pointer-events:none}.widget-liquid-left #widgets-left.chooser #available-widgets .widget-in-question{opacity:1;pointer-events:auto}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.widgets-chooser ul.widgets-chooser-sidebars{margin:0;list-style-type:none;max-height:300px;overflow:auto}.widgets-chooser{display:none}.widgets-chooser ul{border:1px solid #ccc}.widgets-chooser li{padding:10px 35px 10px 15px;border-bottom:1px solid #ccc;background:#fff;margin:0;cursor:pointer;outline:0;position:relative;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.widgets-chooser li:focus,.widgets-chooser li:hover{background:rgba(255,255,255,.7)}.widgets-chooser li:focus:before{content:'\f147';display:block;-webkit-font-smoothing:antialiased;font:400 26px/1 dashicons;color:#999;position:absolute;top:7px;right:5px}.widgets-chooser li:last-child{border:none}.widgets-chooser li.widgets-chooser-selected{background:#2ea2cc;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{content:'\f147';display:block;-webkit-font-smoothing:antialiased;font:400 26px/1 dashicons;color:#fff;position:absolute;top:7px;right:5px}.widgets-chooser .widgets-chooser-actions{padding:10px 0 12px;text-align:center}.widgets-chooser button{margin-left:5px}#available-widgets .widget .widget-top{cursor:pointer}@media screen and (max-width:480px){div.widget-liquid-left{width:100%;float:none;border-left:none;padding-left:0}#widgets-left #available-widgets .widget-top,#widgets-left .inactive-sidebar .widgets-sortables,#widgets-left .sidebar-name{margin-left:0}div.widget-liquid-right{width:100%;float:none}div.widget{margin:0 auto 10px!important;max-width:480px}}@media screen and (max-width:320px){div.widget{max-width:320px}}@media only screen and (min-width:1250px){#widgets-left #available-widgets .widget{width:49%;float:right}.widget.ui-draggable-dragging{min-width:49%}#widgets-left #available-widgets .widget:nth-child(even){float:left}#widgets-right .sidebars-column-1,#widgets-right .sidebars-column-2{float:right;width:49%}#widgets-right .sidebars-column-1{margin-left:2%}#widgets-right.single-sidebar .sidebars-column-1,#widgets-right.single-sidebar .sidebars-column-2{float:none;width:100%;margin:0}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:700}.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de .inline-edit-row fieldset label span.title{width:7em}.locale-de-de .inline-edit-row fieldset label span.input-text-wrap{margin-right:7em}.locale-de-de #customize-header-actions .button{padding:0 5px 1px}.locale-de-de #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru .inline-edit-row fieldset label span.title{width:8em}.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-left:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}
\ No newline at end of file
index 15ded2f9236cb9d57bf165dc769a5e667137a539..694691b79d1be69c249898eccb5ddc579ce0305a 100644 (file)
@@ -1 +1 @@
-#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%}#wpcontent,#wpfooter{margin-left:180px}.folded #wpcontent,.folded #wpfooter{margin-left:56px}#wpbody-content{padding-bottom:65px;float:left;width:100%;overflow:visible!important}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-container,#col-left,#col-right{overflow:hidden;padding:0;margin:0}#col-left{width:35%}#col-right{float:right;clear:right;width:65%}.col-wrap{padding:0 7px}.alignleft{float:left}.alignright{float:right}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{left:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}html{background:#f1f1f1}body{color:#444;font-family:"Open Sans",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0074a2;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#2ea2cc}a:focus{color:#124964}a:active,a:focus{outline:thin dotted}#adminmenu a:active,#adminmenu a:focus,.screen-reader-text:focus{outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2{color:#222;font-size:1.5em;margin:.83em 0;font-weight:400}h3{color:#222;font-size:1.3em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc outside}ul.ul-square{list-style:square outside}ol.ol-decimal{list-style:decimal outside}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-left:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.ltr{direction:ltr}.code,code{font-family:Consolas,Monaco,monospace;direction:ltr}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;float:left;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#999;font-weight:400}.subsubsub a.current{font-weight:600;border:0}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:0}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat th{text-align:left;line-height:1.3em;font-size:14px}.widefat th input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.widefat th input[type=checkbox]{margin-top:-1px}.widefat.media .check-column{padding-top:8px}.widefat tbody th.check-column,.widefat tfoot th.check-column,.widefat thead th.check-column{padding:11px 0 0 3px}.widefat thead th.check-column{padding-top:10px}.update-php div.error,.update-php div.updated{margin-left:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 20px 0 2px}div.error,div.updated{margin:5px 15px 2px}div.error p,div.updated p{margin:.5em 0;padding:2px}.media-upload-form div.error,.wrap div.error,.wrap div.updated{margin:5px 0 15px}div.updated{border-left:4px solid #7ad03a;padding:1px 12px;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}div.error{border-left:4px solid #dd3d36;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:1px 12px}.attention{color:#2ea2cc}.subtitle,.wrap h2{font-weight:400;margin:0}.wrap h2{font-size:23px;font-weight:400;padding:9px 15px 4px 0;line-height:29px}.subtitle{color:#777;font-size:14px;padding-left:25px}.wrap .add-new-h2,.wrap .add-new-h2:active{margin-left:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:0;-webkit-border-radius:2px;border-radius:2px;background:#e0e0e0;text-shadow:none;font-weight:600;font-size:13px}.wrap .add-new-h2:hover{background:#2ea2cc;color:#fff}.wrap h2.long-header{padding-right:0}.wp-dialog{background-color:#fff}.sorthelper{background-color:#ccf3fa}.ac_match,.subsubsub a.current{color:#000}.alt,.alternate{background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-right-color:#99d}.media-upload-form label.form-help,td.help{color:#9a9a9a}.highlight{background-color:#e4f2fd;color:#000}.wp-ui-primary{color:#fff;background-color:#333}.wp-ui-text-primary{color:#333}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#999}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox h3,.side-info,.sidebar-name,.stuffbox h3,.widefat tfoot th,.widefat thead th,.widget .widget-top,h3.dashboard-widget-title,h3.dashboard-widget-title small,h3.dashboard-widget-title span{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#222}#namediv h3,#submitdiv h3,.postbox h3{border-bottom:1px solid #eee}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,#welcome-panel.welcome-panel .welcome-panel-close::before,.tagchecklist span a:before{background:0 0;color:#bbb;content:'\f153';display:block!important;font:400 16px/1 dashicons;speak:none;height:20px;margin:2px 0;text-align:center;width:20px;-webkit-font-smoothing:antialiased!important}#bulk-titles div a:hover:before,#welcome-panel.welcome-panel .welcome-panel-close:hover:before,.tagchecklist span a:hover:before{color:#c00}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap;word-wrap:break-word}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,.widget-control-remove:hover,abbr.required{color:red;text-decoration:none;border:0}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{line-height:28px;vertical-align:middle;text-align:left;float:left}#publishing-action{text-align:right;float:right;line-height:23px}#publishing-action .spinner{float:left}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:right}#save-post{float:left}.preview{float:right}#sticky-span{margin-left:18px}.side-info{margin:0;padding:4px;font-size:11px}.side-info h5{padding-bottom:7px;font-size:14px;margin:12px 2px 5px;border-bottom:1px solid #dadada}.side-info ul{margin:0;padding-left:18px;list-style:square;color:#666}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:right}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:left;margin:25px 20px 0 2px;background-color:#fff;border-left:4px solid #ffba00;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.update-message{color:#000}.update-php .spinner{float:none;margin:-4px 0}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-left:2em}#adminmenu a,#catlist a,#sidemenu a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-left:0!important}#screen-meta .screen-reader-text{visibility:hidden}#screen-meta-links{margin:0 20px 0 0}#screen-meta-links a{padding:3px 6px 3px 16px}#screen-meta-links a:focus{outline:0}#screen-meta{display:none;margin:0 20px -1px 0;position:relative;background-color:#fff;border:1px solid #ddd;border-top:0;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.025);box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:right;height:28px;margin:0 0 0 6px;border:1px solid #ddd;border-top:0;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links a{color:#777}#screen-meta-links a:active,#screen-meta-links a:focus,#screen-meta-links a:hover{color:#333}#screen-meta-links a:focus{border-color:#aaa;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.15);box-shadow:0 2px 3px rgba(0,0,0,.15)}#screen-meta-links a.show-settings{display:block;font-size:13px;height:22px;line-height:22px;text-decoration:none;z-index:1}#screen-meta-links a:after{right:0;content:'\f140';font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 5px 0 0;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#bbb}#screen-meta-links a.screen-meta-active:after{content:'\f142'}#screen-meta-links a.show-settings:hover{text-decoration:none}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5{margin:8px 0;font-size:13px}.metabox-prefs label{display:inline-block;padding-right:15px;line-height:30px}.metabox-prefs label input[type=checkbox]{margin-top:-4px;margin-right:6px}.metabox-prefs label input{margin:0 5px 0 2px}.metabox-prefs .columns-prefs label input{margin:0 2px}.metabox-prefs label a{display:none}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border:1px solid #e1e1e1;border-top:0;border-bottom:0;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 0 0 2px;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:18px;text-decoration:none;border:1px solid transparent;border-right:0;border-left:0}.contextual-help-tabs a:hover{color:#333}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-left:2px solid #2ea2cc;background:#f6fbfd;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02);box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#333}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}html.wp-toolbar{padding-top:32px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.narrow{width:70%;margin-bottom:40px}.narrow p{line-height:150%}.widefat td,.widefat th{overflow:hidden;color:#555}.widefat th{font-weight:400}.widefat tfoot tr th,.widefat thead tr th{color:#333}.widefat td p{margin:2px 0 .8em}.widefat ol,.widefat p,.widefat ul{color:#333}.widefat .column-comment p{margin:.6em 0}.postbox-container{float:left}.postbox-container .meta-box-sortables{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #bbb;height:250px}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0 none;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:left}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0 none;height:0;min-height:0}}.js .postbox .hndle{cursor:move}.hndle a{font-size:11px;font-weight:400}.postbox .handlediv{float:right;width:27px;height:30px}.js .postbox .handlediv{cursor:pointer}.sortable-placeholder{border:1px dashed #bbb;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox h3,.stuffbox h3{margin-top:1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .postbox h3,.js .widget .widget-top{cursor:move}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:0;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{-webkit-box-shadow:none;box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 5px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.plugins .name{font-weight:600}#wpfooter{position:absolute;bottom:0;left:0;right:0;padding:10px 0;margin-right:20px;color:#777}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}#wpfooter a{text-decoration:none}#wpfooter a:hover{text-decoration:underline}.nav-tab{border:1px solid #ccc;border-bottom:0;background:#e4e4e4;color:#555;font-size:12px;line-height:16px;display:inline-block;padding:4px 14px 6px;text-decoration:none;margin:-4px 4px -1px 0}.nav-tab:hover{background-color:#fff;color:#464646}.nav-tab-active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}h2.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom:1px solid #ccc;padding-bottom:0;padding-left:10px}h2 .nav-tab{padding:6px 10px;font-weight:700;font-size:15px;line-height:24px}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:right;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}#template div{margin-right:190px}.metabox-holder h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#templateside ul li a{text-decoration:none}#sidemenu{margin:-30px 15px 0 315px;list-style:none;position:relative;float:right;padding-left:10px;font-size:12px}#sidemenu a{padding:0 7px;display:block;float:left;line-height:28px;border-top:1px solid #f9f9f9;border-bottom:1px solid #dfdfdf;background-color:#f9f9f9;-webkit-transition:none;transition:none}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:400;padding-left:6px;padding-right:6px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;border:1px solid #dfdfdf;border-bottom-color:#f1f1f1;background-color:#f1f1f1;color:#000}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:left}.error-message{color:red;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}td.media-icon{text-align:center;width:80px;padding-top:8px;padding-bottom:8px}td.media-icon img{max-width:80px;max-height:60px}#howto{font-size:11px;margin:0 5px;display:block}.importers td{padding-right:14px}.importers{font-size:16px;width:auto}#post-body #post-body-content #namediv h3{margin-top:0}#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:0;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) repeat-x bottom left}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) repeat-x top left;height:17px;float:left}.star-rating{white-space:nowrap}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center;color:#0074a2}.star-rating .star-full:before{content:'\f155'}.star-rating .star-half:before{content:'\f459'}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:'\f154'}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fcfcfc;position:fixed;top:0;right:0;bottom:0;left:0;height:auto;padding:0}#plugin-information-title{padding:0 76px 0 20px;font-size:22px;font-weight:600;line-height:56px;top:0;right:0;left:0;height:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-tabs{padding:0 16px;position:absolute;top:56px;right:0;left:0;height:36px;z-index:1}#plugin-information-tabs a{position:relative;float:left;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;-webkit-transition:none;transition:none}#plugin-information-tabs a.current{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:0;color:#333}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd;position:absolute;top:90px;right:0;bottom:58px;left:0}#section-holder{margin:0;padding:10px 26px;position:absolute;top:0;right:250px;bottom:0;left:0;overflow:auto}#section-holder .updated{margin:16px 0}#plugin-information .fyi{background:#f3f3f3;border-left:1px solid #ddd;color:#666;padding:16px;position:absolute;top:0;right:0;bottom:0;width:217px;overflow:auto}#plugin-information .fyi strong{color:#464646}#plugin-information .fyi h3{font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information-footer{padding:15px 16px;position:absolute;right:0;bottom:0;left:0;height:28px}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}.plugin-version-author-uri{font-size:13px}@media screen and (max-width:782px){#plugin-information-content{overflow:auto;bottom:58px}#plugin-information .fyi{border:1px solid #ddd;position:static;width:auto;margin:26px 26px 16px}#section-holder{position:static}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc url( ../images/spinner.gif ) no-repeat center}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc url( ../images/spinner-2x.gif ) no-repeat center;-webkit-background-size:20px 20px;background-size:20px 20px}}body.import-php #TB_title,body.index-php #TB_title,body.plugin-install-php #TB_title,body.plugins-php #TB_title,body.update-core-php #TB_title{float:left;height:1px}body.import-php #TB_ajaxWindowTitle,body.index-php #TB_ajaxWindowTitle,body.plugin-install-php #TB_ajaxWindowTitle,body.plugins-php #TB_ajaxWindowTitle,body.update-core-php #TB_ajaxWindowTitle{display:none}body.import-php .tb-close-icon,body.index-php .tb-close-icon,body.plugin-install-php .tb-close-icon,body.plugins-php .tb-close-icon,body.update-core-php .tb-close-icon{line-height:48px;width:48px;height:48px}body.import-php .tb-close-icon:before,body.index-php .tb-close-icon:before,body.plugin-install-php .tb-close-icon:before,body.plugins-php .tb-close-icon:before,body.update-core-php .tb-close-icon:before{line-height:48px}img{border:0}#wphead{border-bottom:1px solid #dfdfdf}#wphead h1 a{color:#464646}.js .meta-box-sortables .postbox:hover .handlediv{margin-right:0!important}.js .meta-box-sortables .postbox .handlediv:before,.js .sidebar-name .sidebar-name-arrow:before{right:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js #widgets-left .sidebar-name .sidebar-name-arrow{display:none}.js #widgets-left .sidebar-name:hover .sidebar-name-arrow,.js #widgets-left .widgets-holder-wrap.closed .sidebar-name .sidebar-name-arrow{display:block}.js .meta-box-sortables .postbox .handlediv:before,.js .sidebar-name .sidebar-name-arrow:before{content:'\f142'}.js .meta-box-sortables .postbox.closed .handlediv:before,.js .widgets-holder-wrap.closed .sidebar-name-arrow:before{content:'\f140'}.error a{text-decoration:underline}.updated a{text-decoration:none;padding-bottom:2px}#photo-add-url-div input[type=text]{width:300px}.alignleft h3{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;width:97%;background:#f9f9f9;outline:0}#docs-list,#template textarea{direction:ltr}#template p{width:97%}#templateside{float:right;width:190px;word-wrap:break-word}#postcustomstuff p.submit,#templateside h3{margin:0}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em 0;padding:0}#templateside li{margin:4px 0}#templateside a,.theme-editor-php .highlight{display:block;padding:3px 3px 3px 12px;text-decoration:none}.theme-editor-php .highlight{margin:-3px 3px -3px -12px}#templateside .highlight{border:0;font-weight:700}.nonessential{color:#666;font-size:11px;font-style:italic;padding-left:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top a.widget-action:after{right:0;content:'\f140';border:0;background:0 0;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.accordion-section-title:after,.handlediv,.item-edit,.sidebar-name-arrow,.widget-action{color:#aaa}.accordion-section-title:hover:after,.handlediv:hover,.item-edit:hover,.sidebar-name:hover .sidebar-name-arrow,.widget-action:hover{color:#777}.widget-top a.widget-action:after{padding:12px 12px 0}.nav-menus-php .item-edit:before{line-height:2.1}.accordion-section-title:after,.control-section .accordion-section-title:after{float:right;right:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before{content:'\f142'}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.menu.ui-sortable,.meta-box-sortables.ui-sortable,.widgets-holder-wrap .ui-draggable,.widgets-holder-wrap .ui-sortable{-ms-touch-action:auto;touch-action:auto}.menu.ui-sortable .menu-item-handle,.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.accordion-section{border-bottom:1px solid #dfdfdf;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#dfdfdf}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-left:1px solid #dfdfdf;border-right:1px solid #dfdfdf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;right:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#aaa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title{border-left:0;border-right:0;padding:10px 10px 11px 14px;line-height:21px;background:#fff}.control-section .accordion-section-title:after{top:11px}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#222;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #dfdfdf}@media only screen and (min-width:769px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:860px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (min-width:980px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:768px){#col-left,#col-right{width:100%}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) repeat-x bottom left;-webkit-background-size:21px 37px;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.sidebar-name:hover .sidebar-name-arrow,.tagchecklist span a,.tagchecklist span a:hover,.widget-top a.widget-action,.widget-top a.widget-action:hover{background:none!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpwrap{background:#f0f0f0}#wpcontent{position:relative;margin-left:0;padding-left:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-right:12px;margin-left:0}.col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}.wrap .add-new-h2,.wrap .add-new-h2:active{padding:10px 15px;font-size:14px}.wp-color-result{height:auto;padding-left:45px}.wp-color-result:after{font-size:14px;height:auto;padding:6px 14px}.media-upload-form div.error,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{right:-190px}.postbox{font-size:14px}.metabox-holder h3{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside{float:none;width:auto}#templateside li{margin:0}#templateside li a{display:block;padding:5px}#templateside .highlight{padding:5px;margin-left:-5px;margin-top:-5px}#template div{float:none;margin:0;width:auto}#template textarea{width:100%}.fileedit-sub .alignright{margin-top:15px}#comments-form .checkforspam,#wpfooter{display:none}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}div#post-body.metabox-holder.columns-1{overflow-x:hidden}}input,input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=url],textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=email],input[type=url]{direction:ltr}input[type=checkbox],input[type=radio]{border:1px solid #bbb;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#888}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#2ea2cc}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=checkbox]:checked:before,input[type=radio]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:'\f147';margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:'\2022';text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}input.readonly,textarea.readonly{background-color:#ddd}@-moz-document url-prefix(){.form-table input.tog,input[type=checkbox],input[type=radio]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;padding:3px 5px;line-height:15px;-webkit-border-radius:0;border-radius:0}textarea{overflow:auto;padding:2px 6px;line-height:1.4}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=url],select,textarea{outline:0}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}select[disabled]{color:#7f7f7f}input[type=checkbox]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.form-input-tip{color:#666}input.disabled,input:disabled,textarea.disabled,textarea:disabled{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);border-color:rgba(222,222,222,.75);background:rgba(255,255,255,.5);color:rgba(51,51,51,.5)}input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px;vertical-align:middle}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:0}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:0;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:0;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}#adduser .form-field input,input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}#upload-form label{color:#777}#your-profile label+a,fieldset label,label{vertical-align:middle}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:'\f173';display:inline-block;font:400 20px/1 dashicons;speak:none;left:-1px;padding:0 5px 0 0;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass-strength-result{background-color:#eee;border:1px solid #ddd;float:left;margin:13px 5px 5px 1px;padding:3px 5px;text-align:center;width:200px;display:none}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c}.indicator-hint{padding-top:8px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}#search-plugins input[name="s"],.search-box input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}input[type=text].ui-autocomplete-loading{background:transparent url(../images/loading.gif) no-repeat right center;visibility:visible}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete-input.open{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:1px solid #aaa;background-color:#efefef}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:left}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px;color:#444}.ui-autocomplete li a.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th,.form-wrap label{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#222;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:0}.color-option{cursor:pointer}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.pressthis{margin:20px 0}.pressthis a,.pressthis a:active,.pressthis a:focus,.pressthis a:hover{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis a span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis a span:before{color:#777;font:400 20px/1 dashicons;content:'\f157';position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}#local-time,#utc-time{padding-left:25px;font-style:italic}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input.code{padding-bottom:5px;padding-top:10px}.widefat th input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat th input[type=checkbox]{margin-bottom:8px}.widefat th input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 Dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table input[type=text].small-text,input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{padding:4px 0 0;line-height:1.4em}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{padding-top:8px;padding-left:0}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#utc-time{margin-top:10px}#local-time,#utc-time{display:block;float:none;padding:0;line-height:2}}@media only screen and (max-width:768px){.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media screen and (max-width:600px){.color-option{width:49%}}#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:160px;background-color:#222}#adminmenuback{position:absolute;top:0;bottom:0;z-index:-1}#adminmenu{clear:left;margin:12px 0 0;padding:0;list-style:none}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:36px}.icon16{height:18px;width:18px;padding:6px;margin:-6px 0 0 -8px;float:left}.icon16:before{color:#999;font:400 20px/1 dashicons;speak:none;padding:6px 0;height:34px;width:20px;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.icon16.icon-dashboard:before{content:'\f226'}.icon16.icon-post:before{content:'\f109'}.icon16.icon-media:before{content:'\f104'}.icon16.icon-links:before{content:'\f103'}.icon16.icon-page:before{content:'\f105'}.icon16.icon-comments:before{content:'\f101';margin-top:1px}.icon16.icon-appearance:before{content:'\f100'}.icon16.icon-plugins:before{content:'\f106'}.icon16.icon-users:before{content:'\f110'}.icon16.icon-tools:before{content:'\f107'}.icon16.icon-settings:before{content:'\f108'}.icon16.icon-site:before{content:'\f112'}.icon16.icon-generic:before{content:'\f111'}.icon16.icon-appearance,.icon16.icon-comments,.icon16.icon-dashboard,.icon16.icon-generic,.icon16.icon-links,.icon16.icon-media,.icon16.icon-page,.icon16.icon-plugins,.icon16.icon-post,.icon16.icon-settings,.icon16.icon-site,.icon16.icon-tools,.icon16.icon-users,.menu-icon-appearance div.wp-menu-image,.menu-icon-comments div.wp-menu-image,.menu-icon-dashboard div.wp-menu-image,.menu-icon-generic div.wp-menu-image,.menu-icon-links div.wp-menu-image,.menu-icon-media div.wp-menu-image,.menu-icon-page div.wp-menu-image,.menu-icon-plugins div.wp-menu-image,.menu-icon-post div.wp-menu-image,.menu-icon-settings div.wp-menu-image,.menu-icon-site div.wp-menu-image,.menu-icon-tools div.wp-menu-image,.menu-icon-users div.wp-menu-image{background-image:none!important}#adminmenuwrap{position:relative;float:left}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px;color:#eee}#adminmenu .wp-submenu a{color:#bbb}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover{background:0 0}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a:hover,#adminmenu li.menu-top>a:focus{color:#2ea2cc}#adminmenu li.menu-top{border:0;min-height:34px;position:relative}#adminmenu .wp-submenu{list-style:none;position:absolute;top:-1000em;left:160px;overflow:visible;word-wrap:break-word}#adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{padding:7px 0 8px;z-index:9999;background-color:#333;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}#adminmenu a.menu-top:focus+.wp-submenu,.js #adminmenu .opensub .wp-submenu,.js #adminmenu .sub-open,.no-js li.wp-has-submenu:hover .wp-submenu{top:-1px}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.no-js li.wp-has-current-submenu:hover .wp-submenu{position:relative;z-index:3;top:auto;left:auto;right:auto;bottom:auto;border:0 none;margin-top:0;-webkit-box-shadow:none;box-shadow:none;background-color:#333}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{position:relative;background-color:#111}.folded #adminmenu li.menu-top:hover,.folded #adminmenu li.opensub>a.menu-top,.folded #adminmenu li>a.menu-top:focus{z-index:10000}#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu .wp-menu-arrow,#adminmenu .wp-menu-arrow div,#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu{background:#0074a2;color:#fff}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{top:0;left:36px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:160px;width:auto}#adminmenu .wp-submenu a{font-size:13px;line-height:1.2;margin:0;padding:6px 0}#adminmenu .opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-not-current-submenu li>a,.folded #adminmenu .wp-has-current-submenu li>a{padding-right:16px;padding-left:14px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu .wp-has-current-submenu ul>li>a,.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:6px 12px}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{font-size:14px;font-weight:400;line-height:18px;padding:0}#adminmenu .wp-submenu-head,.folded #adminmenu .wp-menu-name{display:none}.folded #adminmenu .wp-submenu-head{display:block}#adminmenu .wp-submenu li{padding:0;margin:0;overflow:hidden}#adminmenu .wp-menu-image img{padding:9px 0 0;opacity:.6;filter:alpha(opacity=60)}#adminmenu div.wp-menu-name{padding:8px 0}#adminmenu div.wp-menu-image{float:left;width:36px;height:34px;margin:0;text-align:center}#adminmenu div.wp-menu-image.svg{background-repeat:no-repeat;background-position:center;-webkit-background-size:20px auto;background-size:20px auto}div.wp-menu-image:before{color:#999;padding:7px 0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu .current div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before{color:#fff}#adminmenu li:hover div.wp-menu-image:before{color:#2ea2cc}.folded #adminmenu div.wp-menu-image{width:35px;height:30px;position:absolute;z-index:25}.folded #adminmenu a.menu-top{height:34px}.no-font-face #adminmenu .wp-menu-image{display:none}.no-font-face #adminmenu div.wp-menu-name{padding:8px 12px}.no-font-face.auto-fold #adminmenu .wp-menu-name{margin-left:0}.sticky-menu #adminmenuwrap{position:fixed;z-index:9999}.wp-menu-arrow{display:none!important}ul#adminmenu a.wp-has-current-submenu{position:relative}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{right:0;border:solid 8px transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#f1f1f1;top:50%;margin-top:-8px}.folded ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.folded ul#adminmenu a.wp-has-current-submenu:after,.folded ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{right:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;top:10px;z-index:10000}.folded ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:18px}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#333}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:5px;padding:0;margin:0 0 6px;cursor:inherit}#adminmenu div.separator{height:2px;padding:0}#adminmenu .wp-submenu .wp-submenu-head{color:#fff;font-weight:400;font-size:14px;padding:8px 4px 8px 11px;margin:-7px 0 4px}#adminmenu li.current,.folded #adminmenu li.wp-menu-open{border:0 none}#adminmenu .awaiting-mod,#adminmenu .update-plugins,#sidemenu li a span.update-plugins{display:inline-block;background-color:#d54e21;color:#fff;font-size:9px;line-height:17px;font-weight:600;margin:1px 0 0 2px;vertical-align:top;-webkit-border-radius:10px;border-radius:10px;z-index:26}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span,#sidemenu li a span.update-plugins span{display:block;padding:0 6px}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod{background-color:#2ea2cc;color:#fff}#adminmenu li span.count-0,#sidemenu li a .count-0{display:none}#collapse-menu{font-size:13px;line-height:34px;margin-top:10px;color:#aaa;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#collapse-menu:hover,#collapse-menu:hover #collapse-button div:after{color:#2ea2cc}.folded #collapse-menu span{display:none}#collapse-button,#collapse-button div{width:15px;height:15px}#collapse-button{float:left;height:15px;margin:10px 8px 10px 11px;width:15px;-webkit-border-radius:10px;border-radius:10px}#wpwrap #collapse-button div{padding:0}#collapse-button div:after{content:'\f148';display:block;line-height:15px;left:-3px;top:-3px;color:#aaa;font:400 20px/1 dashicons!important;speak:none;margin:0 auto;padding:0!important;position:relative;text-align:center;width:20px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folded #collapse-button div:after,.rtl #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.folded #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}li#wp-admin-bar-menu-toggle{display:none}@media only screen and (max-width:900px){.auto-fold #wpcontent,.auto-fold #wpfooter{margin-left:56px}.auto-fold #adminmenu,.auto-fold #adminmenu li.menu-top,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:36px}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{top:0;left:36px}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu,.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em;margin-right:-1px;padding:7px 0 8px;z-index:9999}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{min-width:150px;width:auto}.auto-fold #adminmenu .wp-has-current-submenu li>a{padding-right:16px;padding-left:14px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-left:12px}.auto-fold #adminmenu .wp-menu-name{display:none}.auto-fold #adminmenu .wp-submenu-head{display:block}.auto-fold #adminmenu div.wp-menu-image{height:30px;width:34px;position:absolute;z-index:25}.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.wp-menu-open{border:0 none}.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:16px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}.auto-fold #adminmenu li.menu-top:hover,.auto-fold #adminmenu li.opensub>a.menu-top,.auto-fold #adminmenu li>a.menu-top:focus{z-index:10000}.auto-fold #collapse-menu span{display:none}.auto-fold #collapse-button div{background:0 0}.auto-fold #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.auto-fold #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}}@media screen and (max-width:782px){.auto-fold #wpcontent{position:relative;margin-left:0;padding-left:10px}.sticky-menu #adminmenuwrap{position:relative;z-index:auto;top:0}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{position:absolute;width:190px;z-index:100}.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{display:none}.auto-fold .wp-responsive-open #adminmenuback,.auto-fold .wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu li.menu-top{width:100%}.auto-fold #adminmenu li a{font-size:16px;padding:5px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding:10px 10px 10px 20px}.auto-fold #adminmenu .wp-menu-name{display:block;margin-left:35px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li.current>a.current:after{border-width:8px;margin-top:-8px}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{display:none}#adminmenu .wp-submenu{position:relative;display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu{position:relative;display:block;top:0;left:-1px;-webkit-box-shadow:none;box-shadow:none}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .selected .wp-submenu:after,.auto-fold #adminmenu .wp-menu-open .wp-submenu:after{display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:block}.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{position:relative;left:-1px;right:0;top:0}#adminmenu .wp-submenu .wp-submenu-head{display:none}#wp-responsive-toggle{position:fixed;top:5px;left:4px;padding-right:10px;z-index:99999;border:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpadminbar #wp-admin-bar-menu-toggle a{display:block;padding:0;overflow:hidden;outline:0;text-decoration:none;border:1px solid transparent;background:0 0;height:44px;margin-left:-1px}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#333}li#wp-admin-bar-menu-toggle{display:block}#wpadminbar #wp-admin-bar-menu-toggle a:hover{border:1px solid transparent}#wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{content:'\f228';display:inline-block;float:left;font:400 40px/45px Dashicons;vertical-align:middle;outline:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:44px;width:50px;padding:0;border:0;text-align:center;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}@media screen and (max-width:600px){#adminmenuback,#adminmenuwrap{display:none}.wp-responsive-open #adminmenuback,.wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu{top:46px}}#wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody-content #dashboard-widgets.columns-2 .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets.columns-2 #postbox-container-2,#wpbody-content #dashboard-widgets.columns-2 #postbox-container-3,#wpbody-content #dashboard-widgets.columns-2 #postbox-container-4{float:right;width:50.5%}#wpbody-content #dashboard-widgets.columns-3 .postbox-container{width:33.5%}#wpbody-content #dashboard-widgets.columns-3 #postbox-container-1{width:33%}#wpbody-content #dashboard-widgets.columns-3 #postbox-container-3,#wpbody-content #dashboard-widgets.columns-3 #postbox-container-4{float:right}#dashboard-widgets .postbox-container,#wpbody-content #dashboard-widgets.columns-4 .postbox-container{width:25%}#dashboard-widgets-wrap .columns-3 #postbox-container-4 .empty-container{border:0!important}.ie8 #wpbody-content #dashboard-widgets .postbox-container{width:49.5%}.ie8 #wpbody-content #dashboard-widgets #postbox-container-2,.ie8 #wpbody-content #dashboard-widgets #postbox-container-3,.ie8 #wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}.ie8 #dashboard-widgets #postbox-container-3 .empty-container,.ie8 #dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}#dashboard-widgets-wrap{overflow:hidden;margin:0 -8px}#dashboard-widgets .postbox .inside{margin-bottom:0}#dashboard-widgets .meta-box-sortables{margin:0 8px;min-height:100px}h3.dashboard-widget-title,h3.dashboard-widget-title small,h3.dashboard-widget-title span{color:#333}h3.dashboard-widget-title small a{color:#d7d7d7}h3.dashboard-widget-title small a:hover{color:#fff}#the-comment-list td.comment p.comment-author{margin-top:0;margin-left:0}#the-comment-list p.comment-author img{float:left;margin-right:8px}#the-comment-list p.comment-author strong a{border:0}#the-comment-list td{vertical-align:top}#the-comment-list td.comment{word-wrap:break-word}#the-comment-list td.comment img{max-width:100%}.welcome-panel{position:relative;overflow:auto;margin:16px 0;padding:23px 10px 0;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:13px;line-height:2.1em}.welcome-panel h3{margin:0;font-size:21px;font-weight:400;line-height:1.2}.welcome-panel h4{margin:1.33em 0 0;font-size:16px}.welcome-panel li{font-size:14px}.welcome-panel p{color:#777}.welcome-panel a{text-decoration:none}.welcome-panel .about-description{font-size:16px;margin:0}.welcome-panel .welcome-panel-close{position:absolute;top:5px;right:10px;padding:20px 15px 0 3px;font-size:13px;text-decoration:none;line-height:1}#welcome-panel.welcome-panel .welcome-panel-close::before{position:absolute;left:-18px;margin-top:-2px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.wp-core-ui .welcome-panel .button.button-hero{margin:15px 0 3px}.welcome-panel-content{margin-left:13px;max-width:1500px}.welcome-panel .welcome-panel-column-container{clear:both;overflow:hidden;position:relative}.welcome-panel .welcome-panel-column{width:32%;min-width:200px;float:left}.ie8 .welcome-panel .welcome-panel-column{min-width:230px}.welcome-panel .welcome-panel-column:first-child{width:36%}.welcome-panel-column p.hide-if-no-customize{margin-top:10px}.welcome-panel-column p{margin-top:7px;color:#464646}.welcome-panel .welcome-icon{display:block;padding:0 0 8px;background:transparent!important}.welcome-panel .welcome-icon:before{color:#888;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 10px 0 0;top:-1px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;vertical-align:top}.welcome-panel .welcome-edit-page:before,.welcome-panel .welcome-write-blog:before{content:'\f119';top:-3px}.welcome-panel .welcome-add-page:before{content:'\f132'}.welcome-panel .welcome-view-site:before{content:'\f115';top:-2px}.welcome-panel .welcome-widgets-menus:before{content:'\f116';top:-2px}.welcome-panel .welcome-comments:before{content:'\f117';top:-1px}.welcome-panel .welcome-learn-more:before{content:'\f118';top:-1px}.welcome-panel .welcome-widgets-menus{line-height:16px}.welcome-panel .welcome-panel-column ul{margin:.8em 1em 1em 0}.welcome-panel .welcome-panel-column li{line-height:16px;list-style-type:none}#dashboard_primary .inside{margin:0;padding:0}#dashboard_primary .dashboard-widget-control-form,#dashboard_primary .widget-loading{padding:12px 12px 0}body #dashboard-widgets .postbox form .submit{margin:0}.dashboard-widget-control-form{overflow:hidden}.dashboard-widget-control-form p{margin-top:0}div.dashboard-widget-error{background-color:#c43}div.dashboard-widget-notice{background-color:#cfe1ef}.rssSummary{color:#777;margin-top:4px}#dashboard_primary .rss-widget{border-bottom:1px solid #eee;font-size:13px;padding:8px 12px 10px}#dashboard_primary .rss-widget:last-child{border-bottom:0;padding-bottom:8px}#dashboard_primary .rss-widget a{font-weight:400}#dashboard_primary .rss-widget span,#dashboard_primary .rss-widget span.rss-date{color:#777}#dashboard_primary .rss-widget span.rss-date{margin-left:12px}#dashboard_primary .rss-widget ul li{margin-bottom:8px}#dashboard_right_now ul{margin:0;overflow:hidden}#dashboard_right_now li{width:50%;float:left;margin-bottom:10px}#dashboard_right_now .inside{overflow:hidden;padding:0}#dashboard_right_now .main{overflow:hidden;padding:0 12px 11px}#dashboard_right_now .main p{margin:0}#dashboard_right_now #wp-version-message .button{clear:right;float:right;position:relative;top:-5px}.mu-storage{overflow:hidden}#dashboard-widgets h4.mu-storage{margin-bottom:10px}#dashboard_right_now li a:before,#dashboard_right_now li span:before{color:#888}#dashboard_right_now .sub{color:#777;background:#f5f5f5;border-top:1px solid #eee;padding:10px 12px 6px}#dashboard_right_now .sub h4{color:#555}#dashboard_right_now .sub p{margin:0 0 1em}#dashboard_right_now .warning a:before,#dashboard_right_now .warning span:before{color:#d54e21}#dashboard_right_now li a:before,#dashboard_right_now li span:before{content:'\f159';font:400 20px/1 dashicons;speak:none;display:block;float:left;margin:0 5px 0 0;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;text-decoration:none!important}#dashboard_right_now .page-count a:before,#dashboard_right_now .page-count span:before{content:'\f105'}#dashboard_right_now .post-count a:before,#dashboard_right_now .post-count span:before{content:'\f109'}#dashboard_right_now .comment-count a:before{content:'\f101'}#dashboard_right_now .comment-mod-count a:before{content:'\f125'}#dashboard_right_now .storage-count a:before{content:'\f104'}#dashboard_right_now .storage-count.warning a:before{content:'\f153'}#dashboard_quick_press .inside{margin:0;padding:0}#dashboard_quick_press div.updated{margin-bottom:10px;border:1px solid #eee;border-width:1px 1px 1px 0}#dashboard_quick_press form{overflow:hidden;margin:12px}#dashboard_quick_press .drafts,#dashboard_quick_press .easy-blogging{padding:10px 0 0}input#save-post{float:left}form.initial-form.quickpress-open label.prompt{font-style:normal}form.initial-form.quickpress-open input#title{height:auto}#dashboard_quick_press input,#dashboard_quick_press textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0}#dashboard_quick_press textarea{resize:vertical}#description-wrap{margin-top:12px}#title-wrap #title-prompt-text,.textarea-wrap #content-prompt-text{color:#777}.input-text-wrap,.textarea-wrap{position:relative}.input-text-wrap .prompt,.textarea-wrap .prompt{position:absolute}.textarea-wrap #content-prompt-text{font-size:1.1em;padding:7px 8px}.textarea-wrap textarea#content{margin:0 0 8px;padding:6px 7px}#quick-press textarea#content{min-height:90px;max-height:1300px;resize:none}.js #dashboard_quick_press .drafts{border-top:1px solid #eee}#dashboard_quick_press .drafts abbr{border:0}#dashboard_quick_press .drafts h4{margin:0 12px 8px;font-weight:400}#dashboard_quick_press .drafts .view-all{float:right;margin:0 12px 0 0}#dashboard_primary a.rsswidget{font-weight:400}#dashboard_quick_press .drafts ul{margin:0 12px}#dashboard_quick_press .drafts li{margin-bottom:1em}#dashboard_quick_press .drafts li time{color:#777}#dashboard_quick_press .drafts p{margin:0;word-wrap:break-word}#dashboard_quick_press .draft-title{overflow:hidden}#dashboard_quick_press .draft-title a,#dashboard_quick_press .draft-title time{float:left;margin:0 5px 0 0}#dashboard-widgets #dashboard_activity h4{margin:0 0 8px 12px;font-weight:400}#dashboard-widgets #dashboard_activity h4.comment-meta{margin:0}#dashboard_activity h4.comment-meta{margin-bottom:4px}#dashboard_activity ul{padding:0 12px}#dashboard_activity .comment-meta span.approve:before{content:'\f227';font:20px/.5 dashicons;margin-left:12px;vertical-align:middle;position:relative;top:-1px;margin-right:2px}#dashboard_activity .inside{padding:0;margin:0}#dashboard_activity .no-activity{overflow:hidden;padding:0 12px 12px;text-align:center}#dashboard_activity .no-activity p{color:#999;font-size:16px}#dashboard_activity .no-activity .smiley{margin-top:0}#dashboard_activity .no-activity .smiley:before{content:'\f328';font:400 120px/1 dashicons;speak:none;display:block;margin:0 5px 0 0;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;text-decoration:none!important}#dashboard_activity .subsubsub{float:none;border-top:1px solid #eee;margin-top:0;padding:8px 12px 4px}#future-posts ul,#published-posts ul{clear:both;margin-bottom:0}#future-posts li,#published-posts li{overflow:hidden;margin-bottom:8px}#future-posts ul span,#published-posts ul span{color:#777;float:left;margin-right:8px;min-width:150px}.activity-block{border-bottom:1px solid #eee;overflow:hidden;padding:8px 0 4px}.activity-block:last-child{border-bottom:0}.activity-block .subsubsub li{color:#ddd}#activity-widget #the-comment-list div.undo,#activity-widget #the-comment-list tr.undo{background:0 0;padding:6px 0}#activity-widget #the-comment-list .alt,#activity-widget #the-comment-list .alternate{background:0 0}#activity-widget #the-comment-list .comment-item{background:#fafafa;padding:12px;position:relative}#activity-widget #the-comment-list img{position:absolute;left:13px;top:13px}#activity-widget #the-comment-list .dashboard-comment-wrap{padding-left:63px}#activity-widget #the-comment-list .dashboard-comment-wrap blockquote{margin:1em 0}#activity-widget #the-comment-list .comment-item h4{font-size:13px;color:#999}#activity-widget #the-comment-list .comment-item p.row-actions{margin:4px 0 0}#activity-widget #the-comment-list .comment-item:first-child{border-top:1px solid #eee}#activity-widget #the-comment-list .unapproved{background-color:#fef7f1}#activity-widget #the-comment-list .unapproved:before{content:"";display:block;position:absolute;left:0;top:0;bottom:0;background:#d54e21;width:4px}#activity-widget #the-comment-list .spam-undo-inside .avatar,#activity-widget #the-comment-list .trash-undo-inside .avatar{margin-right:20px;position:relative;top:0}#dashboard-widgets #dashboard_browser_nag.postbox .inside{margin:10px}.edit-box{display:none}h3:hover .edit-box{display:inline}#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:100%}#dashboard-widgets .postbox form .submit{float:none;margin:.5em 0 0;padding:0;border:0}#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit #publish{min-width:0}#dashboard-widgets a{text-decoration:none}#dashboard-widgets h3 a{text-decoration:underline}#dashboard-widgets h3 .postbox-title-action{position:absolute;right:10px;padding:0;top:5px}.js #dashboard-widgets h3 .postbox-title-action{right:33px}#dashboard-widgets h4{color:#222;font-weight:400;font-size:14px;margin:0 0 .2em;padding:0}#dashboard_plugins h5{font-size:14px}#latest-comments #the-comment-list{position:relative}#activity-widget #the-comment-list .comment{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.06);box-shadow:inset 0 1px 0 rgba(0,0,0,.06)}#activity-widget .comments #the-comment-list .alt{background-color:transparent}#activity-widget #latest-comments #the-comment-list .comment-item{padding:1em 12px}#latest-comments #the-comment-list .pingback{padding-left:12px!important}#latest-comments #the-comment-list .comment-item:first-child{border-top:0}#latest-comments #the-comment-list .comment-item h4{line-height:1.5em;margin-top:0;color:#666}#latest-comments #the-comment-list .comment-item h4 cite{font-style:normal;font-weight:400}#latest-comments #the-comment-list .comment-item blockquote,#latest-comments #the-comment-list .comment-item blockquote p{margin:0;padding:0;display:inline}#latest-comments #the-comment-list .comment-item p.row-actions{margin:3px 0 0;padding:0;font-size:13px}#title-wrap label{cursor:text}#title-wrap #title{padding:2px 6px;font-size:1.3em;line-height:100%;outline:0}#title-wrap #title-prompt-text{font-size:1.1em;padding:5px 8px}.rss-widget ul{margin:0;padding:0;list-style:none}a.rsswidget{font-size:14px;font-weight:600;line-height:1.7em}.rss-widget ul li{line-height:1.5em;margin-bottom:12px}.rss-widget span.rss-date{color:#999;font-size:13px;margin-left:3px}.rss-widget cite{display:block;text-align:right;margin:0 0 1em;padding:0}.rss-widget cite:before{content:'\2014'}.dashboard-comment-wrap{overflow:hidden;word-wrap:break-word}#dashboard_browser_nag a.update-browser-link{font-size:1.2em;font-weight:600}#dashboard_browser_nag a{text-decoration:underline}#dashboard_browser_nag p.browser-update-nag.has-browser-icon{padding-right:125px}#dashboard_browser_nag .browser-icon{margin-top:-35px}#dashboard_browser_nag.postbox.browser-insecure{background-color:#ac1b1b;border-color:#ac1b1b}#dashboard_browser_nag.postbox{background-color:#e29808;background-image:none;border-color:#edc048;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag.postbox.browser-insecure h3{border-bottom-color:#cd5a5a;color:#fff}#dashboard_browser_nag.postbox h3{border-bottom-color:#f6e2ac;background:transparent none;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag a{color:#fff}#dashboard_browser_nag h3.hndle{border:0;font-weight:600;font-size:20px;padding-top:10px}.postbox#dashboard_browser_nag p a.dismiss{font-size:14px}.postbox#dashboard_browser_nag a,.postbox#dashboard_browser_nag p,.postbox#dashboard_browser_nag p.browser-update-nag{font-size:16px}@media only screen and (max-width:799px){#wpbody-content #dashboard-widgets .postbox-container{width:100%}}@media only screen and (min-width:800px) and (max-width:1499px){#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}#wpbody #wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody #wpbody-content .metabox-holder.columns-1 .postbox-container .empty-container{border:0 none;height:0;min-height:0}.index-php .columns-prefs,.index-php .screen-layout{display:block}.columns-prefs .columns-prefs-3,.columns-prefs .columns-prefs-4{display:none}}@media only screen and (min-width:1500px) and (max-width:1800px){#wpbody-content #dashboard-widgets .postbox-container{width:33.5%}#wpbody-content #dashboard-widgets #postbox-container-1{width:33%}#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right}#dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}}@media screen and (max-width:870px){.welcome-panel .welcome-panel-column,.welcome-panel .welcome-panel-column:first-child{display:block;float:none;width:100%}.welcome-panel .welcome-panel-column li{display:inline-block;margin-right:13px}.welcome-panel .welcome-panel-column ul{margin:.4em 0 0}}@media screen and (max-width:782px){#dashboard_recent_comments #the-comment-list .comment-item .avatar{height:30px;width:30px;margin:4px 10px 5px 0}}@media screen and (max-width:600px){.welcome-panel .welcome-panel-close{overflow:hidden;text-indent:100%;white-space:nowrap;width:20px;height:20px;right:0;padding:5px}#welcome-panel.welcome-panel .welcome-panel-close::before{font-size:20px;margin:0}}.post-com-count-wrapper{min-width:22px}.post-com-count{background:0 0;height:1.3em;line-height:1.1em;display:block;text-decoration:none;padding:0 0 6px;cursor:pointer;background-position:center -80px;background-repeat:no-repeat;color:#fff}.post-com-count:after{content:"";display:block;width:0;height:0;margin-left:8px;border-top:5px solid #bbb;border-right:5px solid transparent}.post-com-count span{font-size:11px;font-weight:600;height:1.4em;line-height:1.4em;min-width:.7em;padding:0 6px;display:inline-block;-webkit-border-radius:5px;border-radius:5px;background-color:#bbb;color:#fff}.post-com-count:hover{background-position:center -3px}.post-com-count:hover span{background-color:#2ea2cc}.post-com-count:hover:after{border-top:5px solid #2ea2cc}strong .post-com-count{background-position:center -55px}strong .post-com-count span{background-color:#0074a2}strong .post-com-count:after{border-top:5px solid #0074a2}.column-response .post-com-count{float:left;margin-right:5px;text-align:center}.response-links{float:left}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom:1px solid #ccc}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#submitted-on,.submitted-on{color:#777}#replyrow td{padding:2px}#replysubmit{margin:0;padding:0 5px 3px;text-align:center}#replysubmit .spinner{padding:2px 0 0;vertical-align:top;float:right}#replysubmit .button{margin-right:5px}#replysubmit .error{color:red;line-height:21px;text-align:center}#replyrow h5{margin:.2em 0 0;padding:0 5px;line-height:1.4em;font-size:1em}#edithead .inside{float:left;padding:3px 0 2px 5px;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px;-webkit-box-shadow:none;box-shadow:none}#replyerror{border-color:#ddd;background-color:#f9f9f9}.commentlist .avatar{vertical-align:text-top}#the-comment-list .attachment-80x60{padding:4px 8px}#the-comment-list div.undo,#the-comment-list tr.undo{background-color:#f4f4f4}#the-comment-list .unapproved td,#the-comment-list .unapproved th{background-color:#fef7f1}#the-comment-list .unapproved th.check-column{border-left:4px solid #d54e21}#the-comment-list .unapproved th.check-column input{margin-left:4px}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}#the-comment-list td,#the-comment-list th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}#the-comment-list tr:last-child td,#the-comment-list tr:last-child th{-webkit-box-shadow:none;box-shadow:none}#the-comment-list tr.unapproved+tr.approved td,#the-comment-list tr.unapproved+tr.approved th{border-top:1px solid rgba(0,0,0,.03)}.vim-current,.vim-current td,.vim-current th{background-color:#e4f2fd!important}th .comment-grey-bubble{height:16px;width:16px}th .comment-grey-bubble:before{content:'\f101';font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;left:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-author,.fixed .column-date,.fixed .column-format,.fixed .column-links,.fixed .column-parent,.fixed .column-posts{width:10%}.fixed .column-comment .comment-author{display:none}.fixed .column-categories,.fixed .column-rel,.fixed .column-response,.fixed .column-role,.fixed .column-tags{width:15%}.fixed .column-slug{width:25%}.fixed .column-locations{width:35%}.fixed .column-comments{width:4em;padding:8px 0;text-align:left}.fixed .column-comments .vers{padding-left:3px}.fixed .column-comments a{float:left}.fixed .column-icon{width:80px}.wp-list-table a{-webkit-transition:none;transition:none}#the-list tr:last-child td,#the-list tr:last-child th{border-bottom:0!important;-webkit-box-shadow:none;box-shadow:none}#comments-form .fixed .column-author{width:20%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv .comments-box{border:0 none}#commentsdiv .comments-box thead th{background:0 0;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv .spinner{padding-left:5px}.sorting-indicator{display:none;width:10px;height:4px;margin-top:8px;margin-left:7px}.sorting-indicator:before{background:0 0;content:'\f142';font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0;top:-4px;left:-8px;line-height:10px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.column-comments .sorting-indicator:before{top:0;left:-10px}th.desc:hover span.sorting-indicator:before,th.sorted.asc .sorting-indicator:before{content:'\f142'}th.asc:hover span.sorting-indicator:before,th.sorted.desc .sorting-indicator:before{content:'\f140'}tr.wp-locked .locked-indicator{margin-left:6px;height:20px;width:16px}tr.wp-locked .locked-indicator:before{color:#888;content:'\f160';display:inline-block;float:left;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-left:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}tr.wp-locked .check-column input[type=checkbox],tr.wp-locked .check-column label,tr.wp-locked .row-actions .inline,tr.wp-locked .row-actions .trash{display:none}tr .locked-info{height:0;opacity:0}tr.wp-locked .locked-info{margin-top:8px;height:auto;opacity:1}.locked-text{vertical-align:top}tr.locked-info,tr.wp-locked .locked-info{-webkit-transition:height 1s,opacity .5s;transition:height 1s,opacity .5s}.fixed .column-comments .sorting-indicator{margin-top:3px}#menu-locations-wrap .widefat{width:60%}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:7px 7px 8px 10px}th.manage-column a,th.sortable a:active,th.sortable a:focus,th.sortable a:hover{color:#333}th.sortable a:focus{background:#e1e1e1}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:left;cursor:pointer}th.desc:hover span.sorting-indicator,th.sorted.asc .sorting-indicator{display:block;background-position:0 0}th.asc:hover span.sorting-indicator,th.sorted.desc .sorting-indicator{display:block;background-position:-7px 0}.tablenav-pages a{font-weight:600;margin-right:1px;padding:0 2px}.tablenav-pages .current-page{padding-top:0;text-align:center}.tablenav-pages .next-page{margin-left:2px}.tablenav a.button-secondary{display:block;margin:3px 8px 0 0}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:right;display:block;cursor:default;height:30px;color:#555;line-height:30px;font-size:12px}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a{padding:0 10px 3px;background:#eee;background:rgba(0,0,0,.05);font-size:16px;font-weight:400}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover{color:#fff;background:#2ea2cc}.tablenav .tablenav-pages a.disabled,.tablenav .tablenav-pages a.disabled:active,.tablenav .tablenav-pages a.disabled:focus,.tablenav .tablenav-pages a.disabled:hover{color:#aaa;background:#eee;background:rgba(0,0,0,.05)}.tablenav .displaying-num{margin-right:2px;color:#777;font-size:12px;font-style:italic}.tablenav .actions{overflow:hidden;padding:2px 8px 0 0}.tablenav .delete{margin-right:20px}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#0074a2}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#2ea2cc}.view-switch{float:right;margin:5px 16px 0 8px}.view-switch img{display:none}.view-switch a{text-decoration:none}.view-switch>a{display:inline-block;width:18px;height:18px}.view-switch>a:before{color:#bbb;content:'\f163';display:inline-block;float:left;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-left:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.view-switch a:hover:before{color:#727272}.view-switch a.current:before{color:#0074a2}.view-switch>a+a:before{margin-left:5px;content:'\f164'}.filter{float:left;margin:-5px 0 0 10px}.filter .subsubsub{margin-left:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter fieldset{float:left;margin:0 1.5ex 1em 0;padding:0}#posts-filter fieldset legend{padding:0 0 .2em 1px}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:600;margin:0 6px}.row-title{font-size:14px!important;font-weight:600}.column-comment .comment-author{margin-bottom:.6em}.column-author img,.column-comment .comment-author img,.column-username img{float:left;margin-right:10px;margin-top:1px}.row-actions{color:#ddd;font-size:13px;visibility:hidden;padding:2px 0 0}.mobile .row-actions,.row-actions.visible,div.comment-item:hover .row-actions,tr:hover .row-actions{visibility:visible}.row-actions-visible{padding:2px 0 0}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:left;margin:0;padding:0;width:100%}#wpbody-content .inline-edit-row fieldset .inline-edit-col,tr.inline-edit-row td{padding:0 .5em}#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col{border-width:0 0 0 1px;border-style:none none none solid}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .quick-edit-row-page .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:right;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both}.inline-edit-row fieldset .inline-edit-group:after{content:".";display:block;height:0;clear:both;visibility:hidden}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}.inline-edit-row h4{margin:.2em 0;padding:0;line-height:23px}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{margin:0;padding:0}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0;width:auto}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-left:5em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-right:.5em}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:text-bottom}.inline-edit-row fieldset label textarea{width:100%;height:4em}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-right:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-save .spinner{padding:4px 10px 0;vertical-align:top;float:right}.inline-edit-row h4{text-transform:uppercase}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{font-style:italic;line-height:1.8em}.inline-edit-row fieldset .inline-edit-date{float:left}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.1em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}ul.cat-checklist{height:12em;border:solid 1px #ddd;overflow-y:scroll;padding:0 5px;margin:0;background-color:#fff}#bulk-titles{display:block;height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px;margin:0 0 5px}.inline-edit-row fieldset ul.cat-checklist input,.inline-edit-row fieldset ul.cat-checklist li{margin:0;position:relative}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-style:normal;font-size:11px}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{max-width:80%}.ie8 .inline-edit-row #post_parent,.ie8 .inline-edit-row select[name=page_template]{width:250px}.quick-edit-row-post fieldset label.inline-edit-status{float:left}#bulk-titles{line-height:140%}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:left;height:18px;margin:0 3px 0 -2px;overflow:hidden;position:relative;width:20px}#bulk-titles div a:before{position:relative;top:-3px}.plugins tbody,.plugins tbody th.check-column{padding:8px 0 0 2px}.plugins tbody th.check-column input[type=checkbox]{margin-top:4px}#update-plugins-table tbody td p{margin-top:0}#update-plugins-table tbody td p strong{font-size:14px}.plugins .inactive th.check-column,.plugins tfoot th.check-column,.plugins thead th.check-column{padding-left:6px}#update-plugins-table tfoot th.check-column,#update-plugins-table thead th.check-column{padding-top:11px}.plugins,.plugins td,.plugins th{color:#000}.plugins tr{background:#fff}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ol,.plugins .desc ul{margin:0 0 0 2em}.plugins .desc ul{list-style-type:disc}.plugins .row-actions{font-size:13px}.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th{padding:10px 9px}.plugins .active td,.plugins .active th{background-color:#f7fcfe}.plugins .update td,.plugins .update th{border-bottom:0}.plugin-update-tr td{border-top:0}.plugin-install #the-list td,.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th,.upgrade .plugins td,.upgrade .plugins th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th,.plugins tr.active.plugin-update-tr+tr.inactive td,.plugins tr.active.plugin-update-tr+tr.inactive th{border-top:1px solid rgba(0,0,0,.03);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1;box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1}.plugins .update td,.plugins .update th,.plugins tr.active+tr.inactive.update td,.plugins tr.active+tr.inactive.update th,.upgrade .plugins tr:last-of-type td,.upgrade .plugins tr:last-of-type th{-webkit-box-shadow:none;box-shadow:none}.plugins .active.update td,.plugins .active.update th,tr.active.update+tr.plugin-update-tr .plugin-update{background-color:#fef7f1}.plugins .active th.check-column{border-left:4px solid #2ea2cc}.plugins .active.update th.check-column,.plugins .active.update+.plugin-update-tr .plugin-update{border-left:4px solid #d54e21}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-right:12px;white-space:nowrap}.plugins .inactive .plugin-title strong{font-weight:400}.plugins .row-actions,.plugins .second{padding:0 0 5px}.plugins .update .row-actions,.plugins .update .second{padding-bottom:0}.plugins-php .widefat tfoot td,.plugins-php .widefat tfoot th{border-top-style:solid;border-top-width:1px}.plugin-update-tr .update-message{font-size:13px;font-weight:400;padding:6px 12px;margin:0 10px 8px 31px;background-color:#f7f7f7;background-color:rgba(0,0,0,.03)}.plugin-update-tr .update-message:before{color:#d54e21;content:'\f463';display:inline-block;font:400 20px/1 dashicons;speak:none;margin:0 8px 0 -2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.plugins .plugin-update{padding:0;border:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}tr.active+tr.plugin-update-tr .plugin-update{background-color:#f7fcfe}tr.active+tr.plugin-update-tr .plugin-update .update-message{background-color:#fcf3ef}.plugin-install-php h4{margin:2.5em 0 8px}.wp-list-table .site-deleted{background:#ff8573}.wp-list-table .site-spammed{background:#faafaa}.wp-list-table .site-archived{background:#ffebe8}.wp-list-table .site-mature{background:#fecac2}@media screen and (max-width:782px){.tablenav{height:auto}.tablenav.top{margin:0}.tablenav.bottom{position:relative;margin-top:15px}.tablenav br{display:none}.tablenav br.clear{display:block}.tablenav.top .actions,.tablenav.top .displaying-num,.view-switch{display:none}.tablenav.bottom .displaying-num{position:absolute;right:0;top:10px;font-size:14px}.tablenav-pages{width:100%;text-align:center;margin:0 0 25px}.tablenav.bottom .tablenav-pages{margin-top:25px}.tablenav.top .tablenav-pages.one-page{display:none}.tablenav.bottom .tablenav-pages.one-page{margin:15px 0 0;height:0}.tablenav-pages .pagination-links .paging-input{font-size:18px}.tablenav-pages .pagination-links a{padding:8px 20px 11px;font-size:18px;background:rgba(0,0,0,.05)}.tablenav-pages .pagination-links .current-page{padding:10px;font-size:14px}.form-wrap>p{display:none}.comment-count{font-size:14px}.column-categories,.column-tags,.fixed .column-author,.fixed .column-date,.media .column-parent,.sites .column-registered,.sites .column-users,.tags .column-description,.users .column-email,.users .column-name{display:none}.fixed .column-comment .comment-author{display:block}.column-title{width:85%}.fixed .column-comments,.widefat .check-column{width:35px}.widefat tfoot .check-column,.widefat thead .check-column{padding:10px 0}.widefat *{word-wrap:normal}#wpbody-content .bulk-edit-row .inline-edit-col-bottom,#wpbody-content .bulk-edit-row .inline-edit-col-left,#wpbody-content .bulk-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .inline-edit-row-post .inline-edit-col-center,#wpbody-content .quick-edit-row-page .inline-edit-col-left,#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .quick-edit-row-post .inline-edit-col-left,#wpbody-content .quick-edit-row-post .inline-edit-col-right{float:none;width:100%}#wpbody-content .bulk-edit-row fieldset .inline-edit-col label,#wpbody-content .bulk-edit-row fieldset .inline-edit-group label,#wpbody-content .quick-edit-row fieldset .inline-edit-col label,#wpbody-content .quick-edit-row fieldset .inline-edit-group label{max-width:none;float:none;margin-bottom:5px}#wpbody .bulk-edit-row fieldset select{display:block;width:100%;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-size:16px}.inline-edit-row fieldset label span.title{float:none}.inline-edit-row fieldset label.inline-edit-tags{padding:0 .5em}.inline-edit-row fieldset .inline-edit-col label.inline-edit-tags{padding:0}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{width:3em}.inline-edit-row fieldset input[name=aa]{width:4.5em}#bulk-titles div{margin:.8em .3em}#bulk-titles div a{height:22px}.tags .column-posts{width:50px}.tags .column-slug{width:30%}.comments .column-response,.users .column-role{width:35%}.sites .column-blogname{width:55%}#wpbody-content #update-themes-table .plugin-title{width:auto}.link-manager-php #posts-filter{margin-top:25px}.link-manager-php .tablenav.bottom{overflow:hidden}.wp-list-table.plugins{position:relative;margin-top:35px;margin-bottom:50px}#wpbody-content .wp-list-table.plugins tfoot .column-description,.wp-list-table.plugins th#description,.wp-list-table.plugins thead .column-description{display:none}#wpbody-content .wp-list-table.plugins,#wpbody-content .wp-list-table.plugins .column-description,#wpbody-content .wp-list-table.plugins .manage-column.column-name,#wpbody-content .wp-list-table.plugins .plugin-title,#wpbody-content .wp-list-table.plugins .plugin-update,#wpbody-content .wp-list-table.plugins .theme-title,#wpbody-content .wp-list-table.plugins tbody,#wpbody-content .wp-list-table.plugins thead,#wpbody-content .wp-list-table.plugins tr{display:block;width:auto}.wp-list-table.plugins tfoot,.wp-list-table.plugins thead{position:absolute;top:-35px;left:0;right:0;width:auto;height:35px}.wp-list-table.plugins tfoot{bottom:-35px;top:auto}.active,.inactive{padding-top:0}.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-top:13px;padding-bottom:4px}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column,.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title,.wp-list-table.plugins tbody th{-webkit-box-shadow:none;box-shadow:none}.plugins tbody{padding:1px 0 0}.plugins tr.active+tr.inactive td.column-description{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column{border-top:0}.wp-list-table.plugins .column-description{padding-top:0}.wp-list-table.plugins .column-description,.wp-list-table.plugins .manage-column.column-name,.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-right:12px;padding-left:46px}.wp-list-table.plugins tr{position:relative}.wp-list-table.plugins th.check-column,.wp-list-table.plugins tr.update th.check-column{position:absolute;height:auto;top:0;bottom:0;left:0;padding-left:2px;padding-top:18px}.wp-list-table.plugins tfoot th.check-column,.wp-list-table.plugins thead th.check-column{padding-left:3px;padding-top:11px;background:0 0}.widefat tbody th.check-column input[type=checkbox]{margin-top:-3px;margin-left:8px}.wp-list-table.plugins .active .check-column input,.wp-list-table.plugins .update .check-column input{margin-left:5px}.wp-list-table.plugins tfoot .check-column input,.wp-list-table.plugins thead .check-column input{margin-top:-6px}.wp-list-table.plugins .active th.check-column{background:0 0}.wp-list-table.plugins .plugin-title strong,.wp-list-table.plugins .theme-title strong{font-size:1.4em;line-height:1.6em}table.plugin-install .column-description,table.plugin-install .column-name,table.plugin-install .column-rating,table.plugin-install .column-version{display:block;width:auto}table.plugin-install th.column-description,table.plugin-install th.column-name,table.plugin-install th.column-rating,table.plugin-install th.column-version{display:none}table.plugin-install td.column-name strong{font-size:1.4em;line-height:1.6em}table.plugin-install #the-list td{-webkit-box-shadow:none;box-shadow:none}table.plugin-install #the-list tr{display:block;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}}#poststuff{padding-top:10px;min-width:763px}#poststuff #post-body{padding:0}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments .spinner,#show-comments a{float:left}#lost-connection-notice .spinner{display:block;float:left;margin:0 5px 0 0}#titlediv{position:relative;margin-bottom:10px}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0;background-color:#fff}#titlediv #title-prompt-text{color:#777;position:absolute;font-size:1.7em;padding:11px 10px}#wp-fullscreen-save .fs-saved{color:#999;float:right;margin-top:4px}#poststuff .inside-submitbox,#side-sortables .inside-submitbox{margin:0 3px;font-size:11px}input#link_description,input#link_url{width:98%}#pending{background:0 none;border:0 none;padding:0;font-size:11px;margin-top:-1px}#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-right:10px;font-size:11px}#editable-post-name-full{display:none}#editable-post-name{background-color:#fffbcc}#editable-post-name input{font-size:13px;height:22px;margin:0;width:16em}.postarea h3 label{float:left}.submitbox .submit{text-align:left;padding:12px 10px 10px;font-size:11px;background-color:#464646;color:#ccc}.submitbox .submitdelete{text-decoration:none;padding:1px 2px}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:red;border-bottom-color:red}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}.inside-submitbox #post_status{margin:2px 0 2px -2px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{position:relative;min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:transparent none;border:0 none;float:right;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#333}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:10px 0}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:0 7px 5px}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0 none}#side-sortables .inside-submitbox .insidebox,.stuffbox .insidebox{margin:11px 0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:solid 1px transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #dfdfdf;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 5px}#postimagediv .inside img{max-width:100%;height:auto}form#tags-filter{position:relative}td.plugin-title strong,td.post-title strong{display:block;margin-bottom:.2em;font-size:14px}td.plugin-title p,td.post-title p{margin:6px 0}.ui-tabs-hide,.wp-hidden-children .wp-hidden-child{display:none}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:0;background-color:#f7f7f7;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}#post-status-info td{font-size:12px}.autosave-info{padding:2px;text-align:right}#editorcontent #post-status-info{border:0}#content-resize-handle{background:transparent url(../images/resize.gif) no-repeat scroll right bottom;width:12px;cursor:row-resize}.rtl #content-resize-handle{background:transparent url(../images/resize-rtl.gif) no-repeat scroll left bottom}#wp-word-count{display:block;padding:2px 10px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#misc-publishing-actions label[for=post_status]:before,#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#888}#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 2px 0 0;top:0;left:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}#post-body #visibility:before{content:'\f177'}.curtime #timestamp:before{content:'\f145';top:-1px}#post-body .misc-pub-revisions:before{content:'\f321'}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;left:50%;width:450px;margin-left:-225px;background:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005}.notification-dialog-background{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#post-lock-dialog .post-locked-message a.button{margin-right:10px}#post-lock-dialog .post-locked-avatar{float:left;margin:0 20px 20px 0}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:left;margin-right:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt,.attachmentlinks{margin:0;height:4em;width:98%}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist span{margin-right:25px;display:block;float:left;font-size:13px;line-height:1.8em;white-space:nowrap;cursor:default}.tagchecklist span a{margin:1px 0 0 -17px;cursor:pointer;width:20px;height:20px;display:block;float:left;text-indent:0;overflow:hidden;position:absolute}#poststuff h2{margin-top:20px;font-size:1.5em;margin-bottom:15px;padding:0 0 3px;clear:left}#poststuff h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}#poststuff .inside label.deleted,#poststuff .inside label.spam{color:red}#poststuff .inside label.waiting{color:orange}#poststuff .inside label.approved{color:green}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}#post-visibility-select{line-height:1.5em;margin-top:3px}#poststuff #submitdiv .inside{margin:0;padding:0}.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0 none;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #dfdfdf;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-right:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:left;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-right:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#2ea2cc}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-left:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-right:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:'\f109'}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:'\f128'}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:'\f161'}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:'\f127'}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:'\f126'}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:'\f125'}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:'\f130'}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:'\f123'}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:'\f122'}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:'\f103'}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:solid 1px #dfdfdf;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px;font-size:12px}.form-field input,.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:0 0 10px;padding:8px 0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h3{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.tagsdiv{margin-top:-8px}#poststuff .taghint{color:#aaa;margin:15px 0 -24px 12px}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}.taghint{color:#aaa;margin:-17px 0 0 7px;visibility:hidden}input.newtag~div.taghint{visibility:visible}input.newtag:focus~div.taghint{visibility:hidden}p.popular-tags{border:0;line-height:2em;max-width:1000px;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h3{margin:2px 0 12px}.ac_results{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;display:none;border:1px solid gray;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{padding:2px 5px;white-space:nowrap;color:#101010;text-align:left}.ac_over{background-color:#f0f0b8;cursor:pointer}.ac_match{text-decoration:underline}.comment-php .wp-editor-area{height:200px}.comment-ays{margin-bottom:0;border-bottom-style:solid;border-bottom-width:1px}.comment-ays .alt{background-color:transparent}.spam-undo-inside,.trash-undo-inside{margin:1px 8px 1px 0;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}#comment-status-radio label{padding:5px 0}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td,.links-table th{padding:5px 0}.links-table td label{margin-right:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url(../images/resize-2x.gif) no-repeat scroll right bottom;-webkit-background-size:11px 11px;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url(../images/resize-rtl-2x.gif) no-repeat scroll right bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0 none;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff h3{padding:12px}.post-format-options{padding-right:0}.post-format-options a{margin-right:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-right:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist li{margin-bottom:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto;margin-bottom:15px}.tagchecklist{margin:25px 10px}.tagchecklist span{font-size:16px;line-height:120%}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:left!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-left:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding-top:6px;padding-bottom:6px;padding-left:6px;padding-right:3px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}#wp-content-editor-tools{overflow:hidden;padding:20px 15px 1px 0;top:1px}a.wp-switch-editor{font-size:16px;line-height:1em;margin:3px 0 0 7px;padding:12px 15px}#wp-content-media-buttons a{font-size:16px;line-height:37px;height:39px;padding:0 20px 0 15px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-top:-3px!important;margin-left:-5px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:right;font-size:16px}#delete-action,#publishing-action{line-height:47px}.comment-ays{border-bottom:0}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}}@media only screen and (max-width:500px){#wp-content-media-buttons a{font-size:14px;padding:0 10px}}.revisions-control-frame,.revisions-diff-frame{position:relative}.revisions-controls{padding-top:40px;height:100px;z-index:1}.revisions-controls input[type=checkbox]{position:relative;top:-1px;vertical-align:text-bottom}.revisions.pinned .revisions-controls{position:fixed;top:0;height:82px;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-tickmarks{position:relative;margin:0 auto;height:.7em;top:7px;max-width:70%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.revisions-tickmarks>div{position:absolute;height:100%;border-left:1px solid #aaa;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.revisions-tickmarks>div:first-child{border-width:0}.comparing-two-revisions .revisions-controls{height:140px}.comparing-two-revisions.pinned .revisions-controls{height:124px}.revisions .diff-error{position:absolute;text-align:center;margin:0 auto;width:100%;display:none}.revisions.diff-error .diff-error{display:block}.revisions .loading-indicator{position:fixed;vertical-align:middle;opacity:0;width:100%;top:50%;margin-left:-90px;-webkit-transition:opacity .5s;transition:opacity .5s;filter:alpha(opacity=0)}body.folded .revisions .loading-indicator{margin-left:-32px}.revisions .loading-indicator span.spinner{display:block;margin:0 auto;float:none}.revisions.loading .loading-indicator{opacity:1;filter:alpha(opacity=100)}.revisions .diff{-webkit-transition:opacity .5s;transition:opacity .5s}.revisions.loading .diff{opacity:.5;filter:alpha(opacity=50)}.revisions.diff-error .diff{visibility:hidden}.revisions-meta{margin-top:20px;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions.pinned .revisions-meta{-webkit-box-shadow:none;box-shadow:none}.revision-toggle-compare-mode{position:absolute;top:0;right:0}.comparing-two-revisions .revisions-next,.comparing-two-revisions .revisions-previous,.revisions-meta .diff-meta-to strong{display:none}.revisions-controls .author-card .date{color:#777}.revisions-controls .author-card.autosave{color:#d54e21}.revisions-controls .author-card .author-name{font-weight:700}.comparing-two-revisions .diff-meta-to strong{display:block}.revisions.pinned .revisions-buttons{padding:0 11px}.revisions-next,.revisions-previous{position:relative;z-index:1}.revisions-previous{float:left}.revisions-next{float:right}.revisions-controls .wp-slider{max-width:70%;margin:0 auto;top:-3px}.revisions-diff{padding:15px;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-diff h3:first-child{margin-top:0}#revisions-meta-restored img,.post-revisions li img{vertical-align:middle}table.diff tbody tr td:nth-child(2){width:4%}table.diff{table-layout:fixed;width:100%;white-space:pre-wrap}table.diff col.content{width:auto}table.diff col.content.diffsplit{width:48%}table.diff col.diffsplit.middle{width:auto}table.diff col.ltype{width:30px}table.diff tr{background-color:transparent}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.618;padding:.5em;vertical-align:top;word-wrap:break-word}table.diff td h1,table.diff td h2,table.diff td h3,table.diff td h4,table.diff td h5,table.diff td h6{margin:0}table.diff .diff-addedline ins,table.diff .diff-deletedline del{text-decoration:none}table.diff .diff-deletedline{background-color:#ffe9e9}table.diff .diff-deletedline del{background-color:#faa}table.diff .diff-addedline{background-color:#e9ffe9}table.diff .diff-addedline ins{background-color:#afa}.diff-meta{padding:5px;clear:both;min-height:32px}.diff-title strong{line-height:32px;min-width:60px;text-align:right;float:left;margin-right:5px}.revisions-controls .author-card .author-info{font-size:12px;line-height:16px}.revisions-controls .author-card .author-info,.revisions-controls .author-card .avatar{float:left;margin-left:6px;margin-right:6px}.revisions-controls .author-card .byline{display:block;font-size:12px}.revisions-controls .author-card .avatar{vertical-align:middle}.diff-meta input.restore-revision{float:right;margin-left:6px;margin-right:6px;margin-top:4px}.diff-meta-from{display:none}.comparing-two-revisions .diff-meta-from{display:block}.revisions-tooltip{position:absolute;bottom:105px;margin-right:0;margin-left:-69px;z-index:0;max-width:350px;min-width:130px;padding:8px 4px;opacity:0}.revisions-tooltip.flipped{margin-left:0;margin-right:-70px}.revisions.pinned .revisions-tooltip{display:none!important}.comparing-two-revisions .revisions-tooltip{bottom:145px}.revisions-tooltip-arrow{width:70px;height:15px;overflow:hidden;position:absolute;left:0;margin-left:35px;bottom:-15px}.revisions-tooltip.flipped .revisions-tooltip-arrow{margin-left:0;margin-right:35px;left:auto;right:0}.revisions-tooltip-arrow>span{content:"";position:absolute;left:20px;top:-20px;width:25px;height:25px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.revisions-tooltip.flipped .revisions-tooltip-arrow>span{left:auto;right:20px}.ie8 .revisions-tooltip-arrow>span{left:15px;top:-25px;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476)"}.ie8 .revisions-tooltip.flipped .revisions-tooltip-arrow>span{right:25px}.revisions-tooltip,.revisions-tooltip-arrow>span{border:1px solid #d7d7d7;background-color:#fff}.revisions-tooltip{display:none}.arrow{width:70px;height:16px;overflow:hidden;position:absolute;left:0;margin-left:-35px;bottom:90px;z-index:10000}.arrow::after{z-index:9999;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.arrow.top{top:-16px;bottom:auto}.arrow.left{left:20%}.arrow:after{content:"";position:absolute;left:20px;top:-20px;width:25px;height:25px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.revisions-tooltip,.revisions-tooltip-arrow:after{border-width:1px;border-style:solid}div.revisions-controls>.wp-slider>.ui-slider-handle{margin-left:-10px}.rtl div.revisions-controls>.wp-slider>.ui-slider-handle{margin-right:-10px}.wp-slider.ui-slider{position:relative;border:1px solid #d7d7d7;text-align:left;cursor:pointer}.wp-slider .ui-slider-handle{-webkit-border-radius:50%;border-radius:50%;height:18px;margin-top:-3px;outline:0;position:absolute;width:18px;z-index:2}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#2ea2cc;border:1px solid #0074a2;-webkit-box-shadow:inset 0 1px 0 #78c8e6,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #78c8e6,0 1px 0 rgba(0,0,0,.15)}.wp-slider .ui-slider-handle:before{background:0 0;position:absolute;top:0;left:0;color:#fff;content:"\f229";font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{font-size:20px!important;margin:-1px 0 0 -1px}.wp-slider .ui-slider-handle.from-handle:before{content:'\f139'}.rtl .wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{content:'\f141'}.rtl .wp-slider .ui-slider-handle.to-handle:before{content:'\f139';right:-1px}.wp-slider .ui-slider-range{position:absolute;font-size:.7em;display:block;border:0;background-color:transparent;background-image:none}.wp-slider.ui-slider-horizontal{height:.7em}.wp-slider.ui-slider-horizontal .ui-slider-handle{top:-.25em;margin-left:-.6em}.wp-slider.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.wp-slider.ui-slider-horizontal .ui-slider-range-min{left:0}.wp-slider.ui-slider-horizontal .ui-slider-range-max{right:0}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.revision-tick.completed-false{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){#diff-next-revision,#diff-previous-revision{margin-top:-1em}table.diff{-ms-word-break:break-all;word-break:break-all;word-wrap:break-word}}.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #dfdfdf;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:600}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.describe-toggle-off,.describe-toggle-on,.media-item .edit-attachment{display:block;line-height:36px;float:right}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}#media-items .media-item{border-bottom:1px solid #dfdfdf;min-height:36px;position:relative;width:100%}#media-items{width:623px}.media-new-php #media-items{margin:1em 0}#media-items:empty{border:0 none}.media-item .filename{line-height:36px;overflow:hidden}.media-item .pinkynail{float:left;margin:2px 10px 0 0;max-width:40px;max-height:32px}.media-item .startclosed,.media-item .startopen{display:none}.media-item .original{position:relative;height:34px}.media-item .progress{float:right;height:22px;margin:7px 0 0;width:200px;line-height:2em;padding:0;overflow:hidden;margin-bottom:2px;-webkit-border-radius:22px;border-radius:22px;background:#ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;-webkit-border-radius:22px;border-radius:22px;background-color:#0074a2;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,.3);box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item.error{margin:0;padding:0}.media-item .error-div,.media-upload-form .media-item.error p{line-height:16px;margin:5px 10px;padding:0}.media-item .error-div a.dismiss{display:block;float:right;margin:5px 4px 0 15px}.find-box{background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-left:-300px;position:fixed;top:30px;bottom:30px;left:50%;z-index:100105}.find-box-head{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 36px 0 16px;position:absolute;top:0;left:0;right:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;left:125px;position:absolute;top:18px}#find-posts-input,#find-posts-search{float:left}#find-posts-input{width:140px;height:28px;margin:0 4px 0 0}.widefat .found-radio{padding-right:0;width:16px}#find-posts-close{width:36px;height:36px;position:absolute;top:0;right:0;cursor:pointer;text-align:center;color:#666}#find-posts-close:hover{color:#2ea2cc}#find-posts-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f158'}.find-box-buttons{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;left:0;right:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;left:0;right:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em 0}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #ddd;line-height:1.8em;word-spacing:3px;-webkit-border-radius:6px;border-radius:6px}.drag-drop #drag-drop-area{border:4px dashed #bbb;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#aaa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative}.imgedit-settings p{margin:8px 0 0}.describe .imgedit-wrap .imgedit-settings{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto;overflow:hidden}.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{padding-right:16px;width:auto;overflow:hidden}.wp_attachment_holder .imgedit-wrap .imgedit-settings{float:right;width:250px}.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;background:#fff url(../images/spinner.gif) no-repeat center;-webkit-background-size:20px 20px;background-size:20px 20px;opacity:.7;filter:alpha(opacity=70);width:100%;height:500px;display:none}.no-float{float:none}.imgedit-settings .disabled,.media-disabled{color:grey}.A1B1,.wp_attachment_image{overflow:hidden}.A1B1 .button,.wp_attachment_image .button{float:left}.no-js .wp_attachment_image .button{display:none}.A1B1 .spinner,.wp_attachment_image .spinner{float:left;padding:0 0 4px;vertical-align:bottom}.imgedit-menu{margin:0 0 12px;min-width:300px}.imgedit-menu div{float:left;width:32px;border:1px solid #d5d5d5;background:#f1f1f1;margin:0 8px 0 0;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;line-height:28px;color:#777;cursor:pointer}.imgedit-menu div:before{font:400 20px/1 dashicons;speak:none;vertical-align:middle}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea;color:#333}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;color:#777;filter:alpha(opacity=50);opacity:.5;cursor:default}.imgedit-crop:before{content:'\f165'}.imgedit-rleft:before{content:'\f166'}.imgedit-rright:before{content:'\f167'}.imgedit-flipv:before{content:'\f168'}.imgedit-fliph:before{content:'\f169'}.imgedit-undo:before{content:'\f171'}.imgedit-redo:before{content:'\f172'}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 8px 0 0}.imgedit-rleft{margin:0 3px}.imgedit-rright{margin:0 8px 0 3px}.imgedit-flipv{margin:0 3px}.imgedit-fliph{margin:0 8px 0 3px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 8px 0 3px}.imgedit-applyto img{margin:0 8px 0 0}.imgedit-group-top{margin:5px 0}#poststuff .imgedit-group-top h3{padding:0}.imgedit-group-top h3 a{text-decoration:none}.imgedit-applyto .imgedit-label{padding:2px 0 0;display:block}.imgedit-help{display:none;font-style:italic}a.imgedit-help-toggle{text-decoration:none}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-group{margin-bottom:8px;padding:2px 10px}audio,video{display:inline-block;max-width:100%}.mejs-container{width:100%}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5em}}.theme-browser .themes{clear:both;padding:0 0 100px}.themes-php .wrap h2{float:left;margin-bottom:15px}.network-admin.themes-php .wrap h2{margin-bottom:0}.themes-php .wrap h2 .button{margin-left:20px}.theme-navigation .theme-count,.themes-php .wrap .theme-count{color:#fff;-webkit-border-radius:30px;border-radius:30px;background:#777;font-size:14px;padding:4px 10px;font-weight:600;margin-left:5px;margin-right:20px;position:relative;top:-3px}.theme-navigation a{text-decoration:none}.themes-php div.error,.themes-php div.updated{margin:0 0 20px;clear:both}.themes-php div.updated a{text-decoration:underline}.theme-browser .theme{cursor:pointer;float:left;margin:0 4% 4% 0;position:relative;width:30.6%;border:1px solid #dedede;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ie8 .theme-browser .theme{width:30%;margin:0 3% 4% 0}.theme-browser .theme:nth-child(3n){margin-right:0}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{-ms-filter:"alpha(Opacity=0)";opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;right:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-left:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:focus .theme-actions,.theme-browser .theme:hover .theme-actions{-ms-filter:"alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-right:3px}.theme-browser .theme .theme-actions .button-secondary{float:none;margin-left:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:'';display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;left:0;top:0;width:100%;-webkit-transform:translateZ(0);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme:focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{-ms-filter:"alpha(Opacity=0)";opacity:0;position:absolute;top:35%;right:25%;left:25%;background:#222;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.theme-browser .theme:focus{outline:1px dotted #222}.theme-browser .theme:focus .more-details{opacity:1}.theme-browser .theme.active:focus .theme-actions{display:block}.theme-browser.rendered .theme:focus .more-details,.theme-browser.rendered .theme:hover .more-details{-ms-filter:"alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-installed,.theme-browser .theme .theme-update{background:#d54e21;background:rgba(213,78,33,.95);color:#fff;display:block;font-size:13px;font-weight:400;height:48px;line-height:48px;padding:0 10px;position:absolute;top:0;right:0;left:0;border-bottom:1px solid rgba(0,0,0,.25);overflow:hidden}.theme-browser .theme .theme-installed:before,.theme-browser .theme .theme-update:before{content:'\f463';display:inline-block;font:400 20px/1 dashicons;margin:0 6px 0 0;opacity:.8;position:relative;top:5px;speak:none;-webkit-font-smoothing:antialiased}.theme-browser .theme.active .theme-name{background:#2f2f2f;color:#fff;padding-right:110px;font-weight:300;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(49,49,49,.7);border-left:0;opacity:1}.theme-browser .theme.active .theme-actions .button-primary{margin-right:0}.theme-browser .theme .theme-author{background:#222;color:#eee;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit;text-decoration:none}.theme-browser .theme.add-new-theme{border:0;-webkit-box-shadow:none;box-shadow:none}.theme-browser .theme.add-new-theme a{color:#999;text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme:after{display:block;content:'';-ms-filter:"alpha(Opacity=100)";opacity:1;background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;left:0;right:0;bottom:0;padding:10% 0 0;text-shadow:none;border:5px dashed #d5d2ca;border:5px dashed rgba(0,0,0,.1);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#e5e5e5;background:rgba(153,153,153,.1);-webkit-border-radius:50%;border-radius:50%;display:inline-block;content:'\f132';-webkit-font-smoothing:antialiased;font:400 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#999;position:absolute;top:30%;left:50%;margin-left:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme:focus .theme-screenshot,.theme-browser .theme.add-new-theme:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme:focus span:after,.theme-browser .theme.add-new-theme:hover span:after{background:#fff;color:#0074a2}.theme-browser .theme.add-new-theme:focus:after,.theme-browser .theme.add-new-theme:hover:after{border-color:transparent;color:#fff;background:#0074a2;content:''}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;-webkit-box-shadow:none;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-10%;margin-bottom:10%}.theme-browser .theme.add-new-theme:focus .theme-name,.theme-browser .theme.add-new-theme:hover .theme-name{color:#fff;z-index:2}.themes-php .theme-search{position:relative;top:-2px;left:20px;font-size:16px;font-weight:300;line-height:1.5;width:280px}.theme-overlay .theme-backdrop{position:absolute;left:-20px;right:0;top:0;bottom:0;background:#f1f1f1;background:rgba(238,238,238,.9);z-index:10}body.theme-overlay-open{overflow:hidden}.theme-overlay .theme-header{position:absolute;top:0;left:0;right:0;height:48px;border-bottom:1px solid #ddd}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:right;border:0;border-left:1px solid #ddd;background-color:transparent}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#fff}.theme-overlay .theme-header .close:before{font:400 30px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#777;background-color:transparent;height:48px;width:54px;float:left;text-align:center;border:0;border-right:1px solid #ddd}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#0074a2;color:#fff}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#ccc;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.theme-overlay .theme-header .left:before{content:'\f340'}.theme-overlay .theme-header .right:before{content:'\f344'}.rtl .theme-overlay .theme-header .left:before{content:'\f345'}.rtl .theme-overlay .theme-header .right:before{content:'\f341'}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;left:190px;right:30px;bottom:3%;background:#fff;-webkit-box-shadow:0 1px 20px 5px rgba(0,0,0,.1);box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:20;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-overlay .theme-wrap:after{content:".";display:block;height:0;clear:both;visibility:hidden}body.folded .theme-overlay .theme-wrap{left:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;left:0;right:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-about:after{content:".";display:block;height:0;clear:both;visibility:hidden}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;left:0;right:0;padding:10px 25px 5px;background:#f3f3f3;z-index:30;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-top:1px solid #eee}.ie8 .theme-overlay .theme-actions{border:1px solid #eee}.theme-overlay .theme-actions a{margin-right:5px;margin-bottom:5px}.theme-overlay .theme-actions .delete-theme{color:#a00;position:absolute;right:10px;bottom:5px;text-decoration:none;border-color:transparent;-webkit-box-shadow:none;box-shadow:none;background:0 0}.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#d54e21;color:#fff;border-color:#d54e21}.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:left;margin:0 30px 0 0;width:55%;max-width:880px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:'';display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;left:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:350px;width:auto}.theme-overlay .screenshot.thumb{background:#ccc;border:1px solid #eee;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:'';display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;position:absolute;left:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #2ea2cc}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:left}.theme-overlay .current-label{background:#333;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;-webkit-border-radius:2px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-name{color:#222;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3}.theme-overlay .theme-version{color:#999;font-size:13px;font-weight:400;float:none;display:inline-block;margin-left:10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-author{color:#686868;font-size:16px;font-weight:400;margin:15px 0 25px}.theme-overlay .theme-author a{text-decoration:none}.theme-overlay .theme-description{color:#555;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #eee;color:#888;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#444;font-weight:700;margin-right:5px}.theme-overlay .theme-update-message{background:#fef7f1;border:1px solid #eee;border-left:4px solid #d54e21;-webkit-border-radius:3px;border-radius:3px;padding:5px 20px 10px}.theme-overlay .theme-update{color:#222;font-size:18px;display:inline-block;line-height:40px;margin:0}.theme-overlay .parent-theme{background:#f7fcfe;border:1px solid #eee;border-left:4px solid #2ea2cc;font-size:14px;font-weight:400;margin-top:30px;padding:10px 10px 10px 20px}.theme-overlay .parent-theme strong{font-weight:700}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;left:auto;right:auto;top:auto;bottom:auto}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 3% 3% 0}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-right:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-right:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 3% 3% 0}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-right:3%}.theme-browser .theme:nth-child(4n){margin-right:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-right:0}.theme-browser .theme:nth-child(even){margin-right:0}.theme-browser .theme:nth-child(odd){margin-right:5%}}@media only screen and (max-width:900px){.theme-overlay .theme-wrap{left:65px}}@media only screen and (max-width:780px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;right:0;bottom:0;left:0;padding:70px 20px 20px;border:0;z-index:500;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:0;width:auto}.theme:focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-right:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-right:0}}@media only screen and (max-width:650px){.theme-overlay .theme-description,.theme-overlay .theme-update{margin-left:0}.theme-overlay .theme-actions .delete-theme{position:relative;right:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wrap h2{width:100%}.themes-php .theme-search{float:none;clear:both;left:0;top:0;right:0;margin:10px 0;width:100%}.theme-browser .theme.add-new-theme span:after{font:400 60px/90px dashicons;width:80px;height:80px;top:30%;left:50%;text-indent:0;margin-left:-40px}.single-theme .theme-wrap{margin:0 -12px 0 -10px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:left;width:50%;border-spacing:3px;padding:3px}.theme-browser .theme .theme-installed{background:#0074a2}.theme-browser .theme .theme-installed:before{content:'\f147'}.theme-browser .theme.is-installed .theme-actions .button-primary{display:none!important}.theme-navigation{background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:#555;display:inline-block;font-size:13px;margin:20px 0 30px;padding:0 20px;position:relative;width:100%}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.theme-install-php a.browse-themes,.theme-install-php.show-upload-theme a.upload{display:none}.theme-install-php.show-upload-theme a.browse-themes{display:inline}.upload-theme{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:none;margin:0;padding:0;width:100%;overflow:hidden;position:relative;top:10px}body.show-upload-theme .upload-theme{display:block}.upload-theme .wp-upload-form{background:#fafafa;border:1px solid #e5e5e5;padding:30px;margin:30px auto;max-width:380px}.upload-theme .install-help{color:#999;font-size:18px;font-style:normal;margin:0;padding:40px 0 0;text-align:center}body.show-upload-theme .upload-theme+.theme-navigation,body.show-upload-theme .upload-theme+.theme-navigation+.theme-browser{display:none}.theme-navigation .theme-count{margin-left:0;position:absolute;top:12px}.theme-count+.theme-section{margin-left:60px}.theme-filter,.theme-section{border-bottom:4px solid #fff;color:#666;cursor:pointer;display:inline-block;margin:0 10px;padding:15px 0}.theme-filter.current,.theme-section.current{border-bottom:4px solid #666;color:#222}.theme-top-filters{display:inline-block}.theme-navigation .more-filters{color:#666;cursor:pointer;display:inline-block;margin:0 10px;padding:4px 6px}body.more-filters-opened .more-filters,body.more-filters-opened .more-filters:before{background:#777;-webkit-border-radius:2px;border-radius:2px;border:0;color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:hover:before{background:#2ea2cc}.theme-install-php .theme-search{position:absolute;right:10px;top:9px;font-size:16px;font-weight:300;line-height:1.5;width:280px}.more-filters:before{color:#777;margin:0 5px 0 0;content:"\f111";display:inline-block;width:16px;height:16px;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center}.more-filters.current:before{color:#fff}.more-filters-container{display:none;padding:20px;border-top:1px solid #eee;margin:0 -20px;background:#fafafa}body.more-filters-opened .more-filters-container{display:block;overflow:hidden}body.more-filters-opened .theme-section.current{border-bottom:0}body.more-filters-opened .theme-browser,body.more-filters-opened.filters-applied.loading-themes .theme-browser{display:none}body.more-filters-opened.filters-applied .theme-browser{display:block}.more-filters-container .filters-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;width:19%;background:#fff;margin:0 1% 0 0;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);padding:10px}.more-filters-container .wide-filters-group{width:38%}.more-filters-container .feature-name{margin:0;position:relative}.more-filters-container ol{list-style-type:none;margin:20px 0 0;font-size:12px}.more-filters-container li{display:inline-block;vertical-align:top;list-style-type:none;margin:5px 0;padding-right:25px;width:160px}.theme-navigation .more-filters-container .apply-filters{margin:0 0 20px}.theme-navigation .more-filters-container .clear-filters{display:none;margin:0 0 20px 10px}.more-filters-container .apply-filters span{display:inline-block;font-size:12px;text-indent:10px;opacity:.8}.more-filters-container .filtering-by{display:none;margin:0}.more-filters-container .filtering-by>span{font-weight:600}.more-filters-container .filtering-by .tags{display:inline}.more-filters-container .filtering-by .tag{background:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);font-size:11px;margin:0 5px;padding:4px 8px}.more-filters-container .filtering-by a{margin-left:10px}body.filters-applied .more-filters-container .filters-group,body.filters-applied .more-filters-container a.button,body.filters-applied .more-filters-container br{display:none!important}body.filters-applied .more-filters-container .filtering-by{display:block}body.filters-applied .more-filters-container{padding:20px}p.no-themes{color:#999;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center;display:none}body.no-results p.no-themes{display:block}.theme-install-php .add-new-theme,body.show-upload-theme p.no-themes{display:none!important}@media only screen and (max-width:1120px){.theme-install-php .theme-search{margin:20px 0;position:static;width:100%}.more-filters-container{border-bottom:1px solid #eee}.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0;text-align:left}.more-filters-container .filters-group{margin-bottom:0;margin-top:5px;width:100%}.more-filters-container .filters-group li{margin:10px 0}}@media only screen and (max-width:782px){.more-filters-container .filters-group,.more-filters-container .filters-group li{width:100%}}.rating{margin:30px 0}.rating span:before{color:#e6b800;content:"\f154";display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/1 dashicons;vertical-align:top}.rating-10 span.one:before,.rating-30 span.two:before,.rating-50 span.three:before,.rating-70 span.four:before,.rating-90 span.five:before{content:"\f459"}.rating-100 span.five:before,.rating-100 span.four:before,.rating-100 span.one:before,.rating-100 span.three:before,.rating-100 span.two:before,.rating-20 span.one:before,.rating-30 span.one:before,.rating-40 span.one:before,.rating-40 span.two:before,.rating-50 span.one:before,.rating-50 span.two:before,.rating-60 span.one:before,.rating-60 span.three:before,.rating-60 span.two:before,.rating-70 span.one:before,.rating-70 span.three:before,.rating-70 span.two:before,.rating-80 span.four:before,.rating-80 span.one:before,.rating-80 span.three:before,.rating-80 span.two:before,.rating-90 span.four:before,.rating-90 span.one:before,.rating-90 span.three:before,.rating-90 span.two:before{content:"\f155"}.rating .ratings{display:inline;margin-left:10px;line-height:20px;color:#999}.error .theme-browser,.loading-themes .theme-browser{display:none}.loading-themes .spinner{display:block;margin:40px auto 0;float:none}.appearance_page_custom-header #headimg{border:1px solid #DFDFDF;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:left;margin:0 20px 20px 0}.appearance_page_custom-header .random-header{clear:both;margin:0 20px 20px 0;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dfdfdf}div#custom-background-image img{max-width:400px;max-height:300px}body.full-overlay-active{overflow:hidden}.wp-full-overlay{background:0 0;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:fixed;width:300px;height:100%;top:0;bottom:0;left:0;padding:0;margin:0;z-index:10;overflow:auto;background:#eee;border-right:0}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-left:0!important}.wp-full-overlay.expanded{margin-left:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-300px}.wp-full-overlay-sidebar:after{content:'';display:block;position:absolute;top:0;bottom:0;right:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;left:0;right:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;left:0;right:0;height:45px;padding:0 15px;line-height:45px;z-index:10;margin:0;border-top:0;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:0;border-top:0;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;left:0;right:0;overflow:auto}.wp-full-overlay .close-full-overlay{text-decoration:none}.wp-full-overlay a.collapse-sidebar{position:absolute;bottom:12px;left:0;z-index:50;display:block;width:19px;height:19px;margin-left:15px;padding:0;-webkit-border-radius:50%;border-radius:50%;color:#777;text-decoration:none}.wp-full-overlay a.collapse-sidebar:hover{color:#0074a2}.wp-full-overlay.collapsed .collapse-sidebar{position:absolute;left:100%}.wp-full-overlay .collapse-sidebar-arrow{position:static;margin-top:0;margin-left:0;display:block;width:auto;height:auto;background:0 0}.wp-full-overlay .collapse-sidebar-arrow:before{-webkit-border-radius:50%;border-radius:50%;float:left;content:"\f148";background:#eee;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:none;-ms-transform:none;transform:none}.wp-full-overlay.collapsed .collapse-sidebar-arrow{background-position:-1px -109px}.wp-full-overlay .collapse-sidebar-label{position:absolute;left:100%;line-height:20px;margin-left:10px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .theme-navigation{padding:10px 20px;position:absolute;bottom:10px;text-align:left}.wp-full-overlay .theme-navigation .next-theme{float:right}.wp-full-overlay.no-navigation .theme-navigation{display:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{-webkit-transition-property:left,right,top,bottom,width,margin;transition-property:left,right,top,bottom,width,margin;-webkit-transition-duration:.2s;transition-duration:.2s}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%}.customize-active #customize-container{display:block}.customize-loading #customize-container iframe{opacity:0}.customize-loading #customize-container{background:#fff url(../images/spinner.gif) no-repeat fixed center center;-webkit-background-size:20px 20px;background-size:20px 20px}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;transition:opacity .3s}#customize-container .collapse-sidebar{bottom:16px}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:right;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin-top:15px;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0;float:left}.theme-details .star-rating{margin:7px 0;float:right}.theme-details .theme-description{float:left;color:#777;line-height:20px;max-width:100%}.theme-install-overlay .wp-full-overlay-header{margin-top:9px}.theme-install-overlay .wp-full-overlay-header .theme-install{float:right;line-height:26px}.theme-install-overlay .wp-full-overlay-sidebar{background:#EEE;border-right:1px solid #DDD}.theme-install-overlay .wp-full-overlay-main{background:#fff url(../images/spinner.gif) no-repeat center center;-webkit-background-size:20px 20px;background-size:20px 20px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);-webkit-background-size:15px 123px;background-size:15px 123px}.customize-loading #customize-container,.theme-install-overlay .wp-full-overlay-main{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}}.press-this #message{border-left:4px solid #7ad03a;padding:1px 12px;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.press-this #side-sortables .category-tabs li{display:inline;line-height:1.35em}body.press-this ul.category-tabs li.tabs a{color:#333}.press-this #content-resize-handle{bottom:2px}body.press-this{color:#333;margin:0;padding:0;min-width:708px;min-height:400px}.press-this #titlediv #title{font-size:1.4em}.press-this #site-heading:before{top:3px;position:relative;display:inline-block;font:400 18px/1 dashicons;speak:none;color:#727272;content:'\f120';-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.press-this #wphead{height:32px;margin-left:0;margin-right:0;margin-bottom:5px}.press-this #header-logo{float:left;margin:7px 7px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.press-this #wphead h1{font-weight:400;font-size:16px;line-height:32px;margin:0;float:left}.press-this #wphead h1 a{text-decoration:none}.press-this #wphead h1 a:hover{text-decoration:underline}.press-this #message{margin:10px 0}.press-this .posting{margin-right:250px}.press-this-sidebar{float:right;width:240px;padding-top:10px}.press-this #title{margin-left:0;margin-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.press-this .tagchecklist{margin-top:8px}.press-this #titlediv{margin:0}.press-this #wp-content-wrap #wp-content-editor-tools{padding:0;top:3px;overflow:hidden}.press-this .wp-media-buttons{cursor:default;padding:8px 8px 6px}.press-this #wp-content-wrap #wp-content-media-buttons a{padding:0;line-height:normal;height:auto;font-size:16px}.press-this #wp-content-wrap .mce-toolbar .mce-btn-group .mce-btn{margin:0 1px}.press-this #wp-content-wrap .mce-toolbar .mce-btn button{padding:2px 3px}.press-this #wp-content-wrap .quicktags-toolbar,.press-this #wp-content-wrap div.mce-toolbar-grp{padding-right:3px}.press-this .howto{margin-top:2px;margin-bottom:3px;font-size:12px;font-style:italic;display:block}.press-this #wp-content-editor-container{clear:none}.press-this #poststuff .inside{margin-top:18px}.press-this .category-tabs{margin-bottom:3px}.press-this #poststuff{margin:0 8px;padding:0}.press-this #photo-add-url-div input[type=text]{width:220px}#poststuff #editor-toolbar{height:30px}.posting{margin-right:212px;position:relative}.press-this .inner-sidebar{width:200px}.press-this .inner-sidebar .sleeve{padding-top:5px}.press-this #submitdiv p{margin:0;padding:6px}.press-this #submitdiv #publishing-actions{border-bottom:1px solid #dfdfdf}.press-this #publish{float:right}.press-this #poststuff h2,.press-this #poststuff h3{font-size:14px;line-height:1}.press-this #categorydiv h3,.press-this #tagsdiv-post_tag h3{cursor:pointer}.press-this #submitdiv h3{cursor:default}h3.tb{font-weight:600;font-size:12px;margin-left:5px}.press-this .postbox,.press-this .stuffbox{margin-bottom:10px;min-width:0}.press-this #submitdiv:hover .handlediv{background:0 0}.tbtitle{font-size:1.7em;outline:0;padding:3px 4px;border:1px solid #dfdfdf}.press-this .actions{float:right;margin:-19px 0 0}.press-this #extra-fields .actions{margin:-32px -7px 0 0}.press-this .actions li{float:left;list-style:none;margin-right:10px}#extra-fields .button{margin-right:5px}#photo_saving{margin:0 8px 8px;vertical-align:middle}#img_container_container{overflow:auto}#extra-fields{margin-top:10px;position:relative}#extra-fields h2{margin:12px}#waiting{margin-top:10px;overflow:hidden}#waiting span{float:right;margin:0 0 0 5px}#waiting .spinner{display:block}#extra-fields .postbox{margin-bottom:5px}#extra-fields .titlewrap{padding:0;overflow:auto;height:120px}#img_container a{float:left;overflow:hidden}#img_container a,#img_container img{width:68px;height:68px}#img_container img{border:0;background-color:#f4f4f4;cursor:pointer}#img_container a,#img_container a:link,#img_container a:visited{border:1px solid #ccc;display:block;position:relative}#img_container a:active,#img_container a:hover{border-color:#000;z-index:1000;border-width:1px}#embed-code{width:100%;height:98px}.press-this .categorydiv div.tabs-panel{height:100px}.press-this .tagsdiv .newtag{width:120px}.press-this #content{margin:5px 0;padding:0 5px;border:0 none;height:340px;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:19px;background:0 0}.press-this #publishing-actions .spinner{display:inline;vertical-align:middle}@media screen and (max-width:782px){.press-this ul.category-tabs li.tabs{padding:3px 5px 5px}.press-this a.wp-switch-editor{font:13px/19px "Open Sans",sans-serif;margin:5px 0 0 5px;padding:3px 8px 4px}.press-this #wp-content-media-buttons a{padding:0;line-height:normal;height:auto}.press-this #wp-content-editor-tools{padding:0;top:3px}.press-this .category-tabs{margin-top:0}.press-this .tagsdiv .newtag{width:120px;padding:3px 5px;margin-bottom:0}.press-this .tagchecklist{padding:0;margin-bottom:0}.press-this .wp_themeSkin a.mceButton{width:20px;height:20px}.press-this .wp_themeSkin .mceButton .mceIcon{margin:0}.press-this #poststuff h3,.press-this .metabox-holder h3{padding:7px 12px}.press-this input[type=checkbox],.press-this input[type=radio]{height:16px;width:16px}.press-this input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px 0 0 -4px}.press-this input[type=radio]:checked:before{font:400 21px/1 dashicons;width:6px;height:6px;margin:4px}.press-this ul.categorychecklist li,.press-this ul.categorychecklist ul{margin-top:0;margin-bottom:0}.press-this div.quicktags-toolbar input{padding:2px 4px}.press-this input,.press-this textarea{font-size:14px}.press-this .tagchecklist span{font-size:13px;line-height:1.8em}}.about-wrap{position:relative;margin:25px 40px 0 20px;max-width:1050px;font-size:15px}.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;vertical-align:middle}.about-wrap p{line-height:1.6em;font-size:14px}.about-wrap h1{margin:.2em 200px 0 0;color:#333;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h4{color:#222}.about-wrap .about-text,.about-wrap li.wp-person a.web,.about-wrap p.about-description{font-weight:400;line-height:1.6em;font-size:19px}.about-description{margin-top:1.4em}.about-text{margin:1em 200px 1em 0;min-height:60px;color:#777;font-size:24px}.about-wrap .changelog h2.about-headline-callout{margin:1.1em 0 .2em;font-size:2.4em;font-weight:300;line-height:1.3;text-align:center}.about-wrap h3{margin:1em 0 .6em;font-size:1.5em;line-height:1.5em}.customize h3{margin-top:1.75em;text-align:center}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1.2em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap code,.about-wrap ol li p{font-size:14px}.about-wrap .button.button-large{padding:8px 20px 10px!important;height:46px!important;font-size:14px;line-height:28px!important}.about-wrap .about-overview-img{margin:0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #dfdfdf}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.wp-badge{background:#0074a2 url(../images/w-logo-white.png?ver=20131202) no-repeat;background:#0074a2,url(../images/wordpress-logo-white.svg?ver=20131110) no-repeat;background-position:center 24px;-webkit-background-size:85px 85px;background-size:85px 85px;color:#78c8e6;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:150px;text-rendering:optimizeLegibility;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.about-wrap .wp-badge{position:absolute;top:0;right:0}.about-wrap h2.nav-tab-wrapper{padding-left:6px}.about-wrap h2 .nav-tab{padding:4px 15px 6px;margin:0 3px -1px 0;font-size:18px;vertical-align:top;border-width:1px}.about-overview{margin-top:40px;text-align:center}.about-overview .wp-video{margin:0 auto}.changelog .wp-playlist .wp-playlist-current-item img{height:64px;width:auto;max-width:100%}.about-wrap .feature-section{margin-top:40px;padding-bottom:20px}.about-wrap .feature-section.two-col>div{position:relative;width:47.5%;margin-right:4.999999999%;float:left}.about-wrap .feature-section.three-col>div{position:relative;width:29.95%;margin-right:4.999999999%;float:left}.about-wrap .feature-section.col .last-feature{margin-right:0}.about-wrap .under-the-hood .feature-section{margin-top:0}.about-wrap .changelog .feature-section{overflow:hidden}.about-wrap .feature-section.two-col div p{margin-right:3%}.about-wrap .feature-section div p img{float:right;margin-left:10px;max-width:20%}.about-wrap .changelog li{list-style-type:disc;margin-left:3em}.about-wrap .return-to-dashboard{margin:30px 0 0 -5px;font-size:14px;font-weight:700}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h4.wp-people-group{margin-top:2.6em;font-size:16px}.about-wrap ul.wp-people-group{overflow:hidden;padding:0 5px;margin:0 -15px 0 -5px}.about-wrap ul.compact{margin-bottom:0}.about-wrap li.wp-person{float:left;margin-right:10px}.about-wrap li.wp-person img.gravatar{float:left;margin:0 10px 10px 0;padding:2px;width:60px;height:60px}.about-wrap ul.compact li.wp-person img.gravatar{width:30px;height:30px}.about-wrap li.wp-person{height:70px;width:280px;padding-bottom:15px}.about-wrap ul.compact li.wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap li.wp-person a.web{display:block;margin:6px 0 2px;font-size:16px;text-decoration:none}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:700}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:782px){.about-wrap .feature-section.one-col>div,.about-wrap .feature-section.three-col>div,.about-wrap .feature-section.two-col>div{width:100%;margin:0 0 40px;padding:0 0 40px;float:none;border-bottom:1px solid rgba(0,0,0,.1)}.about-wrap .feature-section.col>div.last-feature,.about-wrap .under-the-hood .feature-section>div{margin:0;padding:0;border-bottom:0}}@media only screen and (max-width:500px){.about-wrap{margin-right:20px;margin-left:10px}.about-text,.about-wrap h1{margin-right:0}.about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .feature-section.three-col div{width:100%;float:none}.about-wrap .three-col.about-updates .col-1{padding:0;float:none}.about-wrap .three-col.about-updates .col-2{margin:0 0 20px;width:100%;float:none}}.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 5px 3px 8px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}#nav-menus-frame{margin-left:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-left:-300px;clear:both;float:left;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-name{height:2em}.blank-slate .menu-settings{border:0;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#999;font-style:italic;font-weight:400;margin-left:4px}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus select{float:left;margin-right:6px}.manage-menus .selected-menu{float:left;margin:5px 6px 0 0}.manage-menus .submit-btn{float:left;margin-top:1px}.menu-edit p{margin:.3em 0 .6em}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings dl{margin:0 0 10px;overflow:hidden;padding-left:18%}.menu-settings dd{float:left;margin:0;width:100%}.menu-settings dt{float:left;clear:both;width:21.951%;padding:3px 0 0;margin-left:-21.951%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#999;font-size:11px}#menu-management-liquid{float:left;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-right:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #dfdfdf;margin-bottom:0}#nav-menu-header .menu-name-label{margin-top:4px}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#menu-management .menu-add-new abbr{font-weight:600}#select-nav-menu-container{text-align:right;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat td.menu-location-menus{padding-bottom:5px}.menu-location-menus select{float:left}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:left;width:160px;margin-right:5px}.locations-row-links{float:left;margin:6px 0 0 6px}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-right:3px;border-right:1px solid #ccc}#wpbody .open-label{display:block;float:left}#wpbody .open-label span{padding-right:10px}.js .input-with-default-title{color:#aaa;font-style:italic}#menu-management .inside{padding:0 10px}.accordion-container .howto input,.postbox .howto input{width:180px;float:right}.accordion-container .outer-border{margin:0}.customlinkdiv .howto input{width:180px}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:right}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}.nav-menus-php .add-new-menu-action{float:left;margin:6px 0 0 6px;line-height:15px}.nav-menus-php .meta-sep,.nav-menus-php .submitcancel,.nav-menus-php .submitdelete{display:block;float:left;margin:6px 0;line-height:15px}.meta-sep{padding:0 2px}#cancel-save{text-decoration:underline;font-size:12px;margin-left:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:right}.list-controls{float:left;margin-top:5px}.add-to-menu{float:right}.postbox .spinner{display:none;vertical-align:middle}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link .howto{font-size:12px}#add-custom-link label span{display:block;float:left;margin-top:5px;padding-right:5px}.menu-item-textbox{width:180px}.nav-menus-php .howto span{margin-top:6px;display:block;float:left}.quick-search{width:190px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0;margin-bottom:5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-right:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #dfdfdf;position:relative;padding:10px 15px;height:auto;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-right:13em}li.menu-item.ui-sortable-helper dl{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport dl{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:30px}.menu-item-depth-2{margin-left:60px}.menu-item-depth-3{margin-left:90px}.menu-item-depth-4{margin-left:120px}.menu-item-depth-5{margin-left:150px}.menu-item-depth-6{margin-left:180px}.menu-item-depth-7{margin-left:210px}.menu-item-depth-8{margin-left:240px}.menu-item-depth-9{margin-left:270px}.menu-item-depth-10{margin-left:300px}.menu-item-depth-11{margin-left:330px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-30px}.menu-item-depth-2 .menu-item-transport{margin-left:-60px}.menu-item-depth-3 .menu-item-transport{margin-left:-90px}.menu-item-depth-4 .menu-item-transport{margin-left:-120px}.menu-item-depth-5 .menu-item-transport{margin-left:-150px}.menu-item-depth-6 .menu-item-transport{margin-left:-180px}.menu-item-depth-7 .menu-item-transport{margin-left:-210px}.menu-item-depth-8 .menu-item-transport{margin-left:-240px}.menu-item-depth-9 .menu-item-transport{margin-left:-270px}.menu-item-depth-10 .menu-item-transport{margin-left:-300px}.menu-item-depth-11 .menu-item-transport{margin-left:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{color:#777;font-size:12px;padding:12px 10px;line-height:18px;display:block}.item-controls{font-size:12px;position:absolute;right:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls a:hover{cursor:pointer}.item-controls .item-order{padding-right:10px}.nav-menus-php .item-edit{position:absolute;right:-20px;top:0;display:block;width:30px;height:40px;margin-right:0!important;text-indent:100%;outline:0;overflow:hidden;white-space:nowrap}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 0 10px 10px;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move a{display:none;margin:0 2px}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em auto;text-align:center}.link-to-original{display:block;margin:0 0 10px;padding:3px 5px 5px;border:1px solid #dfdfdf;color:#777;font-size:12px;font-style:italic}.link-to-original a{padding-left:4px;font-style:normal}.hidden-field{display:none}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-right:10px;float:left}.description-thin{width:190px;height:40px}.description-wide{width:390px}.menu-item-actions{padding-top:15px}#cancel-save{cursor:pointer}.nav-menus-php .major-publishing-actions{clear:both;padding:3px 0 6px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:right;float:right;line-height:23px;margin:4px 0 1px}.nav-menus-php .blank-slate .menu-settings{display:none}.nav-menus-php .delete-action{float:left;margin-top:2px}.nav-menus-php .submitbox .submitcancel{border-bottom:1px solid #0074a2;padding:1px 2px;color:#0074a2;text-decoration:none}.nav-menus-php .submitbox .submitcancel:hover{background:#0074a2;color:#fff}.nav-menus-php .major-publishing-actions .form-invalid{padding-left:4px;margin-left:-4px}#menu-item-name-wrap:after,#menu-item-url-wrap:after,#menu-name-label:after,#menu-settings-column .inside:after,#nav-menus-frame:after,.nav-menus-php #post-body-content:after,.nav-menus-php .button-controls:after,.nav-menus-php .major-publishing-actions:after,.nav-menus-php .menu-item-settings:after{clear:both;content:".";display:block;height:0;visibility:hidden}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-left:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-left:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .item-controls .item-type{margin-top:2px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}.menu-name-label #menu-name{margin-top:4px}.nav-menus-php .major-publishing-actions .publishing-action{margin-top:6px}.nav-menus-php .delete-action{font-size:14px;line-height:50px;margin-top:12px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide{width:100%;height:auto}.menu-item-settings input{width:100%}.menu-settings dl{padding-left:0}.menu-settings dd{float:none;width:100%;margin-bottom:15px}.menu-settings dt{float:none;width:auto;margin-left:0;margin-bottom:15px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}}.widget{margin:0 auto 10px;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.widget-top{font-size:13px;font-weight:600;background:#f7f7f7}.widget-top a.widget-action,.widget-top a.widget-action:hover{text-decoration:none}.widget-title h4{margin:0;padding:15px;line-height:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.widgets-holder-wrap .widget-inside{border-top:0;padding:1px 15px 15px;line-height:16px}#available-widgets .widget-description,#widgets-right a.widget-control-edit,.in-widget-title{color:#666}.deleting .widget-title,.deleting .widget-top a.widget-action:after{color:#aaa}.widget.ui-draggable-dragging{min-width:100%}.widget.ui-sortable-helper{opacity:.8}.widget-placeholder{border:1px dashed #bbb;margin:0 auto 10px;height:45px;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#widgets-right .widget-placeholder{margin-top:0}#widgets-right .closed .widget-placeholder{height:0;border:0;margin-top:-10px}.sidebar-name{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sidebar-name-arrow{position:absolute;top:0;right:0;bottom:0}.js .sidebar-name{cursor:pointer}.sidebar-name h3{margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap}.widgets-holder-wrap .description{padding:0 0 15px;margin:0;font-style:normal;color:#777}#widgets-right .widgets-holder-wrap .description{padding-left:7px;padding-right:7px}div.widget-liquid-left{margin:0;width:38%;float:left}div.widget-liquid-right{float:right;width:58%}div#widgets-left{padding-top:12px}div#widgets-left .closed .sidebar-name,div#widgets-left .inactive-sidebar.closed .sidebar-name{margin-bottom:10px}div#widgets-left .sidebar-name h3{padding:10px 0;margin:0 10px 0 0}div#widgets-left .sidebar-name .sidebar-name-arrow:before{right:0;top:4px;padding:4px 6px 4px 4px}#widgets-left #available-widgets,div#widgets-left .widget-holder{background:0 0;border:0}#widgets-left .widgets-holder-wrap{border:0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-action{display:none}#available-widgets .widget{margin:0}#available-widgets .widget:nth-child(odd){clear:both}#available-widgets .widget .widget-description{display:block;padding:10px 15px;font-size:12px}#available-widgets #widget-list{position:relative}#widgets-left .inactive-sidebar{clear:both;width:100%;background:0 0;padding:0;margin:0 0 20px;border:0;-webkit-box-shadow:none;box-shadow:none}#widgets-left .inactive-sidebar.first{margin-top:40px}div#widgets-left .inactive-sidebar .widget.expanded{left:auto}.widget-title-action{float:right;position:relative}div#widgets-left .inactive-sidebar .widgets-sortables{min-height:42px;padding:0;background:0 0;margin:0;position:relative}div#widgets-right:after{content:".";display:block;height:0;clear:both;visibility:hidden}div#widgets-right .sidebars-column-1,div#widgets-right .sidebars-column-2{max-width:450px}div#widgets-right .widgets-holder-wrap{margin:10px 0 0}div#widgets-right .sidebar-description{min-height:20px;margin-top:-5px}div#widgets-right .sidebar-name h3{padding:15px 7px}div#widgets-right .sidebar-name .sidebar-name-arrow:before{right:0;top:4px}div#widgets-right .widget-top{padding:0}div#widgets-right .widgets-sortables{padding:0 8px;margin-bottom:9px;position:relative;min-height:123px}div#widgets-right .closed .widgets-sortables{min-height:0;margin-bottom:0}.sidebar-name .spinner{margin:-5px 5px;float:none}#widgets-right .widgets-holder-wrap.widget-hover{border-color:#777;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}.widgets_access #widgets-left .widget .widget-top{cursor:auto}.widgets_access #wpwrap .widget-control-edit,.widgets_access #wpwrap .widgets-holder-wrap.closed .sidebar-description,.widgets_access #wpwrap .widgets-holder-wrap.closed .widget{display:block}.widgets_access #widgets-left .widget .widget-top:hover,.widgets_access #widgets-right .widget .widget-top:hover{border-color:#ddd}#available-widgets .widget-control-edit .edit,#widgets-left .inactive-sidebar .widget-control-edit .add,#widgets-right .widget-control-edit .add{display:none}.widget-control-edit{display:block;color:#666;background:#EEE;padding:0 15px;line-height:43px;border-left:1px solid #DDD}#widgets-left .widget-control-edit:hover,#widgets-right .widget-control-edit:hover{color:#fff;background:#444;border-left:0;outline:1px solid #444}.widgets-holder-wrap .sidebar-description,.widgets-holder-wrap .sidebar-name{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.editwidget{margin:0 auto}.editwidget .widget-inside{display:block;padding:0 15px}.editwidget .widget-control-actions{margin-top:20px}.js .closed br.clear,.js .widgets-holder-wrap.closed .sidebar-description,.js .widgets-holder-wrap.closed .widget,.widget-description,.widget-inside{display:none}.widget-inside{background:#fff}#removing-widget{display:none;font-weight:400;padding-left:15px;font-size:12px;line-height:1;color:#000}.js #removing-widget{color:#2ea2cc}#access-off,.no-js .widget-holder .description,.widget-control-noform,.widgets_access #access-on,.widgets_access .sidebar-name-arrow,.widgets_access .widget-action,.widgets_access .widget-holder .description{display:none}.widgets_access #widget-list,.widgets_access .widget-holder{padding-top:10px}.widgets_access #access-off{display:inline}.widgets_access .sidebar-name,.widgets_access .widget .widget-top{cursor:default}.widget-liquid-left #widgets-left.chooser #available-widgets .widget,.widget-liquid-left #widgets-left.chooser .inactive-sidebar{-webkit-transition:opacity .1s linear;transition:opacity .1s linear;opacity:.2;pointer-events:none}.widget-liquid-left #widgets-left.chooser #available-widgets .widget-in-question{opacity:1;pointer-events:auto}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.widgets-chooser ul.widgets-chooser-sidebars{margin:0;list-style-type:none;max-height:300px;overflow:auto}.widgets-chooser{display:none}.widgets-chooser ul{border:1px solid #ccc}.widgets-chooser li{padding:10px 15px 10px 35px;border-bottom:1px solid #ccc;background:#fff;margin:0;cursor:pointer;outline:0;position:relative;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.widgets-chooser li:focus,.widgets-chooser li:hover{background:rgba(255,255,255,.7)}.widgets-chooser li:focus:before{content:'\f147';display:block;-webkit-font-smoothing:antialiased;font:400 26px/1 dashicons;color:#999;position:absolute;top:7px;left:5px}.widgets-chooser li:last-child{border:0}.widgets-chooser li.widgets-chooser-selected{background:#2ea2cc;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{content:'\f147';display:block;-webkit-font-smoothing:antialiased;font:400 26px/1 dashicons;color:#fff;position:absolute;top:7px;left:5px}.widgets-chooser .widgets-chooser-actions{padding:10px 0 12px;text-align:center}.widgets-chooser button{margin-right:5px}#available-widgets .widget .widget-top{cursor:pointer}@media screen and (max-width:480px){div.widget-liquid-left{width:100%;float:none;border-right:0;padding-right:0}#widgets-left #available-widgets .widget-top,#widgets-left .inactive-sidebar .widgets-sortables,#widgets-left .sidebar-name{margin-right:0}div.widget-liquid-right{width:100%;float:none}div.widget{margin:0 auto 10px!important;max-width:480px}}@media screen and (max-width:320px){div.widget{max-width:320px}}@media only screen and (min-width:1250px){#widgets-left #available-widgets .widget{width:49%;float:left}.widget.ui-draggable-dragging{min-width:49%}#widgets-left #available-widgets .widget:nth-child(even){float:right}#widgets-right .sidebars-column-1,#widgets-right .sidebars-column-2{float:left;width:49%}#widgets-right .sidebars-column-1{margin-right:2%}#widgets-right.single-sidebar .sidebars-column-1,#widgets-right.single-sidebar .sidebars-column-2{float:none;width:100%;margin:0}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:700}.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de .inline-edit-row fieldset label span.title{width:7em}.locale-de-de .inline-edit-row fieldset label span.input-text-wrap{margin-left:7em}.locale-de-de #customize-header-actions .button{padding:0 5px 1px}.locale-de-de #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru .inline-edit-row fieldset label span.title{width:8em}.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}
\ No newline at end of file
+#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-left:20px}#wpcontent,#wpfooter{margin-left:160px}.folded #wpcontent,.folded #wpfooter{margin-left:36px}#wpbody-content{padding-bottom:65px;float:left;width:100%;overflow:visible!important}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-container,#col-left,#col-right{overflow:hidden;padding:0;margin:0}#col-left{width:35%}#col-right{float:right;clear:right;width:65%}.col-wrap{padding:0 7px}.alignleft{float:left}.alignright{float:right}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{left:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}html{background:#f1f1f1}body{color:#444;font-family:"Open Sans",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0074a2;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#2ea2cc}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2{color:#222;font-size:1.5em;margin:.83em 0;font-weight:400}h3{color:#222;font-size:1.3em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-left:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.ltr{direction:ltr}.code,code{font-family:Consolas,Monaco,monospace;direction:ltr}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;float:left;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#999;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat th{text-align:left;line-height:1.3em;font-size:14px}.widefat th input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.widefat th input[type=checkbox]{margin-top:-1px}.widefat.media .check-column{padding-top:8px}.widefat tbody th.check-column,.widefat tfoot th.check-column,.widefat thead th.check-column{padding:11px 0 0 3px}.widefat thead th.check-column{padding-top:10px}.update-php div.error,.update-php div.updated{margin-left:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 20px 0 2px}div.error,div.updated{margin:5px 15px 2px}div.error p,div.updated p{margin:.5em 0;padding:2px}.media-upload-form div.error,.wrap div.error,.wrap div.updated{margin:5px 0 15px}div.updated{border-left:4px solid #7ad03a;padding:1px 12px;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}div.error{border-left:4px solid #dd3d36;background:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:1px 12px}.attention{color:#2ea2cc}.subtitle,.wrap h2{font-weight:400;margin:0}.wrap h2{font-size:23px;font-weight:400;padding:9px 15px 4px 0;line-height:29px}.subtitle{color:#777;font-size:14px;padding-left:25px}.wrap .add-new-h2,.wrap .add-new-h2:active{margin-left:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;-webkit-border-radius:2px;border-radius:2px;background:#e0e0e0;text-shadow:none;font-weight:600;font-size:13px}.wrap .add-new-h2:hover{background:#2ea2cc;color:#fff}.wrap h2.long-header{padding-right:0}.wp-dialog{background-color:#fff}.sorthelper{background-color:#ccf3fa}.ac_match,.subsubsub a.current{color:#000}.alt,.alternate{background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-right-color:#99d}.media-upload-form label.form-help,td.help{color:#9a9a9a}.highlight{background-color:#e4f2fd;color:#000}.wp-ui-primary{color:#fff;background-color:#333}.wp-ui-text-primary{color:#333}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#999}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot th,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#222}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,#welcome-panel.welcome-panel .welcome-panel-close:before,.tagchecklist span a:before{background:0 0;color:#bbb;content:'\f153';display:block!important;font:400 16px/1 dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased!important}#welcome-panel.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before,.tagchecklist span a:before{margin:2px 0}#bulk-titles div a:hover:before,#welcome-panel.welcome-panel .welcome-panel-close:hover:before,.tagchecklist span a:hover:before{color:#c00}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap;word-wrap:break-word}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,.widget-control-remove:hover,abbr.required{color:red;text-decoration:none;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{line-height:28px;vertical-align:middle;text-align:left;float:left}#publishing-action{text-align:right;float:right;line-height:23px}#publishing-action .spinner{float:left}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:right}#save-post{float:left}.preview{float:right}#sticky-span{margin-left:18px}.side-info{margin:0;padding:4px;font-size:11px}.side-info h5{padding-bottom:7px;font-size:14px;margin:12px 2px 5px;border-bottom:1px solid #dadada}.side-info ul{margin:0;padding-left:18px;list-style:square;color:#666}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:right}.wp-filter{display:inline-block;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:12px 0 25px;padding:0 20px;width:100%;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;-webkit-border-radius:30px;border-radius:30px;background:#777;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-left:5px;margin-right:20px}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{display:inline-block;margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{-webkit-box-shadow:none;box-shadow:none;border-bottom:4px solid #666;color:#222}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#2ea2cc}.wp-filter .search-form{float:right;margin-top:9px}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{height:33px;vertical-align:top}.wp-filter .drawer-toggle{display:inline-block;margin:0 10px;padding:4px 6px;color:#666;cursor:pointer}.wp-filter .drawer-toggle:before{display:inline-block;vertical-align:top;content:"\f111";margin:0 5px 0 0;width:16px;height:16px;color:#777;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;font-family:dashicons;font-size:16px;line-height:1;text-align:center;text-decoration:inherit;font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased}.wp-filter .drawer-toggle:hover,.wp-filter .drawer-toggle:hover:before{color:#2ea2cc}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer{display:none;margin:0 -20px;padding:20px;border-top:1px solid #eee;background:#fafafa}.show-filters .filter-drawer{display:block;overflow:hidden}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .drawer-toggle{-webkit-border-radius:2px;border-radius:2px;border:none;background:#777;color:#fff}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin:0 1% 0 0;padding:10px;width:19%;background:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group.wide{width:38%}.filter-group h4{position:relative;margin:0}.filter-drawer ol{margin:20px 0 0;list-style-type:none;font-size:12px}.filter-drawer li{display:inline-block;vertical-align:top;margin:5px 0;padding-right:25px;width:160px;list-style-type:none}.filter-drawer .buttons{margin-bottom:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin:0 0 20px 10px}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-left:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.wp-filter .search-form{float:none;margin:20px 0}.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:782px){.filter-group,.filter-group li{width:100%}}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:left;margin:25px 20px 0 2px;background-color:#fff;border-left:4px solid #ffba00;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.update-message{color:#000}.update-php .spinner{float:none;margin:-4px 0}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-left:2em}#adminmenu a,#catlist a,#sidemenu a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-left:0!important}#screen-meta .screen-reader-text{visibility:hidden}#screen-meta-links{margin:0 20px 0 0}#screen-meta-links a{padding:3px 6px 3px 16px}#screen-meta-links a:focus{outline:0}#screen-meta{display:none;margin:0 20px -1px 0;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.025);box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:right;height:28px;margin:0 0 0 6px;border:1px solid #ddd;border-top:none;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links a{color:#777}#screen-meta-links a:active,#screen-meta-links a:focus,#screen-meta-links a:hover{color:#333}#screen-meta-links a.show-settings{display:block;font-size:13px;height:22px;line-height:22px;text-decoration:none;z-index:1}#screen-meta-links a:after{right:0;content:'\f140';font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 5px 0 0;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#bbb}#screen-meta-links a.screen-meta-active:after{content:'\f142'}#screen-meta-links a.show-settings:hover{text-decoration:none}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5{margin:8px 0;font-size:13px}.metabox-prefs label{display:inline-block;padding-right:15px;line-height:30px}.metabox-prefs label input[type=checkbox]{margin-top:-4px;margin-right:6px}.metabox-prefs label input{margin:0 5px 0 2px}.metabox-prefs .columns-prefs label input{margin:0 2px}.metabox-prefs label a{display:none}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 0 0 2px;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:18px;text-decoration:none;border:1px solid transparent;border-right:none;border-left:none}.contextual-help-tabs a:hover{color:#333}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-left:2px solid #2ea2cc;background:#f6fbfd;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02);box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#333}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}html.wp-toolbar{padding-top:32px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.narrow{width:70%;margin-bottom:40px}.narrow p{line-height:150%}.widefat td,.widefat th{overflow:hidden;color:#555}.widefat th{font-weight:400}.widefat tfoot tr th,.widefat thead tr th{color:#333}.widefat td p{margin:2px 0 .8em}.widefat ol,.widefat p,.widefat ul{color:#333}.widefat .column-comment p{margin:.6em 0}.postbox-container{float:left}.postbox-container .meta-box-sortables{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #bbb;height:250px}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:left}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px;font-weight:400}.postbox .handlediv{float:right;width:27px;height:30px}.js .postbox .handlediv{cursor:pointer}.sortable-placeholder{border:1px dashed #bbb;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .hndle,.stuffbox .hndle{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{-webkit-box-shadow:none;box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 5px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.plugins .name{font-weight:600}#wpfooter{position:absolute;bottom:0;left:0;right:0;padding:10px 20px;color:#777}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}#wpfooter a{text-decoration:none}#wpfooter a:hover{text-decoration:underline}.nav-tab{border:1px solid #ccc;border-bottom:none;background:#e4e4e4;color:#555;font-size:12px;line-height:16px;display:inline-block;padding:4px 14px 6px;text-decoration:none;margin:-4px 4px -1px 0}.nav-tab:hover{background-color:#fff;color:#464646}.nav-tab-active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}h2.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom:1px solid #ccc;padding-bottom:0;padding-left:10px}h2 .nav-tab{padding:6px 10px;font-weight:700;font-size:15px;line-height:24px}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:right;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}#template div{margin-right:190px}.metabox-holder h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#templateside ul li a{text-decoration:none}#sidemenu{margin:-30px 15px 0 315px;list-style:none;position:relative;float:right;padding-left:10px;font-size:12px}#sidemenu a{padding:0 7px;display:block;float:left;line-height:28px;border-top:1px solid #f9f9f9;border-bottom:1px solid #dfdfdf;background-color:#f9f9f9;-webkit-transition:none;transition:none}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:400;padding-left:6px;padding-right:6px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;border:1px solid #dfdfdf;border-bottom-color:#f1f1f1;background-color:#f1f1f1;color:#000}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:left}.error-message{color:red;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}td.media-icon{text-align:center;width:80px;padding-top:8px;padding-bottom:8px}td.media-icon img{max-width:80px;max-height:60px}td.image-icon img{border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px;display:block}.importers td{padding-right:14px}.importers{font-size:16px;width:auto}#post-body #post-body-content #namediv h3{margin-top:0}#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) repeat-x bottom left}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) repeat-x top left;height:17px;float:left}.star-rating{white-space:nowrap}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center;color:#0074a2}.star-rating .star-full:before{content:'\f155'}.star-rating .star-half:before{content:'\f459'}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:'\f154'}div.action-links{font-weight:400}#plugin-information{background:#fff;position:fixed;top:0;right:0;bottom:0;left:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;height:100%}#plugin-information-title{padding:0 20px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;top:0;right:0;left:0;height:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner{margin-right:0;height:250px;bottom:250px;-webkit-background-size:100% auto;background-size:100% auto}#plugin-information-title h2{font-size:1em;font-weight:700;padding:0;margin:0;max-width:680px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;padding:0 15px;margin:174px 0 0 10px;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);-webkit-box-shadow:0 0 30px rgba(255,255,255,.1);box-shadow:0 0 30px rgba(255,255,255,.1);-webkit-border-radius:8px;border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{display:block;float:right;top:0;height:250px;width:830px;margin:0 -20px;background:0 0;-webkit-box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;right:0;left:0;height:36px;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;float:left;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;-webkit-transition:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#333}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;right:0;left:0;min-height:100%;min-height:-webkit-calc(100% - 152px);min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:-webkit-calc(100% - 346px);min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;right:250px;bottom:0;left:0;margin-right:250px;padding:10px 26px 99999px;margin-bottom:-99930px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{display:block;float:right;position:relative;top:0;right:0;padding:16px 16px 99999px;margin-bottom:-99930px;width:217px;border-left:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#464646}#plugin-information .fyi h3{font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:left;margin-right:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#ececec;float:left}#plugin-information .counter-bar{height:17px;background-color:#fddb5a;float:left}#plugin-information .counter-count{margin-left:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-right:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-right:4px}#plugin-information-footer{padding:15px 16px;position:absolute;right:0;bottom:0;left:0;height:28px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section{direction:ltr}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e6e6e6}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px;bottom:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px;bottom:100px;width:800%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc url(../images/spinner.gif) no-repeat center}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc url(../images/spinner-2x.gif) no-repeat center;-webkit-background-size:20px 20px;background-size:20px 20px}}body.import-php #TB_title,body.index-php #TB_title,body.plugin-install-php #TB_title,body.plugins-php #TB_title,body.update-core-php #TB_title{float:left;height:1px}body.import-php #TB_ajaxWindowTitle,body.index-php #TB_ajaxWindowTitle,body.plugin-install-php #TB_ajaxWindowTitle,body.plugins-php #TB_ajaxWindowTitle,body.update-core-php #TB_ajaxWindowTitle{display:none}body.import-php .tb-close-icon,body.index-php .tb-close-icon,body.plugin-install-php .tb-close-icon,body.plugins-php .tb-close-icon,body.update-core-php .tb-close-icon{left:auto;right:-30px;color:#eee;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}body.import-php #TB_closeWindowButton:focus,body.import-php #TB_closeWindowButton:focus .tb-close-icon,body.import-php .tb-close-icon:focus,body.import-php .tb-close-icon:hover,body.index-php #TB_closeWindowButton:focus,body.index-php #TB_closeWindowButton:focus .tb-close-icon,body.index-php .tb-close-icon:focus,body.index-php .tb-close-icon:hover,body.plugin-install-php #TB_closeWindowButton:focus,body.plugin-install-php #TB_closeWindowButton:focus .tb-close-icon,body.plugin-install-php .tb-close-icon:focus,body.plugin-install-php .tb-close-icon:hover,body.plugins-php #TB_closeWindowButton:focus,body.plugins-php #TB_closeWindowButton:focus .tb-close-icon,body.plugins-php .tb-close-icon:focus,body.plugins-php .tb-close-icon:hover,body.update-core-php #TB_closeWindowButton:focus,body.update-core-php #TB_closeWindowButton:focus .tb-close-icon,body.update-core-php .tb-close-icon:focus,body.update-core-php .tb-close-icon:hover{color:#2ea2cc;outline:0;-webkit-box-shadow:none;box-shadow:none}body.import-php .tb-close-icon:before,body.index-php .tb-close-icon:before,body.plugin-install-php .tb-close-icon:before,body.plugins-php .tb-close-icon:before,body.update-core-php .tb-close-icon:before{content:"\f335";font-size:32px}@media screen and (max-width:830px){body.import-php .tb-close-icon,body.index-php .tb-close-icon,body.plugin-install-php .tb-close-icon,body.plugins-php .tb-close-icon,body.update-core-php .tb-close-icon{right:0;top:-30px}}img{border:none}#wphead{border-bottom:1px solid #dfdfdf}#wphead h1 a{color:#464646}.js .meta-box-sortables .postbox:hover .handlediv{margin-right:0!important}.js .meta-box-sortables .postbox .handlediv:before,.js .sidebar-name .sidebar-name-arrow:before{right:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js #widgets-left .sidebar-name .sidebar-name-arrow{display:none}.js #widgets-left .sidebar-name:hover .sidebar-name-arrow,.js #widgets-left .widgets-holder-wrap.closed .sidebar-name .sidebar-name-arrow{display:block}.js .meta-box-sortables .postbox .handlediv:before,.js .sidebar-name .sidebar-name-arrow:before{content:'\f142'}.js .meta-box-sortables .postbox.closed .handlediv:before,.js .widgets-holder-wrap.closed .sidebar-name-arrow:before{content:'\f140'}.error a{text-decoration:underline}.updated a{text-decoration:none;padding-bottom:2px}#photo-add-url-div input[type=text]{width:300px}.alignleft h3{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;width:97%;background:#f9f9f9;outline:0}#docs-list,#template textarea{direction:ltr}#template p{width:97%}#templateside{float:right;width:190px;word-wrap:break-word}#postcustomstuff p.submit,#templateside h3{margin:0}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em 0;padding:0}#templateside li{margin:4px 0}#templateside a,.theme-editor-php .highlight{display:block;padding:3px 3px 3px 12px;text-decoration:none}.theme-editor-php .highlight{margin:-3px 3px -3px -12px}#templateside .highlight{border:none;font-weight:700}.nonessential{color:#666;font-size:11px;font-style:italic;padding-left:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top a.widget-action:after{right:0;content:'\f140';border:none;background:0 0;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.accordion-section-title:after,.handlediv,.item-edit,.sidebar-name-arrow,.widget-action{color:#aaa}.accordion-section-title:hover:after,.handlediv:hover,.item-edit:hover,.sidebar-name:hover .sidebar-name-arrow,.widget-action:hover{color:#777}.widget-top a.widget-action:after{padding:12px 12px 0}.nav-menus-php .item-edit:before{line-height:2.1}.accordion-section-title:after,.control-section .accordion-section-title:after{float:right;right:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top a.widget-action:after{content:'\f142'}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.menu.ui-sortable,.meta-box-sortables.ui-sortable,.widgets-holder-wrap .ui-draggable,.widgets-holder-wrap .ui-sortable{-ms-touch-action:auto;touch-action:auto}.menu.ui-sortable .menu-item-handle,.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.accordion-section{border-bottom:1px solid #dfdfdf;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#dfdfdf}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-left:1px solid #dfdfdf;border-right:1px solid #dfdfdf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;right:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#aaa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title{border-left:none;border-right:none;padding:10px 10px 11px 14px;line-height:21px;background:#fff}.control-section .accordion-section-title:after{top:11px}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#222;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #dfdfdf}@media only screen and (min-width:769px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:860px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (min-width:980px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:768px){#col-left,#col-right{width:100%}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) repeat-x bottom left;-webkit-background-size:21px 37px;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.sidebar-name:hover .sidebar-name-arrow,.tagchecklist span a,.tagchecklist span a:hover,.widget-top a.widget-action,.widget-top a.widget-action:hover{background:none!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:transparent!important}#wpcontent{position:relative;margin-left:0;padding-left:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-right:12px;margin-left:0}.col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}.wrap .add-new-h2,.wrap .add-new-h2:active{padding:10px 15px;font-size:14px}.wp-color-result{height:auto;padding-left:45px}.wp-color-result:after{font-size:14px;height:auto;padding:6px 14px}.media-upload-form div.error,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{right:-190px}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder h3{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside{float:none;width:auto}#templateside li{margin:0}#templateside li a{display:block;padding:5px}#templateside .highlight{padding:5px;margin-left:-5px;margin-top:-5px}#template div{float:none;margin:0;width:auto}#template textarea{width:100%}.fileedit-sub .alignright{margin-top:15px}#comments-form .checkforspam,#wpfooter{display:none}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}div#post-body.metabox-holder.columns-1{overflow-x:hidden}}input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=radio],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#333;outline:0;-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=radio]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=email],input[type=url]{direction:ltr}input[type=checkbox],input[type=radio]{border:1px solid #bbb;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#888}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#2ea2cc}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=checkbox]:checked:before,input[type=radio]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:'\f147';margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:'\2022';text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=checkbox],input[type=radio]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{overflow:auto;padding:2px 6px;line-height:1.4}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}.wp-core-ui :-moz-placeholder,:-moz-placeholder{color:#a9a9a9}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none}input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before,input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px;vertical-align:middle}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}#adduser .form-field input,input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}#upload-form label{color:#777}#your-profile label+a,fieldset label,label{vertical-align:middle}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:'\f173';display:inline-block;font:400 20px/1 dashicons;speak:none;left:-1px;padding:0 5px 0 0;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass-strength-result{background-color:#eee;border:1px solid #ddd;float:left;margin:13px 5px 5px 1px;padding:3px 5px;text-align:center;width:200px;display:none}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c}.indicator-hint{padding-top:8px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}input[type=text].ui-autocomplete-loading{background:url(../images/loading.gif) no-repeat right center;visibility:visible}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete-input.open{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:1px solid #aaa;background-color:#efefef}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:left}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px;color:#444}.ui-autocomplete li a.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th,.form-wrap label{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#222;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.color-option{cursor:pointer}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.pressthis{margin:20px 0}.pressthis a,.pressthis a:active,.pressthis a:focus,.pressthis a:hover{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis a span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis a span:before{color:#777;font:400 20px/1 dashicons;content:'\f157';position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}#local-time,#utc-time{padding-left:25px;font-style:italic}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=number],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;padding:6px 10px}input.code{padding-bottom:5px;padding-top:10px}.widefat th input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat th input[type=checkbox]{margin-bottom:8px}.widefat th input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 Dashicons;margin:-3px -5px}input[type=checkbox],input[type=radio]{height:25px;width:25px}.wp-admin p input[type=checkbox],.wp-admin p input[type=radio]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=password],.form-table td input[type=text],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=number].small-text,input[type=password].small-text,input[type=search].small-text,input[type=text].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{padding:4px 0 0;line-height:1.4em}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{padding-top:8px;padding-left:0}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#utc-time{margin-top:10px}#local-time,#utc-time{display:block;float:none;padding:0;line-height:2}}@media only screen and (max-width:768px){.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media screen and (max-width:600px){.color-option{width:49%}}#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:160px;background-color:#222}#adminmenuback{position:absolute;top:0;bottom:0;z-index:-1}#adminmenu{clear:left;margin:12px 0 0;padding:0;list-style:none}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:36px}.icon16{height:18px;width:18px;padding:6px;margin:-6px 0 0 -8px;float:left}.icon16:before{color:#999;font:400 20px/1 dashicons;speak:none;padding:6px 0;height:34px;width:20px;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.icon16.icon-dashboard:before{content:'\f226'}.icon16.icon-post:before{content:'\f109'}.icon16.icon-media:before{content:'\f104'}.icon16.icon-links:before{content:'\f103'}.icon16.icon-page:before{content:'\f105'}.icon16.icon-comments:before{content:'\f101';margin-top:1px}.icon16.icon-appearance:before{content:'\f100'}.icon16.icon-plugins:before{content:'\f106'}.icon16.icon-users:before{content:'\f110'}.icon16.icon-tools:before{content:'\f107'}.icon16.icon-settings:before{content:'\f108'}.icon16.icon-site:before{content:'\f112'}.icon16.icon-generic:before{content:'\f111'}.icon16.icon-appearance,.icon16.icon-comments,.icon16.icon-dashboard,.icon16.icon-generic,.icon16.icon-links,.icon16.icon-media,.icon16.icon-page,.icon16.icon-plugins,.icon16.icon-post,.icon16.icon-settings,.icon16.icon-site,.icon16.icon-tools,.icon16.icon-users,.menu-icon-appearance div.wp-menu-image,.menu-icon-comments div.wp-menu-image,.menu-icon-dashboard div.wp-menu-image,.menu-icon-generic div.wp-menu-image,.menu-icon-links div.wp-menu-image,.menu-icon-media div.wp-menu-image,.menu-icon-page div.wp-menu-image,.menu-icon-plugins div.wp-menu-image,.menu-icon-post div.wp-menu-image,.menu-icon-settings div.wp-menu-image,.menu-icon-site div.wp-menu-image,.menu-icon-tools div.wp-menu-image,.menu-icon-users div.wp-menu-image{background-image:none!important}#adminmenuwrap{position:relative;float:left}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px;color:#eee}#adminmenu .wp-submenu a{color:#bbb}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover{background:0 0}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a:hover,#adminmenu li.menu-top>a:focus{color:#2ea2cc}#adminmenu li.menu-top{border:none;min-height:34px;position:relative}#adminmenu .wp-submenu{list-style:none;position:absolute;top:-1000em;left:160px;overflow:visible;word-wrap:break-word}#adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{padding:7px 0 8px;z-index:9999;background-color:#333;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}#adminmenu a.menu-top:focus+.wp-submenu,.js #adminmenu .opensub .wp-submenu,.js #adminmenu .sub-open,.no-js li.wp-has-submenu:hover .wp-submenu{top:-1px}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.no-js li.wp-has-current-submenu:hover .wp-submenu{position:relative;z-index:3;top:auto;left:auto;right:auto;bottom:auto;border:0;margin-top:0;-webkit-box-shadow:none;box-shadow:none;background-color:#333}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{position:relative;background-color:#111}.folded #adminmenu li.menu-top:hover,.folded #adminmenu li.opensub>a.menu-top,.folded #adminmenu li>a.menu-top:focus{z-index:10000}#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu .wp-menu-arrow,#adminmenu .wp-menu-arrow div,#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu{background:#0074a2;color:#fff}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{top:0;left:36px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:160px;width:auto}#adminmenu .wp-submenu a{font-size:13px;line-height:1.2;margin:0;padding:6px 0}#adminmenu .opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-not-current-submenu li>a,.folded #adminmenu .wp-has-current-submenu li>a{padding-right:16px;padding-left:14px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu .wp-has-current-submenu ul>li>a,.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:6px 12px}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{font-size:14px;font-weight:400;line-height:18px;padding:0}#adminmenu .wp-submenu-head,.folded #adminmenu .wp-menu-name{display:none}.folded #adminmenu .wp-submenu-head{display:block}#adminmenu .wp-submenu li{padding:0;margin:0;overflow:hidden}#adminmenu .wp-menu-image img{padding:9px 0 0;opacity:.6;filter:alpha(opacity=60)}#adminmenu div.wp-menu-name{padding:8px 0}#adminmenu div.wp-menu-image{float:left;width:36px;height:34px;margin:0;text-align:center}#adminmenu div.wp-menu-image.svg{background-repeat:no-repeat;background-position:center;-webkit-background-size:20px auto;background-size:20px auto}div.wp-menu-image:before{color:#999;padding:7px 0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu .current div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before{color:#fff}#adminmenu li:hover div.wp-menu-image:before{color:#2ea2cc}.folded #adminmenu div.wp-menu-image{width:35px;height:30px;position:absolute;z-index:25}.folded #adminmenu a.menu-top{height:34px}.no-font-face #adminmenu .wp-menu-image{display:none}.no-font-face #adminmenu div.wp-menu-name{padding:8px 12px}.no-font-face.auto-fold #adminmenu .wp-menu-name{margin-left:0}.sticky-menu #adminmenuwrap{position:fixed;z-index:9999}.wp-menu-arrow{display:none!important}ul#adminmenu a.wp-has-current-submenu{position:relative}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{right:0;border:8px solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#f1f1f1;top:50%;margin-top:-8px}.folded ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.folded ul#adminmenu a.wp-has-current-submenu:after,.folded ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{right:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;top:10px;z-index:10000}.folded ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:18px}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#333}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:5px;padding:0;margin:0 0 6px;cursor:inherit}#adminmenu div.separator{height:2px;padding:0}#adminmenu .wp-submenu .wp-submenu-head{color:#fff;font-weight:400;font-size:14px;padding:8px 4px 8px 11px;margin:-7px 0 4px}#adminmenu li.current,.folded #adminmenu li.wp-menu-open{border:0}#adminmenu .awaiting-mod,#adminmenu .update-plugins,#sidemenu li a span.update-plugins{display:inline-block;background-color:#d54e21;color:#fff;font-size:9px;line-height:17px;font-weight:600;margin:1px 0 0 2px;vertical-align:top;-webkit-border-radius:10px;border-radius:10px;z-index:26}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span,#sidemenu li a span.update-plugins span{display:block;padding:0 6px}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod{background-color:#2ea2cc;color:#fff}#adminmenu li span.count-0,#sidemenu li a .count-0{display:none}#collapse-menu{font-size:13px;line-height:34px;margin-top:10px;color:#aaa;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#collapse-menu:hover,#collapse-menu:hover #collapse-button div:after{color:#2ea2cc}.folded #collapse-menu span{display:none}#collapse-button,#collapse-button div{width:15px;height:15px}#collapse-button{float:left;height:15px;margin:10px 8px 10px 11px;width:15px;-webkit-border-radius:10px;border-radius:10px}#wpwrap #collapse-button div{padding:0}#collapse-button div:after{content:'\f148';display:block;line-height:15px;left:-3px;top:-3px;color:#aaa;font:400 20px/1 dashicons!important;speak:none;margin:0 auto;padding:0!important;position:relative;text-align:center;width:20px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folded #collapse-button div:after,.rtl #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.folded #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}li#wp-admin-bar-menu-toggle{display:none}@media only screen and (max-width:960px){.auto-fold #wpcontent,.auto-fold #wpfooter{margin-left:36px}.auto-fold #adminmenu,.auto-fold #adminmenu li.menu-top,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:36px}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{top:0;left:36px}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu,.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em;margin-right:-1px;padding:7px 0 8px;z-index:9999}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{min-width:150px;width:auto}.auto-fold #adminmenu .wp-has-current-submenu li>a{padding-right:16px;padding-left:14px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-left:12px}.auto-fold #adminmenu .wp-menu-name{display:none}.auto-fold #adminmenu .wp-submenu-head{display:block}.auto-fold #adminmenu div.wp-menu-image{height:30px;width:34px;position:absolute;z-index:25}.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.wp-menu-open{border:0}.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:16px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}.auto-fold #adminmenu li.menu-top:hover,.auto-fold #adminmenu li.opensub>a.menu-top,.auto-fold #adminmenu li>a.menu-top:focus{z-index:10000}.auto-fold #collapse-menu span{display:none}.auto-fold #collapse-button div{background:0 0}.auto-fold #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.auto-fold #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}}@media screen and (max-width:782px){.auto-fold #wpcontent{position:relative;margin-left:0;padding-left:10px}.sticky-menu #adminmenuwrap{position:relative;z-index:auto;top:0}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{position:absolute;width:190px;z-index:100}.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{display:none}.auto-fold .wp-responsive-open #adminmenuback,.auto-fold .wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu li.menu-top{width:100%}.auto-fold #adminmenu li a{font-size:16px;padding:5px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding:10px 10px 10px 20px}.auto-fold #adminmenu .wp-menu-name{display:block;margin-left:35px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li.current>a.current:after{border-width:8px;margin-top:-8px}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{display:none}#adminmenu .wp-submenu{position:relative;display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu{position:relative;display:block;top:0;left:-1px;-webkit-box-shadow:none;box-shadow:none}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .selected .wp-submenu:after,.auto-fold #adminmenu .wp-menu-open .wp-submenu:after{display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:block}.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{position:relative;left:-1px;right:0;top:0}#adminmenu .wp-submenu .wp-submenu-head{display:none}#wp-responsive-toggle{position:fixed;top:5px;left:4px;padding-right:10px;z-index:99999;border:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpadminbar #wp-admin-bar-menu-toggle a{display:block;padding:0;overflow:hidden;outline:0;text-decoration:none;border:1px solid transparent;background:0 0;height:44px;margin-left:-1px}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#333}li#wp-admin-bar-menu-toggle{display:block}#wpadminbar #wp-admin-bar-menu-toggle a:hover{border:1px solid transparent}#wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{content:'\f228';display:inline-block;float:left;font:400 40px/45px Dashicons;vertical-align:middle;outline:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:44px;width:50px;padding:0;border:none;text-align:center;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}@media screen and (max-width:600px){#adminmenuback,#adminmenuwrap{display:none}.wp-responsive-open #adminmenuback,.wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu{top:46px}}#wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody-content #dashboard-widgets.columns-2 .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets.columns-2 #postbox-container-2,#wpbody-content #dashboard-widgets.columns-2 #postbox-container-3,#wpbody-content #dashboard-widgets.columns-2 #postbox-container-4{float:right;width:50.5%}#wpbody-content #dashboard-widgets.columns-3 .postbox-container{width:33.5%}#wpbody-content #dashboard-widgets.columns-3 #postbox-container-1{width:33%}#wpbody-content #dashboard-widgets.columns-3 #postbox-container-3,#wpbody-content #dashboard-widgets.columns-3 #postbox-container-4{float:right}#dashboard-widgets .postbox-container,#wpbody-content #dashboard-widgets.columns-4 .postbox-container{width:25%}#dashboard-widgets-wrap .columns-3 #postbox-container-4 .empty-container{border:none!important}.ie8 #wpbody-content #dashboard-widgets .postbox-container{width:49.5%}.ie8 #wpbody-content #dashboard-widgets #postbox-container-2,.ie8 #wpbody-content #dashboard-widgets #postbox-container-3,.ie8 #wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}.ie8 #dashboard-widgets #postbox-container-3 .empty-container,.ie8 #dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}#dashboard-widgets-wrap{overflow:hidden;margin:0 -8px}#dashboard-widgets .postbox .inside{margin-bottom:0}#dashboard-widgets .meta-box-sortables{margin:0 8px;min-height:100px}#the-comment-list td.comment p.comment-author{margin-top:0;margin-left:0}#the-comment-list p.comment-author img{float:left;margin-right:8px}#the-comment-list p.comment-author strong a{border:none}#the-comment-list td{vertical-align:top}#the-comment-list td.comment{word-wrap:break-word}#the-comment-list td.comment img{max-width:100%}.welcome-panel{position:relative;overflow:auto;margin:16px 0;padding:23px 10px 0;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff;font-size:13px;line-height:2.1em}.welcome-panel h3{margin:0;font-size:21px;font-weight:400;line-height:1.2}.welcome-panel h4{margin:1.33em 0 0;font-size:16px}.welcome-panel li{font-size:14px}.welcome-panel p{color:#777}.welcome-panel a{text-decoration:none}.welcome-panel .about-description{font-size:16px;margin:0}.welcome-panel .welcome-panel-close{position:absolute;top:5px;right:10px;padding:20px 15px 0 3px;font-size:13px;text-decoration:none;line-height:1}#welcome-panel.welcome-panel .welcome-panel-close:before{position:absolute;left:-18px;margin-top:-2px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.wp-core-ui .welcome-panel .button.button-hero{margin:15px 0 3px}.welcome-panel-content{margin-left:13px;max-width:1500px}.welcome-panel .welcome-panel-column-container{clear:both;overflow:hidden;position:relative}.welcome-panel .welcome-panel-column{width:32%;min-width:200px;float:left}.ie8 .welcome-panel .welcome-panel-column{min-width:230px}.welcome-panel .welcome-panel-column:first-child{width:36%}.welcome-panel-column p.hide-if-no-customize{margin-top:10px}.welcome-panel-column p{margin-top:7px;color:#464646}.welcome-panel .welcome-icon{display:block;padding:0 0 8px;background:0 0!important}.welcome-panel .welcome-icon:before{color:#888;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 10px 0 0;top:-1px;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;vertical-align:top}.welcome-panel .welcome-edit-page:before,.welcome-panel .welcome-write-blog:before{content:'\f119';top:-3px}.welcome-panel .welcome-add-page:before{content:'\f132'}.welcome-panel .welcome-view-site:before{content:'\f115';top:-2px}.welcome-panel .welcome-widgets-menus:before{content:'\f116';top:-2px}.welcome-panel .welcome-comments:before{content:'\f117';top:-1px}.welcome-panel .welcome-learn-more:before{content:'\f118';top:-1px}.welcome-panel .welcome-widgets-menus{line-height:16px}.welcome-panel .welcome-panel-column ul{margin:.8em 1em 1em 0}.welcome-panel .welcome-panel-column li{line-height:16px;list-style-type:none}#dashboard_primary .inside{margin:0;padding:0}#dashboard_primary .dashboard-widget-control-form,#dashboard_primary .widget-loading{padding:12px 12px 0}body #dashboard-widgets .postbox form .submit{margin:0}.dashboard-widget-control-form{overflow:hidden}.dashboard-widget-control-form p{margin-top:0}.rssSummary{color:#777;margin-top:4px}#dashboard_primary .rss-widget{border-bottom:1px solid #eee;font-size:13px;padding:8px 12px 10px}#dashboard_primary .rss-widget:last-child{border-bottom:none;padding-bottom:8px}#dashboard_primary .rss-widget a{font-weight:400}#dashboard_primary .rss-widget span,#dashboard_primary .rss-widget span.rss-date{color:#777}#dashboard_primary .rss-widget span.rss-date{margin-left:12px}#dashboard_primary .rss-widget ul li{margin-bottom:8px}#dashboard_right_now ul{margin:0;overflow:hidden}#dashboard_right_now li{width:50%;float:left;margin-bottom:10px}#dashboard_right_now .inside{overflow:hidden;padding:0}#dashboard_right_now .main{overflow:hidden;padding:0 12px 11px}#dashboard_right_now .main p{margin:0}#dashboard_right_now #wp-version-message .button{clear:right;float:right;position:relative;top:-5px}.mu-storage{overflow:hidden}#dashboard-widgets h4.mu-storage{margin-bottom:10px}#dashboard_right_now li a:before,#dashboard_right_now li span:before{color:#888}#dashboard_right_now .sub{color:#777;background:#f5f5f5;border-top:1px solid #eee;padding:10px 12px 6px}#dashboard_right_now .sub h4{color:#555}#dashboard_right_now .sub p{margin:0 0 1em}#dashboard_right_now .warning a:before,#dashboard_right_now .warning span:before{color:#d54e21}#dashboard_right_now li a:before,#dashboard_right_now li span:before{content:'\f159';font:400 20px/1 dashicons;speak:none;display:block;float:left;margin:0 5px 0 0;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;text-decoration:none!important}#dashboard_right_now .page-count a:before,#dashboard_right_now .page-count span:before{content:'\f105'}#dashboard_right_now .post-count a:before,#dashboard_right_now .post-count span:before{content:'\f109'}#dashboard_right_now .comment-count a:before{content:'\f101'}#dashboard_right_now .comment-mod-count a:before{content:'\f125'}#dashboard_right_now .storage-count a:before{content:'\f104'}#dashboard_right_now .storage-count.warning a:before{content:'\f153'}#dashboard_quick_press .inside{margin:0;padding:0}#dashboard_quick_press div.updated{margin-bottom:10px;border:1px solid #eee;border-width:1px 1px 1px 0}#dashboard_quick_press form{overflow:hidden;margin:12px}#dashboard_quick_press .drafts,#dashboard_quick_press .easy-blogging{padding:10px 0 0}input#save-post{float:left}form.initial-form.quickpress-open label.prompt{font-style:normal}form.initial-form.quickpress-open input#title{height:auto}#dashboard_quick_press input,#dashboard_quick_press textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0}#dashboard_quick_press textarea{resize:vertical}#description-wrap{margin-top:12px}#title-wrap #title-prompt-text,.textarea-wrap #content-prompt-text{color:#777}.input-text-wrap,.textarea-wrap{position:relative}.input-text-wrap .prompt,.textarea-wrap .prompt{position:absolute}.textarea-wrap #content-prompt-text{font-size:1.1em;padding:7px 8px}.textarea-wrap textarea#content{margin:0 0 8px;padding:6px 7px}#quick-press textarea#content{min-height:90px;max-height:1300px;resize:none}.js #dashboard_quick_press .drafts{border-top:1px solid #eee}#dashboard_quick_press .drafts abbr{border:none}#dashboard_quick_press .drafts h4{margin:0 12px 8px;font-weight:400}#dashboard_quick_press .drafts .view-all{float:right;margin:0 12px 0 0}#dashboard_primary a.rsswidget{font-weight:400}#dashboard_quick_press .drafts ul{margin:0 12px}#dashboard_quick_press .drafts li{margin-bottom:1em}#dashboard_quick_press .drafts li time{color:#777}#dashboard_quick_press .drafts p{margin:0;word-wrap:break-word}#dashboard_quick_press .draft-title{overflow:hidden}#dashboard_quick_press .draft-title a,#dashboard_quick_press .draft-title time{float:left;margin:0 5px 0 0}#dashboard-widgets #dashboard_activity h4{margin:0 0 8px 12px;font-weight:400}#dashboard-widgets #dashboard_activity h4.comment-meta{margin:0}#dashboard_activity h4.comment-meta{margin-bottom:4px}#dashboard_activity ul{padding:0 12px}#dashboard_activity .comment-meta span.approve:before{content:'\f227';font:20px/.5 dashicons;margin-left:12px;vertical-align:middle;position:relative;top:-1px;margin-right:2px}#dashboard_activity .inside{padding:0;margin:0}#dashboard_activity .no-activity{overflow:hidden;padding:0 12px 12px;text-align:center}#dashboard_activity .no-activity p{color:#999;font-size:16px}#dashboard_activity .no-activity .smiley{margin-top:0}#dashboard_activity .no-activity .smiley:before{content:'\f328';font:400 120px/1 dashicons;speak:none;display:block;margin:0 5px 0 0;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;text-decoration:none!important}#dashboard_activity .subsubsub{float:none;border-top:1px solid #eee;margin-top:0;padding:8px 12px 4px}#future-posts ul,#published-posts ul{clear:both;margin-bottom:0}#future-posts li,#published-posts li{overflow:hidden;margin-bottom:8px}#future-posts ul span,#published-posts ul span{color:#777;float:left;margin-right:8px;min-width:150px}.activity-block{border-bottom:1px solid #eee;overflow:hidden;padding:8px 0 4px}.activity-block:last-child{border-bottom:none}.activity-block .subsubsub li{color:#ddd}#activity-widget #the-comment-list div.undo,#activity-widget #the-comment-list tr.undo{background:0 0;padding:6px 0;margin-left:12px}#activity-widget #the-comment-list .alt,#activity-widget #the-comment-list .alternate{background:0 0}#activity-widget #the-comment-list .comment-item{background:#fafafa;padding:12px;position:relative}#activity-widget #the-comment-list img{position:absolute;top:13px}#activity-widget #the-comment-list .dashboard-comment-wrap{padding-left:63px}#activity-widget #the-comment-list .dashboard-comment-wrap blockquote{margin:1em 0}#activity-widget #the-comment-list .comment-item h4{font-size:13px;color:#999}#activity-widget #the-comment-list .comment-item p.row-actions{margin:4px 0 0}#activity-widget #the-comment-list .comment-item:first-child{border-top:1px solid #eee}#activity-widget #the-comment-list .unapproved{background-color:#fef7f1}#activity-widget #the-comment-list .unapproved:before{content:"";display:block;position:absolute;left:0;top:0;bottom:0;background:#d54e21;width:4px}#activity-widget #the-comment-list .spam-undo-inside .avatar,#activity-widget #the-comment-list .trash-undo-inside .avatar{position:relative;top:0}#dashboard-widgets #dashboard_browser_nag.postbox .inside{margin:10px}.edit-box{display:none}h3:hover .edit-box{display:inline}#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:100%}#dashboard-widgets .postbox form .submit{float:none;margin:.5em 0 0;padding:0;border:none}#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit #publish{min-width:0}#dashboard-widgets a{text-decoration:none}#dashboard-widgets h3 a{text-decoration:underline}#dashboard-widgets h3 .postbox-title-action{position:absolute;right:10px;padding:0;top:5px}.js #dashboard-widgets h3 .postbox-title-action{right:33px}#dashboard-widgets h4{color:#222;font-weight:400;font-size:14px;margin:0 0 .2em;padding:0}#dashboard_plugins h5{font-size:14px}#latest-comments #the-comment-list{position:relative}#activity-widget #the-comment-list .comment,#activity-widget #the-comment-list .pingback{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.06);box-shadow:inset 0 1px 0 rgba(0,0,0,.06)}#activity-widget .comments #the-comment-list .alt{background-color:transparent}#activity-widget #latest-comments #the-comment-list .comment-item{padding:1em 12px}#latest-comments #the-comment-list .pingback{padding-left:12px!important}#latest-comments #the-comment-list .comment-item:first-child{border-top:none}#latest-comments #the-comment-list .comment-item h4{line-height:1.5em;margin-top:0;color:#666}#latest-comments #the-comment-list .comment-item h4 cite{font-style:normal;font-weight:400}#latest-comments #the-comment-list .comment-item blockquote,#latest-comments #the-comment-list .comment-item blockquote p{margin:0;padding:0;display:inline}#latest-comments #the-comment-list .comment-item p.row-actions{margin:3px 0 0;padding:0;font-size:13px}#description-wrap label,#title-wrap label{cursor:text}#title-wrap #title{padding:2px 6px;font-size:1.3em;outline:0}#title-wrap #title-prompt-text{font-size:1.1em;padding:5px 8px}.rss-widget ul{margin:0;padding:0;list-style:none}a.rsswidget{font-size:14px;font-weight:600;line-height:1.7em}.rss-widget ul li{line-height:1.5em;margin-bottom:12px}.rss-widget span.rss-date{color:#999;font-size:13px;margin-left:3px}.rss-widget cite{display:block;text-align:right;margin:0 0 1em;padding:0}.rss-widget cite:before{content:'\2014'}.dashboard-comment-wrap{overflow:hidden;word-wrap:break-word}#dashboard_browser_nag a.update-browser-link{font-size:1.2em;font-weight:600}#dashboard_browser_nag a{text-decoration:underline}#dashboard_browser_nag p.browser-update-nag.has-browser-icon{padding-right:125px}#dashboard_browser_nag .browser-icon{margin-top:-35px}#dashboard_browser_nag.postbox.browser-insecure{background-color:#ac1b1b;border-color:#ac1b1b}#dashboard_browser_nag.postbox{background-color:#e29808;background-image:none;border-color:#edc048;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag.postbox.browser-insecure h3{border-bottom-color:#cd5a5a;color:#fff}#dashboard_browser_nag.postbox h3{border-bottom-color:#f6e2ac;background:0 0;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag a{color:#fff}#dashboard_browser_nag h3.hndle{border:none;font-weight:600;font-size:20px;padding-top:10px}.postbox#dashboard_browser_nag p a.dismiss{font-size:14px}.postbox#dashboard_browser_nag a,.postbox#dashboard_browser_nag p,.postbox#dashboard_browser_nag p.browser-update-nag{font-size:16px}@media only screen and (max-width:799px){#wpbody-content #dashboard-widgets .postbox-container{width:100%}}@media only screen and (min-width:800px) and (max-width:1499px){#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}#wpbody #wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody #wpbody-content .metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}.index-php .columns-prefs,.index-php .screen-layout{display:block}.columns-prefs .columns-prefs-3,.columns-prefs .columns-prefs-4{display:none}}@media only screen and (min-width:1500px) and (max-width:1800px){#wpbody-content #dashboard-widgets .postbox-container{width:33.5%}#wpbody-content #dashboard-widgets #postbox-container-1{width:33%}#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right}#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}}@media screen and (max-width:870px){.welcome-panel .welcome-panel-column,.welcome-panel .welcome-panel-column:first-child{display:block;float:none;width:100%}.welcome-panel .welcome-panel-column li{display:inline-block;margin-right:13px}.welcome-panel .welcome-panel-column ul{margin:.4em 0 0}}@media screen and (max-width:782px){#dashboard_recent_comments #the-comment-list .comment-item .avatar{height:30px;width:30px;margin:4px 10px 5px 0}}@media screen and (max-width:600px){.welcome-panel .welcome-panel-close{overflow:hidden;text-indent:100%;white-space:nowrap;width:20px;height:20px;right:0;padding:5px}#welcome-panel.welcome-panel .welcome-panel-close:before{font-size:20px;margin:0}}.post-com-count-wrapper{min-width:22px}.post-com-count{background:no-repeat center -80px;height:1.3em;line-height:1.1em;display:block;text-decoration:none;padding:0 0 6px;cursor:pointer;color:#fff}.post-com-count:after{content:"";display:block;width:0;height:0;margin-left:8px;border-top:5px solid #bbb;border-right:5px solid transparent}.post-com-count span{font-size:11px;font-weight:600;height:1.4em;line-height:1.4em;min-width:.7em;padding:0 6px;display:inline-block;-webkit-border-radius:5px;border-radius:5px;background-color:#bbb;color:#fff}.post-com-count:hover{background-position:center -3px}.post-com-count:hover span{background-color:#2ea2cc}.post-com-count:hover:after{border-top:5px solid #2ea2cc}strong .post-com-count{background-position:center -55px}strong .post-com-count span{background-color:#0074a2}strong .post-com-count:after{border-top:5px solid #0074a2}.column-response .post-com-count{float:left;margin-right:5px;text-align:center}.response-links{float:left}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom:1px solid #ccc}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#submitted-on,.submitted-on{color:#777}#replyrow td{padding:2px}#replysubmit{margin:0;padding:0 5px 3px;text-align:center}#replysubmit .spinner{padding:2px 0 0;vertical-align:top;float:right}#replysubmit .button{margin-right:5px}#replysubmit .error{color:red;line-height:21px;text-align:center}#replyrow h5{margin:.2em 0 0;padding:0 5px;line-height:1.4em;font-size:1em}#edithead .inside{float:left;padding:3px 0 2px 5px;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px;-webkit-box-shadow:none;box-shadow:none}#replyerror{border-color:#ddd;background-color:#f9f9f9}.commentlist .avatar{vertical-align:text-top}#the-comment-list .attachment-80x60{padding:4px 8px}#the-comment-list div.undo,#the-comment-list tr.undo{background-color:#f4f4f4}#the-comment-list .unapproved td,#the-comment-list .unapproved th{background-color:#fef7f1}#the-comment-list .unapproved th.check-column{border-left:4px solid #d54e21}#the-comment-list .unapproved th.check-column input{margin-left:4px}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}#the-comment-list td,#the-comment-list th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}#the-comment-list tr:last-child td,#the-comment-list tr:last-child th{-webkit-box-shadow:none;box-shadow:none}#the-comment-list tr.unapproved+tr.approved td,#the-comment-list tr.unapproved+tr.approved th{border-top:1px solid rgba(0,0,0,.03)}.vim-current,.vim-current td,.vim-current th{background-color:#e4f2fd!important}th .comment-grey-bubble{height:16px;width:16px}th .comment-grey-bubble:before{content:'\f101';font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;left:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-author,.fixed .column-date,.fixed .column-format,.fixed .column-links,.fixed .column-parent,.fixed .column-posts{width:10%}.fixed .column-posts{width:74px}.fixed .column-comment .comment-author{display:none}.fixed .column-categories,.fixed .column-rel,.fixed .column-response,.fixed .column-role,.fixed .column-tags{width:15%}.fixed .column-slug{width:25%}.fixed .column-locations{width:35%}.fixed .column-comments{width:4em;padding:8px 0;text-align:left}.fixed .column-comments .vers{padding-left:3px}.fixed .column-comments a{float:left}.fixed .column-icon{width:80px}.wp-list-table a{-webkit-transition:none;transition:none}#the-list tr:last-child td,#the-list tr:last-child th{border-bottom:none!important;-webkit-box-shadow:none;box-shadow:none}#comments-form .fixed .column-author{width:20%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv .comments-box{border:0}#commentsdiv .comments-box thead th{background:0 0;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv .spinner{padding-left:5px}.sorting-indicator{display:none;width:10px;height:4px;margin-top:8px;margin-left:7px}.sorting-indicator:before{background:0 0;content:'\f142';font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0;top:-4px;left:-8px;line-height:10px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.column-comments .sorting-indicator:before{top:0;left:-10px}th.desc:hover span.sorting-indicator:before,th.sorted.asc .sorting-indicator:before{content:'\f142'}th.asc:hover span.sorting-indicator:before,th.sorted.desc .sorting-indicator:before{content:'\f140'}tr.wp-locked .locked-indicator{margin-left:6px;height:20px;width:16px}tr.wp-locked .locked-indicator:before{color:#888;content:'\f160';display:inline-block;float:left;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-left:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}tr.wp-locked .check-column input[type=checkbox],tr.wp-locked .check-column label,tr.wp-locked .row-actions .inline,tr.wp-locked .row-actions .trash{display:none}tr .locked-info{height:0;opacity:0}tr.wp-locked .locked-info{margin-top:8px;height:auto;opacity:1}.locked-text{vertical-align:top}tr.locked-info,tr.wp-locked .locked-info{-webkit-transition:height 1s,opacity .5s;transition:height 1s,opacity .5s}.fixed .column-comments .sorting-indicator{margin-top:3px}#menu-locations-wrap .widefat{width:60%}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:7px 7px 8px 10px}th.manage-column a,th.sortable a:active,th.sortable a:focus,th.sortable a:hover{color:#333}th.sortable a:focus{background:#e1e1e1}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:left;cursor:pointer}th.desc:hover span.sorting-indicator,th.sorted.asc .sorting-indicator{display:block;background-position:0 0}th.asc:hover span.sorting-indicator,th.sorted.desc .sorting-indicator{display:block;background-position:-7px 0}.tablenav-pages a{font-weight:600;margin-right:1px;padding:0 2px}.tablenav-pages .current-page{padding-top:0;text-align:center}.tablenav-pages .next-page{margin-left:2px}.tablenav a.button-secondary{display:block;margin:3px 8px 0 0}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:right;display:block;cursor:default;height:30px;color:#555;line-height:30px;font-size:12px}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a{padding:0 10px 3px;background:#eee;background:rgba(0,0,0,.05);font-size:16px;font-weight:400}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover{color:#fff;background:#2ea2cc}.tablenav .tablenav-pages a.disabled,.tablenav .tablenav-pages a.disabled:active,.tablenav .tablenav-pages a.disabled:focus,.tablenav .tablenav-pages a.disabled:hover{color:#aaa;background:#eee;background:rgba(0,0,0,.05)}.tablenav .displaying-num{margin-right:2px;color:#777;font-size:12px;font-style:italic}.tablenav .actions{overflow:hidden;padding:2px 8px 0 0}.wp-filter .actions{display:inline-block;vertical-align:middle}.tablenav .delete{margin-right:20px}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#0074a2}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#2ea2cc}.tablenav .view-switch{float:right;margin:5px 16px 0 8px}.wp-filter .view-switch{display:inline-block;vertical-align:middle;padding:14px 0;margin:0 20px 0 0}.view-switch a{text-decoration:none}.view-switch>a{display:inline-block;width:18px;height:18px}.view-switch>a:before{color:#bbb;display:inline-block;float:left;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-left:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.view-switch>.view-list:before{content:'\f163'}.view-switch a:hover:before{color:#727272}.view-switch a.current:before{color:#0074a2}.view-switch>a+a{margin-left:5px}.view-switch>.view-excerpt:before{content:'\f164'}.view-switch>.view-grid:before{content:'\f509'}.filter{float:left;margin:-5px 0 0 10px}.filter .subsubsub{margin-left:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter .wp-filter{margin-bottom:0}#posts-filter fieldset{float:left;margin:0 1.5ex 1em 0;padding:0}#posts-filter fieldset legend{padding:0 0 .2em 1px}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:600;margin:0 6px}.row-title{font-size:14px!important;font-weight:600}.column-comment .comment-author{margin-bottom:.6em}.column-author img,.column-comment .comment-author img,.column-username img{float:left;margin-right:10px;margin-top:1px}.row-actions{color:#ddd;font-size:13px;visibility:hidden;padding:2px 0 0}.mobile .row-actions,.row-actions.visible,div.comment-item:hover .row-actions,tr:hover .row-actions{visibility:visible}.row-actions-visible{padding:2px 0 0}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:left;margin:0;padding:0;width:100%}#wpbody-content .inline-edit-row fieldset .inline-edit-col,tr.inline-edit-row td{padding:0 .5em}#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col{border-width:0 0 0 1px;border-style:none none none solid}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .quick-edit-row-page .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:right;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both}.inline-edit-row fieldset .inline-edit-group:after{content:".";display:block;height:0;clear:both;visibility:hidden}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}.inline-edit-row h4{margin:.2em 0;padding:0;line-height:23px}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{margin:0;padding:0}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0;width:auto}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-left:5em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-right:.5em}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:text-bottom}.inline-edit-row fieldset label textarea{width:100%;height:4em}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-right:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-save .spinner{padding:4px 10px 0;vertical-align:top;float:right}.inline-edit-row h4{text-transform:uppercase}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{font-style:italic;line-height:1.8em}.inline-edit-row fieldset .inline-edit-date{float:left}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.1em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}ul.cat-checklist{height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px;margin:0;background-color:#fff}#bulk-titles{display:block;height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px;margin:0 0 5px}.inline-edit-row fieldset ul.cat-checklist input,.inline-edit-row fieldset ul.cat-checklist li{margin:0;position:relative}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-style:normal;font-size:11px}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{max-width:80%}.ie8 .inline-edit-row #post_parent,.ie8 .inline-edit-row select[name=page_template]{width:250px}.quick-edit-row-post fieldset label.inline-edit-status{float:left}#bulk-titles{line-height:140%}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:left;height:18px;margin:0 3px 0 -2px;overflow:hidden;position:relative;width:20px}#bulk-titles div a:before{position:relative;top:-3px}.plugins tbody,.plugins tbody th.check-column{padding:8px 0 0 2px}.plugins tbody th.check-column input[type=checkbox]{margin-top:4px}#update-plugins-table tbody td p{margin-top:0}#update-plugins-table tbody td p strong{font-size:14px}.plugins .inactive th.check-column,.plugins tfoot th.check-column,.plugins thead th.check-column{padding-left:6px}#update-plugins-table tfoot th.check-column,#update-plugins-table thead th.check-column{padding-top:11px}.plugins,.plugins td,.plugins th{color:#000}.plugins tr{background:#fff}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ol,.plugins .desc ul{margin:0 0 0 2em}.plugins .desc ul{list-style-type:disc}.plugins .row-actions{font-size:13px}.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th{padding:10px 9px}.plugins .active td,.plugins .active th{background-color:#f7fcfe}.plugins .update td,.plugins .update th{border-bottom:0}.plugin-update-tr td{border-top:0}.plugin-install #the-list td,.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th,.upgrade .plugins td,.upgrade .plugins th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th,.plugins tr.active.plugin-update-tr+tr.inactive td,.plugins tr.active.plugin-update-tr+tr.inactive th{border-top:1px solid rgba(0,0,0,.03);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1;box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1}.plugins .update td,.plugins .update th,.plugins tr.active+tr.inactive.update td,.plugins tr.active+tr.inactive.update th,.upgrade .plugins tr:last-of-type td,.upgrade .plugins tr:last-of-type th{-webkit-box-shadow:none;box-shadow:none}.plugins .active.update td,.plugins .active.update th,tr.active.update+tr.plugin-update-tr .plugin-update{background-color:#fef7f1}.plugins .active th.check-column{border-left:4px solid #2ea2cc}.plugins .active.update th.check-column,.plugins .active.update+.plugin-update-tr .plugin-update{border-left:4px solid #d54e21}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-right:12px;white-space:nowrap}.plugins .inactive .plugin-title strong{font-weight:400}.plugins .row-actions,.plugins .second{padding:0 0 5px}.plugins .update .row-actions,.plugins .update .second{padding-bottom:0}.plugins-php .widefat tfoot td,.plugins-php .widefat tfoot th{border-top-style:solid;border-top-width:1px}.plugin-update-tr .update-message{font-size:13px;font-weight:400;padding:6px 12px;margin:0 10px 8px 31px;background-color:#f7f7f7;background-color:rgba(0,0,0,.03)}.plugin-update-tr .update-message:before{color:#d54e21;content:'\f463';display:inline-block;font:400 20px/1 dashicons;speak:none;margin:0 8px 0 -2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.plugins .plugin-update{padding:0;border:none;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}tr.active+tr.plugin-update-tr .plugin-update{background-color:#f7fcfe}tr.active+tr.plugin-update-tr .plugin-update .update-message{background-color:#fcf3ef}.plugin-install-php h3{clear:both}.plugin-install-php h4{margin:2.5em 0 8px}.plugin-install-php .wp-filter{margin-bottom:0}.plugin-group{overflow:hidden;margin-top:1.5em}.plugin-group h3{margin-top:0}.plugin-card{float:left;margin:0 8px 16px;width:48.5%;width:-webkit-calc(50% - 8px);width:calc(50% - 8px);background-color:#fff;border:1px solid #dedede;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.plugin-card:nth-child(odd){clear:both;margin-left:0}.plugin-card:nth-child(even){margin-right:0}@media screen and (min-width:1600px){.plugin-card{width:30%;width:-webkit-calc(33.1% - 8px);width:calc(33.1% - 8px)}.plugin-card:nth-child(odd){clear:none;margin-left:8px}.plugin-card:nth-child(even){margin-right:8px}.plugin-card:nth-child(3n+1){clear:both;margin-left:0}.plugin-card:nth-child(3n){margin-right:0}}@media screen and (max-width:782px){.plugin-card{margin-left:0;margin-right:0;width:100%}}.plugin-card-top{position:relative;padding:20px 20px 10px;min-height:135px}.plugin-action-buttons,div.action-links{margin:0}.plugin-card h4{margin:0 0 12px;font-size:18px;line-height:1.3}.plugin-card .desc,.plugin-card .name{margin-left:148px;margin-right:120px}.plugin-card .action-links{position:absolute;top:20px;right:20px;width:120px}.plugin-action-buttons{clear:right;float:right;margin-left:2em;margin-bottom:1em;text-align:right}.plugin-action-buttons li{margin-bottom:10px}.plugin-card-bottom{clear:both;padding:12px 20px;background-color:#fafafa;border-top:1px solid #dedede;overflow:hidden}.plugin-card-bottom .star-rating{display:inline}.plugin-card .column-rating{line-height:23px}.plugin-card .column-rating,.plugin-card .column-updated{margin-bottom:4px}.plugin-card .column-downloaded,.plugin-card .column-rating{float:left;clear:left;max-width:180px}.plugin-card .column-compatibility,.plugin-card .column-updated{text-align:right;float:right;clear:right;width:65%;width:-webkit-calc(100% - 180px);width:calc(100% - 180px)}.plugin-card .column-compatibility span:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;left:-2px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.plugin-card .compatibility-incompatible:before{content:'\f158'}.plugin-card .compatibility-compatible:before{content:'\f147'}.plugin-card .compatibility-untested strong{font-weight:400}.plugin-icon{position:absolute;top:20px;left:20px;width:128px;height:128px;margin:0 20px 20px 0}.plugin-icon img{width:128px;height:128px}.no-plugin-results{color:#999;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.wp-list-table .site-deleted{background:#ff8573}.wp-list-table .site-spammed{background:#faafaa}.wp-list-table .site-archived{background:#ffebe8}.wp-list-table .site-mature{background:#fecac2}@media screen and (max-width:1100px) and (min-width:782px),(max-width:480px){.plugin-card .action-links{position:static;margin-left:148px;width:auto}.plugin-action-buttons{float:none;margin:1em 0 0;text-align:left}.plugin-action-buttons li{display:inline-block;vertical-align:middle}.plugin-action-buttons li .button{margin-right:20px}.plugin-card .desc,.plugin-card .name{margin-right:0}.plugin-card .desc p:first-of-type{margin-top:0}}@media screen and (max-width:782px){.tablenav{height:auto}.tablenav.top{margin:20px 0 5px}.tablenav.bottom{position:relative;margin-top:15px}.tablenav br{display:none}.tablenav br.clear{display:block}.tablenav .view-switch,.tablenav.top .actions,.tablenav.top .displaying-num{display:none}.tablenav.bottom .displaying-num{position:absolute;right:0;top:10px;font-size:14px}.tablenav-pages{width:100%;text-align:center;margin:0 0 25px}.tablenav.bottom .tablenav-pages{margin-top:25px}.tablenav.top .tablenav-pages.one-page{display:none}.tablenav.bottom .tablenav-pages.one-page{margin:15px 0 0;height:0}.tablenav-pages .pagination-links .paging-input{font-size:18px}.tablenav-pages .pagination-links a{padding:8px 20px 11px;font-size:18px;background:rgba(0,0,0,.05)}.tablenav-pages .pagination-links .current-page{padding:10px;font-size:14px}.form-wrap>p{display:none}.comment-count{font-size:14px}.column-categories,.column-tags,.fixed .column-author,.fixed .column-date,.media .column-parent,.sites .column-registered,.sites .column-users,.tags .column-description,.users .column-email,.users .column-name{display:none}.fixed .column-comment .comment-author{display:block}.column-title{width:85%}.fixed .column-comments,.widefat .check-column{width:35px}.widefat tfoot .check-column,.widefat thead .check-column{padding:10px 0}.widefat *{word-wrap:normal}#wpbody-content .bulk-edit-row .inline-edit-col-bottom,#wpbody-content .bulk-edit-row .inline-edit-col-left,#wpbody-content .bulk-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .inline-edit-row-post .inline-edit-col-center,#wpbody-content .quick-edit-row-page .inline-edit-col-left,#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .quick-edit-row-post .inline-edit-col-left,#wpbody-content .quick-edit-row-post .inline-edit-col-right{float:none;width:100%}#wpbody-content .bulk-edit-row fieldset .inline-edit-col label,#wpbody-content .bulk-edit-row fieldset .inline-edit-group label,#wpbody-content .quick-edit-row fieldset .inline-edit-col label,#wpbody-content .quick-edit-row fieldset .inline-edit-group label{max-width:none;float:none;margin-bottom:5px}#wpbody .bulk-edit-row fieldset select{display:block;width:100%;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-size:16px}.inline-edit-row fieldset label span.title{float:none}.inline-edit-row fieldset label.inline-edit-tags{padding:0 .5em}.inline-edit-row fieldset .inline-edit-col label.inline-edit-tags{padding:0}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{width:3em}.inline-edit-row fieldset input[name=aa]{width:4.5em}#bulk-titles div{margin:.8em .3em}#bulk-titles div a{height:22px}.tags .column-posts{width:74px}.tags .column-slug{width:30%}.comments .column-response,.users .column-role{width:35%}.sites .column-blogname{width:55%}#wpbody-content #update-themes-table .plugin-title{width:auto}.link-manager-php #posts-filter{margin-top:25px}.link-manager-php .tablenav.bottom{overflow:hidden}.wp-list-table.plugins{position:relative;margin-top:35px;margin-bottom:50px}#wpbody-content .wp-list-table.plugins tfoot .column-description,.wp-list-table.plugins th#description,.wp-list-table.plugins thead .column-description{display:none}#wpbody-content .wp-list-table.plugins,#wpbody-content .wp-list-table.plugins .column-description,#wpbody-content .wp-list-table.plugins .manage-column.column-name,#wpbody-content .wp-list-table.plugins .plugin-title,#wpbody-content .wp-list-table.plugins .plugin-update,#wpbody-content .wp-list-table.plugins .theme-title,#wpbody-content .wp-list-table.plugins tbody,#wpbody-content .wp-list-table.plugins thead,#wpbody-content .wp-list-table.plugins tr{display:block;width:auto}.wp-list-table.plugins tfoot,.wp-list-table.plugins thead{position:absolute;top:-35px;left:0;right:0;width:auto;height:35px}.wp-list-table.plugins tfoot{bottom:-35px;top:auto}.active,.inactive{padding-top:0}.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-top:13px;padding-bottom:4px}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column,.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title,.wp-list-table.plugins tbody th{-webkit-box-shadow:none;box-shadow:none}.plugins tbody{padding:1px 0 0}.plugins tr.active+tr.inactive td.column-description{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column{border-top:none}.wp-list-table.plugins .column-description{padding-top:0}.wp-list-table.plugins .column-description,.wp-list-table.plugins .manage-column.column-name,.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-right:12px;padding-left:46px}.wp-list-table.plugins tr{position:relative}.wp-list-table.plugins th.check-column,.wp-list-table.plugins tr.update th.check-column{position:absolute;height:auto;top:0;bottom:0;left:0;padding-left:2px;padding-top:18px}.wp-list-table.plugins tfoot th.check-column,.wp-list-table.plugins thead th.check-column{padding-left:3px;padding-top:11px;background:0 0}.widefat tbody th.check-column input[type=checkbox]{margin-top:-3px;margin-left:8px}.wp-list-table.plugins .active .check-column input,.wp-list-table.plugins .update .check-column input{margin-left:5px}.wp-list-table.plugins tfoot .check-column input,.wp-list-table.plugins thead .check-column input{margin-top:-6px}.wp-list-table.plugins .active th.check-column{background:0 0}.wp-list-table.plugins .plugin-title strong,.wp-list-table.plugins .theme-title strong{font-size:1.4em;line-height:1.6em}table.plugin-install .column-description,table.plugin-install .column-name,table.plugin-install .column-rating,table.plugin-install .column-version{display:block;width:auto}table.plugin-install th.column-description,table.plugin-install th.column-name,table.plugin-install th.column-rating,table.plugin-install th.column-version{display:none}table.plugin-install td.column-name strong{font-size:1.4em;line-height:1.6em}table.plugin-install #the-list td{-webkit-box-shadow:none;box-shadow:none}table.plugin-install #the-list tr{display:block;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}}#poststuff{padding-top:10px;min-width:763px}#poststuff #post-body{padding:0}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments .spinner,#show-comments a{float:left}#lost-connection-notice .spinner{display:block;float:left;margin:0 5px 0 0}#titlediv{position:relative}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0;background-color:#fff}#titlediv #title-prompt-text{color:#777;position:absolute;font-size:1.7em;padding:11px 10px}#wp-fullscreen-save .fs-saved{color:#999;float:right;margin-top:4px}#poststuff .inside-submitbox,#side-sortables .inside-submitbox{margin:0 3px;font-size:11px}input#link_description,input#link_url{width:98%}#pending{background:0 none;border:0;padding:0;font-size:11px;margin-top:-1px}#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-right:10px;font-size:11px}#editable-post-name-full{display:none}#editable-post-name{background-color:#fffbcc}#editable-post-name input{font-size:13px;height:22px;margin:0;width:16em}.postarea h3 label{float:left}.submitbox .submit{text-align:left;padding:12px 10px 10px;font-size:11px;background-color:#464646;color:#ccc}.submitbox .submitdelete{text-decoration:none;padding:1px 2px}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:red;border-bottom-color:red}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}.inside-submitbox #post_status{margin:2px 0 2px -2px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{position:relative;min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:right;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#333}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:10px 0}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:0 7px 5px}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}#side-sortables .inside-submitbox .insidebox,.stuffbox .insidebox{margin:11px 0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #dfdfdf;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 5px}#postimagediv .inside img{max-width:100%;height:auto}form#tags-filter{position:relative}td.plugin-title strong,td.post-title strong{display:block;margin-bottom:.2em;font-size:14px}td.plugin-title p,td.post-title p{margin:6px 0}.ui-tabs-hide,.wp-hidden-children .wp-hidden-child{display:none}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:right}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) no-repeat scroll right bottom;width:12px;cursor:row-resize}.rtl #content-resize-handle{background:url(../images/resize-rtl.gif) no-repeat scroll left bottom}.wp-editor-expand #content-resize-handle{display:none}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}#wp-content-editor-container{position:relative}#content-textarea-clone{z-index:-1;position:absolute;top:0;visibility:hidden;overflow:hidden;max-width:100%;border:1px solid transparent}.wp-fullscreen-wrap #content-textarea-clone{display:none}.wp-fullscreen-wrap{padding-top:0!important}.wp-fullscreen-wrap .wp-editor-area{margin-top:0!important}.wp-fullscreen-wrap .mce-edit-area{padding-top:0!important}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#misc-publishing-actions label[for=post_status]:before,#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#888}#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 2px 0 0;top:0;left:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}#post-body #visibility:before{content:'\f177'}.curtime #timestamp:before{content:'\f145';top:-1px}#post-body .misc-pub-revisions:before{content:'\f321'}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;left:50%;width:450px;margin-left:-225px;background:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005}.notification-dialog-background{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#post-lock-dialog .post-locked-message a.button{margin-right:10px}#post-lock-dialog .post-locked-avatar{float:left;margin:0 20px 20px 0}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:left;margin-right:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt,.attachmentlinks{margin:0;height:4em;width:98%}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist span{margin-right:25px;display:block;float:left;font-size:13px;line-height:1.8em;white-space:nowrap;cursor:default}.tagchecklist span a{margin:1px 0 0 -17px;cursor:pointer;width:20px;height:20px;display:block;float:left;text-indent:0;overflow:hidden;position:absolute}#poststuff h2{margin-top:20px;font-size:1.5em;margin-bottom:15px;padding:0 0 3px;clear:left}#poststuff h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}#poststuff .inside label.deleted,#poststuff .inside label.spam{color:red}#poststuff .inside label.waiting{color:orange}#poststuff .inside label.approved{color:green}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}#post-visibility-select{line-height:1.5em;margin-top:3px}#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #dfdfdf;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-right:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:left;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-right:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#2ea2cc}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-left:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-right:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:'\f109'}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:'\f128'}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:'\f161'}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:'\f127'}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:'\f126'}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:'\f125'}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:'\f130'}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:'\f123'}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:'\f122'}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:'\f103'}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #dfdfdf;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px;font-size:12px}.form-field input[type=email],.form-field input[type=number],.form-field input[type=password],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=text],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:0 0 10px;padding:8px 0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h3{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.tagsdiv{margin-top:-8px}#poststuff .taghint{color:#aaa;margin:15px 0 -24px 12px}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}.taghint{color:#aaa;margin:-17px 0 0 7px;visibility:hidden}input.newtag~div.taghint{visibility:visible}input.newtag:focus~div.taghint{visibility:hidden}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h3{margin:2px 0 12px}.ac_results{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;display:none;border:1px solid gray;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{padding:2px 5px;white-space:nowrap;color:#101010;text-align:left}.ac_over{background-color:#f0f0b8;cursor:pointer}.ac_match{text-decoration:underline}.comment-php .wp-editor-area{height:200px}.comment-ays{margin-bottom:0;border-bottom-style:solid;border-bottom-width:1px}.comment-ays .alt{background-color:transparent}.spam-undo-inside,.trash-undo-inside{margin:1px 8px 1px 0;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}#comment-status-radio label{padding:5px 0}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td,.links-table th{padding:5px 0}.links-table td label{margin-right:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) no-repeat scroll right bottom;-webkit-background-size:11px 11px;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-rtl-2x.gif) no-repeat scroll right bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff h3{padding:12px}.post-format-options{padding-right:0}.post-format-options a{margin-right:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-right:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist li{margin-bottom:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto;margin-bottom:15px}.tagchecklist{margin:25px 10px}.tagchecklist span{font-size:16px;line-height:120%}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:left!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-left:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 3px 6px 6px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}a.wp-switch-editor{font-size:16px;line-height:1em;margin:3px 0 0 7px;padding:12px 15px}#wp-content-media-buttons a{font-size:16px;line-height:37px;height:39px;padding:0 20px 0 15px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-top:-3px!important;margin-left:-5px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:right;font-size:16px}#delete-action,#publishing-action{line-height:47px}.comment-ays{border-bottom:none}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}}@media only screen and (max-width:500px){#wp-content-media-buttons a{font-size:14px;padding:0 10px}}.revisions-control-frame,.revisions-diff-frame{position:relative}.revisions-controls{padding-top:40px;height:100px;z-index:1}.revisions-controls input[type=checkbox]{position:relative;top:-1px;vertical-align:text-bottom}.revisions.pinned .revisions-controls{position:fixed;top:0;height:82px;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-tickmarks{position:relative;margin:0 auto;height:.7em;top:7px;max-width:70%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.revisions-tickmarks>div{position:absolute;height:100%;border-left:1px solid #aaa;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.revisions-tickmarks>div:first-child{border-width:0}.comparing-two-revisions .revisions-controls{height:140px}.comparing-two-revisions.pinned .revisions-controls{height:124px}.revisions .diff-error{position:absolute;text-align:center;margin:0 auto;width:100%;display:none}.revisions.diff-error .diff-error{display:block}.revisions .loading-indicator{position:absolute;vertical-align:middle;opacity:0;width:100%;width:-webkit-calc(100% - 30px);width:calc(100% - 30px);top:50%;top:-webkit-calc(50% - 10px);top:calc(50% - 10px);-webkit-transition:opacity .5s;transition:opacity .5s;filter:alpha(opacity=0)}body.folded .revisions .loading-indicator{margin-left:-32px}.revisions .loading-indicator span.spinner{display:block;margin:0 auto;float:none}.revisions.loading .loading-indicator{opacity:1;filter:alpha(opacity=100)}.revisions .diff{-webkit-transition:opacity .5s;transition:opacity .5s}.revisions.loading .diff{opacity:.5;filter:alpha(opacity=50)}.revisions.diff-error .diff{visibility:hidden}.revisions-meta{margin-top:20px;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions.pinned .revisions-meta{-webkit-box-shadow:none;box-shadow:none}.revision-toggle-compare-mode{position:absolute;top:0;right:0}.comparing-two-revisions .revisions-next,.comparing-two-revisions .revisions-previous,.revisions-meta .diff-meta-to strong{display:none}.revisions-controls .author-card .date{color:#777}.revisions-controls .author-card.autosave{color:#d54e21}.revisions-controls .author-card .author-name{font-weight:700}.comparing-two-revisions .diff-meta-to strong{display:block}.revisions.pinned .revisions-buttons{padding:0 11px}.revisions-next,.revisions-previous{position:relative;z-index:1}.revisions-previous{float:left}.revisions-next{float:right}.revisions-controls .wp-slider{max-width:70%;margin:0 auto;top:-3px}.revisions-diff{padding:15px;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.revisions-diff h3:first-child{margin-top:0}#revisions-meta-restored img,.post-revisions li img{vertical-align:middle}table.diff tbody tr td:nth-child(2){width:4%}table.diff{table-layout:fixed;width:100%;white-space:pre-wrap}table.diff col.content{width:auto}table.diff col.content.diffsplit{width:48%}table.diff col.diffsplit.middle{width:auto}table.diff col.ltype{width:30px}table.diff tr{background-color:transparent}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.618;padding:.5em;vertical-align:top;word-wrap:break-word}table.diff td h1,table.diff td h2,table.diff td h3,table.diff td h4,table.diff td h5,table.diff td h6{margin:0}table.diff .diff-addedline ins,table.diff .diff-deletedline del{text-decoration:none}table.diff .diff-deletedline{background-color:#ffe9e9}table.diff .diff-deletedline del{background-color:#faa}table.diff .diff-addedline{background-color:#e9ffe9}table.diff .diff-addedline ins{background-color:#afa}.diff-meta{padding:5px;clear:both;min-height:32px}.diff-title strong{line-height:32px;min-width:60px;text-align:right;float:left;margin-right:5px}.revisions-controls .author-card .author-info{font-size:12px;line-height:16px}.revisions-controls .author-card .author-info,.revisions-controls .author-card .avatar{float:left;margin-left:6px;margin-right:6px}.revisions-controls .author-card .byline{display:block;font-size:12px}.revisions-controls .author-card .avatar{vertical-align:middle}.diff-meta input.restore-revision{float:right;margin-left:6px;margin-right:6px;margin-top:4px}.diff-meta-from{display:none}.comparing-two-revisions .diff-meta-from{display:block}.revisions-tooltip{position:absolute;bottom:105px;margin-right:0;margin-left:-69px;z-index:0;max-width:350px;min-width:130px;padding:8px 4px;opacity:0}.revisions-tooltip.flipped{margin-left:0;margin-right:-70px}.revisions.pinned .revisions-tooltip{display:none!important}.comparing-two-revisions .revisions-tooltip{bottom:145px}.revisions-tooltip-arrow{width:70px;height:15px;overflow:hidden;position:absolute;left:0;margin-left:35px;bottom:-15px}.revisions-tooltip.flipped .revisions-tooltip-arrow{margin-left:0;margin-right:35px;left:auto;right:0}.revisions-tooltip-arrow>span{content:"";position:absolute;left:20px;top:-20px;width:25px;height:25px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.revisions-tooltip.flipped .revisions-tooltip-arrow>span{left:auto;right:20px}.ie8 .revisions-tooltip-arrow>span{left:15px;top:-25px;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476)"}.ie8 .revisions-tooltip.flipped .revisions-tooltip-arrow>span{right:25px}.revisions-tooltip,.revisions-tooltip-arrow>span{border:1px solid #d7d7d7;background-color:#fff}.revisions-tooltip{display:none}.arrow{width:70px;height:16px;overflow:hidden;position:absolute;left:0;margin-left:-35px;bottom:90px;z-index:10000}.arrow:after{z-index:9999;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.arrow.top{top:-16px;bottom:auto}.arrow.left{left:20%}.arrow:after{content:"";position:absolute;left:20px;top:-20px;width:25px;height:25px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.revisions-tooltip,.revisions-tooltip-arrow:after{border-width:1px;border-style:solid}div.revisions-controls>.wp-slider>.ui-slider-handle{margin-left:-10px}.rtl div.revisions-controls>.wp-slider>.ui-slider-handle{margin-right:-10px}.wp-slider.ui-slider{position:relative;border:1px solid #d7d7d7;text-align:left;cursor:pointer}.wp-slider .ui-slider-handle{-webkit-border-radius:50%;border-radius:50%;height:18px;margin-top:-3px;outline:0;position:absolute;width:18px;z-index:2}.wp-slider .ui-slider-handle,.wp-slider .ui-slider-handle.focus,.wp-slider .ui-slider-handle.ui-state-hover{background:#2ea2cc;border:1px solid #0074a2;-webkit-box-shadow:inset 0 1px 0 #78c8e6,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #78c8e6,0 1px 0 rgba(0,0,0,.15)}.wp-slider .ui-slider-handle:before{background:0 0;position:absolute;top:0;left:0;color:#fff;content:"\f229";font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{font-size:20px!important;margin:-1px 0 0 -1px}.wp-slider .ui-slider-handle.from-handle:before{content:'\f139'}.rtl .wp-slider .ui-slider-handle.from-handle:before,.wp-slider .ui-slider-handle.to-handle:before{content:'\f141'}.rtl .wp-slider .ui-slider-handle.to-handle:before{content:'\f139';right:-1px}.wp-slider .ui-slider-range{position:absolute;font-size:.7em;display:block;border:0;background-color:transparent;background-image:none}.wp-slider.ui-slider-horizontal{height:.7em}.wp-slider.ui-slider-horizontal .ui-slider-handle{top:-.25em;margin-left:-.6em}.wp-slider.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.wp-slider.ui-slider-horizontal .ui-slider-range-min{left:0}.wp-slider.ui-slider-horizontal .ui-slider-range-max{right:0}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.revision-tick.completed-false{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){#diff-next-revision,#diff-previous-revision{margin-top:-1em}table.diff{-ms-word-break:break-all;word-break:break-all;word-wrap:break-word}}.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #dfdfdf;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:600}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.describe-toggle-off,.describe-toggle-on,.media-item .edit-attachment{display:block;line-height:36px;float:right;margin-right:10px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.media-upload-form .media-item{min-height:36px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{-webkit-box-shadow:0 1px 0 #dfdfdf;box-shadow:0 1px 0 #dfdfdf}#media-items:empty{border:0}.media-item .filename{line-height:36px;overflow:hidden;margin-left:6px}.media-item .pinkynail{float:left;margin:2px 10px 0 3px;max-width:40px;max-height:32px}.media-item .startclosed,.media-item .startopen{display:none}.media-item .original{position:relative;height:34px}.media-item .progress{float:right;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;-webkit-border-radius:22px;border-radius:22px;background:#ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;-webkit-border-radius:22px;border-radius:22px;background-color:#0074a2;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,.3);box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 0 10px 14px}.media-item .error-div a.dismiss{display:block;float:right;margin:0 10px 0 15px}.find-box{background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-left:-300px;position:fixed;top:30px;bottom:30px;left:50%;z-index:100105}.find-box-head{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 36px 0 16px;position:absolute;top:0;left:0;right:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;left:110px;position:absolute;top:2px}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:left}#find-posts-input{width:140px;height:28px;margin:0 4px 0 0}.widefat .found-radio{padding-right:0;width:16px}#find-posts-close{width:36px;height:36px;position:absolute;top:0;right:0;cursor:pointer;text-align:center;color:#666}#find-posts-close:hover{color:#2ea2cc}#find-posts-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f158'}.find-box-buttons{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;left:0;right:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;left:0;right:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #ddd;line-height:1.8em;word-spacing:3px;-webkit-border-radius:6px;border-radius:6px}.drag-drop #drag-drop-area{border:4px dashed #bbb;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#aaa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title{display:none}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-bottom:16px;padding:0 16px;border:1px solid #c00;background-color:#feebe8}.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:20px 0;padding:0;border:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors{font-size:0;top:-12px;right:-10px}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:before{content:"\f158";font:400 20px/1 dashicons;color:#666}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:focus:before,.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:hover:before{color:#2ea2cc}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h3{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;right:auto;left:auto;bottom:auto;padding-top:0;margin-top:0;border:4px dashed #bbb}.media-frame.mode-select .attachments-browser.fixed .attachments{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;outline:0}.media-frame.mode-grid .selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc}.media-frame.mode-grid .attachment.details{-webkit-box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 10px 0 0;font-size:14px}.media-frame.mode-grid .media-toolbar-secondary>.media-button{margin-top:10px;margin-bottom:10px}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 10px 0 0}.media-frame.mode-grid .search{margin-top:0}.media-frame.mode-grid .spinner{margin-top:15px}.attachments-browser .media-toolbar-secondary>.select-mode-toggle-button{margin-right:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;left:auto;right:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#999;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:'\f335';font-size:22px}.upload-php .media-modal-close .media-modal-icon{margin:14px;width:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#777;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-left:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;right:0}.edit-attachment-frame .edit-media-header .left{right:102px}.edit-attachment-frame .edit-media-header .right{right:51px}.edit-attachment-frame .media-frame-title{left:0;right:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#ddd;border-color:#ccc;color:#000;outline:0}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before,.rtl .edit-attachment-frame .edit-media-header .right:before{content:'\f341'}.edit-attachment-frame .edit-media-header .right:before,.rtl .edit-attachment-frame .edit-media-header .left:before{content:'\f345'}.edit-attachment-frame .edit-media-header .left.disabled,.edit-attachment-frame .edit-media-header .left.disabled:hover,.edit-attachment-frame .edit-media-header .right.disabled,.edit-attachment-frame .edit-media-header .right.disabled:hover{color:#ccc;background:inherit;cursor:default;pointer-events:none}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{left:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;right:0;left:0;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:left;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin-bottom:16px;max-width:100%;max-height:90%;max-height:-webkit-calc(100% - 42px);max-height:calc(100% - 42px)}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:6px 8px;line-height:16px}.edit-attachment-frame .attachment-info{overflow:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-left:1px solid #ddd;background:#f3f3f3}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #ddd}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#666}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative}.imgedit-settings p{margin:8px 0 0}.describe .imgedit-wrap .imgedit-settings{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto;overflow:hidden}.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{padding-right:16px;width:auto;overflow:hidden}.wp_attachment_holder .imgedit-wrap .imgedit-settings{float:right;width:250px}.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;background:#fff url(../images/spinner.gif) no-repeat center;-webkit-background-size:20px 20px;background-size:20px 20px;opacity:.7;filter:alpha(opacity=70);width:100%;height:500px;display:none}.no-float{float:none}.imgedit-settings .disabled,.media-disabled{color:grey}.A1B1,.wp_attachment_image{overflow:hidden}.A1B1 .button,.wp_attachment_image .button{float:left}.no-js .wp_attachment_image .button{display:none}.A1B1 .spinner,.wp_attachment_image .spinner{float:left;padding:0 0 4px;vertical-align:bottom}.imgedit-menu{margin:0 0 12px;min-width:300px}.imgedit-menu div{float:left;width:32px;border:1px solid #d5d5d5;background:#f1f1f1;margin:0 8px 0 0;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;line-height:28px;color:#777;cursor:pointer}.imgedit-menu div:before{font:400 20px/1 dashicons;speak:none;vertical-align:middle}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea;color:#333}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;color:#777;filter:alpha(opacity=50);opacity:.5;cursor:default}.imgedit-crop:before{content:'\f165'}.imgedit-rleft:before{content:'\f166'}.imgedit-rright:before{content:'\f167'}.imgedit-flipv:before{content:'\f168'}.imgedit-fliph:before{content:'\f169'}.imgedit-undo:before{content:'\f171'}.imgedit-redo:before{content:'\f172'}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 8px 0 0}.imgedit-rleft{margin:0 3px}.imgedit-rright{margin:0 8px 0 3px}.imgedit-flipv{margin:0 3px}.imgedit-fliph{margin:0 8px 0 3px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 8px 0 3px}.imgedit-applyto img{margin:0 8px 0 0}.imgedit-group-top{margin:5px 0}#poststuff .imgedit-group-top h3{padding:0}.imgedit-group-top h3 a{text-decoration:none}.imgedit-applyto .imgedit-label{padding:2px 0 0;display:block}.imgedit-help{display:none;font-style:italic}a.imgedit-help-toggle{text-decoration:none}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-group{margin-bottom:8px;padding:2px 10px}audio,video{display:inline-block;max-width:100%}.mejs-container{width:100%;max-width:100%}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 0 10px 12px}}@media only screen and (max-width:1120px){.media-frame.mode-grid .attachments-browser .media-toolbar-secondary{float:none}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;right:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{right:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.upload-php .media-modal-close .media-modal-icon{margin:9px 10px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{right:82px}.edit-attachment-frame .edit-media-header .right{right:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}}.theme-browser .themes{clear:both;padding:0 0 100px}.themes-php .wrap h2{float:left;margin-bottom:15px}.network-admin.themes-php .wrap h2{margin-bottom:0}.themes-php .wrap h2 .button{margin-left:20px}.themes-php .wp-filter-search{position:relative;top:-2px;left:20px;margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5}.themes-php div.error,.themes-php div.updated{margin:0 0 20px;clear:both}.themes-php div.updated a{text-decoration:underline}.theme-browser .theme{cursor:pointer;float:left;margin:0 4% 4% 0;position:relative;width:30.6%;border:1px solid #dedede;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ie8 .theme-browser .theme{width:30%;margin:0 3% 4% 0}.theme-browser .theme:nth-child(3n){margin-right:0}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{-ms-filter:"alpha(Opacity=0)";opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;right:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-left:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:focus .theme-actions,.theme-browser .theme:hover .theme-actions{-ms-filter:"alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-right:3px}.theme-browser .theme .theme-actions .button-secondary{float:none;margin-left:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:'';display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;left:0;top:0;width:100%;-webkit-transform:translateZ(0);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme:focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{-ms-filter:"alpha(Opacity=0)";opacity:0;position:absolute;top:35%;right:25%;left:25%;background:#222;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.theme-browser .theme:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.theme-browser .theme:focus .more-details{opacity:1}.theme-browser .theme.active:focus .theme-actions{display:block}.theme-browser.rendered .theme:focus .more-details,.theme-browser.rendered .theme:hover .more-details{-ms-filter:"alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-installed,.theme-browser .theme .theme-update{background:#d54e21;background:rgba(213,78,33,.95);color:#fff;display:block;font-size:13px;font-weight:400;height:48px;line-height:48px;padding:0 10px;position:absolute;top:0;right:0;left:0;border-bottom:1px solid rgba(0,0,0,.25);overflow:hidden}.theme-browser .theme .theme-installed:before,.theme-browser .theme .theme-update:before{content:'\f463';display:inline-block;font:400 20px/1 dashicons;margin:0 6px 0 0;opacity:.8;position:relative;top:5px;speak:none;-webkit-font-smoothing:antialiased}.theme-browser .theme.active .theme-name{background:#2f2f2f;color:#fff;padding-right:110px;font-weight:300;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(49,49,49,.7);border-left:none;opacity:1}.theme-browser .theme.active .theme-actions .button-primary{margin-right:0}.theme-browser .theme .theme-author{background:#222;color:#eee;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit;text-decoration:none}.theme-browser .theme.add-new-theme{border:none;-webkit-box-shadow:none;box-shadow:none}.theme-browser .theme.add-new-theme a{color:#999;text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme:after{display:block;content:'';-ms-filter:"alpha(Opacity=100)";opacity:1;background:0 0;position:absolute;top:0;left:0;right:0;bottom:0;padding:10% 0 0;text-shadow:none;border:5px dashed #d5d2ca;border:5px dashed rgba(0,0,0,.1);-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#e5e5e5;background:rgba(153,153,153,.1);-webkit-border-radius:50%;border-radius:50%;display:inline-block;content:'\f132';-webkit-font-smoothing:antialiased;font:400 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#999;position:absolute;top:30%;left:50%;margin-left:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme:focus .theme-screenshot,.theme-browser .theme.add-new-theme:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme:focus span:after,.theme-browser .theme.add-new-theme:hover span:after{background:#fff;color:#0074a2}.theme-browser .theme.add-new-theme:focus:after,.theme-browser .theme.add-new-theme:hover:after{border-color:transparent;color:#fff;background:#0074a2;content:''}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;-webkit-box-shadow:none;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-10%;margin-bottom:10%}.theme-browser .theme.add-new-theme:focus .theme-name,.theme-browser .theme.add-new-theme:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;left:-20px;right:0;top:0;bottom:0;background:#f1f1f1;background:rgba(238,238,238,.9);z-index:10}.theme-overlay .theme-header{position:absolute;top:0;left:0;right:0;height:48px;border-bottom:1px solid #ddd}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:right;border:0;border-left:1px solid #ddd;background-color:transparent;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:400 22px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#777;background-color:transparent;height:48px;width:54px;float:left;text-align:center;border:0;border-right:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#ddd;border-color:#ccc;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#ccc;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.rtl .theme-overlay .theme-header .right:before,.theme-overlay .theme-header .left:before{content:'\f341'}.rtl .theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{content:'\f345'}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;left:190px;right:30px;bottom:3%;background:#fff;-webkit-box-shadow:0 1px 20px 5px rgba(0,0,0,.1);box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:20;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-overlay .theme-wrap:after{content:".";display:block;height:0;clear:both;visibility:hidden}body.folded .theme-overlay .theme-wrap{left:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;left:0;right:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-about:after{content:".";display:block;height:0;clear:both;visibility:hidden}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;left:0;right:0;padding:10px 25px 5px;background:#f3f3f3;z-index:30;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-top:1px solid #eee}.ie8 .theme-overlay .theme-actions{border:1px solid #eee}.theme-overlay .theme-actions a{margin-right:5px;margin-bottom:5px}.theme-overlay .theme-actions .delete-theme{color:#a00;position:absolute;right:10px;bottom:5px;text-decoration:none;border-color:transparent;-webkit-box-shadow:none;box-shadow:none;background:0 0}.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#d54e21;color:#fff;border-color:#d54e21}.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:left;margin:0 30px 0 0;width:55%;max-width:880px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden;position:relative;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:'';display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;left:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:350px;width:auto}.theme-overlay .screenshot.thumb{background:#ccc;border:1px solid #eee;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:'';display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;position:absolute;left:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #2ea2cc}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:left}.theme-overlay .current-label{background:#333;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;-webkit-border-radius:2px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-name{color:#222;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3}.theme-overlay .theme-version{color:#999;font-size:13px;font-weight:400;float:none;display:inline-block;margin-left:10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-author{color:#686868;font-size:16px;font-weight:400;margin:15px 0 25px}.theme-overlay .theme-author a{text-decoration:none}.theme-overlay .theme-description{color:#555;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #eee;color:#888;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#444;font-weight:700;margin-right:5px}.theme-overlay .theme-update-message{background:#fef7f1;border:1px solid #eee;border-left:4px solid #d54e21;-webkit-border-radius:3px;border-radius:3px;padding:5px 20px 10px}.theme-overlay .theme-update{color:#222;font-size:18px;display:inline-block;line-height:40px;margin:0}.theme-overlay .parent-theme{background:#f7fcfe;border:1px solid #eee;border-left:4px solid #2ea2cc;font-size:14px;font-weight:400;margin-top:30px;padding:10px 10px 10px 20px}.theme-overlay .parent-theme strong{font-weight:700}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;left:auto;right:auto;top:auto;bottom:auto}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 3% 3% 0}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-right:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-right:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 3% 3% 0}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-right:3%}.theme-browser .theme:nth-child(4n){margin-right:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-right:0}.theme-browser .theme:nth-child(even){margin-right:0}.theme-browser .theme:nth-child(odd){margin-right:5%}}@media only screen and (max-width:900px){.theme-overlay .theme-wrap{left:65px}}@media only screen and (max-width:780px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;right:0;bottom:0;left:0;padding:70px 20px 20px;border:none;z-index:500;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:0;width:auto}.theme:focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-right:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-right:0}}@media only screen and (max-width:650px){.theme-overlay .theme-description,.theme-overlay .theme-update{margin-left:0}.theme-overlay .theme-actions .delete-theme{position:relative;right:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wrap h2{width:100%}.themes-php .wp-filter-search{float:none;clear:both;left:0;top:0;right:0;margin:10px 0;width:100%}.theme-browser .theme.add-new-theme span:after{font:400 60px/90px dashicons;width:80px;height:80px;top:30%;left:50%;text-indent:0;margin-left:-40px}.single-theme .theme-wrap{margin:0 -12px 0 -10px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:left;width:50%;border-spacing:3px;padding:3px}.theme-browser .theme .theme-installed{background:#0074a2}.theme-browser .theme .theme-installed:before{content:'\f147'}.theme-browser .theme.is-installed .theme-actions .button-primary{display:none!important}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.theme-install-php a.browse-themes,.theme-install-php.show-upload-theme a.upload{display:none}.theme-install-php.show-upload-theme a.browse-themes{display:inline}.upload-plugin,.upload-theme{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:none;margin:0;padding:0;width:100%;overflow:hidden;position:relative;top:10px}.upload-plugin,body.show-upload-theme .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#fafafa;border:1px solid #e5e5e5;padding:30px;margin:30px auto;max-width:380px}.upload-plugin .install-help,.upload-theme .install-help{color:#999;font-size:18px;font-style:normal;margin:0;padding:40px 0 0;text-align:center}body.show-upload-theme .upload-theme+.wp-filter,body.show-upload-theme .upload-theme+.wp-filter+.theme-browser{display:none}p.no-themes{color:#999;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center;display:none}body.no-results p.no-themes{display:block}.theme-install-php .add-new-theme,body.show-upload-theme p.no-themes{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0;text-align:left}}.rating{margin:30px 0}.rating span:before{color:#e6b800;content:"\f154";display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/1 dashicons;vertical-align:top}.rating-10 span.one:before,.rating-30 span.two:before,.rating-50 span.three:before,.rating-70 span.four:before,.rating-90 span.five:before{content:"\f459"}.rating-100 span.five:before,.rating-100 span.four:before,.rating-100 span.one:before,.rating-100 span.three:before,.rating-100 span.two:before,.rating-20 span.one:before,.rating-30 span.one:before,.rating-40 span.one:before,.rating-40 span.two:before,.rating-50 span.one:before,.rating-50 span.two:before,.rating-60 span.one:before,.rating-60 span.three:before,.rating-60 span.two:before,.rating-70 span.one:before,.rating-70 span.three:before,.rating-70 span.two:before,.rating-80 span.four:before,.rating-80 span.one:before,.rating-80 span.three:before,.rating-80 span.two:before,.rating-90 span.four:before,.rating-90 span.one:before,.rating-90 span.three:before,.rating-90 span.two:before{content:"\f155"}.rating .ratings{display:inline;margin-left:10px;line-height:20px;color:#999}.appearance_page_custom-header #headimg{border:1px solid #DFDFDF;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:left;margin:0 20px 20px 0}.appearance_page_custom-header .random-header{clear:both;margin:0 20px 20px 0;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dfdfdf}div#custom-background-image img{max-width:400px;max-height:300px}body.full-overlay-active{overflow:hidden}.wp-full-overlay{background:0 0;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:fixed;width:300px;height:100%;top:0;bottom:0;left:0;padding:0;margin:0;z-index:10;overflow:auto;background:#eee;border-right:none}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-left:0!important}.wp-full-overlay.expanded{margin-left:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-300px}.wp-full-overlay-sidebar:after{content:'';display:block;position:absolute;top:0;bottom:0;right:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;left:0;right:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;left:0;right:0;height:45px;padding:0 15px;line-height:45px;z-index:10;margin:0;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;left:0;right:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:left;width:45px;height:45px;padding-right:2px;background:#eee;border-right:1px solid #ddd;color:#444;cursor:pointer;text-decoration:none;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:400 22px/1 dashicons;content:"\f335";position:relative;top:7px;left:13px}.theme-install-overlay .previous-theme:before{font:400 20px/1 dashicons;content:"\f341";position:relative;top:6px;left:14px}.theme-install-overlay .next-theme:before{font:400 20px/1 dashicons;content:"\f345";position:relative;top:6px;left:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#bbb;background:#eee;cursor:default;pointer-events:none}.rtl .theme-install-overlay .previous-theme:before{content:"\f345"}.rtl .theme-install-overlay .next-theme:before{content:"\f341"}.wp-full-overlay a.collapse-sidebar{position:absolute;bottom:12px;left:0;z-index:50;display:block;width:19px;height:19px;margin-left:15px;padding:0;-webkit-border-radius:50%;border-radius:50%;color:#777;text-decoration:none}.wp-full-overlay a.collapse-sidebar:hover{color:#0074a2}.wp-full-overlay.collapsed .collapse-sidebar{position:absolute;left:100%}.wp-full-overlay .collapse-sidebar-arrow{position:static;margin-top:0;margin-left:0;display:block;width:auto;height:auto;background:0 0}.wp-full-overlay .collapse-sidebar-arrow:before{-webkit-border-radius:50%;border-radius:50%;float:left;content:"\f148";background:#eee;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:none;-ms-transform:none;transform:none}.wp-full-overlay.collapsed .collapse-sidebar-arrow{background-position:-1px -109px}.wp-full-overlay .collapse-sidebar-label{position:absolute;left:100%;line-height:20px;margin-left:10px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{-webkit-transition-property:left,right,top,bottom,width,margin;transition-property:left,right,top,bottom,width,margin;-webkit-transition-duration:.2s;transition-duration:.2s}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%}.customize-active #customize-container{display:block}.customize-loading #customize-container iframe{opacity:0}.customize-loading #customize-container{background:#fff url(../images/spinner.gif) no-repeat fixed center center;-webkit-background-size:20px 20px;background-size:20px 20px}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;transition:opacity .3s}#customize-container .collapse-sidebar{bottom:16px}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:right;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin-top:15px;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0;float:left}.theme-details .star-rating{margin:7px 0;float:right}.theme-details .theme-description{float:left;color:#777;line-height:20px;max-width:100%}.theme-install-overlay .wp-full-overlay-header .theme-install{float:right;margin:8px 10px 0 0;line-height:26px}.theme-install-overlay .wp-full-overlay-sidebar{background:#eee;border-right:1px solid #ddd}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.theme-install-overlay .wp-full-overlay-main{background:#fff url(../images/spinner.gif) no-repeat center center;-webkit-background-size:20px 20px;background-size:20px 20px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);-webkit-background-size:15px 123px;background-size:15px 123px}.customize-loading #customize-container,.theme-install-overlay .wp-full-overlay-main{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}}.press-this #message{border-left:4px solid #7ad03a;padding:1px 12px;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.press-this #side-sortables .category-tabs li{display:inline;line-height:1.35em}body.press-this ul.category-tabs li.tabs a{color:#333}.press-this #content-resize-handle{bottom:2px}body.press-this{color:#333;margin:0;padding:0;min-width:708px;min-height:400px}.press-this #titlediv #title{font-size:1.4em}.press-this #site-heading:before{top:3px;position:relative;display:inline-block;font:400 18px/1 dashicons;speak:none;color:#727272;content:'\f120';-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.press-this #wphead{height:32px;margin-left:0;margin-right:0;margin-bottom:5px}.press-this #header-logo{float:left;margin:7px 7px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.press-this #wphead h1{font-weight:400;font-size:16px;line-height:32px;margin:0;float:left}.press-this #wphead h1 a{text-decoration:none}.press-this #wphead h1 a:hover{text-decoration:underline}.press-this #message{margin:10px 0}.press-this .posting{margin-right:250px}.press-this-sidebar{float:right;width:240px;padding-top:10px}.press-this #title{margin-left:0;margin-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.press-this .tagchecklist{margin-top:8px}.press-this #titlediv{margin:0}.press-this #wp-content-wrap #wp-content-editor-tools{padding:0;top:3px;overflow:hidden}.press-this .wp-media-buttons{cursor:default;padding:8px 8px 6px}.press-this #wp-content-wrap #wp-content-media-buttons a{padding:0;line-height:normal;height:auto;font-size:16px}.press-this #wp-content-wrap .mce-toolbar .mce-btn-group .mce-btn{margin:0 1px}.press-this #wp-content-wrap .mce-toolbar .mce-btn button{padding:2px 3px}.press-this #wp-content-wrap .quicktags-toolbar,.press-this #wp-content-wrap div.mce-toolbar-grp{padding-right:3px}.press-this .howto{margin-top:2px;margin-bottom:3px;font-size:12px;font-style:italic;display:block}.press-this #wp-content-editor-container{clear:none}.press-this #poststuff .inside{margin-top:18px}.press-this .category-tabs{margin-bottom:3px}.press-this #poststuff{margin:0 8px;padding:0}.press-this #photo-add-url-div input[type=text]{width:220px}#poststuff #editor-toolbar{height:30px}.posting{margin-right:212px;position:relative}.press-this .inner-sidebar{width:200px}.press-this .inner-sidebar .sleeve{padding-top:5px}.press-this #submitdiv p{margin:0;padding:6px}.press-this #submitdiv #publishing-actions{border-bottom:1px solid #dfdfdf}.press-this #publish{float:right}.press-this #poststuff h2,.press-this #poststuff h3{font-size:14px;line-height:1}.press-this #categorydiv h3,.press-this #tagsdiv-post_tag h3{cursor:pointer}.press-this #submitdiv h3{cursor:default}h3.tb{font-weight:600;font-size:12px;margin-left:5px}.press-this .postbox,.press-this .stuffbox{margin-bottom:10px;min-width:0}.press-this #submitdiv:hover .handlediv{background:0 0}.tbtitle{font-size:1.7em;outline:0;padding:3px 4px;border:1px solid #dfdfdf}.press-this .actions{float:right;margin:-19px 0 0}.press-this #extra-fields .actions{margin:-32px -7px 0 0}.press-this .actions li{float:left;list-style:none;margin-right:10px}#extra-fields .button{margin-right:5px}#photo_saving{margin:0 8px 8px;vertical-align:middle}#img_container_container{overflow:auto}#extra-fields{margin-top:10px;position:relative}#extra-fields h2{margin:12px}#waiting{margin-top:10px;overflow:hidden}#waiting span{float:right;margin:0 0 0 5px}#waiting .spinner{display:block}#extra-fields .postbox{margin-bottom:5px}#extra-fields .titlewrap{padding:0;overflow:auto;height:120px}#img_container a{float:left;overflow:hidden}#img_container a,#img_container img{width:68px;height:68px}#img_container img{border:none;background-color:#f4f4f4;cursor:pointer}#img_container a,#img_container a:link,#img_container a:visited{border:1px solid #ccc;display:block;position:relative}#img_container a:active,#img_container a:hover{border-color:#000;z-index:1000;border-width:1px}#embed-code{width:100%;height:98px}.press-this .categorydiv div.tabs-panel{height:100px}.press-this .tagsdiv .newtag{width:120px}.press-this #content{margin:5px 0;padding:0 5px;border:0;height:340px;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:19px;background:0 0}.press-this #publishing-actions .spinner{display:inline;vertical-align:middle}@media screen and (max-width:782px){.press-this ul.category-tabs li.tabs{padding:3px 5px 5px}.press-this a.wp-switch-editor{font:13px/19px "Open Sans",sans-serif;margin:5px 0 0 5px;padding:3px 8px 4px}.press-this #wp-content-media-buttons a{padding:0;line-height:normal;height:auto}.press-this #wp-content-editor-tools{padding:0;top:3px}.press-this .category-tabs{margin-top:0}.press-this .tagsdiv .newtag{width:120px;padding:3px 5px;margin-bottom:0}.press-this .tagchecklist{padding:0;margin-bottom:0}.press-this .wp_themeSkin a.mceButton{width:20px;height:20px}.press-this .wp_themeSkin .mceButton .mceIcon{margin:0}.press-this #poststuff h3,.press-this .metabox-holder h3{padding:7px 12px}.press-this input[type=checkbox],.press-this input[type=radio]{height:16px;width:16px}.press-this input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px 0 0 -4px}.press-this input[type=radio]:checked:before{font:400 21px/1 dashicons;width:6px;height:6px;margin:4px}.press-this ul.categorychecklist li,.press-this ul.categorychecklist ul{margin-top:0;margin-bottom:0}.press-this div.quicktags-toolbar input{padding:2px 4px}.press-this input,.press-this textarea{font-size:14px}.press-this .tagchecklist span{font-size:13px;line-height:1.8em}}.about-wrap{position:relative;margin:25px 40px 0 20px;max-width:1050px;font-size:15px}.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle}.about-wrap p{line-height:1.6em;font-size:14px}.about-wrap h1{margin:.2em 200px 0 0;color:#333;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h4{color:#222}.about-wrap .about-text,.about-wrap li.wp-person a.web,.about-wrap p.about-description{font-weight:400;line-height:1.6em;font-size:19px}.about-description{margin-top:1.4em}.about-text{margin:1em 200px 1em 0;min-height:60px;color:#777;font-size:24px}.about-wrap .changelog h2.about-headline-callout{margin:1.1em 0 .2em;font-size:2.4em;font-weight:300;line-height:1.3;text-align:center}.about-wrap h3{margin:1em 0 .6em;font-size:1.5em;line-height:1.5em}.about-wrap h3.higher{margin-top:.5em}.customize h3{margin-top:1.75em;text-align:center}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1.2em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap code,.about-wrap ol li p{font-size:14px}.about-wrap .button.button-large{padding:8px 20px 10px!important;height:46px!important;font-size:14px;line-height:28px!important}.about-wrap .about-overview-img{margin:0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #dfdfdf}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.wp-badge{background:#0074a2 url(../images/w-logo-white.png?ver=20131202) no-repeat center 24px;background:#0074a2 center 24px,url(../images/wordpress-logo-white.svg?ver=20131110) no-repeat center 24px;-webkit-background-size:85px 85px;background-size:85px 85px;color:#78c8e6;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:150px;text-rendering:optimizeLegibility;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.about-wrap .wp-badge{position:absolute;top:0;right:0}.about-wrap h2.nav-tab-wrapper{padding-left:6px}.about-wrap h2 .nav-tab{padding:4px 15px 6px;margin:0 3px -1px 0;font-size:18px;vertical-align:top;border-width:1px}.about-overview{margin-top:40px;margin-bottom:40px;text-align:center}.about-overview p{margin:1em auto 50px;max-width:770px;font-size:18px;line-height:1.5;text-align:center}.about-wrap .feature-section{margin-top:40px;padding-bottom:20px}.about-wrap .feature-section.two-col>div{position:relative;width:47.6%;margin-right:4.799999999%;float:left}.about-wrap .feature-section.three-col>div{position:relative;width:29.95%;margin-right:4.999999999%;float:left}.about-wrap .feature-section.col .last-feature{margin-right:0}.about-wrap .under-the-hood .feature-section{margin-top:0}.about-wrap .changelog .feature-section{overflow:hidden}.about-wrap .feature-section.two-col div p{margin-right:3%}.about-wrap .feature-section div p img{float:right;margin-left:10px;max-width:20%}.about-video{position:relative;width:100%;height:0}.about-video-embed{padding-bottom:70.4%}.about-video-focus{padding-bottom:56.2%}.about-video .mejs-container,.about-video .wp-video,.about-video video{position:absolute;top:0;left:0;width:100%!important;height:100%!important}.about-wrap .changelog li{list-style-type:disc;margin-left:3em}.about-wrap .return-to-dashboard{margin:30px 0 0 -5px;font-size:14px;font-weight:700}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h4.wp-people-group{margin-top:2.6em;font-size:16px}.about-wrap ul.wp-people-group{overflow:hidden;padding:0 5px;margin:0 -15px 0 -5px}.about-wrap ul.compact{margin-bottom:0}.about-wrap li.wp-person{float:left;margin-right:10px}.about-wrap li.wp-person img.gravatar{float:left;margin:0 10px 10px 0;padding:2px;width:60px;height:60px}.about-wrap ul.compact li.wp-person img.gravatar{width:30px;height:30px}.about-wrap li.wp-person{height:70px;width:280px;padding-bottom:15px}.about-wrap ul.compact li.wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap li.wp-person a.web{display:block;margin:6px 0 2px;font-size:16px;text-decoration:none}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:700}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:782px){.about-wrap .feature-section.one-col>div,.about-wrap .feature-section.three-col>div,.about-wrap .feature-section.two-col>div{width:100%;margin:0 0 40px;padding:0 0 40px;float:none;border-bottom:1px solid rgba(0,0,0,.1)}.about-wrap .feature-section.col>div.last-feature,.about-wrap .under-the-hood .feature-section>div{margin:0;padding:0;border-bottom:none}}@media screen and (max-width:710px){.about-overview{position:relative;padding-bottom:56.25%;width:100%;height:0}.about-overview embed{position:absolute;top:0;left:0;width:100%;height:100%}}@media only screen and (max-width:500px){.about-wrap{margin-right:20px;margin-left:10px}.about-text,.about-wrap h1{margin-right:0}.about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap h2.nav-tab-wrapper{padding-left:0;border-bottom:0}.about-wrap h2 .nav-tab{margin-top:10px;margin-right:10px;border-bottom:1px solid #ccc}.about-wrap .feature-section.three-col div{width:100%;float:none}.about-wrap .three-col.about-updates .col-1{padding:0;float:none}.about-wrap .three-col.about-updates .col-2{margin:0 0 20px;width:100%;float:none}}.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 5px 3px 8px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}#nav-menus-frame{margin-left:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-left:-300px;clear:both;float:left;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-name{height:2em}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#999;font-style:italic;font-weight:400;margin-left:4px}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus select{float:left;margin-right:6px}.manage-menus .selected-menu{float:left;margin:5px 6px 0 0}.manage-menus .submit-btn{float:left;margin-top:1px}.menu-edit p{margin:.3em 0 .6em}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings dl{margin:0 0 10px;overflow:hidden;padding-left:18%}.menu-settings dd{float:left;margin:0;width:100%}.menu-settings dt{float:left;clear:both;width:21.951%;padding:3px 0 0;margin-left:-21.951%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#999;font-size:11px}#menu-management-liquid{float:left;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-right:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #dfdfdf;margin-bottom:0}#nav-menu-header .menu-name-label{margin-top:4px}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#menu-management .menu-add-new abbr{font-weight:600}#select-nav-menu-container{text-align:right;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat td.menu-location-menus{padding-bottom:5px}.menu-location-menus select{float:left}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:left;width:160px;margin-right:5px}.locations-row-links{float:left;margin:6px 0 0 6px}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-right:3px;border-right:1px solid #ccc}#wpbody .open-label{display:block;float:left}#wpbody .open-label span{padding-right:10px}.js .input-with-default-title{color:#aaa;font-style:italic}#menu-management .inside{padding:0 10px}.accordion-container .howto input,.postbox .howto input{width:180px;float:right}.accordion-container .outer-border{margin:0}.customlinkdiv .howto input{width:180px}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:right}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}.nav-menus-php .add-new-menu-action{float:left;margin:6px 0 0 6px;line-height:15px}.nav-menus-php .meta-sep,.nav-menus-php .submitcancel,.nav-menus-php .submitdelete{display:block;float:left;margin:6px 0;line-height:15px}.meta-sep{padding:0 2px}#cancel-save{text-decoration:underline;font-size:12px;margin-left:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:right}.list-controls{float:left;margin-top:5px}.add-to-menu{float:right}.postbox .spinner{display:none;vertical-align:middle}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link .howto{font-size:12px}#add-custom-link label span{display:block;float:left;margin-top:5px;padding-right:5px}.menu-item-textbox{width:180px}.nav-menus-php .howto span{margin-top:6px;display:block;float:left}.quick-search{width:190px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-right:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #dfdfdf;position:relative;padding:10px 15px;height:auto;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-right:13em}.menu-item-handle .menu-item-title.no-title{color:#999}li.menu-item.ui-sortable-helper dl{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport dl{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:30px}.menu-item-depth-2{margin-left:60px}.menu-item-depth-3{margin-left:90px}.menu-item-depth-4{margin-left:120px}.menu-item-depth-5{margin-left:150px}.menu-item-depth-6{margin-left:180px}.menu-item-depth-7{margin-left:210px}.menu-item-depth-8{margin-left:240px}.menu-item-depth-9{margin-left:270px}.menu-item-depth-10{margin-left:300px}.menu-item-depth-11{margin-left:330px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-30px}.menu-item-depth-2 .menu-item-transport{margin-left:-60px}.menu-item-depth-3 .menu-item-transport{margin-left:-90px}.menu-item-depth-4 .menu-item-transport{margin-left:-120px}.menu-item-depth-5 .menu-item-transport{margin-left:-150px}.menu-item-depth-6 .menu-item-transport{margin-left:-180px}.menu-item-depth-7 .menu-item-transport{margin-left:-210px}.menu-item-depth-8 .menu-item-transport{margin-left:-240px}.menu-item-depth-9 .menu-item-transport{margin-left:-270px}.menu-item-depth-10 .menu-item-transport{margin-left:-300px}.menu-item-depth-11 .menu-item-transport{margin-left:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{color:#777;font-size:12px;padding:12px 10px;line-height:18px;display:block}.item-controls{font-size:12px;position:absolute;right:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls a:hover{cursor:pointer}.item-controls .item-order{padding-right:10px}.nav-menus-php .item-edit{position:absolute;right:-20px;top:0;display:block;width:30px;height:40px;margin-right:0!important;text-indent:100%;outline:0;overflow:hidden;white-space:nowrap}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 0 10px 10px;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move a{display:none;margin:0 2px}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em auto;text-align:center}.link-to-original{display:block;margin:0 0 10px;padding:3px 5px 5px;border:1px solid #dfdfdf;color:#777;font-size:12px;font-style:italic}.link-to-original a{padding-left:4px;font-style:normal}.hidden-field{display:none}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-right:10px;float:left}.description-thin{width:190px;height:40px}.description-wide{width:390px}.menu-item-actions{padding-top:15px}#cancel-save{cursor:pointer}.nav-menus-php .major-publishing-actions{clear:both;padding:3px 0 6px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:right;float:right;line-height:23px;margin:4px 0 1px}.nav-menus-php .blank-slate .menu-settings{display:none}.nav-menus-php .delete-action{float:left;margin-top:2px}.nav-menus-php .submitbox .submitcancel{border-bottom:1px solid #0074a2;padding:1px 2px;color:#0074a2;text-decoration:none}.nav-menus-php .submitbox .submitcancel:hover{background:#0074a2;color:#fff}.nav-menus-php .major-publishing-actions .form-invalid{padding-left:4px;margin-left:-4px}#menu-item-name-wrap:after,#menu-item-url-wrap:after,#menu-name-label:after,#menu-settings-column .inside:after,#nav-menus-frame:after,.nav-menus-php #post-body-content:after,.nav-menus-php .button-controls:after,.nav-menus-php .major-publishing-actions:after,.nav-menus-php .menu-item-settings:after{clear:both;content:".";display:block;height:0;visibility:hidden}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-left:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-left:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .item-controls .item-type{margin-top:2px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}.menu-name-label #menu-name{margin-top:4px}.nav-menus-php .major-publishing-actions .publishing-action{margin-top:6px}.nav-menus-php .delete-action{font-size:14px;line-height:50px;margin-top:12px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide{width:100%;height:auto}.menu-item-settings input{width:100%}.menu-settings dl{padding-left:0}.menu-settings dd{float:none;width:100%;margin-bottom:15px}.menu-settings dt{float:none;width:auto;margin-left:0;margin-bottom:15px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}}.widget{margin:0 auto 10px;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.widget-top{font-size:13px;font-weight:600;background:#f7f7f7}.widget-top a.widget-action,.widget-top a.widget-action:hover{-webkit-box-shadow:none;box-shadow:none;outline:0;text-decoration:none}.widget-title h4{margin:0;padding:15px;line-height:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.widgets-holder-wrap .widget-inside{border-top:none;padding:1px 15px 15px;line-height:16px}#available-widgets .widget-description,#widgets-right a.widget-control-edit,.in-widget-title{color:#666}.deleting .widget-title,.deleting .widget-top a.widget-action:after{color:#aaa}.widget.ui-draggable-dragging{min-width:100%}.widget.ui-sortable-helper{opacity:.8}.widget-placeholder{border:1px dashed #bbb;margin:0 auto 10px;height:45px;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#widgets-right .widget-placeholder{margin-top:0}#widgets-right .closed .widget-placeholder{height:0;border:0;margin-top:-10px}.sidebar-name{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sidebar-name-arrow{position:absolute;top:0;right:0;bottom:0}.js .sidebar-name{cursor:pointer}.sidebar-name h3{margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap}.widgets-holder-wrap .description{padding:0 0 15px;margin:0;font-style:normal;color:#777}#widgets-right .widgets-holder-wrap .description{padding-left:7px;padding-right:7px}div.widget-liquid-left{margin:0;width:38%;float:left}div.widget-liquid-right{float:right;width:58%}div#widgets-left{padding-top:12px}div#widgets-left .closed .sidebar-name,div#widgets-left .inactive-sidebar.closed .sidebar-name{margin-bottom:10px}div#widgets-left .sidebar-name h3{padding:10px 0;margin:0 10px 0 0}div#widgets-left .sidebar-name .sidebar-name-arrow:before{right:0;top:4px;padding:4px 6px 4px 4px}#widgets-left #available-widgets,div#widgets-left .widget-holder{background:0 0;border:none}#widgets-left .widgets-holder-wrap{border:none;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-action{display:none}#available-widgets .widget{margin:0}#available-widgets .widget:nth-child(odd){clear:both}#available-widgets .widget .widget-description{display:block;padding:10px 15px;font-size:12px}#available-widgets #widget-list{position:relative}#widgets-left .inactive-sidebar{clear:both;width:100%;background:0 0;padding:0;margin:0 0 20px;border:none;-webkit-box-shadow:none;box-shadow:none}#widgets-left .inactive-sidebar.first{margin-top:40px}div#widgets-left .inactive-sidebar .widget.expanded{left:auto}.widget-title-action{float:right;position:relative}div#widgets-left .inactive-sidebar .widgets-sortables{min-height:42px;padding:0;background:0 0;margin:0;position:relative}div#widgets-right:after{content:".";display:block;height:0;clear:both;visibility:hidden}div#widgets-right .sidebars-column-1,div#widgets-right .sidebars-column-2{max-width:450px}div#widgets-right .widgets-holder-wrap{margin:10px 0 0}div#widgets-right .sidebar-description{min-height:20px;margin-top:-5px}div#widgets-right .sidebar-name h3{padding:15px 7px}div#widgets-right .sidebar-name .sidebar-name-arrow:before{right:0;top:4px}div#widgets-right .widget-top{padding:0}div#widgets-right .widgets-sortables{padding:0 8px;margin-bottom:9px;position:relative;min-height:123px}div#widgets-right .closed .widgets-sortables{min-height:0;margin-bottom:0}.sidebar-name .spinner{margin:-5px 5px;float:none}#widgets-right .widgets-holder-wrap.widget-hover{border-color:#777;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}.widgets_access #widgets-left .widget .widget-top{cursor:auto}.widgets_access #wpwrap .widget-control-edit,.widgets_access #wpwrap .widgets-holder-wrap.closed .sidebar-description,.widgets_access #wpwrap .widgets-holder-wrap.closed .widget{display:block}.widgets_access #widgets-left .widget .widget-top:hover,.widgets_access #widgets-right .widget .widget-top:hover{border-color:#ddd}#available-widgets .widget-control-edit .edit,#widgets-left .inactive-sidebar .widget-control-edit .add,#widgets-right .widget-control-edit .add{display:none}.widget-control-edit{display:block;color:#666;background:#EEE;padding:0 15px;line-height:43px;border-left:1px solid #DDD}#widgets-left .widget-control-edit:hover,#widgets-right .widget-control-edit:hover{color:#fff;background:#444;border-left:0;outline:#444 solid 1px}.widgets-holder-wrap .sidebar-description,.widgets-holder-wrap .sidebar-name{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.editwidget{margin:0 auto}.editwidget .widget-inside{display:block;padding:0 15px}.editwidget .widget-control-actions{margin-top:20px}.js .closed br.clear,.js .widgets-holder-wrap.closed .sidebar-description,.js .widgets-holder-wrap.closed .widget,.widget-description,.widget-inside{display:none}.widget-inside{background:#fff}#removing-widget{display:none;font-weight:400;padding-left:15px;font-size:12px;line-height:1;color:#000}.js #removing-widget{color:#2ea2cc}#access-off,.no-js .widget-holder .description,.widget-control-noform,.widgets_access #access-on,.widgets_access .sidebar-name-arrow,.widgets_access .widget-action,.widgets_access .widget-holder .description{display:none}.widgets_access #widget-list,.widgets_access .widget-holder{padding-top:10px}.widgets_access #access-off{display:inline}.widgets_access .sidebar-name,.widgets_access .widget .widget-top{cursor:default}.widget-liquid-left #widgets-left.chooser #available-widgets .widget,.widget-liquid-left #widgets-left.chooser .inactive-sidebar{-webkit-transition:opacity .1s linear;transition:opacity .1s linear;opacity:.2;pointer-events:none}.widget-liquid-left #widgets-left.chooser #available-widgets .widget-in-question{opacity:1;pointer-events:auto}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.widgets-chooser ul.widgets-chooser-sidebars{margin:0;list-style-type:none;max-height:300px;overflow:auto}.widgets-chooser{display:none}.widgets-chooser ul{border:1px solid #ccc}.widgets-chooser li{padding:10px 15px 10px 35px;border-bottom:1px solid #ccc;background:#fff;margin:0;cursor:pointer;outline:0;position:relative;-webkit-transition:background .2s ease-in-out;transition:background .2s ease-in-out}.widgets-chooser li:focus,.widgets-chooser li:hover{background:rgba(255,255,255,.7)}.widgets-chooser li:focus:before{content:'\f147';display:block;-webkit-font-smoothing:antialiased;font:400 26px/1 dashicons;color:#999;position:absolute;top:7px;left:5px}.widgets-chooser li:last-child{border:none}.widgets-chooser li.widgets-chooser-selected{background:#2ea2cc;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{content:'\f147';display:block;-webkit-font-smoothing:antialiased;font:400 26px/1 dashicons;color:#fff;position:absolute;top:7px;left:5px}.widgets-chooser .widgets-chooser-actions{padding:10px 0 12px;text-align:center}.widgets-chooser button{margin-right:5px}#available-widgets .widget .widget-top{cursor:pointer}@media screen and (max-width:480px){div.widget-liquid-left{width:100%;float:none;border-right:none;padding-right:0}#widgets-left #available-widgets .widget-top,#widgets-left .inactive-sidebar .widgets-sortables,#widgets-left .sidebar-name{margin-right:0}div.widget-liquid-right{width:100%;float:none}div.widget{margin:0 auto 10px!important;max-width:480px}}@media screen and (max-width:320px){div.widget{max-width:320px}}@media only screen and (min-width:1250px){#widgets-left #available-widgets .widget{width:49%;float:left}.widget.ui-draggable-dragging{min-width:49%}#widgets-left #available-widgets .widget:nth-child(even){float:right}#widgets-right .sidebars-column-1,#widgets-right .sidebars-column-2{float:left;width:49%}#widgets-right .sidebars-column-1{margin-right:2%}#widgets-right.single-sidebar .sidebars-column-1,#widgets-right.single-sidebar .sidebars-column-2{float:none;width:100%;margin:0}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:700}.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de .inline-edit-row fieldset label span.title{width:7em}.locale-de-de .inline-edit-row fieldset label span.input-text-wrap{margin-left:7em}.locale-de-de #customize-header-actions .button{padding:0 5px 1px}.locale-de-de #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru .inline-edit-row fieldset label span.title{width:8em}.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}
\ No newline at end of file
index e53cd7d244fc80577d9367ac33ba1dac2b7383de..a23efda03697ac4871965e64cc27809767718ecf 100644 (file)
@@ -22,7 +22,7 @@ class Custom_Background {
         * @since 3.0.0
         * @access private
         */
         * @since 3.0.0
         * @access private
         */
-       var $admin_header_callback;
+       private $admin_header_callback;
 
        /**
         * Callback for header div.
 
        /**
         * Callback for header div.
@@ -31,7 +31,7 @@ class Custom_Background {
         * @since 3.0.0
         * @access private
         */
         * @since 3.0.0
         * @access private
         */
-       var $admin_image_div_callback;
+       private $admin_image_div_callback;
 
        /**
         * Holds the page menu hook.
 
        /**
         * Holds the page menu hook.
@@ -40,7 +40,7 @@ class Custom_Background {
         * @since 3.0.0
         * @access private
         */
         * @since 3.0.0
         * @access private
         */
-       var $page = '';
+       private $page = '';
 
        /**
         * Constructor - Register administration header callback.
 
        /**
         * Constructor - Register administration header callback.
@@ -50,7 +50,7 @@ class Custom_Background {
         * @param callback $admin_image_div_callback Optional custom image div output callback.
         * @return Custom_Background
         */
         * @param callback $admin_image_div_callback Optional custom image div output callback.
         * @return Custom_Background
         */
-       function __construct($admin_header_callback = '', $admin_image_div_callback = '') {
+       public function __construct($admin_header_callback = '', $admin_image_div_callback = '') {
                $this->admin_header_callback = $admin_header_callback;
                $this->admin_image_div_callback = $admin_image_div_callback;
 
                $this->admin_header_callback = $admin_header_callback;
                $this->admin_image_div_callback = $admin_image_div_callback;
 
@@ -58,12 +58,64 @@ class Custom_Background {
                add_action( 'wp_ajax_set-background-image', array( $this, 'wp_set_background_image' ) );
        }
 
                add_action( 'wp_ajax_set-background-image', array( $this, 'wp_set_background_image' ) );
        }
 
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property name.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
        /**
         * Set up the hooks for the Custom Background admin page.
         *
         * @since 3.0.0
         */
        /**
         * Set up the hooks for the Custom Background admin page.
         *
         * @since 3.0.0
         */
-       function init() {
+       public function init() {
                if ( ! current_user_can('edit_theme_options') )
                        return;
 
                if ( ! current_user_can('edit_theme_options') )
                        return;
 
@@ -82,7 +134,7 @@ class Custom_Background {
         *
         * @since 3.0.0
         */
         *
         * @since 3.0.0
         */
-       function admin_load() {
+       public function admin_load() {
                get_current_screen()->add_help_tab( array(
                        'id'      => 'overview',
                        'title'   => __('Overview'),
                get_current_screen()->add_help_tab( array(
                        'id'      => 'overview',
                        'title'   => __('Overview'),
@@ -109,7 +161,7 @@ class Custom_Background {
         *
         * @since 3.0.0
         */
         *
         * @since 3.0.0
         */
-       function take_action() {
+       public function take_action() {
 
                if ( empty($_POST) )
                        return;
 
                if ( empty($_POST) )
                        return;
@@ -176,7 +228,7 @@ class Custom_Background {
         *
         * @since 3.0.0
         */
         *
         * @since 3.0.0
         */
-       function admin_page() {
+       public function admin_page() {
 ?>
 <div class="wrap" id="custom-background">
 <h2><?php _e( 'Custom Background' ); ?></h2>
 ?>
 <div class="wrap" id="custom-background">
 <h2><?php _e( 'Custom Background' ); ?></h2>
@@ -204,7 +256,8 @@ class Custom_Background {
 
                if ( get_background_image() ) {
                        $background_image_thumb = esc_url( set_url_scheme( get_theme_mod( 'background_image_thumb', str_replace( '%', '%%', get_background_image() ) ) ) );
 
                if ( get_background_image() ) {
                        $background_image_thumb = esc_url( set_url_scheme( get_theme_mod( 'background_image_thumb', str_replace( '%', '%%', get_background_image() ) ) ) );
-                       // background-image URL must be single quote, see below
+
+                       // Background-image URL must be single quote, see below.
                        $background_styles .= ' background-image: url(\'' . $background_image_thumb . '\');'
                                . ' background-repeat: ' . get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) . ';'
                                . ' background-position: top ' . get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) );
                        $background_styles .= ' background-image: url(\'' . $background_image_thumb . '\');'
                                . ' background-repeat: ' . get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) . ';'
                                . ' background-position: top ' . get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) );
@@ -343,7 +396,7 @@ if ( current_theme_supports( 'custom-background', 'default-color' ) )
         *
         * @since 3.0.0
         */
         *
         * @since 3.0.0
         */
-       function handle_upload() {
+       public function handle_upload() {
 
                if ( empty($_FILES) )
                        return;
 
                if ( empty($_FILES) )
                        return;
@@ -397,7 +450,7 @@ if ( current_theme_supports( 'custom-background', 'default-color' ) )
         *
         * @since 3.4.0
         */
         *
         * @since 3.4.0
         */
-       function attachment_fields_to_edit( $form_fields ) {
+       public function attachment_fields_to_edit( $form_fields ) {
                return $form_fields;
        }
 
                return $form_fields;
        }
 
@@ -406,7 +459,7 @@ if ( current_theme_supports( 'custom-background', 'default-color' ) )
         *
         * @since 3.4.0
         */
         *
         * @since 3.4.0
         */
-       function filter_upload_tabs( $tabs ) {
+       public function filter_upload_tabs( $tabs ) {
                return $tabs;
        }
 
                return $tabs;
        }
 
index 1c9971f5aa8d191990c0b0f4d4cfd8fe5cbfbed3..76f6f746d16afc4992ef0fffdbae2329199dc0b2 100644 (file)
@@ -22,7 +22,7 @@ class Custom_Image_Header {
         * @since 2.1.0
         * @access private
         */
         * @since 2.1.0
         * @access private
         */
-       var $admin_header_callback;
+       private $admin_header_callback;
 
        /**
         * Callback for header div.
 
        /**
         * Callback for header div.
@@ -31,7 +31,7 @@ class Custom_Image_Header {
         * @since 3.0.0
         * @access private
         */
         * @since 3.0.0
         * @access private
         */
-       var $admin_image_div_callback;
+       private $admin_image_div_callback;
 
        /**
         * Holds default headers.
 
        /**
         * Holds default headers.
@@ -40,7 +40,7 @@ class Custom_Image_Header {
         * @since 3.0.0
         * @access private
         */
         * @since 3.0.0
         * @access private
         */
-       var $default_headers = array();
+       private $default_headers = array();
 
        /**
         * Holds custom headers uploaded by the user.
 
        /**
         * Holds custom headers uploaded by the user.
@@ -49,7 +49,7 @@ class Custom_Image_Header {
         * @since 3.2.0
         * @access private
         */
         * @since 3.2.0
         * @access private
         */
-       var $uploaded_headers = array();
+       private $uploaded_headers = array();
 
        /**
         * Holds the page menu hook.
 
        /**
         * Holds the page menu hook.
@@ -58,7 +58,7 @@ class Custom_Image_Header {
         * @since 3.0.0
         * @access private
         */
         * @since 3.0.0
         * @access private
         */
-       var $page = '';
+       private $page = '';
 
        /**
         * Constructor - Register administration header callback.
 
        /**
         * Constructor - Register administration header callback.
@@ -68,7 +68,7 @@ class Custom_Image_Header {
         * @param callback $admin_image_div_callback Optional custom image div output callback.
         * @return Custom_Image_Header
         */
         * @param callback $admin_image_div_callback Optional custom image div output callback.
         * @return Custom_Image_Header
         */
-       function __construct($admin_header_callback, $admin_image_div_callback = '') {
+       public function __construct($admin_header_callback, $admin_image_div_callback = '') {
                $this->admin_header_callback = $admin_header_callback;
                $this->admin_image_div_callback = $admin_image_div_callback;
 
                $this->admin_header_callback = $admin_header_callback;
                $this->admin_image_div_callback = $admin_image_div_callback;
 
@@ -80,12 +80,64 @@ class Custom_Image_Header {
                add_action( 'wp_ajax_custom-header-remove', array( $this, 'ajax_header_remove'      ) );
        }
 
                add_action( 'wp_ajax_custom-header-remove', array( $this, 'ajax_header_remove'      ) );
        }
 
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
        /**
         * Set up the hooks for the Custom Header admin page.
         *
         * @since 2.1.0
         */
        /**
         * Set up the hooks for the Custom Header admin page.
         *
         * @since 2.1.0
         */
-       function init() {
+       public function init() {
                if ( ! current_user_can('edit_theme_options') )
                        return;
 
                if ( ! current_user_can('edit_theme_options') )
                        return;
 
@@ -106,7 +158,7 @@ class Custom_Image_Header {
         *
         * @since 3.0.0
         */
         *
         * @since 3.0.0
         */
-       function help() {
+       public function help() {
                get_current_screen()->add_help_tab( array(
                        'id'      => 'overview',
                        'title'   => __('Overview'),
                get_current_screen()->add_help_tab( array(
                        'id'      => 'overview',
                        'title'   => __('Overview'),
@@ -148,7 +200,7 @@ class Custom_Image_Header {
         *
         * @return int Current step
         */
         *
         * @return int Current step
         */
-       function step() {
+       public function step() {
                if ( ! isset( $_GET['step'] ) )
                        return 1;
 
                if ( ! isset( $_GET['step'] ) )
                        return 1;
 
@@ -167,7 +219,7 @@ class Custom_Image_Header {
         *
         * @since 2.1.0
         */
         *
         * @since 2.1.0
         */
-       function js_includes() {
+       public function js_includes() {
                $step = $this->step();
 
                if ( ( 1 == $step || 3 == $step ) ) {
                $step = $this->step();
 
                if ( ( 1 == $step || 3 == $step ) ) {
@@ -185,7 +237,7 @@ class Custom_Image_Header {
         *
         * @since 2.7.0
         */
         *
         * @since 2.7.0
         */
-       function css_includes() {
+       public function css_includes() {
                $step = $this->step();
 
                if ( ( 1 == $step || 3 == $step ) && current_theme_supports( 'custom-header', 'header-text' ) )
                $step = $this->step();
 
                if ( ( 1 == $step || 3 == $step ) && current_theme_supports( 'custom-header', 'header-text' ) )
@@ -199,7 +251,7 @@ class Custom_Image_Header {
         *
         * @since 2.6.0
         */
         *
         * @since 2.6.0
         */
-       function take_action() {
+       public function take_action() {
                if ( ! current_user_can('edit_theme_options') )
                        return;
 
                if ( ! current_user_can('edit_theme_options') )
                        return;
 
@@ -245,7 +297,7 @@ class Custom_Image_Header {
         *
         * @since 3.0.0
         */
         *
         * @since 3.0.0
         */
-       function process_default_headers() {
+       public function process_default_headers() {
                global $_wp_default_headers;
 
                if ( !empty($this->headers) )
                global $_wp_default_headers;
 
                if ( !empty($this->headers) )
@@ -275,7 +327,7 @@ class Custom_Image_Header {
         *
         * @since 3.0.0
         */
         *
         * @since 3.0.0
         */
-       function show_header_selector( $type = 'default' ) {
+       public function show_header_selector( $type = 'default' ) {
                if ( 'default' == $type ) {
                        $headers = $this->default_headers;
                } else {
                if ( 'default' == $type ) {
                        $headers = $this->default_headers;
                } else {
@@ -312,7 +364,7 @@ class Custom_Image_Header {
         *
         * @since 2.1.0
         */
         *
         * @since 2.1.0
         */
-       function js() {
+       public function js() {
                $step = $this->step();
                if ( ( 1 == $step || 3 == $step ) && current_theme_supports( 'custom-header', 'header-text' ) )
                        $this->js_1();
                $step = $this->step();
                if ( ( 1 == $step || 3 == $step ) && current_theme_supports( 'custom-header', 'header-text' ) )
                        $this->js_1();
@@ -325,11 +377,20 @@ class Custom_Image_Header {
         *
         * @since 2.6.0
         */
         *
         * @since 2.6.0
         */
-       function js_1() { ?>
+       public function js_1() {
+               $default_color = '';
+               if ( current_theme_supports( 'custom-header', 'default-text-color' ) ) {
+                       $default_color = get_theme_support( 'custom-header', 'default-text-color' );
+                       if ( $default_color && false === strpos( $default_color, '#' ) ) {
+                               $default_color = '#' . $default_color;
+                       }
+               }
+               ?>
+
 <script type="text/javascript">
 /* <![CDATA[ */
 (function($){
 <script type="text/javascript">
 /* <![CDATA[ */
 (function($){
-       var default_color = '#<?php echo get_theme_support( 'custom-header', 'default-text-color' ); ?>',
+       var default_color = '<?php echo $default_color; ?>',
                header_text_fields;
 
        function pickColor(color) {
                header_text_fields;
 
        function pickColor(color) {
@@ -380,7 +441,7 @@ class Custom_Image_Header {
         *
         * @since 2.6.0
         */
         *
         * @since 2.6.0
         */
-       function js_2() { ?>
+       public function js_2() { ?>
 <script type="text/javascript">
 /* <![CDATA[ */
        function onEndCrop( coords ) {
 <script type="text/javascript">
 /* <![CDATA[ */
        function onEndCrop( coords ) {
@@ -454,7 +515,7 @@ class Custom_Image_Header {
         *
         * @since 2.1.0
         */
         *
         * @since 2.1.0
         */
-       function step_1() {
+       public function step_1() {
                $this->process_default_headers();
 ?>
 
                $this->process_default_headers();
 ?>
 
@@ -624,17 +685,27 @@ class Custom_Image_Header {
 <th scope="row"><?php _e( 'Text Color' ); ?></th>
 <td>
        <p>
 <th scope="row"><?php _e( 'Text Color' ); ?></th>
 <td>
        <p>
-<?php
-$header_textcolor = display_header_text() ? get_header_textcolor() : get_theme_support( 'custom-header', 'default-text-color' );
-$default_color = '';
-if ( current_theme_supports( 'custom-header', 'default-text-color' ) ) {
-       $default_color = '#' . get_theme_support( 'custom-header', 'default-text-color' );
-       $default_color_attr = ' data-default-color="' . esc_attr( $default_color ) . '"';
-       echo '<input type="text" name="text-color" id="text-color" value="#' . esc_attr( $header_textcolor ) . '"' . $default_color_attr . ' />';
-       if ( $default_color )
-               echo ' <span class="description hide-if-js">' . sprintf( _x( 'Default: %s', 'color' ), $default_color ) . '</span>';
-}
-?>
+       <?php
+       $default_color = '';
+       if ( current_theme_supports( 'custom-header', 'default-text-color' ) ) {
+               $default_color = get_theme_support( 'custom-header', 'default-text-color' );
+               if ( $default_color && false === strpos( $default_color, '#' ) ) {
+                       $default_color = '#' . $default_color;
+               }
+       }
+
+       $default_color_attr = $default_color ? ' data-default-color="' . esc_attr( $default_color ) . '"' : '';
+
+       $header_textcolor = display_header_text() ? get_header_textcolor() : get_theme_support( 'custom-header', 'default-text-color' );
+       if ( $header_textcolor && false === strpos( $header_textcolor, '#' ) ) {
+               $header_textcolor = '#' . $header_textcolor;
+       }
+
+       echo '<input type="text" name="text-color" id="text-color" value="' . esc_attr( $header_textcolor ) . '"' . $default_color_attr . ' />';
+       if ( $default_color ) {
+               echo ' <span class="description hide-if-js">' . sprintf( _x( 'Default: %s', 'color' ), esc_html( $default_color ) ) . '</span>';
+       }
+       ?>
        </p>
 </td>
 </tr>
        </p>
 </td>
 </tr>
@@ -662,7 +733,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         *
         * @since 2.1.0
         */
         *
         * @since 2.1.0
         */
-       function step_2() {
+       public function step_2() {
                check_admin_referer('custom-header-upload', '_wpnonce-custom-header-upload');
                if ( ! current_theme_supports( 'custom-header', 'uploads' ) )
                        wp_die( __( 'Cheatin&#8217; uh?' ) );
                check_admin_referer('custom-header-upload', '_wpnonce-custom-header-upload');
                if ( ! current_theme_supports( 'custom-header', 'uploads' ) )
                        wp_die( __( 'Cheatin&#8217; uh?' ) );
@@ -670,10 +741,14 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
                if ( empty( $_POST ) && isset( $_GET['file'] ) ) {
                        $attachment_id = absint( $_GET['file'] );
                        $file = get_attached_file( $attachment_id, true );
                if ( empty( $_POST ) && isset( $_GET['file'] ) ) {
                        $attachment_id = absint( $_GET['file'] );
                        $file = get_attached_file( $attachment_id, true );
-                       $url = wp_get_attachment_image_src( $attachment_id, 'full');
+                       $url = wp_get_attachment_image_src( $attachment_id, 'full' );
                        $url = $url[0];
                } elseif ( isset( $_POST ) ) {
                        $url = $url[0];
                } elseif ( isset( $_POST ) ) {
-                       extract($this->step_2_manage_upload());
+                       $data = $this->step_2_manage_upload();
+                       $attachment_id = $data['attachment_id'];
+                       $file = $data['file'];
+                       $url = $data['url'];
+                       $type = $data['type'];
                }
 
                if ( file_exists( $file ) ) {
                }
 
                if ( file_exists( $file ) ) {
@@ -772,7 +847,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         *
         * @since 3.4.0
         */
         *
         * @since 3.4.0
         */
-       function step_2_manage_upload() {
+       public function step_2_manage_upload() {
                $overrides = array('test_form' => false);
 
                $uploaded_file = $_FILES['import'];
                $overrides = array('test_form' => false);
 
                $uploaded_file = $_FILES['import'];
@@ -809,7 +884,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         *
         * @since 2.1.0
         */
         *
         * @since 2.1.0
         */
-       function step_3() {
+       public function step_3() {
                check_admin_referer( 'custom-header-crop-image' );
 
                if ( ! current_theme_supports( 'custom-header', 'uploads' ) )
                check_admin_referer( 'custom-header-crop-image' );
 
                if ( ! current_theme_supports( 'custom-header', 'uploads' ) )
@@ -859,7 +934,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
                $url = $object['guid'];
                $this->set_header_image( compact( 'url', 'attachment_id', 'width', 'height' ) );
 
                $url = $object['guid'];
                $this->set_header_image( compact( 'url', 'attachment_id', 'width', 'height' ) );
 
-               // cleanup
+               // Cleanup.
                $medium = str_replace( basename( $original ), 'midsize-' . basename( $original ), $original );
                if ( file_exists( $medium ) ) {
                        /**
                $medium = str_replace( basename( $original ), 'midsize-' . basename( $original ), $original );
                if ( file_exists( $medium ) ) {
                        /**
@@ -885,7 +960,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         *
         * @since 2.1.0
         */
         *
         * @since 2.1.0
         */
-       function finished() {
+       public function finished() {
                $this->updated = true;
                $this->step_1();
        }
                $this->updated = true;
                $this->step_1();
        }
@@ -895,7 +970,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         *
         * @since 2.1.0
         */
         *
         * @since 2.1.0
         */
-       function admin_page() {
+       public function admin_page() {
                if ( ! current_user_can('edit_theme_options') )
                        wp_die(__('You do not have permission to customize headers.'));
                $step = $this->step();
                if ( ! current_user_can('edit_theme_options') )
                        wp_die(__('You do not have permission to customize headers.'));
                $step = $this->step();
@@ -912,7 +987,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         *
         * @since 3.4.0
         */
         *
         * @since 3.4.0
         */
-       function attachment_fields_to_edit( $form_fields ) {
+       public function attachment_fields_to_edit( $form_fields ) {
                return $form_fields;
        }
 
                return $form_fields;
        }
 
@@ -921,7 +996,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         *
         * @since 3.4.0
         */
         *
         * @since 3.4.0
         */
-       function filter_upload_tabs( $tabs ) {
+       public function filter_upload_tabs( $tabs ) {
                return $tabs;
        }
 
                return $tabs;
        }
 
@@ -1096,7 +1171,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
        }
 
        /**
        }
 
        /**
-        * Insert an attachment & its metadata.
+        * Insert an attachment and its metadata.
         *
         * @param array $object Attachment object.
         * @param string $cropped Cropped image URL.
         *
         * @param array $object Attachment object.
         * @param string $cropped Cropped image URL.
@@ -1107,8 +1182,13 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
                $attachment_id = wp_insert_attachment( $object, $cropped );
                $metadata = wp_generate_attachment_metadata( $attachment_id, $cropped );
                /**
                $attachment_id = wp_insert_attachment( $object, $cropped );
                $metadata = wp_generate_attachment_metadata( $attachment_id, $cropped );
                /**
-                * Allows us to insert custom meta data for an attachment.
+                * Filter the header image attachment metadata.
+                *
+                * @since 3.9.0
                 *
                 *
+                * @see wp_generate_attachment_metadata()
+                *
+                * @param array $metadata Attachment metadata.
                 */
                $metadata = apply_filters( 'wp_header_image_attachment_metadata', $metadata );
                wp_update_attachment_metadata( $attachment_id, $metadata );
                 */
                $metadata = apply_filters( 'wp_header_image_attachment_metadata', $metadata );
                wp_update_attachment_metadata( $attachment_id, $metadata );
@@ -1119,7 +1199,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         * Gets attachment uploaded by Media Manager, crops it, then saves it as a
         * new object. Returns JSON-encoded object details.
         */
         * Gets attachment uploaded by Media Manager, crops it, then saves it as a
         * new object. Returns JSON-encoded object details.
         */
-       function ajax_header_crop() {
+       public function ajax_header_crop() {
                check_ajax_referer( 'image_editor-' . $_POST['id'], 'nonce' );
 
                if ( ! current_user_can( 'edit_theme_options' ) ) {
                check_ajax_referer( 'image_editor-' . $_POST['id'], 'nonce' );
 
                if ( ! current_user_can( 'edit_theme_options' ) ) {
@@ -1153,6 +1233,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
                        wp_send_json_error( array( 'message' => __( 'Image could not be processed. Please go back and try again.' ) ) );
                }
 
                        wp_send_json_error( array( 'message' => __( 'Image could not be processed. Please go back and try again.' ) ) );
                }
 
+               /** This filter is documented in wp-admin/custom-header.php */
                $cropped = apply_filters( 'wp_create_file_in_uploads', $cropped, $attachment_id ); // For replication
 
                $object = $this->create_attachment_object( $cropped, $attachment_id );
                $cropped = apply_filters( 'wp_create_file_in_uploads', $cropped, $attachment_id ); // For replication
 
                $object = $this->create_attachment_object( $cropped, $attachment_id );
@@ -1175,7 +1256,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         * Triggered when the user tries adds a new header image from the
         * Media Manager, even if s/he doesn't save that change.
         */
         * Triggered when the user tries adds a new header image from the
         * Media Manager, even if s/he doesn't save that change.
         */
-       function ajax_header_add() {
+       public function ajax_header_add() {
                check_ajax_referer( 'header-add', 'nonce' );
 
                if ( ! current_user_can( 'edit_theme_options' ) ) {
                check_ajax_referer( 'header-add', 'nonce' );
 
                if ( ! current_user_can( 'edit_theme_options' ) ) {
@@ -1201,7 +1282,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
         * Triggered when the user clicks the overlay "X" button next to each image
         * choice in the Customizer's Header tool.
         */
         * Triggered when the user clicks the overlay "X" button next to each image
         * choice in the Customizer's Header tool.
         */
-       function ajax_header_remove() {
+       public function ajax_header_remove() {
                check_ajax_referer( 'header-remove', 'nonce' );
 
                if ( ! current_user_can( 'edit_theme_options' ) ) {
                check_ajax_referer( 'header-remove', 'nonce' );
 
                if ( ! current_user_can( 'edit_theme_options' ) ) {
@@ -1220,7 +1301,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
                wp_send_json_success();
        }
 
                wp_send_json_success();
        }
 
-       function customize_set_last_used( $wp_customize ) {
+       public function customize_set_last_used( $wp_customize ) {
                $data = $wp_customize->get_setting( 'header_image_data' )->post_value();
 
                if ( ! isset( $data['attachment_id'] ) ) {
                $data = $wp_customize->get_setting( 'header_image_data' )->post_value();
 
                if ( ! isset( $data['attachment_id'] ) ) {
index b1485d1f4680fbd23090d6f1546f28c71f794237..3cfa0c787bbdaecf3c7c5fca75644e12c2e7ef47 100644 (file)
@@ -12,16 +12,26 @@ define( 'IFRAME_REQUEST', true );
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! current_user_can( 'edit_theme_options' ) )
+if ( ! current_user_can( 'customize' ) ) {
        wp_die( __( 'Cheatin&#8217; uh?' ) );
        wp_die( __( 'Cheatin&#8217; uh?' ) );
+}
 
 wp_reset_vars( array( 'url', 'return' ) );
 
 wp_reset_vars( array( 'url', 'return' ) );
-$url = urldecode( $url );
+$url = wp_unslash( $url );
 $url = wp_validate_redirect( $url, home_url( '/' ) );
 $url = wp_validate_redirect( $url, home_url( '/' ) );
-if ( $return )
-       $return = wp_validate_redirect( urldecode( $return ) );
-if ( ! $return )
-       $return = $url;
+if ( $return ) {
+       $return = wp_unslash( $return );
+       $return = wp_validate_redirect( $return );
+}
+if ( ! $return ) {
+       if ( $url ) {
+               $return = $url;
+       } elseif ( current_user_can( 'edit_theme_options' ) || current_user_can( 'switch_themes' ) ) {
+               $return = admin_url( 'themes.php' );
+       } else {
+               $return = admin_url();
+       }
+}
 
 global $wp_scripts, $wp_customize;
 
 
 global $wp_scripts, $wp_customize;
 
@@ -63,7 +73,7 @@ $body_class = 'wp-core-ui wp-customizer js';
 if ( wp_is_mobile() ) :
        $body_class .= ' mobile';
 
 if ( wp_is_mobile() ) :
        $body_class .= ' mobile';
 
-       ?><meta name="viewport" id="viewport-meta" content="width=device-width, initial-scale=0.8, minimum-scale=0.5, maximum-scale=1.2"><?php
+       ?><meta name="viewport" id="viewport-meta" content="width=device-width, initial-scale=0.8, minimum-scale=0.5, maximum-scale=1.2" /><?php
 endif;
 
 $is_ios = wp_is_mobile() && preg_match( '/iPad|iPod|iPhone/', $_SERVER['HTTP_USER_AGENT'] );
 endif;
 
 $is_ios = wp_is_mobile() && preg_match( '/iPad|iPod|iPhone/', $_SERVER['HTTP_USER_AGENT'] );
@@ -108,14 +118,15 @@ do_action( 'customize_controls_print_scripts' );
                                submit_button( $save_text, 'primary save', 'save', false );
                        ?>
                        <span class="spinner"></span>
                                submit_button( $save_text, 'primary save', 'save', false );
                        ?>
                        <span class="spinner"></span>
-                       <a class="back button" href="<?php echo esc_url( $return ? $return : admin_url( 'themes.php' ) ); ?>">
-                               <?php _e( 'Cancel' ); ?>
+                       <a class="customize-controls-close" href="<?php echo esc_url( $return ); ?>">
+                               <span class="screen-reader-text"><?php _e( 'Cancel' ); ?></span>
                        </a>
                        </a>
+                       <span class="control-panel-back" tabindex="-1"><span class="screen-reader-text"><?php _e( 'Back' ); ?></span></span>
                </div>
 
                <?php
                        $screenshot = $wp_customize->theme()->get_screenshot();
                </div>
 
                <?php
                        $screenshot = $wp_customize->theme()->get_screenshot();
-                       $cannot_expand = ! ( $screenshot || $wp_customize->theme()->get('Description') );
+                       $cannot_expand = ! ( $wp_customize->is_theme_active() || $screenshot || $wp_customize->theme()->get('Description') );
                ?>
 
                <div id="widgets-right"><!-- For Widget Customizer, many widgets try to look for instances under div#widgets-right, so we have to add that ID to a container div in the customizer for compat -->
                ?>
 
                <div id="widgets-right"><!-- For Widget Customizer, many widgets try to look for instances under div#widgets-right, so we have to add that ID to a container div in the customizer for compat -->
@@ -123,27 +134,37 @@ do_action( 'customize_controls_print_scripts' );
                        <div id="customize-info" class="accordion-section <?php if ( $cannot_expand ) echo ' cannot-expand'; ?>">
                                <div class="accordion-section-title" aria-label="<?php esc_attr_e( 'Theme Customizer Options' ); ?>" tabindex="0">
                                        <span class="preview-notice"><?php
                        <div id="customize-info" class="accordion-section <?php if ( $cannot_expand ) echo ' cannot-expand'; ?>">
                                <div class="accordion-section-title" aria-label="<?php esc_attr_e( 'Theme Customizer Options' ); ?>" tabindex="0">
                                        <span class="preview-notice"><?php
-                                               /* translators: %s is the theme name in the Customize/Live Preview pane */
-                                               echo sprintf( __( 'You are previewing %s' ), '<strong class="theme-name">' . $wp_customize->theme()->display('Name') . '</strong>' );
+                                               if ( ! $wp_customize->is_theme_active() ) {
+                                                       /* translators: %s is the theme name in the Customize/Live Preview pane */
+                                                       echo sprintf( __( 'You are previewing %s' ), '<strong class="theme-name">' . $wp_customize->theme()->display('Name') . '</strong>' );
+                                               } else {
+                                                       /* translators: %s is the site/panel title in the Customize pane */
+                                                       echo sprintf( __( 'You are customizing %s' ), '<strong class="theme-name site-title">' . get_bloginfo( 'name' ) . '</strong>' );
+                                               }
                                        ?></span>
                                </div>
                                <?php if ( ! $cannot_expand ) : ?>
                                <div class="accordion-section-content">
                                        ?></span>
                                </div>
                                <?php if ( ! $cannot_expand ) : ?>
                                <div class="accordion-section-content">
-                                       <?php if ( $screenshot ) : ?>
-                                               <img class="theme-screenshot" src="<?php echo esc_url( $screenshot ); ?>" />
-                                       <?php endif; ?>
-
-                                       <?php if ( $wp_customize->theme()->get('Description') ): ?>
-                                               <div class="theme-description"><?php echo $wp_customize->theme()->display('Description'); ?></div>
-                                       <?php endif; ?>
+                                       <?php if ( ! $wp_customize->is_theme_active() ) :
+                                               if ( $screenshot ) : ?>
+                                                       <img class="theme-screenshot" src="<?php echo esc_url( $screenshot ); ?>" />
+                                               <?php endif; ?>
+
+                                               <?php if ( $wp_customize->theme()->get('Description') ): ?>
+                                                       <div class="theme-description"><?php echo $wp_customize->theme()->display('Description'); ?></div>
+                                               <?php endif;
+                                       else:
+                                               echo __( 'The Customizer allows you to preview changes to your site before publishing them. You can also navigate to different pages on your site to preview them.' );
+                                       endif; ?>
                                </div>
                                <?php endif; ?>
                        </div>
 
                        <div id="customize-theme-controls"><ul>
                                <?php
                                </div>
                                <?php endif; ?>
                        </div>
 
                        <div id="customize-theme-controls"><ul>
                                <?php
-                               foreach ( $wp_customize->sections() as $section )
-                                       $section->maybe_render();
+                               foreach ( $wp_customize->containers() as $container ) {
+                                       $container->maybe_render();
+                               }
                                ?>
                        </ul></div>
                </div>
                                ?>
                        </ul></div>
                </div>
@@ -166,12 +187,14 @@ do_action( 'customize_controls_print_scripts' );
         */
        do_action( 'customize_controls_print_footer_scripts' );
 
         */
        do_action( 'customize_controls_print_footer_scripts' );
 
-       // If the frontend and the admin are served from the same domain, load the
-       // preview over ssl if the customizer is being loaded over ssl. This avoids
-       // insecure content warnings. This is not attempted if the admin and frontend
-       // are on different domains to avoid the case where the frontend doesn't have
-       // ssl certs. Domain mapping plugins can allow other urls in these conditions
-       // using the customize_allowed_urls filter.
+       /*
+        * If the frontend and the admin are served from the same domain, load the
+        * preview over ssl if the customizer is being loaded over ssl. This avoids
+        * insecure content warnings. This is not attempted if the admin and frontend
+        * are on different domains to avoid the case where the frontend doesn't have
+        * ssl certs. Domain mapping plugins can allow other urls in these conditions
+        * using the customize_allowed_urls filter.
+        */
 
        $allowed_urls = array( home_url('/') );
        $admin_origin = parse_url( admin_url() );
 
        $allowed_urls = array( home_url('/') );
        $admin_origin = parse_url( admin_url() );
index 8dc481508f584c23e48465ae78d3de034450ec93..ebda7a3f69d2b4f0741f1ce48a7972beeddf99ed 100644 (file)
@@ -11,6 +11,22 @@ if ( !defined('ABSPATH') )
        die('-1');
 
 wp_enqueue_script('post');
        die('-1');
 
 wp_enqueue_script('post');
+$_wp_editor_expand = false;
+
+/**
+ * Filter whether to enable the 'expand' functionality in the post editor.
+ *
+ * @since 4.0.0
+ *
+ * @param bool $expand Whether to enable the 'expand' functionality. Default true.
+ */
+if ( post_type_supports( $post_type, 'editor' ) && ! wp_is_mobile() &&
+        ! ( $is_IE && preg_match( '/MSIE [5678]/', $_SERVER['HTTP_USER_AGENT'] ) ) &&
+        apply_filters( 'wp_editor_expand', true ) ) {
+
+       wp_enqueue_script('editor-expand');
+       $_wp_editor_expand = ( get_user_setting( 'editor_expand', 'on' ) === 'on' );
+}
 
 if ( wp_is_mobile() )
        wp_enqueue_script( 'jquery-touch-punch' );
 
 if ( wp_is_mobile() )
        wp_enqueue_script( 'jquery-touch-punch' );
@@ -176,7 +192,7 @@ foreach ( get_object_taxonomies( $post ) as $tax_name ) {
 if ( post_type_supports($post_type, 'page-attributes') )
        add_meta_box('pageparentdiv', 'page' == $post_type ? __('Page Attributes') : __('Attributes'), 'page_attributes_meta_box', null, 'side', 'core');
 
 if ( post_type_supports($post_type, 'page-attributes') )
        add_meta_box('pageparentdiv', 'page' == $post_type ? __('Page Attributes') : __('Attributes'), 'page_attributes_meta_box', null, 'side', 'core');
 
-if ( $thumbnail_support )
+if ( $thumbnail_support && current_user_can( 'upload_files' ) )
        add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', null, 'side', 'low');
 
 if ( post_type_supports($post_type, 'excerpt') )
        add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', null, 'side', 'low');
 
 if ( post_type_supports($post_type, 'excerpt') )
@@ -483,15 +499,16 @@ do_action( 'edit_form_after_title', $post );
 
 if ( post_type_supports($post_type, 'editor') ) {
 ?>
 
 if ( post_type_supports($post_type, 'editor') ) {
 ?>
-<div id="postdivrich" class="postarea edit-form-section">
+<div id="postdivrich" class="postarea<?php if ( $_wp_editor_expand ) { echo ' wp-editor-expand'; } ?>">
 
 <?php wp_editor( $post->post_content, 'content', array(
        'dfw' => true,
        'drag_drop_upload' => true,
        'tabfocus_elements' => 'insert-media-button,save-post',
 
 <?php wp_editor( $post->post_content, 'content', array(
        'dfw' => true,
        'drag_drop_upload' => true,
        'tabfocus_elements' => 'insert-media-button,save-post',
-       'editor_height' => 360,
+       'editor_height' => 300,
        'tinymce' => array(
                'resize' => false,
        'tinymce' => array(
                'resize' => false,
+               'wp_autoresize_on' => $_wp_editor_expand,
                'add_unload_trigger' => false,
        ),
 ) ); ?>
                'add_unload_trigger' => false,
        ),
 ) ); ?>
index 3d0ebf5104c318d203bbc7159a9df3d6fc1aa364..b2950f77b529162093a5b1eb32ca1c9814f34d1e 100644 (file)
@@ -71,7 +71,7 @@ if ( !defined('ABSPATH') )
 
 <div id="postbox-container-1" class="postbox-container">
 <div id="submitdiv" class="stuffbox" >
 
 <div id="postbox-container-1" class="postbox-container">
 <div id="submitdiv" class="stuffbox" >
-<h3><span class='hndle'><?php _e('Status') ?></span></h3>
+<h3><span class="hndle"><?php _e('Status') ?></span></h3>
 <div class="inside">
 <div class="submitbox" id="submitcomment">
 <div id="minor-publishing">
 <div class="inside">
 <div class="submitbox" id="submitcomment">
 <div id="minor-publishing">
index 007146c817cd331182984c89e878d254ad478db5..610240a0c4731a4712491c36d86583bf9510de3e 100644 (file)
@@ -13,12 +13,12 @@ if ( !defined('ABSPATH') )
 if ( ! empty($link_id) ) {
        $heading = sprintf( __( '<a href="%s">Links</a> / Edit Link' ), 'link-manager.php' );
        $submit_text = __('Update Link');
 if ( ! empty($link_id) ) {
        $heading = sprintf( __( '<a href="%s">Links</a> / Edit Link' ), 'link-manager.php' );
        $submit_text = __('Update Link');
-       $form = '<form name="editlink" id="editlink" method="post" action="link.php">';
+       $form_name = 'editlink';
        $nonce_action = 'update-bookmark_' . $link_id;
 } else {
        $heading = sprintf( __( '<a href="%s">Links</a> / Add New Link' ), 'link-manager.php' );
        $submit_text = __('Add Link');
        $nonce_action = 'update-bookmark_' . $link_id;
 } else {
        $heading = sprintf( __( '<a href="%s">Links</a> / Add New Link' ), 'link-manager.php' );
        $submit_text = __('Add Link');
-       $form = '<form name="addlink" id="addlink" method="post" action="link.php">';
+       $form_name = 'addlink';
        $nonce_action = 'add-bookmark';
 }
 
        $nonce_action = 'add-bookmark';
 }
 
@@ -76,11 +76,11 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 <div id="message" class="updated"><p><?php _e('Link added.'); ?></p></div>
 <?php endif; ?>
 
 <div id="message" class="updated"><p><?php _e('Link added.'); ?></p></div>
 <?php endif; ?>
 
+<form name="<?php echo esc_attr( $form_name ); ?>" id="<?php echo esc_attr( $form_name ); ?>" method="post" action="link.php">
 <?php
 <?php
-if ( !empty($form) )
-       echo $form;
-if ( !empty($link_added) )
+if ( ! empty( $link_added ) ) {
        echo $link_added;
        echo $link_added;
+}
 
 wp_nonce_field( $nonce_action );
 wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
 
 wp_nonce_field( $nonce_action );
 wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
@@ -118,11 +118,7 @@ wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?>
 <div id="postbox-container-1" class="postbox-container">
 <?php
 
 <div id="postbox-container-1" class="postbox-container">
 <?php
 
-/**
- * Fires before the Save meta box in the sidebar.
- *
- * @since 2.5.0
- */
+/** This action is documented in wp-admin/includes/meta-boxes.php */
 do_action( 'submitlink_box' );
 $side_meta_boxes = do_meta_boxes( 'link', 'side', $link );
 
 do_action( 'submitlink_box' );
 $side_meta_boxes = do_meta_boxes( 'link', 'side', $link );
 
index 717954c0c0319a41ae18d2a37f36002835fdce22..953f6f430c5dee63897c481002d74796ca6ba216 100644 (file)
@@ -63,7 +63,6 @@ case 'add-tag':
                $location = add_query_arg( 'message', 4, $location );
        wp_redirect( $location );
        exit;
                $location = add_query_arg( 'message', 4, $location );
        wp_redirect( $location );
        exit;
-break;
 
 case 'delete':
        $location = 'edit-tags.php?taxonomy=' . $taxonomy;
 
 case 'delete':
        $location = 'edit-tags.php?taxonomy=' . $taxonomy;
@@ -91,8 +90,6 @@ case 'delete':
        wp_redirect( $location );
        exit;
 
        wp_redirect( $location );
        exit;
 
-break;
-
 case 'bulk-delete':
        check_admin_referer( 'bulk-tags' );
 
 case 'bulk-delete':
        check_admin_referer( 'bulk-tags' );
 
@@ -116,8 +113,6 @@ case 'bulk-delete':
        wp_redirect( $location );
        exit;
 
        wp_redirect( $location );
        exit;
 
-break;
-
 case 'edit':
        $title = $tax->labels->edit_item;
 
 case 'edit':
        $title = $tax->labels->edit_item;
 
@@ -160,7 +155,6 @@ case 'editedtag':
 
        wp_redirect( $location );
        exit;
 
        wp_redirect( $location );
        exit;
-break;
 
 default:
 if ( ! empty($_REQUEST['_wp_http_referer']) ) {
 
 default:
 if ( ! empty($_REQUEST['_wp_http_referer']) ) {
@@ -336,8 +330,12 @@ endif; ?>
 
 <?php if ( 'category' == $taxonomy ) : ?>
 <div class="form-wrap">
 
 <?php if ( 'category' == $taxonomy ) : ?>
 <div class="form-wrap">
-<?php /** This filter is documented in wp-includes/category-template.php */ ?>
-<p><?php printf(__('<strong>Note:</strong><br />Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the category <strong>%s</strong>.'), apply_filters('the_category', get_cat_name(get_option('default_category')))) ?></p>
+<p>
+       <?php
+       /** This filter is documented in wp-includes/category-template.php */
+       printf( __( '<strong>Note:</strong><br />Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the category <strong>%s</strong>.' ), apply_filters( 'the_category', get_cat_name( get_option( 'default_category') ) ) );
+       ?>
+</p>
 <?php if ( current_user_can( 'import' ) ) : ?>
 <p><?php printf(__('Categories can be selectively converted to tags using the <a href="%s">category to tag converter</a>.'), 'import.php') ?></p>
 <?php endif; ?>
 <?php if ( current_user_can( 'import' ) ) : ?>
 <p><?php printf(__('Categories can be selectively converted to tags using the <a href="%s">category to tag converter</a>.'), 'import.php') ?></p>
 <?php endif; ?>
index a062b0911acba2885db444fa6c584df6351da701..241b8fbd3f901302869c6b7d8de0e3649bbe32e9 100644 (file)
@@ -12,6 +12,12 @@ require_once( dirname( __FILE__ ) . '/admin.php' );
 if ( ! $typenow )
        wp_die( __( 'Invalid post type' ) );
 
 if ( ! $typenow )
        wp_die( __( 'Invalid post type' ) );
 
+if ( 'attachment' === $typenow ) {
+       if ( wp_redirect( admin_url( 'upload.php' ) ) ) {
+               exit;
+       }
+}
+
 $post_type = $typenow;
 $post_type_object = get_post_type_object( $post_type );
 
 $post_type = $typenow;
 $post_type_object = get_post_type_object( $post_type );
 
index 2bc7a8df86d27f335ab13f6c314f5117a34e434c..101c7969d532fb81e325a0f5d4fc28f2e79c886e 100644 (file)
@@ -19,7 +19,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 
 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
 
 
 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
 
-<div class="about-text"><?php printf( __( 'Thank you for updating! WordPress %s has lots of refinements we think you&#8217;ll love.' ), $display_version ); ?></div>
+<div class="about-text"><?php printf( __( 'Thank you for updating! WordPress %s brings you a smoother writing and management experience.' ), $display_version ); ?></div>
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
index 439fcdb81e19b63837a6ae2bd356cb56423f656b..f1fc8cb003d6046903b8b8ae026ecb20fd4fd90a 100644 (file)
@@ -7,9 +7,11 @@
  */
 
 if ( ! defined('WP_ADMIN') ) {
  */
 
 if ( ! defined('WP_ADMIN') ) {
-       // This file is being included from a file other than wp-admin/admin.php, so
-       // some setup was skipped. Make sure the admin message catalog is loaded since
-       // load_default_textdomain() will not have done so in this context.
+       /*
+        * This file is being included from a file other than wp-admin/admin.php, so
+        * some setup was skipped. Make sure the admin message catalog is loaded since
+        * load_default_textdomain() will not have done so in this context.
+        */
        load_textdomain( 'default', WP_LANG_DIR . '/admin-' . get_locale() . '.mo' );
 }
 
        load_textdomain( 'default', WP_LANG_DIR . '/admin-' . get_locale() . '.mo' );
 }
 
index ed78e3c01d3414d564ca1ffdd758643236376a22..ff2db70f9ca8a3ca4e2a6b350c88fdf418824e92 100644 (file)
@@ -6,19 +6,22 @@
  * @subpackage Administration
  */
 
  * @subpackage Administration
  */
 
-/*
- * No-privilege Ajax handlers.
- */
+//
+// No-privilege Ajax handlers.
+//
 
 /**
 
 /**
- * Heartbeat API (experimental)
+ * Ajax handler for the Heartbeat API in
+ * the no-privilege context.
  *
  * Runs when the user is not logged in.
  *
  * Runs when the user is not logged in.
+ *
+ * @since 3.6.0
  */
 function wp_ajax_nopriv_heartbeat() {
        $response = array();
 
  */
 function wp_ajax_nopriv_heartbeat() {
        $response = array();
 
-       // screen_id is the same as $current_screen->id and the JS global 'pagenow'
+       // screen_id is the same as $current_screen->id and the JS global 'pagenow'.
        if ( ! empty($_POST['screen_id']) )
                $screen_id = sanitize_key($_POST['screen_id']);
        else
        if ( ! empty($_POST['screen_id']) )
                $screen_id = sanitize_key($_POST['screen_id']);
        else
@@ -61,14 +64,20 @@ function wp_ajax_nopriv_heartbeat() {
         */
        do_action( 'heartbeat_nopriv_tick', $response, $screen_id );
 
         */
        do_action( 'heartbeat_nopriv_tick', $response, $screen_id );
 
-       // send the current time according to the server
+       // Send the current time according to the server.
        $response['server_time'] = time();
 
        wp_send_json($response);
 }
 
        $response['server_time'] = time();
 
        wp_send_json($response);
 }
 
-/*
- * GET-based Ajax handlers.
+//
+// GET-based Ajax handlers.
+//
+
+/**
+ * Ajax handler for fetching a list table.
+ *
+ * @since 3.1.0
  */
 function wp_ajax_fetch_list() {
        global $wp_list_table;
  */
 function wp_ajax_fetch_list() {
        global $wp_list_table;
@@ -87,9 +96,13 @@ function wp_ajax_fetch_list() {
 
        wp_die( 0 );
 }
 
        wp_die( 0 );
 }
-function wp_ajax_ajax_tag_search() {
-       global $wpdb;
 
 
+/**
+ * Ajax handler for tag search.
+ *
+ * @since 3.1.0
+ */
+function wp_ajax_ajax_tag_search() {
        if ( isset( $_GET['tax'] ) ) {
                $taxonomy = sanitize_key( $_GET['tax'] );
                $tax = get_taxonomy( $taxonomy );
        if ( isset( $_GET['tax'] ) ) {
                $taxonomy = sanitize_key( $_GET['tax'] );
                $tax = get_taxonomy( $taxonomy );
@@ -111,8 +124,25 @@ function wp_ajax_ajax_tag_search() {
                $s = $s[count( $s ) - 1];
        }
        $s = trim( $s );
                $s = $s[count( $s ) - 1];
        }
        $s = trim( $s );
-       if ( strlen( $s ) < 2 )
-               wp_die(); // require 2 chars for matching
+
+       /**
+        * Filter the minimum number of characters required to fire a tag search via AJAX.
+        *
+        * @since 4.0.0
+        *
+        * @param int    $characters The minimum number of characters required. Default 2.
+        * @param object $tax        The taxonomy object.
+        * @param string $s          The search term.
+        */
+       $term_search_min_chars = (int) apply_filters( 'term_search_min_chars', 2, $tax, $s );
+
+       /*
+        * Require $term_search_min_chars chars for matching (default: 2)
+        * ensure it's a non-negative, non-zero integer.
+        */
+       if ( ( $term_search_min_chars == 0 ) || ( strlen( $s ) < $term_search_min_chars ) ){
+               wp_die();
+       }
 
        $results = get_terms( $taxonomy, array( 'name__like' => $s, 'fields' => 'names', 'hide_empty' => false ) );
 
 
        $results = get_terms( $taxonomy, array( 'name__like' => $s, 'fields' => 'names', 'hide_empty' => false ) );
 
@@ -120,6 +150,11 @@ function wp_ajax_ajax_tag_search() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for compression testing.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_wp_compression_test() {
        if ( !current_user_can( 'manage_options' ) )
                wp_die( -1 );
 function wp_ajax_wp_compression_test() {
        if ( !current_user_can( 'manage_options' ) )
                wp_die( -1 );
@@ -165,6 +200,11 @@ function wp_ajax_wp_compression_test() {
        wp_die( 0 );
 }
 
        wp_die( 0 );
 }
 
+/**
+ * Ajax handler for image editor previews.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_imgedit_preview() {
        $post_id = intval($_GET['postid']);
        if ( empty($post_id) || !current_user_can('edit_post', $post_id) )
 function wp_ajax_imgedit_preview() {
        $post_id = intval($_GET['postid']);
        if ( empty($post_id) || !current_user_can('edit_post', $post_id) )
@@ -179,13 +219,21 @@ function wp_ajax_imgedit_preview() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for oEmbed caching.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_oembed_cache() {
 function wp_ajax_oembed_cache() {
-       global $wp_embed;
-
-       $return = ( $wp_embed->cache_oembed( $_GET['post'] ) ) ? '1' : '0';
-       wp_die( $return );
+       $GLOBALS['wp_embed']->cache_oembed( $_GET['post'] );
+       wp_die( 0 );
 }
 
 }
 
+/**
+ * Ajax handler for user autocomplete.
+ *
+ * @since 3.4.0
+ */
 function wp_ajax_autocomplete_user() {
        if ( ! is_multisite() || ! current_user_can( 'promote_users' ) || wp_is_large_network( 'users' ) )
                wp_die( -1 );
 function wp_ajax_autocomplete_user() {
        if ( ! is_multisite() || ! current_user_can( 'promote_users' ) || wp_is_large_network( 'users' ) )
                wp_die( -1 );
@@ -241,6 +289,11 @@ function wp_ajax_autocomplete_user() {
        wp_die( json_encode( $return ) );
 }
 
        wp_die( json_encode( $return ) );
 }
 
+/**
+ * Ajax handler for dashboard widgets.
+ *
+ * @since 3.4.0
+ */
 function wp_ajax_dashboard_widgets() {
        require_once ABSPATH . 'wp-admin/includes/dashboard.php';
 
 function wp_ajax_dashboard_widgets() {
        require_once ABSPATH . 'wp-admin/includes/dashboard.php';
 
@@ -257,13 +310,18 @@ function wp_ajax_dashboard_widgets() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for Customizer preview logged-in status.
+ *
+ * @since 3.4.0
+ */
 function wp_ajax_logged_in() {
        wp_die( 1 );
 }
 
 function wp_ajax_logged_in() {
        wp_die( 1 );
 }
 
-/*
- * Ajax helper.
- */
+//
+// Ajax helpers.
+//
 
 /**
  * Sends back current comment total and new page links if they need to be updated.
 
 /**
  * Sends back current comment total and new page links if they need to be updated.
@@ -304,16 +362,19 @@ function _wp_ajax_delete_comment_response( $comment_id, $delta = -1 ) {
 
                $comment_count = wp_count_comments($post_id);
 
 
                $comment_count = wp_count_comments($post_id);
 
-               if ( isset( $comment_count->$status ) ) // We're looking for a known type of comment count
+               // We're looking for a known type of comment count.
+               if ( isset( $comment_count->$status ) )
                        $total = $comment_count->$status;
                        $total = $comment_count->$status;
-                       // else use the decremented value from above
+                       // Else use the decremented value from above.
        }
 
        }
 
-       $time = time(); // The time since the last comment count
+       // The time since the last comment count.
+       $time = time();
 
        $x = new WP_Ajax_Response( array(
                'what' => 'comment',
 
        $x = new WP_Ajax_Response( array(
                'what' => 'comment',
-               'id' => $comment_id, // here for completeness - not used
+               // Here for completeness - not used.
+               'id' => $comment_id,
                'supplemental' => array(
                        'total_items_i18n' => sprintf( _n( '1 item', '%s items', $total ), number_format_i18n( $total ) ),
                        'total_pages' => ceil( $total / $per_page ),
                'supplemental' => array(
                        'total_items_i18n' => sprintf( _n( '1 item', '%s items', $total ), number_format_i18n( $total ) ),
                        'total_pages' => ceil( $total / $per_page ),
@@ -325,10 +386,15 @@ function _wp_ajax_delete_comment_response( $comment_id, $delta = -1 ) {
        $x->send();
 }
 
        $x->send();
 }
 
-/*
- * POST-based Ajax handlers.
- */
+//
+// POST-based Ajax handlers.
+//
 
 
+/**
+ * Ajax handler for adding a hierarchical term.
+ *
+ * @since 3.1.0
+ */
 function _wp_ajax_add_hierarchical_term() {
        $action = $_POST['action'];
        $taxonomy = get_taxonomy(substr($action, 4));
 function _wp_ajax_add_hierarchical_term() {
        $action = $_POST['action'];
        $taxonomy = get_taxonomy(substr($action, 4));
@@ -408,6 +474,11 @@ function _wp_ajax_add_hierarchical_term() {
        $x->send();
 }
 
        $x->send();
 }
 
+/**
+ * Ajax handler for deleting a comment.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_delete_comment() {
        $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
 
 function wp_ajax_delete_comment() {
        $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
 
@@ -451,6 +522,11 @@ function wp_ajax_delete_comment() {
        wp_die( 0 );
 }
 
        wp_die( 0 );
 }
 
+/**
+ * Ajax handler for deleting a tag.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_delete_tag() {
        $tag_id = (int) $_POST['tag_ID'];
        check_ajax_referer( "delete-tag_$tag_id" );
 function wp_ajax_delete_tag() {
        $tag_id = (int) $_POST['tag_ID'];
        check_ajax_referer( "delete-tag_$tag_id" );
@@ -471,6 +547,11 @@ function wp_ajax_delete_tag() {
                wp_die( 0 );
 }
 
                wp_die( 0 );
 }
 
+/**
+ * Ajax handler for deleting a link.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_delete_link() {
        $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
 
 function wp_ajax_delete_link() {
        $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
 
@@ -488,6 +569,11 @@ function wp_ajax_delete_link() {
                wp_die( 0 );
 }
 
                wp_die( 0 );
 }
 
+/**
+ * Ajax handler for deleting meta.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_delete_meta() {
        $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
 
 function wp_ajax_delete_meta() {
        $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
 
@@ -502,6 +588,13 @@ function wp_ajax_delete_meta() {
        wp_die( 0 );
 }
 
        wp_die( 0 );
 }
 
+/**
+ * Ajax handler for deleting a post.
+ *
+ * @since 3.1.0
+ *
+ * @param string $action Action to perform.
+ */
 function wp_ajax_delete_post( $action ) {
        if ( empty( $action ) )
                $action = 'delete-post';
 function wp_ajax_delete_post( $action ) {
        if ( empty( $action ) )
                $action = 'delete-post';
@@ -520,6 +613,13 @@ function wp_ajax_delete_post( $action ) {
                wp_die( 0 );
 }
 
                wp_die( 0 );
 }
 
+/**
+ * Ajax handler for sending a post to the trash.
+ *
+ * @since 3.1.0
+ *
+ * @param string $action Action to perform.
+ */
 function wp_ajax_trash_post( $action ) {
        if ( empty( $action ) )
                $action = 'trash-post';
 function wp_ajax_trash_post( $action ) {
        if ( empty( $action ) )
                $action = 'trash-post';
@@ -543,6 +643,13 @@ function wp_ajax_trash_post( $action ) {
        wp_die( 0 );
 }
 
        wp_die( 0 );
 }
 
+/**
+ * Ajax handler to restore a post from the trash.
+ *
+ * @since 3.1.0
+ *
+ * @param string $action Action to perform.
+ */
 function wp_ajax_untrash_post( $action ) {
        if ( empty( $action ) )
                $action = 'untrash-post';
 function wp_ajax_untrash_post( $action ) {
        if ( empty( $action ) )
                $action = 'untrash-post';
@@ -567,6 +674,11 @@ function wp_ajax_delete_page( $action ) {
                wp_die( 0 );
 }
 
                wp_die( 0 );
 }
 
+/**
+ * Ajax handler to dim a comment.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_dim_comment() {
        $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
 
 function wp_ajax_dim_comment() {
        $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
 
@@ -604,6 +716,13 @@ function wp_ajax_dim_comment() {
        wp_die( 0 );
 }
 
        wp_die( 0 );
 }
 
+/**
+ * Ajax handler for deleting a link category.
+ *
+ * @since 3.1.0
+ *
+ * @param string $action Action to perform.
+ */
 function wp_ajax_add_link_category( $action ) {
        if ( empty( $action ) )
                $action = 'add-link-category';
 function wp_ajax_add_link_category( $action ) {
        if ( empty( $action ) )
                $action = 'add-link-category';
@@ -634,11 +753,15 @@ function wp_ajax_add_link_category( $action ) {
        $x->send();
 }
 
        $x->send();
 }
 
+/**
+ * Ajax handler to add a tag.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_add_tag() {
        global $wp_list_table;
 
        check_ajax_referer( 'add-tag', '_wpnonce_add-tag' );
 function wp_ajax_add_tag() {
        global $wp_list_table;
 
        check_ajax_referer( 'add-tag', '_wpnonce_add-tag' );
-       $post_type = !empty($_POST['post_type']) ? $_POST['post_type'] : 'post';
        $taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
        $tax = get_taxonomy($taxonomy);
 
        $taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
        $tax = get_taxonomy($taxonomy);
 
@@ -687,6 +810,11 @@ function wp_ajax_add_tag() {
        $x->send();
 }
 
        $x->send();
 }
 
+/**
+ * Ajax handler for getting a tagcloud.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_get_tagcloud() {
        if ( isset( $_POST['tax'] ) ) {
                $taxonomy = sanitize_key( $_POST['tax'] );
 function wp_ajax_get_tagcloud() {
        if ( isset( $_POST['tax'] ) ) {
                $taxonomy = sanitize_key( $_POST['tax'] );
@@ -723,6 +851,13 @@ function wp_ajax_get_tagcloud() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for getting comments.
+ *
+ * @since 3.1.0
+ *
+ * @param string $action Action to perform.
+ */
 function wp_ajax_get_comments( $action ) {
        global $wp_list_table, $post_id;
        if ( empty( $action ) )
 function wp_ajax_get_comments( $action ) {
        global $wp_list_table, $post_id;
        if ( empty( $action ) )
@@ -767,8 +902,15 @@ function wp_ajax_get_comments( $action ) {
        $x->send();
 }
 
        $x->send();
 }
 
+/**
+ * Ajax handler for replying to a comment.
+ *
+ * @since 3.1.0
+ *
+ * @param string $action Action to perform.
+ */
 function wp_ajax_replyto_comment( $action ) {
 function wp_ajax_replyto_comment( $action ) {
-       global $wp_list_table, $wpdb;
+       global $wp_list_table;
        if ( empty( $action ) )
                $action = 'replyto-comment';
 
        if ( empty( $action ) )
                $action = 'replyto-comment';
 
@@ -816,7 +958,7 @@ function wp_ajax_replyto_comment( $action ) {
        $comment_auto_approved = false;
        $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');
 
        $comment_auto_approved = false;
        $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');
 
-       // automatically approve parent comment
+       // Automatically approve parent comment.
        if ( !empty($_POST['approve_parent']) ) {
                $parent = get_comment( $comment_parent );
 
        if ( !empty($_POST['approve_parent']) ) {
                $parent = get_comment( $comment_parent );
 
@@ -861,6 +1003,11 @@ function wp_ajax_replyto_comment( $action ) {
        $x->send();
 }
 
        $x->send();
 }
 
+/**
+ * Ajax handler for editing a comment.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_edit_comment() {
        global $wp_list_table;
 
 function wp_ajax_edit_comment() {
        global $wp_list_table;
 
@@ -878,8 +1025,6 @@ function wp_ajax_edit_comment() {
        edit_comment();
 
        $position = ( isset($_POST['position']) && (int) $_POST['position']) ? (int) $_POST['position'] : '-1';
        edit_comment();
 
        $position = ( isset($_POST['position']) && (int) $_POST['position']) ? (int) $_POST['position'] : '-1';
-       $comments_status = isset($_POST['comments_listing']) ? $_POST['comments_listing'] : '';
-
        $checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
        $wp_list_table = _get_list_table( $checkbox ? 'WP_Comments_List_Table' : 'WP_Post_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
 
        $checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
        $wp_list_table = _get_list_table( $checkbox ? 'WP_Comments_List_Table' : 'WP_Post_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
 
@@ -903,6 +1048,11 @@ function wp_ajax_edit_comment() {
        $x->send();
 }
 
        $x->send();
 }
 
+/**
+ * Ajax handler for adding a menu item.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_add_menu_item() {
        check_ajax_referer( 'add-menu_item', 'menu-settings-column-nonce' );
 
 function wp_ajax_add_menu_item() {
        check_ajax_referer( 'add-menu_item', 'menu-settings-column-nonce' );
 
@@ -956,14 +1106,7 @@ function wp_ajax_add_menu_item() {
                }
        }
 
                }
        }
 
-       /**
-        * Filter the Walker class used when adding nav menu items.
-        *
-        * @since 3.4.0
-        *
-        * @param string $class   The walker class to use. Default 'Walker_Nav_Menu_Edit'.
-        * @param int    $menu_id The menu id, derived from $_POST['menu'].
-        */
+       /** This filter is documented in wp-admin/includes/nav-menu.php */
        $walker_class_name = apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $_POST['menu'] );
 
        if ( ! class_exists( $walker_class_name ) )
        $walker_class_name = apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $_POST['menu'] );
 
        if ( ! class_exists( $walker_class_name ) )
@@ -982,6 +1125,11 @@ function wp_ajax_add_menu_item() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for adding meta.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_add_meta() {
        check_ajax_referer( 'add-meta', '_ajax_nonce-add-meta' );
        $c = 0;
 function wp_ajax_add_meta() {
        check_ajax_referer( 'add-meta', '_ajax_nonce-add-meta' );
        $c = 0;
@@ -1065,6 +1213,13 @@ function wp_ajax_add_meta() {
        $x->send();
 }
 
        $x->send();
 }
 
+/**
+ * Ajax handler for adding a user.
+ *
+ * @since 3.1.0
+ *
+ * @param string $action Action to perform.
+ */
 function wp_ajax_add_user( $action ) {
        global $wp_list_table;
        if ( empty( $action ) )
 function wp_ajax_add_user( $action ) {
        global $wp_list_table;
        if ( empty( $action ) )
@@ -1100,6 +1255,11 @@ function wp_ajax_add_user( $action ) {
        $x->send();
 }
 
        $x->send();
 }
 
+/**
+ * Ajax handler for closed post boxes.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_closed_postboxes() {
        check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' );
        $closed = isset( $_POST['closed'] ) ? explode( ',', $_POST['closed']) : array();
 function wp_ajax_closed_postboxes() {
        check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' );
        $closed = isset( $_POST['closed'] ) ? explode( ',', $_POST['closed']) : array();
@@ -1127,10 +1287,14 @@ function wp_ajax_closed_postboxes() {
        wp_die( 1 );
 }
 
        wp_die( 1 );
 }
 
+/**
+ * Ajax handler for hidden columns.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_hidden_columns() {
        check_ajax_referer( 'screen-options-nonce', 'screenoptionnonce' );
 function wp_ajax_hidden_columns() {
        check_ajax_referer( 'screen-options-nonce', 'screenoptionnonce' );
-       $hidden = isset( $_POST['hidden'] ) ? $_POST['hidden'] : '';
-       $hidden = explode( ',', $_POST['hidden'] );
+       $hidden = explode( ',', isset( $_POST['hidden'] ) ? $_POST['hidden'] : '' );
        $page = isset( $_POST['page'] ) ? $_POST['page'] : '';
 
        if ( $page != sanitize_key( $page ) )
        $page = isset( $_POST['page'] ) ? $_POST['page'] : '';
 
        if ( $page != sanitize_key( $page ) )
@@ -1145,6 +1309,11 @@ function wp_ajax_hidden_columns() {
        wp_die( 1 );
 }
 
        wp_die( 1 );
 }
 
+/**
+ * Ajax handler for updating whether to display the welcome panel.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_update_welcome_panel() {
        check_ajax_referer( 'welcome-panel-nonce', 'welcomepanelnonce' );
 
 function wp_ajax_update_welcome_panel() {
        check_ajax_referer( 'welcome-panel-nonce', 'welcomepanelnonce' );
 
@@ -1156,6 +1325,11 @@ function wp_ajax_update_welcome_panel() {
        wp_die( 1 );
 }
 
        wp_die( 1 );
 }
 
+/**
+ * Ajax handler for retrieving menu meta boxes.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_menu_get_metabox() {
        if ( ! current_user_can( 'edit_theme_options' ) )
                wp_die( -1 );
 function wp_ajax_menu_get_metabox() {
        if ( ! current_user_can( 'edit_theme_options' ) )
                wp_die( -1 );
@@ -1174,14 +1348,8 @@ function wp_ajax_menu_get_metabox() {
 
        if ( ! empty( $_POST['item-object'] ) && isset( $items[$_POST['item-object']] ) ) {
                $menus_meta_box_object = $items[ $_POST['item-object'] ];
 
        if ( ! empty( $_POST['item-object'] ) && isset( $items[$_POST['item-object']] ) ) {
                $menus_meta_box_object = $items[ $_POST['item-object'] ];
-               /**
-                * Filter a nav menu meta box object.
-                *
-                * @since 3.0.0
-                *
-                * @param object $menus_meta_box_object A nav menu meta box object, such as Page,
-                *                                      Post, Category, Tag, etc.
-                */
+
+               /** This filter is documented in wp-admin/includes/nav-menu.php */
                $item = apply_filters( 'nav_menu_meta_box_object', $menus_meta_box_object );
                ob_start();
                call_user_func_array($callback, array(
                $item = apply_filters( 'nav_menu_meta_box_object', $menus_meta_box_object );
                ob_start();
                call_user_func_array($callback, array(
@@ -1205,6 +1373,11 @@ function wp_ajax_menu_get_metabox() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for internal linking.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_wp_link_ajax() {
        check_ajax_referer( 'internal-linking', '_ajax_linking_nonce' );
 
 function wp_ajax_wp_link_ajax() {
        check_ajax_referer( 'internal-linking', '_ajax_linking_nonce' );
 
@@ -1226,6 +1399,11 @@ function wp_ajax_wp_link_ajax() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for menu locations save.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_menu_locations_save() {
        if ( ! current_user_can( 'edit_theme_options' ) )
                wp_die( -1 );
 function wp_ajax_menu_locations_save() {
        if ( ! current_user_can( 'edit_theme_options' ) )
                wp_die( -1 );
@@ -1236,6 +1414,11 @@ function wp_ajax_menu_locations_save() {
        wp_die( 1 );
 }
 
        wp_die( 1 );
 }
 
+/**
+ * Ajax handler for saving the meta box order.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_meta_box_order() {
        check_ajax_referer( 'meta-box-order' );
        $order = isset( $_POST['order'] ) ? (array) $_POST['order'] : false;
 function wp_ajax_meta_box_order() {
        check_ajax_referer( 'meta-box-order' );
        $order = isset( $_POST['order'] ) ? (array) $_POST['order'] : false;
@@ -1261,6 +1444,11 @@ function wp_ajax_meta_box_order() {
        wp_die( 1 );
 }
 
        wp_die( 1 );
 }
 
+/**
+ * Ajax handler for menu quick searching.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_menu_quick_search() {
        if ( ! current_user_can( 'edit_theme_options' ) )
                wp_die( -1 );
 function wp_ajax_menu_quick_search() {
        if ( ! current_user_can( 'edit_theme_options' ) )
                wp_die( -1 );
@@ -1272,12 +1460,22 @@ function wp_ajax_menu_quick_search() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler to retrieve a permalink.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_get_permalink() {
        check_ajax_referer( 'getpermalink', 'getpermalinknonce' );
        $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
        wp_die( add_query_arg( array( 'preview' => 'true' ), get_permalink( $post_id ) ) );
 }
 
 function wp_ajax_get_permalink() {
        check_ajax_referer( 'getpermalink', 'getpermalinknonce' );
        $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
        wp_die( add_query_arg( array( 'preview' => 'true' ), get_permalink( $post_id ) ) );
 }
 
+/**
+ * Ajax handler to retrieve a sample permalink.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_sample_permalink() {
        check_ajax_referer( 'samplepermalink', 'samplepermalinknonce' );
        $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
 function wp_ajax_sample_permalink() {
        check_ajax_referer( 'samplepermalink', 'samplepermalinknonce' );
        $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
@@ -1286,6 +1484,11 @@ function wp_ajax_sample_permalink() {
        wp_die( get_sample_permalink_html( $post_id, $title, $slug ) );
 }
 
        wp_die( get_sample_permalink_html( $post_id, $title, $slug ) );
 }
 
+/**
+ * Ajax handler for quick edit saving for a post.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_inline_save() {
        global $wp_list_table;
 
 function wp_ajax_inline_save() {
        global $wp_list_table;
 
@@ -1312,18 +1515,20 @@ function wp_ajax_inline_save() {
        $data = &$_POST;
 
        $post = get_post( $post_ID, ARRAY_A );
        $data = &$_POST;
 
        $post = get_post( $post_ID, ARRAY_A );
-       $post = wp_slash($post); //since it is from db
+
+       // Since it's coming from the database.
+       $post = wp_slash($post);
 
        $data['content'] = $post['post_content'];
        $data['excerpt'] = $post['post_excerpt'];
 
 
        $data['content'] = $post['post_content'];
        $data['excerpt'] = $post['post_excerpt'];
 
-       // rename
+       // Rename.
        $data['user_ID'] = get_current_user_id();
 
        if ( isset($data['post_parent']) )
                $data['parent_id'] = $data['post_parent'];
 
        $data['user_ID'] = get_current_user_id();
 
        if ( isset($data['post_parent']) )
                $data['parent_id'] = $data['post_parent'];
 
-       // status
+       // Status.
        if ( isset($data['keep_private']) && 'private' == $data['keep_private'] )
                $data['post_status'] = 'private';
        else
        if ( isset($data['keep_private']) && 'private' == $data['keep_private'] )
                $data['post_status'] = 'private';
        else
@@ -1340,13 +1545,11 @@ function wp_ajax_inline_save() {
                $data['post_name'] = wp_unique_post_slug( $data['post_name'], $post['ID'], $post['post_status'], $post['post_type'], $post['post_parent'] );
        }
 
                $data['post_name'] = wp_unique_post_slug( $data['post_name'], $post['ID'], $post['post_status'], $post['post_type'], $post['post_parent'] );
        }
 
-       // update the post
+       // Update the post.
        edit_post();
 
        $wp_list_table = _get_list_table( 'WP_Posts_List_Table', array( 'screen' => $_POST['screen'] ) );
 
        edit_post();
 
        $wp_list_table = _get_list_table( 'WP_Posts_List_Table', array( 'screen' => $_POST['screen'] ) );
 
-       $mode = $_POST['post_view'];
-
        $level = 0;
        $request_post = array( get_post( $_POST['post_ID'] ) );
        $parent = $request_post[0]->post_parent;
        $level = 0;
        $request_post = array( get_post( $_POST['post_ID'] ) );
        $parent = $request_post[0]->post_parent;
@@ -1362,6 +1565,11 @@ function wp_ajax_inline_save() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for quick edit saving for a term.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_inline_save_tax() {
        global $wp_list_table;
 
 function wp_ajax_inline_save_tax() {
        global $wp_list_table;
 
@@ -1407,16 +1615,18 @@ function wp_ajax_inline_save_tax() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for finding posts.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_find_posts() {
 function wp_ajax_find_posts() {
-       global $wpdb;
-
        check_ajax_referer( 'find-posts' );
 
        $post_types = get_post_types( array( 'public' => true ), 'objects' );
        unset( $post_types['attachment'] );
 
        $s = wp_unslash( $_POST['ps'] );
        check_ajax_referer( 'find-posts' );
 
        $post_types = get_post_types( array( 'public' => true ), 'objects' );
        unset( $post_types['attachment'] );
 
        $s = wp_unslash( $_POST['ps'] );
-       $searchand = $search = '';
        $args = array(
                'post_type' => array_keys( $post_types ),
                'post_status' => 'any',
        $args = array(
                'post_type' => array_keys( $post_types ),
                'post_status' => 'any',
@@ -1427,8 +1637,9 @@ function wp_ajax_find_posts() {
 
        $posts = get_posts( $args );
 
 
        $posts = get_posts( $args );
 
-       if ( ! $posts )
-               wp_die( __('No items found.') );
+       if ( ! $posts ) {
+               wp_send_json_error( __( 'No items found.' ) );
+       }
 
        $html = '<table class="widefat"><thead><tr><th class="found-radio"><br /></th><th>'.__('Title').'</th><th class="no-break">'.__('Type').'</th><th class="no-break">'.__('Date').'</th><th class="no-break">'.__('Status').'</th></tr></thead><tbody>';
        $alt = '';
 
        $html = '<table class="widefat"><thead><tr><th class="found-radio"><br /></th><th>'.__('Title').'</th><th class="no-break">'.__('Type').'</th><th class="no-break">'.__('Date').'</th><th class="no-break">'.__('Status').'</th></tr></thead><tbody>';
        $alt = '';
@@ -1468,6 +1679,11 @@ function wp_ajax_find_posts() {
        wp_send_json_success( $html );
 }
 
        wp_send_json_success( $html );
 }
 
+/**
+ * Ajax handler for saving the widgets order.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_widgets_order() {
        check_ajax_referer( 'save-sidebar-widgets', 'savewidgets' );
 
 function wp_ajax_widgets_order() {
        check_ajax_referer( 'save-sidebar-widgets', 'savewidgets' );
 
@@ -1476,7 +1692,7 @@ function wp_ajax_widgets_order() {
 
        unset( $_POST['savewidgets'], $_POST['action'] );
 
 
        unset( $_POST['savewidgets'], $_POST['action'] );
 
-       // save widgets order for all sidebars
+       // Save widgets order for all sidebars.
        if ( is_array($_POST['sidebars']) ) {
                $sidebars = array();
                foreach ( $_POST['sidebars'] as $key => $val ) {
        if ( is_array($_POST['sidebars']) ) {
                $sidebars = array();
                foreach ( $_POST['sidebars'] as $key => $val ) {
@@ -1499,6 +1715,11 @@ function wp_ajax_widgets_order() {
        wp_die( -1 );
 }
 
        wp_die( -1 );
 }
 
+/**
+ * Ajax handler for saving a widget.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_save_widget() {
        global $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_widget_updates;
 
 function wp_ajax_save_widget() {
        global $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_widget_updates;
 
@@ -1536,7 +1757,7 @@ function wp_ajax_save_widget() {
        $sidebars = wp_get_sidebars_widgets();
        $sidebar = isset($sidebars[$sidebar_id]) ? $sidebars[$sidebar_id] : array();
 
        $sidebars = wp_get_sidebars_widgets();
        $sidebar = isset($sidebars[$sidebar_id]) ? $sidebars[$sidebar_id] : array();
 
-       // delete
+       // Delete.
        if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) {
 
                if ( !isset($wp_registered_widgets[$widget_id]) )
        if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) {
 
                if ( !isset($wp_registered_widgets[$widget_id]) )
@@ -1583,11 +1804,21 @@ function wp_ajax_save_widget() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for saving a widget.
+ *
+ * @since 3.9.0
+ */
 function wp_ajax_update_widget() {
        global $wp_customize;
        $wp_customize->widgets->wp_ajax_update_widget();
 }
 
 function wp_ajax_update_widget() {
        global $wp_customize;
        $wp_customize->widgets->wp_ajax_update_widget();
 }
 
+/**
+ * Ajax handler for uploading attachments
+ *
+ * @since 3.3.0
+ */
 function wp_ajax_upload_attachment() {
        check_ajax_referer( 'media-form' );
 
 function wp_ajax_upload_attachment() {
        check_ajax_referer( 'media-form' );
 
@@ -1653,6 +1884,11 @@ function wp_ajax_upload_attachment() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for image editing.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_image_editor() {
        $attachment_id = intval($_POST['postid']);
        if ( empty($attachment_id) || !current_user_can('edit_post', $attachment_id) )
 function wp_ajax_image_editor() {
        $attachment_id = intval($_POST['postid']);
        if ( empty($attachment_id) || !current_user_can('edit_post', $attachment_id) )
@@ -1680,6 +1916,11 @@ function wp_ajax_image_editor() {
        wp_die();
 }
 
        wp_die();
 }
 
+/**
+ * Ajax handler for setting the featured image.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_set_post_thumbnail() {
        $json = ! empty( $_REQUEST['json'] ); // New-style request
 
 function wp_ajax_set_post_thumbnail() {
        $json = ! empty( $_REQUEST['json'] ); // New-style request
 
@@ -1711,27 +1952,88 @@ function wp_ajax_set_post_thumbnail() {
        wp_die( 0 );
 }
 
        wp_die( 0 );
 }
 
+/**
+ * AJAX handler for setting the featured image for an attachment.
+ *
+ * @since 4.0.0
+ *
+ * @see set_post_thumbnail()
+ */
+function wp_ajax_set_attachment_thumbnail() {
+       if ( empty( $_POST['urls'] ) || ! is_array( $_POST['urls'] ) ) {
+               wp_send_json_error();
+       }
+
+       $thumbnail_id = (int) $_POST['thumbnail_id'];
+       if ( empty( $thumbnail_id ) ) {
+               wp_send_json_error();
+       }
+
+       $post_ids = array();
+       // For each URL, try to find its corresponding post ID.
+       foreach ( $_POST['urls'] as $url ) {
+               $post_id = attachment_url_to_postid( $url );
+               if ( ! empty( $post_id ) ) {
+                       $post_ids[] = $post_id;
+               }
+       }
+
+       if ( empty( $post_ids ) ) {
+               wp_send_json_error();
+       }
+
+       $success = 0;
+       // For each found attachment, set its thumbnail.
+       foreach ( $post_ids as $post_id ) {
+               if ( ! current_user_can( 'edit_post', $post_id ) ) {
+                       continue;
+               }
+
+               if ( set_post_thumbnail( $post_id, $thumbnail_id ) ) {
+                       $success++;
+               }
+       }
+
+       if ( 0 === $success ) {
+               wp_send_json_error();
+       } else {
+               wp_send_json_success();
+       }
+
+       wp_send_json_error();
+}
+
+/**
+ * Ajax handler for date formatting.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_date_format() {
        wp_die( date_i18n( sanitize_option( 'date_format', wp_unslash( $_POST['date'] ) ) ) );
 }
 
 function wp_ajax_date_format() {
        wp_die( date_i18n( sanitize_option( 'date_format', wp_unslash( $_POST['date'] ) ) ) );
 }
 
+/**
+ * Ajax handler for time formatting.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_time_format() {
        wp_die( date_i18n( sanitize_option( 'time_format', wp_unslash( $_POST['date'] ) ) ) );
 }
 
 function wp_ajax_time_format() {
        wp_die( date_i18n( sanitize_option( 'time_format', wp_unslash( $_POST['date'] ) ) ) );
 }
 
+/**
+ * Ajax handler for saving posts from the fullscreen editor.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_wp_fullscreen_save_post() {
        $post_id = isset( $_POST['post_ID'] ) ? (int) $_POST['post_ID'] : 0;
 
 function wp_ajax_wp_fullscreen_save_post() {
        $post_id = isset( $_POST['post_ID'] ) ? (int) $_POST['post_ID'] : 0;
 
-       $post = $post_type = null;
+       $post = null;
 
        if ( $post_id )
                $post = get_post( $post_id );
 
 
        if ( $post_id )
                $post = get_post( $post_id );
 
-       if ( $post )
-               $post_type = $post->post_type;
-       elseif ( isset( $_POST['post_type'] ) && post_type_exists( $_POST['post_type'] ) )
-               $post_type = $_POST['post_type'];
-
        check_ajax_referer('update-post_' . $post_id, '_wpnonce');
 
        $post_id = edit_post();
        check_ajax_referer('update-post_' . $post_id, '_wpnonce');
 
        $post_id = edit_post();
@@ -1758,6 +2060,11 @@ function wp_ajax_wp_fullscreen_save_post() {
        wp_send_json_success( array( 'last_edited' => $last_edited ) );
 }
 
        wp_send_json_success( array( 'last_edited' => $last_edited ) );
 }
 
+/**
+ * Ajax handler for removing a post lock.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_wp_remove_post_lock() {
        if ( empty( $_POST['post_ID'] ) || empty( $_POST['active_post_lock'] ) )
                wp_die( 0 );
 function wp_ajax_wp_remove_post_lock() {
        if ( empty( $_POST['post_ID'] ) || empty( $_POST['active_post_lock'] ) )
                wp_die( 0 );
@@ -1787,6 +2094,11 @@ function wp_ajax_wp_remove_post_lock() {
        wp_die( 1 );
 }
 
        wp_die( 1 );
 }
 
+/**
+ * Ajax handler for dismissing a WordPress pointer.
+ *
+ * @since 3.1.0
+ */
 function wp_ajax_dismiss_wp_pointer() {
        $pointer = $_POST['pointer'];
        if ( $pointer != sanitize_key( $pointer ) )
 function wp_ajax_dismiss_wp_pointer() {
        $pointer = $_POST['pointer'];
        if ( $pointer != sanitize_key( $pointer ) )
@@ -1807,7 +2119,7 @@ function wp_ajax_dismiss_wp_pointer() {
 }
 
 /**
 }
 
 /**
- * Get an attachment.
+ * Ajax handler for getting an attachment.
  *
  * @since 3.5.0
  */
  *
  * @since 3.5.0
  */
@@ -1834,7 +2146,7 @@ function wp_ajax_get_attachment() {
 }
 
 /**
 }
 
 /**
- * Query for attachments.
+ * Ajax handler for querying for attachments.
  *
  * @since 3.5.0
  */
  *
  * @since 3.5.0
  */
@@ -1845,11 +2157,18 @@ function wp_ajax_query_attachments() {
        $query = isset( $_REQUEST['query'] ) ? (array) $_REQUEST['query'] : array();
        $query = array_intersect_key( $query, array_flip( array(
                's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
        $query = isset( $_REQUEST['query'] ) ? (array) $_REQUEST['query'] : array();
        $query = array_intersect_key( $query, array_flip( array(
                's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
-               'post_parent', 'post__in', 'post__not_in',
+               'post_parent', 'post__in', 'post__not_in', 'year', 'monthnum'
        ) ) );
 
        $query['post_type'] = 'attachment';
        ) ) );
 
        $query['post_type'] = 'attachment';
-       $query['post_status'] = 'inherit';
+       if ( MEDIA_TRASH
+               && ! empty( $_REQUEST['query']['post_status'] )
+               && 'trash' === $_REQUEST['query']['post_status'] ) {
+               $query['post_status'] = 'trash';
+       } else {
+               $query['post_status'] = 'inherit';
+       }
+
        if ( current_user_can( get_post_type_object( 'attachment' )->cap->read_private_posts ) )
                $query['post_status'] .= ',private';
 
        if ( current_user_can( get_post_type_object( 'attachment' )->cap->read_private_posts ) )
                $query['post_status'] .= ',private';
 
@@ -1873,7 +2192,7 @@ function wp_ajax_query_attachments() {
 }
 
 /**
 }
 
 /**
- * Save attachment attributes.
+ * Ajax handler for saving attachment attributes.
  *
  * @since 3.5.0
  */
  *
  * @since 3.5.0
  */
@@ -1904,6 +2223,9 @@ function wp_ajax_save_attachment() {
        if ( isset( $changes['description'] ) )
                $post['post_content'] = $changes['description'];
 
        if ( isset( $changes['description'] ) )
                $post['post_content'] = $changes['description'];
 
+       if ( MEDIA_TRASH && isset( $changes['status'] ) )
+               $post['post_status'] = $changes['status'];
+
        if ( isset( $changes['alt'] ) ) {
                $alt = wp_unslash( $changes['alt'] );
                if ( $alt != get_post_meta( $id, '_wp_attachment_image_alt', true ) ) {
        if ( isset( $changes['alt'] ) ) {
                $alt = wp_unslash( $changes['alt'] );
                if ( $alt != get_post_meta( $id, '_wp_attachment_image_alt', true ) ) {
@@ -1912,12 +2234,36 @@ function wp_ajax_save_attachment() {
                }
        }
 
                }
        }
 
-       wp_update_post( $post );
+       if ( 0 === strpos( $post['post_mime_type'], 'audio/' ) ) {
+               $changed = false;
+               $id3data = wp_get_attachment_metadata( $post['ID'] );
+               if ( ! is_array( $id3data ) ) {
+                       $changed = true;
+                       $id3data = array();
+               }
+               foreach ( wp_get_attachment_id3_keys( (object) $post, 'edit' ) as $key => $label ) {
+                       if ( isset( $changes[ $key ] ) ) {
+                               $changed = true;
+                               $id3data[ $key ] = sanitize_text_field( wp_unslash( $changes[ $key ] ) );
+                       }
+               }
+
+               if ( $changed ) {
+                       wp_update_attachment_metadata( $id, $id3data );
+               }
+       }
+
+       if ( MEDIA_TRASH && isset( $changes['status'] ) && 'trash' === $changes['status'] ) {
+               wp_delete_post( $id );
+       } else {
+               wp_update_post( $post );
+       }
+
        wp_send_json_success();
 }
 
 /**
        wp_send_json_success();
 }
 
 /**
- * Save backwards compatible attachment attributes.
+ * Ajax handler for saving backwards compatible attachment attributes.
  *
  * @since 3.5.0
  */
  *
  * @since 3.5.0
  */
@@ -1963,6 +2309,11 @@ function wp_ajax_save_attachment_compat() {
        wp_send_json_success( $attachment );
 }
 
        wp_send_json_success( $attachment );
 }
 
+/**
+ * Ajax handler for saving the attachment order.
+ *
+ * @since 3.5.0
+ */
 function wp_ajax_save_attachment_order() {
        if ( ! isset( $_REQUEST['post_id'] ) )
                wp_send_json_error();
 function wp_ajax_save_attachment_order() {
        if ( ! isset( $_REQUEST['post_id'] ) )
                wp_send_json_error();
@@ -1980,8 +2331,6 @@ function wp_ajax_save_attachment_order() {
        if ( ! current_user_can( 'edit_post', $post_id ) )
                wp_send_json_error();
 
        if ( ! current_user_can( 'edit_post', $post_id ) )
                wp_send_json_error();
 
-       $post = get_post( $post_id, ARRAY_A );
-
        foreach ( $attachments as $attachment_id => $menu_order ) {
                if ( ! current_user_can( 'edit_post', $attachment_id ) )
                        continue;
        foreach ( $attachments as $attachment_id => $menu_order ) {
                if ( ! current_user_can( 'edit_post', $attachment_id ) )
                        continue;
@@ -1997,9 +2346,11 @@ function wp_ajax_save_attachment_order() {
 }
 
 /**
 }
 
 /**
+ * Ajax handler for sending an attachment to the editor.
+ *
  * Generates the HTML to send an attachment to the editor.
  * Generates the HTML to send an attachment to the editor.
- * Backwards compatible with the media_send_to_editor filter and the chain
- * of filters that follow.
+ * Backwards compatible with the media_send_to_editor filter
+ * and the chain of filters that follow.
  *
  * @since 3.5.0
  */
  *
  * @since 3.5.0
  */
@@ -2024,7 +2375,7 @@ function wp_ajax_send_attachment_to_editor() {
        }
 
        $rel = $url = '';
        }
 
        $rel = $url = '';
-       $html = $title = isset( $attachment['post_title'] ) ? $attachment['post_title'] : '';
+       $html = isset( $attachment['post_title'] ) ? $attachment['post_title'] : '';
        if ( ! empty( $attachment['url'] ) ) {
                $url = $attachment['url'];
                if ( strpos( $url, 'attachment_id') || get_attachment_link( $id ) == $url )
        if ( ! empty( $attachment['url'] ) ) {
                $url = $attachment['url'];
                if ( strpos( $url, 'attachment_id') || get_attachment_link( $id ) == $url )
@@ -2052,6 +2403,8 @@ function wp_ajax_send_attachment_to_editor() {
 }
 
 /**
 }
 
 /**
+ * Ajax handler for sending a link to the editor.
+ *
  * Generates the HTML to send a non-image embed link to the editor.
  *
  * Backwards compatible with the following filters:
  * Generates the HTML to send a non-image embed link to the editor.
  *
  * Backwards compatible with the following filters:
@@ -2062,6 +2415,8 @@ function wp_ajax_send_attachment_to_editor() {
  * @since 3.5.0
  */
 function wp_ajax_send_link_to_editor() {
  * @since 3.5.0
  */
 function wp_ajax_send_link_to_editor() {
+       global $post, $wp_embed;
+
        check_ajax_referer( 'media-send-to-editor', 'nonce' );
 
        if ( ! $src = wp_unslash( $_POST['src'] ) )
        check_ajax_referer( 'media-send-to-editor', 'nonce' );
 
        if ( ! $src = wp_unslash( $_POST['src'] ) )
@@ -2076,9 +2431,22 @@ function wp_ajax_send_link_to_editor() {
        if ( ! $title = trim( wp_unslash( $_POST['title'] ) ) )
                $title = wp_basename( $src );
 
        if ( ! $title = trim( wp_unslash( $_POST['title'] ) ) )
                $title = wp_basename( $src );
 
-       $html = '';
-       if ( $title )
+       $post = get_post( isset( $_POST['post_id'] ) ? $_POST['post_id'] : 0 );
+
+       // Ping WordPress for an embed.
+       $check_embed = $wp_embed->run_shortcode( '[embed]'. $src .'[/embed]' );
+
+       // Fallback that WordPress creates when no oEmbed was found.
+       $fallback = $wp_embed->maybe_make_link( $src );
+
+       if ( $check_embed !== $fallback ) {
+               // TinyMCE view for [embed] will parse this
+               $html = '[embed]' . $src . '[/embed]';
+       } elseif ( $title ) {
                $html = '<a href="' . esc_url( $src ) . '">' . $title . '</a>';
                $html = '<a href="' . esc_url( $src ) . '">' . $title . '</a>';
+       } else {
+               $html = '';
+       }
 
        // Figure out what filter to run:
        $type = 'file';
 
        // Figure out what filter to run:
        $type = 'file';
@@ -2093,9 +2461,11 @@ function wp_ajax_send_link_to_editor() {
 }
 
 /**
 }
 
 /**
- * Heartbeat API (experimental)
+ * Ajax handler for the Heartbeat API.
  *
  * Runs when the user is logged in.
  *
  * Runs when the user is logged in.
+ *
+ * @since 3.6.0
  */
 function wp_ajax_heartbeat() {
        if ( empty( $_POST['_nonce'] ) )
  */
 function wp_ajax_heartbeat() {
        if ( empty( $_POST['_nonce'] ) )
@@ -2109,7 +2479,7 @@ function wp_ajax_heartbeat() {
                wp_send_json($response);
        }
 
                wp_send_json($response);
        }
 
-       // screen_id is the same as $current_screen->id and the JS global 'pagenow'
+       // screen_id is the same as $current_screen->id and the JS global 'pagenow'.
        if ( ! empty($_POST['screen_id']) )
                $screen_id = sanitize_key($_POST['screen_id']);
        else
        if ( ! empty($_POST['screen_id']) )
                $screen_id = sanitize_key($_POST['screen_id']);
        else
@@ -2158,6 +2528,11 @@ function wp_ajax_heartbeat() {
        wp_send_json($response);
 }
 
        wp_send_json($response);
 }
 
+/**
+ * Ajax handler for getting revision diffs.
+ *
+ * @since 3.6.0
+ */
 function wp_ajax_get_revision_diffs() {
        require ABSPATH . 'wp-admin/includes/revision.php';
 
 function wp_ajax_get_revision_diffs() {
        require ABSPATH . 'wp-admin/includes/revision.php';
 
@@ -2186,9 +2561,10 @@ function wp_ajax_get_revision_diffs() {
 }
 
 /**
 }
 
 /**
- * Auto-save the selected color scheme for a user's own profile.
+ * Ajax handler for auto-saving the selected color scheme for
+ * a user's own profile.
  *
  *
- * @since  3.8.0
+ * @since 3.8.0
  */
 function wp_ajax_save_user_color_scheme() {
        global $_wp_admin_css_colors;
  */
 function wp_ajax_save_user_color_scheme() {
        global $_wp_admin_css_colors;
@@ -2206,7 +2582,7 @@ function wp_ajax_save_user_color_scheme() {
 }
 
 /**
 }
 
 /**
- * Get themes from themes_api().
+ * Ajax handler for getting themes from themes_api().
  *
  * @since 3.9.0
  */
  *
  * @since 3.9.0
  */
@@ -2245,7 +2621,141 @@ function wp_ajax_query_themes() {
                $theme->version     = wp_kses( $theme->version, $themes_allowedtags );
                $theme->description = wp_kses( $theme->description, $themes_allowedtags );
                $theme->num_ratings = sprintf( _n( '(based on %s rating)', '(based on %s ratings)', $theme->num_ratings ), number_format_i18n( $theme->num_ratings ) );
                $theme->version     = wp_kses( $theme->version, $themes_allowedtags );
                $theme->description = wp_kses( $theme->description, $themes_allowedtags );
                $theme->num_ratings = sprintf( _n( '(based on %s rating)', '(based on %s ratings)', $theme->num_ratings ), number_format_i18n( $theme->num_ratings ) );
+               $theme->preview_url = set_url_scheme( $theme->preview_url );
        }
 
        wp_send_json_success( $api );
 }
        }
 
        wp_send_json_success( $api );
 }
+
+/**
+ * Apply [embed] AJAX handlers to a string.
+ *
+ * @since 4.0.0
+ *
+ * @global WP_Post  $post     Global $post.
+ * @global WP_Embed $wp_embed Embed API instance.
+ */
+function wp_ajax_parse_embed() {
+       global $post, $wp_embed;
+
+       if ( ! $post = get_post( (int) $_POST['post_ID'] ) ) {
+               wp_send_json_error();
+       }
+
+       if ( empty( $_POST['shortcode'] ) || ! current_user_can( 'edit_post', $post->ID ) ) {
+               wp_send_json_error();
+       }
+
+       $shortcode = wp_unslash( $_POST['shortcode'] );
+       $url = str_replace( '[embed]', '', str_replace( '[/embed]', '', $shortcode ) );
+       $parsed = false;
+       setup_postdata( $post );
+
+       $wp_embed->return_false_on_fail = true;
+
+       if ( is_ssl() && preg_match( '%^\\[embed[^\\]]*\\]http://%i', $shortcode ) ) {
+               // Admin is ssl and the user pasted non-ssl URL.
+               // Check if the provider supports ssl embeds and use that for the preview.
+               $ssl_shortcode = preg_replace( '%^(\\[embed[^\\]]*\\])http://%i', '$1https://', $shortcode );
+               $parsed = $wp_embed->run_shortcode( $ssl_shortcode );
+
+               if ( ! $parsed ) {
+                       $no_ssl_support = true;
+               }
+       }
+
+       if ( ! $parsed ) {
+               $parsed = $wp_embed->run_shortcode( $shortcode );
+       }
+
+       if ( ! $parsed ) {
+               wp_send_json_error( array(
+                       'type' => 'not-embeddable',
+                       'message' => sprintf( __( '%s failed to embed.' ), '<code>' . esc_html( $url ) . '</code>' ),
+               ) );
+       }
+
+       if ( has_shortcode( $parsed, 'audio' ) || has_shortcode( $parsed, 'video' ) ) {
+               $styles = '';
+               $mce_styles = wpview_media_sandbox_styles();
+               foreach ( $mce_styles as $style ) {
+                       $styles .= sprintf( '<link rel="stylesheet" href="%s"/>', $style );
+               }
+
+               $html = do_shortcode( $parsed );
+
+               global $wp_scripts;
+               if ( ! empty( $wp_scripts ) ) {
+                       $wp_scripts->done = array();
+               }
+               ob_start();
+               wp_print_scripts( 'wp-mediaelement' );
+               $scripts = ob_get_clean();
+
+               $parsed = $styles . $html . $scripts;
+       }
+
+
+       if ( ! empty( $no_ssl_support ) || ( is_ssl() && ( preg_match( '%<(iframe|script|embed) [^>]*src="http://%', $parsed ) ||
+               preg_match( '%<link [^>]*href="http://%', $parsed ) ) ) ) {
+               // Admin is ssl and the embed is not. Iframes, scripts, and other "active content" will be blocked.
+               wp_send_json_error( array(
+                       'type' => 'not-ssl',
+                       'message' => sprintf( __( 'Preview not available. %s cannot be embedded securely.' ), '<code>' . esc_html( $url ) . '</code>' ),
+               ) );
+       }
+
+       wp_send_json_success( array(
+               'body' => $parsed
+       ) );
+}
+
+function wp_ajax_parse_media_shortcode() {
+       global $post, $wp_scripts;
+
+       if ( ! $post = get_post( (int) $_POST['post_ID'] ) ) {
+               wp_send_json_error();
+       }
+
+       if ( empty( $_POST['shortcode'] ) || ! current_user_can( 'edit_post', $post->ID ) ) {
+               wp_send_json_error();
+       }
+
+       setup_postdata( $post );
+       $shortcode = do_shortcode( wp_unslash( $_POST['shortcode'] ) );
+
+       if ( empty( $shortcode ) ) {
+               wp_send_json_error( array(
+                       'type' => 'no-items',
+                       'message' => __( 'No items found.' ),
+               ) );
+       }
+
+       $head = '';
+       $styles = wpview_media_sandbox_styles();
+
+       foreach ( $styles as $style ) {
+               $head .= '<link type="text/css" rel="stylesheet" href="' . $style . '">';
+       }
+
+       if ( ! empty( $wp_scripts ) ) {
+               $wp_scripts->done = array();
+       }
+
+       ob_start();
+
+       echo $shortcode;
+
+       if ( 'playlist' === $_REQUEST['type'] ) {
+               wp_underscore_playlist_templates();
+
+               wp_print_scripts( 'wp-playlist' );
+       } else {
+               wp_print_scripts( 'wp-mediaelement' );
+       }
+
+       wp_send_json_success( array(
+               'head' => $head,
+               'body' => ob_get_clean()
+       ) );
+}
index 33785964183d5068ab970e3d75cd1a333f808073..43ccd418cfd1237f945ed1e15cbf8b4fbd209132 100644 (file)
@@ -146,15 +146,17 @@ function wp_insert_link( $linkdata, $wp_error = false ) {
 
        $defaults = array( 'link_id' => 0, 'link_name' => '', 'link_url' => '', 'link_rating' => 0 );
 
 
        $defaults = array( 'link_id' => 0, 'link_name' => '', 'link_url' => '', 'link_rating' => 0 );
 
-       $linkdata = wp_parse_args( $linkdata, $defaults );
-       $linkdata = sanitize_bookmark( $linkdata, 'db' );
+       $args = wp_parse_args( $linkdata, $defaults );
+       $r = wp_unslash( sanitize_bookmark( $args, 'db' ) );
 
 
-       extract( wp_unslash( $linkdata ), EXTR_SKIP );
+       $link_id   = $r['link_id'];
+       $link_name = $r['link_name'];
+       $link_url  = $r['link_url'];
 
        $update = false;
 
        $update = false;
-
-       if ( !empty( $link_id ) )
+       if ( ! empty( $link_id ) ) {
                $update = true;
                $update = true;
+       }
 
        if ( trim( $link_name ) == '' ) {
                if ( trim( $link_url ) != '' ) {
 
        if ( trim( $link_name ) == '' ) {
                if ( trim( $link_url ) != '' ) {
@@ -164,54 +166,41 @@ function wp_insert_link( $linkdata, $wp_error = false ) {
                }
        }
 
                }
        }
 
-       if ( trim( $link_url ) == '' )
+       if ( trim( $link_url ) == '' ) {
                return 0;
                return 0;
+       }
 
 
-       if ( empty( $link_rating ) )
-               $link_rating = 0;
-
-       if ( empty( $link_image ) )
-               $link_image = '';
-
-       if ( empty( $link_target ) )
-               $link_target = '';
-
-       if ( empty( $link_visible ) )
-               $link_visible = 'Y';
-
-       if ( empty( $link_owner ) )
-               $link_owner = get_current_user_id();
-
-       if ( empty( $link_notes ) )
-               $link_notes = '';
-
-       if ( empty( $link_description ) )
-               $link_description = '';
-
-       if ( empty( $link_rss ) )
-               $link_rss = '';
-
-       if ( empty( $link_rel ) )
-               $link_rel = '';
+       $link_rating      = ( ! empty( $r['link_rating'] ) ) ? $r['link_rating'] : 0;
+       $link_image       = ( ! empty( $r['link_image'] ) ) ? $r['link_image'] : '';
+       $link_target      = ( ! empty( $r['link_target'] ) ) ? $r['link_target'] : '';
+       $link_visible     = ( ! empty( $r['link_visible'] ) ) ? $r['link_visible'] : 'Y';
+       $link_owner       = ( ! empty( $r['link_owner'] ) ) ? $r['link_owner'] : get_current_user_id();
+       $link_notes       = ( ! empty( $r['link_notes'] ) ) ? $r['link_notes'] : '';
+       $link_description = ( ! empty( $r['link_description'] ) ) ? $r['link_description'] : '';
+       $link_rss         = ( ! empty( $r['link_rss'] ) ) ? $r['link_rss'] : '';
+       $link_rel         = ( ! empty( $r['link_rel'] ) ) ? $r['link_rel'] : '';
+       $link_category    = ( ! empty( $r['link_category'] ) ) ? $r['link_category'] : array();
 
        // Make sure we set a valid category
 
        // Make sure we set a valid category
-       if ( ! isset( $link_category ) || 0 == count( $link_category ) || !is_array( $link_category ) ) {
+       if ( ! is_array( $link_category ) || 0 == count( $link_category ) ) {
                $link_category = array( get_option( 'default_link_category' ) );
        }
 
        if ( $update ) {
                $link_category = array( get_option( 'default_link_category' ) );
        }
 
        if ( $update ) {
-               if ( false === $wpdb->update( $wpdb->links, compact('link_url', 'link_name', 'link_image', 'link_target', 'link_description', 'link_visible', 'link_rating', 'link_rel', 'link_notes', 'link_rss'), compact('link_id') ) ) {
-                       if ( $wp_error )
+               if ( false === $wpdb->update( $wpdb->links, compact( 'link_url', 'link_name', 'link_image', 'link_target', 'link_description', 'link_visible', 'link_rating', 'link_rel', 'link_notes', 'link_rss' ), compact( 'link_id' ) ) ) {
+                       if ( $wp_error ) {
                                return new WP_Error( 'db_update_error', __( 'Could not update link in the database' ), $wpdb->last_error );
                                return new WP_Error( 'db_update_error', __( 'Could not update link in the database' ), $wpdb->last_error );
-                       else
+                       } else {
                                return 0;
                                return 0;
+                       }
                }
        } else {
                }
        } else {
-               if ( false === $wpdb->insert( $wpdb->links, compact('link_url', 'link_name', 'link_image', 'link_target', 'link_description', 'link_visible', 'link_owner', 'link_rating', 'link_rel', 'link_notes', 'link_rss') ) ) {
-                       if ( $wp_error )
+               if ( false === $wpdb->insert( $wpdb->links, compact( 'link_url', 'link_name', 'link_image', 'link_target', 'link_description', 'link_visible', 'link_owner', 'link_rating', 'link_rel', 'link_notes', 'link_rss' ) ) ) {
+                       if ( $wp_error ) {
                                return new WP_Error( 'db_insert_error', __( 'Could not insert link into the database' ), $wpdb->last_error );
                                return new WP_Error( 'db_insert_error', __( 'Could not insert link into the database' ), $wpdb->last_error );
-                       else
+                       } else {
                                return 0;
                                return 0;
+                       }
                }
                $link_id = (int) $wpdb->insert_id;
        }
                }
                $link_id = (int) $wpdb->insert_id;
        }
index c489efee7b43c987a7b29a361f046c54b9b62d54..5803b1dca0d135296bbef87b5160ebb3e9570495 100644 (file)
  */
 class WP_Comments_List_Table extends WP_List_Table {
 
  */
 class WP_Comments_List_Table extends WP_List_Table {
 
-       var $checkbox = true;
-
-       var $pending_count = array();
-
-       function __construct( $args = array() ) {
+       public $checkbox = true;
+
+       public $pending_count = array();
+
+       /**
+        * Constructor.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
+        */
+       public function __construct( $args = array() ) {
                global $post_id;
 
                $post_id = isset( $_REQUEST['p'] ) ? absint( $_REQUEST['p'] ) : 0;
                global $post_id;
 
                $post_id = isset( $_REQUEST['p'] ) ? absint( $_REQUEST['p'] ) : 0;
@@ -37,11 +47,11 @@ class WP_Comments_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                return current_user_can('edit_posts');
        }
 
                return current_user_can('edit_posts');
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                global $post_id, $comment_status, $search, $comment_type;
 
                $comment_status = isset( $_REQUEST['comment_status'] ) ? $_REQUEST['comment_status'] : 'all';
                global $post_id, $comment_status, $search, $comment_type;
 
                $comment_status = isset( $_REQUEST['comment_status'] ) ? $_REQUEST['comment_status'] : 'all';
@@ -125,7 +135,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function get_per_page( $comment_status = 'all' ) {
+       public function get_per_page( $comment_status = 'all' ) {
                $comments_per_page = $this->get_items_per_page( 'edit_comments_per_page' );
                /**
                 * Filter the number of comments listed per page in the comments list table.
                $comments_per_page = $this->get_items_per_page( 'edit_comments_per_page' );
                /**
                 * Filter the number of comments listed per page in the comments list table.
@@ -139,7 +149,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                return $comments_per_page;
        }
 
                return $comments_per_page;
        }
 
-       function no_items() {
+       public function no_items() {
                global $comment_status;
 
                if ( 'moderated' == $comment_status )
                global $comment_status;
 
                if ( 'moderated' == $comment_status )
@@ -148,7 +158,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                        _e( 'No comments found.' );
        }
 
                        _e( 'No comments found.' );
        }
 
-       function get_views() {
+       protected function get_views() {
                global $post_id, $comment_status, $comment_type;
 
                $status_links = array();
                global $post_id, $comment_status, $comment_type;
 
                $status_links = array();
@@ -201,7 +211,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                return $status_links;
        }
 
                return $status_links;
        }
 
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                global $comment_status;
 
                $actions = array();
                global $comment_status;
 
                $actions = array();
@@ -209,7 +219,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                        $actions['unapprove'] = __( 'Unapprove' );
                if ( in_array( $comment_status, array( 'all', 'moderated' ) ) )
                        $actions['approve'] = __( 'Approve' );
                        $actions['unapprove'] = __( 'Unapprove' );
                if ( in_array( $comment_status, array( 'all', 'moderated' ) ) )
                        $actions['approve'] = __( 'Approve' );
-               if ( in_array( $comment_status, array( 'all', 'moderated', 'approved' ) ) )
+               if ( in_array( $comment_status, array( 'all', 'moderated', 'approved', 'trash' ) ) )
                        $actions['spam'] = _x( 'Mark as Spam', 'comment' );
 
                if ( 'trash' == $comment_status )
                        $actions['spam'] = _x( 'Mark as Spam', 'comment' );
 
                if ( 'trash' == $comment_status )
@@ -225,7 +235,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                return $actions;
        }
 
                return $actions;
        }
 
-       function extra_tablenav( $which ) {
+       protected function extra_tablenav( $which ) {
                global $comment_status, $comment_type;
 ?>
                <div class="alignleft actions">
                global $comment_status, $comment_type;
 ?>
                <div class="alignleft actions">
@@ -248,7 +258,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                                ) );
 
                                foreach ( $comment_types as $type => $label )
                                ) );
 
                                foreach ( $comment_types as $type => $label )
-                                       echo "\t<option value='" . esc_attr( $type ) . "'" . selected( $comment_type, $type, false ) . ">$label</option>\n";
+                                       echo "\t" . '<option value="' . esc_attr( $type ) . '"' . selected( $comment_type, $type, false ) . ">$label</option>\n";
                        ?>
                        </select>
 <?php
                        ?>
                        </select>
 <?php
@@ -258,7 +268,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                         * @since 3.5.0
                         */
                        do_action( 'restrict_manage_comments' );
                         * @since 3.5.0
                         */
                        do_action( 'restrict_manage_comments' );
-                       submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
+                       submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
                }
 
                if ( ( 'spam' == $comment_status || 'trash' == $comment_status ) && current_user_can( 'moderate_comments' ) ) {
                }
 
                if ( ( 'spam' == $comment_status || 'trash' == $comment_status ) && current_user_can( 'moderate_comments' ) ) {
@@ -277,14 +287,14 @@ class WP_Comments_List_Table extends WP_List_Table {
                echo '</div>';
        }
 
                echo '</div>';
        }
 
-       function current_action() {
+       public function current_action() {
                if ( isset( $_REQUEST['delete_all'] ) || isset( $_REQUEST['delete_all2'] ) )
                        return 'delete_all';
 
                return parent::current_action();
        }
 
                if ( isset( $_REQUEST['delete_all'] ) || isset( $_REQUEST['delete_all2'] ) )
                        return 'delete_all';
 
                return parent::current_action();
        }
 
-       function get_columns() {
+       public function get_columns() {
                global $post_id;
 
                $columns = array();
                global $post_id;
 
                $columns = array();
@@ -301,16 +311,14 @@ class WP_Comments_List_Table extends WP_List_Table {
                return $columns;
        }
 
                return $columns;
        }
 
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array(
                        'author'   => 'comment_author',
                        'response' => 'comment_post_ID'
                );
        }
 
                return array(
                        'author'   => 'comment_author',
                        'response' => 'comment_post_ID'
                );
        }
 
-       function display() {
-               extract( $this->_args );
-
+       public function display() {
                wp_nonce_field( "fetch-list-" . get_class( $this ), '_ajax_fetch_list_nonce' );
 
                $this->display_tablenav( 'top' );
                wp_nonce_field( "fetch-list-" . get_class( $this ), '_ajax_fetch_list_nonce' );
 
                $this->display_tablenav( 'top' );
@@ -342,7 +350,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                $this->display_tablenav( 'bottom' );
        }
 
                $this->display_tablenav( 'bottom' );
        }
 
-       function single_row( $a_comment ) {
+       public function single_row( $a_comment ) {
                global $post, $comment;
 
                $comment = $a_comment;
                global $post, $comment;
 
                $comment = $a_comment;
@@ -358,7 +366,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                echo "</tr>\n";
        }
 
                echo "</tr>\n";
        }
 
-       function column_cb( $comment ) {
+       public function column_cb( $comment ) {
                if ( $this->user_can ) { ?>
                <label class="screen-reader-text" for="cb-select-<?php echo $comment->comment_ID; ?>"><?php _e( 'Select comment' ); ?></label>
                <input id="cb-select-<?php echo $comment->comment_ID; ?>" type="checkbox" name="delete_comments[]" value="<?php echo $comment->comment_ID; ?>" />
                if ( $this->user_can ) { ?>
                <label class="screen-reader-text" for="cb-select-<?php echo $comment->comment_ID; ?>"><?php _e( 'Select comment' ); ?></label>
                <input id="cb-select-<?php echo $comment->comment_ID; ?>" type="checkbox" name="delete_comments[]" value="<?php echo $comment->comment_ID; ?>" />
@@ -366,7 +374,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                }
        }
 
                }
        }
 
-       function column_comment( $comment ) {
+       public function column_comment( $comment ) {
                global $comment_status;
                $post = get_post();
 
                global $comment_status;
                $post = get_post();
 
@@ -426,7 +434,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                }
 
                if ( $user_can ) {
                }
 
                if ( $user_can ) {
-                       // preorder it: Approve | Reply | Quick Edit | Edit | Spam | Trash
+                       // Preorder it: Approve | Reply | Quick Edit | Edit | Spam | Trash.
                        $actions = array(
                                'approve' => '', 'unapprove' => '',
                                'reply' => '',
                        $actions = array(
                                'approve' => '', 'unapprove' => '',
                                'reply' => '',
@@ -436,7 +444,8 @@ class WP_Comments_List_Table extends WP_List_Table {
                                'trash' => '', 'untrash' => '', 'delete' => ''
                        );
 
                                'trash' => '', 'untrash' => '', 'delete' => ''
                        );
 
-                       if ( $comment_status && 'all' != $comment_status ) { // not looking at all comments
+                       // Not looking at all comments.
+                       if ( $comment_status && 'all' != $comment_status ) {
                                if ( 'approved' == $the_comment_status )
                                        $actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=unapproved' class='vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
                                else if ( 'unapproved' == $the_comment_status )
                                if ( 'approved' == $the_comment_status )
                                        $actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=unapproved' class='vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
                                else if ( 'unapproved' == $the_comment_status )
@@ -446,11 +455,13 @@ class WP_Comments_List_Table extends WP_List_Table {
                                $actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
                        }
 
                                $actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
                        }
 
-                       if ( 'spam' != $the_comment_status && 'trash' != $the_comment_status ) {
+                       if ( 'spam' != $the_comment_status ) {
                                $actions['spam'] = "<a href='$spam_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::spam=1' class='vim-s vim-destructive' title='" . esc_attr__( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>';
                        } elseif ( 'spam' == $the_comment_status ) {
                                $actions['unspam'] = "<a href='$unspam_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:66cc66:unspam=1' class='vim-z vim-destructive'>" . _x( 'Not Spam', 'comment' ) . '</a>';
                                $actions['spam'] = "<a href='$spam_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::spam=1' class='vim-s vim-destructive' title='" . esc_attr__( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>';
                        } elseif ( 'spam' == $the_comment_status ) {
                                $actions['unspam'] = "<a href='$unspam_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:66cc66:unspam=1' class='vim-z vim-destructive'>" . _x( 'Not Spam', 'comment' ) . '</a>';
-                       } elseif ( 'trash' == $the_comment_status ) {
+                       }
+
+                       if ( 'trash' == $the_comment_status ) {
                                $actions['untrash'] = "<a href='$untrash_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:66cc66:untrash=1' class='vim-z vim-destructive'>" . __( 'Restore' ) . '</a>';
                        }
 
                                $actions['untrash'] = "<a href='$untrash_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:66cc66:untrash=1' class='vim-z vim-destructive'>" . __( 'Restore' ) . '</a>';
                        }
 
@@ -462,8 +473,12 @@ class WP_Comments_List_Table extends WP_List_Table {
 
                        if ( 'spam' != $the_comment_status && 'trash' != $the_comment_status ) {
                                $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__( 'Edit comment' ) . "'>". __( 'Edit' ) . '</a>';
 
                        if ( 'spam' != $the_comment_status && 'trash' != $the_comment_status ) {
                                $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__( 'Edit comment' ) . "'>". __( 'Edit' ) . '</a>';
-                               $actions['quickedit'] = '<a onclick="window.commentReply && commentReply.open( \''.$comment->comment_ID.'\',\''.$post->ID.'\',\'edit\' );return false;" class="vim-q" title="'.esc_attr__( 'Quick Edit' ).'" href="#">' . __( 'Quick&nbsp;Edit' ) . '</a>';
-                               $actions['reply'] = '<a onclick="window.commentReply && commentReply.open( \''.$comment->comment_ID.'\',\''.$post->ID.'\' );return false;" class="vim-r" title="'.esc_attr__( 'Reply to this comment' ).'" href="#">' . __( 'Reply' ) . '</a>';
+
+                               $format = '<a data-comment-id="%d" data-post-id="%d" data-action="%s" class="%s" title="%s" href="#">%s</a>';
+
+                               $actions['quickedit'] = sprintf( $format, $comment->comment_ID, $post->ID, 'edit', 'vim-q comment-inline', esc_attr__( 'Quick Edit' ), __( 'Quick Edit' ) );
+
+                               $actions['reply'] = sprintf( $format, $comment->comment_ID, $post->ID, 'replyto', 'vim-r comment-inline', esc_attr__( 'Reply to this comment' ), __( 'Reply' ) );
                        }
 
                        /** This filter is documented in wp-admin/includes/dashboard.php */
                        }
 
                        /** This filter is documented in wp-admin/includes/dashboard.php */
@@ -491,7 +506,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                }
        }
 
                }
        }
 
-       function column_author( $comment ) {
+       public function column_author( $comment ) {
                global $comment_status;
 
                $author_url = get_comment_author_url();
                global $comment_status;
 
                $author_url = get_comment_author_url();
@@ -521,11 +536,11 @@ class WP_Comments_List_Table extends WP_List_Table {
                }
        }
 
                }
        }
 
-       function column_date( $comment ) {
+       public function column_date() {
                return get_comment_date( __( 'Y/m/d \a\t g:ia' ) );
        }
 
                return get_comment_date( __( 'Y/m/d \a\t g:ia' ) );
        }
 
-       function column_response( $comment ) {
+       public function column_response() {
                $post = get_post();
 
                if ( isset( $this->pending_count[$post->ID] ) ) {
                $post = get_post();
 
                if ( isset( $this->pending_count[$post->ID] ) ) {
@@ -553,7 +568,7 @@ class WP_Comments_List_Table extends WP_List_Table {
                        echo $thumb;
        }
 
                        echo $thumb;
        }
 
-       function column_default( $comment, $column_name ) {
+       public function column_default( $comment, $column_name ) {
                /**
                 * Fires when the default column output is displayed for a single row.
                 *
                /**
                 * Fires when the default column output is displayed for a single row.
                 *
@@ -578,7 +593,7 @@ class WP_Comments_List_Table extends WP_List_Table {
  */
 class WP_Post_Comments_List_Table extends WP_Comments_List_Table {
 
  */
 class WP_Post_Comments_List_Table extends WP_Comments_List_Table {
 
-       function get_column_info() {
+       protected function get_column_info() {
                $this->_column_headers = array(
                        array(
                        'author'   => __( 'Author' ),
                $this->_column_headers = array(
                        array(
                        'author'   => __( 'Author' ),
@@ -591,26 +606,31 @@ class WP_Post_Comments_List_Table extends WP_Comments_List_Table {
                return $this->_column_headers;
        }
 
                return $this->_column_headers;
        }
 
-       function get_table_classes() {
+       protected function get_table_classes() {
                $classes = parent::get_table_classes();
                $classes[] = 'comments-box';
                return $classes;
        }
 
                $classes = parent::get_table_classes();
                $classes[] = 'comments-box';
                return $classes;
        }
 
-       function display( $output_empty = false ) {
-               extract( $this->_args );
+       public function display( $output_empty = false ) {
+               $singular = $this->_args['singular'];
 
                wp_nonce_field( "fetch-list-" . get_class( $this ), '_ajax_fetch_list_nonce' );
 ?>
 <table class="<?php echo implode( ' ', $this->get_table_classes() ); ?>" style="display:none;">
 
                wp_nonce_field( "fetch-list-" . get_class( $this ), '_ajax_fetch_list_nonce' );
 ?>
 <table class="<?php echo implode( ' ', $this->get_table_classes() ); ?>" style="display:none;">
-       <tbody id="the-comment-list"<?php if ( $singular ) echo " data-wp-lists='list:$singular'"; ?>>
-               <?php if ( ! $output_empty ) $this->display_rows_or_placeholder(); ?>
+       <tbody id="the-comment-list"<?php
+               if ( $singular ) {
+                       echo " data-wp-lists='list:$singular'";
+               } ?>>
+               <?php if ( ! $output_empty ) {
+                       $this->display_rows_or_placeholder();
+               } ?>
        </tbody>
 </table>
 <?php
        }
 
        </tbody>
 </table>
 <?php
        }
 
-       function get_per_page( $comment_status = false ) {
+       public function get_per_page( $comment_status = false ) {
                return 10;
        }
 }
                return 10;
        }
 }
index c471b54fda099afaa28959c75ad658582936d8b3..4630f710ea7cda4e3b2d7a2c590f792889c1192e 100644 (file)
@@ -19,7 +19,7 @@ class WP_Filesystem_Base {
         * @since 2.5.0
         * @var bool
         */
         * @since 2.5.0
         * @var bool
         */
-       var $verbose = false;
+       public $verbose = false;
 
        /**
         * Cached list of local filepaths to mapped remote filepaths.
 
        /**
         * Cached list of local filepaths to mapped remote filepaths.
@@ -28,7 +28,7 @@ class WP_Filesystem_Base {
         * @since 2.7.0
         * @var array
         */
         * @since 2.7.0
         * @var array
         */
-       var $cache = array();
+       private $cache = array();
 
        /**
         * The Access method of the current connection, Set automatically.
 
        /**
         * The Access method of the current connection, Set automatically.
@@ -37,12 +37,59 @@ class WP_Filesystem_Base {
         * @since 2.5.0
         * @var string
         */
         * @since 2.5.0
         * @var string
         */
-       var $method = '';
+       public $method = '';
 
        /**
 
        /**
-        * Constructor (empty).
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
         */
         */
-       function __construct() {}
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
 
        /**
         * Return the path on the remote filesystem of ABSPATH.
 
        /**
         * Return the path on the remote filesystem of ABSPATH.
@@ -52,10 +99,10 @@ class WP_Filesystem_Base {
         *
         * @return string The location of the remote path.
         */
         *
         * @return string The location of the remote path.
         */
-       function abspath() {
+       public function abspath() {
                $folder = $this->find_folder(ABSPATH);
                // Perhaps the FTP folder is rooted at the WordPress install, Check for wp-includes folder in root, Could have some false positives, but rare.
                $folder = $this->find_folder(ABSPATH);
                // Perhaps the FTP folder is rooted at the WordPress install, Check for wp-includes folder in root, Could have some false positives, but rare.
-               if ( ! $folder && $this->is_dir('/wp-includes') )
+               if ( ! $folder && $this->is_dir( '/' . WPINC ) )
                        $folder = '/';
                return $folder;
        }
                        $folder = '/';
                return $folder;
        }
@@ -68,7 +115,7 @@ class WP_Filesystem_Base {
         *
         * @return string The location of the remote path.
         */
         *
         * @return string The location of the remote path.
         */
-       function wp_content_dir() {
+       public function wp_content_dir() {
                return $this->find_folder(WP_CONTENT_DIR);
        }
 
                return $this->find_folder(WP_CONTENT_DIR);
        }
 
@@ -80,7 +127,7 @@ class WP_Filesystem_Base {
         *
         * @return string The location of the remote path.
         */
         *
         * @return string The location of the remote path.
         */
-       function wp_plugins_dir() {
+       public function wp_plugins_dir() {
                return $this->find_folder(WP_PLUGIN_DIR);
        }
 
                return $this->find_folder(WP_PLUGIN_DIR);
        }
 
@@ -93,7 +140,7 @@ class WP_Filesystem_Base {
         * @param string $theme The Theme stylesheet or template for the directory.
         * @return string The location of the remote path.
         */
         * @param string $theme The Theme stylesheet or template for the directory.
         * @return string The location of the remote path.
         */
-       function wp_themes_dir( $theme = false ) {
+       public function wp_themes_dir( $theme = false ) {
                $theme_root = get_theme_root( $theme );
 
                // Account for relative theme roots
                $theme_root = get_theme_root( $theme );
 
                // Account for relative theme roots
@@ -111,7 +158,7 @@ class WP_Filesystem_Base {
         *
         * @return string The location of the remote path.
         */
         *
         * @return string The location of the remote path.
         */
-       function wp_lang_dir() {
+       public function wp_lang_dir() {
                return $this->find_folder(WP_LANG_DIR);
        }
 
                return $this->find_folder(WP_LANG_DIR);
        }
 
@@ -132,7 +179,7 @@ class WP_Filesystem_Base {
         *                     Default false.
         * @return string The location of the remote path.
         */
         *                     Default false.
         * @return string The location of the remote path.
         */
-       function find_base_dir( $base = '.', $echo = false ) {
+       public function find_base_dir( $base = '.', $echo = false ) {
                _deprecated_function(__FUNCTION__, '2.7', 'WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir()' );
                $this->verbose = $echo;
                return $this->abspath();
                _deprecated_function(__FUNCTION__, '2.7', 'WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir()' );
                $this->verbose = $echo;
                return $this->abspath();
@@ -154,7 +201,7 @@ class WP_Filesystem_Base {
         * @param bool   $echo True to display debug information.
         * @return string The location of the remote path.
         */
         * @param bool   $echo True to display debug information.
         * @return string The location of the remote path.
         */
-       function get_base_dir( $base = '.', $echo = false ) {
+       public function get_base_dir( $base = '.', $echo = false ) {
                _deprecated_function(__FUNCTION__, '2.7', 'WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir()' );
                $this->verbose = $echo;
                return $this->abspath();
                _deprecated_function(__FUNCTION__, '2.7', 'WP_Filesystem::abspath() or WP_Filesystem::wp_*_dir()' );
                $this->verbose = $echo;
                return $this->abspath();
@@ -172,7 +219,7 @@ class WP_Filesystem_Base {
         * @param string $folder the folder to locate.
         * @return string The location of the remote path.
         */
         * @param string $folder the folder to locate.
         * @return string The location of the remote path.
         */
-       function find_folder( $folder ) {
+       public function find_folder( $folder ) {
 
                if ( isset( $this->cache[ $folder ] ) )
                        return $this->cache[ $folder ];
 
                if ( isset( $this->cache[ $folder ] ) )
                        return $this->cache[ $folder ];
@@ -241,7 +288,7 @@ class WP_Filesystem_Base {
         * @param bool   $loop   If the function has recursed, Internal use only.
         * @return string The location of the remote path.
         */
         * @param bool   $loop   If the function has recursed, Internal use only.
         * @return string The location of the remote path.
         */
-       function search_for_folder( $folder, $base = '.', $loop = false ) {
+       public function search_for_folder( $folder, $base = '.', $loop = false ) {
                if ( empty( $base ) || '.' == $base )
                        $base = trailingslashit($this->cwd());
 
                if ( empty( $base ) || '.' == $base )
                        $base = trailingslashit($this->cwd());
 
@@ -261,16 +308,21 @@ class WP_Filesystem_Base {
                        if ( $index == $last_index )
                                continue; // We want this to be caught by the next code block.
 
                        if ( $index == $last_index )
                                continue; // We want this to be caught by the next code block.
 
-                       // Working from /home/ to /user/ to /wordpress/ see if that file exists within the current folder,
-                       // If it's found, change into it and follow through looking for it.
-                       // If it cant find WordPress down that route, it'll continue onto the next folder level, and see if that matches, and so on.
-                       // If it reaches the end, and still cant find it, it'll return false for the entire function.
+                       /*
+                        * Working from /home/ to /user/ to /wordpress/ see if that file exists within
+                        * the current folder, If it's found, change into it and follow through looking
+                        * for it. If it cant find WordPress down that route, it'll continue onto the next
+                        * folder level, and see if that matches, and so on. If it reaches the end, and still
+                        * cant find it, it'll return false for the entire function.
+                        */
                        if ( isset($files[ $key ]) ){
                        if ( isset($files[ $key ]) ){
+
                                // Lets try that folder:
                                $newdir = trailingslashit(path_join($base, $key));
                                if ( $this->verbose )
                                        printf( "\n" . __('Changing to %s') . "<br/>\n", $newdir );
                                // Lets try that folder:
                                $newdir = trailingslashit(path_join($base, $key));
                                if ( $this->verbose )
                                        printf( "\n" . __('Changing to %s') . "<br/>\n", $newdir );
-                               // only search for the remaining path tokens in the directory, not the full path again
+
+                               // Only search for the remaining path tokens in the directory, not the full path again.
                                $newfolder = implode( '/', array_slice( $folder_parts, $index + 1 ) );
                                if ( $ret = $this->search_for_folder( $newfolder, $newdir, $loop) )
                                        return $ret;
                                $newfolder = implode( '/', array_slice( $folder_parts, $index + 1 ) );
                                if ( $ret = $this->search_for_folder( $newfolder, $newdir, $loop) )
                                        return $ret;
@@ -308,7 +360,7 @@ class WP_Filesystem_Base {
         * @param string $file String filename.
         * @return string The *nix-style representation of permissions.
         */
         * @param string $file String filename.
         * @return string The *nix-style representation of permissions.
         */
-       function gethchmod( $file ){
+       public function gethchmod( $file ){
                $perms = $this->getchmod($file);
                if (($perms & 0xC000) == 0xC000) // Socket
                        $info = 's';
                $perms = $this->getchmod($file);
                if (($perms & 0xC000) == 0xC000) // Socket
                        $info = 's';
@@ -364,7 +416,7 @@ class WP_Filesystem_Base {
         * @param string $mode string The *nix-style file permission.
         * @return int octal representation
         */
         * @param string $mode string The *nix-style file permission.
         * @return int octal representation
         */
-       function getnumchmodfromh( $mode ) {
+       public function getnumchmodfromh( $mode ) {
                $realmode = '';
                $legal =  array('', 'w', 'r', 'x', '-');
                $attarray = preg_split('//', $mode);
                $realmode = '';
                $legal =  array('', 'w', 'r', 'x', '-');
                $attarray = preg_split('//', $mode);
@@ -393,7 +445,7 @@ class WP_Filesystem_Base {
         * @param string $text String to test against.
         * @return bool true if string is binary, false otherwise.
         */
         * @param string $text String to test against.
         * @return bool true if string is binary, false otherwise.
         */
-       function is_binary( $text ) {
+       public function is_binary( $text ) {
                return (bool) preg_match( '|[^\x20-\x7E]|', $text ); // chr(32)..chr(127)
        }
 
                return (bool) preg_match( '|[^\x20-\x7E]|', $text ); // chr(32)..chr(127)
        }
 
@@ -409,7 +461,7 @@ class WP_Filesystem_Base {
         * @param bool   $recursive Optional. If set True changes file owner recursivly. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
         * @param bool   $recursive Optional. If set True changes file owner recursivly. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
-       function chown( $file, $owner, $recursive = false ) {
+       public function chown( $file, $owner, $recursive = false ) {
                return false;
        }
 
                return false;
        }
 
@@ -420,7 +472,7 @@ class WP_Filesystem_Base {
         *
         * @return bool True on success or false on failure (always true for WP_Filesystem_Direct).
         */
         *
         * @return bool True on success or false on failure (always true for WP_Filesystem_Direct).
         */
-       function connect() {
+       public function connect() {
                return true;
        }
 
                return true;
        }
 
@@ -432,7 +484,7 @@ class WP_Filesystem_Base {
         * @param string $file Name of the file to read.
         * @return string|bool Returns the read data or false on failure.
         */
         * @param string $file Name of the file to read.
         * @return string|bool Returns the read data or false on failure.
         */
-       function get_contents( $file ) {
+       public function get_contents( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -444,7 +496,7 @@ class WP_Filesystem_Base {
         * @param string $file Path to the file.
         * @return array|bool the file contents in an array or false on failure.
         */
         * @param string $file Path to the file.
         * @return array|bool the file contents in an array or false on failure.
         */
-       function get_contents_array( $file ) {
+       public function get_contents_array( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -458,7 +510,7 @@ class WP_Filesystem_Base {
         * @param int    $mode     Optional. The file permissions as octal number, usually 0644.
         * @return bool False on failure.
         */
         * @param int    $mode     Optional. The file permissions as octal number, usually 0644.
         * @return bool False on failure.
         */
-       function put_contents( $file, $contents, $mode = false ) {
+       public function put_contents( $file, $contents, $mode = false ) {
                return false;
        }
 
                return false;
        }
 
@@ -469,7 +521,7 @@ class WP_Filesystem_Base {
         *
         * @return string|bool The current working directory on success, or false on failure.
         */
         *
         * @return string|bool The current working directory on success, or false on failure.
         */
-       function cwd() {
+       public function cwd() {
                return false;
        }
 
                return false;
        }
 
@@ -481,7 +533,7 @@ class WP_Filesystem_Base {
         * @param string $dir The new current directory.
         * @return bool Returns true on success or false on failure.
         */
         * @param string $dir The new current directory.
         * @return bool Returns true on success or false on failure.
         */
-       function chdir( $dir ) {
+       public function chdir( $dir ) {
                return false;
        }
 
                return false;
        }
 
@@ -495,7 +547,7 @@ class WP_Filesystem_Base {
         * @param bool   $recursive Optional. If set True changes file group recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
         * @param bool   $recursive Optional. If set True changes file group recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
-       function chgrp( $file, $group, $recursive = false ) {
+       public function chgrp( $file, $group, $recursive = false ) {
                return false;
        }
 
                return false;
        }
 
@@ -509,7 +561,7 @@ class WP_Filesystem_Base {
         * @param bool   $recursive Optional. If set True changes file group recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
         * @param bool   $recursive Optional. If set True changes file group recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
-       function chmod( $file, $mode = false, $recursive = false ) {
+       public function chmod( $file, $mode = false, $recursive = false ) {
                return false;
        }
 
                return false;
        }
 
@@ -521,7 +573,7 @@ class WP_Filesystem_Base {
         * @param string $file Path to the file.
         * @return string|bool Username of the user or false on error.
         */
         * @param string $file Path to the file.
         * @return string|bool Username of the user or false on error.
         */
-       function owner( $file ) {
+       public function owner( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -533,7 +585,7 @@ class WP_Filesystem_Base {
         * @param string $file Path to the file.
         * @return string|bool The group or false on error.
         */
         * @param string $file Path to the file.
         * @return string|bool The group or false on error.
         */
-       function group( $file ) {
+       public function group( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -550,7 +602,7 @@ class WP_Filesystem_Base {
         *                            Default false.
         * @return bool True if file copied successfully, False otherwise.
         */
         *                            Default false.
         * @return bool True if file copied successfully, False otherwise.
         */
-       function copy( $source, $destination, $overwrite = false, $mode = false ) {
+       public function copy( $source, $destination, $overwrite = false, $mode = false ) {
                return false;
        }
 
                return false;
        }
 
@@ -565,7 +617,7 @@ class WP_Filesystem_Base {
         *                            Default false.
         * @return bool True if file copied successfully, False otherwise.
         */
         *                            Default false.
         * @return bool True if file copied successfully, False otherwise.
         */
-       function move( $source, $destination, $overwrite = false ) {
+       public function move( $source, $destination, $overwrite = false ) {
                return false;
        }
 
                return false;
        }
 
@@ -581,7 +633,7 @@ class WP_Filesystem_Base {
         *                          Default false.
         * @return bool True if the file or directory was deleted, false on failure.
         */
         *                          Default false.
         * @return bool True if the file or directory was deleted, false on failure.
         */
-       function delete( $file, $recursive = false, $type = false ) {
+       public function delete( $file, $recursive = false, $type = false ) {
                return false;
        }
 
                return false;
        }
 
@@ -593,7 +645,7 @@ class WP_Filesystem_Base {
         * @param string $file Path to file/directory.
         * @return bool Whether $file exists or not.
         */
         * @param string $file Path to file/directory.
         * @return bool Whether $file exists or not.
         */
-       function exists( $file ) {
+       public function exists( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -605,7 +657,7 @@ class WP_Filesystem_Base {
         * @param string $file File path.
         * @return bool Whether $file is a file.
         */
         * @param string $file File path.
         * @return bool Whether $file is a file.
         */
-       function is_file( $file ) {
+       public function is_file( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -617,7 +669,7 @@ class WP_Filesystem_Base {
         * @param string $path Directory path.
         * @return bool Whether $path is a directory.
         */
         * @param string $path Directory path.
         * @return bool Whether $path is a directory.
         */
-       function is_dir( $path ) {
+       public function is_dir( $path ) {
                return false;
        }
 
                return false;
        }
 
@@ -629,7 +681,7 @@ class WP_Filesystem_Base {
         * @param string $file Path to file.
         * @return bool Whether $file is readable.
         */
         * @param string $file Path to file.
         * @return bool Whether $file is readable.
         */
-       function is_readable( $file ) {
+       public function is_readable( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -641,7 +693,7 @@ class WP_Filesystem_Base {
         * @param string $path Path to file/directory.
         * @return bool Whether $file is writable.
         */
         * @param string $path Path to file/directory.
         * @return bool Whether $file is writable.
         */
-       function is_writable( $file ) {
+       public function is_writable( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -653,7 +705,7 @@ class WP_Filesystem_Base {
         * @param string $file Path to file.
         * @return int Unix timestamp representing last access time.
         */
         * @param string $file Path to file.
         * @return int Unix timestamp representing last access time.
         */
-       function atime( $file ) {
+       public function atime( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -665,7 +717,7 @@ class WP_Filesystem_Base {
         * @param string $file Path to file.
         * @return int Unix timestamp representing modification time.
         */
         * @param string $file Path to file.
         * @return int Unix timestamp representing modification time.
         */
-       function mtime( $file ) {
+       public function mtime( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -677,7 +729,7 @@ class WP_Filesystem_Base {
         * @param string $file Path to file.
         * @return int Size of the file in bytes.
         */
         * @param string $file Path to file.
         * @return int Size of the file in bytes.
         */
-       function size( $file ) {
+       public function size( $file ) {
                return false;
        }
 
                return false;
        }
 
@@ -695,7 +747,7 @@ class WP_Filesystem_Base {
         *                      Default 0.
         * @return bool Whether operation was successful or not.
         */
         *                      Default 0.
         * @return bool Whether operation was successful or not.
         */
-       function touch( $file, $time = 0, $atime = 0 ) {
+       public function touch( $file, $time = 0, $atime = 0 ) {
                return false;
        }
 
                return false;
        }
 
@@ -713,7 +765,7 @@ class WP_Filesystem_Base {
         *                      Default false.
         * @return bool False if directory cannot be created, true otherwise.
         */
         *                      Default false.
         * @return bool False if directory cannot be created, true otherwise.
         */
-       function mkdir( $path, $chmod = false, $chown = false, $chgrp = false ) {
+       public function mkdir( $path, $chmod = false, $chown = false, $chgrp = false ) {
                return false;
        }
 
                return false;
        }
 
@@ -727,7 +779,7 @@ class WP_Filesystem_Base {
         *                          Default false.
         * @return bool Whether directory is deleted successfully or not.
         */
         *                          Default false.
         * @return bool Whether directory is deleted successfully or not.
         */
-       function rmdir( $path, $recursive = false ) {
+       public function rmdir( $path, $recursive = false ) {
                return false;
        }
 
                return false;
        }
 
@@ -756,7 +808,7 @@ class WP_Filesystem_Base {
         *     @type mixed  'files'       If a directory and $recursive is true, contains another array of files.
         * }
         */
         *     @type mixed  'files'       If a directory and $recursive is true, contains another array of files.
         * }
         */
-       function dirlist( $path, $include_hidden = true, $recursive = false ) {
+       public function dirlist( $path, $include_hidden = true, $recursive = false ) {
                return false;
        }
 
                return false;
        }
 
index 2d4e56640acd0fc9c8b047b6f6b8ea0690e371ed..a426bd273fd54430f4069899c690f18c13c5ce60 100644 (file)
@@ -21,7 +21,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         *
         * @param mixed $arg ignored argument
         */
         *
         * @param mixed $arg ignored argument
         */
-       function __construct($arg) {
+       public function __construct($arg) {
                $this->method = 'direct';
                $this->errors = new WP_Error();
        }
                $this->method = 'direct';
                $this->errors = new WP_Error();
        }
@@ -32,7 +32,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         * @param string $file Name of the file to read.
         * @return string|bool The function returns the read data or false on failure.
         */
         * @param string $file Name of the file to read.
         * @return string|bool The function returns the read data or false on failure.
         */
-       function get_contents($file) {
+       public function get_contents($file) {
                return @file_get_contents($file);
        }
 
                return @file_get_contents($file);
        }
 
@@ -42,7 +42,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         * @param string $file Path to the file.
         * @return array|bool the file contents in an array or false on failure.
         */
         * @param string $file Path to the file.
         * @return array|bool the file contents in an array or false on failure.
         */
-       function get_contents_array($file) {
+       public function get_contents_array($file) {
                return @file($file);
        }
 
                return @file($file);
        }
 
@@ -54,7 +54,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         * @param int $mode (optional) The file permissions as octal number, usually 0644.
         * @return bool False upon failure.
         */
         * @param int $mode (optional) The file permissions as octal number, usually 0644.
         * @return bool False upon failure.
         */
-       function put_contents( $file, $contents, $mode = false ) {
+       public function put_contents( $file, $contents, $mode = false ) {
                $fp = @fopen( $file, 'wb' );
                if ( ! $fp )
                        return false;
                $fp = @fopen( $file, 'wb' );
                if ( ! $fp )
                        return false;
@@ -82,7 +82,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         *
         * @return string|bool the current working directory on success, or false on failure.
         */
         *
         * @return string|bool the current working directory on success, or false on failure.
         */
-       function cwd() {
+       public function cwd() {
                return @getcwd();
        }
 
                return @getcwd();
        }
 
@@ -92,7 +92,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         * @param string $dir The new current directory.
         * @return bool Returns true on success or false on failure.
         */
         * @param string $dir The new current directory.
         * @return bool Returns true on success or false on failure.
         */
-       function chdir($dir) {
+       public function chdir($dir) {
                return @chdir($dir);
        }
 
                return @chdir($dir);
        }
 
@@ -104,7 +104,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         * @param bool $recursive (optional) If set True changes file group recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
         * @param bool $recursive (optional) If set True changes file group recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
-       function chgrp($file, $group, $recursive = false) {
+       public function chgrp($file, $group, $recursive = false) {
                if ( ! $this->exists($file) )
                        return false;
                if ( ! $recursive )
                if ( ! $this->exists($file) )
                        return false;
                if ( ! $recursive )
@@ -128,7 +128,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         * @param bool $recursive (optional) If set True changes file group recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
         * @param bool $recursive (optional) If set True changes file group recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
-       function chmod($file, $mode = false, $recursive = false) {
+       public function chmod($file, $mode = false, $recursive = false) {
                if ( ! $mode ) {
                        if ( $this->is_file($file) )
                                $mode = FS_CHMOD_FILE;
                if ( ! $mode ) {
                        if ( $this->is_file($file) )
                                $mode = FS_CHMOD_FILE;
@@ -157,7 +157,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         * @param bool $recursive (optional) If set True changes file owner recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
         * @param bool $recursive (optional) If set True changes file owner recursively. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
-       function chown($file, $owner, $recursive = false) {
+       public function chown($file, $owner, $recursive = false) {
                if ( ! $this->exists($file) )
                        return false;
                if ( ! $recursive )
                if ( ! $this->exists($file) )
                        return false;
                if ( ! $recursive )
@@ -178,7 +178,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         * @param string $file Path to the file.
         * @return string|bool Username of the user or false on error.
         */
         * @param string $file Path to the file.
         * @return string|bool Username of the user or false on error.
         */
-       function owner($file) {
+       public function owner($file) {
                $owneruid = @fileowner($file);
                if ( ! $owneruid )
                        return false;
                $owneruid = @fileowner($file);
                if ( ! $owneruid )
                        return false;
@@ -196,11 +196,11 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
         * @param string $file Path to the file.
         * @return string Mode of the file (last 3 digits).
         */
         * @param string $file Path to the file.
         * @return string Mode of the file (last 3 digits).
         */
-       function getchmod($file) {
+       public function getchmod($file) {
                return substr( decoct( @fileperms( $file ) ), -3 );
        }
 
                return substr( decoct( @fileperms( $file ) ), -3 );
        }
 
-       function group($file) {
+       public function group($file) {
                $gid = @filegroup($file);
                if ( ! $gid )
                        return false;
                $gid = @filegroup($file);
                if ( ! $gid )
                        return false;
@@ -210,7 +210,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
                return $grouparray['name'];
        }
 
                return $grouparray['name'];
        }
 
-       function copy($source, $destination, $overwrite = false, $mode = false) {
+       public function copy($source, $destination, $overwrite = false, $mode = false) {
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
 
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
 
@@ -220,11 +220,11 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
                return $rtval;
        }
 
                return $rtval;
        }
 
-       function move($source, $destination, $overwrite = false) {
+       public function move($source, $destination, $overwrite = false) {
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
 
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
 
-               // try using rename first. if that fails (for example, source is read only) try copy
+               // Try using rename first. if that fails (for example, source is read only) try copy.
                if ( @rename($source, $destination) )
                        return true;
 
                if ( @rename($source, $destination) )
                        return true;
 
@@ -236,7 +236,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
                }
        }
 
                }
        }
 
-       function delete($file, $recursive = false, $type = false) {
+       public function delete($file, $recursive = false, $type = false) {
                if ( empty( $file ) ) // Some filesystems report this as /, which can cause non-expected recursive deletion of all files in the filesystem.
                        return false;
                $file = str_replace( '\\', '/', $file ); // for win32, occasional problems deleting files otherwise
                if ( empty( $file ) ) // Some filesystems report this as /, which can cause non-expected recursive deletion of all files in the filesystem.
                        return false;
                $file = str_replace( '\\', '/', $file ); // for win32, occasional problems deleting files otherwise
@@ -264,39 +264,39 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
                return $retval;
        }
 
                return $retval;
        }
 
-       function exists($file) {
+       public function exists($file) {
                return @file_exists($file);
        }
 
                return @file_exists($file);
        }
 
-       function is_file($file) {
+       public function is_file($file) {
                return @is_file($file);
        }
 
                return @is_file($file);
        }
 
-       function is_dir($path) {
+       public function is_dir($path) {
                return @is_dir($path);
        }
 
                return @is_dir($path);
        }
 
-       function is_readable($file) {
+       public function is_readable($file) {
                return @is_readable($file);
        }
 
                return @is_readable($file);
        }
 
-       function is_writable($file) {
+       public function is_writable($file) {
                return @is_writable($file);
        }
 
                return @is_writable($file);
        }
 
-       function atime($file) {
+       public function atime($file) {
                return @fileatime($file);
        }
 
                return @fileatime($file);
        }
 
-       function mtime($file) {
+       public function mtime($file) {
                return @filemtime($file);
        }
 
                return @filemtime($file);
        }
 
-       function size($file) {
+       public function size($file) {
                return @filesize($file);
        }
 
                return @filesize($file);
        }
 
-       function touch($file, $time = 0, $atime = 0) {
+       public function touch($file, $time = 0, $atime = 0) {
                if ($time == 0)
                        $time = time();
                if ($atime == 0)
                if ($time == 0)
                        $time = time();
                if ($atime == 0)
@@ -304,8 +304,8 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
                return @touch($file, $time, $atime);
        }
 
                return @touch($file, $time, $atime);
        }
 
-       function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
-               // safe mode fails with a trailing slash under certain PHP versions.
+       public function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
+               // Safe mode fails with a trailing slash under certain PHP versions.
                $path = untrailingslashit($path);
                if ( empty($path) )
                        return false;
                $path = untrailingslashit($path);
                if ( empty($path) )
                        return false;
@@ -323,11 +323,11 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
                return true;
        }
 
                return true;
        }
 
-       function rmdir($path, $recursive = false) {
+       public function rmdir($path, $recursive = false) {
                return $this->delete($path, $recursive);
        }
 
                return $this->delete($path, $recursive);
        }
 
-       function dirlist($path, $include_hidden = true, $recursive = false) {
+       public function dirlist($path, $include_hidden = true, $recursive = false) {
                if ( $this->is_file($path) ) {
                        $limit_file = basename($path);
                        $path = dirname($path);
                if ( $this->is_file($path) ) {
                        $limit_file = basename($path);
                        $path = dirname($path);
index 434a1f98e2e6ce8e4b914a8d1a45d9e70dcc2b8d..87233d0c9ade7cba5ff5700e2a1baf8c2ba66b96 100644 (file)
  * @uses WP_Filesystem_Base Extends class
  */
 class WP_Filesystem_FTPext extends WP_Filesystem_Base {
  * @uses WP_Filesystem_Base Extends class
  */
 class WP_Filesystem_FTPext extends WP_Filesystem_Base {
-       var $link;
-       var $errors = null;
-       var $options = array();
+       public $link;
+       public $errors = null;
+       public $options = array();
 
 
-       function __construct($opt='') {
+       public function __construct($opt='') {
                $this->method = 'ftpext';
                $this->errors = new WP_Error();
 
                $this->method = 'ftpext';
                $this->errors = new WP_Error();
 
@@ -63,7 +63,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                        $this->options['ssl'] = true;
        }
 
                        $this->options['ssl'] = true;
        }
 
-       function connect() {
+       public function connect() {
                if ( isset($this->options['ssl']) && $this->options['ssl'] && function_exists('ftp_ssl_connect') )
                        $this->link = @ftp_ssl_connect($this->options['hostname'], $this->options['port'], FS_CONNECT_TIMEOUT);
                else
                if ( isset($this->options['ssl']) && $this->options['ssl'] && function_exists('ftp_ssl_connect') )
                        $this->link = @ftp_ssl_connect($this->options['hostname'], $this->options['port'], FS_CONNECT_TIMEOUT);
                else
@@ -87,7 +87,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return true;
        }
 
                return true;
        }
 
-       function get_contents( $file ) {
+       public function get_contents( $file ) {
                $tempfile = wp_tempnam($file);
                $temp = fopen($tempfile, 'w+');
 
                $tempfile = wp_tempnam($file);
                $temp = fopen($tempfile, 'w+');
 
@@ -108,11 +108,11 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return $contents;
        }
 
                return $contents;
        }
 
-       function get_contents_array($file) {
+       public function get_contents_array($file) {
                return explode("\n", $this->get_contents($file));
        }
 
                return explode("\n", $this->get_contents($file));
        }
 
-       function put_contents($file, $contents, $mode = false ) {
+       public function put_contents($file, $contents, $mode = false ) {
                $tempfile = wp_tempnam($file);
                $temp = fopen( $tempfile, 'wb+' );
                if ( ! $temp )
                $tempfile = wp_tempnam($file);
                $temp = fopen( $tempfile, 'wb+' );
                if ( ! $temp )
@@ -143,22 +143,22 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return $ret;
        }
 
                return $ret;
        }
 
-       function cwd() {
+       public function cwd() {
                $cwd = @ftp_pwd($this->link);
                if ( $cwd )
                        $cwd = trailingslashit($cwd);
                return $cwd;
        }
 
                $cwd = @ftp_pwd($this->link);
                if ( $cwd )
                        $cwd = trailingslashit($cwd);
                return $cwd;
        }
 
-       function chdir($dir) {
+       public function chdir($dir) {
                return @ftp_chdir($this->link, $dir);
        }
 
                return @ftp_chdir($this->link, $dir);
        }
 
-       function chgrp($file, $group, $recursive = false ) {
+       public function chgrp($file, $group, $recursive = false ) {
                return false;
        }
 
                return false;
        }
 
-       function chmod($file, $mode = false, $recursive = false) {
+       public function chmod($file, $mode = false, $recursive = false) {
                if ( ! $mode ) {
                        if ( $this->is_file($file) )
                                $mode = FS_CHMOD_FILE;
                if ( ! $mode ) {
                        if ( $this->is_file($file) )
                                $mode = FS_CHMOD_FILE;
@@ -181,22 +181,22 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return (bool)@ftp_chmod($this->link, $mode, $file);
        }
 
                return (bool)@ftp_chmod($this->link, $mode, $file);
        }
 
-       function owner($file) {
+       public function owner($file) {
                $dir = $this->dirlist($file);
                return $dir[$file]['owner'];
        }
 
                $dir = $this->dirlist($file);
                return $dir[$file]['owner'];
        }
 
-       function getchmod($file) {
+       public function getchmod($file) {
                $dir = $this->dirlist($file);
                return $dir[$file]['permsn'];
        }
 
                $dir = $this->dirlist($file);
                return $dir[$file]['permsn'];
        }
 
-       function group($file) {
+       public function group($file) {
                $dir = $this->dirlist($file);
                return $dir[$file]['group'];
        }
 
                $dir = $this->dirlist($file);
                return $dir[$file]['group'];
        }
 
-       function copy($source, $destination, $overwrite = false, $mode = false) {
+       public function copy($source, $destination, $overwrite = false, $mode = false) {
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
                $content = $this->get_contents($source);
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
                $content = $this->get_contents($source);
@@ -205,11 +205,11 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return $this->put_contents($destination, $content, $mode);
        }
 
                return $this->put_contents($destination, $content, $mode);
        }
 
-       function move($source, $destination, $overwrite = false) {
+       public function move($source, $destination, $overwrite = false) {
                return ftp_rename($this->link, $source, $destination);
        }
 
                return ftp_rename($this->link, $source, $destination);
        }
 
-       function delete($file, $recursive = false, $type = false) {
+       public function delete($file, $recursive = false, $type = false) {
                if ( empty($file) )
                        return false;
                if ( 'f' == $type || $this->is_file($file) )
                if ( empty($file) )
                        return false;
                if ( 'f' == $type || $this->is_file($file) )
@@ -224,16 +224,16 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return @ftp_rmdir($this->link, $file);
        }
 
                return @ftp_rmdir($this->link, $file);
        }
 
-       function exists($file) {
+       public function exists($file) {
                $list = @ftp_nlist($this->link, $file);
                return !empty($list); //empty list = no file, so invert.
        }
 
                $list = @ftp_nlist($this->link, $file);
                return !empty($list); //empty list = no file, so invert.
        }
 
-       function is_file($file) {
+       public function is_file($file) {
                return $this->exists($file) && !$this->is_dir($file);
        }
 
                return $this->exists($file) && !$this->is_dir($file);
        }
 
-       function is_dir($path) {
+       public function is_dir($path) {
                $cwd = $this->cwd();
                $result = @ftp_chdir($this->link, trailingslashit($path) );
                if ( $result && $path == $this->cwd() || $this->cwd() != $cwd ) {
                $cwd = $this->cwd();
                $result = @ftp_chdir($this->link, trailingslashit($path) );
                if ( $result && $path == $this->cwd() || $this->cwd() != $cwd ) {
@@ -243,31 +243,31 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return false;
        }
 
                return false;
        }
 
-       function is_readable($file) {
+       public function is_readable($file) {
                return true;
        }
 
                return true;
        }
 
-       function is_writable($file) {
+       public function is_writable($file) {
                return true;
        }
 
                return true;
        }
 
-       function atime($file) {
+       public function atime($file) {
                return false;
        }
 
                return false;
        }
 
-       function mtime($file) {
+       public function mtime($file) {
                return ftp_mdtm($this->link, $file);
        }
 
                return ftp_mdtm($this->link, $file);
        }
 
-       function size($file) {
+       public function size($file) {
                return ftp_size($this->link, $file);
        }
 
                return ftp_size($this->link, $file);
        }
 
-       function touch($file, $time = 0, $atime = 0) {
+       public function touch($file, $time = 0, $atime = 0) {
                return false;
        }
 
                return false;
        }
 
-       function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
+       public function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
                $path = untrailingslashit($path);
                if ( empty($path) )
                        return false;
                $path = untrailingslashit($path);
                if ( empty($path) )
                        return false;
@@ -282,11 +282,11 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return true;
        }
 
                return true;
        }
 
-       function rmdir($path, $recursive = false) {
+       public function rmdir($path, $recursive = false) {
                return $this->delete($path, $recursive);
        }
 
                return $this->delete($path, $recursive);
        }
 
-       function parselisting($line) {
+       public function parselisting($line) {
                static $is_windows;
                if ( is_null($is_windows) )
                        $is_windows = stripos( ftp_systype($this->link), 'win') !== false;
                static $is_windows;
                if ( is_null($is_windows) )
                        $is_windows = stripos( ftp_systype($this->link), 'win') !== false;
@@ -359,7 +359,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return $b;
        }
 
                return $b;
        }
 
-       function dirlist($path = '.', $include_hidden = true, $recursive = false) {
+       public function dirlist($path = '.', $include_hidden = true, $recursive = false) {
                if ( $this->is_file($path) ) {
                        $limit_file = basename($path);
                        $path = dirname($path) . '/';
                if ( $this->is_file($path) ) {
                        $limit_file = basename($path);
                        $path = dirname($path) . '/';
@@ -408,7 +408,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
                return $ret;
        }
 
                return $ret;
        }
 
-       function __destruct() {
+       public function __destruct() {
                if ( $this->link )
                        ftp_close($this->link);
        }
                if ( $this->link )
                        ftp_close($this->link);
        }
index af4c53100eead722f7f35c762d96500e38e18fe0..2952ae5ba5017bc55b7127fbb2f4b063d7925944 100644 (file)
  * @uses WP_Filesystem_Base Extends class
  */
 class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
  * @uses WP_Filesystem_Base Extends class
  */
 class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
-       var $ftp = false;
-       var $errors = null;
-       var $options = array();
+       public $ftp = false;
+       public $errors = null;
+       public $options = array();
 
 
-       function __construct($opt = '') {
+       public function __construct($opt = '') {
                $this->method = 'ftpsockets';
                $this->errors = new WP_Error();
 
                // Check if possible to use ftp functions.
                $this->method = 'ftpsockets';
                $this->errors = new WP_Error();
 
                // Check if possible to use ftp functions.
-               if ( ! @include_once ABSPATH . 'wp-admin/includes/class-ftp.php' )
-                               return false;
+               if ( ! @include_once( ABSPATH . 'wp-admin/includes/class-ftp.php' ) ) {
+                       return false;
+               }
                $this->ftp = new ftp();
 
                if ( empty($opt['port']) )
                $this->ftp = new ftp();
 
                if ( empty($opt['port']) )
@@ -53,7 +54,7 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                        $this->options['password'] = $opt['password'];
        }
 
                        $this->options['password'] = $opt['password'];
        }
 
-       function connect() {
+       public function connect() {
                if ( ! $this->ftp )
                        return false;
 
                if ( ! $this->ftp )
                        return false;
 
@@ -80,7 +81,7 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return true;
        }
 
                return true;
        }
 
-       function get_contents( $file ) {
+       public function get_contents( $file ) {
                if ( ! $this->exists($file) )
                        return false;
 
                if ( ! $this->exists($file) )
                        return false;
 
@@ -113,11 +114,11 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return $contents;
        }
 
                return $contents;
        }
 
-       function get_contents_array($file) {
+       public function get_contents_array($file) {
                return explode("\n", $this->get_contents($file) );
        }
 
                return explode("\n", $this->get_contents($file) );
        }
 
-       function put_contents($file, $contents, $mode = false ) {
+       public function put_contents($file, $contents, $mode = false ) {
                $temp = wp_tempnam( $file );
                if ( ! $temphandle = @fopen($temp, 'w+') ) {
                        unlink($temp);
                $temp = wp_tempnam( $file );
                if ( ! $temphandle = @fopen($temp, 'w+') ) {
                        unlink($temp);
@@ -151,22 +152,22 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return $ret;
        }
 
                return $ret;
        }
 
-       function cwd() {
+       public function cwd() {
                $cwd = $this->ftp->pwd();
                if ( $cwd )
                        $cwd = trailingslashit($cwd);
                return $cwd;
        }
 
                $cwd = $this->ftp->pwd();
                if ( $cwd )
                        $cwd = trailingslashit($cwd);
                return $cwd;
        }
 
-       function chdir($file) {
+       public function chdir($file) {
                return $this->ftp->chdir($file);
        }
 
                return $this->ftp->chdir($file);
        }
 
-       function chgrp($file, $group, $recursive = false ) {
+       public function chgrp($file, $group, $recursive = false ) {
                return false;
        }
 
                return false;
        }
 
-       function chmod($file, $mode = false, $recursive = false ) {
+       public function chmod($file, $mode = false, $recursive = false ) {
                if ( ! $mode ) {
                        if ( $this->is_file($file) )
                                $mode = FS_CHMOD_FILE;
                if ( ! $mode ) {
                        if ( $this->is_file($file) )
                                $mode = FS_CHMOD_FILE;
@@ -187,22 +188,22 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return $this->ftp->chmod($file, $mode);
        }
 
                return $this->ftp->chmod($file, $mode);
        }
 
-       function owner($file) {
+       public function owner($file) {
                $dir = $this->dirlist($file);
                return $dir[$file]['owner'];
        }
 
                $dir = $this->dirlist($file);
                return $dir[$file]['owner'];
        }
 
-       function getchmod($file) {
+       public function getchmod($file) {
                $dir = $this->dirlist($file);
                return $dir[$file]['permsn'];
        }
 
                $dir = $this->dirlist($file);
                return $dir[$file]['permsn'];
        }
 
-       function group($file) {
+       public function group($file) {
                $dir = $this->dirlist($file);
                return $dir[$file]['group'];
        }
 
                $dir = $this->dirlist($file);
                return $dir[$file]['group'];
        }
 
-       function copy($source, $destination, $overwrite = false, $mode = false) {
+       public function copy($source, $destination, $overwrite = false, $mode = false) {
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
 
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
 
@@ -213,11 +214,11 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return $this->put_contents($destination, $content, $mode);
        }
 
                return $this->put_contents($destination, $content, $mode);
        }
 
-       function move($source, $destination, $overwrite = false ) {
+       public function move($source, $destination, $overwrite = false ) {
                return $this->ftp->rename($source, $destination);
        }
 
                return $this->ftp->rename($source, $destination);
        }
 
-       function delete($file, $recursive = false, $type = false) {
+       public function delete($file, $recursive = false, $type = false) {
                if ( empty($file) )
                        return false;
                if ( 'f' == $type || $this->is_file($file) )
                if ( empty($file) )
                        return false;
                if ( 'f' == $type || $this->is_file($file) )
@@ -228,13 +229,13 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return $this->ftp->mdel($file);
        }
 
                return $this->ftp->mdel($file);
        }
 
-       function exists( $file ) {
+       public function exists( $file ) {
                $list = $this->ftp->nlist( $file );
                return !empty( $list ); //empty list = no file, so invert.
                $list = $this->ftp->nlist( $file );
                return !empty( $list ); //empty list = no file, so invert.
-               // return $this->ftp->is_exists($file); has issues with ABOR+426 responses on the ncFTPd server
+               // Return $this->ftp->is_exists($file); has issues with ABOR+426 responses on the ncFTPd server.
        }
 
        }
 
-       function is_file($file) {
+       public function is_file($file) {
                if ( $this->is_dir($file) )
                        return false;
                if ( $this->exists($file) )
                if ( $this->is_dir($file) )
                        return false;
                if ( $this->exists($file) )
@@ -242,7 +243,7 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return false;
        }
 
                return false;
        }
 
-       function is_dir($path) {
+       public function is_dir($path) {
                $cwd = $this->cwd();
                if ( $this->chdir($path) ) {
                        $this->chdir($cwd);
                $cwd = $this->cwd();
                if ( $this->chdir($path) ) {
                        $this->chdir($cwd);
@@ -251,31 +252,31 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return false;
        }
 
                return false;
        }
 
-       function is_readable($file) {
+       public function is_readable($file) {
                return true;
        }
 
                return true;
        }
 
-       function is_writable($file) {
+       public function is_writable($file) {
                return true;
        }
 
                return true;
        }
 
-       function atime($file) {
+       public function atime($file) {
                return false;
        }
 
                return false;
        }
 
-       function mtime($file) {
+       public function mtime($file) {
                return $this->ftp->mdtm($file);
        }
 
                return $this->ftp->mdtm($file);
        }
 
-       function size($file) {
+       public function size($file) {
                return $this->ftp->filesize($file);
        }
 
                return $this->ftp->filesize($file);
        }
 
-       function touch($file, $time = 0, $atime = 0 ) {
+       public function touch($file, $time = 0, $atime = 0 ) {
                return false;
        }
 
                return false;
        }
 
-       function mkdir($path, $chmod = false, $chown = false, $chgrp = false ) {
+       public function mkdir($path, $chmod = false, $chown = false, $chgrp = false ) {
                $path = untrailingslashit($path);
                if ( empty($path) )
                        return false;
                $path = untrailingslashit($path);
                if ( empty($path) )
                        return false;
@@ -292,11 +293,11 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return true;
        }
 
                return true;
        }
 
-       function rmdir($path, $recursive = false ) {
+       public function rmdir($path, $recursive = false ) {
                $this->delete($path, $recursive);
        }
 
                $this->delete($path, $recursive);
        }
 
-       function dirlist($path = '.', $include_hidden = true, $recursive = false ) {
+       public function dirlist($path = '.', $include_hidden = true, $recursive = false ) {
                if ( $this->is_file($path) ) {
                        $limit_file = basename($path);
                        $path = dirname($path) . '/';
                if ( $this->is_file($path) ) {
                        $limit_file = basename($path);
                        $path = dirname($path) . '/';
@@ -345,7 +346,7 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
                return $ret;
        }
 
                return $ret;
        }
 
-       function __destruct() {
+       public function __destruct() {
                $this->ftp->quit();
        }
 }
                $this->ftp->quit();
        }
 }
index 30a96b1da51ba7fbd71be4de5a63c388ebe28831..4618f2888811252ff531de06ce43b715f00581ce 100644 (file)
  */
 class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
 
  */
 class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
 
-       var $link = false;
-       var $sftp_link = false;
-       var $keys = false;
-       var $errors = array();
-       var $options = array();
+       public $link = false;
+       public $sftp_link = false;
+       public $keys = false;
+       public $errors = array();
+       public $options = array();
 
 
-       function __construct($opt='') {
+       public function __construct($opt='') {
                $this->method = 'ssh2';
                $this->errors = new WP_Error();
 
                $this->method = 'ssh2';
                $this->errors = new WP_Error();
 
@@ -85,7 +85,8 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                        $this->options['username'] = $opt['username'];
 
                if ( empty ($opt['password']) ) {
                        $this->options['username'] = $opt['username'];
 
                if ( empty ($opt['password']) ) {
-                       if ( !$this->keys )     //password can be blank if we are using keys
+                       // Password can be blank if we are using keys.
+                       if ( !$this->keys )
                                $this->errors->add('empty_password', __('SSH2 password is required'));
                } else {
                        $this->options['password'] = $opt['password'];
                                $this->errors->add('empty_password', __('SSH2 password is required'));
                } else {
                        $this->options['password'] = $opt['password'];
@@ -93,7 +94,7 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
 
        }
 
 
        }
 
-       function connect() {
+       public function connect() {
                if ( ! $this->keys ) {
                        $this->link = @ssh2_connect($this->options['hostname'], $this->options['port']);
                } else {
                if ( ! $this->keys ) {
                        $this->link = @ssh2_connect($this->options['hostname'], $this->options['port']);
                } else {
@@ -122,7 +123,7 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return true;
        }
 
                return true;
        }
 
-       function run_command( $command, $returnbool = false) {
+       public function run_command( $command, $returnbool = false) {
 
                if ( ! $this->link )
                        return false;
 
                if ( ! $this->link )
                        return false;
@@ -143,17 +144,17 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return false;
        }
 
                return false;
        }
 
-       function get_contents( $file ) {
+       public function get_contents( $file ) {
                $file = ltrim($file, '/');
                return file_get_contents('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
                $file = ltrim($file, '/');
                return file_get_contents('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
-       function get_contents_array($file) {
+       public function get_contents_array($file) {
                $file = ltrim($file, '/');
                return file('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
                $file = ltrim($file, '/');
                return file('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
-       function put_contents($file, $contents, $mode = false ) {
+       public function put_contents($file, $contents, $mode = false ) {
                $ret = file_put_contents( 'ssh2.sftp://' . $this->sftp_link . '/' . ltrim( $file, '/' ), $contents );
 
                if ( $ret !== strlen( $contents ) )
                $ret = file_put_contents( 'ssh2.sftp://' . $this->sftp_link . '/' . ltrim( $file, '/' ), $contents );
 
                if ( $ret !== strlen( $contents ) )
@@ -164,18 +165,18 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return true;
        }
 
                return true;
        }
 
-       function cwd() {
+       public function cwd() {
                $cwd = $this->run_command('pwd');
                if ( $cwd )
                        $cwd = trailingslashit($cwd);
                return $cwd;
        }
 
                $cwd = $this->run_command('pwd');
                if ( $cwd )
                        $cwd = trailingslashit($cwd);
                return $cwd;
        }
 
-       function chdir($dir) {
+       public function chdir($dir) {
                return $this->run_command('cd ' . $dir, true);
        }
 
                return $this->run_command('cd ' . $dir, true);
        }
 
-       function chgrp($file, $group, $recursive = false ) {
+       public function chgrp($file, $group, $recursive = false ) {
                if ( ! $this->exists($file) )
                        return false;
                if ( ! $recursive || ! $this->is_dir($file) )
                if ( ! $this->exists($file) )
                        return false;
                if ( ! $recursive || ! $this->is_dir($file) )
@@ -183,7 +184,7 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return $this->run_command(sprintf('chgrp -R %s %s', escapeshellarg($group), escapeshellarg($file)), true);
        }
 
                return $this->run_command(sprintf('chgrp -R %s %s', escapeshellarg($group), escapeshellarg($file)), true);
        }
 
-       function chmod($file, $mode = false, $recursive = false) {
+       public function chmod($file, $mode = false, $recursive = false) {
                if ( ! $this->exists($file) )
                        return false;
 
                if ( ! $this->exists($file) )
                        return false;
 
@@ -211,7 +212,7 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
         * @param bool $recursive Optional. If set True changes file owner recursivly. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
         * @param bool $recursive Optional. If set True changes file owner recursivly. Defaults to False.
         * @return bool Returns true on success or false on failure.
         */
-       function chown( $file, $owner, $recursive = false ) {
+       public function chown( $file, $owner, $recursive = false ) {
                if ( ! $this->exists($file) )
                        return false;
                if ( ! $recursive || ! $this->is_dir($file) )
                if ( ! $this->exists($file) )
                        return false;
                if ( ! $recursive || ! $this->is_dir($file) )
@@ -219,7 +220,7 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return $this->run_command(sprintf('chown -R %s %s', escapeshellarg($owner), escapeshellarg($file)), true);
        }
 
                return $this->run_command(sprintf('chown -R %s %s', escapeshellarg($owner), escapeshellarg($file)), true);
        }
 
-       function owner($file) {
+       public function owner($file) {
                $owneruid = @fileowner('ssh2.sftp://' . $this->sftp_link . '/' . ltrim($file, '/'));
                if ( ! $owneruid )
                        return false;
                $owneruid = @fileowner('ssh2.sftp://' . $this->sftp_link . '/' . ltrim($file, '/'));
                if ( ! $owneruid )
                        return false;
@@ -229,11 +230,11 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return $ownerarray['name'];
        }
 
                return $ownerarray['name'];
        }
 
-       function getchmod($file) {
+       public function getchmod($file) {
                return substr( decoct( @fileperms( 'ssh2.sftp://' . $this->sftp_link . '/' . ltrim( $file, '/' ) ) ), -3 );
        }
 
                return substr( decoct( @fileperms( 'ssh2.sftp://' . $this->sftp_link . '/' . ltrim( $file, '/' ) ) ), -3 );
        }
 
-       function group($file) {
+       public function group($file) {
                $gid = @filegroup('ssh2.sftp://' . $this->sftp_link . '/' . ltrim($file, '/'));
                if ( ! $gid )
                        return false;
                $gid = @filegroup('ssh2.sftp://' . $this->sftp_link . '/' . ltrim($file, '/'));
                if ( ! $gid )
                        return false;
@@ -243,7 +244,7 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return $grouparray['name'];
        }
 
                return $grouparray['name'];
        }
 
-       function copy($source, $destination, $overwrite = false, $mode = false) {
+       public function copy($source, $destination, $overwrite = false, $mode = false) {
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
                $content = $this->get_contents($source);
                if ( ! $overwrite && $this->exists($destination) )
                        return false;
                $content = $this->get_contents($source);
@@ -252,11 +253,11 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return $this->put_contents($destination, $content, $mode);
        }
 
                return $this->put_contents($destination, $content, $mode);
        }
 
-       function move($source, $destination, $overwrite = false) {
+       public function move($source, $destination, $overwrite = false) {
                return @ssh2_sftp_rename($this->link, $source, $destination);
        }
 
                return @ssh2_sftp_rename($this->link, $source, $destination);
        }
 
-       function delete($file, $recursive = false, $type = false) {
+       public function delete($file, $recursive = false, $type = false) {
                if ( 'f' == $type || $this->is_file($file) )
                        return ssh2_sftp_unlink($this->sftp_link, $file);
                if ( ! $recursive )
                if ( 'f' == $type || $this->is_file($file) )
                        return ssh2_sftp_unlink($this->sftp_link, $file);
                if ( ! $recursive )
@@ -270,51 +271,51 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return ssh2_sftp_rmdir($this->sftp_link, $file);
        }
 
                return ssh2_sftp_rmdir($this->sftp_link, $file);
        }
 
-       function exists($file) {
+       public function exists($file) {
                $file = ltrim($file, '/');
                return file_exists('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
                $file = ltrim($file, '/');
                return file_exists('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
-       function is_file($file) {
+       public function is_file($file) {
                $file = ltrim($file, '/');
                return is_file('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
                $file = ltrim($file, '/');
                return is_file('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
-       function is_dir($path) {
+       public function is_dir($path) {
                $path = ltrim($path, '/');
                return is_dir('ssh2.sftp://' . $this->sftp_link . '/' . $path);
        }
 
                $path = ltrim($path, '/');
                return is_dir('ssh2.sftp://' . $this->sftp_link . '/' . $path);
        }
 
-       function is_readable($file) {
+       public function is_readable($file) {
                $file = ltrim($file, '/');
                return is_readable('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
                $file = ltrim($file, '/');
                return is_readable('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
-       function is_writable($file) {
+       public function is_writable($file) {
                $file = ltrim($file, '/');
                return is_writable('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
                $file = ltrim($file, '/');
                return is_writable('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
-       function atime($file) {
+       public function atime($file) {
                $file = ltrim($file, '/');
                return fileatime('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
                $file = ltrim($file, '/');
                return fileatime('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
-       function mtime($file) {
+       public function mtime($file) {
                $file = ltrim($file, '/');
                return filemtime('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
                $file = ltrim($file, '/');
                return filemtime('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
-       function size($file) {
+       public function size($file) {
                $file = ltrim($file, '/');
                return filesize('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
                $file = ltrim($file, '/');
                return filesize('ssh2.sftp://' . $this->sftp_link . '/' . $file);
        }
 
-       function touch($file, $time = 0, $atime = 0) {
+       public function touch($file, $time = 0, $atime = 0) {
                //Not implemented.
        }
 
                //Not implemented.
        }
 
-       function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
+       public function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
                $path = untrailingslashit($path);
                if ( empty($path) )
                        return false;
                $path = untrailingslashit($path);
                if ( empty($path) )
                        return false;
@@ -330,11 +331,11 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
                return true;
        }
 
                return true;
        }
 
-       function rmdir($path, $recursive = false) {
+       public function rmdir($path, $recursive = false) {
                return $this->delete($path, $recursive);
        }
 
                return $this->delete($path, $recursive);
        }
 
-       function dirlist($path, $include_hidden = true, $recursive = false) {
+       public function dirlist($path, $include_hidden = true, $recursive = false) {
                if ( $this->is_file($path) ) {
                        $limit_file = basename($path);
                        $path = dirname($path);
                if ( $this->is_file($path) ) {
                        $limit_file = basename($path);
                        $path = dirname($path);
index 57ff7f4b93b0919828f5998e092b10efbacf9d5a..b54573f67508b72e693196ed4fff57204329fe5a 100644 (file)
@@ -8,7 +8,7 @@ class WP_Importer {
         *
         * @return void
         */
         *
         * @return void
         */
-       function __construct() {}
+       public function __construct() {}
 
        /**
         * Returns array with imported permalinks from WordPress database
 
        /**
         * Returns array with imported permalinks from WordPress database
@@ -16,7 +16,7 @@ class WP_Importer {
         * @param string $bid
         * @return array
         */
         * @param string $bid
         * @return array
         */
-       function get_imported_posts( $importer_name, $bid ) {
+       public function get_imported_posts( $importer_name, $bid ) {
                global $wpdb;
 
                $hashtable = array();
                global $wpdb;
 
                $hashtable = array();
@@ -41,7 +41,7 @@ class WP_Importer {
                        }
                } while ( count( $results ) == $limit );
 
                        }
                } while ( count( $results ) == $limit );
 
-               // unset to save memory
+               // Unset to save memory.
                unset( $results, $r );
 
                return $hashtable;
                unset( $results, $r );
 
                return $hashtable;
@@ -53,7 +53,7 @@ class WP_Importer {
         * @param string $bid
         * @return int
         */
         * @param string $bid
         * @return int
         */
-       function count_imported_posts( $importer_name, $bid ) {
+       public function count_imported_posts( $importer_name, $bid ) {
                global $wpdb;
 
                $count = 0;
                global $wpdb;
 
                $count = 0;
@@ -67,7 +67,7 @@ class WP_Importer {
                if ( !empty( $result ) )
                        $count = intval( $result[0]->cnt );
 
                if ( !empty( $result ) )
                        $count = intval( $result[0]->cnt );
 
-               // unset to save memory
+               // Unset to save memory.
                unset( $results );
 
                return $count;
                unset( $results );
 
                return $count;
@@ -79,7 +79,7 @@ class WP_Importer {
         * @param string $bid
         * @return array
         */
         * @param string $bid
         * @return array
         */
-       function get_imported_comments( $bid ) {
+       public function get_imported_comments( $bid ) {
                global $wpdb;
 
                $hashtable = array();
                global $wpdb;
 
                $hashtable = array();
@@ -109,13 +109,13 @@ class WP_Importer {
                        }
                } while ( count( $results ) == $limit );
 
                        }
                } while ( count( $results ) == $limit );
 
-               // unset to save memory
+               // Unset to save memory.
                unset( $results, $r );
 
                return $hashtable;
        }
 
                unset( $results, $r );
 
                return $hashtable;
        }
 
-       function set_blog( $blog_id ) {
+       public function set_blog( $blog_id ) {
                if ( is_numeric( $blog_id ) ) {
                        $blog_id = (int) $blog_id;
                } else {
                if ( is_numeric( $blog_id ) ) {
                        $blog_id = (int) $blog_id;
                } else {
@@ -142,7 +142,7 @@ class WP_Importer {
                return $blog_id;
        }
 
                return $blog_id;
        }
 
-       function set_user( $user_id ) {
+       public function set_user( $user_id ) {
                if ( is_numeric( $user_id ) ) {
                        $user_id = (int) $user_id;
                } else {
                if ( is_numeric( $user_id ) ) {
                        $user_id = (int) $user_id;
                } else {
@@ -164,7 +164,7 @@ class WP_Importer {
         * @param string $b
         * @return int
         */
         * @param string $b
         * @return int
         */
-       function cmpr_strlen( $a, $b ) {
+       public function cmpr_strlen( $a, $b ) {
                return strlen( $b ) - strlen( $a );
        }
 
                return strlen( $b ) - strlen( $a );
        }
 
@@ -177,7 +177,7 @@ class WP_Importer {
         * @param bool $head
         * @return array
         */
         * @param bool $head
         * @return array
         */
-       function get_page( $url, $username = '', $password = '', $head = false ) {
+       public function get_page( $url, $username = '', $password = '', $head = false ) {
                // Increase the timeout
                add_filter( 'http_request_timeout', array( $this, 'bump_request_timeout' ) );
 
                // Increase the timeout
                add_filter( 'http_request_timeout', array( $this, 'bump_request_timeout' ) );
 
@@ -199,7 +199,7 @@ class WP_Importer {
         * @param int $val
         * @return int
         */
         * @param int $val
         * @return int
         */
-       function bump_request_timeout( $val ) {
+       public function bump_request_timeout( $val ) {
                return 60;
        }
 
                return 60;
        }
 
@@ -208,7 +208,7 @@ class WP_Importer {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_user_over_quota() {
+       public function is_user_over_quota() {
                if ( function_exists( 'upload_is_user_over_quota' ) ) {
                        if ( upload_is_user_over_quota( 1 ) ) {
                                echo "Sorry, you have used your upload quota.\n";
                if ( function_exists( 'upload_is_user_over_quota' ) ) {
                        if ( upload_is_user_over_quota( 1 ) ) {
                                echo "Sorry, you have used your upload quota.\n";
@@ -225,7 +225,7 @@ class WP_Importer {
         * @param string $string
         * @return string
         */
         * @param string $string
         * @return string
         */
-       function min_whitespace( $string ) {
+       public function min_whitespace( $string ) {
                return preg_replace( '|[\r\n\t ]+|', ' ', $string );
        }
 
                return preg_replace( '|[\r\n\t ]+|', ' ', $string );
        }
 
@@ -234,7 +234,7 @@ class WP_Importer {
         *
         * @return void
         */
         *
         * @return void
         */
-       function stop_the_insanity() {
+       public function stop_the_insanity() {
                global $wpdb, $wp_actions;
                // Or define( 'WP_IMPORTING', true );
                $wpdb->queries = array();
                global $wpdb, $wp_actions;
                // Or define( 'WP_IMPORTING', true );
                $wpdb->queries = array();
index 98281b0367ad1d3db58b46d616929fdfdb3a5fc8..7f2760d4261719f1fe18776b34169b6f96484149 100644 (file)
@@ -9,18 +9,28 @@
  */
 class WP_Links_List_Table extends WP_List_Table {
 
  */
 class WP_Links_List_Table extends WP_List_Table {
 
-       function __construct( $args = array() ) {
+       /**
+        * Constructor.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
+        */
+       public function __construct( $args = array() ) {
                parent::__construct( array(
                        'plural' => 'bookmarks',
                        'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
                ) );
        }
 
                parent::__construct( array(
                        'plural' => 'bookmarks',
                        'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
                ) );
        }
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                return current_user_can( 'manage_links' );
        }
 
                return current_user_can( 'manage_links' );
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                global $cat_id, $s, $orderby, $order;
 
                wp_reset_vars( array( 'action', 'cat_id', 'link_id', 'orderby', 'order', 's' ) );
                global $cat_id, $s, $orderby, $order;
 
                wp_reset_vars( array( 'action', 'cat_id', 'link_id', 'orderby', 'order', 's' ) );
@@ -39,18 +49,18 @@ class WP_Links_List_Table extends WP_List_Table {
                $this->items = get_bookmarks( $args );
        }
 
                $this->items = get_bookmarks( $args );
        }
 
-       function no_items() {
+       public function no_items() {
                _e( 'No links found.' );
        }
 
                _e( 'No links found.' );
        }
 
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                $actions = array();
                $actions['delete'] = __( 'Delete' );
 
                return $actions;
        }
 
                $actions = array();
                $actions['delete'] = __( 'Delete' );
 
                return $actions;
        }
 
-       function extra_tablenav( $which ) {
+       protected function extra_tablenav( $which ) {
                global $cat_id;
 
                if ( 'top' != $which )
                global $cat_id;
 
                if ( 'top' != $which )
@@ -69,13 +79,13 @@ class WP_Links_List_Table extends WP_List_Table {
                                'orderby' => 'name',
                        );
                        wp_dropdown_categories( $dropdown_options );
                                'orderby' => 'name',
                        );
                        wp_dropdown_categories( $dropdown_options );
-                       submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
+                       submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
 ?>
                </div>
 <?php
        }
 
 ?>
                </div>
 <?php
        }
 
-       function get_columns() {
+       public function get_columns() {
                return array(
                        'cb'         => '<input type="checkbox" />',
                        'name'       => _x( 'Name', 'link name' ),
                return array(
                        'cb'         => '<input type="checkbox" />',
                        'name'       => _x( 'Name', 'link name' ),
@@ -87,7 +97,7 @@ class WP_Links_List_Table extends WP_List_Table {
                );
        }
 
                );
        }
 
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array(
                        'name'    => 'name',
                        'url'     => 'url',
                return array(
                        'name'    => 'name',
                        'url'     => 'url',
@@ -96,7 +106,7 @@ class WP_Links_List_Table extends WP_List_Table {
                );
        }
 
                );
        }
 
-       function display_rows() {
+       public function display_rows() {
                global $cat_id;
 
                $alt = 0;
                global $cat_id;
 
                $alt = 0;
index 3aa066d8afb8163eda145ee607bbdc27c8b9e36f..8d2bc51e002dc7b5558c0c6de047b05a6eb4e144 100644 (file)
@@ -2,10 +2,11 @@
 /**
  * Base class for displaying a list of items in an ajaxified HTML table.
  *
 /**
  * Base class for displaying a list of items in an ajaxified HTML table.
  *
- * @package WordPress
- * @subpackage List_Table
  * @since 3.1.0
  * @access private
  * @since 3.1.0
  * @access private
+ *
+ * @package WordPress
+ * @subpackage List_Table
  */
 class WP_List_Table {
 
  */
 class WP_List_Table {
 
@@ -14,9 +15,9 @@ class WP_List_Table {
         *
         * @since 3.1.0
         * @var array
         *
         * @since 3.1.0
         * @var array
-        * @access protected
+        * @access public
         */
         */
-       var $items;
+       public $items;
 
        /**
         * Various information about the current table
 
        /**
         * Various information about the current table
@@ -25,7 +26,7 @@ class WP_List_Table {
         * @var array
         * @access private
         */
         * @var array
         * @access private
         */
-       var $_args;
+       private $_args;
 
        /**
         * Various information needed for displaying the pagination
 
        /**
         * Various information needed for displaying the pagination
@@ -34,7 +35,7 @@ class WP_List_Table {
         * @var array
         * @access private
         */
         * @var array
         * @access private
         */
-       var $_pagination_args = array();
+       private $_pagination_args = array();
 
        /**
         * The current screen
 
        /**
         * The current screen
@@ -43,7 +44,7 @@ class WP_List_Table {
         * @var object
         * @access protected
         */
         * @var object
         * @access protected
         */
-       var $screen;
+       protected $screen;
 
        /**
         * Cached bulk actions
 
        /**
         * Cached bulk actions
@@ -52,7 +53,7 @@ class WP_List_Table {
         * @var array
         * @access private
         */
         * @var array
         * @access private
         */
-       var $_actions;
+       private $_actions;
 
        /**
         * Cached pagination output
 
        /**
         * Cached pagination output
@@ -61,15 +62,35 @@ class WP_List_Table {
         * @var string
         * @access private
         */
         * @var string
         * @access private
         */
-       var $_pagination;
+       private $_pagination;
 
        /**
 
        /**
-        * Constructor. The child class should call this constructor from its own constructor
+        * Constructor.
         *
         *
-        * @param array $args An associative array with information about the current table
-        * @access protected
+        * The child class should call this constructor from its own constructor to override
+        * the default $args.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @param array|string $args {
+        *     Array or string of arguments.
+        *
+        *     @type string $plural   Plural value used for labels and the objects being listed.
+        *                            This affects things such as CSS class-names and nonces used
+        *                            in the list table, e.g. 'posts'. Default empty.
+        *     @type string $singular Singular label for an object being listed, e.g. 'post'.
+        *                            Default empty
+        *     @type bool   $ajax     Whether the list table supports AJAX. This includes loading
+        *                            and sorting data, for example. If true, the class will call
+        *                            the {@see _js_vars()} method in the footer to provide variables
+        *                            to any scripts handling AJAX events. Default false.
+        *     @type string $screen   String containing the hook name used to determine the current
+        *                            screen. If left null, the current screen will be automatically set.
+        *                            Default null.
+        * }
         */
         */
-       function __construct( $args = array() ) {
+       public function __construct( $args = array() ) {
                $args = wp_parse_args( $args, array(
                        'plural' => '',
                        'singular' => '',
                $args = wp_parse_args( $args, array(
                        'plural' => '',
                        'singular' => '',
@@ -95,6 +116,72 @@ class WP_List_Table {
                }
        }
 
                }
        }
 
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
+       /**
+        * Make private/protected methods readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param callable $name      Method to call.
+        * @param array    $arguments Arguments to pass when calling.
+        * @return mixed|bool Return value of the callback, false otherwise.
+        */
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this, $name ), $arguments );
+       }
+
        /**
         * Checks the current user's permissions
         * @uses wp_die()
        /**
         * Checks the current user's permissions
         * @uses wp_die()
@@ -103,7 +190,7 @@ class WP_List_Table {
         * @access public
         * @abstract
         */
         * @access public
         * @abstract
         */
-       function ajax_user_can() {
+       public function ajax_user_can() {
                die( 'function WP_List_Table::ajax_user_can() must be over-ridden in a sub-class.' );
        }
 
                die( 'function WP_List_Table::ajax_user_can() must be over-ridden in a sub-class.' );
        }
 
@@ -115,7 +202,7 @@ class WP_List_Table {
         * @access public
         * @abstract
         */
         * @access public
         * @abstract
         */
-       function prepare_items() {
+       public function prepare_items() {
                die( 'function WP_List_Table::prepare_items() must be over-ridden in a sub-class.' );
        }
 
                die( 'function WP_List_Table::prepare_items() must be over-ridden in a sub-class.' );
        }
 
@@ -125,7 +212,7 @@ class WP_List_Table {
         * @param array $args An associative array with information about the pagination
         * @access protected
         */
         * @param array $args An associative array with information about the pagination
         * @access protected
         */
-       function set_pagination_args( $args ) {
+       protected function set_pagination_args( $args ) {
                $args = wp_parse_args( $args, array(
                        'total_items' => 0,
                        'total_pages' => 0,
                $args = wp_parse_args( $args, array(
                        'total_items' => 0,
                        'total_pages' => 0,
@@ -135,7 +222,7 @@ class WP_List_Table {
                if ( !$args['total_pages'] && $args['per_page'] > 0 )
                        $args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] );
 
                if ( !$args['total_pages'] && $args['per_page'] > 0 )
                        $args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] );
 
-               // redirect if page number is invalid and headers are not already sent
+               // Redirect if page number is invalid and headers are not already sent.
                if ( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) {
                        wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) );
                        exit;
                if ( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) {
                        wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) );
                        exit;
@@ -153,7 +240,7 @@ class WP_List_Table {
         * @param string $key
         * @return array
         */
         * @param string $key
         * @return array
         */
-       function get_pagination_arg( $key ) {
+       public function get_pagination_arg( $key ) {
                if ( 'page' == $key )
                        return $this->get_pagenum();
 
                if ( 'page' == $key )
                        return $this->get_pagenum();
 
@@ -169,7 +256,7 @@ class WP_List_Table {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function has_items() {
+       public function has_items() {
                return !empty( $this->items );
        }
 
                return !empty( $this->items );
        }
 
@@ -179,7 +266,7 @@ class WP_List_Table {
         * @since 3.1.0
         * @access public
         */
         * @since 3.1.0
         * @access public
         */
-       function no_items() {
+       public function no_items() {
                _e( 'No items found.' );
        }
 
                _e( 'No items found.' );
        }
 
@@ -192,7 +279,7 @@ class WP_List_Table {
         * @param string $text The search button text
         * @param string $input_id The search input id
         */
         * @param string $text The search button text
         * @param string $input_id The search input id
         */
-       function search_box( $text, $input_id ) {
+       public function search_box( $text, $input_id ) {
                if ( empty( $_REQUEST['s'] ) && !$this->has_items() )
                        return;
 
                if ( empty( $_REQUEST['s'] ) && !$this->has_items() )
                        return;
 
@@ -224,7 +311,7 @@ class WP_List_Table {
         *
         * @return array
         */
         *
         * @return array
         */
-       function get_views() {
+       protected function get_views() {
                return array();
        }
 
                return array();
        }
 
@@ -234,7 +321,7 @@ class WP_List_Table {
         * @since 3.1.0
         * @access public
         */
         * @since 3.1.0
         * @access public
         */
-       function views() {
+       public function views() {
                $views = $this->get_views();
                /**
                 * Filter the list of available list table views.
                $views = $this->get_views();
                /**
                 * Filter the list of available list table views.
@@ -268,7 +355,7 @@ class WP_List_Table {
         *
         * @return array
         */
         *
         * @return array
         */
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                return array();
        }
 
                return array();
        }
 
@@ -276,9 +363,12 @@ class WP_List_Table {
         * Display the bulk actions dropdown.
         *
         * @since 3.1.0
         * Display the bulk actions dropdown.
         *
         * @since 3.1.0
-        * @access public
+        * @access protected
+        *
+        * @param string $which The location of the bulk actions: 'top' or 'bottom'.
+        *                      This is designated as optional for backwards-compatibility.
         */
         */
-       function bulk_actions() {
+       protected function bulk_actions( $which = '' ) {
                if ( is_null( $this->_actions ) ) {
                        $no_new_actions = $this->_actions = $this->get_bulk_actions();
                        /**
                if ( is_null( $this->_actions ) ) {
                        $no_new_actions = $this->_actions = $this->get_bulk_actions();
                        /**
@@ -303,7 +393,8 @@ class WP_List_Table {
                if ( empty( $this->_actions ) )
                        return;
 
                if ( empty( $this->_actions ) )
                        return;
 
-               echo "<select name='action$two'>\n";
+               echo "<label for='bulk-action-selector-" . esc_attr( $which ) . "' class='screen-reader-text'>" . __( 'Select bulk action' ) . "</label>";
+               echo "<select name='action$two' id='bulk-action-selector-" . esc_attr( $which ) . "'>\n";
                echo "<option value='-1' selected='selected'>" . __( 'Bulk Actions' ) . "</option>\n";
 
                foreach ( $this->_actions as $name => $title ) {
                echo "<option value='-1' selected='selected'>" . __( 'Bulk Actions' ) . "</option>\n";
 
                foreach ( $this->_actions as $name => $title ) {
@@ -326,7 +417,10 @@ class WP_List_Table {
         *
         * @return string|bool The action name or False if no action was selected
         */
         *
         * @return string|bool The action name or False if no action was selected
         */
-       function current_action() {
+       public function current_action() {
+               if ( isset( $_REQUEST['filter_action'] ) && ! empty( $_REQUEST['filter_action'] ) )
+                       return false;
+
                if ( isset( $_REQUEST['action'] ) && -1 != $_REQUEST['action'] )
                        return $_REQUEST['action'];
 
                if ( isset( $_REQUEST['action'] ) && -1 != $_REQUEST['action'] )
                        return $_REQUEST['action'];
 
@@ -346,7 +440,7 @@ class WP_List_Table {
         * @param bool $always_visible Whether the actions should be always visible
         * @return string
         */
         * @param bool $always_visible Whether the actions should be always visible
         * @return string
         */
-       function row_actions( $actions, $always_visible = false ) {
+       protected function row_actions( $actions, $always_visible = false ) {
                $action_count = count( $actions );
                $i = 0;
 
                $action_count = count( $actions );
                $i = 0;
 
@@ -370,7 +464,7 @@ class WP_List_Table {
         * @since 3.1.0
         * @access protected
         */
         * @since 3.1.0
         * @access protected
         */
-       function months_dropdown( $post_type ) {
+       protected function months_dropdown( $post_type ) {
                global $wpdb, $wp_locale;
 
                $months = $wpdb->get_results( $wpdb->prepare( "
                global $wpdb, $wp_locale;
 
                $months = $wpdb->get_results( $wpdb->prepare( "
@@ -397,8 +491,9 @@ class WP_List_Table {
 
                $m = isset( $_GET['m'] ) ? (int) $_GET['m'] : 0;
 ?>
 
                $m = isset( $_GET['m'] ) ? (int) $_GET['m'] : 0;
 ?>
-               <select name='m'>
-                       <option<?php selected( $m, 0 ); ?> value='0'><?php _e( 'All dates' ); ?></option>
+               <label for="filter-by-date" class="screen-reader-text"><?php _e( 'Filter by date' ); ?></label>
+               <select name="m" id="filter-by-date">
+                       <option<?php selected( $m, 0 ); ?> value="0"><?php _e( 'All dates' ); ?></option>
 <?php
                foreach ( $months as $arc_row ) {
                        if ( 0 == $arc_row->year )
 <?php
                foreach ( $months as $arc_row ) {
                        if ( 0 == $arc_row->year )
@@ -425,7 +520,7 @@ class WP_List_Table {
         * @since 3.1.0
         * @access protected
         */
         * @since 3.1.0
         * @access protected
         */
-       function view_switcher( $current_mode ) {
+       protected function view_switcher( $current_mode ) {
                $modes = array(
                        'list'    => __( 'List View' ),
                        'excerpt' => __( 'Excerpt View' )
                $modes = array(
                        'list'    => __( 'List View' ),
                        'excerpt' => __( 'Excerpt View' )
@@ -436,8 +531,15 @@ class WP_List_Table {
                <div class="view-switch">
 <?php
                        foreach ( $modes as $mode => $title ) {
                <div class="view-switch">
 <?php
                        foreach ( $modes as $mode => $title ) {
-                               $class = ( $current_mode == $mode ) ? 'class="current"' : '';
-                               echo "<a href='" . esc_url( add_query_arg( 'mode', $mode, $_SERVER['REQUEST_URI'] ) ) . "' $class><img id='view-switch-$mode' src='" . esc_url( includes_url( 'images/blank.gif' ) ) . "' width='20' height='20' title='$title' alt='$title' /></a>\n";
+                               $classes = array( 'view-' . $mode );
+                               if ( $current_mode == $mode )
+                                       $classes[] = 'current';
+                               printf(
+                                       "<a href='%s' class='%s' id='view-switch-$mode'><span class='screen-reader-text'>%s</span></a>\n",
+                                       esc_url( add_query_arg( 'mode', $mode ) ),
+                                       implode( ' ', $classes ),
+                                       $title
+                               );
                        }
                ?>
                </div>
                        }
                ?>
                </div>
@@ -450,10 +552,10 @@ class WP_List_Table {
         * @since 3.1.0
         * @access protected
         *
         * @since 3.1.0
         * @access protected
         *
-        * @param int $post_id
-        * @param int $pending_comments
+        * @param int $post_id          The post ID.
+        * @param int $pending_comments Number of pending comments.
         */
         */
-       function comments_bubble( $post_id, $pending_comments ) {
+       protected function comments_bubble( $post_id, $pending_comments ) {
                $pending_phrase = sprintf( __( '%s pending' ), number_format( $pending_comments ) );
 
                if ( $pending_comments )
                $pending_phrase = sprintf( __( '%s pending' ), number_format( $pending_comments ) );
 
                if ( $pending_comments )
@@ -469,11 +571,11 @@ class WP_List_Table {
         * Get the current page number
         *
         * @since 3.1.0
         * Get the current page number
         *
         * @since 3.1.0
-        * @access protected
+        * @access public
         *
         * @return int
         */
         *
         * @return int
         */
-       function get_pagenum() {
+       public function get_pagenum() {
                $pagenum = isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 0;
 
                if( isset( $this->_pagination_args['total_pages'] ) && $pagenum > $this->_pagination_args['total_pages'] )
                $pagenum = isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 0;
 
                if( isset( $this->_pagination_args['total_pages'] ) && $pagenum > $this->_pagination_args['total_pages'] )
@@ -490,7 +592,7 @@ class WP_List_Table {
         *
         * @return int
         */
         *
         * @return int
         */
-       function get_items_per_page( $option, $default = 20 ) {
+       protected function get_items_per_page( $option, $default = 20 ) {
                $per_page = (int) get_user_option( $option );
                if ( empty( $per_page ) || $per_page < 1 )
                        $per_page = $default;
                $per_page = (int) get_user_option( $option );
                if ( empty( $per_page ) || $per_page < 1 )
                        $per_page = $default;
@@ -516,11 +618,17 @@ class WP_List_Table {
         * @since 3.1.0
         * @access protected
         */
         * @since 3.1.0
         * @access protected
         */
-       function pagination( $which ) {
-               if ( empty( $this->_pagination_args ) )
+       protected function pagination( $which ) {
+               if ( empty( $this->_pagination_args ) ) {
                        return;
                        return;
+               }
 
 
-               extract( $this->_pagination_args, EXTR_SKIP );
+               $total_items = $this->_pagination_args['total_items'];
+               $total_pages = $this->_pagination_args['total_pages'];
+               $infinite_scroll = false;
+               if ( isset( $this->_pagination_args['infinite_scroll'] ) ) {
+                       $infinite_scroll = $this->_pagination_args['infinite_scroll'];
+               }
 
                $output = '<span class="displaying-num">' . sprintf( _n( '1 item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
 
 
                $output = '<span class="displaying-num">' . sprintf( _n( '1 item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
 
@@ -533,11 +641,12 @@ class WP_List_Table {
                $page_links = array();
 
                $disable_first = $disable_last = '';
                $page_links = array();
 
                $disable_first = $disable_last = '';
-               if ( $current == 1 )
+               if ( $current == 1 ) {
                        $disable_first = ' disabled';
                        $disable_first = ' disabled';
-               if ( $current == $total_pages )
+               }
+               if ( $current == $total_pages ) {
                        $disable_last = ' disabled';
                        $disable_last = ' disabled';
-
+               }
                $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
                        'first-page' . $disable_first,
                        esc_attr__( 'Go to the first page' ),
                $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
                        'first-page' . $disable_first,
                        esc_attr__( 'Go to the first page' ),
@@ -552,15 +661,16 @@ class WP_List_Table {
                        '&lsaquo;'
                );
 
                        '&lsaquo;'
                );
 
-               if ( 'bottom' == $which )
+               if ( 'bottom' == $which ) {
                        $html_current_page = $current;
                        $html_current_page = $current;
-               else
-                       $html_current_page = sprintf( "<input class='current-page' title='%s' type='text' name='paged' value='%s' size='%d' />",
+               } else {
+                       $html_current_page = sprintf( "%s<input class='current-page' id='current-page-selector' title='%s' type='text' name='paged' value='%s' size='%d' />",
+                               '<label for="current-page-selector" class="screen-reader-text">' . __( 'Select Page' ) . '</label>',
                                esc_attr__( 'Current page' ),
                                $current,
                                strlen( $total_pages )
                        );
                                esc_attr__( 'Current page' ),
                                $current,
                                strlen( $total_pages )
                        );
-
+               }
                $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
                $page_links[] = '<span class="paging-input">' . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . '</span>';
 
                $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
                $page_links[] = '<span class="paging-input">' . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . '</span>';
 
@@ -579,15 +689,16 @@ class WP_List_Table {
                );
 
                $pagination_links_class = 'pagination-links';
                );
 
                $pagination_links_class = 'pagination-links';
-               if ( ! empty( $infinite_scroll ) )
+               if ( ! empty( $infinite_scroll ) ) {
                        $pagination_links_class = ' hide-if-js';
                        $pagination_links_class = ' hide-if-js';
+               }
                $output .= "\n<span class='$pagination_links_class'>" . join( "\n", $page_links ) . '</span>';
 
                $output .= "\n<span class='$pagination_links_class'>" . join( "\n", $page_links ) . '</span>';
 
-               if ( $total_pages )
+               if ( $total_pages ) {
                        $page_class = $total_pages < 2 ? ' one-page' : '';
                        $page_class = $total_pages < 2 ? ' one-page' : '';
-               else
+               } else {
                        $page_class = ' no-pages';
                        $page_class = ' no-pages';
-
+               }
                $this->_pagination = "<div class='tablenav-pages{$page_class}'>$output</div>";
 
                echo $this->_pagination;
                $this->_pagination = "<div class='tablenav-pages{$page_class}'>$output</div>";
 
                echo $this->_pagination;
@@ -598,12 +709,12 @@ class WP_List_Table {
         * 'internal-name' => 'Title'
         *
         * @since 3.1.0
         * 'internal-name' => 'Title'
         *
         * @since 3.1.0
-        * @access protected
+        * @access public
         * @abstract
         *
         * @return array
         */
         * @abstract
         *
         * @return array
         */
-       function get_columns() {
+       public function get_columns() {
                die( 'function WP_List_Table::get_columns() must be over-ridden in a sub-class.' );
        }
 
                die( 'function WP_List_Table::get_columns() must be over-ridden in a sub-class.' );
        }
 
@@ -620,7 +731,7 @@ class WP_List_Table {
         *
         * @return array
         */
         *
         * @return array
         */
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array();
        }
 
                return array();
        }
 
@@ -632,7 +743,7 @@ class WP_List_Table {
         *
         * @return array
         */
         *
         * @return array
         */
-       function get_column_info() {
+       protected function get_column_info() {
                if ( isset( $this->_column_headers ) )
                        return $this->_column_headers;
 
                if ( isset( $this->_column_headers ) )
                        return $this->_column_headers;
 
@@ -677,7 +788,7 @@ class WP_List_Table {
         *
         * @return int
         */
         *
         * @return int
         */
-       function get_column_count() {
+       public function get_column_count() {
                list ( $columns, $hidden ) = $this->get_column_info();
                $hidden = array_intersect( array_keys( $columns ), array_filter( $hidden ) );
                return count( $columns ) - count( $hidden );
                list ( $columns, $hidden ) = $this->get_column_info();
                $hidden = array_intersect( array_keys( $columns ), array_filter( $hidden ) );
                return count( $columns ) - count( $hidden );
@@ -687,11 +798,11 @@ class WP_List_Table {
         * Print column headers, accounting for hidden and sortable columns.
         *
         * @since 3.1.0
         * Print column headers, accounting for hidden and sortable columns.
         *
         * @since 3.1.0
-        * @access protected
+        * @access public
         *
         * @param bool $with_id Whether to set the id attribute or not
         */
         *
         * @param bool $with_id Whether to set the id attribute or not
         */
-       function print_column_headers( $with_id = true ) {
+       public function print_column_headers( $with_id = true ) {
                list( $columns, $hidden, $sortable ) = $this->get_column_info();
 
                $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
                list( $columns, $hidden, $sortable ) = $this->get_column_info();
 
                $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
@@ -759,8 +870,8 @@ class WP_List_Table {
         * @since 3.1.0
         * @access public
         */
         * @since 3.1.0
         * @access public
         */
-       function display() {
-               extract( $this->_args );
+       public function display() {
+               $singular = $this->_args['singular'];
 
                $this->display_tablenav( 'top' );
 
 
                $this->display_tablenav( 'top' );
 
@@ -778,7 +889,10 @@ class WP_List_Table {
        </tr>
        </tfoot>
 
        </tr>
        </tfoot>
 
-       <tbody id="the-list"<?php if ( $singular ) echo " data-wp-lists='list:$singular'"; ?>>
+       <tbody id="the-list"<?php
+               if ( $singular ) {
+                       echo " data-wp-lists='list:$singular'";
+               } ?>>
                <?php $this->display_rows_or_placeholder(); ?>
        </tbody>
 </table>
                <?php $this->display_rows_or_placeholder(); ?>
        </tbody>
 </table>
@@ -794,7 +908,7 @@ class WP_List_Table {
         *
         * @return array
         */
         *
         * @return array
         */
-       function get_table_classes() {
+       protected function get_table_classes() {
                return array( 'widefat', 'fixed', $this->_args['plural'] );
        }
 
                return array( 'widefat', 'fixed', $this->_args['plural'] );
        }
 
@@ -804,14 +918,14 @@ class WP_List_Table {
         * @since 3.1.0
         * @access protected
         */
         * @since 3.1.0
         * @access protected
         */
-       function display_tablenav( $which ) {
+       protected function display_tablenav( $which ) {
                if ( 'top' == $which )
                        wp_nonce_field( 'bulk-' . $this->_args['plural'] );
 ?>
        <div class="tablenav <?php echo esc_attr( $which ); ?>">
 
                <div class="alignleft actions bulkactions">
                if ( 'top' == $which )
                        wp_nonce_field( 'bulk-' . $this->_args['plural'] );
 ?>
        <div class="tablenav <?php echo esc_attr( $which ); ?>">
 
                <div class="alignleft actions bulkactions">
-                       <?php $this->bulk_actions(); ?>
+                       <?php $this->bulk_actions( $which ); ?>
                </div>
 <?php
                $this->extra_tablenav( $which );
                </div>
 <?php
                $this->extra_tablenav( $which );
@@ -829,19 +943,18 @@ class WP_List_Table {
         * @since 3.1.0
         * @access protected
         */
         * @since 3.1.0
         * @access protected
         */
-       function extra_tablenav( $which ) {}
+       protected function extra_tablenav( $which ) {}
 
        /**
         * Generate the <tbody> part of the table
         *
         * @since 3.1.0
 
        /**
         * Generate the <tbody> part of the table
         *
         * @since 3.1.0
-        * @access protected
+        * @access public
         */
         */
-       function display_rows_or_placeholder() {
+       public function display_rows_or_placeholder() {
                if ( $this->has_items() ) {
                        $this->display_rows();
                } else {
                if ( $this->has_items() ) {
                        $this->display_rows();
                } else {
-                       list( $columns, $hidden ) = $this->get_column_info();
                        echo '<tr class="no-items"><td class="colspanchange" colspan="' . $this->get_column_count() . '">';
                        $this->no_items();
                        echo '</td></tr>';
                        echo '<tr class="no-items"><td class="colspanchange" colspan="' . $this->get_column_count() . '">';
                        $this->no_items();
                        echo '</td></tr>';
@@ -852,9 +965,9 @@ class WP_List_Table {
         * Generate the table rows
         *
         * @since 3.1.0
         * Generate the table rows
         *
         * @since 3.1.0
-        * @access protected
+        * @access public
         */
         */
-       function display_rows() {
+       public function display_rows() {
                foreach ( $this->items as $item )
                        $this->single_row( $item );
        }
                foreach ( $this->items as $item )
                        $this->single_row( $item );
        }
@@ -863,11 +976,11 @@ class WP_List_Table {
         * Generates content for a single row of the table
         *
         * @since 3.1.0
         * Generates content for a single row of the table
         *
         * @since 3.1.0
-        * @access protected
+        * @access public
         *
         * @param object $item The current item
         */
         *
         * @param object $item The current item
         */
-       function single_row( $item ) {
+       public function single_row( $item ) {
                static $row_class = '';
                $row_class = ( $row_class == '' ? ' class="alternate"' : '' );
 
                static $row_class = '';
                $row_class = ( $row_class == '' ? ' class="alternate"' : '' );
 
@@ -884,7 +997,7 @@ class WP_List_Table {
         *
         * @param object $item The current item
         */
         *
         * @param object $item The current item
         */
-       function single_row_columns( $item ) {
+       protected function single_row_columns( $item ) {
                list( $columns, $hidden ) = $this->get_column_info();
 
                foreach ( $columns as $column_name => $column_display_name ) {
                list( $columns, $hidden ) = $this->get_column_info();
 
                foreach ( $columns as $column_name => $column_display_name ) {
@@ -920,28 +1033,29 @@ class WP_List_Table {
         * @since 3.1.0
         * @access public
         */
         * @since 3.1.0
         * @access public
         */
-       function ajax_response() {
+       public function ajax_response() {
                $this->prepare_items();
 
                $this->prepare_items();
 
-               extract( $this->_args );
-               extract( $this->_pagination_args, EXTR_SKIP );
-
                ob_start();
                ob_start();
-               if ( ! empty( $_REQUEST['no_placeholder'] ) )
+               if ( ! empty( $_REQUEST['no_placeholder'] ) ) {
                        $this->display_rows();
                        $this->display_rows();
-               else
+               } else {
                        $this->display_rows_or_placeholder();
                        $this->display_rows_or_placeholder();
+               }
 
                $rows = ob_get_clean();
 
                $response = array( 'rows' => $rows );
 
 
                $rows = ob_get_clean();
 
                $response = array( 'rows' => $rows );
 
-               if ( isset( $total_items ) )
-                       $response['total_items_i18n'] = sprintf( _n( '1 item', '%s items', $total_items ), number_format_i18n( $total_items ) );
-
-               if ( isset( $total_pages ) ) {
-                       $response['total_pages'] = $total_pages;
-                       $response['total_pages_i18n'] = number_format_i18n( $total_pages );
+               if ( isset( $this->_pagination_args['total_items'] ) ) {
+                       $response['total_items_i18n'] = sprintf(
+                               _n( '1 item', '%s items', $this->_pagination_args['total_items'] ),
+                               number_format_i18n( $this->_pagination_args['total_items'] )
+                       );
+               }
+               if ( isset( $this->_pagination_args['total_pages'] ) ) {
+                       $response['total_pages'] = $this->_pagination_args['total_pages'];
+                       $response['total_pages_i18n'] = number_format_i18n( $this->_pagination_args['total_pages'] );
                }
 
                die( json_encode( $response ) );
                }
 
                die( json_encode( $response ) );
@@ -950,9 +1064,9 @@ class WP_List_Table {
        /**
         * Send required variables to JavaScript land
         *
        /**
         * Send required variables to JavaScript land
         *
-        * @access private
+        * @access public
         */
         */
-       function _js_vars() {
+       public function _js_vars() {
                $args = array(
                        'class'  => get_class( $this ),
                        'screen' => array(
                $args = array(
                        'class'  => get_class( $this ),
                        'screen' => array(
index 48e4363980c56860fde98bbcd9ec83f53c0814da..237c99d155fe6b52c15637f3b7ec408fe3f6576f 100644 (file)
@@ -9,8 +9,18 @@
  */
 class WP_Media_List_Table extends WP_List_Table {
 
  */
 class WP_Media_List_Table extends WP_List_Table {
 
-       function __construct( $args = array() ) {
-               $this->detached = isset( $_REQUEST['detached'] ) || isset( $_REQUEST['find_detached'] );
+       /**
+        * Constructor.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
+        */
+       public function __construct( $args = array() ) {
+               $this->detached = ( isset( $_REQUEST['attachment-filter'] ) && 'detached' === $_REQUEST['attachment-filter'] );
 
                parent::__construct( array(
                        'plural' => 'media',
 
                parent::__construct( array(
                        'plural' => 'media',
@@ -18,21 +28,18 @@ class WP_Media_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                return current_user_can('upload_files');
        }
 
                return current_user_can('upload_files');
        }
 
-       function prepare_items() {
-               global $lost, $wpdb, $wp_query, $post_mime_types, $avail_post_mime_types;
+       public function prepare_items() {
+               global $wp_query, $post_mime_types, $avail_post_mime_types, $mode;
 
 
-               $q = $_REQUEST;
+               list( $post_mime_types, $avail_post_mime_types ) = wp_edit_attachments_query( $_REQUEST );
 
 
-               if ( !empty( $lost ) )
-                       $q['post__in'] = implode( ',', $lost );
+               $this->is_trash = isset( $_REQUEST['attachment-filter'] ) && 'trash' == $_REQUEST['attachment-filter'];
 
 
-               list( $post_mime_types, $avail_post_mime_types ) = wp_edit_attachments_query( $q );
-
-               $this->is_trash = isset( $_REQUEST['status'] ) && 'trash' == $_REQUEST['status'];
+               $mode = empty( $_REQUEST['mode'] ) ? 'list' : $_REQUEST['mode'];
 
                $this->set_pagination_args( array(
                        'total_items' => $wp_query->found_posts,
 
                $this->set_pagination_args( array(
                        'total_items' => $wp_query->found_posts,
@@ -41,7 +48,7 @@ class WP_Media_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function get_views() {
+       protected function get_views() {
                global $wpdb, $post_mime_types, $avail_post_mime_types;
 
                $type_links = array();
                global $wpdb, $post_mime_types, $avail_post_mime_types;
 
                $type_links = array();
@@ -53,28 +60,27 @@ class WP_Media_List_Table extends WP_List_Table {
                        foreach ( $reals as $real )
                                $num_posts[$type] = ( isset( $num_posts[$type] ) ) ? $num_posts[$type] + $_num_posts[$real] : $_num_posts[$real];
 
                        foreach ( $reals as $real )
                                $num_posts[$type] = ( isset( $num_posts[$type] ) ) ? $num_posts[$type] + $_num_posts[$real] : $_num_posts[$real];
 
-               $class = ( empty($_GET['post_mime_type']) && !$this->detached && !isset($_GET['status']) ) ? ' class="current"' : '';
-               $type_links['all'] = "<a href='upload.php'$class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $_total_posts, 'uploaded files' ), number_format_i18n( $_total_posts ) ) . '</a>';
+               $selected = empty( $_GET['attachment-filter'] ) ? ' selected="selected"' : '';
+               $type_links['all'] = "<option value=''$selected>" . sprintf( _nx( 'All (%s)', 'All (%s)', $_total_posts, 'uploaded files' ), number_format_i18n( $_total_posts ) ) . '</option>';
                foreach ( $post_mime_types as $mime_type => $label ) {
                foreach ( $post_mime_types as $mime_type => $label ) {
-                       $class = '';
-
                        if ( !wp_match_mime_types($mime_type, $avail_post_mime_types) )
                                continue;
 
                        if ( !wp_match_mime_types($mime_type, $avail_post_mime_types) )
                                continue;
 
-                       if ( !empty($_GET['post_mime_type']) && wp_match_mime_types($mime_type, $_GET['post_mime_type']) )
-                               $class = ' class="current"';
+                       $selected = '';
+                       if ( !empty( $_GET['attachment-filter'] ) && strpos( $_GET['attachment-filter'], 'post_mime_type:' ) === 0 && wp_match_mime_types( $mime_type, str_replace( 'post_mime_type:', '', $_GET['attachment-filter'] ) ) )
+                               $selected = ' selected="selected"';
                        if ( !empty( $num_posts[$mime_type] ) )
                        if ( !empty( $num_posts[$mime_type] ) )
-                               $type_links[$mime_type] = "<a href='upload.php?post_mime_type=$mime_type'$class>" . sprintf( translate_nooped_plural( $label[2], $num_posts[$mime_type] ), number_format_i18n( $num_posts[$mime_type] )) . '</a>';
+                               $type_links[$mime_type] = '<option value="post_mime_type:' . urlencode( $mime_type ) . '"' . $selected . '>' . sprintf( translate_nooped_plural( $label[2], $num_posts[$mime_type] ), number_format_i18n( $num_posts[$mime_type] )) . '</option>';
                }
                }
-               $type_links['detached'] = '<a href="upload.php?detached=1"' . ( $this->detached ? ' class="current"' : '' ) . '>' . sprintf( _nx( 'Unattached <span class="count">(%s)</span>', 'Unattached <span class="count">(%s)</span>', $total_orphans, 'detached files' ), number_format_i18n( $total_orphans ) ) . '</a>';
+               $type_links['detached'] = '<option value="detached"' . ( $this->detached ? ' selected="selected"' : '' ) . '>' . sprintf( _nx( 'Unattached (%s)', 'Unattached (%s)', $total_orphans, 'detached files' ), number_format_i18n( $total_orphans ) ) . '</option>';
 
                if ( !empty($_num_posts['trash']) )
 
                if ( !empty($_num_posts['trash']) )
-                       $type_links['trash'] = '<a href="upload.php?status=trash"' . ( (isset($_GET['status']) && $_GET['status'] == 'trash' ) ? ' class="current"' : '') . '>' . sprintf( _nx( 'Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>', $_num_posts['trash'], 'uploaded files' ), number_format_i18n( $_num_posts['trash'] ) ) . '</a>';
+                       $type_links['trash'] = '<option value="trash"' . ( (isset($_GET['attachment-filter']) && $_GET['attachment-filter'] == 'trash' ) ? ' selected="selected"' : '') . '>' . sprintf( _nx( 'Trash (%s)', 'Trash (%s)', $_num_posts['trash'], 'uploaded files' ), number_format_i18n( $_num_posts['trash'] ) ) . '</option>';
 
                return $type_links;
        }
 
 
                return $type_links;
        }
 
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                $actions = array();
                $actions['delete'] = __( 'Delete Permanently' );
                if ( $this->detached )
                $actions = array();
                $actions['delete'] = __( 'Delete Permanently' );
                if ( $this->detached )
@@ -83,31 +89,31 @@ class WP_Media_List_Table extends WP_List_Table {
                return $actions;
        }
 
                return $actions;
        }
 
-       function extra_tablenav( $which ) {
+       protected function extra_tablenav( $which ) {
+               if ( 'bar' !== $which ) {
+                       return;
+               }
 ?>
 ?>
-               <div class="alignleft actions">
+               <div class="actions">
 <?php
 <?php
-               if ( 'top' == $which && !is_singular() && !$this->detached && !$this->is_trash ) {
-                       $this->months_dropdown( 'attachment' );
+               if ( ! is_singular() ) {
+                       if ( ! $this->is_trash ) {
+                               $this->months_dropdown( 'attachment' );
+                       }
 
                        /** This action is documented in wp-admin/includes/class-wp-posts-list-table.php */
                        do_action( 'restrict_manage_posts' );
 
                        /** This action is documented in wp-admin/includes/class-wp-posts-list-table.php */
                        do_action( 'restrict_manage_posts' );
-                       submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
+                       submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
                }
 
                }
 
-               if ( $this->detached ) {
-                       submit_button( __( 'Scan for lost attachments' ), 'secondary', 'find_detached', false );
-               } elseif ( $this->is_trash && current_user_can( 'edit_others_posts' ) ) {
+               if ( $this->is_trash && current_user_can( 'edit_others_posts' ) ) {
                        submit_button( __( 'Empty Trash' ), 'apply', 'delete_all', false );
                } ?>
                </div>
 <?php
        }
 
                        submit_button( __( 'Empty Trash' ), 'apply', 'delete_all', false );
                } ?>
                </div>
 <?php
        }
 
-       function current_action() {
-               if ( isset( $_REQUEST['find_detached'] ) )
-                       return 'find_detached';
-
+       public function current_action() {
                if ( isset( $_REQUEST['found_post_id'] ) && isset( $_REQUEST['media'] ) )
                        return 'attach';
 
                if ( isset( $_REQUEST['found_post_id'] ) && isset( $_REQUEST['media'] ) )
                        return 'attach';
 
@@ -117,15 +123,97 @@ class WP_Media_List_Table extends WP_List_Table {
                return parent::current_action();
        }
 
                return parent::current_action();
        }
 
-       function has_items() {
+       public function has_items() {
                return have_posts();
        }
 
                return have_posts();
        }
 
-       function no_items() {
+       public function no_items() {
                _e( 'No media attachments found.' );
        }
 
                _e( 'No media attachments found.' );
        }
 
-       function get_columns() {
+       protected function pagination( $which ) {
+               global $mode;
+
+               parent::pagination( $which );
+       }
+
+       /**
+        * Display a view switcher
+        *
+        * @since 3.1.0
+        * @access protected
+        */
+       protected function view_switcher( $current_mode ) {
+               $modes = array(
+                       'list'    => __( 'List View' ),
+                       'grid' => __( 'Grid View' )
+               );
+
+?>
+               <input type="hidden" name="mode" value="<?php echo esc_attr( $current_mode ); ?>" />
+               <div class="view-switch">
+<?php
+                       foreach ( $modes as $mode => $title ) {
+                               $classes = array( 'view-' . $mode );
+                               if ( $current_mode == $mode )
+                                       $classes[] = 'current';
+                               printf(
+                                       "<a href='%s' class='%s' id='view-switch-$mode'><span class='screen-reader-text'>%s</span></a>\n",
+                                       esc_url( add_query_arg( 'mode', $mode ) ),
+                                       implode( ' ', $classes ),
+                                       $title
+                               );
+                       }
+               ?>
+               </div>
+<?php
+       }
+
+       /**
+        * Override parent views so we can use the filter bar display.
+        */
+       public function views() {
+               global $mode;
+
+               $views = $this->get_views();
+?>
+<div class="wp-filter">
+       <?php $this->view_switcher( $mode ); ?>
+
+       <select class="attachment-filters" name="attachment-filter">
+               <?php
+               if ( ! empty( $views ) ) {
+                       foreach ( $views as $class => $view ) {
+                               echo "\t$view\n";
+                       }
+               }
+               ?>
+       </select>
+
+<?php
+       $this->extra_tablenav( 'bar' );
+
+       /** This filter is documented in wp-admin/inclues/class-wp-list-table.php */
+       $views = apply_filters( "views_{$this->screen->id}", array() );
+
+       // Back compat for pre-4.0 view links.
+       if ( ! empty( $views ) ) {
+               echo '<ul class="filter-links">';
+               foreach ( $views as $class => $view ) {
+                       echo "<li class='$class'>$view</li>";
+               }
+               echo '</ul>';
+       }
+?>
+
+       <div class="search-form">
+               <label for="media-search-input" class="screen-reader-text"><?php esc_html_e( 'Search Media' ); ?></label>
+               <input type="search" placeholder="<?php esc_attr_e( 'Search' ) ?>" id="media-search-input" class="search" name="s" value="<?php _admin_search_query(); ?>"></div>
+       </div>
+       <?php
+       }
+
+       public function get_columns() {
                $posts_columns = array();
                $posts_columns['cb'] = '<input type="checkbox" />';
                $posts_columns['icon'] = '';
                $posts_columns = array();
                $posts_columns['cb'] = '<input type="checkbox" />';
                $posts_columns['icon'] = '';
@@ -133,8 +221,6 @@ class WP_Media_List_Table extends WP_List_Table {
                $posts_columns['title'] = _x( 'File', 'column name' );
                $posts_columns['author'] = __( 'Author' );
 
                $posts_columns['title'] = _x( 'File', 'column name' );
                $posts_columns['author'] = __( 'Author' );
 
-               $taxonomies = array();
-
                $taxonomies = get_taxonomies_for_attachments( 'objects' );
                $taxonomies = wp_filter_object_list( $taxonomies, array( 'show_admin_column' => true ), 'and', 'name' );
 
                $taxonomies = get_taxonomies_for_attachments( 'objects' );
                $taxonomies = wp_filter_object_list( $taxonomies, array( 'show_admin_column' => true ), 'and', 'name' );
 
@@ -182,7 +268,7 @@ class WP_Media_List_Table extends WP_List_Table {
                return $posts_columns;
        }
 
                return $posts_columns;
        }
 
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array(
                        'title'    => 'title',
                        'author'   => 'author',
                return array(
                        'title'    => 'title',
                        'author'   => 'author',
@@ -192,7 +278,7 @@ class WP_Media_List_Table extends WP_List_Table {
                );
        }
 
                );
        }
 
-       function display_rows() {
+       public function display_rows() {
                global $post;
 
                add_filter( 'the_title','esc_html' );
                global $post;
 
                add_filter( 'the_title','esc_html' );
@@ -209,7 +295,7 @@ class WP_Media_List_Table extends WP_List_Table {
                        $post_owner = ( get_current_user_id() == $post->post_author ) ? 'self' : 'other';
                        $att_title = _draft_or_post_title();
 ?>
                        $post_owner = ( get_current_user_id() == $post->post_author ) ? 'self' : 'other';
                        $att_title = _draft_or_post_title();
 ?>
-       <tr id='post-<?php echo $post->ID; ?>' class='<?php echo trim( $alt . ' author-' . $post_owner . ' status-' . $post->post_status ); ?>'>
+       <tr id="post-<?php echo $post->ID; ?>" class="<?php echo trim( $alt . ' author-' . $post_owner . ' status-' . $post->post_status ); ?>">
 <?php
 
 list( $columns, $hidden ) = $this->get_column_info();
 <?php
 
 list( $columns, $hidden ) = $this->get_column_info();
@@ -236,7 +322,8 @@ foreach ( $columns as $column_name => $column_display_name ) {
                break;
 
        case 'icon':
                break;
 
        case 'icon':
-               $attributes = 'class="column-icon media-icon"' . $style;
+               list( $mime ) = explode( '/', $post->post_mime_type );
+               $attributes = 'class="column-icon media-icon ' . $mime . '-icon"' . $style;
 ?>
                <td <?php echo $attributes ?>><?php
                        if ( $thumb = wp_get_attachment_image( $post->ID, array( 80, 60 ), true ) ) {
 ?>
                <td <?php echo $attributes ?>><?php
                        if ( $thumb = wp_get_attachment_image( $post->ID, array( 80, 60 ), true ) ) {
@@ -329,7 +416,7 @@ foreach ( $columns as $column_name => $column_display_name ) {
                        $parent_type = get_post_type_object( $parent->post_type );
 ?>
                        <td <?php echo $attributes ?>><strong>
                        $parent_type = get_post_type_object( $parent->post_type );
 ?>
                        <td <?php echo $attributes ?>><strong>
-                               <?php if ( current_user_can( 'edit_post', $post->post_parent ) && $parent_type && $parent_type->show_ui ) { ?>
+                               <?php if ( $parent_type && $parent_type->show_ui && current_user_can( 'edit_post', $post->post_parent ) ) { ?>
                                        <a href="<?php echo get_edit_post_link( $post->post_parent ); ?>">
                                                <?php echo $title ?></a><?php
                                } else {
                                        <a href="<?php echo get_edit_post_link( $post->post_parent ); ?>">
                                                <?php echo $title ?></a><?php
                                } else {
@@ -377,7 +464,6 @@ foreach ( $columns as $column_name => $column_display_name ) {
                        $taxonomy = false;
 
                if ( $taxonomy ) {
                        $taxonomy = false;
 
                if ( $taxonomy ) {
-                       $taxonomy_object = get_taxonomy( $taxonomy );
                        echo '<td ' . $attributes . '>';
                        if ( $terms = get_the_terms( $post->ID, $taxonomy ) ) {
                                $out = array();
                        echo '<td ' . $attributes . '>';
                        if ( $terms = get_the_terms( $post->ID, $taxonomy ) ) {
                                $out = array();
@@ -424,7 +510,7 @@ foreach ( $columns as $column_name => $column_display_name ) {
 <?php endwhile;
        }
 
 <?php endwhile;
        }
 
-       function _get_row_actions( $post, $att_title ) {
+       private function _get_row_actions( $post, $att_title ) {
                $actions = array();
 
                if ( $this->detached ) {
                $actions = array();
 
                if ( $this->detached ) {
index fcabfd777cb988919a7d488f460bf0fdaebf9b44..05c55bc7793f701a021516e08e661ba739586b08 100644 (file)
@@ -9,18 +9,28 @@
  */
 class WP_MS_Sites_List_Table extends WP_List_Table {
 
  */
 class WP_MS_Sites_List_Table extends WP_List_Table {
 
-       function __construct( $args = array() ) {
+       /**
+        * Constructor.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
+        */
+       public function __construct( $args = array() ) {
                parent::__construct( array(
                        'plural' => 'sites',
                        'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
                ) );
        }
 
                parent::__construct( array(
                        'plural' => 'sites',
                        'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
                ) );
        }
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                return current_user_can( 'manage_sites' );
        }
 
                return current_user_can( 'manage_sites' );
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                global $s, $mode, $wpdb;
 
                $current_site = get_current_site();
                global $s, $mode, $wpdb;
 
                $current_site = get_current_site();
@@ -38,10 +48,10 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
                        $s = trim($s, '*');
                }
 
                        $s = trim($s, '*');
                }
 
-               $like_s = esc_sql( like_escape( $s ) );
-
-               // If the network is large and a search is not being performed, show only the latest blogs with no paging in order
-               // to avoid expensive count queries.
+               /*
+                * If the network is large and a search is not being performed, show only
+                * the latest blogs with no paging in order to avoid expensive count queries.
+                */
                if ( !$s && wp_is_large_network() ) {
                        if ( !isset($_REQUEST['orderby']) )
                                $_GET['orderby'] = $_REQUEST['orderby'] = '';
                if ( !$s && wp_is_large_network() ) {
                        if ( !isset($_REQUEST['orderby']) )
                                $_GET['orderby'] = $_REQUEST['orderby'] = '';
@@ -58,7 +68,8 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
                                        preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.?$/', $s ) ||
                                        preg_match( '/^[0-9]{1,3}\.$/', $s ) ) {
                        // IPv4 address
                                        preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.?$/', $s ) ||
                                        preg_match( '/^[0-9]{1,3}\.$/', $s ) ) {
                        // IPv4 address
-                       $reg_blog_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->registration_log} WHERE {$wpdb->registration_log}.IP LIKE ( '{$like_s}$wild' )" );
+                       $sql = $wpdb->prepare( "SELECT blog_id FROM {$wpdb->registration_log} WHERE {$wpdb->registration_log}.IP LIKE %s", $wpdb->esc_like( $s ) . $wild );
+                       $reg_blog_ids = $wpdb->get_col( $sql );
 
                        if ( !$reg_blog_ids )
                                $reg_blog_ids = array( 0 );
 
                        if ( !$reg_blog_ids )
                                $reg_blog_ids = array( 0 );
@@ -69,17 +80,18 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
                                AND {$wpdb->blogs}.blog_id IN (" . implode( ', ', $reg_blog_ids ) . ")";
                } else {
                        if ( is_numeric($s) && empty( $wild ) ) {
                                AND {$wpdb->blogs}.blog_id IN (" . implode( ', ', $reg_blog_ids ) . ")";
                } else {
                        if ( is_numeric($s) && empty( $wild ) ) {
-                               $query .= " AND ( {$wpdb->blogs}.blog_id = '{$like_s}' )";
+                               $query .= $wpdb->prepare( " AND ( {$wpdb->blogs}.blog_id = %s )", $s );
                        } elseif ( is_subdomain_install() ) {
                        } elseif ( is_subdomain_install() ) {
-                               $blog_s = str_replace( '.' . $current_site->domain, '', $like_s );
-                               $blog_s .= $wild . '.' . $current_site->domain;
-                               $query .= " AND ( {$wpdb->blogs}.domain LIKE '$blog_s' ) ";
+                               $blog_s = str_replace( '.' . $current_site->domain, '', $s );
+                               $blog_s = $wpdb->esc_like( $blog_s ) . $wild . $wpdb->esc_like( '.' . $current_site->domain );
+                               $query .= $wpdb->prepare( " AND ( {$wpdb->blogs}.domain LIKE %s ) ", $blog_s );
                        } else {
                        } else {
-                               if ( $like_s != trim('/', $current_site->path) )
-                                       $blog_s = $current_site->path . $like_s . $wild . '/';
-                               else
-                                       $blog_s = $like_s;
-                               $query .= " AND  ( {$wpdb->blogs}.path LIKE '$blog_s' )";
+                               if ( $s != trim('/', $current_site->path) ) {
+                                       $blog_s = $wpdb->esc_like( $current_site->path . $s ) . $wild . $wpdb->esc_like( '/' );
+                               } else {
+                                       $blog_s = $wpdb->esc_like( $s );
+                               }
+                               $query .= $wpdb->prepare( " AND  ( {$wpdb->blogs}.path LIKE %s )", $blog_s );
                        }
                }
 
                        }
                }
 
@@ -120,11 +132,11 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function no_items() {
+       public function no_items() {
                _e( 'No sites found.' );
        }
 
                _e( 'No sites found.' );
        }
 
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                $actions = array();
                if ( current_user_can( 'delete_sites' ) )
                        $actions['delete'] = __( 'Delete' );
                $actions = array();
                if ( current_user_can( 'delete_sites' ) )
                        $actions['delete'] = __( 'Delete' );
@@ -134,7 +146,7 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
                return $actions;
        }
 
                return $actions;
        }
 
-       function pagination( $which ) {
+       protected function pagination( $which ) {
                global $mode;
 
                parent::pagination( $which );
                global $mode;
 
                parent::pagination( $which );
@@ -143,7 +155,7 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
                        $this->view_switcher( $mode );
        }
 
                        $this->view_switcher( $mode );
        }
 
-       function get_columns() {
+       public function get_columns() {
                $blogname_columns = ( is_subdomain_install() ) ? __( 'Domain' ) : __( 'Path' );
                $sites_columns = array(
                        'cb'          => '<input type="checkbox" />',
                $blogname_columns = ( is_subdomain_install() ) ? __( 'Domain' ) : __( 'Path' );
                $sites_columns = array(
                        'cb'          => '<input type="checkbox" />',
@@ -169,7 +181,7 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
                return $sites_columns;
        }
 
                return $sites_columns;
        }
 
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array(
                        'blogname'    => 'blogname',
                        'lastupdated' => 'lastupdated',
                return array(
                        'blogname'    => 'blogname',
                        'lastupdated' => 'lastupdated',
@@ -177,7 +189,7 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
                );
        }
 
                );
        }
 
-       function display_rows() {
+       public function display_rows() {
                global $mode;
 
                $status_list = array(
                global $mode;
 
                $status_list = array(
@@ -187,6 +199,12 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
                        'mature'   => array( 'site-mature', __( 'Mature' ) )
                );
 
                        'mature'   => array( 'site-mature', __( 'Mature' ) )
                );
 
+               if ( 'list' == $mode ) {
+                       $date = 'Y/m/d';
+               } else {
+                       $date = 'Y/m/d \<\b\r \/\> g:i:s a';
+               }
+
                $class = '';
                foreach ( $this->items as $blog ) {
                        $class = ( 'alternate' == $class ) ? '' : 'alternate';
                $class = '';
                foreach ( $this->items as $blog ) {
                        $class = ( 'alternate' == $class ) ? '' : 'alternate';
@@ -307,10 +325,6 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
 
                                        case 'lastupdated':
                                                echo "<td class='$column_name column-$column_name'$style>";
 
                                        case 'lastupdated':
                                                echo "<td class='$column_name column-$column_name'$style>";
-                                                       if ( 'list' == $mode )
-                                                               $date = 'Y/m/d';
-                                                       else
-                                                               $date = 'Y/m/d \<\b\r \/\> g:i:s a';
                                                        echo ( $blog['last_updated'] == '0000-00-00 00:00:00' ) ? __( 'Never' ) : mysql2date( $date, $blog['last_updated'] ); ?>
                                                </td>
                                        <?php
                                                        echo ( $blog['last_updated'] == '0000-00-00 00:00:00' ) ? __( 'Never' ) : mysql2date( $date, $blog['last_updated'] ); ?>
                                                </td>
                                        <?php
index 59183c311f147074dac329312434cf64a5fd2d76..c4afa238f6ee69de682f82c6af8e9ca9912a5030 100644 (file)
@@ -9,10 +9,20 @@
  */
 class WP_MS_Themes_List_Table extends WP_List_Table {
 
  */
 class WP_MS_Themes_List_Table extends WP_List_Table {
 
-       var $site_id;
-       var $is_site_themes;
-
-       function __construct( $args = array() ) {
+       public $site_id;
+       public $is_site_themes;
+
+       /**
+        * Constructor.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
+        */
+       public function __construct( $args = array() ) {
                global $status, $page;
 
                parent::__construct( array(
                global $status, $page;
 
                parent::__construct( array(
@@ -32,18 +42,19 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
                        $this->site_id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
        }
 
                        $this->site_id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
        }
 
-       function get_table_classes() {
-               return array( 'widefat', 'plugins' );   // todo: remove and add CSS for .themes
+       protected function get_table_classes() {
+               // todo: remove and add CSS for .themes
+               return array( 'widefat', 'plugins' );
        }
 
        }
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                if ( $this->is_site_themes )
                        return current_user_can( 'manage_sites' );
                else
                        return current_user_can( 'manage_network_themes' );
        }
 
                if ( $this->is_site_themes )
                        return current_user_can( 'manage_sites' );
                else
                        return current_user_can( 'manage_network_themes' );
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                global $status, $totals, $page, $orderby, $order, $s;
 
                wp_reset_vars( array( 'orderby', 'order', 's' ) );
                global $status, $totals, $page, $orderby, $order, $s;
 
                wp_reset_vars( array( 'orderby', 'order', 's' ) );
@@ -131,7 +142,7 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function _search_callback( $theme ) {
+       public function _search_callback( $theme ) {
                static $term;
                if ( is_null( $term ) )
                        $term = wp_unslash( $_REQUEST['s'] );
                static $term;
                if ( is_null( $term ) )
                        $term = wp_unslash( $_REQUEST['s'] );
@@ -152,7 +163,7 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
        }
 
        // Not used by any core columns.
        }
 
        // Not used by any core columns.
-       function _order_callback( $theme_a, $theme_b ) {
+       public function _order_callback( $theme_a, $theme_b ) {
                global $orderby, $order;
 
                $a = $theme_a[ $orderby ];
                global $orderby, $order;
 
                $a = $theme_a[ $orderby ];
@@ -167,14 +178,14 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
                        return ( $a < $b ) ? -1 : 1;
        }
 
                        return ( $a < $b ) ? -1 : 1;
        }
 
-       function no_items() {
+       public function no_items() {
                if ( ! $this->has_items )
                        _e( 'No themes found.' );
                else
                        _e( 'You do not appear to have any themes available at this time.' );
        }
 
                if ( ! $this->has_items )
                        _e( 'No themes found.' );
                else
                        _e( 'You do not appear to have any themes available at this time.' );
        }
 
-       function get_columns() {
+       public function get_columns() {
                global $status;
 
                return array(
                global $status;
 
                return array(
@@ -184,13 +195,13 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
                );
        }
 
                );
        }
 
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array(
                        'name'         => 'name',
                );
        }
 
                return array(
                        'name'         => 'name',
                );
        }
 
-       function get_views() {
+       protected function get_views() {
                global $totals, $status;
 
                $status_links = array();
                global $totals, $status;
 
                $status_links = array();
@@ -233,7 +244,7 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
                return $status_links;
        }
 
                return $status_links;
        }
 
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                global $status;
 
                $actions = array();
                global $status;
 
                $actions = array();
@@ -250,12 +261,12 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
                return $actions;
        }
 
                return $actions;
        }
 
-       function display_rows() {
+       public function display_rows() {
                foreach ( $this->items as $theme )
                        $this->single_row( $theme );
        }
 
                foreach ( $this->items as $theme )
                        $this->single_row( $theme );
        }
 
-       function single_row( $theme ) {
+       public function single_row( $theme ) {
                global $status, $page, $s, $totals;
 
                $context = $status;
                global $status, $page, $s, $totals;
 
                $context = $status;
@@ -268,7 +279,7 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
                        $allowed = $theme->is_allowed( 'network' );
                }
 
                        $allowed = $theme->is_allowed( 'network' );
                }
 
-               // preorder
+               // Pre-order.
                $actions = array(
                        'enable' => '',
                        'disable' => '',
                $actions = array(
                        'enable' => '',
                        'disable' => '',
index df0640686bf2192cb795f3ca76dce00e1531f2be..78f8f327d1eeb5e2fa2c1ebde6dada1e878e70e8 100644 (file)
@@ -9,11 +9,11 @@
  */
 class WP_MS_Users_List_Table extends WP_List_Table {
 
  */
 class WP_MS_Users_List_Table extends WP_List_Table {
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                return current_user_can( 'manage_network_users' );
        }
 
                return current_user_can( 'manage_network_users' );
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                global $usersearch, $role, $wpdb, $mode;
 
                $usersearch = isset( $_REQUEST['s'] ) ? wp_unslash( trim( $_REQUEST['s'] ) ) : '';
                global $usersearch, $role, $wpdb, $mode;
 
                $usersearch = isset( $_REQUEST['s'] ) ? wp_unslash( trim( $_REQUEST['s'] ) ) : '';
@@ -40,8 +40,11 @@ class WP_MS_Users_List_Table extends WP_List_Table {
                        $args['include'] = $wpdb->get_col( "SELECT ID FROM $wpdb->users WHERE user_login IN ('$logins')" );
                }
 
                        $args['include'] = $wpdb->get_col( "SELECT ID FROM $wpdb->users WHERE user_login IN ('$logins')" );
                }
 
-               // If the network is large and a search is not being performed, show only the latest users with no paging in order
-               // to avoid expensive count queries.
+               /*
+                * If the network is large and a search is not being performed,
+                * show only the latest users with no paging in order to avoid
+                * expensive count queries.
+                */
                if ( !$usersearch && wp_is_large_network( 'users' ) ) {
                        if ( !isset($_REQUEST['orderby']) )
                                $_GET['orderby'] = $_REQUEST['orderby'] = 'id';
                if ( !$usersearch && wp_is_large_network( 'users' ) ) {
                        if ( !isset($_REQUEST['orderby']) )
                                $_GET['orderby'] = $_REQUEST['orderby'] = 'id';
@@ -69,7 +72,7 @@ class WP_MS_Users_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                $actions = array();
                if ( current_user_can( 'delete_users' ) )
                        $actions['delete'] = __( 'Delete' );
                $actions = array();
                if ( current_user_can( 'delete_users' ) )
                        $actions['delete'] = __( 'Delete' );
@@ -79,18 +82,17 @@ class WP_MS_Users_List_Table extends WP_List_Table {
                return $actions;
        }
 
                return $actions;
        }
 
-       function no_items() {
+       public function no_items() {
                _e( 'No users found.' );
        }
 
                _e( 'No users found.' );
        }
 
-       function get_views() {
-               global $wp_roles, $role;
+       protected function get_views() {
+               global $role;
 
                $total_users = get_user_count();
                $super_admins = get_super_admins();
                $total_admins = count( $super_admins );
 
 
                $total_users = get_user_count();
                $super_admins = get_super_admins();
                $total_admins = count( $super_admins );
 
-               $current_role = false;
                $class = $role != 'super' ? ' class="current"' : '';
                $role_links = array();
                $role_links['all'] = "<a href='" . network_admin_url('users.php') . "'$class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users' ), number_format_i18n( $total_users ) ) . '</a>';
                $class = $role != 'super' ? ' class="current"' : '';
                $role_links = array();
                $role_links['all'] = "<a href='" . network_admin_url('users.php') . "'$class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users' ), number_format_i18n( $total_users ) ) . '</a>';
@@ -100,7 +102,7 @@ class WP_MS_Users_List_Table extends WP_List_Table {
                return $role_links;
        }
 
                return $role_links;
        }
 
-       function pagination( $which ) {
+       protected function pagination( $which ) {
                global $mode;
 
                parent::pagination ( $which );
                global $mode;
 
                parent::pagination ( $which );
@@ -109,7 +111,7 @@ class WP_MS_Users_List_Table extends WP_List_Table {
                        $this->view_switcher( $mode );
        }
 
                        $this->view_switcher( $mode );
        }
 
-       function get_columns() {
+       public function get_columns() {
                $users_columns = array(
                        'cb'         => '<input type="checkbox" />',
                        'username'   => __( 'Username' ),
                $users_columns = array(
                        'cb'         => '<input type="checkbox" />',
                        'username'   => __( 'Username' ),
@@ -131,7 +133,7 @@ class WP_MS_Users_List_Table extends WP_List_Table {
                return $users_columns;
        }
 
                return $users_columns;
        }
 
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array(
                        'username'   => 'login',
                        'name'       => 'name',
                return array(
                        'username'   => 'login',
                        'name'       => 'name',
@@ -140,7 +142,7 @@ class WP_MS_Users_List_Table extends WP_List_Table {
                );
        }
 
                );
        }
 
-       function display_rows() {
+       public function display_rows() {
                global $mode;
 
                $alt = '';
                global $mode;
 
                $alt = '';
index 868c08caa3d74f0fb001acd7aec9bf596efad31b..1252227ed81f8f5e6cc1e1bbe263cc7713497958 100644 (file)
@@ -9,11 +9,44 @@
  */
 class WP_Plugin_Install_List_Table extends WP_List_Table {
 
  */
 class WP_Plugin_Install_List_Table extends WP_List_Table {
 
-       function ajax_user_can() {
+       var $order = 'ASC';
+       var $orderby = null;
+       var $groups = array();
+
+       public function ajax_user_can() {
                return current_user_can('install_plugins');
        }
 
                return current_user_can('install_plugins');
        }
 
-       function prepare_items() {
+       /**
+        * Return a list of slugs of installed plugins, if known.
+        *
+        * Uses the transient data from the updates API to determine the slugs of
+        * known installed plugins. This might be better elsewhere, perhaps even
+        * within get_plugins().
+        *
+        * @since 4.0.0
+        * @access protected
+        */
+       protected function get_installed_plugin_slugs() {
+               $slugs = array();
+
+               $plugin_info = get_site_transient( 'update_plugins' );
+               if ( isset( $plugin_info->no_update ) ) {
+                       foreach ( $plugin_info->no_update as $plugin ) {
+                               $slugs[] = $plugin->slug;
+                       }
+               }
+
+               if ( isset( $plugin_info->response ) ) {
+                       foreach ( $plugin_info->response as $plugin ) {
+                               $slugs[] = $plugin->slug;
+                       }
+               }
+
+               return $slugs;
+       }
+
+       public function prepare_items() {
                include( ABSPATH . 'wp-admin/includes/plugin-install.php' );
 
                global $tabs, $tab, $paged, $type, $term;
                include( ABSPATH . 'wp-admin/includes/plugin-install.php' );
 
                global $tabs, $tab, $paged, $type, $term;
@@ -26,16 +59,22 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 
                // These are the tabs which are shown on the page
                $tabs = array();
 
                // These are the tabs which are shown on the page
                $tabs = array();
-               $tabs['dashboard'] = __( 'Search' );
+
                if ( 'search' == $tab )
                        $tabs['search'] = __( 'Search Results' );
                if ( 'search' == $tab )
                        $tabs['search'] = __( 'Search Results' );
-               $tabs['upload']    = __( 'Upload' );
                $tabs['featured']  = _x( 'Featured', 'Plugin Installer' );
                $tabs['popular']   = _x( 'Popular', 'Plugin Installer' );
                $tabs['featured']  = _x( 'Featured', 'Plugin Installer' );
                $tabs['popular']   = _x( 'Popular', 'Plugin Installer' );
-               $tabs['new']       = _x( 'Newest', 'Plugin Installer' );
                $tabs['favorites'] = _x( 'Favorites', 'Plugin Installer' );
                $tabs['favorites'] = _x( 'Favorites', 'Plugin Installer' );
+               if ( $tab === 'beta' || false !== strpos( $GLOBALS['wp_version'], '-' ) ) {
+                       $tabs['beta']      = _x( 'Beta Testing', 'Plugin Installer' );
+               }
+               if ( current_user_can( 'upload_plugins' ) ) {
+                       // No longer a real tab. Here for filter compatibility.
+                       // Gets skipped in get_views().
+                       $tabs['upload'] = __( 'Upload Plugin' );
+               }
 
 
-               $nonmenu_tabs = array( 'plugin-information' ); //Valid actions to perform which do not have a Menu item.
+               $nonmenu_tabs = array( 'plugin-information' ); // Valid actions to perform which do not have a Menu item.
 
                /**
                 * Filter the tabs shown on the Plugin Install screen.
 
                /**
                 * Filter the tabs shown on the Plugin Install screen.
@@ -60,7 +99,14 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
                if ( empty( $tab ) || ( !isset( $tabs[ $tab ] ) && !in_array( $tab, (array) $nonmenu_tabs ) ) )
                        $tab = key( $tabs );
 
                if ( empty( $tab ) || ( !isset( $tabs[ $tab ] ) && !in_array( $tab, (array) $nonmenu_tabs ) ) )
                        $tab = key( $tabs );
 
-               $args = array( 'page' => $paged, 'per_page' => $per_page );
+               $args = array(
+                       'page' => $paged,
+                       'per_page' => $per_page,
+                       'fields' => array( 'last_updated' => true, 'downloaded' => true, 'icons' => true ),
+                       // Send the locale and installed plugin slugs to the API so it can provide context-sensitive results.
+                       'locale' => get_locale(),
+                       'installed_plugins' => $this->get_installed_plugin_slugs(),
+               );
 
                switch ( $tab ) {
                        case 'search':
 
                switch ( $tab ) {
                        case 'search':
@@ -79,12 +125,15 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
                                                break;
                                }
 
                                                break;
                                }
 
-                               add_action( 'install_plugins_table_header', 'install_search_form', 10, 0 );
                                break;
 
                        case 'featured':
                                break;
 
                        case 'featured':
+                               $args['fields']['group'] = true;
+                               $this->orderby = 'group';
+                               // No break!
                        case 'popular':
                        case 'new':
                        case 'popular':
                        case 'new':
+                       case 'beta':
                                $args['browse'] = $tab;
                                break;
 
                                $args['browse'] = $tab;
                                break;
 
@@ -122,35 +171,108 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 
                $api = plugins_api( 'query_plugins', $args );
 
 
                $api = plugins_api( 'query_plugins', $args );
 
-               if ( is_wp_error( $api ) )
-                       wp_die( $api->get_error_message() . '</p> <p class="hide-if-no-js"><a href="#" onclick="document.location.reload(); return false;">' . __( 'Try again' ) . '</a>' );
+               if ( is_wp_error( $api ) ) {
+                       $this->error = $api;
+                       return;
+               }
 
                $this->items = $api->plugins;
 
 
                $this->items = $api->plugins;
 
+               if ( $this->orderby ) {
+                       uasort( $this->items, array( $this, 'order_callback' ) );
+               }
+
                $this->set_pagination_args( array(
                        'total_items' => $api->info['results'],
                        'per_page' => $args['per_page'],
                ) );
                $this->set_pagination_args( array(
                        'total_items' => $api->info['results'],
                        'per_page' => $args['per_page'],
                ) );
+
+               if ( isset( $api->info['groups'] ) ) {
+                       $this->groups = $api->info['groups'];
+               }
        }
 
        }
 
-       function no_items() {
-               _e( 'No plugins match your request.' );
+       public function no_items() {
+               if ( isset( $this->error ) ) {
+                       $message = $this->error->get_error_message() . '<p class="hide-if-no-js"><a href="#" class="button" onclick="document.location.reload(); return false;">' . __( 'Try again' ) . '</a></p>';
+               } else {
+                       $message = __( 'No plugins match your request.' );
+               }
+               echo '<div class="no-plugin-results">' . $message . '</div>';
        }
 
        }
 
-       function get_views() {
+       protected function get_views() {
                global $tabs, $tab;
 
                $display_tabs = array();
                foreach ( (array) $tabs as $action => $text ) {
                global $tabs, $tab;
 
                $display_tabs = array();
                foreach ( (array) $tabs as $action => $text ) {
-                       $class = ( $action == $tab ) ? ' class="current"' : '';
+                       $class = ( $action == $tab ) ? ' current' : '';
                        $href = self_admin_url('plugin-install.php?tab=' . $action);
                        $href = self_admin_url('plugin-install.php?tab=' . $action);
-                       $display_tabs['plugin-install-'.$action] = "<a href='$href'$class>$text</a>";
+                       $display_tabs['plugin-install-'.$action] = "<a href='$href' class='$class'>$text</a>";
                }
                }
+               // No longer a real tab.
+               unset( $display_tabs['plugin-install-upload'] );
 
                return $display_tabs;
        }
 
 
                return $display_tabs;
        }
 
-       function display_tablenav( $which ) {
+       /**
+        * Override parent views so we can use the filter bar display.
+        */
+       public function views() {
+               $views = $this->get_views();
+
+               /** This filter is documented in wp-admin/inclues/class-wp-list-table.php */
+               $views = apply_filters( "views_{$this->screen->id}", $views );
+
+?>
+<div class="wp-filter">
+       <ul class="filter-links">
+               <?php
+               if ( ! empty( $views ) ) {
+                       foreach ( $views as $class => $view ) {
+                               $views[ $class ] = "\t<li class='$class'>$view";
+                       }
+                       echo implode( " </li>\n", $views ) . "</li>\n";
+               }
+               ?>
+       </ul>
+
+       <?php install_search_form( isset( $views['plugin-install-search'] ) ); ?>
+</div>
+<?php
+       }
+
+       /**
+        * Override the parent display() so we can provide a different container.
+        */
+       public function display() {
+               $singular = $this->_args['singular'];
+
+               $data_attr = '';
+
+               if ( $singular ) {
+                       $data_attr = " data-wp-lists='list:$singular'";
+               }
+
+               $this->display_tablenav( 'top' );
+
+?>
+<div class="wp-list-table <?php echo implode( ' ', $this->get_table_classes() ); ?>">
+
+       <div id="the-list"<?php echo $data_attr; ?>>
+               <?php $this->display_rows_or_placeholder(); ?>
+       </div>
+</div>
+<?php
+               $this->display_tablenav( 'bottom' );
+       }
+
+       protected function display_tablenav( $which ) {
+               if ( $GLOBALS['tab'] === 'featured' ) {
+                       return;
+               }
+
                if ( 'top' ==  $which ) { ?>
                        <div class="tablenav top">
                                <div class="alignleft actions">
                if ( 'top' ==  $which ) { ?>
                        <div class="tablenav top">
                                <div class="alignleft actions">
@@ -174,22 +296,35 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
                }
        }
 
                }
        }
 
-       function get_table_classes() {
-               extract( $this->_args );
+       protected function get_table_classes() {
+               return array( 'widefat', $this->_args['plural'] );
+       }
 
 
-               return array( 'widefat', $plural );
+       public function get_columns() {
+               return array();
        }
 
        }
 
-       function get_columns() {
-               return array(
-                       'name'        => _x( 'Name', 'plugin name' ),
-                       'version'     => __( 'Version' ),
-                       'rating'      => __( 'Rating' ),
-                       'description' => __( 'Description' ),
-               );
+       private function order_callback( $plugin_a, $plugin_b ) {
+               $orderby = $this->orderby;
+               if ( ! isset( $plugin_a->$orderby, $plugin_b->$orderby ) ) {
+                       return 0;
+               }
+
+               $a = $plugin_a->$orderby;
+               $b = $plugin_b->$orderby;
+
+               if ( $a == $b ) {
+                       return 0;
+               }
+
+               if ( 'DESC' == $this->order ) {
+                       return ( $a < $b ) ? 1 : -1;
+               } else {
+                       return ( $a < $b ) ? -1 : 1;
+               }
        }
 
        }
 
-       function display_rows() {
+       public function display_rows() {
                $plugins_allowedtags = array(
                        'a' => array( 'href' => array(),'title' => array(), 'target' => array() ),
                        'abbr' => array( 'title' => array() ),'acronym' => array( 'title' => array() ),
                $plugins_allowedtags = array(
                        'a' => array( 'href' => array(),'title' => array(), 'target' => array() ),
                        'abbr' => array( 'title' => array() ),'acronym' => array( 'title' => array() ),
@@ -197,63 +332,97 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
                        'ul' => array(), 'ol' => array(), 'li' => array(), 'p' => array(), 'br' => array()
                );
 
                        'ul' => array(), 'ol' => array(), 'li' => array(), 'p' => array(), 'br' => array()
                );
 
-               list( $columns, $hidden ) = $this->get_column_info();
+               $plugins_group_titles = array(
+                       'Performance' => _x( 'Performance', 'Plugin installer group title' ),
+                       'Social'      => _x( 'Social',      'Plugin installer group title' ),
+                       'Tools'       => _x( 'Tools',       'Plugin installer group title' ),
+               );
 
 
-               $style = array();
-               foreach ( $columns as $column_name => $column_display_name ) {
-                       $style[ $column_name ] = in_array( $column_name, $hidden ) ? 'style="display:none;"' : '';
-               }
+               $group = null;
 
                foreach ( (array) $this->items as $plugin ) {
 
                foreach ( (array) $this->items as $plugin ) {
-                       if ( is_object( $plugin ) )
+                       if ( is_object( $plugin ) ) {
                                $plugin = (array) $plugin;
                                $plugin = (array) $plugin;
+                       }
+
+                       // Display the group heading if there is one
+                       if ( isset( $plugin['group'] ) && $plugin['group'] != $group ) {
+                               if ( isset( $this->groups[ $plugin['group'] ] ) ) {
+                                       $group_name = $this->groups[ $plugin['group'] ];
+                                       if ( isset( $plugins_group_titles[ $group_name ] ) ) {
+                                               $group_name = $plugins_group_titles[ $group_name ];
+                                       }
+                               } else {
+                                       $group_name = $plugin['group'];
+                               }
+
+                               // Starting a new group, close off the divs of the last one
+                               if ( ! empty( $group ) ) {
+                                       echo '</div></div>';
+                               }
+
+                               echo '<div class="plugin-group"><h3>' . esc_html( $group_name ) . '</h3>';
+                               // needs an extra wrapping div for nth-child selectors to work
+                               echo '<div class="plugin-items">';
 
 
+                               $group = $plugin['group'];
+                       }
                        $title = wp_kses( $plugin['name'], $plugins_allowedtags );
                        $title = wp_kses( $plugin['name'], $plugins_allowedtags );
-                       //Limit description to 400char, and remove any HTML.
-                       $description = strip_tags( $plugin['description'] );
-                       if ( strlen( $description ) > 400 )
-                               $description = mb_substr( $description, 0, 400 ) . '&#8230;';
-                       //remove any trailing entities
-                       $description = preg_replace( '/&[^;\s]{0,6}$/', '', $description );
-                       //strip leading/trailing & multiple consecutive lines
-                       $description = trim( $description );
-                       $description = preg_replace( "|(\r?\n)+|", "\n", $description );
-                       //\n => <br>
-                       $description = nl2br( $description );
+
+                       // Remove any HTML from the description.
+                       $description = strip_tags( $plugin['short_description'] );
                        $version = wp_kses( $plugin['version'], $plugins_allowedtags );
 
                        $name = strip_tags( $title . ' ' . $version );
 
                        $version = wp_kses( $plugin['version'], $plugins_allowedtags );
 
                        $name = strip_tags( $title . ' ' . $version );
 
-                       $author = $plugin['author'];
-                       if ( ! empty( $plugin['author'] ) )
-                               $author = ' <cite>' . sprintf( __( 'By %s' ), $author ) . '.</cite>';
-
-                       $author = wp_kses( $author, $plugins_allowedtags );
+                       $author = wp_kses( $plugin['author'], $plugins_allowedtags );
+                       if ( ! empty( $author ) ) {
+                               $author = ' <cite>' . sprintf( __( 'By %s' ), $author ) . '</cite>';
+                       }
 
                        $action_links = array();
 
                        $action_links = array();
-                       $action_links[] = '<a href="' . self_admin_url( 'plugin-install.php?tab=plugin-information&amp;plugin=' . $plugin['slug'] .
-                                                               '&amp;TB_iframe=true&amp;width=600&amp;height=550' ) . '" class="thickbox" title="' .
-                                                               esc_attr( sprintf( __( 'More information about %s' ), $name ) ) . '">' . __( 'Details' ) . '</a>';
 
                        if ( current_user_can( 'install_plugins' ) || current_user_can( 'update_plugins' ) ) {
                                $status = install_plugin_install_status( $plugin );
 
                                switch ( $status['status'] ) {
                                        case 'install':
 
                        if ( current_user_can( 'install_plugins' ) || current_user_can( 'update_plugins' ) ) {
                                $status = install_plugin_install_status( $plugin );
 
                                switch ( $status['status'] ) {
                                        case 'install':
-                                               if ( $status['url'] )
-                                                       $action_links[] = '<a class="install-now" href="' . $status['url'] . '" title="' . esc_attr( sprintf( __( 'Install %s' ), $name ) ) . '">' . __( 'Install Now' ) . '</a>';
+                                               if ( $status['url'] ) {
+                                                       /* translators: 1: Plugin name and version. */
+                                                       $action_links[] = '<a class="install-now button" href="' . $status['url'] . '" aria-label="' . esc_attr( sprintf( __( 'Install %s now' ), $name ) ) . '">' . __( 'Install Now' ) . '</a>';
+                                               }
+
                                                break;
                                        case 'update_available':
                                                break;
                                        case 'update_available':
-                                               if ( $status['url'] )
-                                                       $action_links[] = '<a href="' . $status['url'] . '" title="' . esc_attr( sprintf( __( 'Update to version %s' ), $status['version'] ) ) . '">' . __( 'Update Now' ) . '</a>';
+                                               if ( $status['url'] ) {
+                                                       /* translators: 1: Plugin name and version */
+                                                       $action_links[] = '<a class="button" href="' . $status['url'] . '" aria-label="' . esc_attr( sprintf( __( 'Update %s now' ), $name ) ) . '">' . __( 'Update Now' ) . '</a>';
+                                               }
+
                                                break;
                                        case 'latest_installed':
                                        case 'newer_installed':
                                                break;
                                        case 'latest_installed':
                                        case 'newer_installed':
-                                               $action_links[] = '<span title="' . esc_attr__( 'This plugin is already installed and is up to date' ) . ' ">' . _x( 'Installed', 'plugin' ) . '</span>';
+                                               $action_links[] = '<span class="button button-disabled" title="' . esc_attr__( 'This plugin is already installed and is up to date' ) . ' ">' . _x( 'Installed', 'plugin' ) . '</span>';
                                                break;
                                }
                        }
 
                                                break;
                                }
                        }
 
+                       $details_link   = self_admin_url( 'plugin-install.php?tab=plugin-information&amp;plugin=' . $plugin['slug'] .
+                                                               '&amp;TB_iframe=true&amp;width=600&amp;height=550' );
+
+                       /* translators: 1: Plugin name and version. */
+                       $action_links[] = '<a href="' . esc_url( $details_link ) . '" class="thickbox" aria-label="' . esc_attr( sprintf( __( 'More information about %s' ), $name ) ) . '" data-title="' . esc_attr( $name ) . '">' . __( 'More Details' ) . '</a>';
+
+                       if ( !empty( $plugin['icons']['svg'] ) ) {
+                               $plugin_icon_url = $plugin['icons']['svg'];
+                       } elseif ( !empty( $plugin['icons']['2x'] ) ) {
+                               $plugin_icon_url = $plugin['icons']['2x'];
+                       } elseif ( !empty( $plugin['icons']['1x'] ) ) {
+                               $plugin_icon_url = $plugin['icons']['1x'];
+                       } else {
+                               $plugin_icon_url = $plugin['icons']['default'];
+                       }
+
                        /**
                         * Filter the install action links for a plugin.
                         *
                        /**
                         * Filter the install action links for a plugin.
                         *
@@ -264,17 +433,56 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
                         */
                        $action_links = apply_filters( 'plugin_install_action_links', $action_links, $plugin );
                ?>
                         */
                        $action_links = apply_filters( 'plugin_install_action_links', $action_links, $plugin );
                ?>
-               <tr>
-                       <td class="name column-name"<?php echo $style['name']; ?>><strong><?php echo $title; ?></strong>
-                               <div class="action-links"><?php if ( !empty( $action_links ) ) echo implode( ' | ', $action_links ); ?></div>
-                       </td>
-                       <td class="vers column-version"<?php echo $style['version']; ?>><?php echo $version; ?></td>
-                       <td class="vers column-rating"<?php echo $style['rating']; ?>>
-                               <?php wp_star_rating( array( 'rating' => $plugin['rating'], 'type' => 'percent', 'number' => $plugin['num_ratings'] ) ); ?>
-                       </td>
-                       <td class="desc column-description"<?php echo $style['description']; ?>><?php echo $description, $author; ?></td>
-               </tr>
+               <div class="plugin-card">
+                       <div class="plugin-card-top">
+                               <a href="<?php echo esc_url( $details_link ); ?>" class="thickbox plugin-icon"><img src="<?php echo esc_attr( $plugin_icon_url ) ?>" /></a>
+                               <div class="name column-name">
+                                       <h4><a href="<?php echo esc_url( $details_link ); ?>" class="thickbox"><?php echo $title; ?></a></h4>
+                               </div>
+                               <div class="action-links">
+                                       <?php
+                                               if ( $action_links ) {
+                                                       echo '<ul class="plugin-action-buttons"><li>' . implode( '</li><li>', $action_links ) . '</li></ul>';
+                                               }
+                                       ?>
+                               </div>
+                               <div class="desc column-description">
+                                       <p><?php echo $description; ?></p>
+                                       <p class="authors"><?php echo $author; ?></p>
+                               </div>
+                       </div>
+                       <div class="plugin-card-bottom">
+                               <div class="vers column-rating">
+                                       <?php wp_star_rating( array( 'rating' => $plugin['rating'], 'type' => 'percent', 'number' => $plugin['num_ratings'] ) ); ?>
+                                       <span class="num-ratings">(<?php echo number_format_i18n( $plugin['num_ratings'] ); ?>)</span>
+                               </div>
+                               <div class="column-updated">
+                                       <strong><?php _e( 'Last Updated:' ); ?></strong> <span title="<?php echo esc_attr( $plugin['last_updated'] ); ?>">
+                                               <?php printf( __( '%s ago' ), human_time_diff( strtotime( $plugin['last_updated'] ) ) ); ?>
+                                       </span>
+                               </div>
+                               <div class="column-downloaded">
+                                       <?php echo sprintf( _n( '%s download', '%s downloads', $plugin['downloaded'] ), number_format_i18n( $plugin['downloaded'] ) ); ?>
+                               </div>
+                               <div class="column-compatibility">
+                                       <?php
+                                       if ( ! empty( $plugin['tested'] ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $plugin['tested'] ) ), $plugin['tested'], '>' ) ) {
+                                               echo '<span class="compatibility-untested">' . __( '<strong>Untested</strong> with your version of WordPress' ) . '</span>';
+                                       } elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' ) ) {
+                                               echo '<span class="compatibility-incompatible">' . __( '<strong>Incompatible</strong> with your version of WordPress' ) . '</span>';
+                                       } else {
+                                               echo '<span class="compatibility-compatible">' . __( '<strong>Compatible</strong> with your version of WordPress' ) . '</span>';
+                                       }
+                                       ?>
+                               </div>
+                       </div>
+               </div>
                <?php
                }
                <?php
                }
+
+               // Close off the group divs of the last one
+               if ( ! empty( $group ) ) {
+                       echo '</div></div>';
+               }
        }
 }
        }
 }
index 6535833710a5be61e851a6473f4f923a0de7e3fd..9fa1261e2b52e285b1a172bf50d51ec8122f8edb 100644 (file)
@@ -9,7 +9,17 @@
  */
 class WP_Plugins_List_Table extends WP_List_Table {
 
  */
 class WP_Plugins_List_Table extends WP_List_Table {
 
-       function __construct( $args = array() ) {
+       /**
+        * Constructor.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
+        */
+       public function __construct( $args = array() ) {
                global $status, $page;
 
                parent::__construct( array(
                global $status, $page;
 
                parent::__construct( array(
@@ -27,15 +37,15 @@ class WP_Plugins_List_Table extends WP_List_Table {
                $page = $this->get_pagenum();
        }
 
                $page = $this->get_pagenum();
        }
 
-       function get_table_classes() {
+       protected function get_table_classes() {
                return array( 'widefat', $this->_args['plural'] );
        }
 
                return array( 'widefat', $this->_args['plural'] );
        }
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                return current_user_can('activate_plugins');
        }
 
                return current_user_can('activate_plugins');
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                global $status, $plugins, $totals, $page, $orderby, $order, $s;
 
                wp_reset_vars( array( 'orderby', 'order', 's' ) );
                global $status, $plugins, $totals, $page, $orderby, $order, $s;
 
                wp_reset_vars( array( 'orderby', 'order', 's' ) );
@@ -109,7 +119,16 @@ class WP_Plugins_List_Table extends WP_List_Table {
                        update_option( 'recently_activated', $recently_activated );
                }
 
                        update_option( 'recently_activated', $recently_activated );
                }
 
+               $plugin_info = get_site_transient( 'update_plugins' );
+
                foreach ( (array) $plugins['all'] as $plugin_file => $plugin_data ) {
                foreach ( (array) $plugins['all'] as $plugin_file => $plugin_data ) {
+                       // Extra info if known. array_merge() ensures $plugin_data has precedence if keys collide.
+                       if ( isset( $plugin_info->response[ $plugin_file ] ) ) {
+                               $plugins['all'][ $plugin_file ] = $plugin_data = array_merge( (array) $plugin_info->response[ $plugin_file ], $plugin_data );
+                       } elseif ( isset( $plugin_info->no_update[ $plugin_file ] ) ) {
+                               $plugins['all'][ $plugin_file ] = $plugin_data = array_merge( (array) $plugin_info->no_update[ $plugin_file ], $plugin_data );
+                       }
+
                        // Filter into individual sections
                        if ( is_multisite() && ! $screen->in_admin( 'network' ) && is_network_only_plugin( $plugin_file ) && ! is_plugin_active( $plugin_file ) ) {
                                // On the non-network screen, filter out network-only plugins as long as they're not individually activated
                        // Filter into individual sections
                        if ( is_multisite() && ! $screen->in_admin( 'network' ) && is_network_only_plugin( $plugin_file ) && ! is_plugin_active( $plugin_file ) ) {
                                // On the non-network screen, filter out network-only plugins as long as they're not individually activated
@@ -172,7 +191,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function _search_callback( $plugin ) {
+       public function _search_callback( $plugin ) {
                static $term;
                if ( is_null( $term ) )
                        $term = wp_unslash( $_REQUEST['s'] );
                static $term;
                if ( is_null( $term ) )
                        $term = wp_unslash( $_REQUEST['s'] );
@@ -186,7 +205,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
                return false;
        }
 
                return false;
        }
 
-       function _order_callback( $plugin_a, $plugin_b ) {
+       public function _order_callback( $plugin_a, $plugin_b ) {
                global $orderby, $order;
 
                $a = $plugin_a[$orderby];
                global $orderby, $order;
 
                $a = $plugin_a[$orderby];
@@ -201,7 +220,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
                        return ( $a < $b ) ? -1 : 1;
        }
 
                        return ( $a < $b ) ? -1 : 1;
        }
 
-       function no_items() {
+       public function no_items() {
                global $plugins;
 
                if ( !empty( $plugins['all'] ) )
                global $plugins;
 
                if ( !empty( $plugins['all'] ) )
@@ -210,7 +229,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
                        _e( 'You do not appear to have any plugins available at this time.' );
        }
 
                        _e( 'You do not appear to have any plugins available at this time.' );
        }
 
-       function get_columns() {
+       public function get_columns() {
                global $status;
 
                return array(
                global $status;
 
                return array(
@@ -220,11 +239,11 @@ class WP_Plugins_List_Table extends WP_List_Table {
                );
        }
 
                );
        }
 
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array();
        }
 
                return array();
        }
 
-       function get_views() {
+       protected function get_views() {
                global $totals, $status;
 
                $status_links = array();
                global $totals, $status;
 
                $status_links = array();
@@ -268,7 +287,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
                return $status_links;
        }
 
                return $status_links;
        }
 
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                global $status;
 
                $actions = array();
                global $status;
 
                $actions = array();
@@ -289,16 +308,16 @@ class WP_Plugins_List_Table extends WP_List_Table {
                return $actions;
        }
 
                return $actions;
        }
 
-       function bulk_actions() {
+       public function bulk_actions( $which = '' ) {
                global $status;
 
                if ( in_array( $status, array( 'mustuse', 'dropins' ) ) )
                        return;
 
                global $status;
 
                if ( in_array( $status, array( 'mustuse', 'dropins' ) ) )
                        return;
 
-               parent::bulk_actions();
+               parent::bulk_actions( $which );
        }
 
        }
 
-       function extra_tablenav( $which ) {
+       protected function extra_tablenav( $which ) {
                global $status;
 
                if ( ! in_array($status, array('recently_activated', 'mustuse', 'dropins') ) )
                global $status;
 
                if ( ! in_array($status, array('recently_activated', 'mustuse', 'dropins') ) )
@@ -316,14 +335,14 @@ class WP_Plugins_List_Table extends WP_List_Table {
                echo '</div>';
        }
 
                echo '</div>';
        }
 
-       function current_action() {
+       public function current_action() {
                if ( isset($_POST['clear-recent-list']) )
                        return 'clear-recent-list';
 
                return parent::current_action();
        }
 
                if ( isset($_POST['clear-recent-list']) )
                        return 'clear-recent-list';
 
                return parent::current_action();
        }
 
-       function display_rows() {
+       public function display_rows() {
                global $status;
 
                if ( is_multisite() && ! $this->screen->in_admin( 'network' ) && in_array( $status, array( 'mustuse', 'dropins' ) ) )
                global $status;
 
                if ( is_multisite() && ! $this->screen->in_admin( 'network' ) && in_array( $status, array( 'mustuse', 'dropins' ) ) )
@@ -333,17 +352,18 @@ class WP_Plugins_List_Table extends WP_List_Table {
                        $this->single_row( array( $plugin_file, $plugin_data ) );
        }
 
                        $this->single_row( array( $plugin_file, $plugin_data ) );
        }
 
-       function single_row( $item ) {
+       public function single_row( $item ) {
                global $status, $page, $s, $totals;
 
                list( $plugin_file, $plugin_data ) = $item;
                $context = $status;
                $screen = $this->screen;
 
                global $status, $page, $s, $totals;
 
                list( $plugin_file, $plugin_data ) = $item;
                $context = $status;
                $screen = $this->screen;
 
-               // preorder
+               // Pre-order.
                $actions = array(
                        'deactivate' => '',
                        'activate' => '',
                $actions = array(
                        'deactivate' => '',
                        'activate' => '',
+                       'details' => '',
                        'edit' => '',
                        'delete' => '',
                );
                        'edit' => '',
                        'delete' => '',
                );
@@ -392,6 +412,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
                                        if ( ! is_multisite() && current_user_can('delete_plugins') )
                                                $actions['delete'] = '<a href="' . wp_nonce_url('plugins.php?action=delete-selected&amp;checked[]=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'bulk-plugins') . '" title="' . esc_attr__('Delete this plugin') . '" class="delete">' . __('Delete') . '</a>';
                                } // end if $is_active
                                        if ( ! is_multisite() && current_user_can('delete_plugins') )
                                                $actions['delete'] = '<a href="' . wp_nonce_url('plugins.php?action=delete-selected&amp;checked[]=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'bulk-plugins') . '" title="' . esc_attr__('Delete this plugin') . '" class="delete">' . __('Delete') . '</a>';
                                } // end if $is_active
+
                         } // end if $screen->in_admin( 'network' )
 
                        if ( ( ! is_multisite() || $screen->in_admin( 'network' ) ) && current_user_can('edit_plugins') && is_writable(WP_PLUGIN_DIR . '/' . $plugin_file) )
                         } // end if $screen->in_admin( 'network' )
 
                        if ( ( ! is_multisite() || $screen->in_admin( 'network' ) ) && current_user_can('edit_plugins') && is_writable(WP_PLUGIN_DIR . '/' . $plugin_file) )
@@ -494,11 +515,25 @@ class WP_Plugins_List_Table extends WP_List_Table {
                                        if ( !empty( $plugin_data['Author'] ) ) {
                                                $author = $plugin_data['Author'];
                                                if ( !empty( $plugin_data['AuthorURI'] ) )
                                        if ( !empty( $plugin_data['Author'] ) ) {
                                                $author = $plugin_data['Author'];
                                                if ( !empty( $plugin_data['AuthorURI'] ) )
-                                                       $author = '<a href="' . $plugin_data['AuthorURI'] . '" title="' . esc_attr__( 'Visit author homepage' ) . '">' . $plugin_data['Author'] . '</a>';
+                                                       $author = '<a href="' . $plugin_data['AuthorURI'] . '">' . $plugin_data['Author'] . '</a>';
                                                $plugin_meta[] = sprintf( __( 'By %s' ), $author );
                                        }
                                                $plugin_meta[] = sprintf( __( 'By %s' ), $author );
                                        }
-                                       if ( ! empty( $plugin_data['PluginURI'] ) )
-                                               $plugin_meta[] = '<a href="' . $plugin_data['PluginURI'] . '" title="' . esc_attr__( 'Visit plugin site' ) . '">' . __( 'Visit plugin site' ) . '</a>';
+
+                                       // Details link using API info, if available
+                                       if ( isset( $plugin_data['slug'] ) && current_user_can( 'install_plugins' ) ) {
+                                               $plugin_meta[] = sprintf( '<a href="%s" class="thickbox" aria-label="%s" data-title="%s">%s</a>',
+                                                       esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $plugin_data['slug'] .
+                                                               '&TB_iframe=true&width=600&height=550' ) ),
+                                                       esc_attr( sprintf( __( 'More information about %s' ), $plugin_name ) ),
+                                                       esc_attr( $plugin_name ),
+                                                       __( 'View details' )
+                                               );
+                                       } elseif ( ! empty( $plugin_data['PluginURI'] ) ) {
+                                               $plugin_meta[] = sprintf( '<a href="%s">%s</a>',
+                                                       esc_url( $plugin_data['PluginURI'] ),
+                                                       __( 'Visit plugin site' )
+                                               );
+                                       }
 
                                        /**
                                         * Filter the array of row meta for each plugin in the Plugins list table.
 
                                        /**
                                         * Filter the array of row meta for each plugin in the Plugins list table.
index 1e763f2ff33ef32790b4d5262b43ff5c19be43af..5914aea92e6f7128b51ee79441475623a8c909fb 100644 (file)
@@ -16,7 +16,7 @@ class WP_Posts_List_Table extends WP_List_Table {
         * @var bool
         * @access protected
         */
         * @var bool
         * @access protected
         */
-       var $hierarchical_display;
+       protected $hierarchical_display;
 
        /**
         * Holds the number of pending comments for each post
 
        /**
         * Holds the number of pending comments for each post
@@ -25,7 +25,7 @@ class WP_Posts_List_Table extends WP_List_Table {
         * @var int
         * @access protected
         */
         * @var int
         * @access protected
         */
-       var $comment_pending_count;
+       protected $comment_pending_count;
 
        /**
         * Holds the number of posts for this user
 
        /**
         * Holds the number of posts for this user
@@ -34,7 +34,7 @@ class WP_Posts_List_Table extends WP_List_Table {
         * @var int
         * @access private
         */
         * @var int
         * @access private
         */
-       var $user_posts_count;
+       private $user_posts_count;
 
        /**
         * Holds the number of posts which are sticky.
 
        /**
         * Holds the number of posts which are sticky.
@@ -43,9 +43,19 @@ class WP_Posts_List_Table extends WP_List_Table {
         * @var int
         * @access private
         */
         * @var int
         * @access private
         */
-       var $sticky_posts_count = 0;
+       private $sticky_posts_count = 0;
 
 
-       function __construct( $args = array() ) {
+       /**
+        * Constructor.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
+        */
+       public function __construct( $args = array() ) {
                global $post_type_object, $wpdb;
 
                parent::__construct( array(
                global $post_type_object, $wpdb;
 
                parent::__construct( array(
@@ -74,11 +84,11 @@ class WP_Posts_List_Table extends WP_List_Table {
                }
        }
 
                }
        }
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                return current_user_can( get_post_type_object( $this->screen->post_type )->cap->edit_posts );
        }
 
                return current_user_can( get_post_type_object( $this->screen->post_type )->cap->edit_posts );
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                global $avail_post_stati, $wp_query, $per_page, $mode;
 
                $avail_post_stati = wp_edit_posts_query();
                global $avail_post_stati, $wp_query, $per_page, $mode;
 
                $avail_post_stati = wp_edit_posts_query();
@@ -98,7 +108,12 @@ class WP_Posts_List_Table extends WP_List_Table {
                else
                        $total_pages = $wp_query->max_num_pages;
 
                else
                        $total_pages = $wp_query->max_num_pages;
 
-               $mode = empty( $_REQUEST['mode'] ) ? 'list' : $_REQUEST['mode'];
+               if ( ! empty( $_REQUEST['mode'] ) ) {
+                       $mode = $_REQUEST['mode'] == 'excerpt' ? 'excerpt' : 'list';
+                       set_user_setting ( 'posts_list_mode', $mode );
+               } else {
+                       $mode = get_user_setting ( 'posts_list_mode', 'list' );
+               }
 
                $this->is_trash = isset( $_REQUEST['post_status'] ) && $_REQUEST['post_status'] == 'trash';
 
 
                $this->is_trash = isset( $_REQUEST['post_status'] ) && $_REQUEST['post_status'] == 'trash';
 
@@ -109,18 +124,18 @@ class WP_Posts_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function has_items() {
+       public function has_items() {
                return have_posts();
        }
 
                return have_posts();
        }
 
-       function no_items() {
+       public function no_items() {
                if ( isset( $_REQUEST['post_status'] ) && 'trash' == $_REQUEST['post_status'] )
                        echo get_post_type_object( $this->screen->post_type )->labels->not_found_in_trash;
                else
                        echo get_post_type_object( $this->screen->post_type )->labels->not_found;
        }
 
                if ( isset( $_REQUEST['post_status'] ) && 'trash' == $_REQUEST['post_status'] )
                        echo get_post_type_object( $this->screen->post_type )->labels->not_found_in_trash;
                else
                        echo get_post_type_object( $this->screen->post_type )->labels->not_found;
        }
 
-       function get_views() {
+       protected function get_views() {
                global $locked_post_status, $avail_post_stati;
 
                $post_type = $this->screen->post_type;
                global $locked_post_status, $avail_post_stati;
 
                $post_type = $this->screen->post_type;
@@ -181,7 +196,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                return $status_links;
        }
 
                return $status_links;
        }
 
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                $actions = array();
 
                if ( $this->is_trash )
                $actions = array();
 
                if ( $this->is_trash )
@@ -197,7 +212,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                return $actions;
        }
 
                return $actions;
        }
 
-       function extra_tablenav( $which ) {
+       protected function extra_tablenav( $which ) {
                global $cat;
 ?>
                <div class="alignleft actions">
                global $cat;
 ?>
                <div class="alignleft actions">
@@ -228,7 +243,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                         */
                        do_action( 'restrict_manage_posts' );
 
                         */
                        do_action( 'restrict_manage_posts' );
 
-                       submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
+                       submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
                }
 
                if ( $this->is_trash && current_user_can( get_post_type_object( $this->screen->post_type )->cap->edit_others_posts ) ) {
                }
 
                if ( $this->is_trash && current_user_can( get_post_type_object( $this->screen->post_type )->cap->edit_others_posts ) ) {
@@ -239,14 +254,14 @@ class WP_Posts_List_Table extends WP_List_Table {
 <?php
        }
 
 <?php
        }
 
-       function current_action() {
+       public function current_action() {
                if ( isset( $_REQUEST['delete_all'] ) || isset( $_REQUEST['delete_all2'] ) )
                        return 'delete_all';
 
                return parent::current_action();
        }
 
                if ( isset( $_REQUEST['delete_all'] ) || isset( $_REQUEST['delete_all2'] ) )
                        return 'delete_all';
 
                return parent::current_action();
        }
 
-       function pagination( $which ) {
+       protected function pagination( $which ) {
                global $mode;
 
                parent::pagination( $which );
                global $mode;
 
                parent::pagination( $which );
@@ -255,11 +270,11 @@ class WP_Posts_List_Table extends WP_List_Table {
                        $this->view_switcher( $mode );
        }
 
                        $this->view_switcher( $mode );
        }
 
-       function get_table_classes() {
+       protected function get_table_classes() {
                return array( 'widefat', 'fixed', is_post_type_hierarchical( $this->screen->post_type ) ? 'pages' : 'posts' );
        }
 
                return array( 'widefat', 'fixed', is_post_type_hierarchical( $this->screen->post_type ) ? 'pages' : 'posts' );
        }
 
-       function get_columns() {
+       public function get_columns() {
                $post_type = $this->screen->post_type;
 
                $posts_columns = array();
                $post_type = $this->screen->post_type;
 
                $posts_columns = array();
@@ -269,10 +284,9 @@ class WP_Posts_List_Table extends WP_List_Table {
                /* translators: manage posts column name */
                $posts_columns['title'] = _x( 'Title', 'column name' );
 
                /* translators: manage posts column name */
                $posts_columns['title'] = _x( 'Title', 'column name' );
 
-               if ( post_type_supports( $post_type, 'author' ) )
+               if ( post_type_supports( $post_type, 'author' ) ) {
                        $posts_columns['author'] = __( 'Author' );
                        $posts_columns['author'] = __( 'Author' );
-
-               $taxonomies = array();
+               }
 
                $taxonomies = get_object_taxonomies( $post_type, 'objects' );
                $taxonomies = wp_filter_object_list( $taxonomies, array( 'show_admin_column' => true ), 'and', 'name' );
 
                $taxonomies = get_object_taxonomies( $post_type, 'objects' );
                $taxonomies = wp_filter_object_list( $taxonomies, array( 'show_admin_column' => true ), 'and', 'name' );
@@ -345,7 +359,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                return $posts_columns;
        }
 
                return $posts_columns;
        }
 
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array(
                        'title'    => 'title',
                        'parent'   => 'parent',
                return array(
                        'title'    => 'title',
                        'parent'   => 'parent',
@@ -354,7 +368,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                );
        }
 
                );
        }
 
-       function display_rows( $posts = array(), $level = 0 ) {
+       public function display_rows( $posts = array(), $level = 0 ) {
                global $wp_query, $per_page;
 
                if ( empty( $posts ) )
                global $wp_query, $per_page;
 
                if ( empty( $posts ) )
@@ -369,7 +383,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                }
        }
 
                }
        }
 
-       function _display_rows( $posts, $level = 0 ) {
+       private function _display_rows( $posts, $level = 0 ) {
                global $mode;
 
                // Create array of post IDs.
                global $mode;
 
                // Create array of post IDs.
@@ -384,7 +398,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                        $this->single_row( $post, $level );
        }
 
                        $this->single_row( $post, $level );
        }
 
-       function _display_rows_hierarchical( $pages, $pagenum = 1, $per_page = 20 ) {
+       private function _display_rows_hierarchical( $pages, $pagenum = 1, $per_page = 20 ) {
                global $wpdb;
 
                $level = 0;
                global $wpdb;
 
                $level = 0;
@@ -410,7 +424,7 @@ class WP_Posts_List_Table extends WP_List_Table {
 
                        foreach ( $pages as $page ) {
 
 
                        foreach ( $pages as $page ) {
 
-                               // catch and repair bad pages
+                               // Catch and repair bad pages.
                                if ( $page->post_parent == $page->ID ) {
                                        $page->post_parent = 0;
                                        $wpdb->update( $wpdb->posts, array( 'post_parent' => 0 ), array( 'ID' => $page->ID ) );
                                if ( $page->post_parent == $page->ID ) {
                                        $page->post_parent = 0;
                                        $wpdb->update( $wpdb->posts, array( 'post_parent' => 0 ), array( 'ID' => $page->ID ) );
@@ -445,7 +459,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                                $this->_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page );
                }
 
                                $this->_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page );
                }
 
-               // if it is the last pagenum and there are orphaned pages, display them with paging as well
+               // If it is the last pagenum and there are orphaned pages, display them with paging as well.
                if ( isset( $children_pages ) && $count < $end ){
                        foreach ( $children_pages as $orphans ){
                                foreach ( $orphans as $op ) {
                if ( isset( $children_pages ) && $count < $end ){
                        foreach ( $children_pages as $orphans ){
                                foreach ( $orphans as $op ) {
@@ -476,7 +490,7 @@ class WP_Posts_List_Table extends WP_List_Table {
         * @param int $pagenum
         * @param int $per_page
         */
         * @param int $pagenum
         * @param int $per_page
         */
-       function _page_rows( &$children_pages, &$count, $parent, $level, $pagenum, $per_page ) {
+       private function _page_rows( &$children_pages, &$count, $parent, $level, $pagenum, $per_page ) {
 
                if ( ! isset( $children_pages[$parent] ) )
                        return;
 
                if ( ! isset( $children_pages[$parent] ) )
                        return;
@@ -521,7 +535,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                unset( $children_pages[$parent] ); //required in order to keep track of orphans
        }
 
                unset( $children_pages[$parent] ); //required in order to keep track of orphans
        }
 
-       function single_row( $post, $level = 0 ) {
+       public function single_row( $post, $level = 0 ) {
                global $mode;
                static $alternate;
 
                global $mode;
                static $alternate;
 
@@ -587,7 +601,7 @@ class WP_Posts_List_Table extends WP_List_Table {
                                $attributes = 'class="post-title page-title column-title"' . $style;
                                if ( $this->hierarchical_display ) {
                                        if ( 0 == $level && (int) $post->post_parent > 0 ) {
                                $attributes = 'class="post-title page-title column-title"' . $style;
                                if ( $this->hierarchical_display ) {
                                        if ( 0 == $level && (int) $post->post_parent > 0 ) {
-                                               //sent level 0 by accident, by default, or because we don't know the actual level
+                                               // Sent level 0 by accident, by default, or because we don't know the actual level.
                                                $find_main_page = (int) $post->post_parent;
                                                while ( $find_main_page > 0 ) {
                                                        $parent = get_post( $find_main_page );
                                                $find_main_page = (int) $post->post_parent;
                                                while ( $find_main_page > 0 ) {
                                                        $parent = get_post( $find_main_page );
@@ -657,9 +671,10 @@ class WP_Posts_List_Table extends WP_List_Table {
                                if ( $post_type_object->public ) {
                                        if ( in_array( $post->post_status, array( 'pending', 'draft', 'future' ) ) ) {
                                                if ( $can_edit_post ) {
                                if ( $post_type_object->public ) {
                                        if ( in_array( $post->post_status, array( 'pending', 'draft', 'future' ) ) ) {
                                                if ( $can_edit_post ) {
-
+                                                       $preview_link = set_url_scheme( get_permalink( $post->ID ) );
                                                        /** This filter is documented in wp-admin/includes/meta-boxes.php */
                                                        /** This filter is documented in wp-admin/includes/meta-boxes.php */
-                                                       $actions['view'] = '<a href="' . esc_url( apply_filters( 'preview_post_link', set_url_scheme( add_query_arg( 'preview', 'true', get_permalink( $post->ID ) ) ) ) ) . '" title="' . esc_attr( sprintf( __( 'Preview &#8220;%s&#8221;' ), $title ) ) . '" rel="permalink">' . __( 'Preview' ) . '</a>';
+                                                       $preview_link = apply_filters( 'preview_post_link', add_query_arg( 'preview', 'true', $preview_link ), $post );
+                                                       $actions['view'] = '<a href="' . esc_url( $preview_link ) . '" title="' . esc_attr( sprintf( __( 'Preview &#8220;%s&#8221;' ), $title ) ) . '" rel="permalink">' . __( 'Preview' ) . '</a>';
                                                }
                                        } elseif ( 'trash' != $post->post_status ) {
                                                $actions['view'] = '<a href="' . get_permalink( $post->ID ) . '" title="' . esc_attr( sprintf( __( 'View &#8220;%s&#8221;' ), $title ) ) . '" rel="permalink">' . __( 'View' ) . '</a>';
                                                }
                                        } elseif ( 'trash' != $post->post_status ) {
                                                $actions['view'] = '<a href="' . get_permalink( $post->ID ) . '" title="' . esc_attr( sprintf( __( 'View &#8220;%s&#8221;' ), $title ) ) . '" rel="permalink">' . __( 'View' ) . '</a>';
@@ -879,7 +894,7 @@ class WP_Posts_List_Table extends WP_List_Table {
         *
         * @since 3.1.0
         */
         *
         * @since 3.1.0
         */
-       function inline_edit() {
+       public function inline_edit() {
                global $mode;
 
                $screen = $this->screen;
                global $mode;
 
                $screen = $this->screen;
index bf31468a6b37643b5c59ceee4c9a63bc7203c95b..743dfde45a8994b99dc6914775162cf144c9ccf2 100644 (file)
@@ -9,9 +9,19 @@
  */
 class WP_Terms_List_Table extends WP_List_Table {
 
  */
 class WP_Terms_List_Table extends WP_List_Table {
 
-       var $callback_args;
+       public $callback_args;
 
 
-       function __construct( $args = array() ) {
+       /**
+        * Constructor.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
+        */
+       public function __construct( $args = array() ) {
                global $post_type, $taxonomy, $action, $tax;
 
                parent::__construct( array(
                global $post_type, $taxonomy, $action, $tax;
 
                parent::__construct( array(
@@ -38,11 +48,11 @@ class WP_Terms_List_Table extends WP_List_Table {
 
        }
 
 
        }
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                return current_user_can( get_taxonomy( $this->screen->taxonomy )->cap->manage_terms );
        }
 
                return current_user_can( get_taxonomy( $this->screen->taxonomy )->cap->manage_terms );
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                $tags_per_page = $this->get_items_per_page( 'edit_' . $this->screen->taxonomy . '_per_page' );
 
                if ( 'post_tag' == $this->screen->taxonomy ) {
                $tags_per_page = $this->get_items_per_page( 'edit_' . $this->screen->taxonomy . '_per_page' );
 
                if ( 'post_tag' == $this->screen->taxonomy ) {
@@ -97,26 +107,26 @@ class WP_Terms_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function has_items() {
+       public function has_items() {
                // todo: populate $this->items in prepare_items()
                return true;
        }
 
                // todo: populate $this->items in prepare_items()
                return true;
        }
 
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                $actions = array();
                $actions['delete'] = __( 'Delete' );
 
                return $actions;
        }
 
                $actions = array();
                $actions['delete'] = __( 'Delete' );
 
                return $actions;
        }
 
-       function current_action() {
+       public function current_action() {
                if ( isset( $_REQUEST['action'] ) && isset( $_REQUEST['delete_tags'] ) && ( 'delete' == $_REQUEST['action'] || 'delete' == $_REQUEST['action2'] ) )
                        return 'bulk-delete';
 
                return parent::current_action();
        }
 
                if ( isset( $_REQUEST['action'] ) && isset( $_REQUEST['delete_tags'] ) && ( 'delete' == $_REQUEST['action'] || 'delete' == $_REQUEST['action2'] ) )
                        return 'bulk-delete';
 
                return parent::current_action();
        }
 
-       function get_columns() {
+       public function get_columns() {
                $columns = array(
                        'cb'          => '<input type="checkbox" />',
                        'name'        => _x( 'Name', 'term name' ),
                $columns = array(
                        'cb'          => '<input type="checkbox" />',
                        'name'        => _x( 'Name', 'term name' ),
@@ -127,14 +137,13 @@ class WP_Terms_List_Table extends WP_List_Table {
                if ( 'link_category' == $this->screen->taxonomy ) {
                        $columns['links'] = __( 'Links' );
                } else {
                if ( 'link_category' == $this->screen->taxonomy ) {
                        $columns['links'] = __( 'Links' );
                } else {
-                       $post_type_object = get_post_type_object( $this->screen->post_type );
-                       $columns['posts'] = $post_type_object ? $post_type_object->labels->name : __( 'Posts' );
+                       $columns['posts'] = _x( 'Count', 'Number/count of items' );
                }
 
                return $columns;
        }
 
                }
 
                return $columns;
        }
 
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                return array(
                        'name'        => 'name',
                        'description' => 'description',
                return array(
                        'name'        => 'name',
                        'description' => 'description',
@@ -144,7 +153,7 @@ class WP_Terms_List_Table extends WP_List_Table {
                );
        }
 
                );
        }
 
-       function display_rows_or_placeholder() {
+       public function display_rows_or_placeholder() {
                $taxonomy = $this->screen->taxonomy;
 
                $args = wp_parse_args( $this->callback_args, array(
                $taxonomy = $this->screen->taxonomy;
 
                $args = wp_parse_args( $this->callback_args, array(
@@ -154,46 +163,46 @@ class WP_Terms_List_Table extends WP_List_Table {
                        'hide_empty' => 0
                ) );
 
                        'hide_empty' => 0
                ) );
 
-               extract( $args, EXTR_SKIP );
+               $page = $args['page'];
+
+               // Set variable because $args['number'] can be subsequently overridden.
+               $number = $args['number'];
 
                $args['offset'] = $offset = ( $page - 1 ) * $number;
 
 
                $args['offset'] = $offset = ( $page - 1 ) * $number;
 
-               // convert it to table rows
+               // Convert it to table rows.
                $count = 0;
 
                $count = 0;
 
-               $terms = array();
-
-               if ( is_taxonomy_hierarchical( $taxonomy ) && !isset( $orderby ) ) {
+               if ( is_taxonomy_hierarchical( $taxonomy ) && ! isset( $args['orderby'] ) ) {
                        // We'll need the full set of terms then.
                        $args['number'] = $args['offset'] = 0;
                }
                $terms = get_terms( $taxonomy, $args );
 
                if ( empty( $terms ) ) {
                        // We'll need the full set of terms then.
                        $args['number'] = $args['offset'] = 0;
                }
                $terms = get_terms( $taxonomy, $args );
 
                if ( empty( $terms ) ) {
-                       list( $columns, $hidden ) = $this->get_column_info();
                        echo '<tr class="no-items"><td class="colspanchange" colspan="' . $this->get_column_count() . '">';
                        $this->no_items();
                        echo '</td></tr>';
                        return;
                }
 
                        echo '<tr class="no-items"><td class="colspanchange" colspan="' . $this->get_column_count() . '">';
                        $this->no_items();
                        echo '</td></tr>';
                        return;
                }
 
-               if ( is_taxonomy_hierarchical( $taxonomy ) && !isset( $orderby ) ) {
-                       if ( !empty( $search ) ) // Ignore children on searches.
+               if ( is_taxonomy_hierarchical( $taxonomy ) && ! isset( $args['orderby'] ) ) {
+                       if ( ! empty( $args['search'] ) ) {// Ignore children on searches.
                                $children = array();
                                $children = array();
-                       else
+                       } else {
                                $children = _get_term_hierarchy( $taxonomy );
                                $children = _get_term_hierarchy( $taxonomy );
-
+                       }
                        // Some funky recursion to get the job done( Paging & parents mainly ) is contained within, Skip it for non-hierarchical taxonomies for performance sake
                        $this->_rows( $taxonomy, $terms, $children, $offset, $number, $count );
                } else {
                        $terms = get_terms( $taxonomy, $args );
                        // Some funky recursion to get the job done( Paging & parents mainly ) is contained within, Skip it for non-hierarchical taxonomies for performance sake
                        $this->_rows( $taxonomy, $terms, $children, $offset, $number, $count );
                } else {
                        $terms = get_terms( $taxonomy, $args );
-                       foreach ( $terms as $term )
+                       foreach ( $terms as $term ) {
                                $this->single_row( $term );
                                $this->single_row( $term );
-                       $count = $number; // Only displaying a single page.
+                       }
                }
        }
 
                }
        }
 
-       function _rows( $taxonomy, $terms, &$children, $start, $per_page, &$count, $parent = 0, $level = 0 ) {
+       private function _rows( $taxonomy, $terms, &$children, $start, $per_page, &$count, $parent = 0, $level = 0 ) {
 
                $end = $start + $per_page;
 
 
                $end = $start + $per_page;
 
@@ -241,7 +250,10 @@ class WP_Terms_List_Table extends WP_List_Table {
                }
        }
 
                }
        }
 
-       function single_row( $tag, $level = 0 ) {
+       public function single_row( $tag, $level = 0 ) {
+               global $taxonomy;
+               $tag = sanitize_term( $tag, $taxonomy );
+
                static $row_class = '';
                $row_class = ( $row_class == '' ? ' class="alternate"' : '' );
 
                static $row_class = '';
                $row_class = ( $row_class == '' ? ' class="alternate"' : '' );
 
@@ -252,7 +264,7 @@ class WP_Terms_List_Table extends WP_List_Table {
                echo '</tr>';
        }
 
                echo '</tr>';
        }
 
-       function column_cb( $tag ) {
+       public function column_cb( $tag ) {
                $default_term = get_option( 'default_' . $this->screen->taxonomy );
 
                if ( current_user_can( get_taxonomy( $this->screen->taxonomy )->cap->delete_terms ) && $tag->term_id != $default_term )
                $default_term = get_option( 'default_' . $this->screen->taxonomy );
 
                if ( current_user_can( get_taxonomy( $this->screen->taxonomy )->cap->delete_terms ) && $tag->term_id != $default_term )
@@ -262,7 +274,7 @@ class WP_Terms_List_Table extends WP_List_Table {
                return '&nbsp;';
        }
 
                return '&nbsp;';
        }
 
-       function column_name( $tag ) {
+       public function column_name( $tag ) {
                $taxonomy = $this->screen->taxonomy;
                $tax = get_taxonomy( $taxonomy );
 
                $taxonomy = $this->screen->taxonomy;
                $tax = get_taxonomy( $taxonomy );
 
@@ -336,16 +348,16 @@ class WP_Terms_List_Table extends WP_List_Table {
                return $out;
        }
 
                return $out;
        }
 
-       function column_description( $tag ) {
+       public function column_description( $tag ) {
                return $tag->description;
        }
 
                return $tag->description;
        }
 
-       function column_slug( $tag ) {
+       public function column_slug( $tag ) {
                /** This filter is documented in wp-admin/edit-tag-form.php */
                return apply_filters( 'editable_slug', $tag->slug );
        }
 
                /** This filter is documented in wp-admin/edit-tag-form.php */
                return apply_filters( 'editable_slug', $tag->slug );
        }
 
-       function column_posts( $tag ) {
+       public function column_posts( $tag ) {
                $count = number_format_i18n( $tag->count );
 
                $tax = get_taxonomy( $this->screen->taxonomy );
                $count = number_format_i18n( $tag->count );
 
                $tax = get_taxonomy( $this->screen->taxonomy );
@@ -369,14 +381,14 @@ class WP_Terms_List_Table extends WP_List_Table {
                return "<a href='" . esc_url ( add_query_arg( $args, 'edit.php' ) ) . "'>$count</a>";
        }
 
                return "<a href='" . esc_url ( add_query_arg( $args, 'edit.php' ) ) . "'>$count</a>";
        }
 
-       function column_links( $tag ) {
+       public function column_links( $tag ) {
                $count = number_format_i18n( $tag->count );
                if ( $count )
                        $count = "<a href='link-manager.php?cat_id=$tag->term_id'>$count</a>";
                return $count;
        }
 
                $count = number_format_i18n( $tag->count );
                if ( $count )
                        $count = "<a href='link-manager.php?cat_id=$tag->term_id'>$count</a>";
                return $count;
        }
 
-       function column_default( $tag, $column_name ) {
+       public function column_default( $tag, $column_name ) {
                /**
                 * Filter the displayed columns in the terms list table.
                 *
                /**
                 * Filter the displayed columns in the terms list table.
                 *
@@ -397,7 +409,7 @@ class WP_Terms_List_Table extends WP_List_Table {
         *
         * @since 3.1.0
         */
         *
         * @since 3.1.0
         */
-       function inline_edit() {
+       public function inline_edit() {
                $tax = get_taxonomy( $this->screen->taxonomy );
 
                if ( ! current_user_can( $tax->cap->edit_terms ) )
                $tax = get_taxonomy( $this->screen->taxonomy );
 
                if ( ! current_user_can( $tax->cap->edit_terms ) )
index e991c4ec46b64ae684a060376705606b93963a8a..01ac2907e74551b458af33519e99117c4ea6feec 100644 (file)
@@ -9,13 +9,13 @@
  */
 class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
 
  */
 class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
 
-       var $features = array();
+       public $features = array();
 
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                return current_user_can( 'install_themes' );
        }
 
                return current_user_can( 'install_themes' );
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                include( ABSPATH . 'wp-admin/includes/theme-install.php' );
 
                global $tabs, $tab, $paged, $type, $theme_field_defaults;
                include( ABSPATH . 'wp-admin/includes/theme-install.php' );
 
                global $tabs, $tab, $paged, $type, $theme_field_defaults;
@@ -41,21 +41,14 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                if ( 'search' == $tab )
                        $tabs['search'] = __( 'Search Results' );
                $tabs['upload'] = __( 'Upload' );
                if ( 'search' == $tab )
                        $tabs['search'] = __( 'Search Results' );
                $tabs['upload'] = __( 'Upload' );
-               $tabs['featured'] = _x( 'Featured','Theme Installer' );
-               //$tabs['popular']  = _x( 'Popular','Theme Installer' );
-               $tabs['new']      = _x( 'Newest','Theme Installer' );
-               $tabs['updated']  = _x( 'Recently Updated','Theme Installer' );
+               $tabs['featured'] = _x( 'Featured', 'themes' );
+               //$tabs['popular']  = _x( 'Popular', 'themes' );
+               $tabs['new']      = _x( 'Latest', 'themes' );
+               $tabs['updated']  = _x( 'Recently Updated', 'themes' );
 
                $nonmenu_tabs = array( 'theme-information' ); // Valid actions to perform which do not have a Menu item.
 
 
                $nonmenu_tabs = array( 'theme-information' ); // Valid actions to perform which do not have a Menu item.
 
-               /**
-                * Filter the tabs shown on the Install Themes screen.
-                *
-                * @since 2.8.0
-                *
-                * @param array $tabs The tabs shown on the Install Themes screen. Defaults are
-                *                    'dashboard', 'search', 'upload', 'featured', 'new', and 'updated'.
-                */
+               /** This filter is documented in wp-admin/theme-install.php */
                $tabs = apply_filters( 'install_themes_tabs', $tabs );
 
                /**
                $tabs = apply_filters( 'install_themes_tabs', $tabs );
 
                /**
@@ -99,7 +92,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                                break;
 
                        case 'featured':
                                break;
 
                        case 'featured':
-                       //case 'popular':
+                       // case 'popular':
                        case 'new':
                        case 'updated':
                                $args['browse'] = $tab;
                        case 'new':
                        case 'updated':
                                $args['browse'] = $tab;
@@ -140,11 +133,11 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function no_items() {
+       public function no_items() {
                _e( 'No themes match your request.' );
        }
 
                _e( 'No themes match your request.' );
        }
 
-       function get_views() {
+       protected function get_views() {
                global $tabs, $tab;
 
                $display_tabs = array();
                global $tabs, $tab;
 
                $display_tabs = array();
@@ -157,7 +150,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                return $display_tabs;
        }
 
                return $display_tabs;
        }
 
-       function display() {
+       public function display() {
                wp_nonce_field( "fetch-list-" . get_class( $this ), '_ajax_fetch_list_nonce' );
 ?>
                <div class="tablenav top themes">
                wp_nonce_field( "fetch-list-" . get_class( $this ), '_ajax_fetch_list_nonce' );
 ?>
                <div class="tablenav top themes">
@@ -183,7 +176,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                parent::tablenav( 'bottom' );
        }
 
                parent::tablenav( 'bottom' );
        }
 
-       function display_rows() {
+       public function display_rows() {
                $themes = $this->items;
                foreach ( $themes as $theme ) {
                                ?>
                $themes = $this->items;
                foreach ( $themes as $theme ) {
                                ?>
@@ -214,7 +207,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
         *     public 'description' => string 'A basic magazine style layout with a fully customizable layout through a backend interface. Designed by <a href="http://bavotasan.com">c.bavota</a> of <a href="http://tinkerpriestmedia.com">Tinker Priest Media</a>.'
         *     public 'download_link' => string 'http://wordpress.org/themes/download/magazine-basic.1.1.zip'
         */
         *     public 'description' => string 'A basic magazine style layout with a fully customizable layout through a backend interface. Designed by <a href="http://bavotasan.com">c.bavota</a> of <a href="http://tinkerpriestmedia.com">Tinker Priest Media</a>.'
         *     public 'download_link' => string 'http://wordpress.org/themes/download/magazine-basic.1.1.zip'
         */
-       function single_row( $theme ) {
+       public function single_row( $theme ) {
                global $themes_allowedtags;
 
                if ( empty( $theme ) )
                global $themes_allowedtags;
 
                if ( empty( $theme ) )
@@ -244,10 +237,6 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                $status = $this->_get_theme_status( $theme );
 
                switch ( $status ) {
                $status = $this->_get_theme_status( $theme );
 
                switch ( $status ) {
-                       default:
-                       case 'install':
-                               $actions[] = '<a class="install-now" href="' . esc_url( wp_nonce_url( $install_url, 'install-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Install %s' ), $name ) ) . '">' . __( 'Install Now' ) . '</a>';
-                               break;
                        case 'update_available':
                                $actions[] = '<a class="install-now" href="' . esc_url( wp_nonce_url( $update_url, 'upgrade-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Update to version %s' ), $theme->version ) ) . '">' . __( 'Update' ) . '</a>';
                                break;
                        case 'update_available':
                                $actions[] = '<a class="install-now" href="' . esc_url( wp_nonce_url( $update_url, 'upgrade-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Update to version %s' ), $theme->version ) ) . '">' . __( 'Update' ) . '</a>';
                                break;
@@ -255,6 +244,10 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                        case 'latest_installed':
                                $actions[] = '<span class="install-now" title="' . esc_attr__( 'This theme is already installed and is up to date' ) . '">' . _x( 'Installed', 'theme' ) . '</span>';
                                break;
                        case 'latest_installed':
                                $actions[] = '<span class="install-now" title="' . esc_attr__( 'This theme is already installed and is up to date' ) . '">' . _x( 'Installed', 'theme' ) . '</span>';
                                break;
+                       case 'install':
+                       default:
+                               $actions[] = '<a class="install-now" href="' . esc_url( wp_nonce_url( $install_url, 'install-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Install %s' ), $name ) ) . '">' . __( 'Install Now' ) . '</a>';
+                               break;
                }
 
                $actions[] = '<a class="install-theme-preview" href="' . esc_url( $preview_url ) . '" title="' . esc_attr( sprintf( __( 'Preview %s' ), $name ) ) . '">' . __( 'Preview' ) . '</a>';
                }
 
                $actions[] = '<a class="install-theme-preview" href="' . esc_url( $preview_url ) . '" title="' . esc_attr( sprintf( __( 'Preview %s' ), $name ) ) . '">' . __( 'Preview' ) . '</a>';
@@ -272,7 +265,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
 
                ?>
                <a class="screenshot install-theme-preview" href="<?php echo esc_url( $preview_url ); ?>" title="<?php echo esc_attr( $preview_title ); ?>">
 
                ?>
                <a class="screenshot install-theme-preview" href="<?php echo esc_url( $preview_url ); ?>" title="<?php echo esc_attr( $preview_title ); ?>">
-                       <img src='<?php echo esc_url( $theme->screenshot_url ); ?>' width='150' />
+                       <img src="<?php echo esc_url( $theme->screenshot_url ); ?>" width="150" />
                </a>
 
                <h3><?php echo $name; ?></h3>
                </a>
 
                <h3><?php echo $name; ?></h3>
@@ -294,7 +287,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
        /**
         * Prints the wrapper for the theme installer.
         */
        /**
         * Prints the wrapper for the theme installer.
         */
-       function theme_installer() {
+       public function theme_installer() {
                ?>
                <div id="theme-installer" class="wp-full-overlay expanded">
                        <div class="wp-full-overlay-sidebar">
                ?>
                <div id="theme-installer" class="wp-full-overlay expanded">
                        <div class="wp-full-overlay-sidebar">
@@ -323,7 +316,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
         *
         * @param object $theme - A WordPress.org Theme API object.
         */
         *
         * @param object $theme - A WordPress.org Theme API object.
         */
-       function theme_installer_single( $theme ) {
+       public function theme_installer_single( $theme ) {
                ?>
                <div id="theme-installer" class="wp-full-overlay single-theme">
                        <div class="wp-full-overlay-sidebar">
                ?>
                <div id="theme-installer" class="wp-full-overlay single-theme">
                        <div class="wp-full-overlay-sidebar">
@@ -341,7 +334,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
         *
         * @param object $theme - A WordPress.org Theme API object.
         */
         *
         * @param object $theme - A WordPress.org Theme API object.
         */
-       function install_theme_info( $theme ) {
+       public function install_theme_info( $theme ) {
                global $themes_allowedtags;
 
                if ( empty( $theme ) )
                global $themes_allowedtags;
 
                if ( empty( $theme ) )
@@ -350,8 +343,6 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                $name   = wp_kses( $theme->name,   $themes_allowedtags );
                $author = wp_kses( $theme->author, $themes_allowedtags );
 
                $name   = wp_kses( $theme->name,   $themes_allowedtags );
                $author = wp_kses( $theme->author, $themes_allowedtags );
 
-               $num_ratings = sprintf( _n( '(based on %s rating)', '(based on %s ratings)', $theme->num_ratings ), number_format_i18n( $theme->num_ratings ) );
-
                $install_url = add_query_arg( array(
                        'action' => 'install-theme',
                        'theme'  => $theme->slug,
                $install_url = add_query_arg( array(
                        'action' => 'install-theme',
                        'theme'  => $theme->slug,
@@ -367,10 +358,6 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                ?>
                <div class="install-theme-info"><?php
                        switch ( $status ) {
                ?>
                <div class="install-theme-info"><?php
                        switch ( $status ) {
-                               default:
-                               case 'install':
-                                       echo '<a class="theme-install button-primary" href="' . esc_url( wp_nonce_url( $install_url, 'install-theme_' . $theme->slug ) ) . '">' . __( 'Install' ) . '</a>';
-                                       break;
                                case 'update_available':
                                        echo '<a class="theme-install button-primary" href="' . esc_url( wp_nonce_url( $update_url, 'upgrade-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Update to version %s' ), $theme->version ) ) . '">' . __( 'Update' ) . '</a>';
                                        break;
                                case 'update_available':
                                        echo '<a class="theme-install button-primary" href="' . esc_url( wp_nonce_url( $update_url, 'upgrade-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Update to version %s' ), $theme->version ) ) . '">' . __( 'Update' ) . '</a>';
                                        break;
@@ -378,6 +365,10 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
                                case 'latest_installed':
                                        echo '<span class="theme-install" title="' . esc_attr__( 'This theme is already installed and is up to date' ) . '">' . _x( 'Installed', 'theme' ) . '</span>';
                                        break;
                                case 'latest_installed':
                                        echo '<span class="theme-install" title="' . esc_attr__( 'This theme is already installed and is up to date' ) . '">' . _x( 'Installed', 'theme' ) . '</span>';
                                        break;
+                               case 'install':
+                               default:
+                                       echo '<a class="theme-install button-primary" href="' . esc_url( wp_nonce_url( $install_url, 'install-theme_' . $theme->slug ) ) . '">' . __( 'Install' ) . '</a>';
+                                       break;
                        } ?>
                        <h3 class="theme-name"><?php echo $name; ?></h3>
                        <span class="theme-by"><?php printf( __( 'By %s' ), $author ); ?></span>
                        } ?>
                        <h3 class="theme-name"><?php echo $name; ?></h3>
                        <span class="theme-by"><?php printf( __( 'By %s' ), $author ); ?></span>
@@ -403,12 +394,12 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
         * Send required variables to JavaScript land
         *
         * @since 3.4.0
         * Send required variables to JavaScript land
         *
         * @since 3.4.0
-        * @access private
+        * @access public
         *
         * @uses $tab Global; current tab within Themes->Install screen
         * @uses $type Global; type of search.
         */
         *
         * @uses $tab Global; current tab within Themes->Install screen
         * @uses $type Global; type of search.
         */
-       function _js_vars( $extra_args = array() ) {
+       public function _js_vars( $extra_args = array() ) {
                global $tab, $type;
                parent::_js_vars( compact( 'tab', 'type' ) );
        }
                global $tab, $type;
                parent::_js_vars( compact( 'tab', 'type' ) );
        }
index be75de02a673324a495e19f3e6b23f5277a31b2f..de34581d8a0fefef215c34ce0ae3fc131ed4c3ae 100644 (file)
 class WP_Themes_List_Table extends WP_List_Table {
 
        protected $search_terms = array();
 class WP_Themes_List_Table extends WP_List_Table {
 
        protected $search_terms = array();
-       var $features = array();
+       public $features = array();
 
 
-       function __construct( $args = array() ) {
+       /**
+        * Constructor.
+        *
+        * @since 3.1.0
+        * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
+        */
+       public function __construct( $args = array() ) {
                parent::__construct( array(
                        'ajax' => true,
                        'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
                ) );
        }
 
                parent::__construct( array(
                        'ajax' => true,
                        'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
                ) );
        }
 
-       function ajax_user_can() {
+       public function ajax_user_can() {
                // Do not check edit_theme_options here. AJAX calls for available themes require switch_themes.
                return current_user_can( 'switch_themes' );
        }
 
                // Do not check edit_theme_options here. AJAX calls for available themes require switch_themes.
                return current_user_can( 'switch_themes' );
        }
 
-       function prepare_items() {
+       public function prepare_items() {
                $themes = wp_get_themes( array( 'allowed' => true ) );
 
                if ( ! empty( $_REQUEST['s'] ) )
                $themes = wp_get_themes( array( 'allowed' => true ) );
 
                if ( ! empty( $_REQUEST['s'] ) )
@@ -57,7 +67,7 @@ class WP_Themes_List_Table extends WP_List_Table {
                ) );
        }
 
                ) );
        }
 
-       function no_items() {
+       public function no_items() {
                if ( $this->search_terms || $this->features ) {
                        _e( 'No items found.' );
                        return;
                if ( $this->search_terms || $this->features ) {
                        _e( 'No items found.' );
                        return;
@@ -73,7 +83,7 @@ class WP_Themes_List_Table extends WP_List_Table {
 
                                return;
                        }
 
                                return;
                        }
-                       // else, fallthrough. install_themes doesn't help if you can't enable it.
+                       // Else, fallthrough. install_themes doesn't help if you can't enable it.
                } else {
                        if ( current_user_can( 'install_themes' ) ) {
                                printf( __( 'You only have one theme installed right now. Live a little! You can choose from over 1,000 free themes in the WordPress.org Theme Directory at any time: just click on the <a href="%s">Install Themes</a> tab above.' ), admin_url( 'theme-install.php' ) );
                } else {
                        if ( current_user_can( 'install_themes' ) ) {
                                printf( __( 'You only have one theme installed right now. Live a little! You can choose from over 1,000 free themes in the WordPress.org Theme Directory at any time: just click on the <a href="%s">Install Themes</a> tab above.' ), admin_url( 'theme-install.php' ) );
@@ -85,7 +95,7 @@ class WP_Themes_List_Table extends WP_List_Table {
                printf( __( 'Only the current theme is available to you. Contact the %s administrator for information about accessing additional themes.' ), get_site_option( 'site_name' ) );
        }
 
                printf( __( 'Only the current theme is available to you. Contact the %s administrator for information about accessing additional themes.' ), get_site_option( 'site_name' ) );
        }
 
-       function tablenav( $which = 'top' ) {
+       public function tablenav( $which = 'top' ) {
                if ( $this->get_pagination_arg( 'total_pages' ) <= 1 )
                        return;
                ?>
                if ( $this->get_pagination_arg( 'total_pages' ) <= 1 )
                        return;
                ?>
@@ -97,7 +107,7 @@ class WP_Themes_List_Table extends WP_List_Table {
                <?php
        }
 
                <?php
        }
 
-       function display() {
+       public function display() {
                wp_nonce_field( "fetch-list-" . get_class( $this ), '_ajax_fetch_list_nonce' );
 ?>
                <?php $this->tablenav( 'top' ); ?>
                wp_nonce_field( "fetch-list-" . get_class( $this ), '_ajax_fetch_list_nonce' );
 ?>
                <?php $this->tablenav( 'top' ); ?>
@@ -110,11 +120,11 @@ class WP_Themes_List_Table extends WP_List_Table {
 <?php
        }
 
 <?php
        }
 
-       function get_columns() {
+       public function get_columns() {
                return array();
        }
 
                return array();
        }
 
-       function display_rows_or_placeholder() {
+       public function display_rows_or_placeholder() {
                if ( $this->has_items() ) {
                        $this->display_rows();
                } else {
                if ( $this->has_items() ) {
                        $this->display_rows();
                } else {
@@ -124,7 +134,7 @@ class WP_Themes_List_Table extends WP_List_Table {
                }
        }
 
                }
        }
 
-       function display_rows() {
+       public function display_rows() {
                $themes = $this->items;
 
                foreach ( $themes as $theme ):
                $themes = $this->items;
 
                foreach ( $themes as $theme ):
@@ -149,9 +159,10 @@ class WP_Themes_List_Table extends WP_List_Table {
                        $actions['preview'] = '<a href="' . $preview_link . '" class="hide-if-customize" title="'
                                . esc_attr( sprintf( __( 'Preview &#8220;%s&#8221;' ), $title ) ) . '">' . __( 'Preview' ) . '</a>';
 
                        $actions['preview'] = '<a href="' . $preview_link . '" class="hide-if-customize" title="'
                                . esc_attr( sprintf( __( 'Preview &#8220;%s&#8221;' ), $title ) ) . '">' . __( 'Preview' ) . '</a>';
 
-                       if ( current_user_can( 'edit_theme_options' ) )
+                       if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
                                $actions['preview'] .= '<a href="' . wp_customize_url( $stylesheet ) . '" class="load-customize hide-if-no-customize">'
                                        . __( 'Live Preview' ) . '</a>';
                                $actions['preview'] .= '<a href="' . wp_customize_url( $stylesheet ) . '" class="load-customize hide-if-no-customize">'
                                        . __( 'Live Preview' ) . '</a>';
+                       }
 
                        if ( ! is_multisite() && current_user_can( 'delete_themes' ) )
                                $actions['delete'] = '<a class="submitdelete deletion" href="' . wp_nonce_url( 'themes.php?action=delete&amp;stylesheet=' . urlencode( $stylesheet ), 'delete-theme_' . $stylesheet )
 
                        if ( ! is_multisite() && current_user_can( 'delete_themes' ) )
                                $actions['delete'] = '<a class="submitdelete deletion" href="' . wp_nonce_url( 'themes.php?action=delete&amp;stylesheet=' . urlencode( $stylesheet ), 'delete-theme_' . $stylesheet )
@@ -208,7 +219,7 @@ class WP_Themes_List_Table extends WP_List_Table {
                endforeach;
        }
 
                endforeach;
        }
 
-       function search_theme( $theme ) {
+       public function search_theme( $theme ) {
                // Search the features
                foreach ( $this->features as $word ) {
                        if ( ! in_array( $word, $theme->get('Tags') ) )
                // Search the features
                foreach ( $this->features as $word ) {
                        if ( ! in_array( $word, $theme->get('Tags') ) )
@@ -243,13 +254,13 @@ class WP_Themes_List_Table extends WP_List_Table {
         * Send required variables to JavaScript land
         *
         * @since 3.4.0
         * Send required variables to JavaScript land
         *
         * @since 3.4.0
-        * @access private
+        * @access public
         *
         * @uses $this->features Array of all feature search terms.
         * @uses get_pagenum()
         * @uses _pagination_args['total_pages']
         */
         *
         * @uses $this->features Array of all feature search terms.
         * @uses get_pagenum()
         * @uses _pagination_args['total_pages']
         */
-        function _js_vars( $extra_args = array() ) {
+       public function _js_vars( $extra_args = array() ) {
                $search_string = isset( $_REQUEST['s'] ) ? esc_attr( wp_unslash( $_REQUEST['s'] ) ) : '';
 
                $args = array(
                $search_string = isset( $_REQUEST['s'] ) ? esc_attr( wp_unslash( $_REQUEST['s'] ) ) : '';
 
                $args = array(
index 8c4840764271203981accd913bd917d160228137..8fcee68f3cd96533f20fac5a6347d7fba1fb83a2 100644 (file)
  */
 class WP_Upgrader_Skin {
 
  */
 class WP_Upgrader_Skin {
 
-       var $upgrader;
-       var $done_header = false;
-       var $result = false;
+       public $upgrader;
+       public $done_header = false;
+       public $done_footer = false;
+       public $result = false;
 
 
-       function __construct($args = array()) {
+       public function __construct($args = array()) {
                $defaults = array( 'url' => '', 'nonce' => '', 'title' => '', 'context' => false );
                $this->options = wp_parse_args($args, $defaults);
        }
 
                $defaults = array( 'url' => '', 'nonce' => '', 'title' => '', 'context' => false );
                $this->options = wp_parse_args($args, $defaults);
        }
 
-       function set_upgrader(&$upgrader) {
+       public function set_upgrader(&$upgrader) {
                if ( is_object($upgrader) )
                        $this->upgrader =& $upgrader;
                $this->add_strings();
        }
 
                if ( is_object($upgrader) )
                        $this->upgrader =& $upgrader;
                $this->add_strings();
        }
 
-       function add_strings() {
+       public function add_strings() {
        }
 
        }
 
-       function set_result($result) {
+       public function set_result($result) {
                $this->result = $result;
        }
 
                $this->result = $result;
        }
 
-       function request_filesystem_credentials($error = false) {
+       public function request_filesystem_credentials($error = false) {
                $url = $this->options['url'];
                $context = $this->options['context'];
                if ( !empty($this->options['nonce']) )
                $url = $this->options['url'];
                $context = $this->options['context'];
                if ( !empty($this->options['nonce']) )
@@ -46,18 +47,23 @@ class WP_Upgrader_Skin {
                return request_filesystem_credentials($url, '', $error, $context); //Possible to bring inline, Leaving as is for now.
        }
 
                return request_filesystem_credentials($url, '', $error, $context); //Possible to bring inline, Leaving as is for now.
        }
 
-       function header() {
-               if ( $this->done_header )
+       public function header() {
+               if ( $this->done_header ) {
                        return;
                        return;
+               }
                $this->done_header = true;
                echo '<div class="wrap">';
                echo '<h2>' . $this->options['title'] . '</h2>';
        }
                $this->done_header = true;
                echo '<div class="wrap">';
                echo '<h2>' . $this->options['title'] . '</h2>';
        }
-       function footer() {
+       public function footer() {
+               if ( $this->done_footer ) {
+                       return;
+               }
+               $this->done_footer = true;
                echo '</div>';
        }
 
                echo '</div>';
        }
 
-       function error($errors) {
+       public function error($errors) {
                if ( ! $this->done_header )
                        $this->header();
                if ( is_string($errors) ) {
                if ( ! $this->done_header )
                        $this->header();
                if ( is_string($errors) ) {
@@ -72,7 +78,7 @@ class WP_Upgrader_Skin {
                }
        }
 
                }
        }
 
-       function feedback($string) {
+       public function feedback($string) {
                if ( isset( $this->upgrader->strings[$string] ) )
                        $string = $this->upgrader->strings[$string];
 
                if ( isset( $this->upgrader->strings[$string] ) )
                        $string = $this->upgrader->strings[$string];
 
@@ -89,8 +95,8 @@ class WP_Upgrader_Skin {
                        return;
                show_message($string);
        }
                        return;
                show_message($string);
        }
-       function before() {}
-       function after() {}
+       public function before() {}
+       public function after() {}
 
        /**
         * Output JavaScript that calls function to decrement the update counts.
 
        /**
         * Output JavaScript that calls function to decrement the update counts.
@@ -104,13 +110,22 @@ class WP_Upgrader_Skin {
                if ( ! $this->result || is_wp_error( $this->result ) || 'up_to_date' === $this->result ) {
                        return;
                }
                if ( ! $this->result || is_wp_error( $this->result ) || 'up_to_date' === $this->result ) {
                        return;
                }
-               echo '<script type="text/javascript">
-                               (function( wp ) {
-                                       if ( wp && wp.updates.decrementCount ) {
-                                               wp.updates.decrementCount( "' . $type . '" );
+
+               if ( defined( 'IFRAME_REQUEST' ) ) {
+                       echo '<script type="text/javascript">
+                                       if ( window.postMessage && JSON ) {
+                                               window.parent.postMessage( JSON.stringify( { action: "decrementUpdateCount", upgradeType: "' . $type . '" } ), window.location.protocol + "//" + window.location.hostname );
                                        }
                                        }
-                               })( window.wp );
-                       </script>';
+                               </script>';
+               } else {
+                       echo '<script type="text/javascript">
+                                       (function( wp ) {
+                                               if ( wp && wp.updates.decrementCount ) {
+                                                       wp.updates.decrementCount( "' . $type . '" );
+                                               }
+                                       })( window.wp );
+                               </script>';
+               }
        }
 }
 
        }
 }
 
@@ -122,11 +137,11 @@ class WP_Upgrader_Skin {
  * @since 2.8.0
  */
 class Plugin_Upgrader_Skin extends WP_Upgrader_Skin {
  * @since 2.8.0
  */
 class Plugin_Upgrader_Skin extends WP_Upgrader_Skin {
-       var $plugin = '';
-       var $plugin_active = false;
-       var $plugin_network_active = false;
+       public $plugin = '';
+       public $plugin_active = false;
+       public $plugin_network_active = false;
 
 
-       function __construct($args = array()) {
+       public function __construct($args = array()) {
                $defaults = array( 'url' => '', 'plugin' => '', 'nonce' => '', 'title' => __('Update Plugin') );
                $args = wp_parse_args($args, $defaults);
 
                $defaults = array( 'url' => '', 'plugin' => '', 'nonce' => '', 'title' => __('Update Plugin') );
                $args = wp_parse_args($args, $defaults);
 
@@ -138,7 +153,7 @@ class Plugin_Upgrader_Skin extends WP_Upgrader_Skin {
                parent::__construct($args);
        }
 
                parent::__construct($args);
        }
 
-       function after() {
+       public function after() {
                $this->plugin = $this->upgrader->plugin_info();
                if ( !empty($this->plugin) && !is_wp_error($this->result) && $this->plugin_active ){
                        echo '<iframe style="border:0;overflow:hidden" width="100%" height="170px" src="' . wp_nonce_url('update.php?action=activate-plugin&networkwide=' . $this->plugin_network_active . '&plugin=' . urlencode( $this->plugin ), 'activate-plugin_' . $this->plugin) .'"></iframe>';
                $this->plugin = $this->upgrader->plugin_info();
                if ( !empty($this->plugin) && !is_wp_error($this->result) && $this->plugin_active ){
                        echo '<iframe style="border:0;overflow:hidden" width="100%" height="170px" src="' . wp_nonce_url('update.php?action=activate-plugin&networkwide=' . $this->plugin_network_active . '&plugin=' . urlencode( $this->plugin ), 'activate-plugin_' . $this->plugin) .'"></iframe>';
@@ -176,17 +191,17 @@ class Plugin_Upgrader_Skin extends WP_Upgrader_Skin {
  * @since 3.0.0
  */
 class Bulk_Upgrader_Skin extends WP_Upgrader_Skin {
  * @since 3.0.0
  */
 class Bulk_Upgrader_Skin extends WP_Upgrader_Skin {
-       var $in_loop = false;
-       var $error = false;
+       public $in_loop = false;
+       public $error = false;
 
 
-       function __construct($args = array()) {
+       public function __construct($args = array()) {
                $defaults = array( 'url' => '', 'nonce' => '' );
                $args = wp_parse_args($args, $defaults);
 
                parent::__construct($args);
        }
 
                $defaults = array( 'url' => '', 'nonce' => '' );
                $args = wp_parse_args($args, $defaults);
 
                parent::__construct($args);
        }
 
-       function add_strings() {
+       public function add_strings() {
                $this->upgrader->strings['skin_upgrade_start'] = __('The update process is starting. This process may take a while on some hosts, so please be patient.');
                $this->upgrader->strings['skin_update_failed_error'] = __('An error occurred while updating %1$s: <strong>%2$s</strong>');
                $this->upgrader->strings['skin_update_failed'] = __('The update of %1$s failed.');
                $this->upgrader->strings['skin_upgrade_start'] = __('The update process is starting. This process may take a while on some hosts, so please be patient.');
                $this->upgrader->strings['skin_update_failed_error'] = __('An error occurred while updating %1$s: <strong>%2$s</strong>');
                $this->upgrader->strings['skin_update_failed'] = __('The update of %1$s failed.');
@@ -194,7 +209,7 @@ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin {
                $this->upgrader->strings['skin_upgrade_end'] = __('All updates have been completed.');
        }
 
                $this->upgrader->strings['skin_upgrade_end'] = __('All updates have been completed.');
        }
 
-       function feedback($string) {
+       public function feedback($string) {
                if ( isset( $this->upgrader->strings[$string] ) )
                        $string = $this->upgrader->strings[$string];
 
                if ( isset( $this->upgrader->strings[$string] ) )
                        $string = $this->upgrader->strings[$string];
 
@@ -215,18 +230,19 @@ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin {
                        echo "<p>$string</p>\n";
        }
 
                        echo "<p>$string</p>\n";
        }
 
-       function header() {
+       public function header() {
                // Nothing, This will be displayed within a iframe.
        }
 
                // Nothing, This will be displayed within a iframe.
        }
 
-       function footer() {
+       public function footer() {
                // Nothing, This will be displayed within a iframe.
        }
                // Nothing, This will be displayed within a iframe.
        }
-       function error($error) {
+       public function error($error) {
                if ( is_string($error) && isset( $this->upgrader->strings[$error] ) )
                        $this->error = $this->upgrader->strings[$error];
 
                if ( is_wp_error($error) ) {
                if ( is_string($error) && isset( $this->upgrader->strings[$error] ) )
                        $this->error = $this->upgrader->strings[$error];
 
                if ( is_wp_error($error) ) {
+                       $messages = array();
                        foreach ( $error->get_error_messages() as $emessage ) {
                                if ( $error->get_error_data() && is_string( $error->get_error_data() ) )
                                        $messages[] = $emessage . ' ' . esc_html( strip_tags( $error->get_error_data() ) );
                        foreach ( $error->get_error_messages() as $emessage ) {
                                if ( $error->get_error_data() && is_string( $error->get_error_data() ) )
                                        $messages[] = $emessage . ' ' . esc_html( strip_tags( $error->get_error_data() ) );
@@ -238,15 +254,15 @@ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin {
                echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').hide();</script>';
        }
 
                echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').hide();</script>';
        }
 
-       function bulk_header() {
+       public function bulk_header() {
                $this->feedback('skin_upgrade_start');
        }
 
                $this->feedback('skin_upgrade_start');
        }
 
-       function bulk_footer() {
+       public function bulk_footer() {
                $this->feedback('skin_upgrade_end');
        }
 
                $this->feedback('skin_upgrade_end');
        }
 
-       function before($title = '') {
+       public function before($title = '') {
                $this->in_loop = true;
                printf( '<h4>' . $this->upgrader->strings['skin_before_update_header'] . ' <span class="spinner waiting-' . $this->upgrader->update_current . '"></span></h4>',  $title, $this->upgrader->update_current, $this->upgrader->update_count);
                echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').css("display", "inline-block");</script>';
                $this->in_loop = true;
                printf( '<h4>' . $this->upgrader->strings['skin_before_update_header'] . ' <span class="spinner waiting-' . $this->upgrader->update_current . '"></span></h4>',  $title, $this->upgrader->update_current, $this->upgrader->update_count);
                echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').css("display", "inline-block");</script>';
@@ -254,7 +270,7 @@ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin {
                $this->flush_output();
        }
 
                $this->flush_output();
        }
 
-       function after($title = '') {
+       public function after($title = '') {
                echo '</p></div>';
                if ( $this->error || ! $this->result ) {
                        if ( $this->error )
                echo '</p></div>';
                if ( $this->error || ! $this->result ) {
                        if ( $this->error )
@@ -274,57 +290,38 @@ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin {
                $this->flush_output();
        }
 
                $this->flush_output();
        }
 
-       function reset() {
+       public function reset() {
                $this->in_loop = false;
                $this->error = false;
        }
 
                $this->in_loop = false;
                $this->error = false;
        }
 
-       function flush_output() {
+       public function flush_output() {
                wp_ob_end_flush_all();
                flush();
        }
                wp_ob_end_flush_all();
                flush();
        }
-
-       /**
-        * Output JavaScript that sends message to parent window to decrement the update counts.
-        *
-        * @since 3.9.0
-        *
-        * @param string $type Type of update count to decrement. Likely values include 'plugin',
-        *                     'theme', 'translation', etc.
-        */
-       protected function decrement_update_count( $type ) {
-               if ( ! $this->result || is_wp_error( $this->result ) || 'up_to_date' === $this->result ) {
-                       return;
-               }
-               echo '<script type="text/javascript">
-                               if ( window.postMessage && JSON ) {
-                                       window.parent.postMessage( JSON.stringify( { action: "decrementUpdateCount", upgradeType: "' . $type . '" } ), window.location.protocol + "//" + window.location.hostname );
-                               }
-                       </script>';
-       }
 }
 
 class Bulk_Plugin_Upgrader_Skin extends Bulk_Upgrader_Skin {
 }
 
 class Bulk_Plugin_Upgrader_Skin extends Bulk_Upgrader_Skin {
-       var $plugin_info = array(); // Plugin_Upgrader::bulk() will fill this in.
+       public $plugin_info = array(); // Plugin_Upgrader::bulk() will fill this in.
 
 
-       function __construct($args = array()) {
+       public function __construct($args = array()) {
                parent::__construct($args);
        }
 
                parent::__construct($args);
        }
 
-       function add_strings() {
+       public function add_strings() {
                parent::add_strings();
                $this->upgrader->strings['skin_before_update_header'] = __('Updating Plugin %1$s (%2$d/%3$d)');
        }
 
                parent::add_strings();
                $this->upgrader->strings['skin_before_update_header'] = __('Updating Plugin %1$s (%2$d/%3$d)');
        }
 
-       function before($title = '') {
+       public function before($title = '') {
                parent::before($this->plugin_info['Title']);
        }
 
                parent::before($this->plugin_info['Title']);
        }
 
-       function after($title = '') {
+       public function after($title = '') {
                parent::after($this->plugin_info['Title']);
                $this->decrement_update_count( 'plugin' );
        }
                parent::after($this->plugin_info['Title']);
                $this->decrement_update_count( 'plugin' );
        }
-       function bulk_footer() {
+       public function bulk_footer() {
                parent::bulk_footer();
                $update_actions =  array(
                        'plugins_page' => '<a href="' . self_admin_url('plugins.php') . '" title="' . esc_attr__('Go to plugins page') . '" target="_parent">' . __('Return to Plugins page') . '</a>',
                parent::bulk_footer();
                $update_actions =  array(
                        'plugins_page' => '<a href="' . self_admin_url('plugins.php') . '" title="' . esc_attr__('Go to plugins page') . '" target="_parent">' . __('Return to Plugins page') . '</a>',
@@ -349,27 +346,27 @@ class Bulk_Plugin_Upgrader_Skin extends Bulk_Upgrader_Skin {
 }
 
 class Bulk_Theme_Upgrader_Skin extends Bulk_Upgrader_Skin {
 }
 
 class Bulk_Theme_Upgrader_Skin extends Bulk_Upgrader_Skin {
-       var $theme_info = array(); // Theme_Upgrader::bulk() will fill this in.
+       public $theme_info = array(); // Theme_Upgrader::bulk() will fill this in.
 
 
-       function __construct($args = array()) {
+       public function __construct($args = array()) {
                parent::__construct($args);
        }
 
                parent::__construct($args);
        }
 
-       function add_strings() {
+       public function add_strings() {
                parent::add_strings();
                $this->upgrader->strings['skin_before_update_header'] = __('Updating Theme %1$s (%2$d/%3$d)');
        }
 
                parent::add_strings();
                $this->upgrader->strings['skin_before_update_header'] = __('Updating Theme %1$s (%2$d/%3$d)');
        }
 
-       function before($title = '') {
+       public function before($title = '') {
                parent::before( $this->theme_info->display('Name') );
        }
 
                parent::before( $this->theme_info->display('Name') );
        }
 
-       function after($title = '') {
+       public function after($title = '') {
                parent::after( $this->theme_info->display('Name') );
                $this->decrement_update_count( 'theme' );
        }
 
                parent::after( $this->theme_info->display('Name') );
                $this->decrement_update_count( 'theme' );
        }
 
-       function bulk_footer() {
+       public function bulk_footer() {
                parent::bulk_footer();
                $update_actions =  array(
                        'themes_page' => '<a href="' . self_admin_url('themes.php') . '" title="' . esc_attr__('Go to themes page') . '" target="_parent">' . __('Return to Themes page') . '</a>',
                parent::bulk_footer();
                $update_actions =  array(
                        'themes_page' => '<a href="' . self_admin_url('themes.php') . '" title="' . esc_attr__('Go to themes page') . '" target="_parent">' . __('Return to Themes page') . '</a>',
@@ -401,10 +398,10 @@ class Bulk_Theme_Upgrader_Skin extends Bulk_Upgrader_Skin {
  * @since 2.8.0
  */
 class Plugin_Installer_Skin extends WP_Upgrader_Skin {
  * @since 2.8.0
  */
 class Plugin_Installer_Skin extends WP_Upgrader_Skin {
-       var $api;
-       var $type;
+       public $api;
+       public $type;
 
 
-       function __construct($args = array()) {
+       public function __construct($args = array()) {
                $defaults = array( 'type' => 'web', 'url' => '', 'plugin' => '', 'nonce' => '', 'title' => '' );
                $args = wp_parse_args($args, $defaults);
 
                $defaults = array( 'type' => 'web', 'url' => '', 'plugin' => '', 'nonce' => '', 'title' => '' );
                $args = wp_parse_args($args, $defaults);
 
@@ -414,12 +411,12 @@ class Plugin_Installer_Skin extends WP_Upgrader_Skin {
                parent::__construct($args);
        }
 
                parent::__construct($args);
        }
 
-       function before() {
+       public function before() {
                if ( !empty($this->api) )
                        $this->upgrader->strings['process_success'] = sprintf( __('Successfully installed the plugin <strong>%s %s</strong>.'), $this->api->name, $this->api->version);
        }
 
                if ( !empty($this->api) )
                        $this->upgrader->strings['process_success'] = sprintf( __('Successfully installed the plugin <strong>%s %s</strong>.'), $this->api->name, $this->api->version);
        }
 
-       function after() {
+       public function after() {
 
                $plugin_file = $this->upgrader->plugin_info();
 
 
                $plugin_file = $this->upgrader->plugin_info();
 
@@ -476,10 +473,10 @@ class Plugin_Installer_Skin extends WP_Upgrader_Skin {
  * @since 2.8.0
  */
 class Theme_Installer_Skin extends WP_Upgrader_Skin {
  * @since 2.8.0
  */
 class Theme_Installer_Skin extends WP_Upgrader_Skin {
-       var $api;
-       var $type;
+       public $api;
+       public $type;
 
 
-       function __construct($args = array()) {
+       public function __construct($args = array()) {
                $defaults = array( 'type' => 'web', 'url' => '', 'theme' => '', 'nonce' => '', 'title' => '' );
                $args = wp_parse_args($args, $defaults);
 
                $defaults = array( 'type' => 'web', 'url' => '', 'theme' => '', 'nonce' => '', 'title' => '' );
                $args = wp_parse_args($args, $defaults);
 
@@ -489,12 +486,12 @@ class Theme_Installer_Skin extends WP_Upgrader_Skin {
                parent::__construct($args);
        }
 
                parent::__construct($args);
        }
 
-       function before() {
+       public function before() {
                if ( !empty($this->api) )
                        $this->upgrader->strings['process_success'] = sprintf( $this->upgrader->strings['process_success_specific'], $this->api->name, $this->api->version);
        }
 
                if ( !empty($this->api) )
                        $this->upgrader->strings['process_success'] = sprintf( $this->upgrader->strings['process_success_specific'], $this->api->name, $this->api->version);
        }
 
-       function after() {
+       public function after() {
                if ( empty($this->upgrader->result['destination_name']) )
                        return;
 
                if ( empty($this->upgrader->result['destination_name']) )
                        return;
 
@@ -521,7 +518,9 @@ class Theme_Installer_Skin extends WP_Upgrader_Skin {
 
                $install_actions = array();
                $install_actions['preview']  = '<a href="' . esc_url( $preview_link ) . '" class="hide-if-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Preview') . '</a>';
 
                $install_actions = array();
                $install_actions['preview']  = '<a href="' . esc_url( $preview_link ) . '" class="hide-if-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Preview') . '</a>';
-               $install_actions['preview'] .= '<a href="' . wp_customize_url( $stylesheet ) . '" class="hide-if-no-customize load-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Live Preview') . '</a>';
+               if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
+                       $install_actions['preview'] .= '<a href="' . wp_customize_url( $stylesheet ) . '" class="hide-if-no-customize load-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Live Preview') . '</a>';
+               }
                $install_actions['activate'] = '<a href="' . esc_url( $activate_link ) . '" class="activatelink" title="' . esc_attr( sprintf( __('Activate &#8220;%s&#8221;'), $name ) ) . '">' . __('Activate') . '</a>';
 
                if ( is_network_admin() && current_user_can( 'manage_network_themes' ) )
                $install_actions['activate'] = '<a href="' . esc_url( $activate_link ) . '" class="activatelink" title="' . esc_attr( sprintf( __('Activate &#8220;%s&#8221;'), $name ) ) . '">' . __('Activate') . '</a>';
 
                if ( is_network_admin() && current_user_can( 'manage_network_themes' ) )
@@ -559,9 +558,9 @@ class Theme_Installer_Skin extends WP_Upgrader_Skin {
  * @since 2.8.0
  */
 class Theme_Upgrader_Skin extends WP_Upgrader_Skin {
  * @since 2.8.0
  */
 class Theme_Upgrader_Skin extends WP_Upgrader_Skin {
-       var $theme = '';
+       public $theme = '';
 
 
-       function __construct($args = array()) {
+       public function __construct($args = array()) {
                $defaults = array( 'url' => '', 'theme' => '', 'nonce' => '', 'title' => __('Update Theme') );
                $args = wp_parse_args($args, $defaults);
 
                $defaults = array( 'url' => '', 'theme' => '', 'nonce' => '', 'title' => __('Update Theme') );
                $args = wp_parse_args($args, $defaults);
 
@@ -570,7 +569,7 @@ class Theme_Upgrader_Skin extends WP_Upgrader_Skin {
                parent::__construct($args);
        }
 
                parent::__construct($args);
        }
 
-       function after() {
+       public function after() {
                $this->decrement_update_count( 'theme' );
 
                $update_actions = array();
                $this->decrement_update_count( 'theme' );
 
                $update_actions = array();
@@ -593,11 +592,14 @@ class Theme_Upgrader_Skin extends WP_Upgrader_Skin {
                        $activate_link = wp_nonce_url( $activate_link, 'switch-theme_' . $stylesheet );
 
                        if ( get_stylesheet() == $stylesheet ) {
                        $activate_link = wp_nonce_url( $activate_link, 'switch-theme_' . $stylesheet );
 
                        if ( get_stylesheet() == $stylesheet ) {
-                               if ( current_user_can( 'edit_theme_options' ) )
+                               if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
                                        $update_actions['preview']  = '<a href="' . wp_customize_url( $stylesheet ) . '" class="hide-if-no-customize load-customize" title="' . esc_attr( sprintf( __('Customize &#8220;%s&#8221;'), $name ) ) . '">' . __('Customize') . '</a>';
                                        $update_actions['preview']  = '<a href="' . wp_customize_url( $stylesheet ) . '" class="hide-if-no-customize load-customize" title="' . esc_attr( sprintf( __('Customize &#8220;%s&#8221;'), $name ) ) . '">' . __('Customize') . '</a>';
+                               }
                        } elseif ( current_user_can( 'switch_themes' ) ) {
                                $update_actions['preview']  = '<a href="' . esc_url( $preview_link ) . '" class="hide-if-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Preview') . '</a>';
                        } elseif ( current_user_can( 'switch_themes' ) ) {
                                $update_actions['preview']  = '<a href="' . esc_url( $preview_link ) . '" class="hide-if-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Preview') . '</a>';
-                               $update_actions['preview'] .= '<a href="' . wp_customize_url( $stylesheet ) . '" class="hide-if-no-customize load-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Live Preview') . '</a>';
+                               if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
+                                       $update_actions['preview'] .= '<a href="' . wp_customize_url( $stylesheet ) . '" class="hide-if-no-customize load-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Live Preview') . '</a>';
+                               }
                                $update_actions['activate'] = '<a href="' . esc_url( $activate_link ) . '" class="activatelink" title="' . esc_attr( sprintf( __('Activate &#8220;%s&#8221;'), $name ) ) . '">' . __('Activate') . '</a>';
                        }
 
                                $update_actions['activate'] = '<a href="' . esc_url( $activate_link ) . '" class="activatelink" title="' . esc_attr( sprintf( __('Activate &#8220;%s&#8221;'), $name ) ) . '">' . __('Activate') . '</a>';
                        }
 
@@ -630,21 +632,23 @@ class Theme_Upgrader_Skin extends WP_Upgrader_Skin {
  * @since 3.7.0
  */
 class Language_Pack_Upgrader_Skin extends WP_Upgrader_Skin {
  * @since 3.7.0
  */
 class Language_Pack_Upgrader_Skin extends WP_Upgrader_Skin {
-       var $language_update = null;
-       var $done_header = false;
-       var $display_footer_actions = true;
+       public $language_update = null;
+       public $done_header = false;
+       public $done_footer = false;
+       public $display_footer_actions = true;
 
 
-       function __construct( $args = array() ) {
+       public function __construct( $args = array() ) {
                $defaults = array( 'url' => '', 'nonce' => '', 'title' => __( 'Update Translations' ), 'skip_header_footer' => false );
                $args = wp_parse_args( $args, $defaults );
                if ( $args['skip_header_footer'] ) {
                        $this->done_header = true;
                $defaults = array( 'url' => '', 'nonce' => '', 'title' => __( 'Update Translations' ), 'skip_header_footer' => false );
                $args = wp_parse_args( $args, $defaults );
                if ( $args['skip_header_footer'] ) {
                        $this->done_header = true;
+                       $this->done_footer = true;
                        $this->display_footer_actions = false;
                }
                parent::__construct( $args );
        }
 
                        $this->display_footer_actions = false;
                }
                parent::__construct( $args );
        }
 
-       function before() {
+       public function before() {
                $name = $this->upgrader->get_name_for_update( $this->language_update );
 
                echo '<div class="update-messages lp-show-latest">';
                $name = $this->upgrader->get_name_for_update( $this->language_update );
 
                echo '<div class="update-messages lp-show-latest">';
@@ -652,17 +656,17 @@ class Language_Pack_Upgrader_Skin extends WP_Upgrader_Skin {
                printf( '<h4>' . __( 'Updating translations for %1$s (%2$s)&#8230;' ) . '</h4>', $name, $this->language_update->language );
        }
 
                printf( '<h4>' . __( 'Updating translations for %1$s (%2$s)&#8230;' ) . '</h4>', $name, $this->language_update->language );
        }
 
-       function error( $error ) {
+       public function error( $error ) {
                echo '<div class="lp-error">';
                parent::error( $error );
                echo '</div>';
        }
 
                echo '<div class="lp-error">';
                parent::error( $error );
                echo '</div>';
        }
 
-       function after() {
+       public function after() {
                echo '</div>';
        }
 
                echo '</div>';
        }
 
-       function bulk_footer() {
+       public function bulk_footer() {
                $this->decrement_update_count( 'translation' );
                $update_actions = array();
                $update_actions['updates_page'] = '<a href="' . self_admin_url( 'update-core.php' ) . '" title="' . esc_attr__( 'Go to WordPress Updates page' ) . '" target="_parent">' . __( 'Return to WordPress Updates' ) . '</a>';
                $this->decrement_update_count( 'translation' );
                $update_actions = array();
                $update_actions['updates_page'] = '<a href="' . self_admin_url( 'update-core.php' ) . '" title="' . esc_attr__( 'Go to WordPress Updates page' ) . '" target="_parent">' . __( 'Return to WordPress Updates' ) . '</a>';
@@ -678,8 +682,6 @@ class Language_Pack_Upgrader_Skin extends WP_Upgrader_Skin {
 
                if ( $update_actions && $this->display_footer_actions )
                        $this->feedback( implode( ' | ', $update_actions ) );
 
                if ( $update_actions && $this->display_footer_actions )
                        $this->feedback( implode( ' | ', $update_actions ) );
-
-               parent::footer();
        }
 }
 
        }
 }
 
@@ -696,7 +698,7 @@ class Language_Pack_Upgrader_Skin extends WP_Upgrader_Skin {
 class Automatic_Upgrader_Skin extends WP_Upgrader_Skin {
        protected $messages = array();
 
 class Automatic_Upgrader_Skin extends WP_Upgrader_Skin {
        protected $messages = array();
 
-       function request_filesystem_credentials( $error = false, $context = '' ) {
+       public function request_filesystem_credentials( $error = false, $context = '' ) {
                if ( $context )
                        $this->options['context'] = $context;
                // TODO: fix up request_filesystem_credentials(), or split it, to allow us to request a no-output version
                if ( $context )
                        $this->options['context'] = $context;
                // TODO: fix up request_filesystem_credentials(), or split it, to allow us to request a no-output version
@@ -707,11 +709,11 @@ class Automatic_Upgrader_Skin extends WP_Upgrader_Skin {
                return $result;
        }
 
                return $result;
        }
 
-       function get_upgrade_messages() {
+       public function get_upgrade_messages() {
                return $this->messages;
        }
 
                return $this->messages;
        }
 
-       function feedback( $data ) {
+       public function feedback( $data ) {
                if ( is_wp_error( $data ) )
                        $string = $data->get_error_message();
                else if ( is_array( $data ) )
                if ( is_wp_error( $data ) )
                        $string = $data->get_error_message();
                else if ( is_array( $data ) )
@@ -747,19 +749,19 @@ class Automatic_Upgrader_Skin extends WP_Upgrader_Skin {
                $this->messages[] = $string;
        }
 
                $this->messages[] = $string;
        }
 
-       function header() {
+       public function header() {
                ob_start();
        }
 
                ob_start();
        }
 
-       function footer() {
+       public function footer() {
                $output = ob_get_contents();
                if ( ! empty( $output ) )
                        $this->feedback( $output );
                ob_end_clean();
        }
 
                $output = ob_get_contents();
                if ( ! empty( $output ) )
                        $this->feedback( $output );
                ob_end_clean();
        }
 
-       function bulk_header() {}
-       function bulk_footer() {}
-       function before() {}
-       function after() {}
+       public function bulk_header() {}
+       public function bulk_footer() {}
+       public function before() {}
+       public function after() {}
 }
 }
index 6db2c2772573b182e36c94933b425a5d6454b73c..2bef3eaa6e6ee98f1c42d01e3f0561e255ba9faa 100644 (file)
@@ -21,23 +21,23 @@ require ABSPATH . 'wp-admin/includes/class-wp-upgrader-skins.php';
  * @since 2.8.0
  */
 class WP_Upgrader {
  * @since 2.8.0
  */
 class WP_Upgrader {
-       var $strings = array();
-       var $skin = null;
-       var $result = array();
+       public $strings = array();
+       public $skin = null;
+       public $result = array();
 
 
-       function __construct($skin = null) {
+       public function __construct($skin = null) {
                if ( null == $skin )
                        $this->skin = new WP_Upgrader_Skin();
                else
                        $this->skin = $skin;
        }
 
                if ( null == $skin )
                        $this->skin = new WP_Upgrader_Skin();
                else
                        $this->skin = $skin;
        }
 
-       function init() {
+       public function init() {
                $this->skin->set_upgrader($this);
                $this->generic_strings();
        }
 
                $this->skin->set_upgrader($this);
                $this->generic_strings();
        }
 
-       function generic_strings() {
+       public function generic_strings() {
                $this->strings['bad_request'] = __('Invalid Data provided.');
                $this->strings['fs_unavailable'] = __('Could not access filesystem.');
                $this->strings['fs_error'] = __('Filesystem error.');
                $this->strings['bad_request'] = __('Invalid Data provided.');
                $this->strings['fs_unavailable'] = __('Could not access filesystem.');
                $this->strings['fs_error'] = __('Filesystem error.');
@@ -59,7 +59,7 @@ class WP_Upgrader {
                $this->strings['maintenance_end'] = __('Disabling Maintenance mode&#8230;');
        }
 
                $this->strings['maintenance_end'] = __('Disabling Maintenance mode&#8230;');
        }
 
-       function fs_connect( $directories = array() ) {
+       public function fs_connect( $directories = array() ) {
                global $wp_filesystem;
 
                if ( false === ($credentials = $this->skin->request_filesystem_credentials()) )
                global $wp_filesystem;
 
                if ( false === ($credentials = $this->skin->request_filesystem_credentials()) )
@@ -106,7 +106,7 @@ class WP_Upgrader {
                return true;
        } //end fs_connect();
 
                return true;
        } //end fs_connect();
 
-       function download_package($package) {
+       public function download_package($package) {
 
                /**
                 * Filter whether to return the package.
 
                /**
                 * Filter whether to return the package.
@@ -138,7 +138,7 @@ class WP_Upgrader {
                return $download_file;
        }
 
                return $download_file;
        }
 
-       function unpack_package($package, $delete_package = true) {
+       public function unpack_package($package, $delete_package = true) {
                global $wp_filesystem;
 
                $this->skin->feedback('unpack_package');
                global $wp_filesystem;
 
                $this->skin->feedback('unpack_package');
@@ -177,7 +177,7 @@ class WP_Upgrader {
                return $working_dir;
        }
 
                return $working_dir;
        }
 
-       function install_package( $args = array() ) {
+       public function install_package( $args = array() ) {
                global $wp_filesystem, $wp_theme_directories;
 
                $defaults = array(
                global $wp_filesystem, $wp_theme_directories;
 
                $defaults = array(
@@ -190,14 +190,18 @@ class WP_Upgrader {
                );
 
                $args = wp_parse_args($args, $defaults);
                );
 
                $args = wp_parse_args($args, $defaults);
-               extract($args);
 
 
-               @set_time_limit( 300 );
+               // These were previously extract()'d.
+               $source = $args['source'];
+               $destination = $args['destination'];
+               $clear_destination = $args['clear_destination'];
 
 
-               if ( empty($source) || empty($destination) )
-                       return new WP_Error('bad_request', $this->strings['bad_request']);
+               @set_time_limit( 300 );
 
 
-               $this->skin->feedback('installing_package');
+               if ( empty( $source ) || empty( $destination ) ) {
+                       return new WP_Error( 'bad_request', $this->strings['bad_request'] );
+               }
+               $this->skin->feedback( 'installing_package' );
 
                /**
                 * Filter the install response before the installation has started.
 
                /**
                 * Filter the install response before the installation has started.
@@ -211,24 +215,26 @@ class WP_Upgrader {
                 * @param bool|WP_Error $response   Response.
                 * @param array         $hook_extra Extra arguments passed to hooked filters.
                 */
                 * @param bool|WP_Error $response   Response.
                 * @param array         $hook_extra Extra arguments passed to hooked filters.
                 */
-               $res = apply_filters( 'upgrader_pre_install', true, $hook_extra );
-               if ( is_wp_error($res) )
+               $res = apply_filters( 'upgrader_pre_install', true, $args['hook_extra'] );
+               if ( is_wp_error( $res ) ) {
                        return $res;
                        return $res;
+               }
 
                //Retain the Original source and destinations
 
                //Retain the Original source and destinations
-               $remote_source = $source;
+               $remote_source = $args['source'];
                $local_destination = $destination;
 
                $local_destination = $destination;
 
-               $source_files = array_keys( $wp_filesystem->dirlist($remote_source) );
-               $remote_destination = $wp_filesystem->find_folder($local_destination);
+               $source_files = array_keys( $wp_filesystem->dirlist( $remote_source ) );
+               $remote_destination = $wp_filesystem->find_folder( $local_destination );
 
                //Locate which directory to copy to the new folder, This is based on the actual folder holding the files.
 
                //Locate which directory to copy to the new folder, This is based on the actual folder holding the files.
-               if ( 1 == count($source_files) && $wp_filesystem->is_dir( trailingslashit($source) . $source_files[0] . '/') ) //Only one folder? Then we want its contents.
-                       $source = trailingslashit($source) . trailingslashit($source_files[0]);
-               elseif ( count($source_files) == 0 )
+               if ( 1 == count( $source_files ) && $wp_filesystem->is_dir( trailingslashit( $args['source'] ) . $source_files[0] . '/' ) ) { //Only one folder? Then we want its contents.
+                       $source = trailingslashit( $args['source'] ) . trailingslashit( $source_files[0] );
+               } elseif ( count( $source_files ) == 0 ) {
                        return new WP_Error( 'incompatible_archive_empty', $this->strings['incompatible_archive'], $this->strings['no_files'] ); // There are no files?
                        return new WP_Error( 'incompatible_archive_empty', $this->strings['incompatible_archive'], $this->strings['no_files'] ); // There are no files?
-               else //It's only a single file, the upgrader will use the foldername of this file as the destination folder. foldername is based on zip filename.
-                       $source = trailingslashit($source);
+               } else { //It's only a single file, the upgrader will use the foldername of this file as the destination folder. foldername is based on zip filename.
+                       $source = trailingslashit( $args['source'] );
+               }
 
                /**
                 * Filter the source file location for the upgrade package.
 
                /**
                 * Filter the source file location for the upgrade package.
@@ -240,30 +246,38 @@ class WP_Upgrader {
                 * @param WP_Upgrader $this          WP_Upgrader instance.
                 */
                $source = apply_filters( 'upgrader_source_selection', $source, $remote_source, $this );
                 * @param WP_Upgrader $this          WP_Upgrader instance.
                 */
                $source = apply_filters( 'upgrader_source_selection', $source, $remote_source, $this );
-               if ( is_wp_error($source) )
+               if ( is_wp_error( $source ) ) {
                        return $source;
                        return $source;
+               }
 
 
-               //Has the source location changed? If so, we need a new source_files list.
-               if ( $source !== $remote_source )
-                       $source_files = array_keys( $wp_filesystem->dirlist($source) );
-
-               // Protection against deleting files in any important base directories.
-               // Theme_Upgrader & Plugin_Upgrader also trigger this, as they pass the destination directory (WP_PLUGIN_DIR / wp-content/themes)
-               // intending to copy the directory into the directory, whilst they pass the source as the actual files to copy.
+               // Has the source location changed? If so, we need a new source_files list.
+               if ( $source !== $remote_source ) {
+                       $source_files = array_keys( $wp_filesystem->dirlist( $source ) );
+               }
+               /*
+                * Protection against deleting files in any important base directories.
+                * Theme_Upgrader & Plugin_Upgrader also trigger this, as they pass the
+                * destination directory (WP_PLUGIN_DIR / wp-content/themes) intending
+                * to copy the directory into the directory, whilst they pass the source
+                * as the actual files to copy.
+                */
                $protected_directories = array( ABSPATH, WP_CONTENT_DIR, WP_PLUGIN_DIR, WP_CONTENT_DIR . '/themes' );
                $protected_directories = array( ABSPATH, WP_CONTENT_DIR, WP_PLUGIN_DIR, WP_CONTENT_DIR . '/themes' );
-               if ( is_array( $wp_theme_directories ) )
+
+               if ( is_array( $wp_theme_directories ) ) {
                        $protected_directories = array_merge( $protected_directories, $wp_theme_directories );
                        $protected_directories = array_merge( $protected_directories, $wp_theme_directories );
+               }
                if ( in_array( $destination, $protected_directories ) ) {
                if ( in_array( $destination, $protected_directories ) ) {
-                       $remote_destination = trailingslashit($remote_destination) . trailingslashit(basename($source));
-                       $destination = trailingslashit($destination) . trailingslashit(basename($source));
+                       $remote_destination = trailingslashit( $remote_destination ) . trailingslashit( basename( $source ) );
+                       $destination = trailingslashit( $destination ) . trailingslashit( basename( $source ) );
                }
 
                if ( $clear_destination ) {
                        //We're going to clear the destination if there's something there
                        $this->skin->feedback('remove_old');
                        $removed = true;
                }
 
                if ( $clear_destination ) {
                        //We're going to clear the destination if there's something there
                        $this->skin->feedback('remove_old');
                        $removed = true;
-                       if ( $wp_filesystem->exists($remote_destination) )
-                               $removed = $wp_filesystem->delete($remote_destination, true);
+                       if ( $wp_filesystem->exists( $remote_destination ) ) {
+                               $removed = $wp_filesystem->delete( $remote_destination, true );
+                       }
 
                        /**
                         * Filter whether the upgrader cleared the destination.
 
                        /**
                         * Filter whether the upgrader cleared the destination.
@@ -275,13 +289,14 @@ class WP_Upgrader {
                         * @param string $remote_destination The remote package destination.
                         * @param array  $hook_extra         Extra arguments passed to hooked filters.
                         */
                         * @param string $remote_destination The remote package destination.
                         * @param array  $hook_extra         Extra arguments passed to hooked filters.
                         */
-                       $removed = apply_filters( 'upgrader_clear_destination', $removed, $local_destination, $remote_destination, $hook_extra );
+                       $removed = apply_filters( 'upgrader_clear_destination', $removed, $local_destination, $remote_destination, $args['hook_extra'] );
 
 
-                       if ( is_wp_error($removed) )
+                       if ( is_wp_error($removed) ) {
                                return $removed;
                                return $removed;
-                       else if ( ! $removed )
+                       } else if ( ! $removed ) {
                                return new WP_Error('remove_old_failed', $this->strings['remove_old_failed']);
                                return new WP_Error('remove_old_failed', $this->strings['remove_old_failed']);
-               } elseif ( $abort_if_destination_exists && $wp_filesystem->exists($remote_destination) ) {
+                       }
+               } elseif ( $args['abort_if_destination_exists'] && $wp_filesystem->exists($remote_destination) ) {
                        //If we're not clearing the destination folder and something exists there already, Bail.
                        //But first check to see if there are actually any files in the folder.
                        $_files = $wp_filesystem->dirlist($remote_destination);
                        //If we're not clearing the destination folder and something exists there already, Bail.
                        //But first check to see if there are actually any files in the folder.
                        $_files = $wp_filesystem->dirlist($remote_destination);
@@ -292,25 +307,29 @@ class WP_Upgrader {
                }
 
                //Create destination if needed
                }
 
                //Create destination if needed
-               if ( !$wp_filesystem->exists($remote_destination) )
-                       if ( !$wp_filesystem->mkdir($remote_destination, FS_CHMOD_DIR) )
+               if ( ! $wp_filesystem->exists( $remote_destination ) ) {
+                       if ( ! $wp_filesystem->mkdir( $remote_destination, FS_CHMOD_DIR ) ) {
                                return new WP_Error( 'mkdir_failed_destination', $this->strings['mkdir_failed'], $remote_destination );
                                return new WP_Error( 'mkdir_failed_destination', $this->strings['mkdir_failed'], $remote_destination );
-
+                       }
+               }
                // Copy new version of item into place.
                $result = copy_dir($source, $remote_destination);
                if ( is_wp_error($result) ) {
                // Copy new version of item into place.
                $result = copy_dir($source, $remote_destination);
                if ( is_wp_error($result) ) {
-                       if ( $clear_working )
-                               $wp_filesystem->delete($remote_source, true);
+                       if ( $args['clear_working'] ) {
+                               $wp_filesystem->delete( $remote_source, true );
+                       }
                        return $result;
                }
 
                //Clear the Working folder?
                        return $result;
                }
 
                //Clear the Working folder?
-               if ( $clear_working )
-                       $wp_filesystem->delete($remote_source, true);
+               if ( $args['clear_working'] ) {
+                       $wp_filesystem->delete( $remote_source, true );
+               }
 
                $destination_name = basename( str_replace($local_destination, '', $destination) );
 
                $destination_name = basename( str_replace($local_destination, '', $destination) );
-               if ( '.' == $destination_name )
+               if ( '.' == $destination_name ) {
                        $destination_name = '';
                        $destination_name = '';
+               }
 
                $this->result = compact('local_source', 'source', 'source_name', 'source_files', 'destination', 'destination_name', 'local_destination', 'remote_destination', 'clear_destination', 'delete_source_dir');
 
 
                $this->result = compact('local_source', 'source', 'source_name', 'source_files', 'destination', 'destination_name', 'local_destination', 'remote_destination', 'clear_destination', 'delete_source_dir');
 
@@ -323,7 +342,7 @@ class WP_Upgrader {
                 * @param array $hook_extra Extra arguments passed to hooked filters.
                 * @param array $result     Installation result data.
                 */
                 * @param array $hook_extra Extra arguments passed to hooked filters.
                 * @param array $result     Installation result data.
                 */
-               $res = apply_filters( 'upgrader_post_install', true, $hook_extra, $this->result );
+               $res = apply_filters( 'upgrader_post_install', true, $args['hook_extra'], $this->result );
 
                if ( is_wp_error($res) ) {
                        $this->result = $res;
 
                if ( is_wp_error($res) ) {
                        $this->result = $res;
@@ -334,7 +353,7 @@ class WP_Upgrader {
                return $this->result;
        }
 
                return $this->result;
        }
 
-       function run($options) {
+       public function run( $options ) {
 
                $defaults = array(
                        'package' => '', // Please always pass this.
 
                $defaults = array(
                        'package' => '', // Please always pass this.
@@ -346,18 +365,19 @@ class WP_Upgrader {
                        'hook_extra' => array() // Pass any extra $hook_extra args here, this will be passed to any hooked filters.
                );
 
                        'hook_extra' => array() // Pass any extra $hook_extra args here, this will be passed to any hooked filters.
                );
 
-               $options = wp_parse_args($options, $defaults);
-               extract($options);
+               $options = wp_parse_args( $options, $defaults );
 
 
-               if ( ! $is_multi ) // call $this->header separately if running multiple times
+               if ( ! $options['is_multi'] ) { // call $this->header separately if running multiple times
                        $this->skin->header();
                        $this->skin->header();
+               }
 
                // Connect to the Filesystem first.
 
                // Connect to the Filesystem first.
-               $res = $this->fs_connect( array(WP_CONTENT_DIR, $destination) );
+               $res = $this->fs_connect( array( WP_CONTENT_DIR, $options['destination'] ) );
                // Mainly for non-connected filesystem.
                if ( ! $res ) {
                // Mainly for non-connected filesystem.
                if ( ! $res ) {
-                       if ( ! $is_multi )
+                       if ( ! $options['is_multi'] ) {
                                $this->skin->footer();
                                $this->skin->footer();
+                       }
                        return false;
                }
 
                        return false;
                }
 
@@ -366,41 +386,44 @@ class WP_Upgrader {
                if ( is_wp_error($res) ) {
                        $this->skin->error($res);
                        $this->skin->after();
                if ( is_wp_error($res) ) {
                        $this->skin->error($res);
                        $this->skin->after();
-                       if ( ! $is_multi )
+                       if ( ! $options['is_multi'] ) {
                                $this->skin->footer();
                                $this->skin->footer();
+                       }
                        return $res;
                }
 
                //Download the package (Note, This just returns the filename of the file if the package is a local file)
                        return $res;
                }
 
                //Download the package (Note, This just returns the filename of the file if the package is a local file)
-               $download = $this->download_package( $package );
+               $download = $this->download_package( $options['package'] );
                if ( is_wp_error($download) ) {
                        $this->skin->error($download);
                        $this->skin->after();
                if ( is_wp_error($download) ) {
                        $this->skin->error($download);
                        $this->skin->after();
-                       if ( ! $is_multi )
+                       if ( ! $options['is_multi'] ) {
                                $this->skin->footer();
                                $this->skin->footer();
+                       }
                        return $download;
                }
 
                        return $download;
                }
 
-               $delete_package = ($download != $package); // Do not delete a "local" file
+               $delete_package = ( $download != $options['package'] ); // Do not delete a "local" file
 
                //Unzips the file into a temporary directory
                $working_dir = $this->unpack_package( $download, $delete_package );
                if ( is_wp_error($working_dir) ) {
                        $this->skin->error($working_dir);
                        $this->skin->after();
 
                //Unzips the file into a temporary directory
                $working_dir = $this->unpack_package( $download, $delete_package );
                if ( is_wp_error($working_dir) ) {
                        $this->skin->error($working_dir);
                        $this->skin->after();
-                       if ( ! $is_multi )
+                       if ( ! $options['is_multi'] ) {
                                $this->skin->footer();
                                $this->skin->footer();
+                       }
                        return $working_dir;
                }
 
                //With the given options, this installs it to the destination directory.
                $result = $this->install_package( array(
                        'source' => $working_dir,
                        return $working_dir;
                }
 
                //With the given options, this installs it to the destination directory.
                $result = $this->install_package( array(
                        'source' => $working_dir,
-                       'destination' => $destination,
-                       'clear_destination' => $clear_destination,
-                       'abort_if_destination_exists' => $abort_if_destination_exists,
-                       'clear_working' => $clear_working,
-                       'hook_extra' => $hook_extra
+                       'destination' => $options['destination'],
+                       'clear_destination' => $options['clear_destination'],
+                       'abort_if_destination_exists' => $options['abort_if_destination_exists'],
+                       'clear_working' => $options['clear_working'],
+                       'hook_extra' => $options['hook_extra']
                ) );
 
                $this->skin->set_result($result);
                ) );
 
                $this->skin->set_result($result);
@@ -414,17 +437,17 @@ class WP_Upgrader {
 
                $this->skin->after();
 
 
                $this->skin->after();
 
-               if ( ! $is_multi ) {
+               if ( ! $options['is_multi'] ) {
 
                        /** This action is documented in wp-admin/includes/class-wp-upgrader.php */
 
                        /** This action is documented in wp-admin/includes/class-wp-upgrader.php */
-                       do_action( 'upgrader_process_complete', $this, $hook_extra );
+                       do_action( 'upgrader_process_complete', $this, $options['hook_extra'] );
                        $this->skin->footer();
                }
 
                return $result;
        }
 
                        $this->skin->footer();
                }
 
                return $result;
        }
 
-       function maintenance_mode($enable = false) {
+       public function maintenance_mode($enable = false) {
                global $wp_filesystem;
                $file = $wp_filesystem->abspath() . '.maintenance';
                if ( $enable ) {
                global $wp_filesystem;
                $file = $wp_filesystem->abspath() . '.maintenance';
                if ( $enable ) {
@@ -450,10 +473,10 @@ class WP_Upgrader {
  */
 class Plugin_Upgrader extends WP_Upgrader {
 
  */
 class Plugin_Upgrader extends WP_Upgrader {
 
-       var $result;
-       var $bulk = false;
+       public $result;
+       public $bulk = false;
 
 
-       function upgrade_strings() {
+       public function upgrade_strings() {
                $this->strings['up_to_date'] = __('The plugin is at the latest version.');
                $this->strings['no_package'] = __('Update package not available.');
                $this->strings['downloading_package'] = __('Downloading update from <span class="code">%s</span>&#8230;');
                $this->strings['up_to_date'] = __('The plugin is at the latest version.');
                $this->strings['no_package'] = __('Update package not available.');
                $this->strings['downloading_package'] = __('Downloading update from <span class="code">%s</span>&#8230;');
@@ -464,7 +487,7 @@ class Plugin_Upgrader extends WP_Upgrader {
                $this->strings['process_success'] = __('Plugin updated successfully.');
        }
 
                $this->strings['process_success'] = __('Plugin updated successfully.');
        }
 
-       function install_strings() {
+       public function install_strings() {
                $this->strings['no_package'] = __('Install package not available.');
                $this->strings['downloading_package'] = __('Downloading install package from <span class="code">%s</span>&#8230;');
                $this->strings['unpack_package'] = __('Unpacking the package&#8230;');
                $this->strings['no_package'] = __('Install package not available.');
                $this->strings['downloading_package'] = __('Downloading install package from <span class="code">%s</span>&#8230;');
                $this->strings['unpack_package'] = __('Unpacking the package&#8230;');
@@ -474,7 +497,7 @@ class Plugin_Upgrader extends WP_Upgrader {
                $this->strings['process_success'] = __('Plugin installed successfully.');
        }
 
                $this->strings['process_success'] = __('Plugin installed successfully.');
        }
 
-       function install( $package, $args = array() ) {
+       public function install( $package, $args = array() ) {
 
                $defaults = array(
                        'clear_update_cache' => true,
 
                $defaults = array(
                        'clear_update_cache' => true,
@@ -508,7 +531,7 @@ class Plugin_Upgrader extends WP_Upgrader {
                return true;
        }
 
                return true;
        }
 
-       function upgrade( $plugin, $args = array() ) {
+       public function upgrade( $plugin, $args = array() ) {
 
                $defaults = array(
                        'clear_update_cache' => true,
 
                $defaults = array(
                        'clear_update_cache' => true,
@@ -559,7 +582,7 @@ class Plugin_Upgrader extends WP_Upgrader {
                return true;
        }
 
                return true;
        }
 
-       function bulk_upgrade( $plugins, $args = array() ) {
+       public function bulk_upgrade( $plugins, $args = array() ) {
 
                $defaults = array(
                        'clear_update_cache' => true,
 
                $defaults = array(
                        'clear_update_cache' => true,
@@ -673,7 +696,7 @@ class Plugin_Upgrader extends WP_Upgrader {
                return $results;
        }
 
                return $results;
        }
 
-       function check_package($source) {
+       public function check_package($source) {
                global $wp_filesystem;
 
                if ( is_wp_error($source) )
                global $wp_filesystem;
 
                if ( is_wp_error($source) )
@@ -699,8 +722,8 @@ class Plugin_Upgrader extends WP_Upgrader {
                return $source;
        }
 
                return $source;
        }
 
-       //return plugin info.
-       function plugin_info() {
+       // Return plugin info.
+       public function plugin_info() {
                if ( ! is_array($this->result) )
                        return false;
                if ( empty($this->result['destination_name']) )
                if ( ! is_array($this->result) )
                        return false;
                if ( empty($this->result['destination_name']) )
@@ -716,7 +739,7 @@ class Plugin_Upgrader extends WP_Upgrader {
        }
 
        //Hooked to pre_install
        }
 
        //Hooked to pre_install
-       function deactivate_plugin_before_upgrade($return, $plugin) {
+       public function deactivate_plugin_before_upgrade($return, $plugin) {
 
                if ( is_wp_error($return) ) //Bypass.
                        return $return;
 
                if ( is_wp_error($return) ) //Bypass.
                        return $return;
@@ -736,7 +759,7 @@ class Plugin_Upgrader extends WP_Upgrader {
        }
 
        //Hooked to upgrade_clear_destination
        }
 
        //Hooked to upgrade_clear_destination
-       function delete_old_plugin($removed, $local_destination, $remote_destination, $plugin) {
+       public function delete_old_plugin($removed, $local_destination, $remote_destination, $plugin) {
                global $wp_filesystem;
 
                if ( is_wp_error($removed) )
                global $wp_filesystem;
 
                if ( is_wp_error($removed) )
@@ -774,10 +797,10 @@ class Plugin_Upgrader extends WP_Upgrader {
  */
 class Theme_Upgrader extends WP_Upgrader {
 
  */
 class Theme_Upgrader extends WP_Upgrader {
 
-       var $result;
-       var $bulk = false;
+       public $result;
+       public $bulk = false;
 
 
-       function upgrade_strings() {
+       public function upgrade_strings() {
                $this->strings['up_to_date'] = __('The theme is at the latest version.');
                $this->strings['no_package'] = __('Update package not available.');
                $this->strings['downloading_package'] = __('Downloading update from <span class="code">%s</span>&#8230;');
                $this->strings['up_to_date'] = __('The theme is at the latest version.');
                $this->strings['no_package'] = __('Update package not available.');
                $this->strings['downloading_package'] = __('Downloading update from <span class="code">%s</span>&#8230;');
@@ -788,7 +811,7 @@ class Theme_Upgrader extends WP_Upgrader {
                $this->strings['process_success'] = __('Theme updated successfully.');
        }
 
                $this->strings['process_success'] = __('Theme updated successfully.');
        }
 
-       function install_strings() {
+       public function install_strings() {
                $this->strings['no_package'] = __('Install package not available.');
                $this->strings['downloading_package'] = __('Downloading install package from <span class="code">%s</span>&#8230;');
                $this->strings['unpack_package'] = __('Unpacking the package&#8230;');
                $this->strings['no_package'] = __('Install package not available.');
                $this->strings['downloading_package'] = __('Downloading install package from <span class="code">%s</span>&#8230;');
                $this->strings['unpack_package'] = __('Unpacking the package&#8230;');
@@ -808,7 +831,7 @@ class Theme_Upgrader extends WP_Upgrader {
                $this->strings['parent_theme_not_found'] = __('<strong>The parent theme could not be found.</strong> You will need to install the parent theme, <strong>%s</strong>, before you can use this child theme.');
        }
 
                $this->strings['parent_theme_not_found'] = __('<strong>The parent theme could not be found.</strong> You will need to install the parent theme, <strong>%s</strong>, before you can use this child theme.');
        }
 
-       function check_parent_theme_filter($install_result, $hook_extra, $child_result) {
+       public function check_parent_theme_filter($install_result, $hook_extra, $child_result) {
                // Check to see if we need to install a parent theme
                $theme_info = $this->theme_info();
 
                // Check to see if we need to install a parent theme
                $theme_info = $this->theme_info();
 
@@ -867,12 +890,12 @@ class Theme_Upgrader extends WP_Upgrader {
                return $install_result;
        }
 
                return $install_result;
        }
 
-       function hide_activate_preview_actions($actions) {
+       public function hide_activate_preview_actions($actions) {
                unset($actions['activate'], $actions['preview']);
                return $actions;
        }
 
                unset($actions['activate'], $actions['preview']);
                return $actions;
        }
 
-       function install( $package, $args = array() ) {
+       public function install( $package, $args = array() ) {
 
                $defaults = array(
                        'clear_update_cache' => true,
 
                $defaults = array(
                        'clear_update_cache' => true,
@@ -908,7 +931,7 @@ class Theme_Upgrader extends WP_Upgrader {
                return true;
        }
 
                return true;
        }
 
-       function upgrade( $theme, $args = array() ) {
+       public function upgrade( $theme, $args = array() ) {
 
                $defaults = array(
                        'clear_update_cache' => true,
 
                $defaults = array(
                        'clear_update_cache' => true,
@@ -958,7 +981,7 @@ class Theme_Upgrader extends WP_Upgrader {
                return true;
        }
 
                return true;
        }
 
-       function bulk_upgrade( $themes, $args = array() ) {
+       public function bulk_upgrade( $themes, $args = array() ) {
 
                $defaults = array(
                        'clear_update_cache' => true,
 
                $defaults = array(
                        'clear_update_cache' => true,
@@ -1022,6 +1045,7 @@ class Theme_Upgrader extends WP_Upgrader {
                                'destination' => get_theme_root( $theme ),
                                'clear_destination' => true,
                                'clear_working' => true,
                                'destination' => get_theme_root( $theme ),
                                'clear_destination' => true,
                                'clear_working' => true,
+                               'is_multi' => true,
                                'hook_extra' => array(
                                        'theme' => $theme
                                ),
                                'hook_extra' => array(
                                        'theme' => $theme
                                ),
@@ -1059,7 +1083,7 @@ class Theme_Upgrader extends WP_Upgrader {
                return $results;
        }
 
                return $results;
        }
 
-       function check_package($source) {
+       public function check_package($source) {
                global $wp_filesystem;
 
                if ( is_wp_error($source) )
                global $wp_filesystem;
 
                if ( is_wp_error($source) )
@@ -1086,7 +1110,7 @@ class Theme_Upgrader extends WP_Upgrader {
                return $source;
        }
 
                return $source;
        }
 
-       function current_before($return, $theme) {
+       public function current_before($return, $theme) {
 
                if ( is_wp_error($return) )
                        return $return;
 
                if ( is_wp_error($return) )
                        return $return;
@@ -1102,7 +1126,7 @@ class Theme_Upgrader extends WP_Upgrader {
                return $return;
        }
 
                return $return;
        }
 
-       function current_after($return, $theme) {
+       public function current_after($return, $theme) {
                if ( is_wp_error($return) )
                        return $return;
 
                if ( is_wp_error($return) )
                        return $return;
 
@@ -1124,7 +1148,7 @@ class Theme_Upgrader extends WP_Upgrader {
                return $return;
        }
 
                return $return;
        }
 
-       function delete_old_theme( $removed, $local_destination, $remote_destination, $theme ) {
+       public function delete_old_theme( $removed, $local_destination, $remote_destination, $theme ) {
                global $wp_filesystem;
 
                if ( is_wp_error( $removed ) )
                global $wp_filesystem;
 
                if ( is_wp_error( $removed ) )
@@ -1143,7 +1167,7 @@ class Theme_Upgrader extends WP_Upgrader {
                return true;
        }
 
                return true;
        }
 
-       function theme_info($theme = null) {
+       public function theme_info($theme = null) {
 
                if ( empty($theme) ) {
                        if ( !empty($this->result['destination_name']) )
 
                if ( empty($theme) ) {
                        if ( !empty($this->result['destination_name']) )
@@ -1167,28 +1191,59 @@ add_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async
  */
 class Language_Pack_Upgrader extends WP_Upgrader {
 
  */
 class Language_Pack_Upgrader extends WP_Upgrader {
 
-       var $result;
-       var $bulk = true;
+       public $result;
+       public $bulk = true;
 
 
-       static function async_upgrade( $upgrader = false ) {
+       public static function async_upgrade( $upgrader = false ) {
                // Avoid recursion.
                // Avoid recursion.
-               if ( $upgrader && $upgrader instanceof Language_Pack_Upgrader )
+               if ( $upgrader && $upgrader instanceof Language_Pack_Upgrader ) {
                        return;
                        return;
+               }
 
                // Nothing to do?
                $language_updates = wp_get_translation_updates();
 
                // Nothing to do?
                $language_updates = wp_get_translation_updates();
-               if ( ! $language_updates )
+               if ( ! $language_updates ) {
+                       return;
+               }
+
+               // Avoid messing with VCS installs, at least for now.
+               // Noted: this is not the ideal way to accomplish this.
+               $check_vcs = new WP_Automatic_Updater;
+               if ( $check_vcs->is_vcs_checkout( WP_CONTENT_DIR ) ) {
+                       return;
+               }
+
+               foreach ( $language_updates as $key => $language_update ) {
+                       $update = ! empty( $language_update->autoupdate );
+
+                       /**
+                        * Filter whether to asynchronously update translation for core, a plugin, or a theme.
+                        *
+                        * @since 4.0.0
+                        *
+                        * @param bool   $update          Whether to update.
+                        * @param object $language_update The update offer.
+                        */
+                       $update = apply_filters( 'async_update_translation', $update, $language_update );
+
+                       if ( ! $update ) {
+                               unset( $language_updates[ $key ] );
+                       }
+               }
+
+               if ( empty( $language_updates ) ) {
                        return;
                        return;
+               }
 
                $skin = new Language_Pack_Upgrader_Skin( array(
                        'skip_header_footer' => true,
                ) );
 
                $lp_upgrader = new Language_Pack_Upgrader( $skin );
 
                $skin = new Language_Pack_Upgrader_Skin( array(
                        'skip_header_footer' => true,
                ) );
 
                $lp_upgrader = new Language_Pack_Upgrader( $skin );
-               $lp_upgrader->upgrade();
+               $lp_upgrader->bulk_upgrade( $language_updates );
        }
 
        }
 
-       function upgrade_strings() {
+       public function upgrade_strings() {
                $this->strings['starting_upgrade'] = __( 'Some of your translations need updating. Sit tight for a few more seconds while we update them as well.' );
                $this->strings['up_to_date'] = __( 'The translation is up to date.' ); // We need to silently skip this case
                $this->strings['no_package'] = __( 'Update package not available.' );
                $this->strings['starting_upgrade'] = __( 'Some of your translations need updating. Sit tight for a few more seconds while we update them as well.' );
                $this->strings['up_to_date'] = __( 'The translation is up to date.' ); // We need to silently skip this case
                $this->strings['no_package'] = __( 'Update package not available.' );
@@ -1198,14 +1253,21 @@ class Language_Pack_Upgrader extends WP_Upgrader {
                $this->strings['process_success'] = __( 'Translation updated successfully.' );
        }
 
                $this->strings['process_success'] = __( 'Translation updated successfully.' );
        }
 
-       function upgrade( $update = false, $args = array() ) {
-               if ( $update )
+       public function upgrade( $update = false, $args = array() ) {
+               if ( $update ) {
                        $update = array( $update );
                        $update = array( $update );
+               }
+
                $results = $this->bulk_upgrade( $update, $args );
                $results = $this->bulk_upgrade( $update, $args );
+
+               if ( ! is_array( $results ) ) {
+                       return $results;
+               }
+
                return $results[0];
        }
 
                return $results[0];
        }
 
-       function bulk_upgrade( $language_updates = array(), $args = array() ) {
+       public function bulk_upgrade( $language_updates = array(), $args = array() ) {
                global $wp_filesystem;
 
                $defaults = array(
                global $wp_filesystem;
 
                $defaults = array(
@@ -1233,7 +1295,13 @@ class Language_Pack_Upgrader extends WP_Upgrader {
                if ( 'upgrader_process_complete' == current_filter() )
                        $this->skin->feedback( 'starting_upgrade' );
 
                if ( 'upgrader_process_complete' == current_filter() )
                        $this->skin->feedback( 'starting_upgrade' );
 
-               add_filter( 'upgrader_source_selection', array( &$this, 'check_package' ), 10, 3 );
+               // Remove any existing upgrade filters from the plugin/theme upgraders #WP29425 & #WP29230
+               remove_all_filters( 'upgrader_pre_install' );
+               remove_all_filters( 'upgrader_clear_destination' );
+               remove_all_filterS( 'upgrader_post_install' );
+               remove_all_filters( 'upgrader_source_selection' );
+
+               add_filter( 'upgrader_source_selection', array( $this, 'check_package' ), 10, 2 );
 
                $this->skin->header();
 
 
                $this->skin->header();
 
@@ -1249,8 +1317,10 @@ class Language_Pack_Upgrader extends WP_Upgrader {
                $this->update_count = count( $language_updates );
                $this->update_current = 0;
 
                $this->update_count = count( $language_updates );
                $this->update_current = 0;
 
-               // The filesystem's mkdir() is not recursive. Make sure WP_LANG_DIR exists,
-               // as we then may need to create a /plugins or /themes directory inside of it.
+               /*
+                * The filesystem's mkdir() is not recursive. Make sure WP_LANG_DIR exists,
+                * as we then may need to create a /plugins or /themes directory inside of it.
+                */
                $remote_destination = $wp_filesystem->find_folder( WP_LANG_DIR );
                if ( ! $wp_filesystem->exists( $remote_destination ) )
                        if ( ! $wp_filesystem->mkdir( $remote_destination, FS_CHMOD_DIR ) )
                $remote_destination = $wp_filesystem->find_folder( WP_LANG_DIR );
                if ( ! $wp_filesystem->exists( $remote_destination ) )
                        if ( ! $wp_filesystem->mkdir( $remote_destination, FS_CHMOD_DIR ) )
@@ -1295,7 +1365,7 @@ class Language_Pack_Upgrader extends WP_Upgrader {
                $this->skin->footer();
 
                // Clean up our hooks, in case something else does an upgrade on this connection.
                $this->skin->footer();
 
                // Clean up our hooks, in case something else does an upgrade on this connection.
-               remove_filter( 'upgrader_source_selection', array( &$this, 'check_package' ), 10, 2 );
+               remove_filter( 'upgrader_source_selection', array( $this, 'check_package' ) );
 
                if ( $parsed_args['clear_update_cache'] ) {
                        wp_clean_themes_cache( true );
 
                if ( $parsed_args['clear_update_cache'] ) {
                        wp_clean_themes_cache( true );
@@ -1306,7 +1376,7 @@ class Language_Pack_Upgrader extends WP_Upgrader {
                return $results;
        }
 
                return $results;
        }
 
-       function check_package( $source, $remote_source ) {
+       public function check_package( $source, $remote_source ) {
                global $wp_filesystem;
 
                if ( is_wp_error( $source ) )
                global $wp_filesystem;
 
                if ( is_wp_error( $source ) )
@@ -1331,7 +1401,7 @@ class Language_Pack_Upgrader extends WP_Upgrader {
                return $source;
        }
 
                return $source;
        }
 
-       function get_name_for_update( $update ) {
+       public function get_name_for_update( $update ) {
                switch ( $update->type ) {
                        case 'core':
                                return 'WordPress'; // Not translated
                switch ( $update->type ) {
                        case 'core':
                                return 'WordPress'; // Not translated
@@ -1362,7 +1432,7 @@ class Language_Pack_Upgrader extends WP_Upgrader {
  */
 class Core_Upgrader extends WP_Upgrader {
 
  */
 class Core_Upgrader extends WP_Upgrader {
 
-       function upgrade_strings() {
+       public function upgrade_strings() {
                $this->strings['up_to_date'] = __('WordPress is at the latest version.');
                $this->strings['no_package'] = __('Update package not available.');
                $this->strings['downloading_package'] = __('Downloading update from <span class="code">%s</span>&#8230;');
                $this->strings['up_to_date'] = __('WordPress is at the latest version.');
                $this->strings['no_package'] = __('Update package not available.');
                $this->strings['downloading_package'] = __('Downloading update from <span class="code">%s</span>&#8230;');
@@ -1373,10 +1443,10 @@ class Core_Upgrader extends WP_Upgrader {
                $this->strings['rollback_was_required'] = __( 'Due to an error during updating, WordPress has rolled back to your previous version.' );
        }
 
                $this->strings['rollback_was_required'] = __( 'Due to an error during updating, WordPress has rolled back to your previous version.' );
        }
 
-       function upgrade( $current, $args = array() ) {
+       public function upgrade( $current, $args = array() ) {
                global $wp_filesystem;
 
                global $wp_filesystem;
 
-               include ABSPATH . WPINC . '/version.php'; // $wp_version;
+               include( ABSPATH . WPINC . '/version.php' ); // $wp_version;
 
                $start_time = time();
 
 
                $start_time = time();
 
@@ -1452,9 +1522,11 @@ class Core_Upgrader extends WP_Upgrader {
                        $try_rollback = false;
                        if ( is_wp_error( $result ) ) {
                                $error_code = $result->get_error_code();
                        $try_rollback = false;
                        if ( is_wp_error( $result ) ) {
                                $error_code = $result->get_error_code();
-                               // Not all errors are equal. These codes are critical: copy_failed__copy_dir,
-                               // mkdir_failed__copy_dir, copy_failed__copy_dir_retry, and disk_full.
-                               // do_rollback allows for update_core() to trigger a rollback if needed.
+                               /*
+                                * Not all errors are equal. These codes are critical: copy_failed__copy_dir,
+                                * mkdir_failed__copy_dir, copy_failed__copy_dir_retry, and disk_full.
+                                * do_rollback allows for update_core() to trigger a rollback if needed.
+                                */
                                if ( false !== strpos( $error_code, 'do_rollback' ) )
                                        $try_rollback = true;
                                elseif ( false !== strpos( $error_code, '__copy_dir' ) )
                                if ( false !== strpos( $error_code, 'do_rollback' ) )
                                        $try_rollback = true;
                                elseif ( false !== strpos( $error_code, '__copy_dir' ) )
@@ -1519,8 +1591,8 @@ class Core_Upgrader extends WP_Upgrader {
        }
 
        // Determines if this WordPress Core version should update to $offered_ver or not
        }
 
        // Determines if this WordPress Core version should update to $offered_ver or not
-       static function should_update_to_version( $offered_ver /* x.y.z */ ) {
-               include ABSPATH . WPINC . '/version.php'; // $wp_version; // x.y.z
+       public static function should_update_to_version( $offered_ver /* x.y.z */ ) {
+               include( ABSPATH . WPINC . '/version.php' ); // $wp_version; // x.y.z
 
                $current_branch = implode( '.', array_slice( preg_split( '/[.-]/', $wp_version  ), 0, 2 ) ); // x.y
                $new_branch     = implode( '.', array_slice( preg_split( '/[.-]/', $offered_ver ), 0, 2 ) ); // x.y
 
                $current_branch = implode( '.', array_slice( preg_split( '/[.-]/', $wp_version  ), 0, 2 ) ); // x.y
                $new_branch     = implode( '.', array_slice( preg_split( '/[.-]/', $offered_ver ), 0, 2 ) ); // x.y
@@ -1584,7 +1656,7 @@ class Core_Upgrader extends WP_Upgrader {
                         */
                        if ( ! apply_filters( 'allow_dev_auto_core_updates', $upgrade_dev ) )
                                return false;
                         */
                        if ( ! apply_filters( 'allow_dev_auto_core_updates', $upgrade_dev ) )
                                return false;
-                       // else fall through to minor + major branches below
+                       // Else fall through to minor + major branches below.
                }
 
                // 4: Minor In-branch updates (3.7.0 -> 3.7.1 -> 3.7.2 -> 3.7.4)
                }
 
                // 4: Minor In-branch updates (3.7.0 -> 3.7.1 -> 3.7.2 -> 3.7.4)
@@ -1617,7 +1689,7 @@ class Core_Upgrader extends WP_Upgrader {
                return false;
        }
 
                return false;
        }
 
-       function check_files() {
+       public function check_files() {
                global $wp_version, $wp_local_package;
 
                $checksums = get_core_checksums( $wp_version, isset( $wp_local_package ) ? $wp_local_package : 'en_US' );
                global $wp_version, $wp_local_package;
 
                $checksums = get_core_checksums( $wp_version, isset( $wp_local_package ) ? $wp_local_package : 'en_US' );
@@ -1645,11 +1717,11 @@ class Core_Upgrader extends WP_Upgrader {
  * @since 2.8.0
  */
 class File_Upload_Upgrader {
  * @since 2.8.0
  */
 class File_Upload_Upgrader {
-       var $package;
-       var $filename;
-       var $id = 0;
+       public $package;
+       public $filename;
+       public $id = 0;
 
 
-       function __construct($form, $urlholder) {
+       public function __construct($form, $urlholder) {
 
                if ( empty($_FILES[$form]['name']) && empty($_GET[$urlholder]) )
                        wp_die(__('Please select a file'));
 
                if ( empty($_FILES[$form]['name']) && empty($_GET[$urlholder]) )
                        wp_die(__('Please select a file'));
@@ -1675,11 +1747,11 @@ class File_Upload_Upgrader {
                                'post_status' => 'private'
                        );
 
                                'post_status' => 'private'
                        );
 
-                       // Save the data
+                       // Save the data.
                        $this->id = wp_insert_attachment( $object, $file['file'] );
 
                        $this->id = wp_insert_attachment( $object, $file['file'] );
 
-                       // schedule a cleanup for 2 hours from now in case of failed install
-                       wp_schedule_single_event( time() + 7200, 'upgrader_scheduled_cleanup', array( $this->id ) );
+                       // Schedule a cleanup for 2 hours from now in case of failed install.
+                       wp_schedule_single_event( time() + 2 * HOUR_IN_SECONDS, 'upgrader_scheduled_cleanup', array( $this->id ) );
 
                } elseif ( is_numeric( $_GET[$urlholder] ) ) {
                        // Numeric Package = previously uploaded file, see above.
 
                } elseif ( is_numeric( $_GET[$urlholder] ) ) {
                        // Numeric Package = previously uploaded file, see above.
@@ -1700,7 +1772,7 @@ class File_Upload_Upgrader {
                }
        }
 
                }
        }
 
-       function cleanup() {
+       public function cleanup() {
                if ( $this->id )
                        wp_delete_attachment( $this->id );
 
                if ( $this->id )
                        wp_delete_attachment( $this->id );
 
@@ -1902,7 +1974,6 @@ class WP_Automatic_Updater {
         * @param object $item The update offer.
         */
        protected function send_core_update_notification_email( $item ) {
         * @param object $item The update offer.
         */
        protected function send_core_update_notification_email( $item ) {
-               $notify   = true;
                $notified = get_site_option( 'auto_core_update_notified' );
 
                // Don't notify if we've already notified the same email address of the same version.
                $notified = get_site_option( 'auto_core_update_notified' );
 
                // Don't notify if we've already notified the same email address of the same version.
@@ -2002,16 +2073,18 @@ class WP_Automatic_Updater {
                // Boom, This sites about to get a whole new splash of paint!
                $upgrade_result = $upgrader->upgrade( $upgrader_item, array(
                        'clear_update_cache' => false,
                // Boom, This sites about to get a whole new splash of paint!
                $upgrade_result = $upgrader->upgrade( $upgrader_item, array(
                        'clear_update_cache' => false,
-                       'pre_check_md5'      => false, /* always use partial builds if possible for core updates */
-                       'attempt_rollback'   => true, /* only available for core updates */
+                       // Always use partial builds if possible for core updates.
+                       'pre_check_md5'      => false,
+                       // Only available for core updates.
+                       'attempt_rollback'   => true,
                ) );
 
                ) );
 
-               // if the filesystem is unavailable, false is returned.
+               // If the filesystem is unavailable, false is returned.
                if ( false === $upgrade_result ) {
                        $upgrade_result = new WP_Error( 'fs_unavailable', __( 'Could not access filesystem.' ) );
                }
 
                if ( false === $upgrade_result ) {
                        $upgrade_result = new WP_Error( 'fs_unavailable', __( 'Could not access filesystem.' ) );
                }
 
-               // Core doesn't output this, so lets append it so we don't get confused
+               // Core doesn't output this, so lets append it so we don't get confused.
                if ( 'core' == $type ) {
                        if ( is_wp_error( $upgrade_result ) ) {
                                $skin->error( __( 'Installation Failed' ), $upgrade_result );
                if ( 'core' == $type ) {
                        if ( is_wp_error( $upgrade_result ) ) {
                                $skin->error( __( 'Installation Failed' ), $upgrade_result );
@@ -2061,7 +2134,7 @@ class WP_Automatic_Updater {
                                return;
                }
 
                                return;
                }
 
-               // Update the lock, as by this point we've definately got a lock, just need to fire the actions
+               // Update the lock, as by this point we've definitely got a lock, just need to fire the actions
                update_option( $lock_name, time() );
 
                // Don't automatically run these thins, as we'll handle it ourselves
                update_option( $lock_name, time() );
 
                // Don't automatically run these thins, as we'll handle it ourselves
@@ -2368,7 +2441,7 @@ class WP_Automatic_Updater {
                $critical_support = 'critical' === $type && ! empty( $core_update->support_email );
                if ( $critical_support ) {
                        // Support offer if available.
                $critical_support = 'critical' === $type && ! empty( $core_update->support_email );
                if ( $critical_support ) {
                        // Support offer if available.
-                       $body .= "\n\n" . sprintf( __( "The WordPress team is willing to help you. Forward this email to %s and the team will work with you to make sure your site is working." ), $core_update->support_email );
+                       $body .= "\n\n" . sprintf( __( "The WordPress team is willing to help you. Forward this email to %s and the team will work with you to make sure your site is working." ), $core_update->support_email );
                } else {
                        // Add a note about the support forums.
                        $body .= "\n\n" . __( 'If you experience any issues or need support, the volunteers in the WordPress.org support forums may be able to help.' );
                } else {
                        // Add a note about the support forums.
                        $body .= "\n\n" . __( 'If you experience any issues or need support, the volunteers in the WordPress.org support forums may be able to help.' );
@@ -2515,7 +2588,7 @@ class WP_Automatic_Updater {
 
                $site_title = wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES );
                if ( $failures ) {
 
                $site_title = wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES );
                if ( $failures ) {
-                       $body[] = __( "
+                       $body[] = trim( __( "
 BETA TESTING?
 =============
 
 BETA TESTING?
 =============
 
@@ -2525,16 +2598,17 @@ If you think these failures might be due to a bug in WordPress, could you report
  * Open a thread in the support forums: https://wordpress.org/support/forum/alphabeta
  * Or, if you're comfortable writing a bug report: http://core.trac.wordpress.org/
 
  * Open a thread in the support forums: https://wordpress.org/support/forum/alphabeta
  * Or, if you're comfortable writing a bug report: http://core.trac.wordpress.org/
 
-Thanks! -- The WordPress Team" );
+Thanks! -- The WordPress Team" ) );
+                       $body[] = '';
 
                        $subject = sprintf( __( '[%s] There were failures during background updates' ), $site_title );
                } else {
                        $subject = sprintf( __( '[%s] Background updates have finished' ), $site_title );
                }
 
 
                        $subject = sprintf( __( '[%s] There were failures during background updates' ), $site_title );
                } else {
                        $subject = sprintf( __( '[%s] Background updates have finished' ), $site_title );
                }
 
-               $title = __( 'UPDATE LOG' );
-               $body[] = $title;
-               $body[] = str_repeat( '=', strlen( $title ) );
+               $body[] = trim( __( '
+UPDATE LOG
+==========' ) );
                $body[] = '';
 
                foreach ( array( 'core', 'plugin', 'theme', 'translation' ) as $type ) {
                $body[] = '';
 
                foreach ( array( 'core', 'plugin', 'theme', 'translation' ) as $type ) {
index dcce6d555adfb9335eaa16801632ef3cbf2d78e5..15d55f4e41d303c8fa6025edbd8efbc11d2133f5 100644 (file)
@@ -17,7 +17,7 @@ class WP_Users_List_Table extends WP_List_Table {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $site_id;
+       public $site_id;
 
        /**
         * Whether or not the current Users list table is for Multisite.
 
        /**
         * Whether or not the current Users list table is for Multisite.
@@ -26,15 +26,19 @@ class WP_Users_List_Table extends WP_List_Table {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_site_users;
+       public $is_site_users;
 
        /**
         * Constructor.
         *
         * @since 3.1.0
         * @access public
 
        /**
         * Constructor.
         *
         * @since 3.1.0
         * @access public
+        *
+        * @see WP_List_Table::__construct() for more information on default arguments.
+        *
+        * @param array $args An associative array of arguments.
         */
         */
-       function __construct( $args = array() ) {
+       public function __construct( $args = array() ) {
                parent::__construct( array(
                        'singular' => 'user',
                        'plural'   => 'users',
                parent::__construct( array(
                        'singular' => 'user',
                        'plural'   => 'users',
@@ -53,7 +57,7 @@ class WP_Users_List_Table extends WP_List_Table {
         * @since 3.1.0
         * @access public
         */
         * @since 3.1.0
         * @access public
         */
-       function ajax_user_can() {
+       public function ajax_user_can() {
                if ( $this->is_site_users )
                        return current_user_can( 'manage_sites' );
                else
                if ( $this->is_site_users )
                        return current_user_can( 'manage_sites' );
                else
@@ -66,7 +70,7 @@ class WP_Users_List_Table extends WP_List_Table {
         * @since 3.1.0
         * @access public
         */
         * @since 3.1.0
         * @access public
         */
-       function prepare_items() {
+       public function prepare_items() {
                global $role, $usersearch;
 
                $usersearch = isset( $_REQUEST['s'] ) ? wp_unslash( trim( $_REQUEST['s'] ) ) : '';
                global $role, $usersearch;
 
                $usersearch = isset( $_REQUEST['s'] ) ? wp_unslash( trim( $_REQUEST['s'] ) ) : '';
@@ -115,7 +119,7 @@ class WP_Users_List_Table extends WP_List_Table {
         * @since 3.1.0
         * @access public
         */
         * @since 3.1.0
         * @access public
         */
-       function no_items() {
+       public function no_items() {
                _e( 'No matching users were found.' );
        }
 
                _e( 'No matching users were found.' );
        }
 
@@ -127,11 +131,11 @@ class WP_Users_List_Table extends WP_List_Table {
         * filtering of the user table.
         *
         * @since  3.1.0
         * filtering of the user table.
         *
         * @since  3.1.0
-        * @access public
+        * @access protected
         *
         * @return array An array of HTML links, one for each view.
         */
         *
         * @return array An array of HTML links, one for each view.
         */
-       function get_views() {
+       protected function get_views() {
                global $wp_roles, $role;
 
                if ( $this->is_site_users ) {
                global $wp_roles, $role;
 
                if ( $this->is_site_users ) {
@@ -147,7 +151,6 @@ class WP_Users_List_Table extends WP_List_Table {
                $avail_roles =& $users_of_blog['avail_roles'];
                unset($users_of_blog);
 
                $avail_roles =& $users_of_blog['avail_roles'];
                unset($users_of_blog);
 
-               $current_role = false;
                $class = empty($role) ? ' class="current"' : '';
                $role_links = array();
                $role_links['all'] = "<a href='$url'$class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users' ), number_format_i18n( $total_users ) ) . '</a>';
                $class = empty($role) ? ' class="current"' : '';
                $role_links = array();
                $role_links['all'] = "<a href='$url'$class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users' ), number_format_i18n( $total_users ) ) . '</a>';
@@ -158,7 +161,6 @@ class WP_Users_List_Table extends WP_List_Table {
                        $class = '';
 
                        if ( $this_role == $role ) {
                        $class = '';
 
                        if ( $this_role == $role ) {
-                               $current_role = $role;
                                $class = ' class="current"';
                        }
 
                                $class = ' class="current"';
                        }
 
@@ -175,11 +177,11 @@ class WP_Users_List_Table extends WP_List_Table {
         * Retrieve an associative array of bulk actions available on this table.
         *
         * @since  3.1.0
         * Retrieve an associative array of bulk actions available on this table.
         *
         * @since  3.1.0
-        * @access public
+        * @access protected
         *
         * @return array Array of bulk actions.
         */
         *
         * @return array Array of bulk actions.
         */
-       function get_bulk_actions() {
+       protected function get_bulk_actions() {
                $actions = array();
 
                if ( is_multisite() ) {
                $actions = array();
 
                if ( is_multisite() ) {
@@ -197,12 +199,12 @@ class WP_Users_List_Table extends WP_List_Table {
         * Output the controls to allow user roles to be changed in bulk.
         *
         * @since 3.1.0
         * Output the controls to allow user roles to be changed in bulk.
         *
         * @since 3.1.0
-        * @access public
+        * @access protected
         *
         * @param string $which Whether this is being invoked above ("top")
         *                      or below the table ("bottom").
         */
         *
         * @param string $which Whether this is being invoked above ("top")
         *                      or below the table ("bottom").
         */
-       function extra_tablenav( $which ) {
+       protected function extra_tablenav( $which ) {
                if ( 'top' != $which )
                        return;
        ?>
                if ( 'top' != $which )
                        return;
        ?>
@@ -210,7 +212,7 @@ class WP_Users_List_Table extends WP_List_Table {
                <?php if ( current_user_can( 'promote_users' ) ) : ?>
                <label class="screen-reader-text" for="new_role"><?php _e( 'Change role to&hellip;' ) ?></label>
                <select name="new_role" id="new_role">
                <?php if ( current_user_can( 'promote_users' ) ) : ?>
                <label class="screen-reader-text" for="new_role"><?php _e( 'Change role to&hellip;' ) ?></label>
                <select name="new_role" id="new_role">
-                       <option value=''><?php _e( 'Change role to&hellip;' ) ?></option>
+                       <option value=""><?php _e( 'Change role to&hellip;' ) ?></option>
                        <?php wp_dropdown_roles(); ?>
                </select>
        <?php
                        <?php wp_dropdown_roles(); ?>
                </select>
        <?php
@@ -238,7 +240,7 @@ class WP_Users_List_Table extends WP_List_Table {
         *
         * @return string The bulk action required.
         */
         *
         * @return string The bulk action required.
         */
-       function current_action() {
+       public function current_action() {
                if ( isset($_REQUEST['changeit']) && !empty($_REQUEST['new_role']) )
                        return 'promote';
 
                if ( isset($_REQUEST['changeit']) && !empty($_REQUEST['new_role']) )
                        return 'promote';
 
@@ -254,7 +256,7 @@ class WP_Users_List_Table extends WP_List_Table {
         * @return array Array in which the key is the ID of the column,
         *               and the value is the description.
         */
         * @return array Array in which the key is the ID of the column,
         *               and the value is the description.
         */
-       function get_columns() {
+       public function get_columns() {
                $c = array(
                        'cb'       => '<input type="checkbox" />',
                        'username' => __( 'Username' ),
                $c = array(
                        'cb'       => '<input type="checkbox" />',
                        'username' => __( 'Username' ),
@@ -274,11 +276,11 @@ class WP_Users_List_Table extends WP_List_Table {
         * Get a list of sortable columns for the list table.
         *
         * @since 3.1.0
         * Get a list of sortable columns for the list table.
         *
         * @since 3.1.0
-        * @access public
+        * @access protected
         *
         * @return array Array of sortable columns.
         */
         *
         * @return array Array of sortable columns.
         */
-       function get_sortable_columns() {
+       protected function get_sortable_columns() {
                $c = array(
                        'username' => 'login',
                        'name'     => 'name',
                $c = array(
                        'username' => 'login',
                        'name'     => 'name',
@@ -297,7 +299,7 @@ class WP_Users_List_Table extends WP_List_Table {
         * @since 3.1.0
         * @access public
         */
         * @since 3.1.0
         * @access public
         */
-       function display_rows() {
+       public function display_rows() {
                // Query the post counts for this page
                if ( ! $this->is_site_users )
                        $post_counts = count_many_users_posts( array_keys( $this->items ) );
                // Query the post counts for this page
                if ( ! $this->is_site_users )
                        $post_counts = count_many_users_posts( array_keys( $this->items ) );
@@ -336,7 +338,7 @@ class WP_Users_List_Table extends WP_List_Table {
         *                            to zero, as in, a new user has made zero posts.
         * @return string Output for a single row.
         */
         *                            to zero, as in, a new user has made zero posts.
         * @return string Output for a single row.
         */
-       function single_row( $user_object, $style = '', $role = '', $numposts = 0 ) {
+       public function single_row( $user_object, $style = '', $role = '', $numposts = 0 ) {
                global $wp_roles;
 
                if ( !( is_object( $user_object ) && is_a( $user_object, 'WP_User' ) ) )
                global $wp_roles;
 
                if ( !( is_object( $user_object ) && is_a( $user_object, 'WP_User' ) ) )
index fb50197e17ab4f48091482a75d457c7b295a3c77..2a5e74bea4542d2b4786cec99e4eb0b9cfc745b0 100644 (file)
@@ -18,11 +18,6 @@ function wp_dashboard_setup() {
        $wp_dashboard_control_callbacks = array();
        $screen = get_current_screen();
 
        $wp_dashboard_control_callbacks = array();
        $screen = get_current_screen();
 
-       $update = false;
-       $widget_options = get_option( 'dashboard_widget_options' );
-       if ( !$widget_options || !is_array($widget_options) )
-               $widget_options = array();
-
        /* Register Widgets and Controls */
 
        $response = wp_check_browser_version();
        /* Register Widgets and Controls */
 
        $response = wp_check_browser_version();
@@ -123,9 +118,6 @@ function wp_dashboard_setup() {
                exit;
        }
 
                exit;
        }
 
-       if ( $update )
-               update_option( 'dashboard_widget_options', $widget_options );
-
        /** This action is documented in wp-admin/edit-form-advanced.php */
        do_action( 'do_meta_boxes', $screen->id, 'normal', '' );
 
        /** This action is documented in wp-admin/edit-form-advanced.php */
        do_action( 'do_meta_boxes', $screen->id, 'normal', '' );
 
@@ -186,16 +178,16 @@ function wp_dashboard() {
 
 ?>
 <div id="dashboard-widgets" class="metabox-holder<?php echo $columns_css; ?>">
 
 ?>
 <div id="dashboard-widgets" class="metabox-holder<?php echo $columns_css; ?>">
-       <div id='postbox-container-1' class='postbox-container'>
+       <div id="postbox-container-1" class="postbox-container">
        <?php do_meta_boxes( $screen->id, 'normal', '' ); ?>
        </div>
        <?php do_meta_boxes( $screen->id, 'normal', '' ); ?>
        </div>
-       <div id='postbox-container-2' class='postbox-container'>
+       <div id="postbox-container-2" class="postbox-container">
        <?php do_meta_boxes( $screen->id, 'side', '' ); ?>
        </div>
        <?php do_meta_boxes( $screen->id, 'side', '' ); ?>
        </div>
-       <div id='postbox-container-3' class='postbox-container'>
+       <div id="postbox-container-3" class="postbox-container">
        <?php do_meta_boxes( $screen->id, 'column3', '' ); ?>
        </div>
        <?php do_meta_boxes( $screen->id, 'column3', '' ); ?>
        </div>
-       <div id='postbox-container-4' class='postbox-container'>
+       <div id="postbox-container-4" class="postbox-container">
        <?php do_meta_boxes( $screen->id, 'column4', '' ); ?>
        </div>
 </div>
        <?php do_meta_boxes( $screen->id, 'column4', '' ); ?>
        </div>
 </div>
@@ -218,11 +210,6 @@ function wp_dashboard() {
  * @since 2.7.0
  */
 function wp_dashboard_right_now() {
  * @since 2.7.0
  */
 function wp_dashboard_right_now() {
-       $theme = wp_get_theme();
-       if ( current_user_can( 'switch_themes' ) )
-               $theme_name = sprintf( '<a href="themes.php">%1$s</a>', $theme->display('Name') );
-       else
-               $theme_name = $theme->display('Name');
 ?>
        <div class="main">
        <ul>
 ?>
        <div class="main">
        <ul>
@@ -469,7 +456,7 @@ function wp_dashboard_quick_press( $error_msg = false ) {
 
                <div class="textarea-wrap" id="description-wrap">
                        <label class="screen-reader-text prompt" for="content" id="content-prompt-text"><?php _e( 'What&#8217;s on your mind?' ); ?></label>
 
                <div class="textarea-wrap" id="description-wrap">
                        <label class="screen-reader-text prompt" for="content" id="content-prompt-text"><?php _e( 'What&#8217;s on your mind?' ); ?></label>
-                       <textarea name="content" id="content" class="mceEditor" rows="3" cols="15"></textarea>
+                       <textarea name="content" id="content" class="mceEditor" rows="3" cols="15" autocomplete="off"></textarea>
                </div>
 
                <p class="submit">
                </div>
 
                <p class="submit">
@@ -544,7 +531,7 @@ function _wp_dashboard_recent_comments_row( &$comment, $show_date = true ) {
 
        $actions_string = '';
        if ( current_user_can( 'edit_comment', $comment->comment_ID ) ) {
 
        $actions_string = '';
        if ( current_user_can( 'edit_comment', $comment->comment_ID ) ) {
-               // preorder it: Approve | Reply | Edit | Spam | Trash
+               // Pre-order it: Approve | Reply | Edit | Spam | Trash.
                $actions = array(
                        'approve' => '', 'unapprove' => '',
                        'reply' => '',
                $actions = array(
                        'approve' => '', 'unapprove' => '',
                        'reply' => '',
@@ -614,16 +601,16 @@ function _wp_dashboard_recent_comments_row( &$comment, $show_date = true ) {
 
                        <?php
                        else :
 
                        <?php
                        else :
-                               switch ( $comment->comment_type ) :
-                               case 'pingback' :
-                                       $type = __( 'Pingback' );
-                                       break;
-                               case 'trackback' :
-                                       $type = __( 'Trackback' );
-                                       break;
-                               default :
-                                       $type = ucwords( $comment->comment_type );
-                               endswitch;
+                               switch ( $comment->comment_type ) {
+                                       case 'pingback' :
+                                               $type = __( 'Pingback' );
+                                               break;
+                                       case 'trackback' :
+                                               $type = __( 'Trackback' );
+                                               break;
+                                       default :
+                                               $type = ucwords( $comment->comment_type );
+                               }
                                $type = esc_html( $type );
                        ?>
                        <div class="dashboard-comment-wrap">
                                $type = esc_html( $type );
                        ?>
                        <div class="dashboard-comment-wrap">
@@ -712,7 +699,6 @@ function wp_dashboard_recent_posts( $args ) {
 
                echo '<ul>';
 
 
                echo '<ul>';
 
-               $i = 0;
                $today    = date( 'Y-m-d', current_time( 'timestamp' ) );
                $tomorrow = date( 'Y-m-d', strtotime( '+1 day', current_time( 'timestamp' ) ) );
 
                $today    = date( 'Y-m-d', current_time( 'timestamp' ) );
                $tomorrow = date( 'Y-m-d', strtotime( '+1 day', current_time( 'timestamp' ) ) );
 
@@ -761,11 +747,8 @@ function wp_dashboard_recent_posts( $args ) {
  * @return bool False if no comments were found. True otherwise.
  */
 function wp_dashboard_recent_comments( $total_items = 5 ) {
  * @return bool False if no comments were found. True otherwise.
  */
 function wp_dashboard_recent_comments( $total_items = 5 ) {
-       global $wpdb;
-
        // Select all comment types and filter out spam later for better query performance.
        $comments = array();
        // Select all comment types and filter out spam later for better query performance.
        $comments = array();
-       $start = 0;
 
        $comments_query = array(
                'number' => $total_items * 5,
 
        $comments_query = array(
                'number' => $total_items * 5,
@@ -786,8 +769,6 @@ function wp_dashboard_recent_comments( $total_items = 5 ) {
                $comments_query['number'] = $total_items * 10;
        }
 
                $comments_query['number'] = $total_items * 10;
        }
 
-
-
        if ( $comments ) {
                echo '<div id="latest-comments" class="activity-block">';
                echo '<h4>' . __( 'Comments' ) . '</h4>';
        if ( $comments ) {
                echo '<div id="latest-comments" class="activity-block">';
                echo '<h4>' . __( 'Comments' ) . '</h4>';
@@ -864,8 +845,8 @@ function wp_dashboard_cached_rss_widget( $widget_id, $callback, $check_urls = ar
        }
 
        if ( $callback && is_callable( $callback ) ) {
        }
 
        if ( $callback && is_callable( $callback ) ) {
-               $args = array_slice( func_get_args(), 2 );
-               array_unshift( $args, $widget_id );
+               $args = array_slice( func_get_args(), 3 );
+               array_unshift( $args, $widget_id, $check_urls );
                ob_start();
                call_user_func_array( $callback, $args );
                set_transient( $cache_key, ob_get_flush(), 12 * HOUR_IN_SECONDS ); // Default lifetime in cache of 12 hours (same as the feeds)
                ob_start();
                call_user_func_array( $callback, $args );
                set_transient( $cache_key, ob_get_flush(), 12 * HOUR_IN_SECONDS ); // Default lifetime in cache of 12 hours (same as the feeds)
@@ -917,7 +898,8 @@ function wp_dashboard_rss_control( $widget_id, $form_inputs = array() ) {
                $_POST['widget-rss'][$number] = wp_unslash( $_POST['widget-rss'][$number] );
                $widget_options[$widget_id] = wp_widget_rss_process( $_POST['widget-rss'][$number] );
                $widget_options[$widget_id]['number'] = $number;
                $_POST['widget-rss'][$number] = wp_unslash( $_POST['widget-rss'][$number] );
                $widget_options[$widget_id] = wp_widget_rss_process( $_POST['widget-rss'][$number] );
                $widget_options[$widget_id]['number'] = $number;
-               // title is optional. If black, fill it if possible
+
+               // Title is optional. If black, fill it if possible.
                if ( !$widget_options[$widget_id]['title'] && isset($_POST['widget-rss'][$number]['title']) ) {
                        $rss = fetch_feed($widget_options[$widget_id]['url']);
                        if ( is_wp_error($rss) ) {
                if ( !$widget_options[$widget_id]['title'] && isset($_POST['widget-rss'][$number]['title']) ) {
                        $rss = fetch_feed($widget_options[$widget_id]['url']);
                        if ( is_wp_error($rss) ) {
@@ -1065,13 +1047,11 @@ function wp_dashboard_plugins_output( $rss, $args = array() ) {
 
        echo '<ul>';
 
 
        echo '<ul>';
 
-       foreach ( array(
-               'popular' => __( 'Popular Plugin' )
-       ) as $feed => $label ) {
-               if ( is_wp_error($$feed) || !$$feed->get_item_quantity() )
+       foreach ( array( $popular ) as $feed ) {
+               if ( is_wp_error( $feed ) || ! $feed->get_item_quantity() )
                        continue;
 
                        continue;
 
-               $items = $$feed->get_items(0, 5);
+               $items = $feed->get_items(0, 5);
 
                // Pick a random, non-installed plugin
                while ( true ) {
 
                // Pick a random, non-installed plugin
                while ( true ) {
@@ -1114,14 +1094,11 @@ function wp_dashboard_plugins_output( $rss, $args = array() ) {
 
                $title = esc_html( $item->get_title() );
 
 
                $title = esc_html( $item->get_title() );
 
-               $description = esc_html( strip_tags( @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) ) ) );
-
                $ilink = wp_nonce_url('plugin-install.php?tab=plugin-information&plugin=' . $slug, 'install-plugin_' . $slug) . '&amp;TB_iframe=true&amp;width=600&amp;height=800';
                $ilink = wp_nonce_url('plugin-install.php?tab=plugin-information&plugin=' . $slug, 'install-plugin_' . $slug) . '&amp;TB_iframe=true&amp;width=600&amp;height=800';
+               echo "<li class='dashboard-news-plugin'><span>" . __( 'Popular Plugin' ) . ":</span> <a href='$link' class='dashboard-news-plugin-link'>$title</a>&nbsp;<span>(<a href='$ilink' class='thickbox' title='$title'>" . __( 'Install' ) . "</a>)</span></li>";
 
 
-               echo "<li class='dashboard-news-plugin'><span>$label:</span> <a href='$link' class='dashboard-news-plugin-link'>$title</a>&nbsp;<span>(<a href='$ilink' class='thickbox' title='$title'>" . __( 'Install' ) . "</a>)</span></li>";
-
-               $$feed->__destruct();
-               unset( $$feed );
+               $feed->__destruct();
+               unset( $feed );
        }
 
        echo '</ul>';
        }
 
        echo '</ul>';
@@ -1303,8 +1280,10 @@ function wp_welcome_panel() {
        <p class="about-description"><?php _e( 'We&#8217;ve assembled some links to get you started:' ); ?></p>
        <div class="welcome-panel-column-container">
        <div class="welcome-panel-column">
        <p class="about-description"><?php _e( 'We&#8217;ve assembled some links to get you started:' ); ?></p>
        <div class="welcome-panel-column-container">
        <div class="welcome-panel-column">
-               <h4><?php _e( 'Get Started' ); ?></h4>
-               <a class="button button-primary button-hero load-customize hide-if-no-customize" href="<?php echo wp_customize_url(); ?>"><?php _e( 'Customize Your Site' ); ?></a>
+               <?php if ( current_user_can( 'customize' ) ): ?>
+                       <h4><?php _e( 'Get Started' ); ?></h4>
+                       <a class="button button-primary button-hero load-customize hide-if-no-customize" href="<?php echo wp_customize_url(); ?>"><?php _e( 'Customize Your Site' ); ?></a>
+               <?php endif; ?>
                <a class="button button-primary button-hero hide-if-customize" href="<?php echo admin_url( 'themes.php' ); ?>"><?php _e( 'Customize Your Site' ); ?></a>
                <?php if ( current_user_can( 'install_themes' ) || ( current_user_can( 'switch_themes' ) && count( wp_get_themes( array( 'allowed' => true ) ) ) > 1 ) ) : ?>
                        <p class="hide-if-no-customize"><?php printf( __( 'or, <a href="%s">change your theme completely</a>' ), admin_url( 'themes.php' ) ); ?></p>
                <a class="button button-primary button-hero hide-if-customize" href="<?php echo admin_url( 'themes.php' ); ?>"><?php _e( 'Customize Your Site' ); ?></a>
                <?php if ( current_user_can( 'install_themes' ) || ( current_user_can( 'switch_themes' ) && count( wp_get_themes( array( 'allowed' => true ) ) ) > 1 ) ) : ?>
                        <p class="hide-if-no-customize"><?php printf( __( 'or, <a href="%s">change your theme completely</a>' ), admin_url( 'themes.php' ) ); ?></p>
index 36b4ca28ca5b8d5af67dac378a707cca98255bb9..f6fa0a2ada5e257a4173628e2212ede9ed8800e8 100644 (file)
@@ -852,42 +852,42 @@ function favorite_actions() {
 }
 
 function media_upload_image() {
 }
 
 function media_upload_image() {
-       __deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
+       _deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
        return wp_media_upload_handler();
 }
 
 function media_upload_audio() {
        return wp_media_upload_handler();
 }
 
 function media_upload_audio() {
-       __deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
+       _deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
        return wp_media_upload_handler();
 }
 
 function media_upload_video() {
        return wp_media_upload_handler();
 }
 
 function media_upload_video() {
-       __deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
+       _deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
        return wp_media_upload_handler();
 }
 
 function media_upload_file() {
        return wp_media_upload_handler();
 }
 
 function media_upload_file() {
-       __deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
+       _deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
        return wp_media_upload_handler();
 }
 
 function type_url_form_image() {
        return wp_media_upload_handler();
 }
 
 function type_url_form_image() {
-       __deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('image')" );
+       _deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('image')" );
        return wp_media_insert_url_form( 'image' );
 }
 
 function type_url_form_audio() {
        return wp_media_insert_url_form( 'image' );
 }
 
 function type_url_form_audio() {
-       __deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('audio')" );
+       _deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('audio')" );
        return wp_media_insert_url_form( 'audio' );
 }
 
 function type_url_form_video() {
        return wp_media_insert_url_form( 'audio' );
 }
 
 function type_url_form_video() {
-       __deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('video')" );
+       _deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('video')" );
        return wp_media_insert_url_form( 'video' );
 }
 
 function type_url_form_file() {
        return wp_media_insert_url_form( 'video' );
 }
 
 function type_url_form_file() {
-       __deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('file')" );
+       _deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('file')" );
        return wp_media_insert_url_form( 'file' );
 }
 
        return wp_media_insert_url_form( 'file' );
 }
 
@@ -1070,7 +1070,7 @@ function wp_update_core($current, $feedback = '') {
        if ( !empty($feedback) )
                add_filter('update_feedback', $feedback);
 
        if ( !empty($feedback) )
                add_filter('update_feedback', $feedback);
 
-       include ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+       include( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
        $upgrader = new Core_Upgrader();
        return $upgrader->upgrade($current);
 
        $upgrader = new Core_Upgrader();
        return $upgrader->upgrade($current);
 
@@ -1093,7 +1093,7 @@ function wp_update_plugin($plugin, $feedback = '') {
        if ( !empty($feedback) )
                add_filter('update_feedback', $feedback);
 
        if ( !empty($feedback) )
                add_filter('update_feedback', $feedback);
 
-       include ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+       include( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
        $upgrader = new Plugin_Upgrader();
        return $upgrader->upgrade($plugin);
 }
        $upgrader = new Plugin_Upgrader();
        return $upgrader->upgrade($plugin);
 }
@@ -1115,7 +1115,7 @@ function wp_update_theme($theme, $feedback = '') {
        if ( !empty($feedback) )
                add_filter('update_feedback', $feedback);
 
        if ( !empty($feedback) )
                add_filter('update_feedback', $feedback);
 
-       include ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+       include( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
        $upgrader = new Theme_Upgrader();
        return $upgrader->upgrade($theme);
 }
        $upgrader = new Theme_Upgrader();
        return $upgrader->upgrade($theme);
 }
index 162e00721e8ca79931a6b3bf0a9a0dfdb6092cc7..397e9e7a035aecaf396e72c107bd58c5a5cf0e98 100644 (file)
@@ -83,10 +83,13 @@ function export_wp( $args = array() ) {
                        $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_date < %s", date( 'Y-m-d', strtotime('+1 month', strtotime($args['end_date'])) ) );
        }
 
                        $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_date < %s", date( 'Y-m-d', strtotime('+1 month', strtotime($args['end_date'])) ) );
        }
 
-       // grab a snapshot of post IDs, just in case it changes during the export
+       // Grab a snapshot of post IDs, just in case it changes during the export.
        $post_ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} $join WHERE $where" );
 
        $post_ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} $join WHERE $where" );
 
-       // get the requested terms ready, empty unless posts filtered by category or all content
+       /*
+        * Get the requested terms ready, empty unless posts filtered by category
+        * or all content.
+        */
        $cats = $tags = $terms = array();
        if ( isset( $term ) && $term ) {
                $cat = get_term( $term['term_id'], 'category' );
        $cats = $tags = $terms = array();
        if ( isset( $term ) && $term ) {
                $cat = get_term( $term['term_id'], 'category' );
@@ -99,7 +102,7 @@ function export_wp( $args = array() ) {
                $custom_taxonomies = get_taxonomies( array( '_builtin' => false ) );
                $custom_terms = (array) get_terms( $custom_taxonomies, array( 'get' => 'all' ) );
 
                $custom_taxonomies = get_taxonomies( array( '_builtin' => false ) );
                $custom_terms = (array) get_terms( $custom_taxonomies, array( 'get' => 'all' ) );
 
-               // put categories in order with no child going before its parent
+               // Put categories in order with no child going before its parent.
                while ( $cat = array_shift( $categories ) ) {
                        if ( $cat->parent == 0 || isset( $cats[$cat->parent] ) )
                                $cats[$cat->term_id] = $cat;
                while ( $cat = array_shift( $categories ) ) {
                        if ( $cat->parent == 0 || isset( $cats[$cat->parent] ) )
                                $cats[$cat->term_id] = $cat;
@@ -107,7 +110,7 @@ function export_wp( $args = array() ) {
                                $categories[] = $cat;
                }
 
                                $categories[] = $cat;
                }
 
-               // put terms in order with no child going before its parent
+               // Put terms in order with no child going before its parent.
                while ( $t = array_shift( $custom_terms ) ) {
                        if ( $t->parent == 0 || isset( $terms[$t->parent] ) )
                                $terms[$t->term_id] = $t;
                while ( $t = array_shift( $custom_terms ) ) {
                        if ( $t->parent == 0 || isset( $terms[$t->parent] ) )
                                $terms[$t->term_id] = $t;
@@ -144,10 +147,10 @@ function export_wp( $args = array() ) {
         * @return string Site URL.
         */
        function wxr_site_url() {
         * @return string Site URL.
         */
        function wxr_site_url() {
-               // ms: the base url
+               // Multisite: the base URL.
                if ( is_multisite() )
                        return network_home_url();
                if ( is_multisite() )
                        return network_home_url();
-               // wp: the blog url
+               // WordPress (single site): the blog URL.
                else
                        return get_bloginfo_rss( 'url' );
        }
                else
                        return get_bloginfo_rss( 'url' );
        }
@@ -240,12 +243,21 @@ function export_wp( $args = array() ) {
         * Output list of authors with posts
         *
         * @since 3.1.0
         * Output list of authors with posts
         *
         * @since 3.1.0
+        *
+        * @param array $post_ids Array of post IDs to filter the query by. Optional.
         */
         */
-       function wxr_authors_list() {
+       function wxr_authors_list( array $post_ids = null ) {
                global $wpdb;
 
                global $wpdb;
 
+               if ( !empty( $post_ids ) ) {
+                       $post_ids = array_map( 'absint', $post_ids );
+                       $and = 'AND ID IN ( ' . implode( ', ', $post_ids ) . ')';
+               } else {
+                       $and = '';
+               }
+
                $authors = array();
                $authors = array();
-               $results = $wpdb->get_results( "SELECT DISTINCT post_author FROM $wpdb->posts WHERE post_status != 'auto-draft'" );
+               $results = $wpdb->get_results( "SELECT DISTINCT post_author FROM $wpdb->posts WHERE post_status != 'auto-draft' $and" );
                foreach ( (array) $results as $result )
                        $authors[] = get_userdata( $result->post_author );
 
                foreach ( (array) $results as $result )
                        $authors[] = get_userdata( $result->post_author );
 
@@ -344,7 +356,7 @@ function export_wp( $args = array() ) {
        <wp:base_site_url><?php echo wxr_site_url(); ?></wp:base_site_url>
        <wp:base_blog_url><?php bloginfo_rss( 'url' ); ?></wp:base_blog_url>
 
        <wp:base_site_url><?php echo wxr_site_url(); ?></wp:base_site_url>
        <wp:base_blog_url><?php bloginfo_rss( 'url' ); ?></wp:base_blog_url>
 
-<?php wxr_authors_list(); ?>
+<?php wxr_authors_list( $post_ids ); ?>
 
 <?php foreach ( $cats as $c ) : ?>
        <wp:category><wp:term_id><?php echo $c->term_id ?></wp:term_id><wp:category_nicename><?php echo $c->slug; ?></wp:category_nicename><wp:category_parent><?php echo $c->parent ? $cats[$c->parent]->slug : ''; ?></wp:category_parent><?php wxr_cat_name( $c ); ?><?php wxr_category_description( $c ); ?></wp:category>
 
 <?php foreach ( $cats as $c ) : ?>
        <wp:category><wp:term_id><?php echo $c->term_id ?></wp:term_id><wp:category_nicename><?php echo $c->slug; ?></wp:category_nicename><wp:category_parent><?php echo $c->parent ? $cats[$c->parent]->slug : ''; ?></wp:category_parent><?php wxr_cat_name( $c ); ?><?php wxr_category_description( $c ); ?></wp:category>
@@ -364,14 +376,16 @@ function export_wp( $args = array() ) {
 
 <?php if ( $post_ids ) {
        global $wp_query;
 
 <?php if ( $post_ids ) {
        global $wp_query;
-       $wp_query->in_the_loop = true; // Fake being in the loop.
 
 
-       // fetch 20 posts at a time rather than loading the entire table into memory
+       // Fake being in the loop.
+       $wp_query->in_the_loop = true;
+
+       // Fetch 20 posts at a time rather than loading the entire table into memory.
        while ( $next_posts = array_splice( $post_ids, 0, 20 ) ) {
        $where = 'WHERE ID IN (' . join( ',', $next_posts ) . ')';
        $posts = $wpdb->get_results( "SELECT * FROM {$wpdb->posts} $where" );
 
        while ( $next_posts = array_splice( $post_ids, 0, 20 ) ) {
        $where = 'WHERE ID IN (' . join( ',', $next_posts ) . ')';
        $posts = $wpdb->get_results( "SELECT * FROM {$wpdb->posts} $where" );
 
-       // Begin Loop
+       // Begin Loop.
        foreach ( $posts as $post ) {
                setup_postdata( $post );
                $is_sticky = is_sticky( $post->ID ) ? 1 : 0;
        foreach ( $posts as $post ) {
                setup_postdata( $post );
                $is_sticky = is_sticky( $post->ID ) ? 1 : 0;
@@ -441,8 +455,9 @@ function export_wp( $args = array() ) {
                        <wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key>
                        <wp:meta_value><?php echo wxr_cdata( $meta->meta_value ); ?></wp:meta_value>
                </wp:postmeta>
                        <wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key>
                        <wp:meta_value><?php echo wxr_cdata( $meta->meta_value ); ?></wp:meta_value>
                </wp:postmeta>
-<?php  endforeach; ?>
-<?php  $comments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_approved <> 'spam'", $post->ID ) );
+<?php  endforeach;
+
+               $comments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_approved <> 'spam'", $post->ID ) );
                foreach ( $comments as $c ) : ?>
                <wp:comment>
                        <wp:comment_id><?php echo $c->comment_ID; ?></wp:comment_id>
                foreach ( $comments as $c ) : ?>
                <wp:comment>
                        <wp:comment_id><?php echo $c->comment_ID; ?></wp:comment_id>
@@ -458,7 +473,23 @@ function export_wp( $args = array() ) {
                        <wp:comment_parent><?php echo $c->comment_parent; ?></wp:comment_parent>
                        <wp:comment_user_id><?php echo $c->user_id; ?></wp:comment_user_id>
 <?php          $c_meta = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->commentmeta WHERE comment_id = %d", $c->comment_ID ) );
                        <wp:comment_parent><?php echo $c->comment_parent; ?></wp:comment_parent>
                        <wp:comment_user_id><?php echo $c->user_id; ?></wp:comment_user_id>
 <?php          $c_meta = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->commentmeta WHERE comment_id = %d", $c->comment_ID ) );
-                       foreach ( $c_meta as $meta ) : ?>
+                       foreach ( $c_meta as $meta ) :
+                               /**
+                                * Filter whether to selectively skip comment meta used for WXR exports.
+                                *
+                                * Returning a truthy value to the filter will skip the current meta
+                                * object from being exported.
+                                *
+                                * @since 4.0.0
+                                *
+                                * @param bool   $skip     Whether to skip the current comment meta. Default false.
+                                * @param string $meta_key Current meta key.
+                                * @param object $meta     Current meta object.
+                                */
+                               if ( apply_filters( 'wxr_export_skip_commentmeta', false, $meta->meta_key, $meta ) ) {
+                                       continue;
+                               }
+                       ?>
                        <wp:commentmeta>
                                <wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key>
                                <wp:meta_value><?php echo wxr_cdata( $meta->meta_value ); ?></wp:meta_value>
                        <wp:commentmeta>
                                <wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key>
                                <wp:meta_value><?php echo wxr_cdata( $meta->meta_value ); ?></wp:meta_value>
index d81dd525469032c01449c5057ac499140c315cad..286d76ff592d2748c5fe396974eb28096f24c1f5 100644 (file)
@@ -79,8 +79,8 @@ function get_file_description( $file ) {
  * @return string Full filesystem path to the root of the WordPress installation
  */
 function get_home_path() {
  * @return string Full filesystem path to the root of the WordPress installation
  */
 function get_home_path() {
-       $home = get_option( 'home' );
-       $siteurl = get_option( 'siteurl' );
+       $home    = set_url_scheme( get_option( 'home' ), 'http' );
+       $siteurl = set_url_scheme( get_option( 'siteurl' ), 'http' );
        if ( ! empty( $home ) && 0 !== strcasecmp( $home, $siteurl ) ) {
                $wp_path_rel_to_home = str_ireplace( $home, '', $siteurl ); /* $siteurl - $home */
                $pos = strripos( str_replace( '\\', '/', $_SERVER['SCRIPT_FILENAME'] ), trailingslashit( $wp_path_rel_to_home ) );
        if ( ! empty( $home ) && 0 !== strcasecmp( $home, $siteurl ) ) {
                $wp_path_rel_to_home = str_ireplace( $home, '', $siteurl ); /* $siteurl - $home */
                $pos = strripos( str_replace( '\\', '/', $_SERVER['SCRIPT_FILENAME'] ), trailingslashit( $wp_path_rel_to_home ) );
@@ -179,8 +179,8 @@ function validate_file_to_edit( $file, $allowed_files = '' ) {
                case 1 :
                        wp_die( __( 'Sorry, that file cannot be edited.' ) );
 
                case 1 :
                        wp_die( __( 'Sorry, that file cannot be edited.' ) );
 
-               //case 2 :
-               //      wp_die( __('Sorry, can&#8217;t call files with their real path.' ));
+               // case 2 :
+               // wp_die( __('Sorry, can&#8217;t call files with their real path.' ));
 
                case 3 :
                        wp_die( __( 'Sorry, that file cannot be edited.' ) );
 
                case 3 :
                        wp_die( __( 'Sorry, that file cannot be edited.' ) );
@@ -191,145 +191,171 @@ function validate_file_to_edit( $file, $allowed_files = '' ) {
  * Handle PHP uploads in WordPress, sanitizing file names, checking extensions for mime type,
  * and moving the file to the appropriate directory within the uploads directory.
  *
  * Handle PHP uploads in WordPress, sanitizing file names, checking extensions for mime type,
  * and moving the file to the appropriate directory within the uploads directory.
  *
- * @since 2.0.0
+ * @since 4.0.0
  *
  *
- * @uses wp_handle_upload_error
- * @uses is_multisite
- * @uses wp_check_filetype_and_ext
- * @uses current_user_can
- * @uses wp_upload_dir
- * @uses wp_unique_filename
- * @uses delete_transient
- * @param array $file Reference to a single element of $_FILES. Call the function once for each uploaded file.
- * @param array $overrides Optional. An associative array of names=>values to override default variables with extract( $overrides, EXTR_OVERWRITE ).
- * @param string $time Optional. Time formatted in 'yyyy/mm'.
- * @return array On success, returns an associative array of file attributes. On failure, returns $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ).
- */
-function wp_handle_upload( &$file, $overrides = false, $time = null ) {
+ * @see wp_handle_upload_error
+ *
+ * @param array  $file      Reference to a single element of $_FILES. Call the function once for
+ *                          each uploaded file.
+ * @param array  $overrides An associative array of names => values to override default variables.
+ * @param string $time      Time formatted in 'yyyy/mm'.
+ * @param string $action    Expected value for $_POST['action'].
+ * @return array On success, returns an associative array of file attributes. On failure, returns
+ *               $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ).
+*/
+function _wp_handle_upload( &$file, $overrides, $time, $action ) {
        // The default error handler.
        if ( ! function_exists( 'wp_handle_upload_error' ) ) {
                function wp_handle_upload_error( &$file, $message ) {
        // The default error handler.
        if ( ! function_exists( 'wp_handle_upload_error' ) ) {
                function wp_handle_upload_error( &$file, $message ) {
-                       return array( 'error'=>$message );
+                       return array( 'error' => $message );
                }
        }
 
        /**
                }
        }
 
        /**
-        * Filter data for the current file to upload.
+        * The dynamic portion of the hook name, $action, refers to the post action.
         *
         *
-        * @since 2.9.0
+        * @since 2.9.0 as 'wp_handle_upload_prefilter'
+        * @since 4.0.0 Converted to a dynamic hook with $action
         *
         * @param array $file An array of data for a single file.
         */
         *
         * @param array $file An array of data for a single file.
         */
-       $file = apply_filters( 'wp_handle_upload_prefilter', $file );
+       $file = apply_filters( "{$action}_prefilter", $file );
 
        // You may define your own function and pass the name in $overrides['upload_error_handler']
        $upload_error_handler = 'wp_handle_upload_error';
 
        // You may define your own function and pass the name in $overrides['upload_error_handler']
        $upload_error_handler = 'wp_handle_upload_error';
+       if ( isset( $overrides['upload_error_handler'] ) ) {
+               $upload_error_handler = $overrides['upload_error_handler'];
+       }
 
        // You may have had one or more 'wp_handle_upload_prefilter' functions error out the file. Handle that gracefully.
 
        // You may have had one or more 'wp_handle_upload_prefilter' functions error out the file. Handle that gracefully.
-       if ( isset( $file['error'] ) && !is_numeric( $file['error'] ) && $file['error'] )
+       if ( isset( $file['error'] ) && ! is_numeric( $file['error'] ) && $file['error'] ) {
                return $upload_error_handler( $file, $file['error'] );
                return $upload_error_handler( $file, $file['error'] );
+       }
+
+       // Install user overrides. Did we mention that this voids your warranty?
 
        // You may define your own function and pass the name in $overrides['unique_filename_callback']
        $unique_filename_callback = null;
 
        // You may define your own function and pass the name in $overrides['unique_filename_callback']
        $unique_filename_callback = null;
+       if ( isset( $overrides['unique_filename_callback'] ) ) {
+               $unique_filename_callback = $overrides['unique_filename_callback'];
+       }
 
 
-       // $_POST['action'] must be set and its value must equal $overrides['action'] or this:
-       $action = 'wp_handle_upload';
-
-       // Courtesy of php.net, the strings that describe the error indicated in $_FILES[{form field}]['error'].
-       $upload_error_strings = array( false,
-               __( "The uploaded file exceeds the upload_max_filesize directive in php.ini." ),
-               __( "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form." ),
-               __( "The uploaded file was only partially uploaded." ),
-               __( "No file was uploaded." ),
-               '',
-               __( "Missing a temporary folder." ),
-               __( "Failed to write file to disk." ),
-               __( "File upload stopped by extension." ));
+       /*
+        * This may not have orignially been intended to be overrideable,
+        * but historically has been.
+        */
+       if ( isset( $overrides['upload_error_strings'] ) ) {
+               $upload_error_strings = $overrides['upload_error_strings'];
+       } else {
+               // Courtesy of php.net, the strings that describe the error indicated in $_FILES[{form field}]['error'].
+               $upload_error_strings = array(
+                       false,
+                       __( 'The uploaded file exceeds the upload_max_filesize directive in php.ini.' ),
+                       __( 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.' ),
+                       __( 'The uploaded file was only partially uploaded.' ),
+                       __( 'No file was uploaded.' ),
+                       '',
+                       __( 'Missing a temporary folder.' ),
+                       __( 'Failed to write file to disk.' ),
+                       __( 'File upload stopped by extension.' )
+               );
+       }
 
        // All tests are on by default. Most can be turned off by $overrides[{test_name}] = false;
 
        // All tests are on by default. Most can be turned off by $overrides[{test_name}] = false;
-       $test_form = true;
-       $test_size = true;
-       $test_upload = true;
+       $test_form = isset( $overrides['test_form'] ) ? $overrides['test_form'] : true;
+       $test_size = isset( $overrides['test_size'] ) ? $overrides['test_size'] : true;
 
 
-       // If you override this, you must provide $ext and $type!!!!
-       $test_type = true;
-       $mimes = false;
+       // If you override this, you must provide $ext and $type!!
+       $test_type = isset( $overrides['test_type'] ) ? $overrides['test_type'] : true;
+       $mimes = isset( $overrides['mimes'] ) ? $overrides['mimes'] : false;
 
 
-       // Install user overrides. Did we mention that this voids your warranty?
-       if ( is_array( $overrides ) )
-               extract( $overrides, EXTR_OVERWRITE );
+       $test_upload = isset( $overrides['test_upload'] ) ? $overrides['test_upload'] : true;
 
        // A correct form post will pass this test.
 
        // A correct form post will pass this test.
-       if ( $test_form && (!isset( $_POST['action'] ) || ($_POST['action'] != $action ) ) )
-               return call_user_func($upload_error_handler, $file, __( 'Invalid form submission.' ));
-
+       if ( $test_form && ( ! isset( $_POST['action'] ) || ( $_POST['action'] != $action ) ) ) {
+               return call_user_func( $upload_error_handler, $file, __( 'Invalid form submission.' ) );
+       }
        // A successful upload will pass this test. It makes no sense to override this one.
        if ( isset( $file['error'] ) && $file['error'] > 0 ) {
                return call_user_func( $upload_error_handler, $file, $upload_error_strings[ $file['error'] ] );
        }
 
        // A successful upload will pass this test. It makes no sense to override this one.
        if ( isset( $file['error'] ) && $file['error'] > 0 ) {
                return call_user_func( $upload_error_handler, $file, $upload_error_strings[ $file['error'] ] );
        }
 
+       $test_file_size = 'wp_handle_upload' === $action ? $file['size'] : filesize( $file['tmp_name'] );
        // A non-empty file will pass this test.
        // A non-empty file will pass this test.
-       if ( $test_size && !($file['size'] > 0 ) ) {
-               if ( is_multisite() )
+       if ( $test_size && ! ( $test_file_size > 0 ) ) {
+               if ( is_multisite() ) {
                        $error_msg = __( 'File is empty. Please upload something more substantial.' );
                        $error_msg = __( 'File is empty. Please upload something more substantial.' );
-               else
+               } else {
                        $error_msg = __( 'File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.' );
                        $error_msg = __( 'File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.' );
-               return call_user_func($upload_error_handler, $file, $error_msg);
+               }
+               return call_user_func( $upload_error_handler, $file, $error_msg );
        }
 
        // A properly uploaded file will pass this test. There should be no reason to override this one.
        }
 
        // A properly uploaded file will pass this test. There should be no reason to override this one.
-       if ( $test_upload && ! @ is_uploaded_file( $file['tmp_name'] ) )
-               return call_user_func($upload_error_handler, $file, __( 'Specified file failed upload test.' ));
+       $test_uploaded_file = 'wp_handle_upload' === $action ? @ is_uploaded_file( $file['tmp_name'] ) : @ is_file( $file['tmp_name'] );
+       if ( $test_upload && ! $test_uploaded_file ) {
+               return call_user_func( $upload_error_handler, $file, __( 'Specified file failed upload test.' ) );
+       }
 
        // A correct MIME type will pass this test. Override $mimes or use the upload_mimes filter.
        if ( $test_type ) {
                $wp_filetype = wp_check_filetype_and_ext( $file['tmp_name'], $file['name'], $mimes );
 
        // A correct MIME type will pass this test. Override $mimes or use the upload_mimes filter.
        if ( $test_type ) {
                $wp_filetype = wp_check_filetype_and_ext( $file['tmp_name'], $file['name'], $mimes );
-
-               extract( $wp_filetype );
+               $ext = empty( $wp_filetype['ext'] ) ? '' : $wp_filetype['ext'];
+               $type = empty( $wp_filetype['type'] ) ? '' : $wp_filetype['type'];
+               $proper_filename = empty( $wp_filetype['proper_filename'] ) ? '' : $wp_filetype['proper_filename'];
 
                // Check to see if wp_check_filetype_and_ext() determined the filename was incorrect
 
                // Check to see if wp_check_filetype_and_ext() determined the filename was incorrect
-               if ( $proper_filename )
+               if ( $proper_filename ) {
                        $file['name'] = $proper_filename;
                        $file['name'] = $proper_filename;
-
-               if ( ( !$type || !$ext ) && !current_user_can( 'unfiltered_upload' ) )
-                       return call_user_func($upload_error_handler, $file, __( 'Sorry, this file type is not permitted for security reasons.' ));
-
-               if ( !$ext )
-                       $ext = ltrim(strrchr($file['name'], '.'), '.');
-
-               if ( !$type )
+               }
+               if ( ( ! $type || !$ext ) && ! current_user_can( 'unfiltered_upload' ) ) {
+                       return call_user_func( $upload_error_handler, $file, __( 'Sorry, this file type is not permitted for security reasons.' ) );
+               }
+               if ( ! $type ) {
                        $type = $file['type'];
                        $type = $file['type'];
+               }
        } else {
                $type = '';
        }
 
        } else {
                $type = '';
        }
 
-       // A writable uploads dir will pass this test. Again, there's no point overriding this one.
-       if ( ! ( ( $uploads = wp_upload_dir($time) ) && false === $uploads['error'] ) )
-               return call_user_func($upload_error_handler, $file, $uploads['error'] );
+       /*
+        * A writable uploads dir will pass this test. Again, there's no point
+        * overriding this one.
+        */
+       if ( ! ( ( $uploads = wp_upload_dir( $time ) ) && false === $uploads['error'] ) ) {
+               return call_user_func( $upload_error_handler, $file, $uploads['error'] );
+       }
 
        $filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback );
 
 
        $filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback );
 
-       // Move the file to the uploads dir
+       // Move the file to the uploads dir.
        $new_file = $uploads['path'] . "/$filename";
        $new_file = $uploads['path'] . "/$filename";
-       if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) ) {
-               if ( 0 === strpos( $uploads['basedir'], ABSPATH ) )
+       if ( 'wp_handle_upload' === $action ) {
+               $move_new_file = @ move_uploaded_file( $file['tmp_name'], $new_file );
+       } else {
+               $move_new_file = @ rename( $file['tmp_name'], $new_file );
+       }
+
+       if ( false === $move_new_file ) {
+               if ( 0 === strpos( $uploads['basedir'], ABSPATH ) ) {
                        $error_path = str_replace( ABSPATH, '', $uploads['basedir'] ) . $uploads['subdir'];
                        $error_path = str_replace( ABSPATH, '', $uploads['basedir'] ) . $uploads['subdir'];
-               else
+               } else {
                        $error_path = basename( $uploads['basedir'] ) . $uploads['subdir'];
                        $error_path = basename( $uploads['basedir'] ) . $uploads['subdir'];
-
+               }
                return $upload_error_handler( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $error_path ) );
        }
 
                return $upload_error_handler( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $error_path ) );
        }
 
-       // Set correct file permissions
+       // Set correct file permissions.
        $stat = stat( dirname( $new_file ));
        $perms = $stat['mode'] & 0000666;
        @ chmod( $new_file, $perms );
 
        $stat = stat( dirname( $new_file ));
        $perms = $stat['mode'] & 0000666;
        @ chmod( $new_file, $perms );
 
-       // Compute the URL
+       // Compute the URL.
        $url = $uploads['url'] . "/$filename";
 
        $url = $uploads['url'] . "/$filename";
 
-       if ( is_multisite() )
+       if ( is_multisite() ) {
                delete_transient( 'dirsize_cache' );
                delete_transient( 'dirsize_cache' );
+       }
 
        /**
         * Filter the data array for the uploaded file.
 
        /**
         * Filter the data array for the uploaded file.
@@ -343,138 +369,69 @@ function wp_handle_upload( &$file, $overrides = false, $time = null ) {
         *     @type string $url  URL of the uploaded file.
         *     @type string $type File type.
         * }
         *     @type string $url  URL of the uploaded file.
         *     @type string $type File type.
         * }
-        * @param string $context The type of upload action. Accepts 'upload' or 'sideload'.
+        * @param string $context The type of upload action. Values include 'upload' or 'sideload'.
         */
         */
-       return apply_filters( 'wp_handle_upload', array( 'file' => $new_file, 'url' => $url, 'type' => $type ), 'upload' );
-}
+       return apply_filters( 'wp_handle_upload', array(
+               'file' => $new_file,
+               'url'  => $url,
+               'type' => $type
+       ), 'wp_handle_sideload' === $action ? 'sideload' : 'upload' ); }
 
 /**
 
 /**
- * Handle sideloads, which is the process of retrieving a media item from another server instead of
- * a traditional media upload. This process involves sanitizing the filename, checking extensions
- * for mime type, and moving the file to the appropriate directory within the uploads directory.
+ * Wrapper for _wp_handle_upload(), passes 'wp_handle_upload' action.
  *
  *
- * @since 2.6.0
+ * @since 2.0.0
  *
  *
- * @uses wp_handle_upload_error
- * @uses wp_check_filetype_and_ext
- * @uses current_user_can
- * @uses wp_upload_dir
- * @uses wp_unique_filename
- * @param array $file an array similar to that of a PHP $_FILES POST array
- * @param array $overrides Optional. An associative array of names=>values to override default variables with extract( $overrides, EXTR_OVERWRITE ).
- * @param string $time Optional. Time formatted in 'yyyy/mm'.
- * @return array On success, returns an associative array of file attributes. On failure, returns $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ).
+ * @see _wp_handle_upload()
+ *
+ * @param array      $file      Reference to a single element of $_FILES. Call the function once for
+ *                              each uploaded file.
+ * @param array|bool $overrides Optional. An associative array of names=>values to override default
+ *                              variables. Default false.
+ * @param string     $time      Optional. Time formatted in 'yyyy/mm'. Default null.
+ * @return array On success, returns an associative array of file attributes. On failure, returns
+ *               $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ).
  */
  */
-function wp_handle_sideload( &$file, $overrides = false, $time = null ) {
-       // The default error handler.
-       if (! function_exists( 'wp_handle_upload_error' ) ) {
-               function wp_handle_upload_error( &$file, $message ) {
-                       return array( 'error'=>$message );
-               }
+function wp_handle_upload( &$file, $overrides = false, $time = null ) {
+       /*
+        *  $_POST['action'] must be set and its value must equal $overrides['action']
+        *  or this:
+        */
+       $action = 'wp_handle_upload';
+       if ( isset( $overrides['action'] ) ) {
+               $action = $overrides['action'];
        }
 
        }
 
-       // You may define your own function and pass the name in $overrides['upload_error_handler']
-       $upload_error_handler = 'wp_handle_upload_error';
-
-       // You may define your own function and pass the name in $overrides['unique_filename_callback']
-       $unique_filename_callback = null;
+       return _wp_handle_upload( $file, $overrides, $time, $action );
+}
 
 
-       // $_POST['action'] must be set and its value must equal $overrides['action'] or this:
+/**
+ * Wrapper for _wp_handle_upload(), passes 'wp_handle_sideload' action
+ *
+ * @since 2.6.0
+ *
+ * @see _wp_handle_upload()
+ *
+ * @param array      $file      An array similar to that of a PHP $_FILES POST array
+ * @param array|bool $overrides Optional. An associative array of names=>values to override default
+ *                              variables. Default false.
+ * @param string     $time      Optional. Time formatted in 'yyyy/mm'. Default null.
+ * @return array On success, returns an associative array of file attributes. On failure, returns
+ *               $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ).
+ */
+function wp_handle_sideload( &$file, $overrides = false, $time = null ) {
+       /*
+        *  $_POST['action'] must be set and its value must equal $overrides['action']
+        *  or this:
+        */
        $action = 'wp_handle_sideload';
        $action = 'wp_handle_sideload';
-
-       // Courtesy of php.net, the strings that describe the error indicated in $_FILES[{form field}]['error'].
-       $upload_error_strings = array( false,
-               __( "The uploaded file exceeds the <code>upload_max_filesize</code> directive in <code>php.ini</code>." ),
-               __( "The uploaded file exceeds the <em>MAX_FILE_SIZE</em> directive that was specified in the HTML form." ),
-               __( "The uploaded file was only partially uploaded." ),
-               __( "No file was uploaded." ),
-               '',
-               __( "Missing a temporary folder." ),
-               __( "Failed to write file to disk." ),
-               __( "File upload stopped by extension." ));
-
-       // All tests are on by default. Most can be turned off by $overrides[{test_name}] = false;
-       $test_form = true;
-       $test_size = true;
-
-       // If you override this, you must provide $ext and $type!!!!
-       $test_type = true;
-       $mimes = false;
-
-       // Install user overrides. Did we mention that this voids your warranty?
-       if ( is_array( $overrides ) )
-               extract( $overrides, EXTR_OVERWRITE );
-
-       // A correct form post will pass this test.
-       if ( $test_form && (!isset( $_POST['action'] ) || ($_POST['action'] != $action ) ) )
-               return $upload_error_handler( $file, __( 'Invalid form submission.' ));
-
-       // A successful upload will pass this test. It makes no sense to override this one.
-       if ( ! empty( $file['error'] ) )
-               return $upload_error_handler( $file, $upload_error_strings[$file['error']] );
-
-       // A non-empty file will pass this test.
-       if ( $test_size && !(filesize($file['tmp_name']) > 0 ) )
-               return $upload_error_handler( $file, __( 'File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini.' ));
-
-       // A properly uploaded file will pass this test. There should be no reason to override this one.
-       if (! @ is_file( $file['tmp_name'] ) )
-               return $upload_error_handler( $file, __( 'Specified file does not exist.' ));
-
-       // A correct MIME type will pass this test. Override $mimes or use the upload_mimes filter.
-       if ( $test_type ) {
-               $wp_filetype = wp_check_filetype_and_ext( $file['tmp_name'], $file['name'], $mimes );
-
-               extract( $wp_filetype );
-
-               // Check to see if wp_check_filetype_and_ext() determined the filename was incorrect
-               if ( $proper_filename )
-                       $file['name'] = $proper_filename;
-
-               if ( ( !$type || !$ext ) && !current_user_can( 'unfiltered_upload' ) )
-                       return $upload_error_handler( $file, __( 'Sorry, this file type is not permitted for security reasons.' ));
-
-               if ( !$ext )
-                       $ext = ltrim(strrchr($file['name'], '.'), '.');
-
-               if ( !$type )
-                       $type = $file['type'];
-       }
-
-       // A writable uploads dir will pass this test. Again, there's no point overriding this one.
-       if ( ! ( ( $uploads = wp_upload_dir( $time ) ) && false === $uploads['error'] ) )
-               return $upload_error_handler( $file, $uploads['error'] );
-
-       $filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback );
-
-       // Strip the query strings.
-       $filename = str_replace('?','-', $filename);
-       $filename = str_replace('&','-', $filename);
-
-       // Move the file to the uploads dir
-       $new_file = $uploads['path'] . "/$filename";
-       if ( false === @ rename( $file['tmp_name'], $new_file ) ) {
-               if ( 0 === strpos( $uploads['basedir'], ABSPATH ) )
-                       $error_path = str_replace( ABSPATH, '', $uploads['basedir'] ) . $uploads['subdir'];
-               else
-                       $error_path = basename( $uploads['basedir'] ) . $uploads['subdir'];
-               return $upload_error_handler( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $error_path ) );
+       if ( isset( $overrides['action'] ) ) {
+               $action = $overrides['action'];
        }
        }
-
-       // Set correct file permissions
-       $stat = stat( dirname( $new_file ));
-       $perms = $stat['mode'] & 0000666;
-       @ chmod( $new_file, $perms );
-
-       // Compute the URL
-       $url = $uploads['url'] . "/$filename";
-
-       /** This filter is documented in wp-admin/includes/file.php */
-       $return = apply_filters( 'wp_handle_upload', array( 'file' => $new_file, 'url' => $url, 'type' => $type ), 'sideload' );
-
-       return $return;
+       return _wp_handle_upload( $file, $overrides, $time, $action );
 }
 
 }
 
+
 /**
  * Downloads a url to a local temporary file using the WordPress HTTP Class.
  * Please note, That the calling function must unlink() the file.
 /**
  * Downloads a url to a local temporary file using the WordPress HTTP Class.
  * Please note, That the calling function must unlink() the file.
@@ -1027,7 +984,7 @@ function request_filesystem_credentials($form_post, $type = '', $error = false,
        $credentials['public_key'] = defined('FTP_PUBKEY') ? FTP_PUBKEY : (!empty($_POST['public_key']) ? wp_unslash( $_POST['public_key'] ) : '');
        $credentials['private_key'] = defined('FTP_PRIKEY') ? FTP_PRIKEY : (!empty($_POST['private_key']) ? wp_unslash( $_POST['private_key'] ) : '');
 
        $credentials['public_key'] = defined('FTP_PUBKEY') ? FTP_PUBKEY : (!empty($_POST['public_key']) ? wp_unslash( $_POST['public_key'] ) : '');
        $credentials['private_key'] = defined('FTP_PRIKEY') ? FTP_PRIKEY : (!empty($_POST['private_key']) ? wp_unslash( $_POST['private_key'] ) : '');
 
-       //sanitize the hostname, Some people might pass in odd-data:
+       // Sanitize the hostname, Some people might pass in odd-data:
        $credentials['hostname'] = preg_replace('|\w+://|', '', $credentials['hostname']); //Strip any schemes off
 
        if ( strpos($credentials['hostname'], ':') ) {
        $credentials['hostname'] = preg_replace('|\w+://|', '', $credentials['hostname']); //Strip any schemes off
 
        if ( strpos($credentials['hostname'], ':') ) {
@@ -1060,12 +1017,13 @@ function request_filesystem_credentials($form_post, $type = '', $error = false,
                update_option('ftp_credentials', $stored_credentials);
                return $credentials;
        }
                update_option('ftp_credentials', $stored_credentials);
                return $credentials;
        }
-       $hostname = '';
-       $username = '';
-       $password = '';
-       $connection_type = '';
-       if ( !empty($credentials) )
-               extract($credentials, EXTR_OVERWRITE);
+       $hostname = isset( $credentials['hostname'] ) ? $credentials['hostname'] : '';
+       $username = isset( $credentials['username'] ) ? $credentials['username'] : '';
+       $public_key = isset( $credentials['public_key'] ) ? $credentials['public_key'] : '';
+       $private_key = isset( $credentials['private_key'] ) ? $credentials['private_key'] : '';
+       $port = isset( $credentials['port'] ) ? $credentials['port'] : '';
+       $connection_type = isset( $credentials['connection_type'] ) ? $credentials['connection_type'] : '';
+
        if ( $error ) {
                $error_string = __('<strong>ERROR:</strong> There was an error connecting to the server, Please verify the settings are correct.');
                if ( is_wp_error($error) )
        if ( $error ) {
                $error_string = __('<strong>ERROR:</strong> There was an error connecting to the server, Please verify the settings are correct.');
                if ( is_wp_error($error) )
@@ -1155,7 +1113,8 @@ jQuery(function($){
 <label for="public_key"><?php _e('Public Key:') ?></label ><br />
 <label for="private_key"><?php _e('Private Key:') ?></label>
 </div></th>
 <label for="public_key"><?php _e('Public Key:') ?></label ><br />
 <label for="private_key"><?php _e('Private Key:') ?></label>
 </div></th>
-<td><br /><input name="public_key" type="text" id="public_key" value="<?php echo esc_attr($public_key) ?>"<?php disabled( defined('FTP_PUBKEY') ); ?> size="40" /><br /><input name="private_key" type="text" id="private_key" value="<?php echo esc_attr($private_key) ?>"<?php disabled( defined('FTP_PRIKEY') ); ?> size="40" />
+<td><br /><input name="public_key" type="text" id="public_key" value="<?php echo esc_attr($public_key) ?>"<?php disabled( defined('FTP_PUBKEY') ); ?> size="40" />
+       <br /><input name="private_key" type="text" id="private_key" value="<?php echo esc_attr($private_key) ?>"<?php disabled( defined('FTP_PRIKEY') ); ?> size="40" />
 <div><?php _e('Enter the location on the server where the keys are located. If a passphrase is needed, enter that in the password field above.') ?></div></td>
 </tr>
 <?php endif; ?>
 <div><?php _e('Enter the location on the server where the keys are located. If a passphrase is needed, enter that in the password field above.') ?></div></td>
 </tr>
 <?php endif; ?>
index 9e0f38448ab6a3a3116bb3d2ac9ab7de1be391f6..99a188e638befb65c50bf056d732e1560897849a 100644 (file)
@@ -144,12 +144,12 @@ function wp_image_editor($post_id, $msg = false) {
        <?php } ?>
 
        </div>
        <?php } ?>
 
        </div>
-       
+
        <div class="imgedit-panel-content">
                <?php echo $note; ?>
                <div class="imgedit-menu">
                        <div onclick="imageEdit.crop(<?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-crop disabled" title="<?php esc_attr_e( 'Crop' ); ?>"></div><?php
        <div class="imgedit-panel-content">
                <?php echo $note; ?>
                <div class="imgedit-menu">
                        <div onclick="imageEdit.crop(<?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-crop disabled" title="<?php esc_attr_e( 'Crop' ); ?>"></div><?php
-       
+
                // On some setups GD library does not provide imagerotate() - Ticket #11536
                if ( wp_image_editor_supports( array( 'mime_type' => get_post_mime_type( $post_id ), 'methods' => array( 'rotate' ) ) ) ) { ?>
                        <div class="imgedit-rleft"  onclick="imageEdit.rotate( 90, <?php echo "$post_id, '$nonce'"; ?>, this)" title="<?php esc_attr_e( 'Rotate counter-clockwise' ); ?>"></div>
                // On some setups GD library does not provide imagerotate() - Ticket #11536
                if ( wp_image_editor_supports( array( 'mime_type' => get_post_mime_type( $post_id ), 'methods' => array( 'rotate' ) ) ) ) { ?>
                        <div class="imgedit-rleft"  onclick="imageEdit.rotate( 90, <?php echo "$post_id, '$nonce'"; ?>, this)" title="<?php esc_attr_e( 'Rotate counter-clockwise' ); ?>"></div>
@@ -160,33 +160,32 @@ function wp_image_editor($post_id, $msg = false) {
                    <div class="imgedit-rleft disabled"  title="<?php echo $note_no_rotate; ?>"></div>
                    <div class="imgedit-rright disabled" title="<?php echo $note_no_rotate; ?>"></div>
        <?php } ?>
                    <div class="imgedit-rleft disabled"  title="<?php echo $note_no_rotate; ?>"></div>
                    <div class="imgedit-rright disabled" title="<?php echo $note_no_rotate; ?>"></div>
        <?php } ?>
-       
+
                        <div onclick="imageEdit.flip(1, <?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-flipv" title="<?php esc_attr_e( 'Flip vertically' ); ?>"></div>
                        <div onclick="imageEdit.flip(2, <?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-fliph" title="<?php esc_attr_e( 'Flip horizontally' ); ?>"></div>
                        <div onclick="imageEdit.flip(1, <?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-flipv" title="<?php esc_attr_e( 'Flip vertically' ); ?>"></div>
                        <div onclick="imageEdit.flip(2, <?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-fliph" title="<?php esc_attr_e( 'Flip horizontally' ); ?>"></div>
-       
+
                        <div id="image-undo-<?php echo $post_id; ?>" onclick="imageEdit.undo(<?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-undo disabled" title="<?php esc_attr_e( 'Undo' ); ?>"></div>
                        <div id="image-redo-<?php echo $post_id; ?>" onclick="imageEdit.redo(<?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-redo disabled" title="<?php esc_attr_e( 'Redo' ); ?>"></div>
                        <br class="clear" />
                </div>
                        <div id="image-undo-<?php echo $post_id; ?>" onclick="imageEdit.undo(<?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-undo disabled" title="<?php esc_attr_e( 'Undo' ); ?>"></div>
                        <div id="image-redo-<?php echo $post_id; ?>" onclick="imageEdit.redo(<?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-redo disabled" title="<?php esc_attr_e( 'Redo' ); ?>"></div>
                        <br class="clear" />
                </div>
-       
+
                <input type="hidden" id="imgedit-sizer-<?php echo $post_id; ?>" value="<?php echo $sizer; ?>" />
                <input type="hidden" id="imgedit-sizer-<?php echo $post_id; ?>" value="<?php echo $sizer; ?>" />
-               <input type="hidden" id="imgedit-minthumb-<?php echo $post_id; ?>" value="<?php echo ( get_option('thumbnail_size_w') . ':' . get_option('thumbnail_size_h') ); ?>" />
                <input type="hidden" id="imgedit-history-<?php echo $post_id; ?>" value="" />
                <input type="hidden" id="imgedit-undone-<?php echo $post_id; ?>" value="0" />
                <input type="hidden" id="imgedit-selection-<?php echo $post_id; ?>" value="" />
                <input type="hidden" id="imgedit-x-<?php echo $post_id; ?>" value="<?php echo isset( $meta['width'] ) ? $meta['width'] : 0; ?>" />
                <input type="hidden" id="imgedit-y-<?php echo $post_id; ?>" value="<?php echo isset( $meta['height'] ) ? $meta['height'] : 0; ?>" />
                <input type="hidden" id="imgedit-history-<?php echo $post_id; ?>" value="" />
                <input type="hidden" id="imgedit-undone-<?php echo $post_id; ?>" value="0" />
                <input type="hidden" id="imgedit-selection-<?php echo $post_id; ?>" value="" />
                <input type="hidden" id="imgedit-x-<?php echo $post_id; ?>" value="<?php echo isset( $meta['width'] ) ? $meta['width'] : 0; ?>" />
                <input type="hidden" id="imgedit-y-<?php echo $post_id; ?>" value="<?php echo isset( $meta['height'] ) ? $meta['height'] : 0; ?>" />
-       
+
                <div id="imgedit-crop-<?php echo $post_id; ?>" class="imgedit-crop-wrap">
                <img id="image-preview-<?php echo $post_id; ?>" onload="imageEdit.imgLoaded('<?php echo $post_id; ?>')" src="<?php echo admin_url( 'admin-ajax.php', 'relative' ); ?>?action=imgedit-preview&amp;_ajax_nonce=<?php echo $nonce; ?>&amp;postid=<?php echo $post_id; ?>&amp;rand=<?php echo rand(1, 99999); ?>" />
                </div>
                <div id="imgedit-crop-<?php echo $post_id; ?>" class="imgedit-crop-wrap">
                <img id="image-preview-<?php echo $post_id; ?>" onload="imageEdit.imgLoaded('<?php echo $post_id; ?>')" src="<?php echo admin_url( 'admin-ajax.php', 'relative' ); ?>?action=imgedit-preview&amp;_ajax_nonce=<?php echo $nonce; ?>&amp;postid=<?php echo $post_id; ?>&amp;rand=<?php echo rand(1, 99999); ?>" />
                </div>
-       
+
                <div class="imgedit-submit">
                        <input type="button" onclick="imageEdit.close(<?php echo $post_id; ?>, 1)" class="button" value="<?php esc_attr_e( 'Cancel' ); ?>" />
                        <input type="button" onclick="imageEdit.save(<?php echo "$post_id, '$nonce'"; ?>)" disabled="disabled" class="button button-primary imgedit-submit-btn" value="<?php esc_attr_e( 'Save' ); ?>" />
                </div>
        </div>
                <div class="imgedit-submit">
                        <input type="button" onclick="imageEdit.close(<?php echo $post_id; ?>, 1)" class="button" value="<?php esc_attr_e( 'Cancel' ); ?>" />
                        <input type="button" onclick="imageEdit.save(<?php echo "$post_id, '$nonce'"; ?>)" disabled="disabled" class="button button-primary imgedit-submit-btn" value="<?php esc_attr_e( 'Save' ); ?>" />
                </div>
        </div>
-       
+
        </div>
        <div class="imgedit-wait" id="imgedit-wait-<?php echo $post_id; ?>"></div>
        <script type="text/javascript">jQuery( function() { imageEdit.init(<?php echo $post_id; ?>); });</script>
        </div>
        <div class="imgedit-wait" id="imgedit-wait-<?php echo $post_id; ?>"></div>
        <script type="text/javascript">jQuery( function() { imageEdit.init(<?php echo $post_id; ?>); });</script>
@@ -411,7 +410,7 @@ function image_edit_apply_changes( $image, $changes ) {
        if ( !is_array($changes) )
                return $image;
 
        if ( !is_array($changes) )
                return $image;
 
-       // expand change operations
+       // Expand change operations.
        foreach ( $changes as $key => $obj ) {
                if ( isset($obj->r) ) {
                        $obj->type = 'rotate';
        foreach ( $changes as $key => $obj ) {
                if ( isset($obj->r) ) {
                        $obj->type = 'rotate';
@@ -429,7 +428,7 @@ function image_edit_apply_changes( $image, $changes ) {
                $changes[$key] = $obj;
        }
 
                $changes[$key] = $obj;
        }
 
-       // combine operations
+       // Combine operations.
        if ( count($changes) > 1 ) {
                $filtered = array($changes[0]);
                for ( $i = 0, $j = 1; $j < count($changes); $j++ ) {
        if ( count($changes) > 1 ) {
                $filtered = array($changes[0]);
                for ( $i = 0, $j = 1; $j < count($changes); $j++ ) {
@@ -453,7 +452,7 @@ function image_edit_apply_changes( $image, $changes ) {
                unset($filtered);
        }
 
                unset($filtered);
        }
 
-       // image resource before applying the changes
+       // Image resource before applying the changes.
        if ( $image instanceof WP_Image_Editor ) {
 
                /**
        if ( $image instanceof WP_Image_Editor ) {
 
                /**
@@ -540,7 +539,7 @@ function stream_preview_image( $post_id ) {
        if ( $changes )
                $img = image_edit_apply_changes( $img, $changes );
 
        if ( $changes )
                $img = image_edit_apply_changes( $img, $changes );
 
-       // scale the image
+       // Scale the image.
        $size = $img->get_size();
        $w = $size['width'];
        $h = $size['height'];
        $size = $img->get_size();
        $w = $size['width'];
        $h = $size['height'];
@@ -576,7 +575,8 @@ function wp_restore_image($post_id) {
 
                if ( $parts['basename'] != $data['file'] ) {
                        if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
 
                if ( $parts['basename'] != $data['file'] ) {
                        if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
-                               // delete only if it's edited image
+
+                               // Delete only if it's edited image.
                                if ( preg_match('/-e[0-9]{13}\./', $parts['basename']) ) {
 
                                        /** This filter is documented in wp-admin/custom-header.php */
                                if ( preg_match('/-e[0-9]{13}\./', $parts['basename']) ) {
 
                                        /** This filter is documented in wp-admin/custom-header.php */
@@ -601,7 +601,8 @@ function wp_restore_image($post_id) {
                        $data = $backup_sizes["$default_size-orig"];
                        if ( isset($meta['sizes'][$default_size]) && $meta['sizes'][$default_size]['file'] != $data['file'] ) {
                                if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
                        $data = $backup_sizes["$default_size-orig"];
                        if ( isset($meta['sizes'][$default_size]) && $meta['sizes'][$default_size]['file'] != $data['file'] ) {
                                if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
-                                       // delete only if it's edited image
+
+                                       // Delete only if it's edited image
                                        if ( preg_match('/-e[0-9]{13}-/', $meta['sizes'][$default_size]['file']) ) {
                                                /** This filter is documented in wp-admin/custom-header.php */
                                                $delpath = apply_filters( 'wp_delete_file', path_join($parts['dirname'], $meta['sizes'][$default_size]['file']) );
                                        if ( preg_match('/-e[0-9]{13}-/', $meta['sizes'][$default_size]['file']) ) {
                                                /** This filter is documented in wp-admin/custom-header.php */
                                                $delpath = apply_filters( 'wp_delete_file', path_join($parts['dirname'], $meta['sizes'][$default_size]['file']) );
@@ -661,10 +662,10 @@ function wp_save_image( $post_id ) {
                $sX = $size['width'];
                $sY = $size['height'];
 
                $sX = $size['width'];
                $sY = $size['height'];
 
-               // check if it has roughly the same w / h ratio
+               // Check if it has roughly the same w / h ratio.
                $diff = round($sX / $sY, 2) - round($fwidth / $fheight, 2);
                if ( -0.1 < $diff && $diff < 0.1 ) {
                $diff = round($sX / $sY, 2) - round($fwidth / $fheight, 2);
                if ( -0.1 < $diff && $diff < 0.1 ) {
-                       // scale the full size image
+                       // Scale the full size image.
                        if ( $img->resize( $fwidth, $fheight ) )
                                $scaled = true;
                }
                        if ( $img->resize( $fwidth, $fheight ) )
                                $scaled = true;
                }
@@ -693,7 +694,7 @@ function wp_save_image( $post_id ) {
        if ( !is_array($backup_sizes) )
                $backup_sizes = array();
 
        if ( !is_array($backup_sizes) )
                $backup_sizes = array();
 
-       // generate new filename
+       // Generate new filename.
        $path = get_attached_file($post_id);
        $path_parts = pathinfo( $path );
        $filename = $path_parts['filename'];
        $path = get_attached_file($post_id);
        $path_parts = pathinfo( $path );
        $filename = $path_parts['filename'];
@@ -719,7 +720,7 @@ function wp_save_image( $post_id ) {
                }
        }
 
                }
        }
 
-       // save the full-size file, also needed to create sub-sizes
+       // Save the full-size file, also needed to create sub-sizes.
        if ( !wp_save_image_file($new_path, $img, $post->post_mime_type, $post_id) ) {
                $return->error = esc_js( __('Unable to save the image.') );
                return $return;
        if ( !wp_save_image_file($new_path, $img, $post->post_mime_type, $post_id) ) {
                $return->error = esc_js( __('Unable to save the image.') );
                return $return;
@@ -804,10 +805,11 @@ function wp_save_image( $post_id ) {
                                $return->thumbnail = $thumb_url[0];
                        } else {
                                $file_url = wp_get_attachment_url($post_id);
                                $return->thumbnail = $thumb_url[0];
                        } else {
                                $file_url = wp_get_attachment_url($post_id);
-                               if ( $thumb = $meta['sizes']['thumbnail'] )
+                               if ( ! empty( $meta['sizes']['thumbnail'] ) && $thumb = $meta['sizes']['thumbnail'] ) {
                                        $return->thumbnail = path_join( dirname($file_url), $thumb['file'] );
                                        $return->thumbnail = path_join( dirname($file_url), $thumb['file'] );
-                               else
+                               } else {
                                        $return->thumbnail = "$file_url?w=128&h=128";
                                        $return->thumbnail = "$file_url?w=128&h=128";
+                               }
                        }
                }
        } else {
                        }
                }
        } else {
index 5799d28e6234c26ca42d38f10888404fe5185002..b78bac2a568439931ec36c19b0e0bfe154996c6b 100644 (file)
@@ -47,8 +47,10 @@ function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $s
        if ( ! $dst_file )
                $dst_file = str_replace( basename( $src_file ), 'cropped-' . basename( $src_file ), $src_file );
 
        if ( ! $dst_file )
                $dst_file = str_replace( basename( $src_file ), 'cropped-' . basename( $src_file ), $src_file );
 
-       // The directory containing the original file may no longer exist when
-       // using a replication plugin.
+       /*
+        * The directory containing the original file may no longer exist when
+        * using a replication plugin.
+        */
        wp_mkdir_p( dirname( $dst_file ) );
 
        $dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
        wp_mkdir_p( dirname( $dst_file ) );
 
        $dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
@@ -79,10 +81,10 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
                $metadata['width'] = $imagesize[0];
                $metadata['height'] = $imagesize[1];
 
                $metadata['width'] = $imagesize[0];
                $metadata['height'] = $imagesize[1];
 
-               // Make the file path relative to the upload dir
+               // Make the file path relative to the upload dir.
                $metadata['file'] = _wp_relative_upload_path($file);
 
                $metadata['file'] = _wp_relative_upload_path($file);
 
-               // make thumbnails and other intermediate sizes
+               // Make thumbnails and other intermediate sizes.
                global $_wp_additional_image_sizes;
 
                $sizes = array();
                global $_wp_additional_image_sizes;
 
                $sizes = array();
@@ -120,7 +122,7 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
                        $metadata['sizes'] = array();
                }
 
                        $metadata['sizes'] = array();
                }
 
-               // fetch additional metadata from exif/iptc
+               // Fetch additional metadata from EXIF/IPTC.
                $image_meta = wp_read_image_metadata( $file );
                if ( $image_meta )
                        $metadata['image_meta'] = $image_meta;
                $image_meta = wp_read_image_metadata( $file );
                if ( $image_meta )
                        $metadata['image_meta'] = $image_meta;
@@ -134,7 +136,7 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
        }
 
        if ( $support && ! empty( $metadata['image']['data'] ) ) {
        }
 
        if ( $support && ! empty( $metadata['image']['data'] ) ) {
-               // check for existing cover
+               // Check for existing cover.
                $hash = md5( $metadata['image']['data'] );
                $posts = get_posts( array(
                        'fields' => 'ids',
                $hash = md5( $metadata['image']['data'] );
                $posts = get_posts( array(
                        'fields' => 'ids',
@@ -187,7 +189,7 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
                }
        }
 
                }
        }
 
-       // remove the blob of binary data from the array
+       // Remove the blob of binary data from the array.
        if ( isset( $metadata['image']['data'] ) )
                unset( $metadata['image']['data'] );
 
        if ( isset( $metadata['image']['data'] ) )
                unset( $metadata['image']['data'] );
 
@@ -254,10 +256,12 @@ function wp_read_image_metadata( $file ) {
 
        list( , , $sourceImageType ) = getimagesize( $file );
 
 
        list( , , $sourceImageType ) = getimagesize( $file );
 
-       // exif contains a bunch of data we'll probably never need formatted in ways
-       // that are difficult to use. We'll normalize it and just extract the fields
-       // that are likely to be useful. Fractions and numbers are converted to
-       // floats, dates to unix timestamps, and everything else to strings.
+       /*
+        * EXIF contains a bunch of data we'll probably never need formatted in ways
+        * that are difficult to use. We'll normalize it and just extract the fields
+        * that are likely to be useful. Fractions and numbers are converted to
+        * floats, dates to unix timestamps, and everything else to strings.
+        */
        $meta = array(
                'aperture' => 0,
                'credit' => '',
        $meta = array(
                'aperture' => 0,
                'credit' => '',
@@ -269,31 +273,43 @@ function wp_read_image_metadata( $file ) {
                'iso' => 0,
                'shutter_speed' => 0,
                'title' => '',
                'iso' => 0,
                'shutter_speed' => 0,
                'title' => '',
+               'orientation' => 0,
        );
 
        );
 
-       // read iptc first, since it might contain data not available in exif such
-       // as caption, description etc
+       /*
+        * Read IPTC first, since it might contain data not available in exif such
+        * as caption, description etc.
+        */
        if ( is_callable( 'iptcparse' ) ) {
                getimagesize( $file, $info );
 
                if ( ! empty( $info['APP13'] ) ) {
                        $iptc = iptcparse( $info['APP13'] );
 
        if ( is_callable( 'iptcparse' ) ) {
                getimagesize( $file, $info );
 
                if ( ! empty( $info['APP13'] ) ) {
                        $iptc = iptcparse( $info['APP13'] );
 
-                       // headline, "A brief synopsis of the caption."
-                       if ( ! empty( $iptc['2#105'][0] ) )
+                       // Headline, "A brief synopsis of the caption."
+                       if ( ! empty( $iptc['2#105'][0] ) ) {
                                $meta['title'] = trim( $iptc['2#105'][0] );
                                $meta['title'] = trim( $iptc['2#105'][0] );
-                       // title, "Many use the Title field to store the filename of the image, though the field may be used in many ways."
-                       elseif ( ! empty( $iptc['2#005'][0] ) )
+                       /*
+                        * Title, "Many use the Title field to store the filename of the image,
+                        * though the field may be used in many ways."
+                        */
+                       } elseif ( ! empty( $iptc['2#005'][0] ) ) {
                                $meta['title'] = trim( $iptc['2#005'][0] );
                                $meta['title'] = trim( $iptc['2#005'][0] );
+                       }
 
                        if ( ! empty( $iptc['2#120'][0] ) ) { // description / legacy caption
                                $caption = trim( $iptc['2#120'][0] );
                                if ( empty( $meta['title'] ) ) {
 
                        if ( ! empty( $iptc['2#120'][0] ) ) { // description / legacy caption
                                $caption = trim( $iptc['2#120'][0] );
                                if ( empty( $meta['title'] ) ) {
+                                       mbstring_binary_safe_encoding();
+                                       $caption_length = strlen( $caption );
+                                       reset_mbstring_encoding();
+
                                        // Assume the title is stored in 2:120 if it's short.
                                        // Assume the title is stored in 2:120 if it's short.
-                                       if ( strlen( $caption ) < 80 )
+                                       if ( $caption_length < 80 ) {
                                                $meta['title'] = $caption;
                                                $meta['title'] = $caption;
-                                       else
+                                       } else {
                                                $meta['caption'] = $caption;
                                                $meta['caption'] = $caption;
+                                       }
                                } elseif ( $caption != $meta['title'] ) {
                                        $meta['caption'] = $caption;
                                }
                                } elseif ( $caption != $meta['title'] ) {
                                        $meta['caption'] = $caption;
                                }
@@ -322,48 +338,67 @@ function wp_read_image_metadata( $file ) {
        if ( is_callable( 'exif_read_data' ) && in_array( $sourceImageType, apply_filters( 'wp_read_image_metadata_types', array( IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM ) ) ) ) {
                $exif = @exif_read_data( $file );
 
        if ( is_callable( 'exif_read_data' ) && in_array( $sourceImageType, apply_filters( 'wp_read_image_metadata_types', array( IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM ) ) ) ) {
                $exif = @exif_read_data( $file );
 
-               if ( !empty( $exif['Title'] ) )
+               if ( empty( $meta['title'] ) && ! empty( $exif['Title'] ) ) {
                        $meta['title'] = trim( $exif['Title'] );
                        $meta['title'] = trim( $exif['Title'] );
+               }
 
                if ( ! empty( $exif['ImageDescription'] ) ) {
 
                if ( ! empty( $exif['ImageDescription'] ) ) {
-                       if ( empty( $meta['title'] ) && strlen( $exif['ImageDescription'] ) < 80 ) {
+                       mbstring_binary_safe_encoding();
+                       $description_length = strlen( $exif['ImageDescription'] );
+                       reset_mbstring_encoding();
+
+                       if ( empty( $meta['title'] ) && $description_length < 80 ) {
                                // Assume the title is stored in ImageDescription
                                $meta['title'] = trim( $exif['ImageDescription'] );
                                // Assume the title is stored in ImageDescription
                                $meta['title'] = trim( $exif['ImageDescription'] );
-                               if ( ! empty( $exif['COMPUTED']['UserComment'] ) && trim( $exif['COMPUTED']['UserComment'] ) != $meta['title'] )
+                               if ( empty( $meta['caption'] ) && ! empty( $exif['COMPUTED']['UserComment'] ) && trim( $exif['COMPUTED']['UserComment'] ) != $meta['title'] ) {
                                        $meta['caption'] = trim( $exif['COMPUTED']['UserComment'] );
                                        $meta['caption'] = trim( $exif['COMPUTED']['UserComment'] );
-                       } elseif ( trim( $exif['ImageDescription'] ) != $meta['title'] ) {
+                               }
+                       } elseif ( empty( $meta['caption'] ) && trim( $exif['ImageDescription'] ) != $meta['title'] ) {
                                $meta['caption'] = trim( $exif['ImageDescription'] );
                        }
                                $meta['caption'] = trim( $exif['ImageDescription'] );
                        }
-               } elseif ( ! empty( $exif['Comments'] ) && trim( $exif['Comments'] ) != $meta['title'] ) {
+               } elseif ( empty( $meta['caption'] ) && ! empty( $exif['Comments'] ) && trim( $exif['Comments'] ) != $meta['title'] ) {
                        $meta['caption'] = trim( $exif['Comments'] );
                }
 
                        $meta['caption'] = trim( $exif['Comments'] );
                }
 
-               if ( ! empty( $exif['Artist'] ) )
-                       $meta['credit'] = trim( $exif['Artist'] );
-               elseif ( ! empty($exif['Author'] ) )
-                       $meta['credit'] = trim( $exif['Author'] );
+               if ( empty( $meta['credit'] ) ) {
+                       if ( ! empty( $exif['Artist'] ) ) {
+                               $meta['credit'] = trim( $exif['Artist'] );
+                       } elseif ( ! empty($exif['Author'] ) ) {
+                               $meta['credit'] = trim( $exif['Author'] );
+                       }
+               }
 
 
-               if ( ! empty( $exif['Copyright'] ) )
+               if ( empty( $meta['copyright'] ) && ! empty( $exif['Copyright'] ) ) {
                        $meta['copyright'] = trim( $exif['Copyright'] );
                        $meta['copyright'] = trim( $exif['Copyright'] );
-               if ( ! empty($exif['FNumber'] ) )
+               }
+               if ( ! empty( $exif['FNumber'] ) ) {
                        $meta['aperture'] = round( wp_exif_frac2dec( $exif['FNumber'] ), 2 );
                        $meta['aperture'] = round( wp_exif_frac2dec( $exif['FNumber'] ), 2 );
-               if ( ! empty($exif['Model'] ) )
+               }
+               if ( ! empty( $exif['Model'] ) ) {
                        $meta['camera'] = trim( $exif['Model'] );
                        $meta['camera'] = trim( $exif['Model'] );
-               if ( ! empty($exif['DateTimeDigitized'] ) )
-                       $meta['created_timestamp'] = wp_exif_date2ts($exif['DateTimeDigitized'] );
-               if ( ! empty($exif['FocalLength'] ) )
+               }
+               if ( empty( $meta['created_timestamp'] ) && ! empty( $exif['DateTimeDigitized'] ) ) {
+                       $meta['created_timestamp'] = wp_exif_date2ts( $exif['DateTimeDigitized'] );
+               }
+               if ( ! empty( $exif['FocalLength'] ) ) {
                        $meta['focal_length'] = (string) wp_exif_frac2dec( $exif['FocalLength'] );
                        $meta['focal_length'] = (string) wp_exif_frac2dec( $exif['FocalLength'] );
-               if ( ! empty($exif['ISOSpeedRatings'] ) ) {
+               }
+               if ( ! empty( $exif['ISOSpeedRatings'] ) ) {
                        $meta['iso'] = is_array( $exif['ISOSpeedRatings'] ) ? reset( $exif['ISOSpeedRatings'] ) : $exif['ISOSpeedRatings'];
                        $meta['iso'] = trim( $meta['iso'] );
                }
                        $meta['iso'] = is_array( $exif['ISOSpeedRatings'] ) ? reset( $exif['ISOSpeedRatings'] ) : $exif['ISOSpeedRatings'];
                        $meta['iso'] = trim( $meta['iso'] );
                }
-               if ( ! empty($exif['ExposureTime'] ) )
+               if ( ! empty( $exif['ExposureTime'] ) ) {
                        $meta['shutter_speed'] = (string) wp_exif_frac2dec( $exif['ExposureTime'] );
                        $meta['shutter_speed'] = (string) wp_exif_frac2dec( $exif['ExposureTime'] );
+               }
+               if ( ! empty( $exif['Orientation'] ) ) {
+                       $meta['orientation'] = $exif['Orientation'];
+               }
        }
 
        foreach ( array( 'title', 'caption', 'credit', 'copyright', 'camera', 'iso' ) as $key ) {
        }
 
        foreach ( array( 'title', 'caption', 'credit', 'copyright', 'camera', 'iso' ) as $key ) {
-               if ( $meta[ $key ] && ! seems_utf8( $meta[ $key ] ) )
+               if ( $meta[ $key ] && ! seems_utf8( $meta[ $key ] ) ) {
                        $meta[ $key ] = utf8_encode( $meta[ $key ] );
                        $meta[ $key ] = utf8_encode( $meta[ $key ] );
+               }
        }
 
        /**
        }
 
        /**
@@ -401,13 +436,16 @@ function file_is_valid_image($path) {
  * @return bool True if suitable, false if not suitable.
  */
 function file_is_displayable_image($path) {
  * @return bool True if suitable, false if not suitable.
  */
 function file_is_displayable_image($path) {
-       $info = @getimagesize($path);
-       if ( empty($info) )
+       $displayable_image_types = array( IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_BMP );
+
+       $info = @getimagesize( $path );
+       if ( empty( $info ) ) {
                $result = false;
                $result = false;
-       elseif ( !in_array($info[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG)) )     // only gif, jpeg and png images can reliably be displayed
+       } elseif ( ! in_array( $info[2], $displayable_image_types ) ) {
                $result = false;
                $result = false;
-       else
+       } else {
                $result = true;
                $result = true;
+       }
 
        /**
         * Filter whether the current image is displayable in the browser.
 
        /**
         * Filter whether the current image is displayable in the browser.
@@ -544,8 +582,10 @@ function _copy_image_file( $attachment_id ) {
                $dst_file = str_replace( basename( $dst_file ), 'copy-' . basename( $dst_file ), $dst_file );
                $dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
 
                $dst_file = str_replace( basename( $dst_file ), 'copy-' . basename( $dst_file ), $dst_file );
                $dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
 
-               // The directory containing the original file may no longer exist when
-               // using a replication plugin.
+               /*
+                * The directory containing the original file may no longer
+                * exist when using a replication plugin.
+                */
                wp_mkdir_p( dirname( $dst_file ) );
 
                if ( ! @copy( $src_file, $dst_file ) )
                wp_mkdir_p( dirname( $dst_file ) );
 
                if ( ! @copy( $src_file, $dst_file ) )
index f01eb8734ddfec90488c8f2b54a1049601b63b31..ab8e8e3db0815738a2e0d7a2facc3f043dfb422c 100644 (file)
@@ -105,7 +105,10 @@ function wp_import_handle_upload() {
        // Save the data
        $id = wp_insert_attachment( $object, $file );
 
        // Save the data
        $id = wp_insert_attachment( $object, $file );
 
-       // schedule a cleanup for one day from now in case of failed import or missing wp_import_cleanup() call
+       /*
+        * Schedule a cleanup for one day from now in case of failed
+        * import or missing wp_import_cleanup() call.
+        */
        wp_schedule_single_event( time() + DAY_IN_SECONDS, 'importer_scheduled_cleanup', array( $id ) );
 
        return array( 'file' => $file, 'id' => $id );
        wp_schedule_single_event( time() + DAY_IN_SECONDS, 'importer_scheduled_cleanup', array( $id ) );
 
        return array( 'file' => $file, 'id' => $id );
@@ -119,7 +122,7 @@ function wp_import_handle_upload() {
  * @return array Importers with metadata for each.
  */
 function wp_get_popular_importers() {
  * @return array Importers with metadata for each.
  */
 function wp_get_popular_importers() {
-       include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
 
        $locale = get_locale();
        $popular_importers = get_site_transient( 'popular_importers_' . $locale );
 
        $locale = get_locale();
        $popular_importers = get_site_transient( 'popular_importers_' . $locale );
index 2403ec859a2d55e087b225fbf4e554677f4baea2..04b552f1b3ef805d2129e45e93d57e3b40607b8f 100644 (file)
@@ -84,10 +84,10 @@ function print_column_headers($screen, $id = true) {
  * @since 3.1.0
  */
 class _WP_List_Table_Compat extends WP_List_Table {
  * @since 3.1.0
  */
 class _WP_List_Table_Compat extends WP_List_Table {
-       var $_screen;
-       var $_columns;
+       public $_screen;
+       public $_columns;
 
 
-       function _WP_List_Table_Compat( $screen, $columns = array() ) {
+       public function __construct( $screen, $columns = array() ) {
                if ( is_string( $screen ) )
                        $screen = convert_to_screen( $screen );
 
                if ( is_string( $screen ) )
                        $screen = convert_to_screen( $screen );
 
@@ -99,7 +99,7 @@ class _WP_List_Table_Compat extends WP_List_Table {
                }
        }
 
                }
        }
 
-       function get_column_info() {
+       protected function get_column_info() {
                $columns = get_column_headers( $this->_screen );
                $hidden = get_hidden_columns( $this->_screen );
                $sortable = array();
                $columns = get_column_headers( $this->_screen );
                $hidden = get_hidden_columns( $this->_screen );
                $sortable = array();
@@ -107,7 +107,7 @@ class _WP_List_Table_Compat extends WP_List_Table {
                return array( $columns, $hidden, $sortable );
        }
 
                return array( $columns, $hidden, $sortable );
        }
 
-       function get_columns() {
+       public function get_columns() {
                return $this->_columns;
        }
 }
                return $this->_columns;
        }
 }
index 06cd1c1283530d0e413037f4e9a512e869cef86d..8a5e6cc59fed5298311ad3e8f3b5cafa5b0828cd 100644 (file)
@@ -180,7 +180,8 @@ function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $
 
        $caption = str_replace( array("\r\n", "\r"), "\n", $caption);
        $caption = preg_replace_callback( '/<[a-zA-Z0-9]+(?: [^<>]+>)*/', '_cleanup_image_add_caption', $caption );
 
        $caption = str_replace( array("\r\n", "\r"), "\n", $caption);
        $caption = preg_replace_callback( '/<[a-zA-Z0-9]+(?: [^<>]+>)*/', '_cleanup_image_add_caption', $caption );
-       // convert any remaining line breaks to <br>
+
+       // Convert any remaining line breaks to <br>.
        $caption = preg_replace( '/[ \n\t]*\n[ \t]*/', '<br />', $caption );
 
        $html = preg_replace( '/(class=["\'][^\'"]*)align(none|left|right|center)\s?/', '$1', $html );
        $caption = preg_replace( '/[ \n\t]*\n[ \t]*/', '<br />', $caption );
 
        $html = preg_replace( '/(class=["\'][^\'"]*)align(none|left|right|center)\s?/', '$1', $html );
@@ -208,7 +209,7 @@ add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 );
  * @since 3.4.0
  */
 function _cleanup_image_add_caption( $matches ) {
  * @since 3.4.0
  */
 function _cleanup_image_add_caption( $matches ) {
-       // remove any line breaks from inside the tags
+       // Remove any line breaks from inside the tags.
        return preg_replace( '/[\r\n\t]+/', ' ', $matches[0] );
 }
 
        return preg_replace( '/[\r\n\t]+/', ' ', $matches[0] );
 }
 
@@ -317,7 +318,7 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
                if ( ! empty( $meta['genre'] ) )
                        $content .= ' ' . sprintf( __( 'Genre: %s.' ), $meta['genre'] );
 
                if ( ! empty( $meta['genre'] ) )
                        $content .= ' ' . sprintf( __( 'Genre: %s.' ), $meta['genre'] );
 
-       // use image exif/iptc data for title and caption defaults if possible
+       // Use image exif/iptc data for title and caption defaults if possible.
        } elseif ( $image_meta = @wp_read_image_metadata( $file ) ) {
                if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) )
                        $title = $image_meta['title'];
        } elseif ( $image_meta = @wp_read_image_metadata( $file ) ) {
                if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) )
                        $title = $image_meta['title'];
@@ -378,7 +379,7 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data =
        $title = preg_replace('/\.[^.]+$/', '', basename($file));
        $content = '';
 
        $title = preg_replace('/\.[^.]+$/', '', basename($file));
        $content = '';
 
-       // use image exif/iptc data for title and caption defaults if possible
+       // Use image exif/iptc data for title and caption defaults if possible.
        if ( $image_meta = @wp_read_image_metadata($file) ) {
                if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) )
                        $title = $image_meta['title'];
        if ( $image_meta = @wp_read_image_metadata($file) ) {
                if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) )
                        $title = $image_meta['title'];
@@ -389,7 +390,7 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data =
        if ( isset( $desc ) )
                $title = $desc;
 
        if ( isset( $desc ) )
                $title = $desc;
 
-       // Construct the attachment array
+       // Construct the attachment array.
        $attachment = array_merge( array(
                'post_mime_type' => $type,
                'guid' => $url,
        $attachment = array_merge( array(
                'post_mime_type' => $type,
                'guid' => $url,
@@ -514,6 +515,9 @@ document.body.className = document.body.className.replace('no-js', 'js');
  * @param string $editor_id
  */
 function media_buttons($editor_id = 'content') {
  * @param string $editor_id
  */
 function media_buttons($editor_id = 'content') {
+       static $instance = 0;
+       $instance++;
+
        $post = get_post();
        if ( ! $post && ! empty( $GLOBALS['post_ID'] ) )
                $post = $GLOBALS['post_ID'];
        $post = get_post();
        if ( ! $post && ! empty( $GLOBALS['post_ID'] ) )
                $post = $GLOBALS['post_ID'];
@@ -524,8 +528,13 @@ function media_buttons($editor_id = 'content') {
 
        $img = '<span class="wp-media-buttons-icon"></span> ';
 
 
        $img = '<span class="wp-media-buttons-icon"></span> ';
 
-       echo '<a href="#" id="insert-media-button" class="button insert-media add_media" data-editor="' . esc_attr( $editor_id ) . '" title="' . esc_attr__( 'Add Media' ) . '">' . $img . __( 'Add Media' ) . '</a>';
-
+       $id_attribute = $instance === 1 ? ' id="insert-media-button"' : '';
+       printf( '<a href="#"%s class="button insert-media add_media" data-editor="%s" title="%s">%s</a>',
+               $id_attribute,
+               esc_attr( $editor_id ),
+               esc_attr__( 'Add Media' ),
+               $img . __( 'Add Media' )
+       );
        /**
         * Filter the legacy (pre-3.5.0) media buttons.
         *
        /**
         * Filter the legacy (pre-3.5.0) media buttons.
         *
@@ -627,7 +636,8 @@ function media_upload_form_handler() {
                        $image_alt = wp_unslash( $attachment['image_alt'] );
                        if ( $image_alt != get_post_meta($attachment_id, '_wp_attachment_image_alt', true) ) {
                                $image_alt = wp_strip_all_tags( $image_alt, true );
                        $image_alt = wp_unslash( $attachment['image_alt'] );
                        if ( $image_alt != get_post_meta($attachment_id, '_wp_attachment_image_alt', true) ) {
                                $image_alt = wp_strip_all_tags( $image_alt, true );
-                               // update_meta expects slashed
+
+                               // Update_meta expects slashed.
                                update_post_meta( $attachment_id, '_wp_attachment_image_alt', wp_slash( $image_alt ) );
                        }
                }
                                update_post_meta( $attachment_id, '_wp_attachment_image_alt', wp_slash( $image_alt ) );
                        }
                }
@@ -766,7 +776,10 @@ function wp_media_upload_handler() {
                return media_send_to_editor($html);
        }
 
                return media_send_to_editor($html);
        }
 
-       if ( !empty($_POST) ) {
+       if ( isset( $_POST['save'] ) ) {
+               $errors['upload_notice'] = __('Saved.');
+               return media_upload_gallery();
+       } elseif ( ! empty( $_POST ) ) {
                $return = media_upload_form_handler();
 
                if ( is_string($return) )
                $return = media_upload_form_handler();
 
                if ( is_string($return) )
@@ -775,11 +788,6 @@ function wp_media_upload_handler() {
                        $errors = $return;
        }
 
                        $errors = $return;
        }
 
-       if ( isset($_POST['save']) ) {
-               $errors['upload_notice'] = __('Saved.');
-               return media_upload_gallery();
-       }
-
        if ( isset($_GET['tab']) && $_GET['tab'] == 'type_url' ) {
                $type = 'image';
                if ( isset( $_GET['type'] ) && in_array( $_GET['type'], array( 'video', 'audio', 'file' ) ) )
        if ( isset($_GET['tab']) && $_GET['tab'] == 'type_url' ) {
                $type = 'image';
                if ( isset( $_GET['type'] ) && in_array( $_GET['type'], array( 'video', 'audio', 'file' ) ) )
@@ -800,37 +808,36 @@ function wp_media_upload_handler() {
  * @param string $desc Optional. Description of the image
  * @return string|WP_Error Populated HTML img tag on success
  */
  * @param string $desc Optional. Description of the image
  * @return string|WP_Error Populated HTML img tag on success
  */
-function media_sideload_image($file, $post_id, $desc = null) {
-       if ( ! empty($file) ) {
-               // Download file to temp location
-               $tmp = download_url( $file );
-
-               // Set variables for storage
-               // fix file filename for query strings
+function media_sideload_image( $file, $post_id, $desc = null ) {
+       if ( ! empty( $file ) ) {
+               // Set variables for storage, fix file filename for query strings.
                preg_match( '/[^\?]+\.(jpe?g|jpe|gif|png)\b/i', $file, $matches );
                preg_match( '/[^\?]+\.(jpe?g|jpe|gif|png)\b/i', $file, $matches );
-               $file_array['name'] = basename($matches[0]);
-               $file_array['tmp_name'] = $tmp;
+               $file_array = array();
+               $file_array['name'] = basename( $matches[0] );
+
+               // Download file to temp location.
+               $file_array['tmp_name'] = download_url( $file );
 
 
-               // If error storing temporarily, unlink
-               if ( is_wp_error( $tmp ) ) {
-                       @unlink($file_array['tmp_name']);
-                       $file_array['tmp_name'] = '';
+               // If error storing temporarily, return the error.
+               if ( is_wp_error( $file_array['tmp_name'] ) ) {
+                       return $file_array['tmp_name'];
                }
 
                }
 
-               // do the validation and storage stuff
+               // Do the validation and storage stuff.
                $id = media_handle_sideload( $file_array, $post_id, $desc );
                $id = media_handle_sideload( $file_array, $post_id, $desc );
-               // If error storing permanently, unlink
-               if ( is_wp_error($id) ) {
-                       @unlink($file_array['tmp_name']);
+
+               // If error storing permanently, unlink.
+               if ( is_wp_error( $id ) ) {
+                       @unlink( $file_array['tmp_name'] );
                        return $id;
                }
 
                $src = wp_get_attachment_url( $id );
        }
 
                        return $id;
                }
 
                $src = wp_get_attachment_url( $id );
        }
 
-       // Finally check to make sure the file has been saved, then return the html
-       if ( ! empty($src) ) {
-               $alt = isset($desc) ? esc_attr($desc) : '';
+       // Finally check to make sure the file has been saved, then return the HTML.
+       if ( ! empty( $src ) ) {
+               $alt = isset( $desc ) ? esc_attr( $desc ) : '';
                $html = "<img src='$src' alt='$alt' />";
                return $html;
        }
                $html = "<img src='$src' alt='$alt' />";
                return $html;
        }
@@ -941,17 +948,21 @@ function image_size_input_fields( $post, $check = '' ) {
                        $downsize = image_downsize($post->ID, $size);
                        $checked = '';
 
                        $downsize = image_downsize($post->ID, $size);
                        $checked = '';
 
-                       // is this size selectable?
+                       // Is this size selectable?
                        $enabled = ( $downsize[3] || 'full' == $size );
                        $css_id = "image-size-{$size}-{$post->ID}";
                        $enabled = ( $downsize[3] || 'full' == $size );
                        $css_id = "image-size-{$size}-{$post->ID}";
-                       // if this size is the default but that's not available, don't select it
+
+                       // If this size is the default but that's not available, don't select it.
                        if ( $size == $check ) {
                                if ( $enabled )
                                        $checked = " checked='checked'";
                                else
                                        $check = '';
                        } elseif ( !$check && $enabled && 'thumbnail' != $size ) {
                        if ( $size == $check ) {
                                if ( $enabled )
                                        $checked = " checked='checked'";
                                else
                                        $check = '';
                        } elseif ( !$check && $enabled && 'thumbnail' != $size ) {
-                               // if $check is not enabled, default to the first available size that's bigger than a thumbnail
+                               /*
+                                * If $check is not enabled, default to the first available size
+                                * that's bigger than a thumbnail.
+                                */
                                $check = $size;
                                $checked = " checked='checked'";
                        }
                                $check = $size;
                                $checked = " checked='checked'";
                        }
@@ -959,7 +970,8 @@ function image_size_input_fields( $post, $check = '' ) {
                        $html = "<div class='image-size-item'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />";
 
                        $html .= "<label for='{$css_id}'>$label</label>";
                        $html = "<div class='image-size-item'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />";
 
                        $html .= "<label for='{$css_id}'>$label</label>";
-                       // only show the dimensions if that choice is available
+
+                       // Only show the dimensions if that choice is available.
                        if ( $enabled )
                                $html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>";
 
                        if ( $enabled )
                                $html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>";
 
@@ -1007,7 +1019,7 @@ function image_link_input_fields($post, $url_type = '') {
 }
 
 function wp_caption_input_textarea($edit_post) {
 }
 
 function wp_caption_input_textarea($edit_post) {
-       // post data is already escaped
+       // Post data is already escaped.
        $name = "attachments[{$edit_post->ID}][post_excerpt]";
 
        return '<textarea name="' . $name . '" id="' . $name . '">' . $edit_post->post_excerpt . '</textarea>';
        $name = "attachments[{$edit_post->ID}][post_excerpt]";
 
        return '<textarea name="' . $name . '" id="' . $name . '">' . $edit_post->post_excerpt . '</textarea>';
@@ -1031,9 +1043,9 @@ function image_attachment_fields_to_edit($form_fields, $post) {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param array $form_fields
- * @param object $post {@internal $post not used}}
- * @return array
+ * @param array   $form_fields An array of attachment form fields.
+ * @param WP_Post $post        The WP_Post attachment object.
+ * @return array Filtered attachment form fields.
  */
 function media_single_attachment_fields_to_edit( $form_fields, $post ) {
        unset($form_fields['url'], $form_fields['align'], $form_fields['image-size']);
  */
 function media_single_attachment_fields_to_edit( $form_fields, $post ) {
        unset($form_fields['url'], $form_fields['align'], $form_fields['image-size']);
@@ -1045,9 +1057,9 @@ function media_single_attachment_fields_to_edit( $form_fields, $post ) {
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
- * @param array $form_fields
- * @param object $post {@internal $post not used}}
- * @return array
+ * @param array   $form_fields An array of attachment form fields.
+ * @param WP_Post $post        The WP_Post attachment object.
+ * @return array Filtered attachment form fields.
  */
 function media_post_single_attachment_fields_to_edit( $form_fields, $post ) {
        unset($form_fields['image_url']);
  */
 function media_post_single_attachment_fields_to_edit( $form_fields, $post ) {
        unset($form_fields['image_url']);
@@ -1063,9 +1075,9 @@ function media_post_single_attachment_fields_to_edit( $form_fields, $post ) {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param object $post
- * @param array $attachment {@internal $attachment not used}}
- * @return array
+ * @param WP_Post $post       The WP_Post attachment object.
+ * @param array   $attachment An array of attachment metadata.
+ * @return array Filtered attachment post object.
  */
 function image_attachment_fields_to_save( $post, $attachment ) {
        if ( substr( $post['post_mime_type'], 0, 5 ) == 'image' ) {
  */
 function image_attachment_fields_to_save( $post, $attachment ) {
        if ( substr( $post['post_mime_type'], 0, 5 ) == 'image' ) {
@@ -1285,7 +1297,13 @@ function get_media_item( $attachment_id, $args = null ) {
        $post = get_post( $attachment_id );
        $current_post_id = !empty( $_GET['post_id'] ) ? (int) $_GET['post_id'] : 0;
 
        $post = get_post( $attachment_id );
        $current_post_id = !empty( $_GET['post_id'] ) ? (int) $_GET['post_id'] : 0;
 
-       $default_args = array( 'errors' => null, 'send' => $current_post_id ? post_type_supports( get_post_type( $current_post_id ), 'editor' ) : true, 'delete' => true, 'toggle' => true, 'show_title' => true );
+       $default_args = array(
+               'errors' => null,
+               'send' => $current_post_id ? post_type_supports( get_post_type( $current_post_id ), 'editor' ) : true,
+               'delete' => true,
+               'toggle' => true,
+               'show_title' => true
+       );
        $args = wp_parse_args( $args, $default_args );
 
        /**
        $args = wp_parse_args( $args, $default_args );
 
        /**
@@ -1297,8 +1315,7 @@ function get_media_item( $attachment_id, $args = null ) {
         *
         * @param array $args An array of arguments.
         */
         *
         * @param array $args An array of arguments.
         */
-       $args = apply_filters( 'get_media_item_args', $args );
-       extract( $args, EXTR_SKIP );
+       $r = apply_filters( 'get_media_item_args', $args );
 
        $toggle_on  = __( 'Show' );
        $toggle_off = __( 'Hide' );
 
        $toggle_on  = __( 'Show' );
        $toggle_off = __( 'Hide' );
@@ -1306,21 +1323,15 @@ function get_media_item( $attachment_id, $args = null ) {
        $filename = esc_html( wp_basename( $post->guid ) );
        $title = esc_attr( $post->post_title );
 
        $filename = esc_html( wp_basename( $post->guid ) );
        $title = esc_attr( $post->post_title );
 
-       if ( $_tags = get_the_tags( $attachment_id ) ) {
-               foreach ( $_tags as $tag )
-                       $tags[] = $tag->name;
-               $tags = esc_attr( join( ', ', $tags ) );
-       }
-
        $post_mime_types = get_post_mime_types();
        $keys = array_keys( wp_match_mime_types( array_keys( $post_mime_types ), $post->post_mime_type ) );
        $type = array_shift( $keys );
        $type_html = "<input type='hidden' id='type-of-$attachment_id' value='" . esc_attr( $type ) . "' />";
 
        $post_mime_types = get_post_mime_types();
        $keys = array_keys( wp_match_mime_types( array_keys( $post_mime_types ), $post->post_mime_type ) );
        $type = array_shift( $keys );
        $type_html = "<input type='hidden' id='type-of-$attachment_id' value='" . esc_attr( $type ) . "' />";
 
-       $form_fields = get_attachment_fields_to_edit( $post, $errors );
+       $form_fields = get_attachment_fields_to_edit( $post, $r['errors'] );
 
 
-       if ( $toggle ) {
-               $class = empty( $errors ) ? 'startclosed' : 'startopen';
+       if ( $r['toggle'] ) {
+               $class = empty( $r['errors'] ) ? 'startclosed' : 'startopen';
                $toggle_links = "
        <a class='toggle describe-toggle-on' href='#'>$toggle_on</a>
        <a class='toggle describe-toggle-off' href='#'>$toggle_off</a>";
                $toggle_links = "
        <a class='toggle describe-toggle-on' href='#'>$toggle_on</a>
        <a class='toggle describe-toggle-off' href='#'>$toggle_off</a>";
@@ -1330,7 +1341,7 @@ function get_media_item( $attachment_id, $args = null ) {
        }
 
        $display_title = ( !empty( $title ) ) ? $title : $filename; // $title shouldn't ever be empty, but just in case
        }
 
        $display_title = ( !empty( $title ) ) ? $title : $filename; // $title shouldn't ever be empty, but just in case
-       $display_title = $show_title ? "<div class='filename new'><span class='title'>" . wp_html_excerpt( $display_title, 60, '&hellip;' ) . "</span></div>" : '';
+       $display_title = $r['show_title'] ? "<div class='filename new'><span class='title'>" . wp_html_excerpt( $display_title, 60, '&hellip;' ) . "</span></div>" : '';
 
        $gallery = ( ( isset( $_REQUEST['tab'] ) && 'gallery' == $_REQUEST['tab'] ) || ( isset( $redir_tab ) && 'gallery' == $redir_tab ) );
        $order = '';
 
        $gallery = ( ( isset( $_REQUEST['tab'] ) && 'gallery' == $_REQUEST['tab'] ) || ( isset( $redir_tab ) && 'gallery' == $redir_tab ) );
        $order = '';
@@ -1404,8 +1415,11 @@ function get_media_item( $attachment_id, $args = null ) {
                'extra_rows' => array(),
        );
 
                'extra_rows' => array(),
        );
 
-       if ( $send )
-               $send = get_submit_button( __( 'Insert into Post' ), 'button', "send[$attachment_id]", false );
+       if ( $r['send'] ) {
+               $r['send'] = get_submit_button( __( 'Insert into Post' ), 'button', "send[$attachment_id]", false );
+       }
+
+       $delete = empty( $r['delete'] ) ? '' : $r['delete'];
        if ( $delete && current_user_can( 'delete_post', $attachment_id ) ) {
                if ( !EMPTY_TRASH_DAYS ) {
                        $delete = "<a href='" . wp_nonce_url( "post.php?action=delete&amp;post=$attachment_id", 'delete-post_' . $attachment_id ) . "' id='del[$attachment_id]' class='delete-permanently'>" . __( 'Delete Permanently' ) . '</a>';
        if ( $delete && current_user_can( 'delete_post', $attachment_id ) ) {
                if ( !EMPTY_TRASH_DAYS ) {
                        $delete = "<a href='" . wp_nonce_url( "post.php?action=delete&amp;post=$attachment_id", 'delete-post_' . $attachment_id ) . "' id='del[$attachment_id]' class='delete-permanently'>" . __( 'Delete Permanently' ) . '</a>';
@@ -1425,19 +1439,20 @@ function get_media_item( $attachment_id, $args = null ) {
 
        $thumbnail = '';
        $calling_post_id = 0;
 
        $thumbnail = '';
        $calling_post_id = 0;
-       if ( isset( $_GET['post_id'] ) )
+       if ( isset( $_GET['post_id'] ) ) {
                $calling_post_id = absint( $_GET['post_id'] );
                $calling_post_id = absint( $_GET['post_id'] );
-       elseif ( isset( $_POST ) && count( $_POST ) ) // Like for async-upload where $_GET['post_id'] isn't set
+       } elseif ( isset( $_POST ) && count( $_POST ) ) {// Like for async-upload where $_GET['post_id'] isn't set
                $calling_post_id = $post->post_parent;
                $calling_post_id = $post->post_parent;
+       }
        if ( 'image' == $type && $calling_post_id && current_theme_supports( 'post-thumbnails', get_post_type( $calling_post_id ) )
                && post_type_supports( get_post_type( $calling_post_id ), 'thumbnail' ) && get_post_thumbnail_id( $calling_post_id ) != $attachment_id ) {
                $ajax_nonce = wp_create_nonce( "set_post_thumbnail-$calling_post_id" );
                $thumbnail = "<a class='wp-post-thumbnail' id='wp-post-thumbnail-" . $attachment_id . "' href='#' onclick='WPSetAsThumbnail(\"$attachment_id\", \"$ajax_nonce\");return false;'>" . esc_html__( "Use as featured image" ) . "</a>";
        }
 
        if ( 'image' == $type && $calling_post_id && current_theme_supports( 'post-thumbnails', get_post_type( $calling_post_id ) )
                && post_type_supports( get_post_type( $calling_post_id ), 'thumbnail' ) && get_post_thumbnail_id( $calling_post_id ) != $attachment_id ) {
                $ajax_nonce = wp_create_nonce( "set_post_thumbnail-$calling_post_id" );
                $thumbnail = "<a class='wp-post-thumbnail' id='wp-post-thumbnail-" . $attachment_id . "' href='#' onclick='WPSetAsThumbnail(\"$attachment_id\", \"$ajax_nonce\");return false;'>" . esc_html__( "Use as featured image" ) . "</a>";
        }
 
-       if ( ( $send || $thumbnail || $delete ) && !isset( $form_fields['buttons'] ) )
-               $form_fields['buttons'] = array( 'tr' => "\t\t<tr class='submit'><td></td><td class='savesend'>$send $thumbnail $delete</td></tr>\n" );
-
+       if ( ( $r['send'] || $thumbnail || $delete ) && !isset( $form_fields['buttons'] ) ) {
+               $form_fields['buttons'] = array( 'tr' => "\t\t<tr class='submit'><td></td><td class='savesend'>" . $r['send'] . " $thumbnail $delete</td></tr>\n" );
+       }
        $hidden_fields = array();
 
        foreach ( $form_fields as $id => $field ) {
        $hidden_fields = array();
 
        foreach ( $form_fields as $id => $field ) {
@@ -1467,10 +1482,10 @@ function get_media_item( $attachment_id, $args = null ) {
                        $item .= $field[ $field['input'] ];
                elseif ( $field['input'] == 'textarea' ) {
                        if ( 'post_content' == $id && user_can_richedit() ) {
                        $item .= $field[ $field['input'] ];
                elseif ( $field['input'] == 'textarea' ) {
                        if ( 'post_content' == $id && user_can_richedit() ) {
-                               // sanitize_post() skips the post_content when user_can_richedit
+                               // Sanitize_post() skips the post_content when user_can_richedit.
                                $field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES );
                        }
                                $field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES );
                        }
-                       // post_excerpt is already escaped by sanitize_post() in get_attachment_fields_to_edit()
+                       // Post_excerpt is already escaped by sanitize_post() in get_attachment_fields_to_edit().
                        $item .= "<textarea id='$name' name='$name' $aria_required>" . $field['value'] . '</textarea>';
                } else {
                        $item .= "<input type='text' class='text' id='$name' name='$name' value='" . esc_attr( $field['value'] ) . "' $aria_required />";
                        $item .= "<textarea id='$name' name='$name' $aria_required>" . $field['value'] . '</textarea>';
                } else {
                        $item .= "<input type='text' class='text' id='$name' name='$name' value='" . esc_attr( $field['value'] ) . "' $aria_required />";
@@ -1616,7 +1631,7 @@ function get_compat_media_markup( $attachment_id, $args = null ) {
                        $item .= $field[ $field['input'] ];
                elseif ( $field['input'] == 'textarea' ) {
                        if ( 'post_content' == $id && user_can_richedit() ) {
                        $item .= $field[ $field['input'] ];
                elseif ( $field['input'] == 'textarea' ) {
                        if ( 'post_content' == $id && user_can_richedit() ) {
-                               // sanitize_post() skips the post_content when user_can_richedit
+                               // sanitize_post() skips the post_content when user_can_richedit.
                                $field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES );
                        }
                        $item .= "<textarea id='$id_attr' name='$name' $aria_required>" . $field['value'] . '</textarea>';
                                $field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES );
                        }
                        $item .= "<textarea id='$id_attr' name='$name' $aria_required>" . $field['value'] . '</textarea>';
@@ -1687,7 +1702,7 @@ function media_upload_form( $errors = null ) {
        global $type, $tab, $is_IE, $is_opera;
 
        if ( ! _device_can_upload() ) {
        global $type, $tab, $is_IE, $is_opera;
 
        if ( ! _device_can_upload() ) {
-               echo '<p>' . sprintf( __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://wordpress.org/mobile/' ) . '</p>';
+               echo '<p>' . sprintf( __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://apps.wordpress.org/' ) . '</p>';
                return;
        }
 
                return;
        }
 
@@ -1696,18 +1711,9 @@ function media_upload_form( $errors = null ) {
        $_type = isset($type) ? $type : '';
        $_tab = isset($tab) ? $tab : '';
 
        $_type = isset($type) ? $type : '';
        $_tab = isset($tab) ? $tab : '';
 
-       $upload_size_unit = $max_upload_size = wp_max_upload_size();
-       $sizes = array( 'KB', 'MB', 'GB' );
-
-       for ( $u = -1; $upload_size_unit > 1024 && $u < count( $sizes ) - 1; $u++ ) {
-               $upload_size_unit /= 1024;
-       }
-
-       if ( $u < 0 ) {
-               $upload_size_unit = 0;
-               $u = 0;
-       } else {
-               $upload_size_unit = (int) $upload_size_unit;
+       $max_upload_size = wp_max_upload_size();
+       if ( ! $max_upload_size ) {
+               $max_upload_size = 0;
        }
 ?>
 
        }
 ?>
 
@@ -1742,11 +1748,11 @@ if ( is_multisite() && !is_upload_space_available() ) {
 do_action( 'pre-upload-ui' );
 
 $post_params = array(
 do_action( 'pre-upload-ui' );
 
 $post_params = array(
-               "post_id" => $post_id,
-               "_wpnonce" => wp_create_nonce('media-form'),
-               "type" => $_type,
-               "tab" => $_tab,
-               "short" => "1",
+       "post_id" => $post_id,
+       "_wpnonce" => wp_create_nonce('media-form'),
+       "type" => $_type,
+       "tab" => $_tab,
+       "short" => "1",
 );
 
 /**
 );
 
 /**
@@ -1774,11 +1780,6 @@ $plupload_init = array(
        'multipart_params'    => $post_params,
 );
 
        'multipart_params'    => $post_params,
 );
 
-// Multi-file uploading doesn't currently work in iOS Safari,
-// single-file allows the built-in camera to be used as source for images
-if ( wp_is_mobile() )
-       $plupload_init['multi_selection'] = false;
-
 /**
  * Filter the default Plupload settings.
  *
 /**
  * Filter the default Plupload settings.
  *
@@ -1856,7 +1857,7 @@ do_action( 'post-html-upload-ui' );
 ?>
 </div>
 
 ?>
 </div>
 
-<span class="max-upload-size"><?php printf( __( 'Maximum upload file size: %d%s.' ), esc_html($upload_size_unit), esc_html($sizes[$u]) ); ?></span>
+<p class="max-upload-size"><?php printf( __( 'Maximum upload file size: %s.' ), esc_html( size_format( $max_upload_size ) ) ); ?></p>
 <?php
 
        /**
 <?php
 
        /**
@@ -2110,7 +2111,6 @@ function media_upload_gallery_form($errors) {
 ?>
 
 <script type="text/javascript">
 ?>
 
 <script type="text/javascript">
-<!--
 jQuery(function($){
        var preloaded = $(".media-item.preloaded");
        if ( preloaded.length > 0 ) {
 jQuery(function($){
        var preloaded = $(".media-item.preloaded");
        if ( preloaded.length > 0 ) {
@@ -2118,7 +2118,6 @@ jQuery(function($){
                updateMediaForm();
        }
 });
                updateMediaForm();
        }
 });
--->
 </script>
 <div id="sort-buttons" class="hide-if-no-js">
 <span>
 </script>
 <div id="sort-buttons" class="hide-if-no-js">
 <span>
@@ -2303,7 +2302,7 @@ if ( empty($_GET['post_mime_type']) || $_GET['post_mime_type'] == 'all' )
        $class = ' class="current"';
 else
        $class = '';
        $class = ' class="current"';
 else
        $class = '';
-$type_links[] = "<li><a href='" . esc_url(add_query_arg(array('post_mime_type'=>'all', 'paged'=>false, 'm'=>false))) . "'$class>".__('All Types')."</a>";
+$type_links[] = '<li><a href="' . esc_url(add_query_arg(array('post_mime_type'=>'all', 'paged'=>false, 'm'=>false))) . '"' . $class . '>' . __('All Types') . '</a>';
 foreach ( $post_mime_types as $mime_type => $label ) {
        $class = '';
 
 foreach ( $post_mime_types as $mime_type => $label ) {
        $class = '';
 
@@ -2313,7 +2312,7 @@ foreach ( $post_mime_types as $mime_type => $label ) {
        if ( isset($_GET['post_mime_type']) && wp_match_mime_types($mime_type, $_GET['post_mime_type']) )
                $class = ' class="current"';
 
        if ( isset($_GET['post_mime_type']) && wp_match_mime_types($mime_type, $_GET['post_mime_type']) )
                $class = ' class="current"';
 
-       $type_links[] = "<li><a href='" . esc_url(add_query_arg(array('post_mime_type'=>$mime_type, 'paged'=>false))) . "'$class>" . sprintf( translate_nooped_plural( $label[2], $num_posts[$mime_type] ), "<span id='$mime_type-counter'>" . number_format_i18n( $num_posts[$mime_type] ) . '</span>') . '</a>';
+       $type_links[] = '<li><a href="' . esc_url(add_query_arg(array('post_mime_type'=>$mime_type, 'paged'=>false))) . '"' . $class . '>' . sprintf( translate_nooped_plural( $label[2], $num_posts[$mime_type] ), '<span id="' . $mime_type . '-counter">' . number_format_i18n( $num_posts[$mime_type] ) . '</span>') . '</a>';
 }
 /**
  * Filter the media upload mime type list items.
 }
 /**
  * Filter the media upload mime type list items.
@@ -2607,8 +2606,6 @@ function edit_form_image_editor( $post ) {
        if ( $attachment_id = intval( $post->ID ) )
                $thumb_url = wp_get_attachment_image_src( $attachment_id, array( 900, 450 ), true );
 
        if ( $attachment_id = intval( $post->ID ) )
                $thumb_url = wp_get_attachment_image_src( $attachment_id, array( 900, 450 ), true );
 
-       $filename = esc_html( basename( $post->guid ) );
-       $title = esc_attr( $post->post_title );
        $alt_text = get_post_meta( $post->ID, '_wp_attachment_image_alt', true );
 
        $att_url = wp_get_attachment_url( $post->ID ); ?>
        $alt_text = get_post_meta( $post->ID, '_wp_attachment_image_alt', true );
 
        $att_url = wp_get_attachment_url( $post->ID ); ?>
@@ -2655,6 +2652,11 @@ function edit_form_image_editor( $post ) {
                        $attr['height'] = $h;
                }
 
                        $attr['height'] = $h;
                }
 
+               $thumb_id = get_post_thumbnail_id( $attachment_id );
+               if ( ! empty( $thumb_id ) ) {
+                       $attr['poster'] = wp_get_attachment_url( $thumb_id );
+               }
+
                echo wp_video_shortcode( $attr );
 
        endif; ?>
                echo wp_video_shortcode( $attr );
 
        endif; ?>
@@ -2860,7 +2862,7 @@ function wp_add_id3_tag_data( &$metadata, $data ) {
                        foreach ( $data[$version]['comments'] as $key => $list ) {
                                if ( ! empty( $list ) ) {
                                        $metadata[$key] = reset( $list );
                        foreach ( $data[$version]['comments'] as $key => $list ) {
                                if ( ! empty( $list ) ) {
                                        $metadata[$key] = reset( $list );
-                                       // fix bug in byte stream analysis
+                                       // Fix bug in byte stream analysis.
                                        if ( 'terms_of_use' === $key && 0 === strpos( $metadata[$key], 'yright notice.' ) )
                                                $metadata[$key] = 'Cop' . $metadata[$key];
                                }
                                        if ( 'terms_of_use' === $key && 0 === strpos( $metadata[$key], 'yright notice.' ) )
                                                $metadata[$key] = 'Cop' . $metadata[$key];
                                }
index 6835091a700aaa8e977e5bd6f4a296dd0742204d..873f7379d9eb4c534dae23d2346ef05320c7dff1 100644 (file)
@@ -71,22 +71,19 @@ unset($menu_page, $compat);
 $_wp_submenu_nopriv = array();
 $_wp_menu_nopriv = array();
 // Loop over submenus and remove pages for which the user does not have privs.
 $_wp_submenu_nopriv = array();
 $_wp_menu_nopriv = array();
 // Loop over submenus and remove pages for which the user does not have privs.
-foreach ( array( 'submenu' ) as $sub_loop ) {
-       foreach ($$sub_loop as $parent => $sub) {
-               foreach ($sub as $index => $data) {
-                       if ( ! current_user_can($data[1]) ) {
-                               unset(${$sub_loop}[$parent][$index]);
-                               $_wp_submenu_nopriv[$parent][$data[2]] = true;
-                       }
+foreach ($submenu as $parent => $sub) {
+       foreach ($sub as $index => $data) {
+               if ( ! current_user_can($data[1]) ) {
+                       unset($submenu[$parent][$index]);
+                       $_wp_submenu_nopriv[$parent][$data[2]] = true;
                }
                }
-               unset($index, $data);
-
-               if ( empty(${$sub_loop}[$parent]) )
-                       unset(${$sub_loop}[$parent]);
        }
        }
-       unset($sub, $parent);
+       unset($index, $data);
+
+       if ( empty($submenu[$parent]) )
+               unset($submenu[$parent]);
 }
 }
-unset($sub_loop);
+unset($sub, $parent);
 
 /*
  * Loop over the top-level menu.
 
 /*
  * Loop over the top-level menu.
@@ -100,8 +97,10 @@ foreach ( $menu as $id => $data ) {
        $first_sub = array_shift($subs);
        $old_parent = $data[2];
        $new_parent = $first_sub[2];
        $first_sub = array_shift($subs);
        $old_parent = $data[2];
        $new_parent = $first_sub[2];
-       // If the first submenu is not the same as the assigned parent,
-       // make the first submenu the new parent.
+       /*
+        * If the first submenu is not the same as the assigned parent,
+        * make the first submenu the new parent.
+        */
        if ( $new_parent != $old_parent ) {
                $_wp_real_parent_file[$old_parent] = $new_parent;
                $menu[$id][2] = $new_parent;
        if ( $new_parent != $old_parent ) {
                $_wp_real_parent_file[$old_parent] = $new_parent;
                $menu[$id][2] = $new_parent;
index 9f7f469a427bc6ee48d6ad5088f94368f1b23a8c..3e2c9de6b9c9a0816e5dbb56f4b5abf9b4e85121 100644 (file)
@@ -42,14 +42,17 @@ if ( 'publish' == $post->post_status ) {
        $preview_button = __( 'Preview Changes' );
 } else {
        $preview_link = set_url_scheme( get_permalink( $post->ID ) );
        $preview_button = __( 'Preview Changes' );
 } else {
        $preview_link = set_url_scheme( get_permalink( $post->ID ) );
+
        /**
         * Filter the URI of a post preview in the post submit box.
         *
         * @since 2.0.5
        /**
         * Filter the URI of a post preview in the post submit box.
         *
         * @since 2.0.5
+        * @since 4.0.0 $post parameter was added.
         *
         *
-        * @param string $preview_link URI the user will be directed to for a post preview.
+        * @param string  $preview_link URI the user will be directed to for a post preview.
+        * @param WP_Post $post         Post object.
         */
         */
-       $preview_link = esc_url( apply_filters( 'preview_post_link', add_query_arg( 'preview', 'true', $preview_link ) ) );
+       $preview_link = esc_url( apply_filters( 'preview_post_link', add_query_arg( 'preview', 'true', $preview_link ), $post ) );
        $preview_button = __( 'Preview' );
 }
 ?>
        $preview_button = __( 'Preview' );
 }
 ?>
@@ -276,11 +279,6 @@ if ( !in_array( $post->post_status, array('publish', 'future', 'private') ) || 0
  * @param object $post
  */
 function attachment_submit_meta_box( $post ) {
  * @param object $post
  */
 function attachment_submit_meta_box( $post ) {
-       global $action;
-
-       $post_type = $post->post_type;
-       $post_type_object = get_post_type_object($post_type);
-       $can_publish = current_user_can($post_type_object->cap->publish_posts);
 ?>
 <div class="submitbox" id="submitpost">
 
 ?>
 <div class="submitbox" id="submitpost">
 
@@ -347,7 +345,15 @@ function attachment_submit_meta_box( $post ) {
  *
  * @since 3.1.0
  *
  *
  * @since 3.1.0
  *
- * @param object $post
+ * @param WP_Post $post Post object.
+ * @param array   $box {
+ *     Post formats meta box arguments.
+ *
+ *     @type string   $id       Meta box ID.
+ *     @type string   $title    Meta box title.
+ *     @type callback $callback Meta box display callback.
+ *     @type array    $args     Extra meta box arguments.
+ * }
  */
 function post_format_meta_box( $post, $box ) {
        if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) ) :
  */
 function post_format_meta_box( $post, $box ) {
        if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) ) :
@@ -375,17 +381,32 @@ function post_format_meta_box( $post, $box ) {
  *
  * @since 2.6.0
  *
  *
  * @since 2.6.0
  *
- * @param object $post
+ * @todo Create taxonomy-agnostic wrapper for this.
+ *
+ * @param WP_Post $post Post object.
+ * @param array   $box {
+ *     Tags meta box arguments.
+ *
+ *     @type string   $id       Meta box ID.
+ *     @type string   $title    Meta box title.
+ *     @type callback $callback Meta box display callback.
+ *     @type array    $args {
+ *         Extra meta box arguments.
+ *
+ *         @type string $taxonomy Taxonomy. Default 'post_tag'.
+ *     }
+ * }
  */
  */
-function post_tags_meta_box($post, $box) {
-       $defaults = array('taxonomy' => 'post_tag');
-       if ( !isset($box['args']) || !is_array($box['args']) )
+function post_tags_meta_box( $post, $box ) {
+       $defaults = array( 'taxonomy' => 'post_tag' );
+       if ( ! isset( $box['args'] ) || ! is_array( $box['args'] ) ) {
                $args = array();
                $args = array();
-       else
+       } else {
                $args = $box['args'];
                $args = $box['args'];
-       extract( wp_parse_args($args, $defaults), EXTR_SKIP );
-       $tax_name = esc_attr($taxonomy);
-       $taxonomy = get_taxonomy($taxonomy);
+       }
+       $r = wp_parse_args( $args, $defaults );
+       $tax_name = esc_attr( $r['taxonomy'] );
+       $taxonomy = get_taxonomy( $r['taxonomy'] );
        $user_can_assign_terms = current_user_can( $taxonomy->cap->assign_terms );
        $comma = _x( ',', 'tag delimiter' );
 ?>
        $user_can_assign_terms = current_user_can( $taxonomy->cap->assign_terms );
        $comma = _x( ',', 'tag delimiter' );
 ?>
@@ -417,59 +438,74 @@ function post_tags_meta_box($post, $box) {
  *
  * @since 2.6.0
  *
  *
  * @since 2.6.0
  *
- * @param object $post
+ * @todo Create taxonomy-agnostic wrapper for this.
+ *
+ * @param WP_Post $post Post object.
+ * @param array   $box {
+ *     Categories meta box arguments.
+ *
+ *     @type string   $id       Meta box ID.
+ *     @type string   $title    Meta box title.
+ *     @type callback $callback Meta box display callback.
+ *     @type array    $args {
+ *         Extra meta box arguments.
+ *
+ *         @type string $taxonomy Taxonomy. Default 'category'.
+ *     }
+ * }
  */
 function post_categories_meta_box( $post, $box ) {
  */
 function post_categories_meta_box( $post, $box ) {
-       $defaults = array('taxonomy' => 'category');
-       if ( !isset($box['args']) || !is_array($box['args']) )
+       $defaults = array( 'taxonomy' => 'category' );
+       if ( ! isset( $box['args'] ) || ! is_array( $box['args'] ) ) {
                $args = array();
                $args = array();
-       else
+       } else {
                $args = $box['args'];
                $args = $box['args'];
-       extract( wp_parse_args($args, $defaults), EXTR_SKIP );
-       $tax = get_taxonomy($taxonomy);
-
+       }
+       $r = wp_parse_args( $args, $defaults );
+       $tax_name = esc_attr( $r['taxonomy'] );
+       $taxonomy = get_taxonomy( $r['taxonomy'] );
        ?>
        ?>
-       <div id="taxonomy-<?php echo $taxonomy; ?>" class="categorydiv">
-               <ul id="<?php echo $taxonomy; ?>-tabs" class="category-tabs">
-                       <li class="tabs"><a href="#<?php echo $taxonomy; ?>-all"><?php echo $tax->labels->all_items; ?></a></li>
-                       <li class="hide-if-no-js"><a href="#<?php echo $taxonomy; ?>-pop"><?php _e( 'Most Used' ); ?></a></li>
+       <div id="taxonomy-<?php echo $tax_name; ?>" class="categorydiv">
+               <ul id="<?php echo $tax_name; ?>-tabs" class="category-tabs">
+                       <li class="tabs"><a href="#<?php echo $tax_name; ?>-all"><?php echo $taxonomy->labels->all_items; ?></a></li>
+                       <li class="hide-if-no-js"><a href="#<?php echo $tax_name; ?>-pop"><?php _e( 'Most Used' ); ?></a></li>
                </ul>
 
                </ul>
 
-               <div id="<?php echo $taxonomy; ?>-pop" class="tabs-panel" style="display: none;">
-                       <ul id="<?php echo $taxonomy; ?>checklist-pop" class="categorychecklist form-no-clear" >
-                               <?php $popular_ids = wp_popular_terms_checklist($taxonomy); ?>
+               <div id="<?php echo $tax_name; ?>-pop" class="tabs-panel" style="display: none;">
+                       <ul id="<?php echo $tax_name; ?>checklist-pop" class="categorychecklist form-no-clear" >
+                               <?php $popular_ids = wp_popular_terms_checklist( $tax_name ); ?>
                        </ul>
                </div>
 
                        </ul>
                </div>
 
-               <div id="<?php echo $taxonomy; ?>-all" class="tabs-panel">
+               <div id="<?php echo $tax_name; ?>-all" class="tabs-panel">
                        <?php
                        <?php
-            $name = ( $taxonomy == 'category' ) ? 'post_category' : 'tax_input[' . $taxonomy . ']';
+            $name = ( $tax_name == 'category' ) ? 'post_category' : 'tax_input[' . $tax_name . ']';
             echo "<input type='hidden' name='{$name}[]' value='0' />"; // Allows for an empty term set to be sent. 0 is an invalid Term ID and will be ignored by empty() checks.
             ?>
             echo "<input type='hidden' name='{$name}[]' value='0' />"; // Allows for an empty term set to be sent. 0 is an invalid Term ID and will be ignored by empty() checks.
             ?>
-                       <ul id="<?php echo $taxonomy; ?>checklist" data-wp-lists="list:<?php echo $taxonomy?>" class="categorychecklist form-no-clear">
-                               <?php wp_terms_checklist($post->ID, array( 'taxonomy' => $taxonomy, 'popular_cats' => $popular_ids ) ) ?>
+                       <ul id="<?php echo $tax_name; ?>checklist" data-wp-lists="list:<?php echo $tax_name; ?>" class="categorychecklist form-no-clear">
+                               <?php wp_terms_checklist( $post->ID, array( 'taxonomy' => $tax_name, 'popular_cats' => $popular_ids ) ); ?>
                        </ul>
                </div>
                        </ul>
                </div>
-       <?php if ( current_user_can($tax->cap->edit_terms) ) : ?>
-                       <div id="<?php echo $taxonomy; ?>-adder" class="wp-hidden-children">
+       <?php if ( current_user_can( $taxonomy->cap->edit_terms ) ) : ?>
+                       <div id="<?php echo $tax_name; ?>-adder" class="wp-hidden-children">
                                <h4>
                                <h4>
-                                       <a id="<?php echo $taxonomy; ?>-add-toggle" href="#<?php echo $taxonomy; ?>-add" class="hide-if-no-js">
+                                       <a id="<?php echo $tax_name; ?>-add-toggle" href="#<?php echo $tax_name; ?>-add" class="hide-if-no-js">
                                                <?php
                                                        /* translators: %s: add new taxonomy label */
                                                <?php
                                                        /* translators: %s: add new taxonomy label */
-                                                       printf( __( '+ %s' ), $tax->labels->add_new_item );
+                                                       printf( __( '+ %s' ), $taxonomy->labels->add_new_item );
                                                ?>
                                        </a>
                                </h4>
                                                ?>
                                        </a>
                                </h4>
-                               <p id="<?php echo $taxonomy; ?>-add" class="category-add wp-hidden-child">
-                                       <label class="screen-reader-text" for="new<?php echo $taxonomy; ?>"><?php echo $tax->labels->add_new_item; ?></label>
-                                       <input type="text" name="new<?php echo $taxonomy; ?>" id="new<?php echo $taxonomy; ?>" class="form-required form-input-tip" value="<?php echo esc_attr( $tax->labels->new_item_name ); ?>" aria-required="true"/>
-                                       <label class="screen-reader-text" for="new<?php echo $taxonomy; ?>_parent">
-                                               <?php echo $tax->labels->parent_item_colon; ?>
+                               <p id="<?php echo $tax_name; ?>-add" class="category-add wp-hidden-child">
+                                       <label class="screen-reader-text" for="new<?php echo $tax_name; ?>"><?php echo $taxonomy->labels->add_new_item; ?></label>
+                                       <input type="text" name="new<?php echo $tax_name; ?>" id="new<?php echo $tax_name; ?>" class="form-required form-input-tip" value="<?php echo esc_attr( $taxonomy->labels->new_item_name ); ?>" aria-required="true"/>
+                                       <label class="screen-reader-text" for="new<?php echo $tax_name; ?>_parent">
+                                               <?php echo $taxonomy->labels->parent_item_colon; ?>
                                        </label>
                                        </label>
-                                       <?php wp_dropdown_categories( array( 'taxonomy' => $taxonomy, 'hide_empty' => 0, 'name' => 'new'.$taxonomy.'_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '&mdash; ' . $tax->labels->parent_item . ' &mdash;' ) ); ?>
-                                       <input type="button" id="<?php echo $taxonomy; ?>-add-submit" data-wp-lists="add:<?php echo $taxonomy ?>checklist:<?php echo $taxonomy ?>-add" class="button category-add-submit" value="<?php echo esc_attr( $tax->labels->add_new_item ); ?>" />
-                                       <?php wp_nonce_field( 'add-'.$taxonomy, '_ajax_nonce-add-'.$taxonomy, false ); ?>
-                                       <span id="<?php echo $taxonomy; ?>-ajax-response"></span>
+                                       <?php wp_dropdown_categories( array( 'taxonomy' => $tax_name, 'hide_empty' => 0, 'name' => 'new' . $tax_name . '_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '&mdash; ' . $taxonomy->labels->parent_item . ' &mdash;' ) ); ?>
+                                       <input type="button" id="<?php echo $tax_name; ?>-add-submit" data-wp-lists="add:<?php echo $tax_name; ?>checklist:<?php echo $tax_name; ?>-add" class="button category-add-submit" value="<?php echo esc_attr( $taxonomy->labels->add_new_item ); ?>" />
+                                       <?php wp_nonce_field( 'add-' . $tax_name, '_ajax_nonce-add-' . $tax_name, false ); ?>
+                                       <span id="<?php echo $tax_name; ?>-ajax-response"></span>
                                </p>
                        </div>
                <?php endif; ?>
                                </p>
                        </div>
                <?php endif; ?>
@@ -589,8 +625,6 @@ function post_comment_meta_box_thead($result) {
  * @param object $post
  */
 function post_comment_meta_box( $post ) {
  * @param object $post
  */
 function post_comment_meta_box( $post ) {
-       global $wpdb;
-
        wp_nonce_field( 'get-comments', 'add_comment_nonce', false );
        ?>
        <p class="hide-if-no-js" id="add-new-comment"><a class="button" href="#commentstatusdiv" onclick="window.commentReply && commentReply.addcomment(<?php echo $post->ID; ?>);return false;"><?php _e('Add comment'); ?></a></p>
        wp_nonce_field( 'get-comments', 'add_comment_nonce', false );
        ?>
        <p class="hide-if-no-js" id="add-new-comment"><a class="button" href="#commentstatusdiv" onclick="window.commentReply && commentReply.addcomment(<?php echo $post->ID; ?>);return false;"><?php _e('Add comment'); ?></a></p>
index 3680f8e5a954ec42eef6789d3c269306db1893da..f93e138819cd0ecca8535bca37766e4ab9a47d14 100644 (file)
@@ -22,9 +22,10 @@ function got_mod_rewrite() {
         * This filter was previously used to force URL rewriting for other servers,
         * like nginx. Use the got_url_rewrite filter in got_url_rewrite() instead.
         *
         * This filter was previously used to force URL rewriting for other servers,
         * like nginx. Use the got_url_rewrite filter in got_url_rewrite() instead.
         *
+        * @since 2.5.0
+        *
         * @see got_url_rewrite()
         *
         * @see got_url_rewrite()
         *
-        * @since 2.5.0
         * @param bool $got_rewrite Whether Apache and mod_rewrite are present.
         */
        return apply_filters( 'got_rewrite', $got_rewrite );
         * @param bool $got_rewrite Whether Apache and mod_rewrite are present.
         */
        return apply_filters( 'got_rewrite', $got_rewrite );
@@ -46,6 +47,7 @@ function got_url_rewrite() {
         * Filter whether URL rewriting is available.
         *
         * @since 3.7.0
         * Filter whether URL rewriting is available.
         *
         * @since 3.7.0
+        *
         * @param bool $got_url_rewrite Whether URL rewriting is available.
         */
        return apply_filters( 'got_url_rewrite', $got_url_rewrite );
         * @param bool $got_url_rewrite Whether URL rewriting is available.
         */
        return apply_filters( 'got_url_rewrite', $got_url_rewrite );
@@ -161,8 +163,10 @@ function save_mod_rewrite_rules() {
        $home_path = get_home_path();
        $htaccess_file = $home_path.'.htaccess';
 
        $home_path = get_home_path();
        $htaccess_file = $home_path.'.htaccess';
 
-       // If the file doesn't already exist check for write access to the directory and whether we have some rules.
-       // else check for write access to the file.
+       /*
+        * If the file doesn't already exist check for write access to the directory
+        * and whether we have some rules. Else check for write access to the file.
+        */
        if ((!file_exists($htaccess_file) && is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks()) || is_writable($htaccess_file)) {
                if ( got_mod_rewrite() ) {
                        $rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() );
        if ((!file_exists($htaccess_file) && is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks()) || is_writable($htaccess_file)) {
                if ( got_mod_rewrite() ) {
                        $rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() );
@@ -272,17 +276,15 @@ function url_shorten( $url ) {
  * @param array $vars An array of globals to reset.
  */
 function wp_reset_vars( $vars ) {
  * @param array $vars An array of globals to reset.
  */
 function wp_reset_vars( $vars ) {
-       for ( $i=0; $i<count( $vars ); $i += 1 ) {
-               $var = $vars[$i];
-               global $$var;
-
-               if ( empty( $_POST[$var] ) ) {
-                       if ( empty( $_GET[$var] ) )
-                               $$var = '';
-                       else
-                               $$var = $_GET[$var];
+       foreach ( $vars as $var ) {
+               if ( empty( $_POST[ $var ] ) ) {
+                       if ( empty( $_GET[ $var ] ) ) {
+                               $GLOBALS[ $var ] = '';
+                       } else {
+                               $GLOBALS[ $var ] = $_GET[ $var ];
+                       }
                } else {
                } else {
-                       $$var = $_POST[$var];
+                       $GLOBALS[ $var ] = $_POST[ $var ];
                }
        }
 }
                }
        }
 }
@@ -336,11 +338,11 @@ function wp_doc_link_parse( $content ) {
        sort( $functions );
 
        /**
        sort( $functions );
 
        /**
-        * Filter the list of functions/classes to be ignored from the documentation lookup.
+        * Filter the list of functions and classes to be ignored from the documentation lookup.
         *
         * @since 2.8.0
         *
         *
         * @since 2.8.0
         *
-        * @param array $ignore_functions Functions/Classes to be ignored.
+        * @param array $ignore_functions Functions and classes to be ignored.
         */
        $ignore_functions = apply_filters( 'documentation_ignore_functions', $ignore_functions );
 
         */
        $ignore_functions = apply_filters( 'documentation_ignore_functions', $ignore_functions );
 
@@ -802,7 +804,7 @@ add_filter( 'heartbeat_settings', 'wp_heartbeat_set_suspension' );
 /**
  * Autosave with heartbeat
  *
 /**
  * Autosave with heartbeat
  *
- * @since 3.9
+ * @since 3.9.0
  */
 function heartbeat_autosave( $response, $data ) {
        if ( ! empty( $data['wp_autosave'] ) ) {
  */
 function heartbeat_autosave( $response, $data ) {
        if ( ! empty( $data['wp_autosave'] ) ) {
@@ -824,3 +826,20 @@ function heartbeat_autosave( $response, $data ) {
 }
 // Run later as we have to set DOING_AUTOSAVE for back-compat
 add_filter( 'heartbeat_received', 'heartbeat_autosave', 500, 2 );
 }
 // Run later as we have to set DOING_AUTOSAVE for back-compat
 add_filter( 'heartbeat_received', 'heartbeat_autosave', 500, 2 );
+
+/**
+ * Disables autocomplete on the 'post' form (Add/Edit Post screens) for WebKit browsers,
+ * as they disregard the autocomplete setting on the editor textarea. That can break the editor
+ * when the user navigates to it with the browser's Back button. See #28037
+ *
+ * @since 4.0
+ */
+function post_form_autocomplete_off() {
+       global $is_safari, $is_chrome;
+
+       if ( $is_safari || $is_chrome ) {
+               echo ' autocomplete="off"';
+       }
+}
+
+add_action( 'post_edit_form_tag', 'post_form_autocomplete_off' );
index 702e3e13cfc5f5aa57585695f13acdc8383d8194..44e2a82b2043f3c65ca545171cbaaeb56e7eb8e8 100644 (file)
@@ -14,7 +14,7 @@
  */
 function wpmu_menu() {
        _deprecated_function(__FUNCTION__, '3.0' );
  */
 function wpmu_menu() {
        _deprecated_function(__FUNCTION__, '3.0' );
-       // deprecated. See #11763
+       // Deprecated. See #11763.
 }
 
 /**
 }
 
 /**
index 3a4d1907bc6a62183b3f872e692ad022df698cf6..84f61670bf8c2368be9640b56289b22ab72a2d5e 100644 (file)
@@ -211,7 +211,6 @@ function wpmu_delete_user( $id ) {
 }
 
 function update_option_new_admin_email( $old_value, $value ) {
 }
 
 function update_option_new_admin_email( $old_value, $value ) {
-       $email = get_option( 'admin_email' );
        if ( $value == get_option( 'admin_email' ) || !is_email( $value ) )
                return;
 
        if ( $value == get_option( 'admin_email' ) || !is_email( $value ) )
                return;
 
@@ -670,10 +669,10 @@ function choose_primary_blog() {
                <tr>
                        <th scope="row" colspan="2" class="th-full">
                                <?php
                <tr>
                        <th scope="row" colspan="2" class="th-full">
                                <?php
-                               $signup_url = network_site_url( 'wp-signup.php' );
                                /** This filter is documented in wp-login.php */
                                /** This filter is documented in wp-login.php */
+                               $sign_up_url = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) );
                                ?>
                                ?>
-                               <a href="<?php echo apply_filters( 'wp_signup_location', $signup_url ); ?>"><?php _e( 'Create a New Site' ); ?></a>
+                               <a href="<?php echo esc_url( $sign_up_url ); ?>"><?php _e( 'Create a New Site' ); ?></a>
                        </th>
                </tr>
        <?php endif; ?>
                        </th>
                </tr>
        <?php endif; ?>
index 05a9b294767c19215bd033f686cd8ffb5ccab964..44f3ee08435263e7a797ccff328847fb0c95053e 100644 (file)
@@ -19,7 +19,7 @@ class Walker_Nav_Menu_Edit extends Walker_Nav_Menu {
         * @param int    $depth  Depth of menu item. Used for padding.
         * @param array  $args   Not used.
         */
         * @param int    $depth  Depth of menu item. Used for padding.
         * @param array  $args   Not used.
         */
-       function start_lvl( &$output, $depth = 0, $args = array() ) {}
+       public function start_lvl( &$output, $depth = 0, $args = array() ) {}
 
        /**
         * Ends the list of after the elements are added.
 
        /**
         * Ends the list of after the elements are added.
@@ -32,7 +32,7 @@ class Walker_Nav_Menu_Edit extends Walker_Nav_Menu {
         * @param int    $depth  Depth of menu item. Used for padding.
         * @param array  $args   Not used.
         */
         * @param int    $depth  Depth of menu item. Used for padding.
         * @param array  $args   Not used.
         */
-       function end_lvl( &$output, $depth = 0, $args = array() ) {}
+       public function end_lvl( &$output, $depth = 0, $args = array() ) {}
 
        /**
         * Start the element output.
 
        /**
         * Start the element output.
@@ -46,7 +46,7 @@ class Walker_Nav_Menu_Edit extends Walker_Nav_Menu {
         * @param array  $args   Not used.
         * @param int    $id     Not used.
         */
         * @param array  $args   Not used.
         * @param int    $id     Not used.
         */
-       function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
+       public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
                global $_wp_nav_menu_max_depth;
                $_wp_nav_menu_max_depth = $depth > $_wp_nav_menu_max_depth ? $depth : $_wp_nav_menu_max_depth;
 
                global $_wp_nav_menu_max_depth;
                $_wp_nav_menu_max_depth = $depth > $_wp_nav_menu_max_depth ? $depth : $_wp_nav_menu_max_depth;
 
@@ -235,7 +235,7 @@ class Walker_Nav_Menu_Edit extends Walker_Nav_Menu {
  * @uses Walker_Nav_Menu
  */
 class Walker_Nav_Menu_Checklist extends Walker_Nav_Menu {
  * @uses Walker_Nav_Menu
  */
 class Walker_Nav_Menu_Checklist extends Walker_Nav_Menu {
-       function __construct( $fields = false ) {
+       public function __construct( $fields = false ) {
                if ( $fields ) {
                        $this->db_fields = $fields;
                }
                if ( $fields ) {
                        $this->db_fields = $fields;
                }
@@ -252,7 +252,7 @@ class Walker_Nav_Menu_Checklist extends Walker_Nav_Menu {
         * @param int    $depth  Depth of page. Used for padding.
         * @param array  $args   Not used.
         */
         * @param int    $depth  Depth of page. Used for padding.
         * @param array  $args   Not used.
         */
-       function start_lvl( &$output, $depth = 0, $args = array() ) {
+       public function start_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat( "\t", $depth );
                $output .= "\n$indent<ul class='children'>\n";
        }
                $indent = str_repeat( "\t", $depth );
                $output .= "\n$indent<ul class='children'>\n";
        }
@@ -268,7 +268,7 @@ class Walker_Nav_Menu_Checklist extends Walker_Nav_Menu {
         * @param int    $depth  Depth of page. Used for padding.
         * @param array  $args   Not used.
         */
         * @param int    $depth  Depth of page. Used for padding.
         * @param array  $args   Not used.
         */
-       function end_lvl( &$output, $depth = 0, $args = array() ) {
+       public function end_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat( "\t", $depth );
                $output .= "\n$indent</ul>";
        }
                $indent = str_repeat( "\t", $depth );
                $output .= "\n$indent</ul>";
        }
@@ -286,7 +286,7 @@ class Walker_Nav_Menu_Checklist extends Walker_Nav_Menu {
         * @param array  $args   Not used.
         * @param int    $id     Not used.
         */
         * @param array  $args   Not used.
         * @param int    $id     Not used.
         */
-       function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
+       public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
                global $_nav_menu_placeholder;
 
                $_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
                global $_nav_menu_placeholder;
 
                $_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
@@ -356,7 +356,6 @@ function _wp_ajax_menu_quick_search( $request = array() ) {
                                if ( 'markup' == $response_format ) {
                                        echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', array( get_post( $object_id ) ) ), 0, (object) $args );
                                } elseif ( 'json' == $response_format ) {
                                if ( 'markup' == $response_format ) {
                                        echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', array( get_post( $object_id ) ) ), 0, (object) $args );
                                } elseif ( 'json' == $response_format ) {
-                                       $post_obj = get_post( $object_id );
                                        echo json_encode(
                                                array(
                                                        'ID' => $object_id,
                                        echo json_encode(
                                                array(
                                                        'ID' => $object_id,
@@ -503,19 +502,21 @@ function wp_nav_menu_post_type_meta_boxes() {
 
        foreach ( $post_types as $post_type ) {
                /**
 
        foreach ( $post_types as $post_type ) {
                /**
-                * Filter whether a menu items meta box will be added for the current post type.
+                * Filter whether a menu items meta box will be added for the current
+                * object type.
                 *
                 *
-                * If a falsey value is returned instead of a post type object,
-                * the post type menu items meta box will not be added.
+                * If a falsey value is returned instead of an object, the menu items
+                * meta box for the current meta box object will not be added.
                 *
                 * @since 3.0.0
                 *
                 *
                 * @since 3.0.0
                 *
-                * @param object $post_type The post type object to be used as a meta box.
+                * @param object $meta_box_object The current object to add a menu items
+                *                                meta box for.
                 */
                $post_type = apply_filters( 'nav_menu_meta_box_object', $post_type );
                if ( $post_type ) {
                        $id = $post_type->name;
                 */
                $post_type = apply_filters( 'nav_menu_meta_box_object', $post_type );
                if ( $post_type ) {
                        $id = $post_type->name;
-                       // give pages a higher priority
+                       // Give pages a higher priority.
                        $priority = ( 'page' == $post_type->name ? 'core' : 'default' );
                        add_meta_box( "add-{$id}", $post_type->labels->name, 'wp_nav_menu_item_post_type_meta_box', 'nav-menus', 'side', $priority, $post_type );
                }
                        $priority = ( 'page' == $post_type->name ? 'core' : 'default' );
                        add_meta_box( "add-{$id}", $post_type->labels->name, 'wp_nav_menu_item_post_type_meta_box', 'nav-menus', 'side', $priority, $post_type );
                }
@@ -534,16 +535,7 @@ function wp_nav_menu_taxonomy_meta_boxes() {
                return;
 
        foreach ( $taxonomies as $tax ) {
                return;
 
        foreach ( $taxonomies as $tax ) {
-               /**
-                * Filter whether a menu items meta box will be added for the current taxonomy.
-                *
-                * If a falsey value is returned instead of a taxonomy object,
-                * the taxonomy menu items meta box will not be added.
-                *
-                * @since 3.0.0
-                *
-                * @param object $tax The taxonomy object to be used as a meta box.
-                */
+               /** This filter is documented in wp-admin/includes/nav-menu.php */
                $tax = apply_filters( 'nav_menu_meta_box_object', $tax );
                if ( $tax ) {
                        $id = $tax->name;
                $tax = apply_filters( 'nav_menu_meta_box_object', $tax );
                if ( $tax ) {
                        $id = $tax->name;
@@ -623,7 +615,7 @@ function wp_nav_menu_item_post_type_meta_box( $object, $post_type ) {
 
        $post_type_name = $post_type['args']->name;
 
 
        $post_type_name = $post_type['args']->name;
 
-       // paginate browsing for large numbers of post objects
+       // Paginate browsing for large numbers of post objects.
        $per_page = 50;
        $pagenum = isset( $_REQUEST[$post_type_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
        $offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;
        $per_page = 50;
        $pagenum = isset( $_REQUEST[$post_type_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
        $offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;
@@ -650,8 +642,6 @@ function wp_nav_menu_item_post_type_meta_box( $object, $post_type ) {
                return;
        }
 
                return;
        }
 
-       $post_type_object = get_post_type_object($post_type_name);
-
        $num_pages = $get_posts->max_num_pages;
 
        $page_links = paginate_links( array(
        $num_pages = $get_posts->max_num_pages;
 
        $page_links = paginate_links( array(
@@ -670,9 +660,6 @@ function wp_nav_menu_item_post_type_meta_box( $object, $post_type ) {
                'current' => $pagenum
        ));
 
                'current' => $pagenum
        ));
 
-       if ( !$posts )
-               $error = '<li id="error">'. $post_type['args']->labels->not_found .'</li>';
-
        $db_fields = false;
        if ( is_post_type_hierarchical( $post_type_name ) ) {
                $db_fields = array( 'parent' => 'post_parent', 'id' => 'ID' );
        $db_fields = false;
        if ( is_post_type_hierarchical( $post_type_name ) ) {
                $db_fields = array( 'parent' => 'post_parent', 'id' => 'ID' );
@@ -775,7 +762,10 @@ function wp_nav_menu_item_post_type_meta_box( $object, $post_type ) {
                                <?php
                                $args['walker'] = $walker;
 
                                <?php
                                $args['walker'] = $walker;
 
-                               // if we're dealing with pages, let's put a checkbox for the front page at the top of the list
+                               /*
+                                * If we're dealing with pages, let's put a checkbox for the front
+                                * page at the top of the list.
+                                */
                                if ( 'page' == $post_type_name ) {
                                        $front_page = 'page' == get_option('show_on_front') ? (int) get_option( 'page_on_front' ) : 0;
                                        if ( ! empty( $front_page ) ) {
                                if ( 'page' == $post_type_name ) {
                                        $front_page = 'page' == get_option('show_on_front') ? (int) get_option( 'page_on_front' ) : 0;
                                        if ( ! empty( $front_page ) ) {
@@ -867,7 +857,7 @@ function wp_nav_menu_item_taxonomy_meta_box( $object, $taxonomy ) {
        global $nav_menu_selected_id;
        $taxonomy_name = $taxonomy['args']->name;
 
        global $nav_menu_selected_id;
        $taxonomy_name = $taxonomy['args']->name;
 
-       // paginate browsing for large numbers of objects
+       // Paginate browsing for large numbers of objects.
        $per_page = 50;
        $pagenum = isset( $_REQUEST[$taxonomy_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
        $offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;
        $per_page = 50;
        $pagenum = isset( $_REQUEST[$taxonomy_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
        $offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;
@@ -1058,21 +1048,26 @@ function wp_save_nav_menu_items( $menu_id = 0, $menu_data = array() ) {
 
        if ( 0 == $menu_id || is_nav_menu( $menu_id ) ) {
 
 
        if ( 0 == $menu_id || is_nav_menu( $menu_id ) ) {
 
-               // Loop through all the menu items' POST values
+               // Loop through all the menu items' POST values.
                foreach( (array) $menu_data as $_possible_db_id => $_item_object_data ) {
                        if (
                foreach( (array) $menu_data as $_possible_db_id => $_item_object_data ) {
                        if (
-                               empty( $_item_object_data['menu-item-object-id'] ) && // checkbox is not checked
+                               // Checkbox is not checked.
+                               empty( $_item_object_data['menu-item-object-id'] ) &&
                                (
                                (
-                                       ! isset( $_item_object_data['menu-item-type'] ) || // and item type either isn't set
-                                       in_array( $_item_object_data['menu-item-url'], array( 'http://', '' ) ) || // or URL is the default
+                                       // And item type either isn't set.
+                                       ! isset( $_item_object_data['menu-item-type'] ) ||
+                                       // Or URL is the default.
+                                       in_array( $_item_object_data['menu-item-url'], array( 'http://', '' ) ) ||
                                        ! ( 'custom' == $_item_object_data['menu-item-type'] && ! isset( $_item_object_data['menu-item-db-id'] ) ) || // or it's not a custom menu item (but not the custom home page)
                                        ! ( 'custom' == $_item_object_data['menu-item-type'] && ! isset( $_item_object_data['menu-item-db-id'] ) ) || // or it's not a custom menu item (but not the custom home page)
-                                       ! empty( $_item_object_data['menu-item-db-id'] ) // or it *is* a custom menu item that already exists
+                                       // Or it *is* a custom menu item that already exists.
+                                       ! empty( $_item_object_data['menu-item-db-id'] )
                                )
                        ) {
                                )
                        ) {
-                               continue; // then this potential menu item is not getting added to this menu
+                               // Then this potential menu item is not getting added to this menu.
+                               continue;
                        }
 
                        }
 
-                       // if this possible menu item doesn't actually have a menu database ID yet
+                       // If this possible menu item doesn't actually have a menu database ID yet.
                        if (
                                empty( $_item_object_data['menu-item-db-id'] ) ||
                                ( 0 > $_possible_db_id ) ||
                        if (
                                empty( $_item_object_data['menu-item-db-id'] ) ||
                                ( 0 > $_possible_db_id ) ||
@@ -1125,20 +1120,20 @@ function _wp_nav_menu_meta_box_object( $object = null ) {
                                'post_status' => 'publish',
                        );
 
                                'post_status' => 'publish',
                        );
 
-               // posts should show only published items
+               // Posts should show only published items.
                } elseif ( 'post' == $object->name ) {
                        $object->_default_query = array(
                                'post_status' => 'publish',
                        );
 
                } elseif ( 'post' == $object->name ) {
                        $object->_default_query = array(
                                'post_status' => 'publish',
                        );
 
-               // cats should be in reverse chronological order
+               // Categories should be in reverse chronological order.
                } elseif ( 'category' == $object->name ) {
                        $object->_default_query = array(
                                'orderby' => 'id',
                                'order' => 'DESC',
                        );
 
                } elseif ( 'category' == $object->name ) {
                        $object->_default_query = array(
                                'orderby' => 'id',
                                'order' => 'DESC',
                        );
 
-               // custom post types should show only published items
+               // Custom post types should show only published items.
                } else {
                        $object->_default_query = array(
                                'post_status' => 'publish',
                } else {
                        $object->_default_query = array(
                                'post_status' => 'publish',
@@ -1172,12 +1167,12 @@ function wp_get_nav_menu_to_edit( $menu_id = 0 ) {
                        return $result . ' <ul class="menu" id="menu-to-edit"> </ul>';
 
                /**
                        return $result . ' <ul class="menu" id="menu-to-edit"> </ul>';
 
                /**
-                * Filter the Walker class used to render a menu formatted for editing.
+                * Filter the Walker class used when adding nav menu items.
                 *
                 * @since 3.0.0
                 *
                 *
                 * @since 3.0.0
                 *
-                * @param string $walker_class_name The Walker class used to render a menu formatted for editing.
-                * @param int    $menu_id           The ID of the menu being rendered.
+                * @param string $class   The walker class to use. Default 'Walker_Nav_Menu_Edit'.
+                * @param int    $menu_id ID of the menu being rendered.
                 */
                $walker_class_name = apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $menu_id );
 
                 */
                $walker_class_name = apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $menu_id );
 
@@ -1239,7 +1234,7 @@ function _wp_delete_orphaned_draft_menu_items() {
        global $wpdb;
        $delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );
 
        global $wpdb;
        $delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );
 
-       // delete orphaned draft menu items
+       // Delete orphaned draft menu items.
        $menu_items_to_delete = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id WHERE post_type = 'nav_menu_item' AND post_status = 'draft' AND meta_key = '_menu_item_orphaned' AND meta_value < '%d'", $delete_timestamp ) );
 
        foreach( (array) $menu_items_to_delete as $menu_item_id )
        $menu_items_to_delete = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id WHERE post_type = 'nav_menu_item' AND post_status = 'draft' AND meta_key = '_menu_item_orphaned' AND meta_value < '%d'", $delete_timestamp ) );
 
        foreach( (array) $menu_items_to_delete as $menu_item_id )
index 44a6a1b4c436c6742aea164b55327802b2b3608f..90a55539d19f9c8ff457393b51855d33da9d6e02 100644 (file)
@@ -128,11 +128,10 @@ function install_dashboard() {
        ?>
        <p><?php printf( __( 'Plugins extend and expand the functionality of WordPress. You may automatically install plugins from the <a href="%1$s">WordPress Plugin Directory</a> or upload a plugin in .zip format via <a href="%2$s">this page</a>.' ), 'https://wordpress.org/plugins/', self_admin_url( 'plugin-install.php?tab=upload' ) ); ?></p>
 
        ?>
        <p><?php printf( __( 'Plugins extend and expand the functionality of WordPress. You may automatically install plugins from the <a href="%1$s">WordPress Plugin Directory</a> or upload a plugin in .zip format via <a href="%2$s">this page</a>.' ), 'https://wordpress.org/plugins/', self_admin_url( 'plugin-install.php?tab=upload' ) ); ?></p>
 
-       <h4><?php _e('Search') ?></h4>
-       <?php install_search_form( false ); ?>
+       <?php display_plugins_table(); ?>
 
 
-       <h4><?php _e('Popular tags') ?></h4>
-       <p class="install-help"><?php _e('You may also browse based on the most popular tags in the Plugin Directory:') ?></p>
+       <h3><?php _e( 'Popular tags' ) ?></h3>
+       <p><?php _e( 'You may also browse based on the most popular tags in the Plugin Directory:' ) ?></p>
        <?php
 
        $api_tags = install_popular_tags();
        <?php
 
        $api_tags = install_popular_tags();
@@ -153,7 +152,7 @@ function install_dashboard() {
        }
        echo '</p><br class="clear" />';
 }
        }
        echo '</p><br class="clear" />';
 }
-add_action('install_plugins_dashboard', 'install_dashboard');
+add_action( 'install_plugins_featured', 'install_dashboard' );
 
 /**
  * Display search form for searching plugins.
 
 /**
  * Display search form for searching plugins.
@@ -163,8 +162,15 @@ add_action('install_plugins_dashboard', 'install_dashboard');
 function install_search_form( $type_selector = true ) {
        $type = isset($_REQUEST['type']) ? wp_unslash( $_REQUEST['type'] ) : 'term';
        $term = isset($_REQUEST['s']) ? wp_unslash( $_REQUEST['s'] ) : '';
 function install_search_form( $type_selector = true ) {
        $type = isset($_REQUEST['type']) ? wp_unslash( $_REQUEST['type'] ) : 'term';
        $term = isset($_REQUEST['s']) ? wp_unslash( $_REQUEST['s'] ) : '';
+       $input_attrs = '';
+       $button_type = 'button screen-reader-text';
 
 
-       ?><form id="search-plugins" method="get" action="">
+       // assume no $type_selector means it's a simplified search form
+       if ( ! $type_selector ) {
+               $input_attrs = 'class="wp-filter-search" placeholder="' . esc_attr__( 'Search Plugins' ) . '" ';
+       }
+
+       ?><form class="search-form search-plugins" method="get" action="">
                <input type="hidden" name="tab" value="search" />
                <?php if ( $type_selector ) : ?>
                <select name="type" id="typeselector">
                <input type="hidden" name="tab" value="search" />
                <?php if ( $type_selector ) : ?>
                <select name="type" id="typeselector">
@@ -173,9 +179,10 @@ function install_search_form( $type_selector = true ) {
                        <option value="tag"<?php selected('tag', $type) ?>><?php _ex('Tag', 'Plugin Installer'); ?></option>
                </select>
                <?php endif; ?>
                        <option value="tag"<?php selected('tag', $type) ?>><?php _ex('Tag', 'Plugin Installer'); ?></option>
                </select>
                <?php endif; ?>
-               <input type="search" name="s" value="<?php echo esc_attr($term) ?>" autofocus="autofocus" />
-               <label class="screen-reader-text" for="plugin-search-input"><?php _e('Search Plugins'); ?></label>
-               <?php submit_button( __( 'Search Plugins' ), 'button', 'plugin-search-input', false ); ?>
+               <label><span class="screen-reader-text"><?php _e('Search Plugins'); ?></span>
+                       <input type="search" name="s" value="<?php echo esc_attr($term) ?>" <?php echo $input_attrs; ?>/>
+               </label>
+               <?php submit_button( __( 'Search Plugins' ), $button_type, false, false, array( 'id' => 'search-submit' ) ); ?>
        </form><?php
 }
 
        </form><?php
 }
 
@@ -187,7 +194,7 @@ function install_search_form( $type_selector = true ) {
  */
 function install_plugins_upload( $page = 1 ) {
 ?>
  */
 function install_plugins_upload( $page = 1 ) {
 ?>
-       <h4><?php _e('Install a plugin in .zip format'); ?></h4>
+<div class="upload-plugin">
        <p class="install-help"><?php _e('If you have a plugin in a .zip format, you may install it by uploading it here.'); ?></p>
        <form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-plugin'); ?>">
                <?php wp_nonce_field( 'plugin-upload'); ?>
        <p class="install-help"><?php _e('If you have a plugin in a .zip format, you may install it by uploading it here.'); ?></p>
        <form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-plugin'); ?>">
                <?php wp_nonce_field( 'plugin-upload'); ?>
@@ -195,6 +202,7 @@ function install_plugins_upload( $page = 1 ) {
                <input type="file" id="pluginzip" name="pluginzip" />
                <?php submit_button( __( 'Install Now' ), 'button', 'install-plugin-submit', false ); ?>
        </form>
                <input type="file" id="pluginzip" name="pluginzip" />
                <?php submit_button( __( 'Install Now' ), 'button', 'install-plugin-submit', false ); ?>
        </form>
+</div>
 <?php
 }
 add_action('install_plugins_upload', 'install_plugins_upload', 10, 1);
 <?php
 }
 add_action('install_plugins_upload', 'install_plugins_upload', 10, 1);
@@ -233,9 +241,9 @@ function display_plugins_table() {
        $wp_list_table->display();
 }
 add_action( 'install_plugins_search',    'display_plugins_table' );
        $wp_list_table->display();
 }
 add_action( 'install_plugins_search',    'display_plugins_table' );
-add_action( 'install_plugins_featured',  'display_plugins_table' );
 add_action( 'install_plugins_popular',   'display_plugins_table' );
 add_action( 'install_plugins_new',       'display_plugins_table' );
 add_action( 'install_plugins_popular',   'display_plugins_table' );
 add_action( 'install_plugins_new',       'display_plugins_table' );
+add_action( 'install_plugins_beta',      'display_plugins_table' );
 add_action( 'install_plugins_favorites', 'display_plugins_table' );
 
 /**
 add_action( 'install_plugins_favorites', 'display_plugins_table' );
 
 /**
@@ -244,15 +252,18 @@ add_action( 'install_plugins_favorites', 'display_plugins_table' );
  * @since 3.0.0
  */
 function install_plugin_install_status($api, $loop = false) {
  * @since 3.0.0
  */
 function install_plugin_install_status($api, $loop = false) {
-       // this function is called recursively, $loop prevents further loops.
+       // This function is called recursively, $loop prevents further loops.
        if ( is_array($api) )
                $api = (object) $api;
 
        if ( is_array($api) )
                $api = (object) $api;
 
-       //Default to a "new" plugin
+       // Default to a "new" plugin
        $status = 'install';
        $url = false;
 
        $status = 'install';
        $url = false;
 
-       //Check to see if this plugin is known to be installed, and has an update awaiting it.
+       /*
+        * Check to see if this plugin is known to be installed,
+        * and has an update awaiting it.
+        */
        $update_plugins = get_site_transient('update_plugins');
        if ( isset( $update_plugins->response ) ) {
                foreach ( (array)$update_plugins->response as $file => $plugin ) {
        $update_plugins = get_site_transient('update_plugins');
        if ( isset( $update_plugins->response ) ) {
                foreach ( (array)$update_plugins->response as $file => $plugin ) {
@@ -310,60 +321,93 @@ function install_plugin_install_status($api, $loop = false) {
 function install_plugin_information() {
        global $tab;
 
 function install_plugin_information() {
        global $tab;
 
-       $api = plugins_api( 'plugin_information', array( 'slug' => wp_unslash( $_REQUEST['plugin'] ), 'is_ssl' => is_ssl() ) );
+       $api = plugins_api( 'plugin_information', array(
+               'slug' => wp_unslash( $_REQUEST['plugin'] ),
+               'is_ssl' => is_ssl(),
+               'fields' => array( 'banners' => true, 'reviews' => true )
+       ) );
 
 
-       if ( is_wp_error( $api ) )
+       if ( is_wp_error( $api ) ) {
                wp_die( $api );
                wp_die( $api );
+       }
 
        $plugins_allowedtags = array(
                'a' => array( 'href' => array(), 'title' => array(), 'target' => array() ),
                'abbr' => array( 'title' => array() ), 'acronym' => array( 'title' => array() ),
                'code' => array(), 'pre' => array(), 'em' => array(), 'strong' => array(),
 
        $plugins_allowedtags = array(
                'a' => array( 'href' => array(), 'title' => array(), 'target' => array() ),
                'abbr' => array( 'title' => array() ), 'acronym' => array( 'title' => array() ),
                'code' => array(), 'pre' => array(), 'em' => array(), 'strong' => array(),
-               'div' => array(), 'p' => array(), 'ul' => array(), 'ol' => array(), 'li' => array(),
+               'div' => array( 'class' => array() ), 'span' => array( 'class' => array() ),
+               'p' => array(), 'ul' => array(), 'ol' => array(), 'li' => array(),
                'h1' => array(), 'h2' => array(), 'h3' => array(), 'h4' => array(), 'h5' => array(), 'h6' => array(),
                'img' => array( 'src' => array(), 'class' => array(), 'alt' => array() )
        );
 
        $plugins_section_titles = array(
                'h1' => array(), 'h2' => array(), 'h3' => array(), 'h4' => array(), 'h5' => array(), 'h6' => array(),
                'img' => array( 'src' => array(), 'class' => array(), 'alt' => array() )
        );
 
        $plugins_section_titles = array(
-               'description'  => _x('Description',  'Plugin installer section title'),
-               'installation' => _x('Installation', 'Plugin installer section title'),
-               'faq'          => _x('FAQ',          'Plugin installer section title'),
-               'screenshots'  => _x('Screenshots',  'Plugin installer section title'),
-               'changelog'    => _x('Changelog',    'Plugin installer section title'),
-               'other_notes'  => _x('Other Notes',  'Plugin installer section title')
+               'description'  => _x( 'Description',  'Plugin installer section title' ),
+               'installation' => _x( 'Installation', 'Plugin installer section title' ),
+               'faq'          => _x( 'FAQ',          'Plugin installer section title' ),
+               'screenshots'  => _x( 'Screenshots',  'Plugin installer section title' ),
+               'changelog'    => _x( 'Changelog',    'Plugin installer section title' ),
+               'reviews'      => _x( 'Reviews',      'Plugin installer section title' ),
+               'other_notes'  => _x( 'Other Notes',  'Plugin installer section title' )
        );
 
        );
 
-       //Sanitize HTML
-       foreach ( (array)$api->sections as $section_name => $content ) {
-               $api->sections[$section_name] = wp_kses($content, $plugins_allowedtags);
+       // Sanitize HTML
+       foreach ( (array) $api->sections as $section_name => $content ) {
+               $api->sections[$section_name] = wp_kses( $content, $plugins_allowedtags );
        }
 
        foreach ( array( 'version', 'author', 'requires', 'tested', 'homepage', 'downloaded', 'slug' ) as $key ) {
        }
 
        foreach ( array( 'version', 'author', 'requires', 'tested', 'homepage', 'downloaded', 'slug' ) as $key ) {
-               if ( isset( $api->$key ) )
+               if ( isset( $api->$key ) ) {
                        $api->$key = wp_kses( $api->$key, $plugins_allowedtags );
                        $api->$key = wp_kses( $api->$key, $plugins_allowedtags );
+               }
        }
 
        $_tab = esc_attr( $tab );
 
        }
 
        $_tab = esc_attr( $tab );
 
-       $section = isset( $_REQUEST['section'] ) ? wp_unslash( $_REQUEST['section'] ) : 'description'; //Default to the Description tab, Do not translate, API returns English.
+       $section = isset( $_REQUEST['section'] ) ? wp_unslash( $_REQUEST['section'] ) : 'description'; // Default to the Description tab, Do not translate, API returns English.
        if ( empty( $section ) || ! isset( $api->sections[ $section ] ) ) {
                $section_titles = array_keys( (array) $api->sections );
                $section = array_shift( $section_titles );
        }
 
        if ( empty( $section ) || ! isset( $api->sections[ $section ] ) ) {
                $section_titles = array_keys( (array) $api->sections );
                $section = array_shift( $section_titles );
        }
 
-       iframe_header( __('Plugin Install') );
+       iframe_header( __( 'Plugin Install' ) );
+
+       $_with_banner = '';
+
+       if ( ! empty( $api->banners ) && ( ! empty( $api->banners['low'] ) || ! empty( $api->banners['high'] ) ) ) {
+               $_with_banner = 'with-banner';
+               $low  = empty( $api->banners['low'] ) ? $api->banners['high'] : $api->banners['low'];
+               $high = empty( $api->banners['high'] ) ? $api->banners['low'] : $api->banners['high'];
+               ?>
+               <style type="text/css">
+                       #plugin-information-title.with-banner {
+                               background-image: url( <?php echo esc_url( $low ); ?> );
+                       }
+                       @media only screen and ( -webkit-min-device-pixel-ratio: 1.5 ) {
+                               #plugin-information-title.with-banner {
+                                       background-image: url( <?php echo esc_url( $high ); ?> );
+                               }
+                       }
+               </style>
+               <?php
+       }
 
 
-       echo "<div id='{$_tab}-title'>{$api->name}</div>";
-       echo "<div id='{$_tab}-tabs'>\n";
+       echo '<div id="plugin-information-scrollable">';
+       echo "<div id='{$_tab}-title' class='{$_with_banner}'><div class='vignette'></div><h2>{$api->name}</h2></div>";
+       echo "<div id='{$_tab}-tabs' class='{$_with_banner}'>\n";
 
 
-       foreach ( (array)$api->sections as $section_name => $content ) {
+       foreach ( (array) $api->sections as $section_name => $content ) {
+               if ( 'reviews' === $section_name && ( empty( $api->ratings ) || 0 === array_sum( (array) $api->ratings ) ) ) {
+                       continue;
+               }
 
 
-               if ( isset( $plugins_section_titles[ $section_name ] ) )
+               if ( isset( $plugins_section_titles[ $section_name ] ) ) {
                        $title = $plugins_section_titles[ $section_name ];
                        $title = $plugins_section_titles[ $section_name ];
-               else
+               } else {
                        $title = ucwords( str_replace( '_', ' ', $section_name ) );
                        $title = ucwords( str_replace( '_', ' ', $section_name ) );
+               }
 
 
-               $class = ( $section_name == $section ) ? ' class="current"' : '';
+               $class = ( $section_name === $section ) ? ' class="current"' : '';
                $href = add_query_arg( array('tab' => $tab, 'section' => $section_name) );
                $href = esc_url( $href );
                $san_section = esc_attr( $section_name );
                $href = add_query_arg( array('tab' => $tab, 'section' => $section_name) );
                $href = esc_url( $href );
                $san_section = esc_attr( $section_name );
@@ -373,55 +417,95 @@ function install_plugin_information() {
        echo "</div>\n";
 
        ?>
        echo "</div>\n";
 
        ?>
-       <div id="<?php echo $_tab; ?>-content">
+       <div id="<?php echo $_tab; ?>-content" class='<?php echo $_with_banner; ?>'>
        <div class="fyi">
                <ul>
        <div class="fyi">
                <ul>
-<?php if ( ! empty( $api->version ) ) : ?>
-                       <li><strong><?php _e('Version:') ?></strong> <?php echo $api->version ?></li>
-<?php endif; if ( ! empty( $api->author ) ) : ?>
-                       <li><strong><?php _e('Author:') ?></strong> <?php echo links_add_target($api->author, '_blank') ?></li>
-<?php endif; if ( ! empty( $api->last_updated ) ) : ?>
-                       <li><strong><?php _e('Last Updated:') ?></strong> <span title="<?php echo $api->last_updated ?>"><?php
-                                                       printf( __('%s ago'), human_time_diff(strtotime($api->last_updated)) ) ?></span></li>
-<?php endif; if ( ! empty( $api->requires ) ) : ?>
-                       <li><strong><?php _e('Requires WordPress Version:') ?></strong> <?php printf(__('%s or higher'), $api->requires) ?></li>
-<?php endif; if ( ! empty( $api->tested ) ) : ?>
-                       <li><strong><?php _e('Compatible up to:') ?></strong> <?php echo $api->tested ?></li>
-<?php endif; if ( ! empty( $api->downloaded ) ) : ?>
-                       <li><strong><?php _e('Downloaded:') ?></strong> <?php printf(_n('%s time', '%s times', $api->downloaded), number_format_i18n($api->downloaded)) ?></li>
-<?php endif; if ( ! empty( $api->slug ) && empty( $api->external ) ) : ?>
-                       <li><a target="_blank" href="https://wordpress.org/plugins/<?php echo $api->slug ?>/"><?php _e('WordPress.org Plugin Page &#187;') ?></a></li>
-<?php endif; if ( ! empty( $api->homepage ) ) : ?>
-                       <li><a target="_blank" href="<?php echo $api->homepage ?>"><?php _e('Plugin Homepage &#187;') ?></a></li>
-<?php endif; ?>
+               <?php if ( ! empty( $api->version ) ) { ?>
+                       <li><strong><?php _e( 'Version:' ); ?></strong> <?php echo $api->version; ?></li>
+               <?php } if ( ! empty( $api->author ) ) { ?>
+                       <li><strong><?php _e( 'Author:' ); ?></strong> <?php echo links_add_target( $api->author, '_blank' ); ?></li>
+               <?php } if ( ! empty( $api->last_updated ) ) { ?>
+                       <li><strong><?php _e( 'Last Updated:' ); ?></strong> <span title="<?php echo $api->last_updated; ?>">
+                               <?php printf( __( '%s ago' ), human_time_diff( strtotime( $api->last_updated ) ) ); ?>
+                       </span></li>
+               <?php } if ( ! empty( $api->requires ) ) { ?>
+                       <li><strong><?php _e( 'Requires WordPress Version:' ); ?></strong> <?php printf( __( '%s or higher' ), $api->requires ); ?></li>
+               <?php } if ( ! empty( $api->tested ) ) { ?>
+                       <li><strong><?php _e( 'Compatible up to:' ); ?></strong> <?php echo $api->tested; ?></li>
+               <?php } if ( ! empty( $api->downloaded ) ) { ?>
+                       <li><strong><?php _e( 'Downloaded:' ); ?></strong> <?php printf( _n( '%s time', '%s times', $api->downloaded ), number_format_i18n( $api->downloaded ) ); ?></li>
+               <?php } if ( ! empty( $api->slug ) && empty( $api->external ) ) { ?>
+                       <li><a target="_blank" href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php _e( 'WordPress.org Plugin Page &#187;' ); ?></a></li>
+               <?php } if ( ! empty( $api->homepage ) ) { ?>
+                       <li><a target="_blank" href="<?php echo esc_url( $api->homepage ); ?>"><?php _e( 'Plugin Homepage &#187;' ); ?></a></li>
+               <?php } if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) { ?>
+                       <li><a target="_blank" href="<?php echo esc_url( $api->donate_link ); ?>"><?php _e( 'Donate to this plugin &#187;' ); ?></a></li>
+               <?php } ?>
                </ul>
                </ul>
-               <?php if ( ! empty( $api->rating ) ) : ?>
-               <h3><?php _e('Average Rating') ?></h3>
+               <?php if ( ! empty( $api->rating ) ) { ?>
+               <h3><?php _e( 'Average Rating' ); ?></h3>
                <?php wp_star_rating( array( 'rating' => $api->rating, 'type' => 'percent', 'number' => $api->num_ratings ) ); ?>
                <?php wp_star_rating( array( 'rating' => $api->rating, 'type' => 'percent', 'number' => $api->num_ratings ) ); ?>
-               <small><?php printf( _n('(based on %s rating)', '(based on %s ratings)', $api->num_ratings), number_format_i18n($api->num_ratings) ); ?></small>
-               <?php endif; ?>
+               <small><?php printf( _n( '(based on %s rating)', '(based on %s ratings)', $api->num_ratings ), number_format_i18n( $api->num_ratings ) ); ?></small>
+               <?php }
+
+               if ( ! empty( $api->ratings ) && array_sum( (array) $api->ratings ) > 0 ) {
+                       foreach( $api->ratings as $key => $ratecount ) {
+                               // Avoid div-by-zero.
+                               $_rating = $api->num_ratings ? ( $ratecount / $api->num_ratings ) : 0;
+                               ?>
+                               <div class="counter-container">
+                                       <a href="<?php echo esc_url( self_admin_url( 'plugin-install.php?tab=plugin-information&amp;plugin=' . $api->slug . '&amp;section=reviews' ) ); ?>"
+                                          title="<?php echo esc_attr( sprintf( _n( 'Click to see reviews that provided a rating of %d star', 'Click to see reviews that provided a rating of %d stars', $key ), $key ) ); ?>">
+                                               <span class="counter-label"><?php printf( _n( '%d star', '%d stars', $key ), $key ); ?></span>
+                                               <span class="counter-back">
+                                                       <span class="counter-bar" style="width: <?php echo 92 * $_rating; ?>px;"></span>
+                                               </span>
+                                       </a>
+                                       <span class="counter-count"><?php echo number_format_i18n( $ratecount ); ?></span>
+                               </div>
+                               <?php
+                       }
+               }
+               if ( ! empty( $api->contributors ) ) { ?>
+                       <h3><?php _e( 'Contributors' ); ?></h3>
+                       <ul class="contributors">
+                               <?php
+                               foreach ( (array) $api->contributors as $contrib_username => $contrib_profile ) {
+                                       if ( empty( $contrib_username ) && empty( $contrib_profile ) ) {
+                                               continue;
+                                       }
+                                       if ( empty( $contrib_username ) ) {
+                                               $contrib_username = preg_replace( '/^.+\/(.+)\/?$/', '\1', $contrib_profile );
+                                       }
+                                       $contrib_username = sanitize_user( $contrib_username );
+                                       if ( empty( $contrib_profile ) ) {
+                                               echo "<li><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</li>";
+                                       } else {
+                                               echo "<li><a href='{$contrib_profile}' target='_blank'><img src='https://wordpress.org/grav-redirect.php?user={$contrib_username}&amp;s=36' width='18' height='18' />{$contrib_username}</a></li>";
+                                       }
+                               }
+                               ?>
+                       </ul>
+                       <?php if ( ! empty( $api->donate_link ) ) { ?>
+                               <a target="_blank" href="<?php echo esc_url( $api->donate_link ); ?>"><?php _e( 'Donate to this plugin &#187;' ); ?></a>
+                       <?php } ?>
+               <?php } ?>
        </div>
        <div id="section-holder" class="wrap">
        <?php
        </div>
        <div id="section-holder" class="wrap">
        <?php
-               if ( ! empty( $api->tested ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->tested ) ), $api->tested, '>' ) )
-                       echo '<div class="updated"><p>' . __('<strong>Warning:</strong> This plugin has <strong>not been tested</strong> with your current version of WordPress.') . '</p></div>';
-
-               else if ( ! empty( $api->requires ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->requires ) ), $api->requires, '<' ) )
-                       echo '<div class="updated"><p>' . __('<strong>Warning:</strong> This plugin has <strong>not been marked as compatible</strong> with your version of WordPress.') . '</p></div>';
-
-               foreach ( (array)$api->sections as $section_name => $content ) {
-
-                       if ( isset( $plugins_section_titles[ $section_name ] ) )
-                               $title = $plugins_section_titles[ $section_name ];
-                       else
-                               $title = ucwords( str_replace( '_', ' ', $section_name ) );
+               if ( ! empty( $api->tested ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->tested ) ), $api->tested, '>' ) ) {
+                       echo '<div class="error"><p>' . __('<strong>Warning:</strong> This plugin has <strong>not been tested</strong> with your current version of WordPress.') . '</p></div>';
+               } else if ( ! empty( $api->requires ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->requires ) ), $api->requires, '<' ) ) {
+                       echo '<div class="error"><p>' . __('<strong>Warning:</strong> This plugin has <strong>not been marked as compatible</strong> with your version of WordPress.') . '</p></div>';
+               }
 
 
+               foreach ( (array) $api->sections as $section_name => $content ) {
                        $content = links_add_base_url( $content, 'https://wordpress.org/plugins/' . $api->slug . '/' );
                        $content = links_add_target( $content, '_blank' );
 
                        $san_section = esc_attr( $section_name );
 
                        $content = links_add_base_url( $content, 'https://wordpress.org/plugins/' . $api->slug . '/' );
                        $content = links_add_target( $content, '_blank' );
 
                        $san_section = esc_attr( $section_name );
 
-                       $display = ( $section_name == $section ) ? 'block' : 'none';
+                       $display = ( $section_name === $section ) ? 'block' : 'none';
 
                        echo "\t<div id='section-{$san_section}' class='section' style='display: {$display};'>\n";
                        echo $content;
 
                        echo "\t<div id='section-{$san_section}' class='section' style='display: {$display};'>\n";
                        echo $content;
@@ -429,23 +513,26 @@ function install_plugin_information() {
                }
        echo "</div>\n";
        echo "</div>\n";
                }
        echo "</div>\n";
        echo "</div>\n";
+       echo "</div>\n"; // #plugin-information-scrollable
        echo "<div id='$tab-footer'>\n";
        echo "<div id='$tab-footer'>\n";
-       if ( ! empty( $api->download_link ) && ( current_user_can('install_plugins') || current_user_can('update_plugins') ) ) {
-               $status = install_plugin_install_status($api);
+       if ( ! empty( $api->download_link ) && ( current_user_can( 'install_plugins' ) || current_user_can( 'update_plugins' ) ) ) {
+               $status = install_plugin_install_status( $api );
                switch ( $status['status'] ) {
                        case 'install':
                switch ( $status['status'] ) {
                        case 'install':
-                               if ( $status['url'] )
-                                       echo '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . __('Install Now') . '</a>';
+                               if ( $status['url'] ) {
+                                       echo '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . __( 'Install Now' ) . '</a>';
+                               }
                                break;
                        case 'update_available':
                                break;
                        case 'update_available':
-                               if ( $status['url'] )
-                                       echo '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . __('Install Update Now') .'</a>';
+                               if ( $status['url'] ) {
+                                       echo '<a class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . __( 'Install Update Now' ) .'</a>';
+                               }
                                break;
                        case 'newer_installed':
                                break;
                        case 'newer_installed':
-                               echo '<a class="button button-primary right disabled">' . sprintf(__('Newer Version (%s) Installed'), $status['version']) . '</a>';
+                               echo '<a class="button button-primary right disabled">' . sprintf( __( 'Newer Version (%s) Installed'), $status['version'] ) . '</a>';
                                break;
                        case 'latest_installed':
                                break;
                        case 'latest_installed':
-                               echo '<a class="button button-primary right disabled">' . __('Latest Version Installed') . '</a>';
+                               echo '<a class="button button-primary right disabled">' . __( 'Latest Version Installed' ) . '</a>';
                                break;
                }
        }
                                break;
                }
        }
index 08adef827bbc4553ca3daab7676d01a92b3aea5c..209b5c9408950fb366d6749bca123896c45d9bcd 100644 (file)
@@ -160,10 +160,10 @@ function _get_plugin_data_markup_translate( $plugin_file, $plugin_data, $markup
        // Apply markup
        if ( $markup ) {
                if ( $plugin_data['PluginURI'] && $plugin_data['Name'] )
        // Apply markup
        if ( $markup ) {
                if ( $plugin_data['PluginURI'] && $plugin_data['Name'] )
-                       $plugin_data['Title'] = '<a href="' . $plugin_data['PluginURI'] . '" title="' . esc_attr__( 'Visit plugin homepage' ) . '">' . $plugin_data['Name'] . '</a>';
+                       $plugin_data['Title'] = '<a href="' . $plugin_data['PluginURI'] . '">' . $plugin_data['Name'] . '</a>';
 
                if ( $plugin_data['AuthorURI'] && $plugin_data['Author'] )
 
                if ( $plugin_data['AuthorURI'] && $plugin_data['Author'] )
-                       $plugin_data['Author'] = '<a href="' . $plugin_data['AuthorURI'] . '" title="' . esc_attr__( 'Visit author homepage' ) . '">' . $plugin_data['Author'] . '</a>';
+                       $plugin_data['Author'] = '<a href="' . $plugin_data['AuthorURI'] . '">' . $plugin_data['Author'] . '</a>';
 
                $plugin_data['Description'] = wptexturize( $plugin_data['Description'] );
 
 
                $plugin_data['Description'] = wptexturize( $plugin_data['Description'] );
 
@@ -538,7 +538,9 @@ function activate_plugin( $plugin, $redirect = '', $network_wide = false, $silen
                        wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), $redirect)); // we'll override this later if the plugin can be included without fatal error
                ob_start();
                wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $plugin );
                        wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), $redirect)); // we'll override this later if the plugin can be included without fatal error
                ob_start();
                wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $plugin );
+               $_wp_plugin_file = $plugin;
                include_once( WP_PLUGIN_DIR . '/' . $plugin );
                include_once( WP_PLUGIN_DIR . '/' . $plugin );
+               $plugin = $_wp_plugin_file; // Avoid stomping of the $plugin variable in a plugin.
 
                if ( ! $silent ) {
                        /**
 
                if ( ! $silent ) {
                        /**
@@ -717,7 +719,7 @@ function deactivate_plugins( $plugins, $silent = false, $network_wide = null ) {
  *
  * @since 2.6.0
  *
  *
  * @since 2.6.0
  *
- * @param string|array $plugins
+ * @param string|array $plugins Single plugin or list of plugins to activate.
  * @param string $redirect Redirect to page after successful activation.
  * @param bool $network_wide Whether to enable the plugin for all sites in the network.
  * @param bool $silent Prevent calling activation hooks. Default is false.
  * @param string $redirect Redirect to page after successful activation.
  * @param bool $network_wide Whether to enable the plugin for all sites in the network.
  * @param bool $silent Prevent calling activation hooks. Default is false.
@@ -743,18 +745,16 @@ function activate_plugins( $plugins, $redirect = '', $network_wide = false, $sil
 }
 
 /**
 }
 
 /**
- * Remove directory and files of a plugin for a single or list of plugin(s).
- *
- * If the plugins parameter list is empty, false will be returned. True when
- * completed.
+ * Remove directory and files of a plugin for a list of plugins.
  *
  * @since 2.6.0
  *
  *
  * @since 2.6.0
  *
- * @param array $plugins List of plugin
- * @param string $redirect Redirect to page when complete.
- * @return mixed
+ * @param array  $plugins    List of plugins to delete.
+ * @param string $deprecated Deprecated.
+ * @return bool|null|WP_Error True on success, false is $plugins is empty, WP_Error on failure.
+ *                            Null if filesystem credentials are required to proceed.
  */
  */
-function delete_plugins($plugins, $redirect = '' ) {
+function delete_plugins( $plugins, $deprecated = '' ) {
        global $wp_filesystem;
 
        if ( empty($plugins) )
        global $wp_filesystem;
 
        if ( empty($plugins) )
@@ -851,7 +851,7 @@ function delete_plugins($plugins, $redirect = '' ) {
  */
 function validate_active_plugins() {
        $plugins = get_option( 'active_plugins', array() );
  */
 function validate_active_plugins() {
        $plugins = get_option( 'active_plugins', array() );
-       // validate vartype: array
+       // Validate vartype: array.
        if ( ! is_array( $plugins ) ) {
                update_option( 'active_plugins', array() );
                $plugins = array();
        if ( ! is_array( $plugins ) ) {
                update_option( 'active_plugins', array() );
                $plugins = array();
@@ -867,7 +867,7 @@ function validate_active_plugins() {
 
        $invalid = array();
 
 
        $invalid = array();
 
-       // invalid plugins get deactivated
+       // Invalid plugins get deactivated.
        foreach ( $plugins as $plugin ) {
                $result = validate_plugin( $plugin );
                if ( is_wp_error( $result ) ) {
        foreach ( $plugins as $plugin ) {
                $result = validate_plugin( $plugin );
                if ( is_wp_error( $result ) ) {
@@ -940,7 +940,7 @@ function uninstall_plugin($plugin) {
 
                define('WP_UNINSTALL_PLUGIN', $file);
                wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . dirname( $file ) );
 
                define('WP_UNINSTALL_PLUGIN', $file);
                wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . dirname( $file ) );
-               include WP_PLUGIN_DIR . '/' . dirname($file) . '/uninstall.php';
+               include( WP_PLUGIN_DIR . '/' . dirname($file) . '/uninstall.php' );
 
                return true;
        }
 
                return true;
        }
@@ -952,7 +952,7 @@ function uninstall_plugin($plugin) {
                unset($uninstallable_plugins);
 
                wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $file );
                unset($uninstallable_plugins);
 
                wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $file );
-               include WP_PLUGIN_DIR . '/' . $file;
+               include( WP_PLUGIN_DIR . '/' . $file );
 
                add_action( 'uninstall_' . $file, $callable );
 
 
                add_action( 'uninstall_' . $file, $callable );
 
@@ -1119,14 +1119,16 @@ function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability,
                return false;
        }
 
                return false;
        }
 
-       // If the parent doesn't already have a submenu, add a link to the parent
-       // as the first item in the submenu. If the submenu file is the same as the
-       // parent file someone is trying to link back to the parent manually. In
-       // this case, don't automatically add a link back to avoid duplication.
+       /*
+        * If the parent doesn't already have a submenu, add a link to the parent
+        * as the first item in the submenu. If the submenu file is the same as the
+        * parent file someone is trying to link back to the parent manually. In
+        * this case, don't automatically add a link back to avoid duplication.
+        */
        if (!isset( $submenu[$parent_slug] ) && $menu_slug != $parent_slug ) {
                foreach ( (array)$menu as $parent_menu ) {
                        if ( $parent_menu[2] == $parent_slug && current_user_can( $parent_menu[1] ) )
        if (!isset( $submenu[$parent_slug] ) && $menu_slug != $parent_slug ) {
                foreach ( (array)$menu as $parent_menu ) {
                        if ( $parent_menu[2] == $parent_slug && current_user_can( $parent_menu[1] ) )
-                               $submenu[$parent_slug][] = $parent_menu;
+                               $submenu[$parent_slug][] = array_slice( $parent_menu, 0, 4 );
                }
        }
 
                }
        }
 
@@ -1137,11 +1139,15 @@ function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability,
                add_action( $hookname, $function );
 
        $_registered_pages[$hookname] = true;
                add_action( $hookname, $function );
 
        $_registered_pages[$hookname] = true;
-       // backwards-compatibility for plugins using add_management page. See wp-admin/admin.php for redirect from edit.php to tools.php
+
+       /*
+        * Backward-compatibility for plugins using add_management page.
+        * See wp-admin/admin.php for redirect from edit.php to tools.php
+        */
        if ( 'tools.php' == $parent_slug )
                $_registered_pages[get_plugin_page_hookname( $menu_slug, 'edit.php')] = true;
 
        if ( 'tools.php' == $parent_slug )
                $_registered_pages[get_plugin_page_hookname( $menu_slug, 'edit.php')] = true;
 
-       // No parent as top level
+       // No parent as top level.
        $_parent_pages[$menu_slug] = $parent_slug;
 
        return $hookname;
        $_parent_pages[$menu_slug] = $parent_slug;
 
        return $hookname;
index 64b63d649614a9340365bb22ad75b8273bcbdf69..d230667c6835556e23d558b9da00273f4e8b1245 100644 (file)
@@ -302,7 +302,7 @@ function edit_post( $post_data = null ) {
                        $image_alt = wp_unslash( $post_data['_wp_attachment_image_alt'] );
                        if ( $image_alt != get_post_meta( $post_ID, '_wp_attachment_image_alt', true ) ) {
                                $image_alt = wp_strip_all_tags( $image_alt, true );
                        $image_alt = wp_unslash( $post_data['_wp_attachment_image_alt'] );
                        if ( $image_alt != get_post_meta( $post_ID, '_wp_attachment_image_alt', true ) ) {
                                $image_alt = wp_strip_all_tags( $image_alt, true );
-                               // update_meta expects slashed
+                               // update_meta expects slashed.
                                update_post_meta( $post_ID, '_wp_attachment_image_alt', wp_slash( $image_alt ) );
                        }
                }
                                update_post_meta( $post_ID, '_wp_attachment_image_alt', wp_slash( $image_alt ) );
                        }
                }
@@ -518,8 +518,6 @@ function bulk_edit_posts( $post_data = null ) {
  * @return WP_Post Post object containing all the default post data as attributes
  */
 function get_default_post_to_edit( $post_type = 'post', $create_in_db = false ) {
  * @return WP_Post Post object containing all the default post data as attributes
  */
 function get_default_post_to_edit( $post_type = 'post', $create_in_db = false ) {
-       global $wpdb;
-
        $post_title = '';
        if ( !empty( $_REQUEST['post_title'] ) )
                $post_title = esc_html( wp_unslash( $_REQUEST['post_title'] ));
        $post_title = '';
        if ( !empty( $_REQUEST['post_title'] ) )
                $post_title = esc_html( wp_unslash( $_REQUEST['post_title'] ));
@@ -733,7 +731,6 @@ function write_post() {
  * @return unknown
  */
 function add_meta( $post_ID ) {
  * @return unknown
  */
 function add_meta( $post_ID ) {
-       global $wpdb;
        $post_ID = (int) $post_ID;
 
        $metakeyselect = isset($_POST['metakeyselect']) ? wp_unslash( trim( $_POST['metakeyselect'] ) ) : '';
        $post_ID = (int) $post_ID;
 
        $metakeyselect = isset($_POST['metakeyselect']) ? wp_unslash( trim( $_POST['metakeyselect'] ) ) : '';
@@ -743,9 +740,10 @@ function add_meta( $post_ID ) {
                $metavalue = trim( $metavalue );
 
        if ( ('0' === $metavalue || ! empty ( $metavalue ) ) && ( ( ( '#NONE#' != $metakeyselect ) && !empty ( $metakeyselect) ) || !empty ( $metakeyinput ) ) ) {
                $metavalue = trim( $metavalue );
 
        if ( ('0' === $metavalue || ! empty ( $metavalue ) ) && ( ( ( '#NONE#' != $metakeyselect ) && !empty ( $metakeyselect) ) || !empty ( $metakeyinput ) ) ) {
-               // We have a key/value pair. If both the select and the
-               // input for the key have data, the input takes precedence:
-
+               /*
+                * We have a key/value pair. If both the select and the input
+                * for the key have data, the input takes precedence.
+                */
                if ( '#NONE#' != $metakeyselect )
                        $metakey = $metakeyselect;
 
                if ( '#NONE#' != $metakeyselect )
                        $metakey = $metakeyselect;
 
@@ -949,7 +947,7 @@ function wp_edit_posts_query( $q = false ) {
        elseif ( isset($q['post_status']) && 'pending' == $q['post_status'] )
                $order = 'ASC';
 
        elseif ( isset($q['post_status']) && 'pending' == $q['post_status'] )
                $order = 'ASC';
 
-       $per_page = 'edit_' . $post_type . '_per_page';
+       $per_page = "edit_{$post_type}_per_page";
        $posts_per_page = (int) get_user_option( $per_page );
        if ( empty( $posts_per_page ) || $posts_per_page < 1 )
                $posts_per_page = 20;
        $posts_per_page = (int) get_user_option( $per_page );
        if ( empty( $posts_per_page ) || $posts_per_page < 1 )
                $posts_per_page = 20;
@@ -957,26 +955,25 @@ function wp_edit_posts_query( $q = false ) {
        /**
         * Filter the number of items per page to show for a specific 'per_page' type.
         *
        /**
         * Filter the number of items per page to show for a specific 'per_page' type.
         *
-        * The dynamic hook name, $per_page, refers to a hook name comprised of the post type,
-        * preceded by 'edit_', and succeeded by '_per_page', e.g. 'edit_$post_type_per_page'.
+        * The dynamic portion of the hook name, $post_type, refers to the post type.
         *
         * Some examples of filter hooks generated here include: 'edit_attachment_per_page',
         * 'edit_post_per_page', 'edit_page_per_page', etc.
         *
         * @since 3.0.0
         *
         *
         * Some examples of filter hooks generated here include: 'edit_attachment_per_page',
         * 'edit_post_per_page', 'edit_page_per_page', etc.
         *
         * @since 3.0.0
         *
-        * @param int $posts_per_page Number of posts to display per page for the given 'per_page'
+        * @param int $posts_per_page Number of posts to display per page for the given post
         *                            type. Default 20.
         */
         *                            type. Default 20.
         */
-       $posts_per_page = apply_filters( $per_page, $posts_per_page );
+       $posts_per_page = apply_filters( "edit_{$post_type}_per_page", $posts_per_page );
 
        /**
         * Filter the number of posts displayed per page when specifically listing "posts".
         *
         * @since 2.8.0
         *
 
        /**
         * Filter the number of posts displayed per page when specifically listing "posts".
         *
         * @since 2.8.0
         *
-        * @param int    $per_page  Number of posts to be displayed. Default 20.
-        * @param string $post_type The post type.
+        * @param int    $posts_per_page Number of posts to be displayed. Default 20.
+        * @param string $post_type      The post type.
         */
        $posts_per_page = apply_filters( 'edit_posts_per_page', $posts_per_page, $post_type );
 
         */
        $posts_per_page = apply_filters( 'edit_posts_per_page', $posts_per_page, $post_type );
 
@@ -1035,6 +1032,8 @@ function wp_edit_attachments_query( $q = false ) {
                $states .= ',private';
 
        $q['post_status'] = isset( $q['status'] ) && 'trash' == $q['status'] ? 'trash' : $states;
                $states .= ',private';
 
        $q['post_status'] = isset( $q['status'] ) && 'trash' == $q['status'] ? 'trash' : $states;
+       $q['post_status'] = isset( $q['attachment-filter'] ) && 'trash' == $q['attachment-filter'] ? 'trash' : $states;
+
        $media_per_page = (int) get_user_option( 'upload_per_page' );
        if ( empty( $media_per_page ) || $media_per_page < 1 )
                $media_per_page = 20;
        $media_per_page = (int) get_user_option( 'upload_per_page' );
        if ( empty( $media_per_page ) || $media_per_page < 1 )
                $media_per_page = 20;
@@ -1054,8 +1053,16 @@ function wp_edit_attachments_query( $q = false ) {
        if ( isset($q['post_mime_type']) && !array_intersect( (array) $q['post_mime_type'], array_keys($post_mime_types) ) )
                unset($q['post_mime_type']);
 
        if ( isset($q['post_mime_type']) && !array_intersect( (array) $q['post_mime_type'], array_keys($post_mime_types) ) )
                unset($q['post_mime_type']);
 
-       if ( isset($q['detached']) )
+       foreach( array_keys( $post_mime_types ) as $type ) {
+               if ( isset( $q['attachment-filter'] ) && "post_mime_type:$type" == $q['attachment-filter'] ) {
+                       $q['post_mime_type'] = $type;
+                       break;
+               }
+       }
+
+       if ( isset( $q['detached'] ) || ( isset( $q['attachment-filter'] ) && 'detached' == $q['attachment-filter'] ) ) {
                $q['post_parent'] = 0;
                $q['post_parent'] = 0;
+       }
 
        wp( $q );
 
 
        wp( $q );
 
@@ -1192,56 +1199,51 @@ function get_sample_permalink_html( $id, $new_title = null, $new_slug = null ) {
                $title = __('Temporary permalink. Click to edit this part.');
        }
 
                $title = __('Temporary permalink. Click to edit this part.');
        }
 
-       if ( false === strpos($permalink, '%postname%') && false === strpos($permalink, '%pagename%') ) {
+       if ( false === strpos( $permalink, '%postname%' ) && false === strpos( $permalink, '%pagename%' ) ) {
                $return = '<strong>' . __('Permalink:') . "</strong>\n" . '<span id="sample-permalink" tabindex="-1">' . $permalink . "</span>\n";
                $return = '<strong>' . __('Permalink:') . "</strong>\n" . '<span id="sample-permalink" tabindex="-1">' . $permalink . "</span>\n";
-               if ( '' == get_option( 'permalink_structure' ) && current_user_can( 'manage_options' ) && !( 'page' == get_option('show_on_front') && $id == get_option('page_on_front') ) )
+               if ( '' == get_option( 'permalink_structure' ) && current_user_can( 'manage_options' ) && !( 'page' == get_option('show_on_front') && $id == get_option('page_on_front') ) ) {
                        $return .= '<span id="change-permalinks"><a href="options-permalink.php" class="button button-small" target="_blank">' . __('Change Permalinks') . "</a></span>\n";
                        $return .= '<span id="change-permalinks"><a href="options-permalink.php" class="button button-small" target="_blank">' . __('Change Permalinks') . "</a></span>\n";
-               if ( isset( $view_post ) )
-                       $return .= "<span id='view-post-btn'><a href='$permalink' class='button button-small'>$view_post</a></span>\n";
-
-               /**
-                * Filter the sample permalink HTML markup.
-                *
-                * @since 2.9.0
-                *
-                * @param string      $return    Sample permalink HTML markup.
-                * @param int|WP_Post $id        Post object or ID.
-                * @param string      $new_title New sample permalink title.
-                * @param string      $new_slug  New sample permalink slug.
-                */
-               $return = apply_filters( 'get_sample_permalink_html', $return, $id, $new_title, $new_slug );
-
-               return $return;
-       }
-
-       if ( function_exists('mb_strlen') ) {
-               if ( mb_strlen($post_name) > 30 ) {
-                       $post_name_abridged = mb_substr($post_name, 0, 14). '&hellip;' . mb_substr($post_name, -14);
-               } else {
-                       $post_name_abridged = $post_name;
                }
        } else {
                }
        } else {
-               if ( strlen($post_name) > 30 ) {
-                       $post_name_abridged = substr($post_name, 0, 14). '&hellip;' . substr($post_name, -14);
+               if ( function_exists( 'mb_strlen' ) && mb_strlen( $post_name ) > 30 ) {
+                       $post_name_abridged = mb_substr( $post_name, 0, 14 ) . '&hellip;' . mb_substr( $post_name, -14 );
+               } elseif ( strlen( $post_name ) > 30 ) {
+                       $post_name_abridged = substr( $post_name, 0, 14 ) . '&hellip;' . substr( $post_name, -14 );
                } else {
                        $post_name_abridged = $post_name;
                }
                } else {
                        $post_name_abridged = $post_name;
                }
-       }
 
 
-       $post_name_html = '<span id="editable-post-name" title="' . $title . '">' . $post_name_abridged . '</span>';
-       $display_link = str_replace(array('%pagename%','%postname%'), $post_name_html, $permalink);
-       $view_link = str_replace(array('%pagename%','%postname%'), $post_name, $permalink);
-       $return =  '<strong>' . __('Permalink:') . "</strong>\n";
-       $return .= '<span id="sample-permalink" tabindex="-1">' . $display_link . "</span>\n";
-       $return .= '&lrm;'; // Fix bi-directional text display defect in RTL languages.
-       $return .= '<span id="edit-slug-buttons"><a href="#post_name" class="edit-slug button button-small hide-if-no-js" onclick="editPermalink(' . $id . '); return false;">' . __('Edit') . "</a></span>\n";
-       $return .= '<span id="editable-post-name-full">' . $post_name . "</span>\n";
+               $post_name_html = '<span id="editable-post-name" title="' . $title . '">' . $post_name_abridged . '</span>';
+               $display_link = str_replace( array( '%pagename%', '%postname%' ), $post_name_html, $permalink );
+
+               $return =  '<strong>' . __( 'Permalink:' ) . "</strong>\n";
+               $return .= '<span id="sample-permalink" tabindex="-1">' . $display_link . "</span>\n";
+               $return .= '&lrm;'; // Fix bi-directional text display defect in RTL languages.
+               $return .= '<span id="edit-slug-buttons"><a href="#post_name" class="edit-slug button button-small hide-if-no-js" onclick="editPermalink(' . $id . '); return false;">' . __( 'Edit' ) . "</a></span>\n";
+               $return .= '<span id="editable-post-name-full">' . $post_name . "</span>\n";
+       }
 
        if ( isset( $view_post ) ) {
 
        if ( isset( $view_post ) ) {
-               $return .= "<span id='view-post-btn'><a href='" . get_permalink( $post ) . "' class='button button-small'>$view_post</a></span>\n";
+               if( 'draft' == $post->post_status ) {
+                       $preview_link = set_url_scheme( get_permalink( $post->ID ) );
+                       /** This filter is documented in wp-admin/includes/meta-boxes.php */
+                       $preview_link = apply_filters( 'preview_post_link', add_query_arg( 'preview', 'true', $preview_link ), $post );
+                       $return .= "<span id='view-post-btn'><a href='" . esc_url( $preview_link ) . "' class='button button-small' target='wp-preview-{$post->ID}'>$view_post</a></span>\n";
+               } else {
+                       $return .= "<span id='view-post-btn'><a href='" . get_permalink( $post ) . "' class='button button-small'>$view_post</a></span>\n";
+               }
        }
 
        }
 
-       /** This filter is documented in wp-admin/includes/post.php */
+       /**
+        * Filter the sample permalink HTML markup.
+        *
+        * @since 2.9.0
+        *
+        * @param string      $return    Sample permalink HTML markup.
+        * @param int|WP_Post $id        Post object or ID.
+        * @param string      $new_title New sample permalink title.
+        * @param string      $new_slug  New sample permalink slug.
+        */
        $return = apply_filters( 'get_sample_permalink_html', $return, $id, $new_title, $new_slug );
 
        return $return;
        $return = apply_filters( 'get_sample_permalink_html', $return, $id, $new_title, $new_slug );
 
        return $return;
@@ -1409,7 +1411,7 @@ function _admin_notice_post_locked() {
                }
 
                /** This filter is documented in wp-admin/includes/meta-boxes.php */
                }
 
                /** This filter is documented in wp-admin/includes/meta-boxes.php */
-               $preview_link = apply_filters( 'preview_post_link', $preview_link );
+               $preview_link = apply_filters( 'preview_post_link', $preview_link, $post );
 
                /**
                 * Filter whether to allow the post lock to be overridden.
 
                /**
                 * Filter whether to allow the post lock to be overridden.
@@ -1469,7 +1471,7 @@ function _admin_notice_post_locked() {
                <div class="post-taken-over">
                        <div class="post-locked-avatar"></div>
                        <p class="wp-tab-first" tabindex="0">
                <div class="post-taken-over">
                        <div class="post-locked-avatar"></div>
                        <p class="wp-tab-first" tabindex="0">
-                       <span class="currently-editing"></span><br>
+                       <span class="currently-editing"></span><br />
                        <span class="locked-saving hidden"><img src="images/wpspin_light-2x.gif" width="16" height="16" /> <?php _e('Saving revision...'); ?></span>
                        <span class="locked-saved hidden"><?php _e('Your latest changes were saved as a revision.'); ?></span>
                        </p>
                        <span class="locked-saving hidden"><img src="images/wpspin_light-2x.gif" width="16" height="16" /> <?php _e('Saving revision...'); ?></span>
                        <span class="locked-saved hidden"><?php _e('Your latest changes were saved as a revision.'); ?></span>
                        </p>
@@ -1611,7 +1613,7 @@ function post_preview() {
        $url = add_query_arg( $query_args, get_permalink( $post->ID ) );
 
        /** This filter is documented in wp-admin/includes/meta-boxes.php */
        $url = add_query_arg( $query_args, get_permalink( $post->ID ) );
 
        /** This filter is documented in wp-admin/includes/meta-boxes.php */
-       return apply_filters( 'preview_post_link', $url );
+       return apply_filters( 'preview_post_link', $url, $post );
 }
 
 /**
 }
 
 /**
@@ -1619,7 +1621,7 @@ function post_preview() {
  *
  * Intended for use with heartbeat and autosave.js
  *
  *
  * Intended for use with heartbeat and autosave.js
  *
- * @since 3.9
+ * @since 3.9.0
  *
  * @param $post_data Associative array of the submitted post data.
  * @return mixed The value 0 or WP_Error on failure. The saved post ID on success.
  *
  * @param $post_data Associative array of the submitted post data.
  * @return mixed The value 0 or WP_Error on failure. The saved post ID on success.
index 737c3b1637e94bcf40126be4eabaf2696c10827c..151cd64454289de857c0eba9f9659452329b28af 100644 (file)
@@ -108,7 +108,7 @@ function wp_get_revision_ui_diff( $post, $compare_from, $compare_to ) {
  */
 function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null ) {
        $post = get_post( $post );
  */
 function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null ) {
        $post = get_post( $post );
-       $revisions = $authors = array();
+       $authors = array();
        $now_gmt = time();
 
        $revisions = wp_get_post_revisions( $post->ID, array( 'order' => 'ASC', 'check_enabled' => false ) );
        $now_gmt = time();
 
        $revisions = wp_get_post_revisions( $post->ID, array( 'order' => 'ASC', 'check_enabled' => false ) );
@@ -126,6 +126,7 @@ function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null
        cache_users( wp_list_pluck( $revisions, 'post_author' ) );
 
        $can_restore = current_user_can( 'edit_post', $post->ID );
        cache_users( wp_list_pluck( $revisions, 'post_author' ) );
 
        $can_restore = current_user_can( 'edit_post', $post->ID );
+       $current_id = false;
 
        foreach ( $revisions as $revision ) {
                $modified = strtotime( $revision->post_modified );
 
        foreach ( $revisions as $revision ) {
                $modified = strtotime( $revision->post_modified );
@@ -176,8 +177,11 @@ function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null
                );
        }
 
                );
        }
 
-       // If a post has been saved since the last revision (no revisioned fields were changed)
-       // we may not have a "current" revision. Mark the latest revision as "current".
+       /*
+        * If a post has been saved since the last revision (no revisioned fields
+        * were changed), we may not have a "current" revision. Mark the latest
+        * revision as "current".
+        */
        if ( empty( $current_id ) ) {
                if ( $revisions[ $revision->ID ]['autosave'] ) {
                        $revision = end( $revisions );
        if ( empty( $current_id ) ) {
                if ( $revisions[ $revision->ID ]['autosave'] ) {
                        $revision = end( $revisions );
@@ -191,7 +195,7 @@ function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null
                $revisions[ $current_id ]['current'] = true;
        }
 
                $revisions[ $current_id ]['current'] = true;
        }
 
-       // Now, grab the initial diff
+       // Now, grab the initial diff.
        $compare_two_mode = is_numeric( $from );
        if ( ! $compare_two_mode ) {
                $found = array_search( $selected_revision_id, array_keys( $revisions ) );
        $compare_two_mode = is_numeric( $from );
        if ( ! $compare_two_mode ) {
                $found = array_search( $selected_revision_id, array_keys( $revisions ) );
index 0c7a53c909bef896a1f72129f6eb81798eb5da43..1fc432f51ee448cc9334171346f921f77868f718 100644 (file)
@@ -101,7 +101,8 @@ CREATE TABLE $wpdb->comments (
   KEY comment_post_ID (comment_post_ID),
   KEY comment_approved_date_gmt (comment_approved,comment_date_gmt),
   KEY comment_date_gmt (comment_date_gmt),
   KEY comment_post_ID (comment_post_ID),
   KEY comment_approved_date_gmt (comment_approved,comment_date_gmt),
   KEY comment_date_gmt (comment_date_gmt),
-  KEY comment_parent (comment_parent)
+  KEY comment_parent (comment_parent),
+  KEY comment_author_email (comment_author_email(10))
 ) $charset_collate;
 CREATE TABLE $wpdb->links (
   link_id bigint(20) unsigned NOT NULL auto_increment,
 ) $charset_collate;
 CREATE TABLE $wpdb->links (
   link_id bigint(20) unsigned NOT NULL auto_increment,
@@ -204,7 +205,7 @@ CREATE TABLE $wpdb->posts (
   KEY user_nicename (user_nicename)
 ) $charset_collate;\n";
 
   KEY user_nicename (user_nicename)
 ) $charset_collate;\n";
 
-       // usermeta
+       // Usermeta.
        $usermeta_table = "CREATE TABLE $wpdb->usermeta (
   umeta_id bigint(20) unsigned NOT NULL auto_increment,
   user_id bigint(20) unsigned NOT NULL default '0',
        $usermeta_table = "CREATE TABLE $wpdb->usermeta (
   umeta_id bigint(20) unsigned NOT NULL auto_increment,
   user_id bigint(20) unsigned NOT NULL default '0',
@@ -302,8 +303,8 @@ CREATE TABLE $wpdb->signups (
                case 'ms_global' :
                        $queries = $ms_global_tables;
                        break;
                case 'ms_global' :
                        $queries = $ms_global_tables;
                        break;
-               default:
                case 'all' :
                case 'all' :
+               default:
                        $queries = $global_tables . $blog_tables;
                        if ( $is_multisite )
                                $queries .= $ms_global_tables;
                        $queries = $global_tables . $blog_tables;
                        if ( $is_multisite )
                                $queries .= $ms_global_tables;
@@ -364,6 +365,7 @@ function populate_options() {
 
        $options = array(
        'siteurl' => $guessurl,
 
        $options = array(
        'siteurl' => $guessurl,
+       'home' => $guessurl,
        'blogname' => __('My Site'),
        /* translators: blog tagline */
        'blogdescription' => __('Just another WordPress site'),
        'blogname' => __('My Site'),
        /* translators: blog tagline */
        'blogdescription' => __('Just another WordPress site'),
@@ -400,7 +402,6 @@ function populate_options() {
        'blog_charset' => 'UTF-8',
        'moderation_keys' => '',
        'active_plugins' => array(),
        'blog_charset' => 'UTF-8',
        'moderation_keys' => '',
        'active_plugins' => array(),
-       'home' => $guessurl,
        'category_base' => '',
        'ping_sites' => 'http://rpc.pingomatic.com/',
        'advanced_edit' => 0,
        'category_base' => '',
        'ping_sites' => 'http://rpc.pingomatic.com/',
        'advanced_edit' => 0,
@@ -521,10 +522,10 @@ function populate_options() {
        if ( !empty($insert) )
                $wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES " . $insert);
 
        if ( !empty($insert) )
                $wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES " . $insert);
 
-       // in case it is set, but blank, update "home"
+       // In case it is set, but blank, update "home".
        if ( !__get_option('home') ) update_option('home', $guessurl);
 
        if ( !__get_option('home') ) update_option('home', $guessurl);
 
-       // Delete unused options
+       // Delete unused options.
        $unusedoptions = array(
                'blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory',
                'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping',
        $unusedoptions = array(
                'blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory',
                'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping',
@@ -546,26 +547,30 @@ function populate_options() {
        foreach ( $unusedoptions as $option )
                delete_option($option);
 
        foreach ( $unusedoptions as $option )
                delete_option($option);
 
-       // delete obsolete magpie stuff
+       // Delete obsolete magpie stuff.
        $wpdb->query("DELETE FROM $wpdb->options WHERE option_name REGEXP '^rss_[0-9a-f]{32}(_ts)?$'");
 
        $wpdb->query("DELETE FROM $wpdb->options WHERE option_name REGEXP '^rss_[0-9a-f]{32}(_ts)?$'");
 
-       // Deletes all expired transients.
-       // The multi-table delete syntax is used to delete the transient record from table a,
-       // and the corresponding transient_timeout record from table b.
+       /*
+        * Deletes all expired transients. The multi-table delete syntax is used
+        * to delete the transient record from table a, and the corresponding
+        * transient_timeout record from table b.
+        */
        $time = time();
        $time = time();
-       $wpdb->query("DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE
-               a.option_name LIKE '\_transient\_%' AND
-               a.option_name NOT LIKE '\_transient\_timeout\_%' AND
-               b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) )
-               AND b.option_value < $time");
+       $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b
+               WHERE a.option_name LIKE %s
+               AND a.option_name NOT LIKE %s
+               AND b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) )
+               AND b.option_value < %d";
+       $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_transient_' ) . '%', $wpdb->esc_like( '_transient_timeout_' ) . '%', $time ) );
 
        if ( is_main_site() && is_main_network() ) {
 
        if ( is_main_site() && is_main_network() ) {
-               $wpdb->query("DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE
-                       a.option_name LIKE '\_site\_transient\_%' AND
-                       a.option_name NOT LIKE '\_site\_transient\_timeout\_%' AND
-                       b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) )
-                       AND b.option_value < $time");
-    }
+               $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b
+                       WHERE a.option_name LIKE %s
+                       AND a.option_name NOT LIKE %s
+                       AND b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) )
+                       AND b.option_value < %d";
+               $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_site_transient_' ) . '%', $wpdb->esc_like( '_site_transient_timeout_' ) . '%', $time ) );
+       }
 }
 
 /**
 }
 
 /**
@@ -816,8 +821,10 @@ function populate_roles_300() {
                $role->add_cap( 'list_users' );
                $role->add_cap( 'remove_users' );
 
                $role->add_cap( 'list_users' );
                $role->add_cap( 'remove_users' );
 
-               // Never used, will be removed. create_users or
-               // promote_users is the capability you're looking for.
+               /*
+                * Never used, will be removed. create_users or promote_users
+                * is the capability you're looking for.
+                */
                $role->add_cap( 'add_users' );
 
                $role->add_cap( 'promote_users' );
                $role->add_cap( 'add_users' );
 
                $role->add_cap( 'promote_users' );
@@ -860,7 +867,7 @@ function populate_network( $network_id = 1, $domain = '', $email = '', $site_nam
        if ( '' == $site_name )
                $errors->add( 'empty_sitename', __( 'You must provide a name for your network of sites.' ) );
 
        if ( '' == $site_name )
                $errors->add( 'empty_sitename', __( 'You must provide a name for your network of sites.' ) );
 
-       // check for network collision
+       // Check for network collision.
        if ( $network_id == $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $wpdb->site WHERE id = %d", $network_id ) ) )
                $errors->add( 'siteid_exists', __( 'The network already exists.' ) );
 
        if ( $network_id == $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $wpdb->site WHERE id = %d", $network_id ) ) )
                $errors->add( 'siteid_exists', __( 'The network already exists.' ) );
 
@@ -871,7 +878,7 @@ function populate_network( $network_id = 1, $domain = '', $email = '', $site_nam
        if ( $errors->get_error_code() )
                return $errors;
 
        if ( $errors->get_error_code() )
                return $errors;
 
-       // set up site tables
+       // Set up site tables.
        $template = get_option( 'template' );
        $stylesheet = get_option( 'stylesheet' );
        $allowed_themes = array( $stylesheet => true );
        $template = get_option( 'template' );
        $stylesheet = get_option( 'stylesheet' );
        $allowed_themes = array( $stylesheet => true );
@@ -916,12 +923,26 @@ We hope you enjoy your new site. Thanks!
 
 --The Team @ SITE_NAME' );
 
 
 --The Team @ SITE_NAME' );
 
+       $misc_exts = array(
+               // Images.
+               'jpg', 'jpeg', 'png', 'gif',
+               // Video.
+               'mov', 'avi', 'mpg', '3gp', '3g2',
+               // "audio".
+               'midi', 'mid',
+               // Miscellaneous.
+               'pdf', 'doc', 'ppt', 'odt', 'pptx', 'docx', 'pps', 'ppsx', 'xls', 'xlsx', 'key',
+       );
+       $audio_exts = wp_get_audio_extensions();
+       $video_exts = wp_get_video_extensions();
+       $upload_filetypes = array_unique( array_merge( $misc_exts, $audio_exts, $video_exts ) );
+
        $sitemeta = array(
                'site_name' => $site_name,
                'admin_email' => $site_user->user_email,
                'admin_user_id' => $site_user->ID,
                'registration' => 'none',
        $sitemeta = array(
                'site_name' => $site_name,
                'admin_email' => $site_user->user_email,
                'admin_user_id' => $site_user->ID,
                'registration' => 'none',
-               'upload_filetypes' => 'jpg jpeg png gif mp3 mov avi wmv midi mid pdf',
+               'upload_filetypes' => implode( ' ', $upload_filetypes ),
                'blog_upload_space' => 100,
                'fileupload_maxk' => 1500,
                'site_admins' => $site_admins,
                'blog_upload_space' => 100,
                'fileupload_maxk' => 1500,
                'site_admins' => $site_admins,
@@ -964,9 +985,13 @@ We hope you enjoy your new site. Thanks!
        }
        $wpdb->query( "INSERT INTO $wpdb->sitemeta ( site_id, meta_key, meta_value ) VALUES " . $insert );
 
        }
        $wpdb->query( "INSERT INTO $wpdb->sitemeta ( site_id, meta_key, meta_value ) VALUES " . $insert );
 
-       // When upgrading from single to multisite, assume the current site will become the main site of the network.
-       // When using populate_network() to create another network in an existing multisite environment,
-       // skip these steps since the main site of the new network has not yet been created.
+       /*
+        * When upgrading from single to multisite, assume the current site will
+        * become the main site of the network. When using populate_network()
+        * to create another network in an existing multisite environment, skip
+        * these steps since the main site of the new network has not yet been
+        * created.
+        */
        if ( ! is_multisite() ) {
                $current_site = new stdClass;
                $current_site->domain = $domain;
        if ( ! is_multisite() ) {
                $current_site = new stdClass;
                $current_site->domain = $domain;
index 7d4ec8815240cdd10057ee85c993445db0e1949d..35f42671cb66384bd5755feb9e9ed5f15395a56d 100644 (file)
@@ -34,7 +34,7 @@ function get_column_headers( $screen ) {
                 *
                 * @param array $columns An array of column headers. Default empty.
                 */
                 *
                 * @param array $columns An array of column headers. Default empty.
                 */
-               $column_headers[ $screen->id ] = apply_filters( 'manage_' . $screen->id . '_columns', array() );
+               $column_headers[ $screen->id ] = apply_filters( "manage_{$screen->id}_columns", array() );
        }
 
        return $column_headers[ $screen->id ];
        }
 
        return $column_headers[ $screen->id ];
@@ -530,7 +530,7 @@ final class WP_Screen {
         * @see set_current_screen()
         * @since 3.3.0
         */
         * @see set_current_screen()
         * @since 3.3.0
         */
-       function set_current_screen() {
+       public function set_current_screen() {
                global $current_screen, $taxnow, $typenow;
                $current_screen = $this;
                $taxnow = $this->taxonomy;
                global $current_screen, $taxnow, $typenow;
                $current_screen = $this;
                $taxnow = $this->taxonomy;
@@ -581,7 +581,7 @@ final class WP_Screen {
         * @param WP_Screen $screen A screen object.
         * @param string $help Help text.
         */
         * @param WP_Screen $screen A screen object.
         * @param string $help Help text.
         */
-       static function add_old_compat_help( $screen, $help ) {
+       public static function add_old_compat_help( $screen, $help ) {
                self::$_old_compat_help[ $screen->id ] = $help;
        }
 
                self::$_old_compat_help[ $screen->id ] = $help;
        }
 
@@ -593,7 +593,7 @@ final class WP_Screen {
         *
         * @param string $parent_file The parent file of the screen. Typically the $parent_file global.
         */
         *
         * @param string $parent_file The parent file of the screen. Typically the $parent_file global.
         */
-       function set_parentage( $parent_file ) {
+       public function set_parentage( $parent_file ) {
                $this->parent_file = $parent_file;
                list( $this->parent_base ) = explode( '?', $parent_file );
                $this->parent_base = str_replace( '.php', '', $this->parent_base );
                $this->parent_file = $parent_file;
                list( $this->parent_base ) = explode( '?', $parent_file );
                $this->parent_base = str_replace( '.php', '', $this->parent_base );
@@ -967,10 +967,16 @@ final class WP_Screen {
 
                $show_screen = ! empty( $wp_meta_boxes[ $this->id ] ) || $columns || $this->get_option( 'per_page' );
 
 
                $show_screen = ! empty( $wp_meta_boxes[ $this->id ] ) || $columns || $this->get_option( 'per_page' );
 
-               switch ( $this->id ) {
+               switch ( $this->base ) {
                        case 'widgets':
                                $this->_screen_settings = '<p><a id="access-on" href="widgets.php?widgets-access=on">' . __('Enable accessibility mode') . '</a><a id="access-off" href="widgets.php?widgets-access=off">' . __('Disable accessibility mode') . "</a></p>\n";
                                break;
                        case 'widgets':
                                $this->_screen_settings = '<p><a id="access-on" href="widgets.php?widgets-access=on">' . __('Enable accessibility mode') . '</a><a id="access-off" href="widgets.php?widgets-access=off">' . __('Disable accessibility mode') . "</a></p>\n";
                                break;
+                       case 'post' :
+                               $expand = '<div class="editor-expand hidden"><label for="editor-expand-toggle">';
+                               $expand .= '<input type="checkbox" id="editor-expand-toggle"' . checked( get_user_setting( 'editor_expand', 'on' ), 'on', false ) . ' />';
+                               $expand .= __( 'Expand the editor to match the window height.' ) . '</label></div>';
+                               $this->_screen_settings = $expand;
+                               break;
                        default:
                                $this->_screen_settings = '';
                                break;
                        default:
                                $this->_screen_settings = '';
                                break;
@@ -1011,11 +1017,10 @@ final class WP_Screen {
         * @since 3.3.0
         */
        public function render_screen_options() {
         * @since 3.3.0
         */
        public function render_screen_options() {
-               global $wp_meta_boxes, $wp_list_table;
+               global $wp_meta_boxes;
 
                $columns = get_column_headers( $this );
                $hidden  = get_hidden_columns( $this );
 
                $columns = get_column_headers( $this );
                $hidden  = get_hidden_columns( $this );
-               $post    = get_post();
 
                ?>
                <div id="screen-options-wrap" class="hidden" tabindex="-1" aria-label="<?php esc_attr_e('Screen Options Tab'); ?>">
 
                ?>
                <div id="screen-options-wrap" class="hidden" tabindex="-1" aria-label="<?php esc_attr_e('Screen Options Tab'); ?>">
@@ -1090,7 +1095,7 @@ final class WP_Screen {
         *
         * @since 3.3.0
         */
         *
         * @since 3.3.0
         */
-       function render_screen_layout() {
+       public function render_screen_layout() {
                if ( ! $this->get_option('layout_columns') )
                        return;
 
                if ( ! $this->get_option('layout_columns') )
                        return;
 
@@ -1119,7 +1124,7 @@ final class WP_Screen {
         *
         * @since 3.3.0
         */
         *
         * @since 3.3.0
         */
-       function render_per_page_options() {
+       public function render_per_page_options() {
                if ( ! $this->get_option( 'per_page' ) )
                        return;
 
                if ( ! $this->get_option( 'per_page' ) )
                        return;
 
index 2953765efb37136d92f27921288327848ee87f8c..14618f8888115016f171b58aefdcb4d7401dd353 100644 (file)
@@ -56,15 +56,15 @@ function wp_create_category( $cat_name, $parent = 0 ) {
 }
 
 /**
 }
 
 /**
- * {@internal Missing Short Description}}
+ * Create categories for the given post.
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param unknown_type $categories
- * @param unknown_type $post_id
- * @return unknown
+ * @param array $categories List of categories to create.
+ * @param int   $post_id    Optional. The post ID. Default empty.
+ * @return List of categories to create for the given post.
  */
  */
-function wp_create_categories($categories, $post_id = '') {
+function wp_create_categories( $categories, $post_id = '' ) {
        $cat_ids = array ();
        foreach ($categories as $category) {
                if ($id = category_exists($category))
        $cat_ids = array ();
        foreach ($categories as $category) {
                if ($id = category_exists($category))
@@ -84,58 +84,71 @@ function wp_create_categories($categories, $post_id = '') {
  * Updates an existing Category or creates a new Category.
  *
  * @since 2.0.0
  * Updates an existing Category or creates a new Category.
  *
  * @since 2.0.0
+ * @since 2.5.0 $wp_error parameter was added.
+ * @since 3.0.0 The 'taxonomy' argument was added.
+ *
+ * @param array $catarr {
+ *     Array of arguments for inserting a new category.
  *
  *
- * @param mixed $catarr See defaults below. Set 'cat_ID' to a non-zero value to update an existing category. The 'taxonomy' key was added in 3.0.0.
- * @param bool $wp_error Optional, since 2.5.0. Set this to true if the caller handles WP_Error return values.
- * @return int|object The ID number of the new or updated Category on success. Zero or a WP_Error on failure, depending on param $wp_error.
+ *     @type int        $cat_ID               Categoriy ID. A non-zero value updates an existing category.
+ *                                            Default 0.
+ *     @type string     $taxonomy             Taxonomy slug. Defualt 'category'.
+ *     @type string     $cat_nam              Category name. Default empty.
+ *     @type string     $category_description Category description. Default empty.
+ *     @type string     $category_nicename    Category nice (display) name. Default empty.
+ *     @type int|string $category_parent      Category parent ID. Default empty.
+ * }
+ * @param bool  $wp_error Optional. Default false.
+ * @return int|object The ID number of the new or updated Category on success. Zero or a WP_Error on failure,
+ *                    depending on param $wp_error.
  */
  */
-function wp_insert_category($catarr, $wp_error = false) {
-       $cat_defaults = array('cat_ID' => 0, 'taxonomy' => 'category', 'cat_name' => '', 'category_description' => '', 'category_nicename' => '', 'category_parent' => '');
-       $catarr = wp_parse_args($catarr, $cat_defaults);
-       extract($catarr, EXTR_SKIP);
+function wp_insert_category( $catarr, $wp_error = false ) {
+       $cat_defaults = array( 'cat_ID' => 0, 'taxonomy' => 'category', 'cat_name' => '', 'category_description' => '', 'category_nicename' => '', 'category_parent' => '' );
+       $catarr = wp_parse_args( $catarr, $cat_defaults );
 
 
-       if ( trim( $cat_name ) == '' ) {
-               if ( ! $wp_error )
+       if ( trim( $catarr['cat_name'] ) == '' ) {
+               if ( ! $wp_error ) {
                        return 0;
                        return 0;
-               else
-                       return new WP_Error( 'cat_name', __('You did not enter a category name.') );
+               } else {
+                       return new WP_Error( 'cat_name', __( 'You did not enter a category name.' ) );
+               }
        }
 
        }
 
-       $cat_ID = (int) $cat_ID;
+       $catarr['cat_ID'] = (int) $catarr['cat_ID'];
 
        // Are we updating or creating?
 
        // Are we updating or creating?
-       if ( !empty ($cat_ID) )
-               $update = true;
-       else
-               $update = false;
-
-       $name = $cat_name;
-       $description = $category_description;
-       $slug = $category_nicename;
-       $parent = $category_parent;
-
-       $parent = (int) $parent;
-       if ( $parent < 0 )
+       $update = ! empty ( $catarr['cat_ID'] );
+
+       $name = $catarr['cat_name'];
+       $description = $catarr['category_description'];
+       $slug = $catarr['category_nicename'];
+       $parent = (int) $catarr['category_parent'];
+       if ( $parent < 0 ) {
                $parent = 0;
                $parent = 0;
+       }
 
 
-       if ( empty( $parent ) || ! term_exists( $parent, $taxonomy ) || ( $cat_ID && term_is_ancestor_of( $cat_ID, $parent, $taxonomy ) ) )
+       if ( empty( $parent )
+               || ! term_exists( $parent, $catarr['taxonomy'] )
+               || ( $catarr['cat_ID'] && term_is_ancestor_of( $catarr['cat_ID'], $parent, $catarr['taxonomy'] ) ) ) {
                $parent = 0;
                $parent = 0;
+       }
 
        $args = compact('name', 'slug', 'parent', 'description');
 
 
        $args = compact('name', 'slug', 'parent', 'description');
 
-       if ( $update )
-               $cat_ID = wp_update_term($cat_ID, $taxonomy, $args);
-       else
-               $cat_ID = wp_insert_term($cat_name, $taxonomy, $args);
+       if ( $update ) {
+               $catarr['cat_ID'] = wp_update_term( $catarr['cat_ID'], $catarr['taxonomy'], $args );
+       } else {
+               $catarr['cat_ID'] = wp_insert_term( $catarr['cat_name'], $catarr['taxonomy'], $args );
+       }
 
 
-       if ( is_wp_error($cat_ID) ) {
-               if ( $wp_error )
-                       return $cat_ID;
-               else
+       if ( is_wp_error( $catarr['cat_ID'] ) ) {
+               if ( $wp_error ) {
+                       return $catarr['cat_ID'];
+               } else {
                        return 0;
                        return 0;
+               }
        }
        }
-
-       return $cat_ID['term_id'];
+       return $catarr['cat_ID']['term_id'];
 }
 
 /**
 }
 
 /**
@@ -221,18 +234,24 @@ function get_terms_to_edit( $post_id, $taxonomy = 'post_tag' ) {
        if ( !$post_id )
                return false;
 
        if ( !$post_id )
                return false;
 
-       $tags = wp_get_post_terms($post_id, $taxonomy, array());
+       $terms = get_object_term_cache( $post_id, $taxonomy );
+       if ( false === $terms ) {
+               $terms = wp_get_object_terms( $post_id, $taxonomy );
+               wp_cache_add( $post_id, $terms, $taxonomy . '_relationships' );
+       }
 
 
-       if ( !$tags )
+       if ( ! $terms ) {
                return false;
                return false;
+       }
+       if ( is_wp_error( $terms ) ) {
+               return $terms;
+       }
+       $term_names = array();
+       foreach ( $terms as $term ) {
+               $term_names[] = $term->name;
+       }
 
 
-       if ( is_wp_error($tags) )
-               return $tags;
-
-       foreach ( $tags as $tag )
-               $tag_names[] = $tag->name;
-       $tags_to_edit = join( ',', $tag_names );
-       $tags_to_edit = esc_attr( $tags_to_edit );
+       $terms_to_edit = esc_attr( join( ',', $term_names ) );
 
        /**
         * Filter the comma-separated list of terms available to edit.
 
        /**
         * Filter the comma-separated list of terms available to edit.
@@ -241,12 +260,12 @@ function get_terms_to_edit( $post_id, $taxonomy = 'post_tag' ) {
         *
         * @see get_terms_to_edit()
         *
         *
         * @see get_terms_to_edit()
         *
-        * @param array  $tags_to_edit An array of terms.
+        * @param array  $terms_to_edit An array of terms.
         * @param string $taxonomy     The taxonomy for which to retrieve terms. Default 'post_tag'.
         */
         * @param string $taxonomy     The taxonomy for which to retrieve terms. Default 'post_tag'.
         */
-       $tags_to_edit = apply_filters( 'terms_to_edit', $tags_to_edit, $taxonomy );
+       $terms_to_edit = apply_filters( 'terms_to_edit', $terms_to_edit, $taxonomy );
 
 
-       return $tags_to_edit;
+       return $terms_to_edit;
 }
 
 /**
 }
 
 /**
index fb5814483c3a0c0440c24e9d8ec652bd6e735aba..30dcf0fc0921837dc025f85605b4748bc90cdd62 100644 (file)
@@ -21,8 +21,8 @@
  * @since 2.5.1
  */
 class Walker_Category_Checklist extends Walker {
  * @since 2.5.1
  */
 class Walker_Category_Checklist extends Walker {
-       var $tree_type = 'category';
-       var $db_fields = array ('parent' => 'parent', 'id' => 'term_id'); //TODO: decouple this
+       public $tree_type = 'category';
+       public $db_fields = array ('parent' => 'parent', 'id' => 'term_id'); //TODO: decouple this
 
        /**
         * Starts the list before the elements are added.
 
        /**
         * Starts the list before the elements are added.
@@ -35,7 +35,7 @@ class Walker_Category_Checklist extends Walker {
         * @param int    $depth  Depth of category. Used for tab indentation.
         * @param array  $args   An array of arguments. @see wp_terms_checklist()
         */
         * @param int    $depth  Depth of category. Used for tab indentation.
         * @param array  $args   An array of arguments. @see wp_terms_checklist()
         */
-       function start_lvl( &$output, $depth = 0, $args = array() ) {
+       public function start_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat("\t", $depth);
                $output .= "$indent<ul class='children'>\n";
        }
                $indent = str_repeat("\t", $depth);
                $output .= "$indent<ul class='children'>\n";
        }
@@ -51,7 +51,7 @@ class Walker_Category_Checklist extends Walker {
         * @param int    $depth  Depth of category. Used for tab indentation.
         * @param array  $args   An array of arguments. @see wp_terms_checklist()
         */
         * @param int    $depth  Depth of category. Used for tab indentation.
         * @param array  $args   An array of arguments. @see wp_terms_checklist()
         */
-       function end_lvl( &$output, $depth = 0, $args = array() ) {
+       public function end_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat("\t", $depth);
                $output .= "$indent</ul>\n";
        }
                $indent = str_repeat("\t", $depth);
                $output .= "$indent</ul>\n";
        }
@@ -69,20 +69,29 @@ class Walker_Category_Checklist extends Walker {
         * @param array  $args     An array of arguments. @see wp_terms_checklist()
         * @param int    $id       ID of the current term.
         */
         * @param array  $args     An array of arguments. @see wp_terms_checklist()
         * @param int    $id       ID of the current term.
         */
-       function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {
-               extract($args);
-               if ( empty($taxonomy) )
+       public function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {
+               if ( empty( $args['taxonomy'] ) ) {
                        $taxonomy = 'category';
                        $taxonomy = 'category';
+               } else {
+                       $taxonomy = $args['taxonomy'];
+               }
 
 
-               if ( $taxonomy == 'category' )
+               if ( $taxonomy == 'category' ) {
                        $name = 'post_category';
                        $name = 'post_category';
-               else
-                       $name = 'tax_input['.$taxonomy.']';
+               } else {
+                       $name = 'tax_input[' . $taxonomy . ']';
+               }
+               $args['popular_cats'] = empty( $args['popular_cats'] ) ? array() : $args['popular_cats'];
+               $class = in_array( $category->term_id, $args['popular_cats'] ) ? ' class="popular-category"' : '';
 
 
-               $class = in_array( $category->term_id, $popular_cats ) ? ' class="popular-category"' : '';
+               $args['selected_cats'] = empty( $args['selected_cats'] ) ? array() : $args['selected_cats'];
 
                /** This filter is documented in wp-includes/category-template.php */
 
                /** This filter is documented in wp-includes/category-template.php */
-               $output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" . '<label class="selectit"><input value="' . $category->term_id . '" type="checkbox" name="'.$name.'[]" id="in-'.$taxonomy.'-' . $category->term_id . '"' . checked( in_array( $category->term_id, $selected_cats ), true, false ) . disabled( empty( $args['disabled'] ), false, false ) . ' /> ' . esc_html( apply_filters( 'the_category', $category->name ) ) . '</label>';
+               $output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" .
+                       '<label class="selectit"><input value="' . $category->term_id . '" type="checkbox" name="'.$name.'[]" id="in-'.$taxonomy.'-' . $category->term_id . '"' .
+                       checked( in_array( $category->term_id, $args['selected_cats'] ), true, false ) .
+                       disabled( empty( $args['disabled'] ), false, false ) . ' /> ' .
+                       esc_html( apply_filters( 'the_category', $category->name ) ) . '</label>';
        }
 
        /**
        }
 
        /**
@@ -97,7 +106,7 @@ class Walker_Category_Checklist extends Walker {
         * @param int    $depth    Depth of the term in reference to parents. Default 0.
         * @param array  $args     An array of arguments. @see wp_terms_checklist()
         */
         * @param int    $depth    Depth of the term in reference to parents. Default 0.
         * @param array  $args     An array of arguments. @see wp_terms_checklist()
         */
-       function end_el( &$output, $category, $depth = 0, $args = array() ) {
+       public function end_el( &$output, $category, $depth = 0, $args = array() ) {
                $output .= "</li>\n";
        }
 }
                $output .= "</li>\n";
        }
 }
@@ -136,7 +145,7 @@ function wp_category_checklist( $post_id = 0, $descendants_and_self = 0, $select
  * @param int $post_id
  * @param array $args
  */
  * @param int $post_id
  * @param array $args
  */
-function wp_terms_checklist($post_id = 0, $args = array()) {
+function wp_terms_checklist( $post_id = 0, $args = array() ) {
        $defaults = array(
                'descendants_and_self' => 0,
                'selected_cats' => false,
        $defaults = array(
                'descendants_and_self' => 0,
                'selected_cats' => false,
@@ -156,41 +165,55 @@ function wp_terms_checklist($post_id = 0, $args = array()) {
         * @param array $args    An array of arguments.
         * @param int   $post_id The post ID.
         */
         * @param array $args    An array of arguments.
         * @param int   $post_id The post ID.
         */
-       $args = apply_filters( 'wp_terms_checklist_args', $args, $post_id );
+       $params = apply_filters( 'wp_terms_checklist_args', $args, $post_id );
 
 
-       extract( wp_parse_args($args, $defaults), EXTR_SKIP );
+       $r = wp_parse_args( $params, $defaults );
 
 
-       if ( empty($walker) || !is_a($walker, 'Walker') )
+       if ( empty( $r['walker'] ) || ! is_a( $r['walker'], 'Walker' ) ) {
                $walker = new Walker_Category_Checklist;
                $walker = new Walker_Category_Checklist;
+       } else {
+               $walker = $r['walker'];
+       }
 
 
-       $descendants_and_self = (int) $descendants_and_self;
+       $taxonomy = $r['taxonomy'];
+       $descendants_and_self = (int) $r['descendants_and_self'];
 
 
-       $args = array('taxonomy' => $taxonomy);
+       $args = array( 'taxonomy' => $taxonomy );
 
 
-       $tax = get_taxonomy($taxonomy);
-       $args['disabled'] = !current_user_can($tax->cap->assign_terms);
+       $tax = get_taxonomy( $taxonomy );
+       $args['disabled'] = ! current_user_can( $tax->cap->assign_terms );
 
 
-       if ( is_array( $selected_cats ) )
-               $args['selected_cats'] = $selected_cats;
-       elseif ( $post_id )
-               $args['selected_cats'] = wp_get_object_terms($post_id, $taxonomy, array_merge($args, array('fields' => 'ids')));
-       else
+       if ( is_array( $r['selected_cats'] ) ) {
+               $args['selected_cats'] = $r['selected_cats'];
+       } elseif ( $post_id ) {
+               $args['selected_cats'] = wp_get_object_terms( $post_id, $taxonomy, array_merge( $args, array( 'fields' => 'ids' ) ) );
+       } else {
                $args['selected_cats'] = array();
                $args['selected_cats'] = array();
-
-       if ( is_array( $popular_cats ) )
-               $args['popular_cats'] = $popular_cats;
-       else
-               $args['popular_cats'] = get_terms( $taxonomy, array( 'fields' => 'ids', 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false ) );
-
+       }
+       if ( is_array( $r['popular_cats'] ) ) {
+               $args['popular_cats'] = $r['popular_cats'];
+       } else {
+               $args['popular_cats'] = get_terms( $taxonomy, array(
+                       'fields' => 'ids',
+                       'orderby' => 'count',
+                       'order' => 'DESC',
+                       'number' => 10,
+                       'hierarchical' => false
+               ) );
+       }
        if ( $descendants_and_self ) {
        if ( $descendants_and_self ) {
-               $categories = (array) get_terms($taxonomy, array( 'child_of' => $descendants_and_self, 'hierarchical' => 0, 'hide_empty' => 0 ) );
+               $categories = (array) get_terms( $taxonomy, array(
+                       'child_of' => $descendants_and_self,
+                       'hierarchical' => 0,
+                       'hide_empty' => 0
+               ) );
                $self = get_term( $descendants_and_self, $taxonomy );
                array_unshift( $categories, $self );
        } else {
                $self = get_term( $descendants_and_self, $taxonomy );
                array_unshift( $categories, $self );
        } else {
-               $categories = (array) get_terms($taxonomy, array('get' => 'all'));
+               $categories = (array) get_terms( $taxonomy, array( 'get' => 'all' ) );
        }
 
        }
 
-       if ( $checked_ontop ) {
+       if ( $r['checked_ontop'] ) {
                // Post process $categories rather than adding an exclude to the get_terms() query to keep the query the same across all posts (for any query cache)
                $checked_categories = array();
                $keys = array_keys( $categories );
                // Post process $categories rather than adding an exclude to the get_terms() query to keep the query the same across all posts (for any query cache)
                $checked_categories = array();
                $keys = array_keys( $categories );
@@ -203,10 +226,10 @@ function wp_terms_checklist($post_id = 0, $args = array()) {
                }
 
                // Put checked cats on top
                }
 
                // Put checked cats on top
-               echo call_user_func_array(array(&$walker, 'walk'), array($checked_categories, 0, $args));
+               echo call_user_func_array( array( $walker, 'walk' ), array( $checked_categories, 0, $args ) );
        }
        // Then the rest of them
        }
        // Then the rest of them
-       echo call_user_func_array(array(&$walker, 'walk'), array($categories, 0, $args));
+       echo call_user_func_array( array( $walker, 'walk' ), array( $categories, 0, $args ) );
 }
 
 /**
 }
 
 /**
@@ -341,11 +364,21 @@ function get_inline_data($post) {
                $taxonomy = get_taxonomy( $taxonomy_name );
 
                if ( $taxonomy->hierarchical && $taxonomy->show_ui ) {
                $taxonomy = get_taxonomy( $taxonomy_name );
 
                if ( $taxonomy->hierarchical && $taxonomy->show_ui ) {
-                               echo '<div class="post_category" id="' . $taxonomy_name . '_' . $post->ID . '">'
-                                       . implode( ',', wp_get_object_terms( $post->ID, $taxonomy_name, array( 'fields' => 'ids' ) ) ) . '</div>';
+
+                       $terms = get_object_term_cache( $post->ID, $taxonomy_name );
+                       if ( false === $terms ) {
+                               $terms = wp_get_object_terms( $post->ID, $taxonomy_name );
+                               wp_cache_add( $post->ID, $terms, $taxonomy_name . '_relationships' );
+                       }
+                       $term_ids = empty( $terms ) ? array() : wp_list_pluck( $terms, 'term_id' );
+
+                       echo '<div class="post_category" id="' . $taxonomy_name . '_' . $post->ID . '">' . implode( ',', $term_ids ) . '</div>';
+
                } elseif ( $taxonomy->show_ui ) {
                } elseif ( $taxonomy->show_ui ) {
+
                        echo '<div class="tags_input" id="'.$taxonomy_name.'_'.$post->ID.'">'
                                . esc_html( str_replace( ',', ', ', get_terms_to_edit( $post->ID, $taxonomy_name ) ) ) . '</div>';
                        echo '<div class="tags_input" id="'.$taxonomy_name.'_'.$post->ID.'">'
                                . esc_html( str_replace( ',', ', ', get_terms_to_edit( $post->ID, $taxonomy_name ) ) ) . '</div>';
+
                }
        }
 
                }
        }
 
@@ -419,7 +452,7 @@ function wp_comment_reply($position = '1', $checkbox = false, $mode = 'single',
 
                <div class="inside">
                <label for="author-url"><?php _e('URL') ?></label>
 
                <div class="inside">
                <label for="author-url"><?php _e('URL') ?></label>
-               <input type="text" id="author-url" name="newcomment_author_url" size="103" value="" />
+               <input type="text" id="author-url" name="newcomment_author_url" class="code" size="103" value="" />
                </div>
                <div style="clear:both;"></div>
        </div>
                </div>
                <div style="clear:both;"></div>
        </div>
@@ -550,10 +583,10 @@ function _list_meta_row( $entry, &$count ) {
 
        if ( is_serialized( $entry['meta_value'] ) ) {
                if ( is_serialized_string( $entry['meta_value'] ) ) {
 
        if ( is_serialized( $entry['meta_value'] ) ) {
                if ( is_serialized_string( $entry['meta_value'] ) ) {
-                       // this is a serialized string, so we should display it
+                       // This is a serialized string, so we should display it.
                        $entry['meta_value'] = maybe_unserialize( $entry['meta_value'] );
                } else {
                        $entry['meta_value'] = maybe_unserialize( $entry['meta_value'] );
                } else {
-                       // this is a serialized array/object so we should NOT display it
+                       // This is a serialized array/object so we should NOT display it.
                        --$count;
                        return;
                }
                        --$count;
                        return;
                }
@@ -599,14 +632,14 @@ function meta_form( $post = null ) {
         *
         * @param int $limit Number of custom fields to retrieve. Default 30.
         */
         *
         * @param int $limit Number of custom fields to retrieve. Default 30.
         */
-       $limit = (int) apply_filters( 'postmeta_form_limit', 30 );
-       $keys = $wpdb->get_col( "
-               SELECT meta_key
+       $limit = apply_filters( 'postmeta_form_limit', 30 );
+       $sql = "SELECT meta_key
                FROM $wpdb->postmeta
                GROUP BY meta_key
                FROM $wpdb->postmeta
                GROUP BY meta_key
-               HAVING meta_key NOT LIKE '\_%'
+               HAVING meta_key NOT LIKE %s
                ORDER BY meta_key
                ORDER BY meta_key
-               LIMIT $limit" );
+               LIMIT %d";
+       $keys = $wpdb->get_col( $wpdb->prepare( $sql, $wpdb->esc_like( '_' ) . '%', $limit ) );
        if ( $keys ) {
                natcasesort( $keys );
                $meta_key_input_id = 'metakeyselect';
        if ( $keys ) {
                natcasesort( $keys );
                $meta_key_input_id = 'metakeyselect';
@@ -683,6 +716,7 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
        if ( (int) $tab_index > 0 )
                $tab_index_attribute = " tabindex=\"$tab_index\"";
 
        if ( (int) $tab_index > 0 )
                $tab_index_attribute = " tabindex=\"$tab_index\"";
 
+       // todo: Remove this?
        // echo '<label for="timestamp" style="display: block;"><input type="checkbox" class="checkbox" name="edit_date" value="1" id="timestamp"'.$tab_index_attribute.' /> '.__( 'Edit timestamp' ).'</label><br />';
 
        $time_adj = current_time('timestamp');
        // echo '<label for="timestamp" style="display: block;"><input type="checkbox" class="checkbox" name="edit_date" value="1" id="timestamp"'.$tab_index_attribute.' /> '.__( 'Edit timestamp' ).'</label><br />';
 
        $time_adj = current_time('timestamp');
@@ -700,7 +734,7 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
        $cur_hh = gmdate( 'H', $time_adj );
        $cur_mn = gmdate( 'i', $time_adj );
 
        $cur_hh = gmdate( 'H', $time_adj );
        $cur_mn = gmdate( 'i', $time_adj );
 
-       $month = "<select " . ( $multi ? '' : 'id="mm" ' ) . "name=\"mm\"$tab_index_attribute>\n";
+       $month = '<label for="mm" class="screen-reader-text">' . __( 'Month' ) . '</label><select ' . ( $multi ? '' : 'id="mm" ' ) . 'name="mm"' . $tab_index_attribute . ">\n";
        for ( $i = 1; $i < 13; $i = $i +1 ) {
                $monthnum = zeroise($i, 2);
                $month .= "\t\t\t" . '<option value="' . $monthnum . '" ' . selected( $monthnum, $mm, false ) . '>';
        for ( $i = 1; $i < 13; $i = $i +1 ) {
                $monthnum = zeroise($i, 2);
                $month .= "\t\t\t" . '<option value="' . $monthnum . '" ' . selected( $monthnum, $mm, false ) . '>';
@@ -709,10 +743,10 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
        }
        $month .= '</select>';
 
        }
        $month .= '</select>';
 
-       $day = '<input type="text" ' . ( $multi ? '' : 'id="jj" ' ) . 'name="jj" value="' . $jj . '" size="2" maxlength="2"' . $tab_index_attribute . ' autocomplete="off" />';
-       $year = '<input type="text" ' . ( $multi ? '' : 'id="aa" ' ) . 'name="aa" value="' . $aa . '" size="4" maxlength="4"' . $tab_index_attribute . ' autocomplete="off" />';
-       $hour = '<input type="text" ' . ( $multi ? '' : 'id="hh" ' ) . 'name="hh" value="' . $hh . '" size="2" maxlength="2"' . $tab_index_attribute . ' autocomplete="off" />';
-       $minute = '<input type="text" ' . ( $multi ? '' : 'id="mn" ' ) . 'name="mn" value="' . $mn . '" size="2" maxlength="2"' . $tab_index_attribute . ' autocomplete="off" />';
+       $day = '<label for="jj" class="screen-reader-text">' . __( 'Day' ) . '</label><input type="text" ' . ( $multi ? '' : 'id="jj" ' ) . 'name="jj" value="' . $jj . '" size="2" maxlength="2"' . $tab_index_attribute . ' autocomplete="off" />';
+       $year = '<label for="aa" class="screen-reader-text">' . __( 'Year' ) . '</label><input type="text" ' . ( $multi ? '' : 'id="aa" ' ) . 'name="aa" value="' . $aa . '" size="4" maxlength="4"' . $tab_index_attribute . ' autocomplete="off" />';
+       $hour = '<label for="hh" class="screen-reader-text">' . __( 'Hour' ) . '</label><input type="text" ' . ( $multi ? '' : 'id="hh" ' ) . 'name="hh" value="' . $hh . '" size="2" maxlength="2"' . $tab_index_attribute . ' autocomplete="off" />';
+       $minute = '<label for="mn" class="screen-reader-text">' . __( 'Minute' ) . '</label><input type="text" ' . ( $multi ? '' : 'id="mn" ' ) . 'name="mn" value="' . $mn . '" size="2" maxlength="2"' . $tab_index_attribute . ' autocomplete="off" />';
 
        echo '<div class="timestamp-wrap">';
        /* translators: 1: month, 2: day, 3: year, 4: hour, 5: minute */
 
        echo '<div class="timestamp-wrap">';
        /* translators: 1: month, 2: day, 3: year, 4: hour, 5: minute */
@@ -723,10 +757,19 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
        if ( $multi ) return;
 
        echo "\n\n";
        if ( $multi ) return;
 
        echo "\n\n";
-       foreach ( array('mm', 'jj', 'aa', 'hh', 'mn') as $timeunit ) {
-               echo '<input type="hidden" id="hidden_' . $timeunit . '" name="hidden_' . $timeunit . '" value="' . $$timeunit . '" />' . "\n";
+       $map = array(
+               'mm' => array( $mm, $cur_mm ),
+               'jj' => array( $jj, $cur_jj ),
+               'aa' => array( $aa, $cur_aa ),
+               'hh' => array( $hh, $cur_hh ),
+               'mn' => array( $mn, $cur_mn ),
+       );
+       foreach ( $map as $timeunit => $value ) {
+               list( $unit, $curr ) = $value;
+
+               echo '<input type="hidden" id="hidden_' . $timeunit . '" name="hidden_' . $timeunit . '" value="' . $unit . '" />' . "\n";
                $cur_timeunit = 'cur_' . $timeunit;
                $cur_timeunit = 'cur_' . $timeunit;
-               echo '<input type="hidden" id="' . $cur_timeunit . '" name="' . $cur_timeunit . '" value="' . $$cur_timeunit . '" />' . "\n";
+               echo '<input type="hidden" id="' . $cur_timeunit . '" name="' . $cur_timeunit . '" value="' . $curr . '" />' . "\n";
        }
 ?>
 
        }
 ?>
 
@@ -898,23 +941,30 @@ function add_meta_box( $id, $title, $callback, $screen = null, $context = 'advan
                                // If core box previously deleted, don't add
                                if ( false === $wp_meta_boxes[$page][$a_context][$a_priority][$id] )
                                        return;
                                // If core box previously deleted, don't add
                                if ( false === $wp_meta_boxes[$page][$a_context][$a_priority][$id] )
                                        return;
-                               // If box was added with default priority, give it core priority to maintain sort order
+
+                               /*
+                                * If box was added with default priority, give it core priority to
+                                * maintain sort order.
+                                */
                                if ( 'default' == $a_priority ) {
                                        $wp_meta_boxes[$page][$a_context]['core'][$id] = $wp_meta_boxes[$page][$a_context]['default'][$id];
                                        unset($wp_meta_boxes[$page][$a_context]['default'][$id]);
                                }
                                return;
                        }
                                if ( 'default' == $a_priority ) {
                                        $wp_meta_boxes[$page][$a_context]['core'][$id] = $wp_meta_boxes[$page][$a_context]['default'][$id];
                                        unset($wp_meta_boxes[$page][$a_context]['default'][$id]);
                                }
                                return;
                        }
-                       // If no priority given and id already present, use existing priority
+                       // If no priority given and id already present, use existing priority.
                        if ( empty($priority) ) {
                                $priority = $a_priority;
                        if ( empty($priority) ) {
                                $priority = $a_priority;
-                       // else if we're adding to the sorted priority, we don't know the title or callback. Grab them from the previously added context/priority.
+                       /*
+                        * Else, if we're adding to the sorted priority, we don't know the title
+                        * or callback. Grab them from the previously added context/priority.
+                        */
                        } elseif ( 'sorted' == $priority ) {
                                $title = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['title'];
                                $callback = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['callback'];
                                $callback_args = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['args'];
                        }
                        } elseif ( 'sorted' == $priority ) {
                                $title = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['title'];
                                $callback = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['callback'];
                                $callback_args = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['args'];
                        }
-                       // An id can be in only one priority and one context
+                       // An id can be in only one priority and one context.
                        if ( $priority != $a_priority || $context != $a_context )
                                unset($wp_meta_boxes[$page][$a_context][$a_priority][$id]);
                }
                        if ( $priority != $a_priority || $context != $a_context )
                                unset($wp_meta_boxes[$page][$a_context][$a_priority][$id]);
                }
@@ -1080,7 +1130,10 @@ function do_accordion_sections( $screen, $context, $object ) {
                                        }
                                        ?>
                                        <li class="control-section accordion-section <?php echo $hidden_class; ?> <?php echo $open_class; ?> <?php echo esc_attr( $box['id'] ); ?>" id="<?php echo esc_attr( $box['id'] ); ?>">
                                        }
                                        ?>
                                        <li class="control-section accordion-section <?php echo $hidden_class; ?> <?php echo $open_class; ?> <?php echo esc_attr( $box['id'] ); ?>" id="<?php echo esc_attr( $box['id'] ); ?>">
-                                               <h3 class="accordion-section-title hndle" tabindex="0" title="<?php echo esc_attr( $box['title'] ); ?>"><?php echo esc_html( $box['title'] ); ?></h3>
+                                               <h3 class="accordion-section-title hndle" tabindex="0">
+                                                       <?php echo esc_html( $box['title'] ); ?>
+                                                       <span class="screen-reader-text"><?php _e( 'Press return or enter to expand' ); ?></span>
+                                               </h3>
                                                <div class="accordion-section-content <?php postbox_classes( $box['id'], $page ); ?>">
                                                        <div class="inside">
                                                                <?php call_user_func( $box['callback'], $object, $box ); ?>
                                                <div class="accordion-section-content <?php postbox_classes( $box['id'], $page ); ?>">
                                                        <div class="inside">
                                                                <?php call_user_func( $box['callback'], $object, $box ); ?>
@@ -1265,13 +1318,12 @@ function do_settings_fields($page, $section) {
 function add_settings_error( $setting, $code, $message, $type = 'error' ) {
        global $wp_settings_errors;
 
 function add_settings_error( $setting, $code, $message, $type = 'error' ) {
        global $wp_settings_errors;
 
-       $new_error = array(
+       $wp_settings_errors[] = array(
                'setting' => $setting,
                'setting' => $setting,
-               'code' => $code,
+               'code'    => $code,
                'message' => $message,
                'message' => $message,
-               'type' => $type
+               'type'    => $type
        );
        );
-       $wp_settings_errors[] = $new_error;
 }
 
 /**
 }
 
 /**
@@ -1299,23 +1351,25 @@ function add_settings_error( $setting, $code, $message, $type = 'error' ) {
 function get_settings_errors( $setting = '', $sanitize = false ) {
        global $wp_settings_errors;
 
 function get_settings_errors( $setting = '', $sanitize = false ) {
        global $wp_settings_errors;
 
-       // If $sanitize is true, manually re-run the sanitization for this option
-       // This allows the $sanitize_callback from register_setting() to run, adding
-       // any settings errors you want to show by default.
+       /*
+        * If $sanitize is true, manually re-run the sanitization for this option
+        * This allows the $sanitize_callback from register_setting() to run, adding
+        * any settings errors you want to show by default.
+        */
        if ( $sanitize )
                sanitize_option( $setting, get_option( $setting ) );
 
        if ( $sanitize )
                sanitize_option( $setting, get_option( $setting ) );
 
-       // If settings were passed back from options.php then use them
+       // If settings were passed back from options.php then use them.
        if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] && get_transient( 'settings_errors' ) ) {
                $wp_settings_errors = array_merge( (array) $wp_settings_errors, get_transient( 'settings_errors' ) );
                delete_transient( 'settings_errors' );
        }
 
        if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] && get_transient( 'settings_errors' ) ) {
                $wp_settings_errors = array_merge( (array) $wp_settings_errors, get_transient( 'settings_errors' ) );
                delete_transient( 'settings_errors' );
        }
 
-       // Check global in case errors have been added on this pageload
+       // Check global in case errors have been added on this pageload.
        if ( ! count( $wp_settings_errors ) )
                return array();
 
        if ( ! count( $wp_settings_errors ) )
                return array();
 
-       // Filter the results to those of a specific setting if one was set
+       // Filter the results to those of a specific setting if one was set.
        if ( $setting ) {
                $setting_errors = array();
                foreach ( (array) $wp_settings_errors as $key => $details ) {
        if ( $setting ) {
                $setting_errors = array();
                foreach ( (array) $wp_settings_errors as $key => $details ) {
@@ -1430,8 +1484,9 @@ function the_post_password() {
  * returned.
  *
  * @since 2.7.0
  * returned.
  *
  * @since 2.7.0
- * @param mixed $post Post id or object. If not supplied the global $post is used.
- * @return string The post title if set
+ *
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
+ * @return string The post title if set.
  */
 function _draft_or_post_title( $post = 0 ) {
        $title = get_the_title( $post );
  */
 function _draft_or_post_title( $post = 0 ) {
        $title = get_the_title( $post );
@@ -1950,7 +2005,7 @@ final class WP_Internal_Pointers {
 
                self::print_js( 'wp360_revisions', '.misc-pub-section.misc-pub-revisions', array(
                        'content' => $content,
 
                self::print_js( 'wp360_revisions', '.misc-pub-section.misc-pub-revisions', array(
                        'content' => $content,
-                       'position' => array( 'edge' => is_rtl() ? 'left' : 'right', 'align' => 'center', 'my' => is_rtl() ? 'left' : 'right-14px' ),
+                       'position' => array( 'edge' => is_rtl() ? 'left' : 'right', 'align' => 'center' ),
                ) );
        }
 
                ) );
        }
 
@@ -1978,7 +2033,7 @@ final class WP_Internal_Pointers {
 
                if ( 'themes' === get_current_screen()->id ) {
                        $selector = '.theme.active .customize';
 
                if ( 'themes' === get_current_screen()->id ) {
                        $selector = '.theme.active .customize';
-                       $position = array( 'edge' => is_rtl() ? 'right' : 'left', 'align' => 'center', 'my' => is_rtl() ? 'right-13px' : '' );
+                       $position = array( 'edge' => is_rtl() ? 'right' : 'left', 'align' => 'center' );
                } else {
                        $selector = 'a[href="customize.php"]';
                        if ( is_rtl() ) {
                } else {
                        $selector = 'a[href="customize.php"]';
                        if ( is_rtl() ) {
@@ -2070,13 +2125,12 @@ function wp_star_rating( $args = array() ) {
                'number' => 0,
        );
        $r = wp_parse_args( $args, $defaults );
                'number' => 0,
        );
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
 
        // Non-english decimal places when the $rating is coming from a string
 
        // Non-english decimal places when the $rating is coming from a string
-       $rating = str_replace( ',', '.', $rating );
+       $rating = str_replace( ',', '.', $r['rating'] );
 
        // Convert Percentage to star rating, 0..5 in .5 increments
 
        // Convert Percentage to star rating, 0..5 in .5 increments
-       if ( 'percent' == $type ) {
+       if ( 'percent' == $r['type'] ) {
                $rating = round( $rating / 10, 0 ) / 2;
        }
 
                $rating = round( $rating / 10, 0 ) / 2;
        }
 
@@ -2085,16 +2139,17 @@ function wp_star_rating( $args = array() ) {
        $half_stars = ceil( $rating - $full_stars );
        $empty_stars = 5 - $full_stars - $half_stars;
 
        $half_stars = ceil( $rating - $full_stars );
        $empty_stars = 5 - $full_stars - $half_stars;
 
-       if ( $number ) {
+       if ( $r['number'] ) {
                /* translators: 1: The rating, 2: The number of ratings */
                /* translators: 1: The rating, 2: The number of ratings */
-               $title = _n( '%1$s rating based on %2$s rating', '%1$s rating based on %2$s ratings', $number );
-               $title = sprintf( $title, number_format_i18n( $rating, 1 ), number_format_i18n( $number ) );
+               $format = _n( '%1$s rating based on %2$s rating', '%1$s rating based on %2$s ratings', $r['number'] );
+               $title = sprintf( $format, number_format_i18n( $rating, 1 ), number_format_i18n( $r['number'] ) );
        } else {
                /* translators: 1: The rating */
                $title = sprintf( __( '%s rating' ), number_format_i18n( $rating, 1 ) );
        }
 
        echo '<div class="star-rating" title="' . esc_attr( $title ) . '">';
        } else {
                /* translators: 1: The rating */
                $title = sprintf( __( '%s rating' ), number_format_i18n( $rating, 1 ) );
        }
 
        echo '<div class="star-rating" title="' . esc_attr( $title ) . '">';
+       echo '<span class="screen-reader-text">' . $title . '</span>';
        echo str_repeat( '<div class="star star-full"></div>', $full_stars );
        echo str_repeat( '<div class="star star-half"></div>', $half_stars );
        echo str_repeat( '<div class="star star-empty"></div>', $empty_stars);
        echo str_repeat( '<div class="star star-full"></div>', $full_stars );
        echo str_repeat( '<div class="star star-half"></div>', $half_stars );
        echo str_repeat( '<div class="star star-empty"></div>', $empty_stars);
index ab665f81532ea5c6e15b18b1ee9f4d43a1381694..eaef0bcdf653be44bbad595b2e4226d1c3be85bd 100644 (file)
@@ -238,7 +238,7 @@ function get_theme_feature_list( $api = true ) {
                return $features;
 
        if ( !$feature_list = get_site_transient( 'wporg_theme_feature_list' ) )
                return $features;
 
        if ( !$feature_list = get_site_transient( 'wporg_theme_feature_list' ) )
-               set_site_transient( 'wporg_theme_feature_list', array(), 10800);
+               set_site_transient( 'wporg_theme_feature_list', array(), 3 * HOUR_IN_SECONDS );
 
        if ( !$feature_list ) {
                $feature_list = themes_api( 'feature_list', array() );
 
        if ( !$feature_list ) {
                $feature_list = themes_api( 'feature_list', array() );
@@ -249,7 +249,7 @@ function get_theme_feature_list( $api = true ) {
        if ( !$feature_list )
                return $features;
 
        if ( !$feature_list )
                return $features;
 
-       set_site_transient( 'wporg_theme_feature_list', $feature_list, 10800 );
+       set_site_transient( 'wporg_theme_feature_list', $feature_list, 3 * HOUR_IN_SECONDS );
 
        $category_translations = array(
                'Colors'   => __( 'Colors' ),
 
        $category_translations = array(
                'Colors'   => __( 'Colors' ),
@@ -282,7 +282,7 @@ function get_theme_feature_list( $api = true ) {
  * It is possible for a theme to override the Themes API result with three
  * filters. Assume this is for themes, which can extend on the Theme Info to
  * offer more choices. This is very powerful and must be used with care, when
  * It is possible for a theme to override the Themes API result with three
  * filters. Assume this is for themes, which can extend on the Theme Info to
  * offer more choices. This is very powerful and must be used with care, when
- * overridding the filters.
+ * overriding the filters.
  *
  * The first filter, 'themes_api_args', is for the args and gives the action as
  * the second parameter. The hook for 'themes_api_args' must ensure that an
  *
  * The first filter, 'themes_api_args', is for the args and gives the action as
  * the second parameter. The hook for 'themes_api_args' must ensure that an
@@ -430,7 +430,7 @@ function wp_prepare_themes_for_js( $themes = null ) {
                        'update'       => get_theme_update_available( $theme ),
                        'actions'      => array(
                                'activate' => current_user_can( 'switch_themes' ) ? wp_nonce_url( admin_url( 'themes.php?action=activate&amp;stylesheet=' . $encoded_slug ), 'switch-theme_' . $slug ) : null,
                        'update'       => get_theme_update_available( $theme ),
                        'actions'      => array(
                                'activate' => current_user_can( 'switch_themes' ) ? wp_nonce_url( admin_url( 'themes.php?action=activate&amp;stylesheet=' . $encoded_slug ), 'switch-theme_' . $slug ) : null,
-                               'customize'=> current_user_can( 'edit_theme_options' ) ? wp_customize_url( $slug ) : null,
+                               'customize' => ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) ? wp_customize_url( $slug ) : null,
                                'preview'   => add_query_arg( array(
                                        'preview'        => 1,
                                        'template'       => urlencode( $theme->get_template() ),
                                'preview'   => add_query_arg( array(
                                        'preview'        => 1,
                                        'template'       => urlencode( $theme->get_template() ),
diff --git a/wp-admin/includes/translation-install.php b/wp-admin/includes/translation-install.php
new file mode 100644 (file)
index 0000000..f3cc370
--- /dev/null
@@ -0,0 +1,240 @@
+<?php
+/**
+ * WordPress Translation Install Administration API
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
+
+
+/**
+ * Retrieve translations from WordPress Translation API.
+ *
+ * @since 4.0.0
+ *
+ * @param string       $type Type of translations. Accepts 'plugins', 'themes', 'core'.
+ * @param array|object $args Translation API arguments. Optional.
+ * @return object|WP_Error On success an object of translations, WP_Error on failure.
+ */
+function translations_api( $type, $args = null ) {
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
+
+       if ( ! in_array( $type, array( 'plugins', 'themes', 'core' ) ) ) {
+               return  new WP_Error( 'invalid_type', __( 'Invalid translation type.' ) );
+       }
+
+       /**
+        * Allows a plugin to override the WordPress.org Translation Install API entirely.
+        *
+        * @since 4.0.0
+        *
+        * @param bool|array  $result The result object. Default false.
+        * @param string      $type   The type of translations being requested.
+        * @param object      $args   Translation API arguments.
+        */
+       $res = apply_filters( 'translations_api', false, $type, $args );
+
+       if ( false === $res ) {
+               $url = $http_url = 'http://api.wordpress.org/translations/' . $type . '/1.0/';
+               if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) {
+                       $url = set_url_scheme( $url, 'https' );
+               }
+
+               $options = array(
+                       'timeout' => 3,
+                       'body' => array(
+                               'wp_version' => $wp_version,
+                               'locale'     => get_locale(),
+                               'version'    => $args['version'], // Version of plugin, theme or core
+                       ),
+               );
+
+               if ( 'core' !== $type ) {
+                       $options['body']['slug'] = $args['slug']; // Plugin or theme slug
+               }
+
+               $request = wp_remote_post( $url, $options );
+
+               if ( $ssl && is_wp_error( $request ) ) {
+                       trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE );
+
+                       $request = wp_remote_post( $http_url, $options );
+               }
+
+               if ( is_wp_error( $request ) ) {
+                       $res = new WP_Error( 'translations_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), $request->get_error_message() );
+               } else {
+                       $res = json_decode( wp_remote_retrieve_body( $request ), true );
+                       if ( ! is_object( $res ) && ! is_array( $res ) ) {
+                               $res = new WP_Error( 'translations_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), wp_remote_retrieve_body( $request ) );
+                       }
+               }
+       }
+
+       /**
+        * Filter the Translation Install API response results.
+        *
+        * @since 4.0.0
+        *
+        * @param object|WP_Error $res  Response object or WP_Error.
+        * @param string          $type The type of translations being requested.
+        * @param object          $args Translation API arguments.
+        */
+       return apply_filters( 'translations_api_result', $res, $type, $args );
+}
+
+/**
+ * Get available translations from the WordPress.org API.
+ *
+ * @since 4.0.0
+ *
+ * @see translations_api()
+ *
+ * @return array Array of translations, each an array of data. If the API response results
+ *               in an error, an empty array will be returned.
+ */
+function wp_get_available_translations() {
+       if ( ! defined( 'WP_INSTALLING' ) && false !== ( $translations = get_site_transient( 'available_translations' ) ) ) {
+               return $translations;
+       }
+
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
+
+       $api = translations_api( 'core', array( 'version' => $wp_version ) );
+
+       if ( is_wp_error( $api ) || empty( $api['translations'] ) ) {
+               return array();
+       }
+
+       $translations = array();
+       // Key the array with the language code for now.
+       foreach ( $api['translations'] as $translation ) {
+               $translations[ $translation['language'] ] = $translation;
+       }
+
+       if ( ! defined( 'WP_INSTALLING' ) ) {
+               set_site_transient( 'available_translations', $translations, 3 * HOUR_IN_SECONDS );
+       }
+
+       return $translations;
+}
+
+/**
+ * Output the select form for the language selection on the installation screen.
+ *
+ * @since 4.0.0
+ *
+ * @param array $languages Array of available languages (populated via the Translation API).
+ */
+function wp_install_language_form( $languages ) {
+       global $wp_local_package;
+
+       $installed_languages = get_available_languages();
+
+       echo "<label class='screen-reader-text' for='language'>Select a default language</label>\n";
+       echo "<select size='14' name='language' id='language'>\n";
+       echo '<option value="" lang="en" selected="selected" data-continue="Continue" data-installed="1">English (United States)</option>';
+       echo "\n";
+
+       if ( ! empty( $wp_local_package ) && isset( $languages[ $wp_local_package ] ) ) {
+               if ( isset( $languages[ $wp_local_package ] ) ) {
+                       $language = $languages[ $wp_local_package ];
+                       printf( '<option value="%s" lang="%s" data-continue="%s"%s>%s</option>' . "\n",
+                               esc_attr( $language['language'] ),
+                               esc_attr( $language['iso'][1] ),
+                               esc_attr( $language['strings']['continue'] ),
+                               in_array( $language['language'], $installed_languages ) ? ' data-installed="1"' : '',
+                               esc_html( $language['native_name'] ) );
+
+                       unset( $languages[ $wp_local_package ] );
+               }
+       }
+
+       foreach ( $languages as $language ) {
+               printf( '<option value="%s" lang="%s" data-continue="%s"%s>%s</option>' . "\n",
+                       esc_attr( $language['language'] ),
+                       esc_attr( $language['iso'][1] ),
+                       esc_attr( $language['strings']['continue'] ),
+                       in_array( $language['language'], $installed_languages ) ? ' data-installed="1"' : '',
+                       esc_html( $language['native_name'] ) );
+       }
+       echo "</select>\n";
+       echo '<p class="step"><span class="spinner"></span><input id="language-continue" type="submit" class="button button-primary button-large" value="Continue" /></p>';
+}
+
+/**
+ * Download a language pack.
+ *
+ * @since 4.0.0
+ *
+ * @see wp_get_available_translations()
+ *
+ * @param string $download Language code to download.
+ * @return string|bool Returns the language code if successfully downloaded
+ *                     (or already installed), or false on failure.
+ */
+function wp_download_language_pack( $download ) {
+       // Check if the translation is already installed.
+       if ( in_array( $download, get_available_languages() ) ) {
+               return $download;
+       }
+
+       if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) {
+               return false;
+       }
+
+       // Confirm the translation is one we can download.
+       $translations = wp_get_available_translations();
+       if ( ! $translations ) {
+               return false;
+       }
+       foreach ( $translations as $translation ) {
+               if ( $translation['language'] === $download ) {
+                       $translation_to_load = true;
+                       break;
+               }
+       }
+
+       if ( empty( $translation_to_load ) ) {
+               return false;
+       }
+       $translation = (object) $translation;
+
+       require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+       $skin = new Automatic_Upgrader_Skin;
+       $upgrader = new Language_Pack_Upgrader( $skin );
+       $translation->type = 'core';
+       $result = $upgrader->upgrade( $translation, array( 'clear_update_cache' => false ) );
+
+       if ( ! $result || is_wp_error( $result ) ) {
+               return false;
+       }
+
+       return $translation->language;
+}
+
+/**
+ * Check if WordPress has access to the filesystem without asking for
+ * credentials.
+ *
+ * @since 4.0.0
+ *
+ * @return bool Returns true on success, false on failure.
+ */
+function wp_can_install_language_pack() {
+       if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) {
+               return false;
+       }
+
+       require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+       $skin = new Automatic_Upgrader_Skin;
+       $upgrader = new Language_Pack_Upgrader( $skin );
+
+       $check = $upgrader->fs_connect( array( WP_CONTENT_DIR, WP_LANG_DIR ) );
+
+       if ( ! $check || is_wp_error( $check ) ) {
+               return false;
+       }
+
+       return true;
+}
index 52f2171bb15c51452ba07beb2524214e9eb8c9ec..8c9479682c93e088b7d90baba337f53ce7cbf298 100644 (file)
@@ -1089,7 +1089,10 @@ function _copy_dir($from, $to, $skip_list = array() ) {
                                        return new WP_Error( 'mkdir_failed__copy_dir', __( 'Could not create directory.' ), $to . $filename );
                        }
 
                                        return new WP_Error( 'mkdir_failed__copy_dir', __( 'Could not create directory.' ), $to . $filename );
                        }
 
-                       // generate the $sub_skip_list for the subdirectory as a sub-set of the existing $skip_list
+                       /*
+                        * Generate the $sub_skip_list for the subdirectory as a sub-set
+                        * of the existing $skip_list.
+                        */
                        $sub_skip_list = array();
                        foreach ( $skip_list as $skip_item ) {
                                if ( 0 === strpos( $skip_item, $filename . '/' ) )
                        $sub_skip_list = array();
                        foreach ( $skip_list as $skip_item ) {
                                if ( 0 === strpos( $skip_item, $filename . '/' ) )
@@ -1125,7 +1128,7 @@ function _redirect_to_about_wordpress( $new_version ) {
        if ( 'do-core-upgrade' != $action && 'do-core-reinstall' != $action )
                return;
 
        if ( 'do-core-upgrade' != $action && 'do-core-reinstall' != $action )
                return;
 
-       // Load the updated default text localization domain for new strings
+       // Load the updated default text localization domain for new strings.
        load_default_textdomain();
 
        // See do_core_upgrade()
        load_default_textdomain();
 
        // See do_core_upgrade()
@@ -1141,7 +1144,7 @@ window.location = 'about.php?updated';
 </script>
        <?php
 
 </script>
        <?php
 
-       // Include admin-footer.php and exit
+       // Include admin-footer.php and exit.
        include(ABSPATH . 'wp-admin/admin-footer.php');
        exit();
 }
        include(ABSPATH . 'wp-admin/admin-footer.php');
        exit();
 }
index c3f54900e772c28295be731c43d173739918d2be..d3b56db37f08bbca7f83a4b041b555d454c971d4 100644 (file)
@@ -74,7 +74,7 @@ function find_core_auto_update() {
        if ( ! $updates || empty( $updates->updates ) )
                return false;
 
        if ( ! $updates || empty( $updates->updates ) )
                return false;
 
-       include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+       include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
 
        $auto_update = false;
        $upgrader = new WP_Automatic_Updater;
 
        $auto_update = false;
        $upgrader = new WP_Automatic_Updater;
@@ -101,8 +101,6 @@ function find_core_auto_update() {
  * @return bool|array False on failure. An array of checksums on success.
  */
 function get_core_checksums( $version, $locale ) {
  * @return bool|array False on failure. An array of checksums on success.
  */
 function get_core_checksums( $version, $locale ) {
-       $return = array();
-
        $url = $http_url = 'http://api.wordpress.org/core/checksums/1.0/?' . http_build_query( compact( 'version', 'locale' ), null, '&' );
 
        if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
        $url = $http_url = 'http://api.wordpress.org/core/checksums/1.0/?' . http_build_query( compact( 'version', 'locale' ), null, '&' );
 
        if ( $ssl = wp_http_supports( array( 'ssl' ) ) )
@@ -181,16 +179,13 @@ function core_update_footer( $msg = '' ) {
        switch ( $cur->response ) {
        case 'development' :
                return sprintf( __( 'You are using a development version (%1$s). Cool! Please <a href="%2$s">stay updated</a>.' ), get_bloginfo( 'version', 'display' ), network_admin_url( 'update-core.php' ) );
        switch ( $cur->response ) {
        case 'development' :
                return sprintf( __( 'You are using a development version (%1$s). Cool! Please <a href="%2$s">stay updated</a>.' ), get_bloginfo( 'version', 'display' ), network_admin_url( 'update-core.php' ) );
-       break;
 
        case 'upgrade' :
                return sprintf( '<strong>'.__( '<a href="%1$s">Get Version %2$s</a>' ).'</strong>', network_admin_url( 'update-core.php' ), $cur->current);
 
        case 'upgrade' :
                return sprintf( '<strong>'.__( '<a href="%1$s">Get Version %2$s</a>' ).'</strong>', network_admin_url( 'update-core.php' ), $cur->current);
-       break;
 
        case 'latest' :
        default :
                return sprintf( __( 'Version %s' ), get_bloginfo( 'version', 'display' ) );
 
        case 'latest' :
        default :
                return sprintf( __( 'Version %s' ), get_bloginfo( 'version', 'display' ) );
-       break;
        }
 }
 add_filter( 'update_footer', 'core_update_footer' );
        }
 }
 add_filter( 'update_footer', 'core_update_footer' );
@@ -332,7 +327,6 @@ function wp_plugin_update_row( $file, $plugin_data ) {
 }
 
 function get_theme_updates() {
 }
 
 function get_theme_updates() {
-       $themes = wp_get_themes();
        $current = get_site_transient('update_themes');
 
        if ( ! isset( $current->response ) )
        $current = get_site_transient('update_themes');
 
        if ( ! isset( $current->response ) )
@@ -367,8 +361,6 @@ function wp_theme_update_row( $theme_key, $theme ) {
        if ( !isset( $current->response[ $theme_key ] ) )
                return false;
        $r = $current->response[ $theme_key ];
        if ( !isset( $current->response[ $theme_key ] ) )
                return false;
        $r = $current->response[ $theme_key ];
-       $themes_allowedtags = array('a' => array('href' => array(),'title' => array()),'abbr' => array('title' => array()),'acronym' => array('title' => array()),'code' => array(),'em' => array(),'strong' => array());
-       $theme_name = wp_kses( $theme['Name'], $themes_allowedtags );
 
        $details_url = add_query_arg( array( 'TB_iframe' => 'true', 'width' => 1024, 'height' => 800 ), $current->response[ $theme_key ]['url'] );
 
 
        $details_url = add_query_arg( array( 'TB_iframe' => 'true', 'width' => 1024, 'height' => 800 ), $current->response[ $theme_key ]['url'] );
 
@@ -406,7 +398,7 @@ function wp_theme_update_row( $theme_key, $theme ) {
 }
 
 function maintenance_nag() {
 }
 
 function maintenance_nag() {
-       include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
        global $upgrading;
        $nag = isset( $upgrading );
        if ( ! $nag ) {
        global $upgrading;
        $nag = isset( $upgrading );
        if ( ! $nag ) {
index 4a853fed0bde74a2b4ef8afe14fb0c09fa316a5f..02dfe093d3d7a2ccc752cefc4a0e2d0b891c65ab 100644 (file)
@@ -32,9 +32,10 @@ if ( !function_exists('wp_install') ) :
  * @param bool $public Whether blog is public.
  * @param null $deprecated Optional. Not used.
  * @param string $user_password Optional. User's chosen password. Will default to a random password.
  * @param bool $public Whether blog is public.
  * @param null $deprecated Optional. Not used.
  * @param string $user_password Optional. User's chosen password. Will default to a random password.
+ * @param string $language Optional. Language chosen.
  * @return array Array keys 'url', 'user_id', 'password', 'password_message'.
  */
  * @return array Array keys 'url', 'user_id', 'password', 'password_message'.
  */
-function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated = '', $user_password = '' ) {
+function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated = '', $user_password = '', $language = '' ) {
        if ( !empty( $deprecated ) )
                _deprecated_argument( __FUNCTION__, '2.6' );
 
        if ( !empty( $deprecated ) )
                _deprecated_argument( __FUNCTION__, '2.6' );
 
@@ -48,6 +49,10 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
        update_option('admin_email', $user_email);
        update_option('blog_public', $public);
 
        update_option('admin_email', $user_email);
        update_option('blog_public', $public);
 
+       if ( $language ) {
+               update_option( 'WPLANG', $language );
+       }
+
        $guessurl = wp_guess_url();
 
        update_option('siteurl', $guessurl);
        $guessurl = wp_guess_url();
 
        update_option('siteurl', $guessurl);
@@ -56,8 +61,10 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
        if ( ! $public )
                update_option('default_pingback_flag', 0);
 
        if ( ! $public )
                update_option('default_pingback_flag', 0);
 
-       // Create default user. If the user already exists, the user tables are
-       // being shared among blogs. Just set the role in that case.
+       /*
+        * Create default user. If the user already exists, the user tables are
+        * being shared among blogs. Just set the role in that case.
+        */
        $user_id = username_exists($user_name);
        $user_password = trim($user_password);
        $email_password = false;
        $user_id = username_exists($user_name);
        $user_password = trim($user_password);
        $email_password = false;
@@ -430,6 +437,9 @@ function upgrade_all() {
        if ( $wp_current_db_version < 26691 )
                upgrade_380();
 
        if ( $wp_current_db_version < 26691 )
                upgrade_380();
 
+       if ( $wp_current_db_version < 29630 )
+               upgrade_400();
+
        maybe_disable_link_manager();
 
        maybe_disable_automattic_widgets();
        maybe_disable_link_manager();
 
        maybe_disable_automattic_widgets();
@@ -465,9 +475,11 @@ function upgrade_100() {
                }
        }
 
                }
        }
 
-       $wpdb->query("UPDATE $wpdb->options SET option_value = REPLACE(option_value, 'wp-links/links-images/', 'wp-images/links/')
-       WHERE option_name LIKE 'links_rating_image%'
-       AND option_value LIKE 'wp-links/links-images/%'");
+       $sql = "UPDATE $wpdb->options
+               SET option_value = REPLACE(option_value, 'wp-links/links-images/', 'wp-images/links/')
+               WHERE option_name LIKE %s
+               AND option_value LIKE %s";
+       $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( 'links_rating_image' ) . '%', $wpdb->esc_like( 'wp-links/links-images/' ) . '%' ) );
 
        $done_ids = $wpdb->get_results("SELECT DISTINCT post_id FROM $wpdb->post2cat");
        if ($done_ids) :
 
        $done_ids = $wpdb->get_results("SELECT DISTINCT post_id FROM $wpdb->post2cat");
        if ($done_ids) :
@@ -618,8 +630,10 @@ function upgrade_130() {
 
        $active_plugins = __get_option('active_plugins');
 
 
        $active_plugins = __get_option('active_plugins');
 
-       // If plugins are not stored in an array, they're stored in the old
-       // newline separated format. Convert to new format.
+       /*
+        * If plugins are not stored in an array, they're stored in the old
+        * newline separated format. Convert to new format.
+        */
        if ( !is_array( $active_plugins ) ) {
                $active_plugins = explode("\n", trim($active_plugins));
                update_option('active_plugins', $active_plugins);
        if ( !is_array( $active_plugins ) ) {
                $active_plugins = explode("\n", trim($active_plugins));
                update_option('active_plugins', $active_plugins);
@@ -709,14 +723,16 @@ function upgrade_160() {
                $wpdb->query("ALTER TABLE $wpdb->users DROP $old");
        $wpdb->show_errors();
 
                $wpdb->query("ALTER TABLE $wpdb->users DROP $old");
        $wpdb->show_errors();
 
-       // populate comment_count field of posts table
+       // Populate comment_count field of posts table.
        $comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments WHERE comment_approved = '1' GROUP BY comment_post_ID" );
        if ( is_array( $comments ) )
                foreach ($comments as $comment)
                        $wpdb->update( $wpdb->posts, array('comment_count' => $comment->c), array('ID' => $comment->comment_post_ID) );
 
        $comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments WHERE comment_approved = '1' GROUP BY comment_post_ID" );
        if ( is_array( $comments ) )
                foreach ($comments as $comment)
                        $wpdb->update( $wpdb->posts, array('comment_count' => $comment->c), array('ID' => $comment->comment_post_ID) );
 
-       // Some alpha versions used a post status of object instead of attachment and put
-       // the mime type in post_type instead of post_mime_type.
+       /*
+        * Some alpha versions used a post status of object instead of attachment
+        * and put the mime type in post_type instead of post_mime_type.
+        */
        if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) {
                $objects = $wpdb->get_results("SELECT ID, post_type FROM $wpdb->posts WHERE post_status = 'object'");
                foreach ($objects as $object) {
        if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) {
                $objects = $wpdb->get_results("SELECT ID, post_type FROM $wpdb->posts WHERE post_status = 'object'");
                foreach ($objects as $object) {
@@ -873,8 +889,10 @@ function upgrade_230() {
 
        // < 3570 we used linkcategories. >= 3570 we used categories and link2cat.
        if ( $wp_current_db_version < 3570 ) {
 
        // < 3570 we used linkcategories. >= 3570 we used categories and link2cat.
        if ( $wp_current_db_version < 3570 ) {
-               // Create link_category terms for link categories. Create a map of link cat IDs
-               // to link_category terms.
+               /*
+                * Create link_category terms for link categories. Create a map of link
+                * cat IDs to link_category terms.
+                */
                $link_cat_id_map = array();
                $default_link_cat = 0;
                $tt_ids = array();
                $link_cat_id_map = array();
                $default_link_cat = 0;
                $tt_ids = array();
@@ -982,7 +1000,7 @@ function upgrade_230_old_tables() {
  * @since 2.2.0
  */
 function upgrade_old_slugs() {
  * @since 2.2.0
  */
 function upgrade_old_slugs() {
-       // upgrade people who were using the Redirect Old Slugs plugin
+       // Upgrade people who were using the Redirect Old Slugs plugin.
        global $wpdb;
        $wpdb->query("UPDATE $wpdb->postmeta SET meta_key = '_wp_old_slug' WHERE meta_key = 'old_slug'");
 }
        global $wpdb;
        $wpdb->query("UPDATE $wpdb->postmeta SET meta_key = '_wp_old_slug' WHERE meta_key = 'old_slug'");
 }
@@ -1100,9 +1118,28 @@ function upgrade_300() {
 
        // 3.0 screen options key name changes.
        if ( is_main_site() && !defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) {
 
        // 3.0 screen options key name changes.
        if ( is_main_site() && !defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) {
-               $prefix = like_escape($wpdb->base_prefix);
-               $wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key LIKE '{$prefix}%meta-box-hidden%' OR meta_key LIKE '{$prefix}%closedpostboxes%' OR meta_key LIKE '{$prefix}%manage-%-columns-hidden%' OR meta_key LIKE '{$prefix}%meta-box-order%' OR meta_key LIKE '{$prefix}%metaboxorder%' OR meta_key LIKE '{$prefix}%screen_layout%'
-                                        OR meta_key = 'manageedittagscolumnshidden' OR meta_key='managecategoriescolumnshidden' OR meta_key = 'manageedit-tagscolumnshidden' OR meta_key = 'manageeditcolumnshidden' OR meta_key = 'categories_per_page' OR meta_key = 'edit_tags_per_page'" );
+               $sql = "DELETE FROM $wpdb->usermeta
+                       WHERE meta_key LIKE %s
+                       OR meta_key LIKE %s
+                       OR meta_key LIKE %s
+                       OR meta_key LIKE %s
+                       OR meta_key LIKE %s
+                       OR meta_key LIKE %s
+                       OR meta_key = 'manageedittagscolumnshidden'
+                       OR meta_key = 'managecategoriescolumnshidden'
+                       OR meta_key = 'manageedit-tagscolumnshidden'
+                       OR meta_key = 'manageeditcolumnshidden'
+                       OR meta_key = 'categories_per_page'
+                       OR meta_key = 'edit_tags_per_page'";
+               $prefix = $wpdb->esc_like( $wpdb->base_prefix );
+               $wpdb->query( $wpdb->prepare( $sql,
+                       $prefix . '%' . $wpdb->esc_like( 'meta-box-hidden' ) . '%',
+                       $prefix . '%' . $wpdb->esc_like( 'closedpostboxes' ) . '%',
+                       $prefix . '%' . $wpdb->esc_like( 'manage-'         ) . '%' . $wpdb->esc_like( '-columns-hidden' ) . '%',
+                       $prefix . '%' . $wpdb->esc_like( 'meta-box-order'  ) . '%',
+                       $prefix . '%' . $wpdb->esc_like( 'metaboxorder'    ) . '%',
+                       $prefix . '%' . $wpdb->esc_like( 'screen_layout'   ) . '%'
+               ) );
        }
 
 }
        }
 
 }
@@ -1270,6 +1307,25 @@ function upgrade_380() {
                deactivate_plugins( array( 'mp6/mp6.php' ), true );
        }
 }
                deactivate_plugins( array( 'mp6/mp6.php' ), true );
        }
 }
+
+/**
+ * Execute changes made in WordPress 4.0.0.
+ *
+ * @since 4.0.0
+ */
+function upgrade_400() {
+       global $wp_current_db_version;
+       if ( $wp_current_db_version < 29630 ) {
+               if ( ! is_multisite() && false === get_option( 'WPLANG' ) ) {
+                       if ( defined( 'WPLANG' ) && ( '' !== WPLANG ) && in_array( WPLANG, get_available_languages() ) ) {
+                               update_option( 'WPLANG', WPLANG );
+                       } else {
+                               update_option( 'WPLANG', '' );
+                       }
+               }
+       }
+}
+
 /**
  * Execute network level changes
  *
 /**
  * Execute network level changes
  *
@@ -1278,20 +1334,23 @@ function upgrade_380() {
 function upgrade_network() {
        global $wp_current_db_version, $wpdb;
 
 function upgrade_network() {
        global $wp_current_db_version, $wpdb;
 
-       // Always
+       // Always.
        if ( is_main_network() ) {
        if ( is_main_network() ) {
-               // Deletes all expired transients.
-               // The multi-table delete syntax is used to delete the transient record from table a,
-               // and the corresponding transient_timeout record from table b.
+               /*
+                * Deletes all expired transients. The multi-table delete syntax is used
+                * to delete the transient record from table a, and the corresponding
+                * transient_timeout record from table b.
+                */
                $time = time();
                $time = time();
-               $wpdb->query("DELETE a, b FROM $wpdb->sitemeta a, $wpdb->sitemeta b WHERE
-                       a.meta_key LIKE '\_site\_transient\_%' AND
-                       a.meta_key NOT LIKE '\_site\_transient\_timeout\_%' AND
-                       b.meta_key = CONCAT( '_site_transient_timeout_', SUBSTRING( a.meta_key, 17 ) )
-                       AND b.meta_value < $time");
+               $sql = "DELETE a, b FROM $wpdb->sitemeta a, $wpdb->sitemeta b
+                       WHERE a.meta_key LIKE %s
+                       AND a.meta_key NOT LIKE %s
+                       AND b.meta_key = CONCAT( '_site_transient_timeout_', SUBSTRING( a.meta_key, 17 ) )
+                       AND b.meta_value < %d";
+               $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_site_transient_' ) . '%', $wpdb->esc_like ( '_site_transient_timeout_' ) . '%', $time ) );
        }
 
        }
 
-       // 2.8
+       // 2.8.
        if ( $wp_current_db_version < 11549 ) {
                $wpmu_sitewide_plugins = get_site_option( 'wpmu_sitewide_plugins' );
                $active_sitewide_plugins = get_site_option( 'active_sitewide_plugins' );
        if ( $wp_current_db_version < 11549 ) {
                $wpmu_sitewide_plugins = get_site_option( 'wpmu_sitewide_plugins' );
                $active_sitewide_plugins = get_site_option( 'active_sitewide_plugins' );
@@ -1382,13 +1441,20 @@ function upgrade_network() {
  */
 function maybe_create_table($table_name, $create_ddl) {
        global $wpdb;
  */
 function maybe_create_table($table_name, $create_ddl) {
        global $wpdb;
-       if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name )
+
+       $query = $wpdb->prepare( "SHOW TABLES LIKE %s", $wpdb->esc_like( $table_name ) );
+
+       if ( $wpdb->get_var( $query ) == $table_name ) {
                return true;
                return true;
-       //didn't find it try to create it.
-       $q = $wpdb->query($create_ddl);
-       // we cannot directly tell that whether this succeeded!
-       if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name )
+       }
+
+       // Didn't find it try to create it..
+       $wpdb->query($create_ddl);
+
+       // We cannot directly tell that whether this succeeded!
+       if ( $wpdb->get_var( $query ) == $table_name ) {
                return true;
                return true;
+       }
        return false;
 }
 
        return false;
 }
 
@@ -1446,9 +1512,11 @@ function maybe_add_column($table_name, $column_name, $create_ddl) {
                        return true;
                }
        }
                        return true;
                }
        }
-       //didn't find it try to create it.
-       $q = $wpdb->query($create_ddl);
-       // we cannot directly tell that whether this succeeded!
+
+       // Didn't find it try to create it.
+       $wpdb->query($create_ddl);
+
+       // We cannot directly tell that whether this succeeded!
        foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
                if ($column == $column_name) {
                        return true;
        foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
                if ($column == $column_name) {
                        return true;
@@ -1519,12 +1587,16 @@ function __get_option($setting) {
 function deslash($content) {
        // Note: \\\ inside a regex denotes a single backslash.
 
 function deslash($content) {
        // Note: \\\ inside a regex denotes a single backslash.
 
-       // Replace one or more backslashes followed by a single quote with
-       // a single quote.
+       /*
+        * Replace one or more backslashes followed by a single quote with
+        * a single quote.
+        */
        $content = preg_replace("/\\\+'/", "'", $content);
 
        $content = preg_replace("/\\\+'/", "'", $content);
 
-       // Replace one or more backslashes followed by a double quote with
-       // a double quote.
+       /*
+        * Replace one or more backslashes followed by a double quote with
+        * a double quote.
+        */
        $content = preg_replace('/\\\+"/', '"', $content);
 
        // Replace one or more backslashes with one backslash.
        $content = preg_replace('/\\\+"/', '"', $content);
 
        // Replace one or more backslashes with one backslash.
@@ -1555,8 +1627,8 @@ function dbDelta( $queries = '', $execute = true ) {
                $queries = explode( ';', $queries );
                $queries = array_filter( $queries );
        }
                $queries = explode( ';', $queries );
                $queries = array_filter( $queries );
        }
-       
-       /** 
+
+       /**
         * Filter the dbDelta SQL queries.
         *
         * @since 3.3.0
         * Filter the dbDelta SQL queries.
         *
         * @since 3.3.0
@@ -1584,23 +1656,23 @@ function dbDelta( $queries = '', $execute = true ) {
                        // Unrecognized query type
                }
        }
                        // Unrecognized query type
                }
        }
-       
-       /** 
+
+       /**
         * Filter the dbDelta SQL queries for creating tables and/or databases.
         *
         * Queries filterable via this hook contain "CREATE TABLE" or "CREATE DATABASE".
         * Filter the dbDelta SQL queries for creating tables and/or databases.
         *
         * Queries filterable via this hook contain "CREATE TABLE" or "CREATE DATABASE".
-        * 
+        *
         * @since 3.3.0
         *
         * @param array $cqueries An array of dbDelta create SQL queries.
         */
        $cqueries = apply_filters( 'dbdelta_create_queries', $cqueries );
 
         * @since 3.3.0
         *
         * @param array $cqueries An array of dbDelta create SQL queries.
         */
        $cqueries = apply_filters( 'dbdelta_create_queries', $cqueries );
 
-       /** 
+       /**
         * Filter the dbDelta SQL queries for inserting or updating.
         *
         * Queries filterable via this hook contain "INSERT INTO" or "UPDATE".
         * Filter the dbDelta SQL queries for inserting or updating.
         *
         * Queries filterable via this hook contain "INSERT INTO" or "UPDATE".
-        * 
+        *
         * @since 3.3.0
         *
         * @param array $iqueries An array of dbDelta insert or update SQL queries.
         * @since 3.3.0
         *
         * @param array $iqueries An array of dbDelta insert or update SQL queries.
@@ -1623,24 +1695,27 @@ function dbDelta( $queries = '', $execute = true ) {
                if ( ! $tablefields )
                        continue;
 
                if ( ! $tablefields )
                        continue;
 
-               // Clear the field and index arrays
+               // Clear the field and index arrays.
                $cfields = $indices = array();
                $cfields = $indices = array();
-               // Get all of the field names in the query from between the parens
+
+               // Get all of the field names in the query from between the parentheses.
                preg_match("|\((.*)\)|ms", $qry, $match2);
                $qryline = trim($match2[1]);
 
                preg_match("|\((.*)\)|ms", $qry, $match2);
                $qryline = trim($match2[1]);
 
-               // Separate field lines into an array
+               // Separate field lines into an array.
                $flds = explode("\n", $qryline);
 
                $flds = explode("\n", $qryline);
 
+               // todo: Remove this?
                //echo "<hr/><pre>\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."</pre><hr/>";
 
                //echo "<hr/><pre>\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."</pre><hr/>";
 
-               // For every field line specified in the query
+               // For every field line specified in the query.
                foreach ($flds as $fld) {
                foreach ($flds as $fld) {
-                       // Extract the field name
+
+                       // Extract the field name.
                        preg_match("|^([^ ]*)|", trim($fld), $fvals);
                        $fieldname = trim( $fvals[1], '`' );
 
                        preg_match("|^([^ ]*)|", trim($fld), $fvals);
                        $fieldname = trim( $fvals[1], '`' );
 
-                       // Verify the found field name
+                       // Verify the found field name.
                        $validfield = true;
                        switch (strtolower($fieldname)) {
                        case '':
                        $validfield = true;
                        switch (strtolower($fieldname)) {
                        case '':
@@ -1655,17 +1730,19 @@ function dbDelta( $queries = '', $execute = true ) {
                        }
                        $fld = trim($fld);
 
                        }
                        $fld = trim($fld);
 
-                       // If it's a valid field, add it to the field array
+                       // If it's a valid field, add it to the field array.
                        if ($validfield) {
                                $cfields[strtolower($fieldname)] = trim($fld, ", \n");
                        }
                }
 
                        if ($validfield) {
                                $cfields[strtolower($fieldname)] = trim($fld, ", \n");
                        }
                }
 
-               // For every field in the table
+               // For every field in the table.
                foreach ($tablefields as $tablefield) {
                foreach ($tablefields as $tablefield) {
-                       // If the table field exists in the field array...
+
+                       // If the table field exists in the field array ...
                        if (array_key_exists(strtolower($tablefield->Field), $cfields)) {
                        if (array_key_exists(strtolower($tablefield->Field), $cfields)) {
-                               // Get the field type from the query
+
+                               // Get the field type from the query.
                                preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches);
                                $fieldtype = $matches[1];
 
                                preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches);
                                $fieldtype = $matches[1];
 
@@ -1677,6 +1754,7 @@ function dbDelta( $queries = '', $execute = true ) {
                                }
 
                                // Get the default value from the array
                                }
 
                                // Get the default value from the array
+                                       // todo: Remove this?
                                        //echo "{$cfields[strtolower($tablefield->Field)]}<br>";
                                if (preg_match("| DEFAULT '(.*?)'|i", $cfields[strtolower($tablefield->Field)], $matches)) {
                                        $default_value = $matches[1];
                                        //echo "{$cfields[strtolower($tablefield->Field)]}<br>";
                                if (preg_match("| DEFAULT '(.*?)'|i", $cfields[strtolower($tablefield->Field)], $matches)) {
                                        $default_value = $matches[1];
@@ -1687,39 +1765,40 @@ function dbDelta( $queries = '', $execute = true ) {
                                        }
                                }
 
                                        }
                                }
 
-                               // Remove the field from the array (so it's not added)
+                               // Remove the field from the array (so it's not added).
                                unset($cfields[strtolower($tablefield->Field)]);
                        } else {
                                // This field exists in the table, but not in the creation queries?
                        }
                }
 
                                unset($cfields[strtolower($tablefield->Field)]);
                        } else {
                                // This field exists in the table, but not in the creation queries?
                        }
                }
 
-               // For every remaining field specified for the table
+               // For every remaining field specified for the table.
                foreach ($cfields as $fieldname => $fielddef) {
                foreach ($cfields as $fieldname => $fielddef) {
-                       // Push a query line into $cqueries that adds the field to that table
+                       // Push a query line into $cqueries that adds the field to that table.
                        $cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef";
                        $for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname;
                }
 
                        $cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef";
                        $for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname;
                }
 
-               // Index stuff goes here
-               // Fetch the table index structure from the database
+               // Index stuff goes here. Fetch the table index structure from the database.
                $tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};");
 
                if ($tableindices) {
                $tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};");
 
                if ($tableindices) {
-                       // Clear the index array
+                       // Clear the index array.
                        unset($index_ary);
 
                        unset($index_ary);
 
-                       // For every index in the table
+                       // For every index in the table.
                        foreach ($tableindices as $tableindex) {
                        foreach ($tableindices as $tableindex) {
-                               // Add the index to the index data array
+
+                               // Add the index to the index data array.
                                $keyname = $tableindex->Key_name;
                                $index_ary[$keyname]['columns'][] = array('fieldname' => $tableindex->Column_name, 'subpart' => $tableindex->Sub_part);
                                $index_ary[$keyname]['unique'] = ($tableindex->Non_unique == 0)?true:false;
                        }
 
                                $keyname = $tableindex->Key_name;
                                $index_ary[$keyname]['columns'][] = array('fieldname' => $tableindex->Column_name, 'subpart' => $tableindex->Sub_part);
                                $index_ary[$keyname]['unique'] = ($tableindex->Non_unique == 0)?true:false;
                        }
 
-                       // For each actual index in the index array
+                       // For each actual index in the index array.
                        foreach ($index_ary as $index_name => $index_data) {
                        foreach ($index_ary as $index_name => $index_data) {
-                               // Build a create string to compare to the query
+
+                               // Build a create string to compare to the query.
                                $index_string = '';
                                if ($index_name == 'PRIMARY') {
                                        $index_string .= 'PRIMARY ';
                                $index_string = '';
                                if ($index_name == 'PRIMARY') {
                                        $index_string .= 'PRIMARY ';
@@ -1731,39 +1810,44 @@ function dbDelta( $queries = '', $execute = true ) {
                                        $index_string .= $index_name;
                                }
                                $index_columns = '';
                                        $index_string .= $index_name;
                                }
                                $index_columns = '';
-                               // For each column in the index
+
+                               // For each column in the index.
                                foreach ($index_data['columns'] as $column_data) {
                                        if ($index_columns != '') $index_columns .= ',';
                                foreach ($index_data['columns'] as $column_data) {
                                        if ($index_columns != '') $index_columns .= ',';
-                                       // Add the field to the column list string
+
+                                       // Add the field to the column list string.
                                        $index_columns .= $column_data['fieldname'];
                                        if ($column_data['subpart'] != '') {
                                                $index_columns .= '('.$column_data['subpart'].')';
                                        }
                                }
                                        $index_columns .= $column_data['fieldname'];
                                        if ($column_data['subpart'] != '') {
                                                $index_columns .= '('.$column_data['subpart'].')';
                                        }
                                }
-                               // Add the column list to the index create string
+                               // Add the column list to the index create string.
                                $index_string .= ' ('.$index_columns.')';
                                if (!(($aindex = array_search($index_string, $indices)) === false)) {
                                        unset($indices[$aindex]);
                                $index_string .= ' ('.$index_columns.')';
                                if (!(($aindex = array_search($index_string, $indices)) === false)) {
                                        unset($indices[$aindex]);
+                                       // todo: Remove this?
                                        //echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\n";
                                }
                                        //echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\n";
                                }
+                               // todo: Remove this?
                                //else echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br /><b>Did not find index:</b>".$index_string."<br />".print_r($indices, true)."</pre>\n";
                        }
                }
 
                                //else echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br /><b>Did not find index:</b>".$index_string."<br />".print_r($indices, true)."</pre>\n";
                        }
                }
 
-               // For every remaining index specified for the table
+               // For every remaining index specified for the table.
                foreach ( (array) $indices as $index ) {
                foreach ( (array) $indices as $index ) {
-                       // Push a query line into $cqueries that adds the index to that table
+                       // Push a query line into $cqueries that adds the index to that table.
                        $cqueries[] = "ALTER TABLE {$table} ADD $index";
                        $for_update[] = 'Added index ' . $table . ' ' . $index;
                }
 
                        $cqueries[] = "ALTER TABLE {$table} ADD $index";
                        $for_update[] = 'Added index ' . $table . ' ' . $index;
                }
 
-               // Remove the original table creation query from processing
+               // Remove the original table creation query from processing.
                unset( $cqueries[ $table ], $for_update[ $table ] );
        }
 
        $allqueries = array_merge($cqueries, $iqueries);
        if ($execute) {
                foreach ($allqueries as $query) {
                unset( $cqueries[ $table ], $for_update[ $table ] );
        }
 
        $allqueries = array_merge($cqueries, $iqueries);
        if ($execute) {
                foreach ($allqueries as $query) {
+                       // todo: Remove this?
                        //echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">".print_r($query, true)."</pre>\n";
                        $wpdb->query($query);
                }
                        //echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">".print_r($query, true)."</pre>\n";
                        $wpdb->query($query);
                }
@@ -1794,7 +1878,7 @@ function make_db_current( $tables = 'all' ) {
  * @since 1.5.0
  */
 function make_db_current_silent( $tables = 'all' ) {
  * @since 1.5.0
  */
 function make_db_current_silent( $tables = 'all' ) {
-       $alterations = dbDelta( $tables );
+       dbDelta( $tables );
 }
 
 /**
 }
 
 /**
@@ -1815,9 +1899,10 @@ function make_site_theme_from_oldschool($theme_name, $template) {
        if (! file_exists("$home_path/index.php"))
                return false;
 
        if (! file_exists("$home_path/index.php"))
                return false;
 
-       // Copy files from the old locations to the site theme.
-       // TODO: This does not copy arbitrary include dependencies. Only the
-       // standard WP files are copied.
+       /*
+        * Copy files from the old locations to the site theme.
+        * TODO: This does not copy arbitrary include dependencies. Only the standard WP files are copied.
+        */
        $files = array('index.php' => 'index.php', 'wp-layout.css' => 'style.css', 'wp-comments.php' => 'comments.php', 'wp-comments-popup.php' => 'comments-popup.php');
 
        foreach ($files as $oldfile => $newfile) {
        $files = array('index.php' => 'index.php', 'wp-layout.css' => 'style.css', 'wp-comments.php' => 'comments.php', 'wp-comments-popup.php' => 'comments-popup.php');
 
        foreach ($files as $oldfile => $newfile) {
@@ -1826,12 +1911,15 @@ function make_site_theme_from_oldschool($theme_name, $template) {
                else
                        $oldpath = ABSPATH;
 
                else
                        $oldpath = ABSPATH;
 
-               if ($oldfile == 'index.php') { // Check to make sure it's not a new index
+               // Check to make sure it's not a new index.
+               if ($oldfile == 'index.php') {
                        $index = implode('', file("$oldpath/$oldfile"));
                        if (strpos($index, 'WP_USE_THEMES') !== false) {
                                if (! @copy(WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile"))
                                        return false;
                        $index = implode('', file("$oldpath/$oldfile"));
                        if (strpos($index, 'WP_USE_THEMES') !== false) {
                                if (! @copy(WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile"))
                                        return false;
-                               continue; // Don't copy anything
+
+                               // Don't copy anything.
+                               continue;
                                }
                }
 
                                }
                }
 
index 137afcd1483d38216b81b5a40c171eeb90dcd5e3..30b7ae0812c918a5f7ca91f85a472c9ca15e09d1 100644 (file)
@@ -28,7 +28,7 @@ function add_user() {
  * @return int user id of the updated user
  */
 function edit_user( $user_id = 0 ) {
  * @return int user id of the updated user
  */
 function edit_user( $user_id = 0 ) {
-       global $wp_roles, $wpdb;
+       global $wp_roles;
        $user = new stdClass;
        if ( $user_id ) {
                $update = true;
        $user = new stdClass;
        if ( $user_id ) {
                $update = true;
@@ -390,10 +390,11 @@ add_action('admin_init', 'default_password_nag_handler');
  */
 function default_password_nag_handler($errors = false) {
        global $user_ID;
  */
 function default_password_nag_handler($errors = false) {
        global $user_ID;
-       if ( ! get_user_option('default_password_nag') ) //Short circuit it.
+       // Short-circuit it.
+       if ( ! get_user_option('default_password_nag') )
                return;
 
                return;
 
-       //get_user_setting = JS saved UI setting. else no-js-fallback code.
+       // get_user_setting = JS saved UI setting. else no-js-fallback code.
        if ( 'hide' == get_user_setting('default_password_nag') || isset($_GET['default_password_nag']) && '0' == $_GET['default_password_nag'] ) {
                delete_user_setting('default_password_nag');
                update_user_option($user_ID, 'default_password_nag', false, true);
        if ( 'hide' == get_user_setting('default_password_nag') || isset($_GET['default_password_nag']) && '0' == $_GET['default_password_nag'] ) {
                delete_user_setting('default_password_nag');
                update_user_option($user_ID, 'default_password_nag', false, true);
@@ -401,28 +402,33 @@ function default_password_nag_handler($errors = false) {
 }
 
 add_action('profile_update', 'default_password_nag_edit_user', 10, 2);
 }
 
 add_action('profile_update', 'default_password_nag_edit_user', 10, 2);
+
 /**
  * @since 2.8.0
  */
 function default_password_nag_edit_user($user_ID, $old_data) {
 /**
  * @since 2.8.0
  */
 function default_password_nag_edit_user($user_ID, $old_data) {
-       if ( ! get_user_option('default_password_nag', $user_ID) ) //Short circuit it.
+       // Short-circuit it.
+       if ( ! get_user_option('default_password_nag', $user_ID) )
                return;
 
        $new_data = get_userdata($user_ID);
 
                return;
 
        $new_data = get_userdata($user_ID);
 
-       if ( $new_data->user_pass != $old_data->user_pass ) { //Remove the nag if the password has been changed.
+       // Remove the nag if the password has been changed.
+       if ( $new_data->user_pass != $old_data->user_pass ) {
                delete_user_setting('default_password_nag');
                update_user_option($user_ID, 'default_password_nag', false, true);
        }
 }
 
 add_action('admin_notices', 'default_password_nag');
                delete_user_setting('default_password_nag');
                update_user_option($user_ID, 'default_password_nag', false, true);
        }
 }
 
 add_action('admin_notices', 'default_password_nag');
+
 /**
  * @since 2.8.0
  */
 function default_password_nag() {
        global $pagenow;
 /**
  * @since 2.8.0
  */
 function default_password_nag() {
        global $pagenow;
-       if ( 'profile.php' == $pagenow || ! get_user_option('default_password_nag') ) //Short circuit it.
+       // Short-circuit it.
+       if ( 'profile.php' == $pagenow || ! get_user_option('default_password_nag') )
                return;
 
        echo '<div class="error default-password-nag">';
                return;
 
        echo '<div class="error default-password-nag">';
index 0a868151e06d53d85132a3a3e654c8c6e6c43f9d..c869449434cd41093df394743f4e7dd94fe478db 100644 (file)
@@ -12,7 +12,7 @@
  * @since 2.5.0
  */
 function wp_list_widgets() {
  * @since 2.5.0
  */
 function wp_list_widgets() {
-       global $wp_registered_widgets, $sidebars_widgets, $wp_registered_widget_controls;
+       global $wp_registered_widgets, $wp_registered_widget_controls;
 
        $sort = $wp_registered_widgets;
        usort( $sort, '_sort_name_callback' );
 
        $sort = $wp_registered_widgets;
        usort( $sort, '_sort_name_callback' );
@@ -173,11 +173,14 @@ function wp_widget_control( $sidebar_args ) {
                $query_arg['key'] = $key;
        }
 
                $query_arg['key'] = $key;
        }
 
-       // We aren't showing a widget control, we're outputting a template for a multi-widget control
+       /*
+        * We aren't showing a widget control, we're outputting a template
+        * for a multi-widget control.
+        */
        if ( isset($sidebar_args['_display']) && 'template' == $sidebar_args['_display'] && $widget_number ) {
                // number == -1 implies a template where id numbers are replaced by a generic '__i__'
                $control['params'][0]['number'] = -1;
        if ( isset($sidebar_args['_display']) && 'template' == $sidebar_args['_display'] && $widget_number ) {
                // number == -1 implies a template where id numbers are replaced by a generic '__i__'
                $control['params'][0]['number'] = -1;
-               // with id_base widget id's are constructed like {$id_base}-{$id_number}
+               // With id_base widget id's are constructed like {$id_base}-{$id_number}.
                if ( isset($control['id_base']) )
                        $id_format = $control['id_base'] . '-__i__';
        }
                if ( isset($control['id_base']) )
                        $id_format = $control['id_base'] . '-__i__';
        }
index c654a92b061dfa1170217931b78d5daa89a10278..9d241d298a91f5301a73891c63bf2731166c1194 100644 (file)
@@ -57,9 +57,10 @@ function maybe_create_table($table_name, $create_ddl) {
                        return true;
                }
        }
                        return true;
                }
        }
-       //didn't find it try to create it.
+       // Didn't find it, so try to create it.
        $wpdb->query($create_ddl);
        $wpdb->query($create_ddl);
-       // we cannot directly tell that whether this succeeded!
+
+       // We cannot directly tell that whether this succeeded!
        foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
                if ($table == $table_name) {
                        return true;
        foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
                if ($table == $table_name) {
                        return true;
@@ -90,9 +91,11 @@ function maybe_add_column($table_name, $column_name, $create_ddl) {
                        return true;
                }
        }
                        return true;
                }
        }
-       //didn't find it try to create it.
+
+       // Didn't find it, so try to create it.
        $wpdb->query($create_ddl);
        $wpdb->query($create_ddl);
-       // we cannot directly tell that whether this succeeded!
+
+       // We cannot directly tell that whether this succeeded!
        foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
                if ($column == $column_name) {
                        return true;
        foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
                if ($column == $column_name) {
                        return true;
@@ -118,9 +121,11 @@ function maybe_drop_column($table_name, $column_name, $drop_ddl) {
        global $wpdb;
        foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
                if ($column == $column_name) {
        global $wpdb;
        foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
                if ($column == $column_name) {
-                       //found it try to drop it.
+
+                       // Found it, so try to drop it.
                        $wpdb->query($drop_ddl);
                        $wpdb->query($drop_ddl);
-                       // we cannot directly tell that whether this succeeded!
+
+                       // We cannot directly tell that whether this succeeded!
                        foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
                                if ($column == $column_name) {
                                        return false;
                        foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
                                if ($column == $column_name) {
                                        return false;
@@ -128,7 +133,7 @@ function maybe_drop_column($table_name, $column_name, $drop_ddl) {
                        }
                }
        }
                        }
                }
        }
-       // else didn't find it
+       // Else didn't find it.
        return true;
 }
 
        return true;
 }
 
@@ -167,7 +172,8 @@ function check_column($table_name, $col_name, $col_type, $is_null = null, $key =
        foreach ($results as $row ) {
 
                if ($row->Field == $col_name) {
        foreach ($results as $row ) {
 
                if ($row->Field == $col_name) {
-                       // got our column, check the params
+
+                       // Got our column, check the params.
                        if (($col_type != null) && ($row->Type != $col_type)) {
                                ++$diffs;
                        }
                        if (($col_type != null) && ($row->Type != $col_type)) {
                                ++$diffs;
                        }
index d29c8098730ce44d4788e33a7e74a9d63ab17af9..72916e4be822ae8519d98b252734f6cf7d47d11e 100644 (file)
@@ -38,8 +38,13 @@ require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
 /** Load WordPress Administration Upgrade API */
 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
 
 /** Load WordPress Administration Upgrade API */
 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
 
+/** Load WordPress Translation Install API */
+require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
+
 /** Load wpdb */
 /** Load wpdb */
-require_once( ABSPATH . 'wp-includes/wp-db.php' );
+require_once( ABSPATH . WPINC . '/wp-db.php' );
+
+nocache_headers();
 
 $step = isset( $_GET['step'] ) ? (int) $_GET['step'] : 0;
 
 
 $step = isset( $_GET['step'] ) ? (int) $_GET['step'] : 0;
 
@@ -48,8 +53,14 @@ $step = isset( $_GET['step'] ) ? (int) $_GET['step'] : 0;
  *
  * @since 2.5.0
  */
  *
  * @since 2.5.0
  */
-function display_header() {
+function display_header( $body_classes = '' ) {
        header( 'Content-Type: text/html; charset=utf-8' );
        header( 'Content-Type: text/html; charset=utf-8' );
+       if ( is_rtl() ) {
+               $body_classes .= 'rtl';
+       }
+       if ( $body_classes ) {
+               $body_classes = ' ' . $body_classes;
+       }
 ?>
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
 ?>
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
@@ -61,8 +72,8 @@ function display_header() {
        wp_admin_css( 'install', true );
        ?>
 </head>
        wp_admin_css( 'install', true );
        ?>
 </head>
-<body class="wp-core-ui<?php if ( is_rtl() ) echo ' rtl'; ?>">
-<h1 id="logo"><a href="<?php echo esc_url( __( 'https://wordpress.org/' ) ); ?>"><?php _e( 'WordPress' ); ?></a></h1>
+<body class="wp-core-ui<?php echo $body_classes ?>">
+<h1 id="logo"><a href="<?php echo esc_url( __( 'https://wordpress.org/' ) ); ?>" tabindex="-1"><?php _e( 'WordPress' ); ?></a></h1>
 
 <?php
 } // end display_header()
 
 <?php
 } // end display_header()
@@ -74,23 +85,25 @@ function display_header() {
  */
 function display_setup_form( $error = null ) {
        global $wpdb;
  */
 function display_setup_form( $error = null ) {
        global $wpdb;
-       $user_table = ( $wpdb->get_var("SHOW TABLES LIKE '$wpdb->users'") != null );
 
 
-       // Ensure that Blogs appear in search engines by default
+       $sql = $wpdb->prepare( "SHOW TABLES LIKE %s", $wpdb->esc_like( $wpdb->users ) );
+       $user_table = ( $wpdb->get_var( $sql ) != null );
+
+       // Ensure that Blogs appear in search engines by default.
        $blog_public = 1;
        $blog_public = 1;
-       if ( ! empty( $_POST ) )
+       if ( isset( $_POST['weblog_title'] ) ) {
                $blog_public = isset( $_POST['blog_public'] );
                $blog_public = isset( $_POST['blog_public'] );
+       }
 
        $weblog_title = isset( $_POST['weblog_title'] ) ? trim( wp_unslash( $_POST['weblog_title'] ) ) : '';
        $user_name = isset($_POST['user_name']) ? trim( wp_unslash( $_POST['user_name'] ) ) : '';
 
        $weblog_title = isset( $_POST['weblog_title'] ) ? trim( wp_unslash( $_POST['weblog_title'] ) ) : '';
        $user_name = isset($_POST['user_name']) ? trim( wp_unslash( $_POST['user_name'] ) ) : '';
-       $admin_password = isset($_POST['admin_password']) ? trim( wp_unslash( $_POST['admin_password'] ) ) : '';
        $admin_email  = isset( $_POST['admin_email']  ) ? trim( wp_unslash( $_POST['admin_email'] ) ) : '';
 
        if ( ! is_null( $error ) ) {
 ?>
 <p class="message"><?php echo $error; ?></p>
 <?php } ?>
        $admin_email  = isset( $_POST['admin_email']  ) ? trim( wp_unslash( $_POST['admin_email'] ) ) : '';
 
        if ( ! is_null( $error ) ) {
 ?>
 <p class="message"><?php echo $error; ?></p>
 <?php } ?>
-<form id="setup" method="post" action="install.php?step=2">
+<form id="setup" method="post" action="install.php?step=2" novalidate="novalidate">
        <table class="form-table">
                <tr>
                        <th scope="row"><label for="weblog_title"><?php _e( 'Site Title' ); ?></label></th>
        <table class="form-table">
                <tr>
                        <th scope="row"><label for="weblog_title"><?php _e( 'Site Title' ); ?></label></th>
@@ -113,7 +126,7 @@ function display_setup_form( $error = null ) {
                <?php if ( ! $user_table ) : ?>
                <tr>
                        <th scope="row">
                <?php if ( ! $user_table ) : ?>
                <tr>
                        <th scope="row">
-                               <label for="admin_password"><?php _e('Password, twice'); ?></label>
+                               <label for="pass1"><?php _e('Password, twice'); ?></label>
                                <p><?php _e('A password will be automatically generated for you if you leave this blank.'); ?></p>
                        </th>
                        <td>
                                <p><?php _e('A password will be automatically generated for you if you leave this blank.'); ?></p>
                        </th>
                        <td>
@@ -126,15 +139,16 @@ function display_setup_form( $error = null ) {
                <?php endif; ?>
                <tr>
                        <th scope="row"><label for="admin_email"><?php _e( 'Your E-mail' ); ?></label></th>
                <?php endif; ?>
                <tr>
                        <th scope="row"><label for="admin_email"><?php _e( 'Your E-mail' ); ?></label></th>
-                       <td><input name="admin_email" type="text" id="admin_email" size="25" value="<?php echo esc_attr( $admin_email ); ?>" />
+                       <td><input name="admin_email" type="email" id="admin_email" size="25" value="<?php echo esc_attr( $admin_email ); ?>" />
                        <p><?php _e( 'Double-check your email address before continuing.' ); ?></p></td>
                </tr>
                <tr>
                        <th scope="row"><label for="blog_public"><?php _e( 'Privacy' ); ?></label></th>
                        <p><?php _e( 'Double-check your email address before continuing.' ); ?></p></td>
                </tr>
                <tr>
                        <th scope="row"><label for="blog_public"><?php _e( 'Privacy' ); ?></label></th>
-                       <td colspan="2"><label><input type="checkbox" name="blog_public" value="1" <?php checked( $blog_public ); ?> /> <?php _e( 'Allow search engines to index this site.' ); ?></label></td>
+                       <td colspan="2"><label><input type="checkbox" name="blog_public" id="blog_public" value="1" <?php checked( $blog_public ); ?> /> <?php _e( 'Allow search engines to index this site.' ); ?></label></td>
                </tr>
        </table>
        <p class="step"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Install WordPress' ); ?>" class="button button-large" /></p>
                </tr>
        </table>
        <p class="step"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Install WordPress' ); ?>" class="button button-large" /></p>
+       <input type="hidden" name="language" value="<?php echo isset( $_REQUEST['language'] ) ? esc_attr( $_REQUEST['language'] ) : ''; ?>" />
 </form>
 <?php
 } // end display_setup_form()
 </form>
 <?php
 } // end display_setup_form()
@@ -167,13 +181,39 @@ if ( ! is_string( $wpdb->base_prefix ) || '' === $wpdb->base_prefix ) {
        die( '<h1>' . __( 'Configuration Error' ) . '</h1><p>' . __( 'Your <code>wp-config.php</code> file has an empty database table prefix, which is not supported.' ) . '</p></body></html>' );
 }
 
        die( '<h1>' . __( 'Configuration Error' ) . '</h1><p>' . __( 'Your <code>wp-config.php</code> file has an empty database table prefix, which is not supported.' ) . '</p></body></html>' );
 }
 
+$language = '';
+if ( ! empty( $_REQUEST['language'] ) ) {
+       $language = preg_replace( '/[^a-zA-Z_]/', '', $_REQUEST['language'] );
+} elseif ( isset( $GLOBALS['wp_local_package'] ) ) {
+       $language = $GLOBALS['wp_local_package'];
+}
+
 switch($step) {
 switch($step) {
-       case 0: // Step 1
-       case 1: // Step 1, direct link.
-         display_header();
+       case 0: // Step 0
+
+               if ( wp_can_install_language_pack() && empty( $language ) && ( $languages = wp_get_available_translations() ) ) {
+                       display_header( 'language-chooser' );
+                       echo '<form id="setup" method="post" action="?step=1">';
+                       wp_install_language_form( $languages );
+                       echo '</form>';
+                       break;
+               }
+
+               // Deliberately fall through if we can't reach the translations API.
+
+       case 1: // Step 1, direct link or from language chooser.
+               if ( ! empty( $language ) ) {
+                       $loaded_language = wp_download_language_pack( $language );
+                       if ( $loaded_language ) {
+                               load_default_textdomain( $loaded_language );
+                               $GLOBALS['wp_locale'] = new WP_Locale();
+                       }
+               }
+
+               display_header();
 ?>
 <h1><?php _ex( 'Welcome', 'Howdy' ); ?></h1>
 ?>
 <h1><?php _ex( 'Welcome', 'Howdy' ); ?></h1>
-<p><?php printf( __( 'Welcome to the famous five minute WordPress installation process! You may want to browse the <a href="%s">ReadMe documentation</a> at your leisure. Otherwise, just fill in the information below and you&#8217;ll be on your way to using the most extendable and powerful personal publishing platform in the world.' ), '../readme.html' ); ?></p>
+<p><?php _e( 'Welcome to the famous five-minute WordPress installation process! Just fill in the information below and you&#8217;ll be on your way to using the most extendable and powerful personal publishing platform in the world.' ); ?></p>
 
 <h1><?php _e( 'Information needed' ); ?></h1>
 <p><?php _e( 'Please provide the following information. Don&#8217;t worry, you can always change these settings later.' ); ?></p>
 
 <h1><?php _e( 'Information needed' ); ?></h1>
 <p><?php _e( 'Please provide the following information. Don&#8217;t worry, you can always change these settings later.' ); ?></p>
@@ -182,6 +222,13 @@ switch($step) {
                display_setup_form();
                break;
        case 2:
                display_setup_form();
                break;
        case 2:
+               if ( ! empty( $language ) && load_default_textdomain( $language ) ) {
+                       $loaded_language = $language;
+                       $GLOBALS['wp_locale'] = new WP_Locale();
+               } else {
+                       $loaded_language = 'en_US';
+               }
+
                if ( ! empty( $wpdb->error ) )
                        wp_die( $wpdb->error->get_error_message() );
 
                if ( ! empty( $wpdb->error ) )
                        wp_die( $wpdb->error->get_error_message() );
 
@@ -191,9 +238,10 @@ switch($step) {
                $user_name = isset($_POST['user_name']) ? trim( wp_unslash( $_POST['user_name'] ) ) : '';
                $admin_password = isset($_POST['admin_password']) ? wp_unslash( $_POST['admin_password'] ) : '';
                $admin_password_check = isset($_POST['admin_password2']) ? wp_unslash( $_POST['admin_password2'] ) : '';
                $user_name = isset($_POST['user_name']) ? trim( wp_unslash( $_POST['user_name'] ) ) : '';
                $admin_password = isset($_POST['admin_password']) ? wp_unslash( $_POST['admin_password'] ) : '';
                $admin_password_check = isset($_POST['admin_password2']) ? wp_unslash( $_POST['admin_password2'] ) : '';
-               $admin_email  = isset( $_POST['admin_email']  ) ?trim( wp_unslash( $_POST['admin_email'] ) ) : '';
-               $public       = isset( $_POST['blog_public']  ) ? (int) $_POST['blog_public'] : 0;
-               // check e-mail address
+               $admin_email  = isset( $_POST['admin_email'] ) ?trim( wp_unslash( $_POST['admin_email'] ) ) : '';
+               $public       = isset( $_POST['blog_public'] ) ? (int) $_POST['blog_public'] : 0;
+
+               // Check e-mail address.
                $error = false;
                if ( empty( $user_name ) ) {
                        // TODO: poka-yoke
                $error = false;
                if ( empty( $user_name ) ) {
                        // TODO: poka-yoke
@@ -218,8 +266,7 @@ switch($step) {
 
                if ( $error === false ) {
                        $wpdb->show_errors();
 
                if ( $error === false ) {
                        $wpdb->show_errors();
-                       $result = wp_install($weblog_title, $user_name, $admin_email, $public, '', wp_slash( $admin_password ) );
-                       extract( $result, EXTR_SKIP );
+                       $result = wp_install( $weblog_title, $user_name, $admin_email, $public, '', wp_slash( $admin_password ), $loaded_language );
 ?>
 
 <h1><?php _e( 'Success!' ); ?></h1>
 ?>
 
 <h1><?php _e( 'Success!' ); ?></h1>
@@ -234,9 +281,10 @@ switch($step) {
        <tr>
                <th><?php _e( 'Password' ); ?></th>
                <td><?php
        <tr>
                <th><?php _e( 'Password' ); ?></th>
                <td><?php
-               if ( ! empty( $password ) && empty($admin_password_check) )
-                       echo '<code>'. esc_html($password) .'</code><br />';
-               echo "<p>$password_message</p>"; ?>
+               if ( ! empty( $result['password'] ) && empty( $admin_password_check ) ): ?>
+                       <code><?php echo esc_html( $result['password'] ) ?></code><br />
+               <?php endif ?>
+                       <p><?php echo $result['password_message'] ?></p>
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
@@ -252,5 +300,6 @@ if ( !wp_is_mobile() ) {
 <script type="text/javascript">var t = document.getElementById('weblog_title'); if (t){ t.focus(); }</script>
 <?php } ?>
 <?php wp_print_scripts( 'user-profile' ); ?>
 <script type="text/javascript">var t = document.getElementById('weblog_title'); if (t){ t.focus(); }</script>
 <?php } ?>
 <?php wp_print_scripts( 'user-profile' ); ?>
+<?php wp_print_scripts( 'language-chooser' ); ?>
 </body>
 </html>
 </body>
 </html>
index 7bc99ccca8450e82277e9449b47452debcd367ac..6cb1c1ca856dcb8a4e1aa39c14e9fc3aa7772329 100644 (file)
@@ -1,40 +1,86 @@
+/**
+ * Accordion-folding functionality.
+ *
+ * Markup with the appropriate classes will be automatically hidden,
+ * with one section opening at a time when its title is clicked.
+ * Use the following markup structure for accordion behavior:
+ *
+ * <div class="accordion-container">
+ *     <div class="accordion-section open">
+ *             <h3 class="accordion-section-title"></h3>
+ *             <div class="accordion-section-content">
+ *             </div>
+ *     </div>
+ *     <div class="accordion-section">
+ *             <h3 class="accordion-section-title"></h3>
+ *             <div class="accordion-section-content">
+ *             </div>
+ *     </div>
+ *     <div class="accordion-section">
+ *             <h3 class="accordion-section-title"></h3>
+ *             <div class="accordion-section-content">
+ *             </div>
+ *     </div>
+ * </div>
+ *
+ * Note that any appropriate tags may be used, as long as the above classes are present.
+ *
+ * In addition to the standard accordion behavior, this file includes JS for the
+ * Customizer's "Panel" functionality.
+ *
+ * @since 3.6.0.
+ */
+
 ( function( $ ){
 
        $( document ).ready( function () {
 
 ( function( $ ){
 
        $( document ).ready( function () {
 
-               // Expand/Collapse on click
+               // Expand/Collapse accordion sections on click.
                $( '.accordion-container' ).on( 'click keydown', '.accordion-section-title', function( e ) {
                $( '.accordion-container' ).on( 'click keydown', '.accordion-section-title', function( e ) {
-                       if ( e.type === 'keydown' && 13 !== e.which ) // "return" key
-                                       return;
+                       if ( e.type === 'keydown' && 13 !== e.which ) { // "return" key
+                               return;
+                       }
+
                        e.preventDefault(); // Keep this AFTER the key filter above
 
                        accordionSwitch( $( this ) );
                });
 
                        e.preventDefault(); // Keep this AFTER the key filter above
 
                        accordionSwitch( $( this ) );
                });
 
-               // Re-initialize accordion when screen options are toggled
-               $( '.hide-postbox-tog' ).click( function () {
-                       accordionInit();
-               });
+               // Go back to the top-level Customizer accordion.
+               $( '#customize-header-actions' ).on( 'click keydown', '.control-panel-back', function( e ) {
+                       if ( e.type === 'keydown' && 13 !== e.which ) { // "return" key
+                               return;
+                       }
 
 
-       });
+                       e.preventDefault(); // Keep this AFTER the key filter above
 
 
-       var accordionOptions = $( '.accordion-container li.accordion-section' ),
-               sectionContent   = $( '.accordion-section-content' );
+                       panelSwitch( $( '.current-panel' ) );
+               });
+       });
 
 
-       function accordionInit () {
-               // Rounded corners
-               accordionOptions.removeClass( 'top bottom' );
-               accordionOptions.filter( ':visible' ).first().addClass( 'top' );
-               accordionOptions.filter( ':visible' ).last().addClass( 'bottom' ).find( sectionContent ).addClass( 'bottom' );
-       }
+       var sectionContent = $( '.accordion-section-content' );
 
 
+       /**
+        * Close the current accordion section and open a new one.
+        *
+        * @param {Object} el Title element of the accordion section to toggle.
+        * @since 3.6.0
+        */
        function accordionSwitch ( el ) {
                var section = el.closest( '.accordion-section' ),
                        siblings = section.closest( '.accordion-container' ).find( '.open' ),
                        content = section.find( sectionContent );
 
        function accordionSwitch ( el ) {
                var section = el.closest( '.accordion-section' ),
                        siblings = section.closest( '.accordion-container' ).find( '.open' ),
                        content = section.find( sectionContent );
 
-               if ( section.hasClass( 'cannot-expand' ) )
+               // This section has no content and cannot be expanded.
+               if ( section.hasClass( 'cannot-expand' ) ) {
+                       return;
+               }
+
+               // Slide into a sub-panel instead of accordioning (Customizer-specific).
+               if ( section.hasClass( 'control-panel' ) ) {
+                       panelSwitch( section );
                        return;
                        return;
+               }
 
                if ( section.hasClass( 'open' ) ) {
                        section.toggleClass( 'open' );
 
                if ( section.hasClass( 'open' ) ) {
                        section.toggleClass( 'open' );
                        content.toggle( false ).slideToggle( 150 );
                        section.toggleClass( 'open' );
                }
                        content.toggle( false ).slideToggle( 150 );
                        section.toggleClass( 'open' );
                }
-
-               accordionInit();
        }
 
        }
 
-       // Initialize the accordion (currently just corner fixes)
-       accordionInit();
+       /**
+        * Slide into an accordion sub-panel.
+        *
+        * For the Customizer-specific panel functionality
+        *
+        * @param {Object} panel Title element or back button of the accordion panel to toggle.
+        * @since 4.0.0
+        */
+       function panelSwitch( panel ) {
+               var position, scroll,
+                       section = panel.closest( '.accordion-section' ),
+                       overlay = section.closest( '.wp-full-overlay' ),
+                       container = section.closest( '.accordion-container' ),
+                       siblings = container.find( '.open' ),
+                       topPanel = overlay.find( '#customize-theme-controls > ul > .accordion-section > .accordion-section-title' ).add( '#customize-info > .accordion-section-title' ),
+                       backBtn = overlay.find( '.control-panel-back' ),
+                       panelTitle = section.find( '.accordion-section-title' ).first(),
+                       content = section.find( '.control-panel-content' );
+
+               if ( section.hasClass( 'current-panel' ) ) {
+                       section.toggleClass( 'current-panel' );
+                       overlay.toggleClass( 'in-sub-panel' );
+                       content.delay( 180 ).hide( 0, function() {
+                               content.css( 'margin-top', 'inherit' ); // Reset
+                       } );
+                       topPanel.attr( 'tabindex', '0' );
+                       backBtn.attr( 'tabindex', '-1' );
+                       panelTitle.focus();
+                       container.scrollTop( 0 );
+               } else {
+                       // Close all open sections in any accordion level.
+                       siblings.removeClass( 'open' );
+                       siblings.find( sectionContent ).show().slideUp( 0 );
+                       content.show( 0, function() {
+                               position = content.offset().top;
+                               scroll = container.scrollTop();
+                               content.css( 'margin-top', ( 45 - position - scroll ) );
+                               section.toggleClass( 'current-panel' );
+                               overlay.toggleClass( 'in-sub-panel' );
+                               container.scrollTop( 0 );
+                       } );
+                       topPanel.attr( 'tabindex', '-1' );
+                       backBtn.attr( 'tabindex', '0' );
+                       backBtn.focus();
+               }
+       }
 
 })(jQuery);
 
 })(jQuery);
index a67e7572ab14f57b7b27413e0503152638eb8cc6..6b85264342f526da747e5aa9ee310abe50b95966 100644 (file)
@@ -1 +1 @@
-!function(a){function b(){d.removeClass("top bottom"),d.filter(":visible").first().addClass("top"),d.filter(":visible").last().addClass("bottom").find(e).addClass("bottom")}function c(a){var c=a.closest(".accordion-section"),d=c.closest(".accordion-container").find(".open"),f=c.find(e);c.hasClass("cannot-expand")||(c.hasClass("open")?(c.toggleClass("open"),f.toggle(!0).slideToggle(150)):(d.removeClass("open"),d.find(e).show().slideUp(150),f.toggle(!1).slideToggle(150),c.toggleClass("open")),b())}a(document).ready(function(){a(".accordion-container").on("click keydown",".accordion-section-title",function(b){("keydown"!==b.type||13===b.which)&&(b.preventDefault(),c(a(this)))}),a(".hide-postbox-tog").click(function(){b()})});var d=a(".accordion-container li.accordion-section"),e=a(".accordion-section-content");b()}(jQuery);
\ No newline at end of file
+!function(a){function b(a){var b=a.closest(".accordion-section"),e=b.closest(".accordion-container").find(".open"),f=b.find(d);if(!b.hasClass("cannot-expand"))return b.hasClass("control-panel")?void c(b):void(b.hasClass("open")?(b.toggleClass("open"),f.toggle(!0).slideToggle(150)):(e.removeClass("open"),e.find(d).show().slideUp(150),f.toggle(!1).slideToggle(150),b.toggleClass("open")))}function c(a){var b,c,e=a.closest(".accordion-section"),f=e.closest(".wp-full-overlay"),g=e.closest(".accordion-container"),h=g.find(".open"),i=f.find("#customize-theme-controls > ul > .accordion-section > .accordion-section-title").add("#customize-info > .accordion-section-title"),j=f.find(".control-panel-back"),k=e.find(".accordion-section-title").first(),l=e.find(".control-panel-content");e.hasClass("current-panel")?(e.toggleClass("current-panel"),f.toggleClass("in-sub-panel"),l.delay(180).hide(0,function(){l.css("margin-top","inherit")}),i.attr("tabindex","0"),j.attr("tabindex","-1"),k.focus(),g.scrollTop(0)):(h.removeClass("open"),h.find(d).show().slideUp(0),l.show(0,function(){b=l.offset().top,c=g.scrollTop(),l.css("margin-top",45-b-c),e.toggleClass("current-panel"),f.toggleClass("in-sub-panel"),g.scrollTop(0)}),i.attr("tabindex","-1"),j.attr("tabindex","0"),j.focus())}a(document).ready(function(){a(".accordion-container").on("click keydown",".accordion-section-title",function(c){("keydown"!==c.type||13===c.which)&&(c.preventDefault(),b(a(this)))}),a("#customize-header-actions").on("click keydown",".control-panel-back",function(b){("keydown"!==b.type||13===b.which)&&(b.preventDefault(),c(a(".current-panel")))})});var d=a(".accordion-section-content")}(jQuery);
\ No newline at end of file
index 1cc0a13bc693886772240a3279c4eecbafdce155..0991c3e2df65e7da7d5244ff94137d8631180f7e 100644 (file)
@@ -1,4 +1,4 @@
-/* global wpColorPickerL10n:true */
+/* global wpColorPickerL10n */
 ( function( $, undef ){
 
        var ColorPicker,
 ( function( $, undef ){
 
        var ColorPicker,
                },
                _create: function() {
                        // bail early for unsupported Iris.
                },
                _create: function() {
                        // bail early for unsupported Iris.
-                       if ( ! $.support.iris )
+                       if ( ! $.support.iris ) {
                                return;
                                return;
+                       }
+
                        var self = this,
                                el = self.element;
 
                        $.extend( self.options, el.data() );
 
                        var self = this,
                                el = self.element;
 
                        $.extend( self.options, el.data() );
 
+                       // keep close bound so it can be attached to a body listener
+                       self.close = $.proxy( self.close, self );
+
                        self.initialValue = el.val();
 
                        // Set up HTML structure, hide things
                        self.initialValue = el.val();
 
                        // Set up HTML structure, hide things
                        self.pickerContainer = $( _after ).insertAfter( el );
                        self.button = $( _button );
 
                        self.pickerContainer = $( _after ).insertAfter( el );
                        self.button = $( _button );
 
-                       if ( self.options.defaultColor )
+                       if ( self.options.defaultColor ) {
                                self.button.addClass( 'wp-picker-default' ).val( wpColorPickerL10n.defaultString );
                                self.button.addClass( 'wp-picker-default' ).val( wpColorPickerL10n.defaultString );
-                       else
+                       } else {
                                self.button.addClass( 'wp-picker-clear' ).val( wpColorPickerL10n.clear );
                                self.button.addClass( 'wp-picker-clear' ).val( wpColorPickerL10n.clear );
+                       }
 
 
-                       el.wrap('<span class="wp-picker-input-wrap" />').after(self.button);
+                       el.wrap( '<span class="wp-picker-input-wrap" />' ).after(self.button);
 
                        el.iris( {
                                target: self.pickerContainer,
 
                        el.iris( {
                                target: self.pickerContainer,
                                change: function( event, ui ) {
                                        self.toggler.css( { backgroundColor: ui.color.toString() } );
                                        // check for a custom cb
                                change: function( event, ui ) {
                                        self.toggler.css( { backgroundColor: ui.color.toString() } );
                                        // check for a custom cb
-                                       if ( $.isFunction( self.options.change ) )
+                                       if ( $.isFunction( self.options.change ) ) {
                                                self.options.change.call( this, event, ui );
                                                self.options.change.call( this, event, ui );
+                                       }
                                }
                        } );
                                }
                        } );
+
                        el.val( self.initialValue );
                        self._addListeners();
                        el.val( self.initialValue );
                        self._addListeners();
-                       if ( ! self.options.hide )
+                       if ( ! self.options.hide ) {
                                self.toggler.click();
                                self.toggler.click();
+                       }
                },
                _addListeners: function() {
                        var self = this;
 
                },
                _addListeners: function() {
                        var self = this;
 
-                       self.toggler.click( function( event ){
+                       // prevent any clicks inside this widget from leaking to the top and closing it
+                       self.wrap.on( 'click.wpcolorpicker', function( event ) {
                                event.stopPropagation();
                                event.stopPropagation();
-                               self.element.toggle().iris( 'toggle' );
-                               self.button.toggleClass('hidden');
-                               self.toggler.toggleClass( 'wp-picker-open' );
-
-                               // close picker when you click outside it
-                               if ( self.toggler.hasClass( 'wp-picker-open' ) )
-                                       $( 'body' ).on( 'click', { wrap: self.wrap, toggler: self.toggler }, self._bodyListener );
-                               else
-                                       $( 'body' ).off( 'click', self._bodyListener );
                        });
 
                        });
 
-                       self.element.change(function( event ) {
-                               var me = $(this),
+                       self.toggler.click( function(){
+                               if ( self.toggler.hasClass( 'wp-picker-open' ) ) {
+                                       self.close();
+                               } else {
+                                       self.open();
+                               }
+                       });
+
+                       self.element.change( function( event ) {
+                               var me = $( this ),
                                        val = me.val();
                                // Empty = clear
                                if ( val === '' || val === '#' ) {
                                        val = me.val();
                                // Empty = clear
                                if ( val === '' || val === '#' ) {
-                                       self.toggler.css('backgroundColor', '');
+                                       self.toggler.css( 'backgroundColor', '' );
                                        // fire clear callback if we have one
                                        // fire clear callback if we have one
-                                       if ( $.isFunction( self.options.clear ) )
+                                       if ( $.isFunction( self.options.clear ) ) {
                                                self.options.clear.call( this, event );
                                                self.options.clear.call( this, event );
+                                       }
                                }
                        });
 
                        // open a keyboard-focused closed picker with space or enter
                                }
                        });
 
                        // open a keyboard-focused closed picker with space or enter
-                       self.toggler.on('keyup', function( e ) {
-                               if ( e.keyCode === 13 || e.keyCode === 32 ) {
-                                       e.preventDefault();
-                                       self.toggler.trigger('click').next().focus();
+                       self.toggler.on( 'keyup', function( event ) {
+                               if ( event.keyCode === 13 || event.keyCode === 32 ) {
+                                       event.preventDefault();
+                                       self.toggler.trigger( 'click' ).next().focus();
                                }
                        });
 
                        self.button.click( function( event ) {
                                }
                        });
 
                        self.button.click( function( event ) {
-                               var me = $(this);
+                               var me = $( this );
                                if ( me.hasClass( 'wp-picker-clear' ) ) {
                                        self.element.val( '' );
                                if ( me.hasClass( 'wp-picker-clear' ) ) {
                                        self.element.val( '' );
-                                       self.toggler.css('backgroundColor', '');
-                                       if ( $.isFunction( self.options.clear ) )
+                                       self.toggler.css( 'backgroundColor', '' );
+                                       if ( $.isFunction( self.options.clear ) ) {
                                                self.options.clear.call( this, event );
                                                self.options.clear.call( this, event );
+                                       }
                                } else if ( me.hasClass( 'wp-picker-default' ) ) {
                                        self.element.val( self.options.defaultColor ).change();
                                }
                        });
                },
                                } else if ( me.hasClass( 'wp-picker-default' ) ) {
                                        self.element.val( self.options.defaultColor ).change();
                                }
                        });
                },
-               _bodyListener: function( event ) {
-                       if ( ! event.data.wrap.find( event.target ).length )
-                                       event.data.toggler.click();
+               open: function() {
+                       this.element.show().iris( 'toggle' ).focus();
+                       this.button.removeClass( 'hidden' );
+                       this.toggler.addClass( 'wp-picker-open' );
+                       $( 'body' ).trigger( 'click.wpcolorpicker' ).on( 'click.wpcolorpicker', this.close );
+               },
+               close: function() {
+                       this.element.hide().iris( 'toggle' );
+                       this.button.addClass( 'hidden' );
+                       this.toggler.removeClass( 'wp-picker-open' );
+                       $( 'body' ).off( 'click.wpcolorpicker', this.close );
                },
                // $("#input").wpColorPicker('color') returns the current color
                // $("#input").wpColorPicker('color', '#bada55') to set
                color: function( newColor ) {
                },
                // $("#input").wpColorPicker('color') returns the current color
                // $("#input").wpColorPicker('color', '#bada55') to set
                color: function( newColor ) {
-                       if ( newColor === undef )
+                       if ( newColor === undef ) {
                                return this.element.iris( 'option', 'color' );
                                return this.element.iris( 'option', 'color' );
+                       }
 
                        this.element.iris( 'option', 'color', newColor );
                },
                //$("#input").wpColorPicker('defaultColor') returns the current default color
                //$("#input").wpColorPicker('defaultColor', newDefaultColor) to set
                defaultColor: function( newDefaultColor ) {
 
                        this.element.iris( 'option', 'color', newColor );
                },
                //$("#input").wpColorPicker('defaultColor') returns the current default color
                //$("#input").wpColorPicker('defaultColor', newDefaultColor) to set
                defaultColor: function( newDefaultColor ) {
-                       if ( newDefaultColor === undef )
+                       if ( newDefaultColor === undef ) {
                                return this.options.defaultColor;
                                return this.options.defaultColor;
+                       }
 
                        this.options.defaultColor = newDefaultColor;
                }
 
                        this.options.defaultColor = newDefaultColor;
                }
index 92e935f64853af9f96b303376495ee87eb9ee37c..a4ba98deeaee769d36fba05cf8ec864557e44b79 100644 (file)
@@ -1 +1 @@
-!function(a,b){var c,d='<a tabindex="0" class="wp-color-result" />',e='<div class="wp-picker-holder" />',f='<div class="wp-picker-container" />',g='<input type="button" class="button button-small hidden" />';c={options:{defaultColor:!1,change:!1,clear:!1,hide:!0,palettes:!0},_create:function(){if(a.support.iris){var b=this,c=b.element;a.extend(b.options,c.data()),b.initialValue=c.val(),c.addClass("wp-color-picker").hide().wrap(f),b.wrap=c.parent(),b.toggler=a(d).insertBefore(c).css({backgroundColor:b.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current),b.pickerContainer=a(e).insertAfter(c),b.button=a(g),b.options.defaultColor?b.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString):b.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear),c.wrap('<span class="wp-picker-input-wrap" />').after(b.button),c.iris({target:b.pickerContainer,hide:!0,width:255,mode:"hsv",palettes:b.options.palettes,change:function(c,d){b.toggler.css({backgroundColor:d.color.toString()}),a.isFunction(b.options.change)&&b.options.change.call(this,c,d)}}),c.val(b.initialValue),b._addListeners(),b.options.hide||b.toggler.click()}},_addListeners:function(){var b=this;b.toggler.click(function(c){c.stopPropagation(),b.element.toggle().iris("toggle"),b.button.toggleClass("hidden"),b.toggler.toggleClass("wp-picker-open"),b.toggler.hasClass("wp-picker-open")?a("body").on("click",{wrap:b.wrap,toggler:b.toggler},b._bodyListener):a("body").off("click",b._bodyListener)}),b.element.change(function(c){var d=a(this),e=d.val();(""===e||"#"===e)&&(b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c))}),b.toggler.on("keyup",function(a){(13===a.keyCode||32===a.keyCode)&&(a.preventDefault(),b.toggler.trigger("click").next().focus())}),b.button.click(function(c){var d=a(this);d.hasClass("wp-picker-clear")?(b.element.val(""),b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c)):d.hasClass("wp-picker-default")&&b.element.val(b.options.defaultColor).change()})},_bodyListener:function(a){a.data.wrap.find(a.target).length||a.data.toggler.click()},color:function(a){return a===b?this.element.iris("option","color"):void this.element.iris("option","color",a)},defaultColor:function(a){return a===b?this.options.defaultColor:void(this.options.defaultColor=a)}},a.widget("wp.wpColorPicker",c)}(jQuery);
\ No newline at end of file
+!function(a,b){var c,d='<a tabindex="0" class="wp-color-result" />',e='<div class="wp-picker-holder" />',f='<div class="wp-picker-container" />',g='<input type="button" class="button button-small hidden" />';c={options:{defaultColor:!1,change:!1,clear:!1,hide:!0,palettes:!0},_create:function(){if(a.support.iris){var b=this,c=b.element;a.extend(b.options,c.data()),b.close=a.proxy(b.close,b),b.initialValue=c.val(),c.addClass("wp-color-picker").hide().wrap(f),b.wrap=c.parent(),b.toggler=a(d).insertBefore(c).css({backgroundColor:b.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current),b.pickerContainer=a(e).insertAfter(c),b.button=a(g),b.options.defaultColor?b.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString):b.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear),c.wrap('<span class="wp-picker-input-wrap" />').after(b.button),c.iris({target:b.pickerContainer,hide:!0,width:255,mode:"hsv",palettes:b.options.palettes,change:function(c,d){b.toggler.css({backgroundColor:d.color.toString()}),a.isFunction(b.options.change)&&b.options.change.call(this,c,d)}}),c.val(b.initialValue),b._addListeners(),b.options.hide||b.toggler.click()}},_addListeners:function(){var b=this;b.wrap.on("click.wpcolorpicker",function(a){a.stopPropagation()}),b.toggler.click(function(){b.toggler.hasClass("wp-picker-open")?b.close():b.open()}),b.element.change(function(c){var d=a(this),e=d.val();(""===e||"#"===e)&&(b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c))}),b.toggler.on("keyup",function(a){(13===a.keyCode||32===a.keyCode)&&(a.preventDefault(),b.toggler.trigger("click").next().focus())}),b.button.click(function(c){var d=a(this);d.hasClass("wp-picker-clear")?(b.element.val(""),b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c)):d.hasClass("wp-picker-default")&&b.element.val(b.options.defaultColor).change()})},open:function(){this.element.show().iris("toggle").focus(),this.button.removeClass("hidden"),this.toggler.addClass("wp-picker-open"),a("body").trigger("click.wpcolorpicker").on("click.wpcolorpicker",this.close)},close:function(){this.element.hide().iris("toggle"),this.button.addClass("hidden"),this.toggler.removeClass("wp-picker-open"),a("body").off("click.wpcolorpicker",this.close)},color:function(a){return a===b?this.element.iris("option","color"):void this.element.iris("option","color",a)},defaultColor:function(a){return a===b?this.options.defaultColor:void(this.options.defaultColor=a)}},a.widget("wp.wpColorPicker",c)}(jQuery);
\ No newline at end of file
index 510f2952fcf7ccbd13500601e08d29dfaa202964..b61763af06a0e3dd19fc85fad4cef1327f7741fa 100644 (file)
@@ -131,6 +131,8 @@ screenMeta = {
                        panel.focus();
                        link.addClass('screen-meta-active').attr('aria-expanded', true);
                });
                        panel.focus();
                        link.addClass('screen-meta-active').attr('aria-expanded', true);
                });
+
+               $( document ).trigger( 'screen:options:open' );
        },
 
        close: function( panel, link ) {
        },
 
        close: function( panel, link ) {
@@ -139,13 +141,15 @@ screenMeta = {
                        $('.screen-meta-toggle').css('visibility', '');
                        panel.parent().hide();
                });
                        $('.screen-meta-toggle').css('visibility', '');
                        panel.parent().hide();
                });
+
+               $( document ).trigger( 'screen:options:close' );
        }
 };
 
 /**
  * Help tabs.
  */
        }
 };
 
 /**
  * Help tabs.
  */
-$('.contextual-help-tabs').delegate('a', 'click focus', function(e) {
+$('.contextual-help-tabs').delegate('a', 'click', function(e) {
        var link = $(this),
                panel;
 
        var link = $(this),
                panel;
 
@@ -179,7 +183,7 @@ $(document).ready( function() {
        });
 
        $('#collapse-menu').on('click.collapse-menu', function() {
        });
 
        $('#collapse-menu').on('click.collapse-menu', function() {
-               var body = $( document.body ), respWidth;
+               var body = $( document.body ), respWidth, state;
 
                // reset any compensation for submenus near the bottom of the screen
                $('#adminmenu div.wp-submenu').css('margin-top', '');
 
                // reset any compensation for submenus near the bottom of the screen
                $('#adminmenu div.wp-submenu').css('margin-top', '');
@@ -189,27 +193,33 @@ $(document).ready( function() {
                        respWidth = Math.max( window.innerWidth, document.documentElement.clientWidth );
                } else {
                        // IE < 9 doesn't support @media CSS rules
                        respWidth = Math.max( window.innerWidth, document.documentElement.clientWidth );
                } else {
                        // IE < 9 doesn't support @media CSS rules
-                       respWidth = 901;
+                       respWidth = 961;
                }
 
                }
 
-               if ( respWidth && respWidth < 900 ) {
+               if ( respWidth && respWidth < 960 ) {
                        if ( body.hasClass('auto-fold') ) {
                                body.removeClass('auto-fold').removeClass('folded');
                                setUserSetting('unfold', 1);
                                setUserSetting('mfold', 'o');
                        if ( body.hasClass('auto-fold') ) {
                                body.removeClass('auto-fold').removeClass('folded');
                                setUserSetting('unfold', 1);
                                setUserSetting('mfold', 'o');
+                               state = 'open';
                        } else {
                                body.addClass('auto-fold');
                                setUserSetting('unfold', 0);
                        } else {
                                body.addClass('auto-fold');
                                setUserSetting('unfold', 0);
+                               state = 'folded';
                        }
                } else {
                        if ( body.hasClass('folded') ) {
                                body.removeClass('folded');
                                setUserSetting('mfold', 'o');
                        }
                } else {
                        if ( body.hasClass('folded') ) {
                                body.removeClass('folded');
                                setUserSetting('mfold', 'o');
+                               state = 'open';
                        } else {
                                body.addClass('folded');
                                setUserSetting('mfold', 'f');
                        } else {
                                body.addClass('folded');
                                setUserSetting('mfold', 'f');
+                               state = 'folded';
                        }
                }
                        }
                }
+
+               $( document ).trigger( 'wp-collapse-menu', { state: state } );
        });
 
        if ( 'ontouchstart' in window || /IEMobile\/[1-9]/.test(navigator.userAgent) ) { // touch screen device
        });
 
        if ( 'ontouchstart' in window || /IEMobile\/[1-9]/.test(navigator.userAgent) ) { // touch screen device
@@ -581,8 +591,7 @@ $(document).ready( function() {
 
        window.wpResponsive = {
                init: function() {
 
        window.wpResponsive = {
                init: function() {
-                       var self = this,
-                               scrollStart = 0;
+                       var self = this;
 
                        // Modify functionality based on custom activate/deactivate event
                        $document.on( 'wp-responsive-activate.wp-responsive', function() {
 
                        // Modify functionality based on custom activate/deactivate event
                        $document.on( 'wp-responsive-activate.wp-responsive', function() {
@@ -606,12 +615,8 @@ $(document).ready( function() {
                        } );
 
                        // Add menu events
                        } );
 
                        // Add menu events
-                       $adminmenu.on( 'touchstart.wp-responsive', 'li.wp-has-submenu > a', function() {
-                               scrollStart = $window.scrollTop();
-                       }).on( 'touchend.wp-responsive click.wp-responsive', 'li.wp-has-submenu > a', function( event ) {
-                               if ( ! $adminmenu.data('wp-responsive') ||
-                                       ( event.type === 'touchend' && $window.scrollTop() !== scrollStart ) ) {
-
+                       $adminmenu.on( 'click.wp-responsive', 'li.wp-has-submenu > a', function( event ) {
+                               if ( ! $adminmenu.data('wp-responsive') ) {
                                        return;
                                }
 
                                        return;
                                }
 
@@ -721,7 +726,7 @@ $(document).ready( function() {
        window.wpResponsive.init();
 });
 
        window.wpResponsive.init();
 });
 
-// make Windows 8 devices playing along nicely
+// Make Windows 8 devices play along nicely.
 (function(){
        if ( '-ms-user-select' in document.documentElement.style && navigator.userAgent.match(/IEMobile\/10\.0/) ) {
                var msViewportStyle = document.createElement( 'style' );
 (function(){
        if ( '-ms-user-select' in document.documentElement.style && navigator.userAgent.match(/IEMobile\/10\.0/) ) {
                var msViewportStyle = document.createElement( 'style' );
index 7f43a0234837bf4ffac2e1965d369b61f4ee602d..edde0c5497c4f02ff8259f9c6210bffe82617d66 100644 (file)
@@ -1 +1 @@
-var showNotice,adminMenu,columns,validateForm,screenMeta;!function(a,b){adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}},columns={init:function(){var b=this;a(".hide-column-tog","#adv-settings").click(function(){var c=a(this),d=c.val();c.prop("checked")?b.checked(d):b.unchecked(d),columns.saveManageColumnsState()})},saveManageColumnsState:function(){var b=this.hidden();a.post(ajaxurl,{action:"hidden-columns",hidden:b,screenoptionnonce:a("#screenoptionnonce").val(),page:pagenow})},checked:function(b){a(".column-"+b).show(),this.colSpanChange(1)},unchecked:function(b){a(".column-"+b).hide(),this.colSpanChange(-1)},hidden:function(){return a(".manage-column").filter(":hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return a(".hide-column-tog").not(":checked").map(function(){var a=this.id;return a.substring(a,a.length-5)}).get().join(",")}},colSpanChange:function(b){var c,d=a("table").find(".colspanchange");d.length&&(c=parseInt(d.attr("colspan"),10)+b,d.attr("colspan",c.toString()))}},a(document).ready(function(){columns.init()}),validateForm=function(b){return!a(b).find(".form-required").filter(function(){return""===a("input:visible",this).val()}).addClass("form-invalid").find("input:visible").change(function(){a(this).closest(".form-invalid").removeClass("form-invalid")}).size()},showNotice={warn:function(){var a=commonL10n.warnDelete||"";return confirm(a)?!0:!1},note:function(a){alert(a)}},screenMeta={element:null,toggles:null,page:null,init:function(){this.element=a("#screen-meta"),this.toggles=a(".screen-meta-toggle a"),this.page=a("#wpcontent"),this.toggles.click(this.toggleEvent)},toggleEvent:function(b){var c=a(this.href.replace(/.+#/,"#"));b.preventDefault(),c.length&&(c.is(":visible")?screenMeta.close(c,a(this)):screenMeta.open(c,a(this)))},open:function(b,c){a(".screen-meta-toggle").not(c.parent()).css("visibility","hidden"),b.parent().show(),b.slideDown("fast",function(){b.focus(),c.addClass("screen-meta-active").attr("aria-expanded",!0)})},close:function(b,c){b.slideUp("fast",function(){c.removeClass("screen-meta-active").attr("aria-expanded",!1),a(".screen-meta-toggle").css("visibility",""),b.parent().hide()})}},a(".contextual-help-tabs").delegate("a","click focus",function(b){var c,d=a(this);return b.preventDefault(),d.is(".active a")?!1:(a(".contextual-help-tabs .active").removeClass("active"),d.parent("li").addClass("active"),c=a(d.attr("href")),a(".help-tab-content").not(c).removeClass("active").hide(),void c.addClass("active").show())}),a(document).ready(function(){var c,d,e,f,g,h,i,j,k=!1,l=a("#adminmenu"),m=a("input.current-page"),n=m.val();l.on("click.wp-submenu-head",".wp-submenu-head",function(b){a(b.target).parent().siblings("a").get(0).click()}),a("#collapse-menu").on("click.collapse-menu",function(){var c,d=a(document.body);a("#adminmenu div.wp-submenu").css("margin-top",""),c=b.innerWidth?Math.max(b.innerWidth,document.documentElement.clientWidth):901,c&&900>c?d.hasClass("auto-fold")?(d.removeClass("auto-fold").removeClass("folded"),setUserSetting("unfold",1),setUserSetting("mfold","o")):(d.addClass("auto-fold"),setUserSetting("unfold",0)):d.hasClass("folded")?(d.removeClass("folded"),setUserSetting("mfold","o")):(d.addClass("folded"),setUserSetting("mfold","f"))}),("ontouchstart"in b||/IEMobile\/[1-9]/.test(navigator.userAgent))&&(h=/Mobile\/.+Safari/.test(navigator.userAgent)?"touchstart":"click",a(document.body).on(h+".wp-mobile-hover",function(b){l.data("wp-responsive")||a(b.target).closest("#adminmenu").length||l.find("li.wp-has-submenu.opensub").removeClass("opensub")}),l.find("a.wp-has-submenu").on(h+".wp-mobile-hover",function(c){var d,e,f,g,h,i,j,k=a(this),m=k.parent(),n=m.find(".wp-submenu");l.data("wp-responsive")||m.hasClass("opensub")||m.hasClass("wp-menu-open")&&!(m.width()<40)||(c.preventDefault(),h=m.offset().top,i=a(b).scrollTop(),j=h-i-30,d=h+n.height()+1,e=a("#wpwrap").height(),f=60+d-e,g=a(b).height()+i-50,d-f>g&&(f=d-g),f>j&&(f=j),f>1?n.css("margin-top","-"+f+"px"):n.css("margin-top",""),l.find("li.opensub").removeClass("opensub"),m.addClass("opensub"))})),l.find("li.wp-has-submenu").hoverIntent({over:function(){var c,d,e,f,g,h,i,j=a(this).find(".wp-submenu"),k=parseInt(j.css("top"),10);isNaN(k)||k>-5||l.data("wp-responsive")||(g=a(this).offset().top,h=a(b).scrollTop(),i=g-h-30,c=g+j.height()+1,d=a("#wpwrap").height(),e=60+c-d,f=a(b).height()+h-15,c-e>f&&(e=c-f),e>i&&(e=i),e>1?j.css("margin-top","-"+e+"px"):j.css("margin-top",""),l.find("li.menu-top").removeClass("opensub"),a(this).addClass("opensub"))},out:function(){l.data("wp-responsive")||a(this).removeClass("opensub").find(".wp-submenu").css("margin-top","")},timeout:200,sensitivity:7,interval:90}),l.on("focus.adminmenu",".wp-submenu a",function(b){l.data("wp-responsive")||a(b.target).closest("li.menu-top").addClass("opensub")}).on("blur.adminmenu",".wp-submenu a",function(b){l.data("wp-responsive")||a(b.target).closest("li.menu-top").removeClass("opensub")}),a("div.wrap h2:first").nextAll("div.updated, div.error").addClass("below-h2"),a("div.updated, div.error").not(".below-h2, .inline").insertAfter(a("div.wrap h2:first")),screenMeta.init(),a("tbody").children().children(".check-column").find(":checkbox").click(function(b){if("undefined"==b.shiftKey)return!0;if(b.shiftKey){if(!k)return!0;c=a(k).closest("form").find(":checkbox"),d=c.index(k),e=c.index(this),f=a(this).prop("checked"),d>0&&e>0&&d!=e&&(g=e>d?c.slice(d,e):c.slice(e,d),g.prop("checked",function(){return a(this).closest("tr").is(":visible")?f:!1}))}k=this;var h=a(this).closest("tbody").find(":checkbox").filter(":visible").not(":checked");return a(this).closest("table").children("thead, tfoot").find(":checkbox").prop("checked",function(){return 0===h.length}),!0}),a("thead, tfoot").find(".check-column :checkbox").on("click.wp-toggle-checkboxes",function(b){var c=a(this),d=c.closest("table"),e=c.prop("checked"),f=b.shiftKey||c.data("wp-toggle");d.children("tbody").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return a(this).is(":hidden")?!1:f?!a(this).prop("checked"):e?!0:!1}),d.children("thead,  tfoot").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return f?!1:e?!0:!1})}),a("td.post-title, td.title, td.comment, .bookmarks td.column-name, td.blogname, td.username, .dashboard-comment-wrap").focusin(function(){clearTimeout(i),j=a(this).find(".row-actions"),j.addClass("visible")}).focusout(function(){i=setTimeout(function(){j.removeClass("visible")},30)}),a("#default-password-nag-no").click(function(){return setUserSetting("default_password_nag","hide"),a("div.default-password-nag").hide(),!1}),a("#newcontent").bind("keydown.wpevent_InsertTab",function(b){var c,d,e,f,g,h=b.target;if(27==b.keyCode)return void a(h).data("tab-out",!0);if(!(9!=b.keyCode||b.ctrlKey||b.altKey||b.shiftKey)){if(a(h).data("tab-out"))return void a(h).data("tab-out",!1);c=h.selectionStart,d=h.selectionEnd,e=h.value;try{this.lastKey=9}catch(i){}document.selection?(h.focus(),g=document.selection.createRange(),g.text="        "):c>=0&&(f=this.scrollTop,h.value=e.substring(0,c).concat("    ",e.substring(d)),h.selectionStart=h.selectionEnd=c+1,this.scrollTop=f),b.stopPropagation&&b.stopPropagation(),b.preventDefault&&b.preventDefault()}}),a("#newcontent").bind("blur.wpevent_InsertTab",function(){this.lastKey&&9==this.lastKey&&this.focus()}),m.length&&m.closest("form").submit(function(){-1==a('select[name="action"]').val()&&-1==a('select[name="action2"]').val()&&m.val()==n&&m.val("1")}),a('.search-box input[type="search"], .search-box input[type="submit"]').mousedown(function(){a('select[name^="action"]').val("-1")}),a("#contextual-help-link, #show-settings-link").on("focus.scroll-into-view",function(a){a.target.scrollIntoView&&a.target.scrollIntoView(!1)}),function(){function b(){c.prop("disabled",""===d.map(function(){return a(this).val()}).get().join(""))}var c,d,e=a("form.wp-upload-form");e.length&&(c=e.find('input[type="submit"]'),d=e.find('input[type="file"]'),b(),d.on("change",b))}()}),function(){function c(){a(document).trigger("wp-window-resized")}function d(){b.clearTimeout(e),e=b.setTimeout(c,200)}var e;a(b).on("resize.wp-fire-once",d)}(),a(document).ready(function(){var c=a(document),d=a(b),e=a(document.body),f=a("#adminmenuwrap"),g=a("#collapse-menu"),h=a("#wpwrap"),i=a("#adminmenu"),j=a("#wp-responsive-overlay"),k=a("#wp-toolbar"),l=k.find('a[aria-haspopup="true"]'),m=a(".meta-box-sortables"),n=!1,o=!1;b.stickyMenu={enable:function(){n||(c.on("wp-window-resized.sticky-menu",a.proxy(this.update,this)),g.on("click.sticky-menu",a.proxy(this.update,this)),this.update(),n=!0)},disable:function(){n&&(d.off("resize.sticky-menu"),g.off("click.sticky-menu"),e.removeClass("sticky-menu"),n=!1)},update:function(){d.height()>f.height()+32?e.hasClass("sticky-menu")||e.addClass("sticky-menu"):e.hasClass("sticky-menu")&&e.removeClass("sticky-menu")}},b.wpResponsive={init:function(){var e=this,f=0;c.on("wp-responsive-activate.wp-responsive",function(){e.activate()}).on("wp-responsive-deactivate.wp-responsive",function(){e.deactivate()}),a("#wp-admin-bar-menu-toggle a").attr("aria-expanded","false"),a("#wp-admin-bar-menu-toggle").on("click.wp-responsive",function(b){b.preventDefault(),h.toggleClass("wp-responsive-open"),h.hasClass("wp-responsive-open")?(a(this).find("a").attr("aria-expanded","true"),a("#adminmenu a:first").focus()):a(this).find("a").attr("aria-expanded","false")}),i.on("touchstart.wp-responsive","li.wp-has-submenu > a",function(){f=d.scrollTop()}).on("touchend.wp-responsive click.wp-responsive","li.wp-has-submenu > a",function(b){!i.data("wp-responsive")||"touchend"===b.type&&d.scrollTop()!==f||(a(this).parent("li").toggleClass("selected"),b.preventDefault())}),e.trigger(),c.on("wp-window-resized.wp-responsive",a.proxy(this.trigger,this)),d.on("load.wp-responsive",function(){var a=navigator.userAgent.indexOf("AppleWebKit/")>-1?d.width():b.innerWidth;782>=a&&e.disableSortables()})},activate:function(){b.stickyMenu.disable(),e.hasClass("auto-fold")||e.addClass("auto-fold"),i.data("wp-responsive",1),this.disableSortables()},deactivate:function(){b.stickyMenu.enable(),i.removeData("wp-responsive"),this.enableSortables()},trigger:function(){var a;b.innerWidth&&(a=Math.max(b.innerWidth,document.documentElement.clientWidth),782>=a?o||(c.trigger("wp-responsive-activate"),o=!0):o&&(c.trigger("wp-responsive-deactivate"),o=!1),480>=a?this.enableOverlay():this.disableOverlay())},enableOverlay:function(){0===j.length&&(j=a('<div id="wp-responsive-overlay"></div>').insertAfter("#wpcontent").hide().on("click.wp-responsive",function(){k.find(".menupop.hover").removeClass("hover"),a(this).hide()})),l.on("click.wp-responsive",function(){j.show()})},disableOverlay:function(){l.off("click.wp-responsive"),j.hide()},disableSortables:function(){if(m.length)try{m.sortable("disable")}catch(a){}},enableSortables:function(){if(m.length)try{m.sortable("enable")}catch(a){}}},b.stickyMenu.enable(),b.wpResponsive.init()}),function(){if("-ms-user-select"in document.documentElement.style&&navigator.userAgent.match(/IEMobile\/10\.0/)){var a=document.createElement("style");a.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")),document.getElementsByTagName("head")[0].appendChild(a)}}()}(jQuery,window);
\ No newline at end of file
+var showNotice,adminMenu,columns,validateForm,screenMeta;!function(a,b){adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}},columns={init:function(){var b=this;a(".hide-column-tog","#adv-settings").click(function(){var c=a(this),d=c.val();c.prop("checked")?b.checked(d):b.unchecked(d),columns.saveManageColumnsState()})},saveManageColumnsState:function(){var b=this.hidden();a.post(ajaxurl,{action:"hidden-columns",hidden:b,screenoptionnonce:a("#screenoptionnonce").val(),page:pagenow})},checked:function(b){a(".column-"+b).show(),this.colSpanChange(1)},unchecked:function(b){a(".column-"+b).hide(),this.colSpanChange(-1)},hidden:function(){return a(".manage-column").filter(":hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return a(".hide-column-tog").not(":checked").map(function(){var a=this.id;return a.substring(a,a.length-5)}).get().join(",")}},colSpanChange:function(b){var c,d=a("table").find(".colspanchange");d.length&&(c=parseInt(d.attr("colspan"),10)+b,d.attr("colspan",c.toString()))}},a(document).ready(function(){columns.init()}),validateForm=function(b){return!a(b).find(".form-required").filter(function(){return""===a("input:visible",this).val()}).addClass("form-invalid").find("input:visible").change(function(){a(this).closest(".form-invalid").removeClass("form-invalid")}).size()},showNotice={warn:function(){var a=commonL10n.warnDelete||"";return confirm(a)?!0:!1},note:function(a){alert(a)}},screenMeta={element:null,toggles:null,page:null,init:function(){this.element=a("#screen-meta"),this.toggles=a(".screen-meta-toggle a"),this.page=a("#wpcontent"),this.toggles.click(this.toggleEvent)},toggleEvent:function(b){var c=a(this.href.replace(/.+#/,"#"));b.preventDefault(),c.length&&(c.is(":visible")?screenMeta.close(c,a(this)):screenMeta.open(c,a(this)))},open:function(b,c){a(".screen-meta-toggle").not(c.parent()).css("visibility","hidden"),b.parent().show(),b.slideDown("fast",function(){b.focus(),c.addClass("screen-meta-active").attr("aria-expanded",!0)}),a(document).trigger("screen:options:open")},close:function(b,c){b.slideUp("fast",function(){c.removeClass("screen-meta-active").attr("aria-expanded",!1),a(".screen-meta-toggle").css("visibility",""),b.parent().hide()}),a(document).trigger("screen:options:close")}},a(".contextual-help-tabs").delegate("a","click",function(b){var c,d=a(this);return b.preventDefault(),d.is(".active a")?!1:(a(".contextual-help-tabs .active").removeClass("active"),d.parent("li").addClass("active"),c=a(d.attr("href")),a(".help-tab-content").not(c).removeClass("active").hide(),void c.addClass("active").show())}),a(document).ready(function(){var c,d,e,f,g,h,i,j,k=!1,l=a("#adminmenu"),m=a("input.current-page"),n=m.val();l.on("click.wp-submenu-head",".wp-submenu-head",function(b){a(b.target).parent().siblings("a").get(0).click()}),a("#collapse-menu").on("click.collapse-menu",function(){var c,d,e=a(document.body);a("#adminmenu div.wp-submenu").css("margin-top",""),c=b.innerWidth?Math.max(b.innerWidth,document.documentElement.clientWidth):961,c&&960>c?e.hasClass("auto-fold")?(e.removeClass("auto-fold").removeClass("folded"),setUserSetting("unfold",1),setUserSetting("mfold","o"),d="open"):(e.addClass("auto-fold"),setUserSetting("unfold",0),d="folded"):e.hasClass("folded")?(e.removeClass("folded"),setUserSetting("mfold","o"),d="open"):(e.addClass("folded"),setUserSetting("mfold","f"),d="folded"),a(document).trigger("wp-collapse-menu",{state:d})}),("ontouchstart"in b||/IEMobile\/[1-9]/.test(navigator.userAgent))&&(h=/Mobile\/.+Safari/.test(navigator.userAgent)?"touchstart":"click",a(document.body).on(h+".wp-mobile-hover",function(b){l.data("wp-responsive")||a(b.target).closest("#adminmenu").length||l.find("li.wp-has-submenu.opensub").removeClass("opensub")}),l.find("a.wp-has-submenu").on(h+".wp-mobile-hover",function(c){var d,e,f,g,h,i,j,k=a(this),m=k.parent(),n=m.find(".wp-submenu");l.data("wp-responsive")||m.hasClass("opensub")||m.hasClass("wp-menu-open")&&!(m.width()<40)||(c.preventDefault(),h=m.offset().top,i=a(b).scrollTop(),j=h-i-30,d=h+n.height()+1,e=a("#wpwrap").height(),f=60+d-e,g=a(b).height()+i-50,d-f>g&&(f=d-g),f>j&&(f=j),f>1?n.css("margin-top","-"+f+"px"):n.css("margin-top",""),l.find("li.opensub").removeClass("opensub"),m.addClass("opensub"))})),l.find("li.wp-has-submenu").hoverIntent({over:function(){var c,d,e,f,g,h,i,j=a(this).find(".wp-submenu"),k=parseInt(j.css("top"),10);isNaN(k)||k>-5||l.data("wp-responsive")||(g=a(this).offset().top,h=a(b).scrollTop(),i=g-h-30,c=g+j.height()+1,d=a("#wpwrap").height(),e=60+c-d,f=a(b).height()+h-15,c-e>f&&(e=c-f),e>i&&(e=i),e>1?j.css("margin-top","-"+e+"px"):j.css("margin-top",""),l.find("li.menu-top").removeClass("opensub"),a(this).addClass("opensub"))},out:function(){l.data("wp-responsive")||a(this).removeClass("opensub").find(".wp-submenu").css("margin-top","")},timeout:200,sensitivity:7,interval:90}),l.on("focus.adminmenu",".wp-submenu a",function(b){l.data("wp-responsive")||a(b.target).closest("li.menu-top").addClass("opensub")}).on("blur.adminmenu",".wp-submenu a",function(b){l.data("wp-responsive")||a(b.target).closest("li.menu-top").removeClass("opensub")}),a("div.wrap h2:first").nextAll("div.updated, div.error").addClass("below-h2"),a("div.updated, div.error").not(".below-h2, .inline").insertAfter(a("div.wrap h2:first")),screenMeta.init(),a("tbody").children().children(".check-column").find(":checkbox").click(function(b){if("undefined"==b.shiftKey)return!0;if(b.shiftKey){if(!k)return!0;c=a(k).closest("form").find(":checkbox"),d=c.index(k),e=c.index(this),f=a(this).prop("checked"),d>0&&e>0&&d!=e&&(g=e>d?c.slice(d,e):c.slice(e,d),g.prop("checked",function(){return a(this).closest("tr").is(":visible")?f:!1}))}k=this;var h=a(this).closest("tbody").find(":checkbox").filter(":visible").not(":checked");return a(this).closest("table").children("thead, tfoot").find(":checkbox").prop("checked",function(){return 0===h.length}),!0}),a("thead, tfoot").find(".check-column :checkbox").on("click.wp-toggle-checkboxes",function(b){var c=a(this),d=c.closest("table"),e=c.prop("checked"),f=b.shiftKey||c.data("wp-toggle");d.children("tbody").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return a(this).is(":hidden")?!1:f?!a(this).prop("checked"):e?!0:!1}),d.children("thead,  tfoot").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return f?!1:e?!0:!1})}),a("td.post-title, td.title, td.comment, .bookmarks td.column-name, td.blogname, td.username, .dashboard-comment-wrap").focusin(function(){clearTimeout(i),j=a(this).find(".row-actions"),j.addClass("visible")}).focusout(function(){i=setTimeout(function(){j.removeClass("visible")},30)}),a("#default-password-nag-no").click(function(){return setUserSetting("default_password_nag","hide"),a("div.default-password-nag").hide(),!1}),a("#newcontent").bind("keydown.wpevent_InsertTab",function(b){var c,d,e,f,g,h=b.target;if(27==b.keyCode)return void a(h).data("tab-out",!0);if(!(9!=b.keyCode||b.ctrlKey||b.altKey||b.shiftKey)){if(a(h).data("tab-out"))return void a(h).data("tab-out",!1);c=h.selectionStart,d=h.selectionEnd,e=h.value;try{this.lastKey=9}catch(i){}document.selection?(h.focus(),g=document.selection.createRange(),g.text="   "):c>=0&&(f=this.scrollTop,h.value=e.substring(0,c).concat("    ",e.substring(d)),h.selectionStart=h.selectionEnd=c+1,this.scrollTop=f),b.stopPropagation&&b.stopPropagation(),b.preventDefault&&b.preventDefault()}}),a("#newcontent").bind("blur.wpevent_InsertTab",function(){this.lastKey&&9==this.lastKey&&this.focus()}),m.length&&m.closest("form").submit(function(){-1==a('select[name="action"]').val()&&-1==a('select[name="action2"]').val()&&m.val()==n&&m.val("1")}),a('.search-box input[type="search"], .search-box input[type="submit"]').mousedown(function(){a('select[name^="action"]').val("-1")}),a("#contextual-help-link, #show-settings-link").on("focus.scroll-into-view",function(a){a.target.scrollIntoView&&a.target.scrollIntoView(!1)}),function(){function b(){c.prop("disabled",""===d.map(function(){return a(this).val()}).get().join(""))}var c,d,e=a("form.wp-upload-form");e.length&&(c=e.find('input[type="submit"]'),d=e.find('input[type="file"]'),b(),d.on("change",b))}()}),function(){function c(){a(document).trigger("wp-window-resized")}function d(){b.clearTimeout(e),e=b.setTimeout(c,200)}var e;a(b).on("resize.wp-fire-once",d)}(),a(document).ready(function(){var c=a(document),d=a(b),e=a(document.body),f=a("#adminmenuwrap"),g=a("#collapse-menu"),h=a("#wpwrap"),i=a("#adminmenu"),j=a("#wp-responsive-overlay"),k=a("#wp-toolbar"),l=k.find('a[aria-haspopup="true"]'),m=a(".meta-box-sortables"),n=!1,o=!1;b.stickyMenu={enable:function(){n||(c.on("wp-window-resized.sticky-menu",a.proxy(this.update,this)),g.on("click.sticky-menu",a.proxy(this.update,this)),this.update(),n=!0)},disable:function(){n&&(d.off("resize.sticky-menu"),g.off("click.sticky-menu"),e.removeClass("sticky-menu"),n=!1)},update:function(){d.height()>f.height()+32?e.hasClass("sticky-menu")||e.addClass("sticky-menu"):e.hasClass("sticky-menu")&&e.removeClass("sticky-menu")}},b.wpResponsive={init:function(){var e=this;c.on("wp-responsive-activate.wp-responsive",function(){e.activate()}).on("wp-responsive-deactivate.wp-responsive",function(){e.deactivate()}),a("#wp-admin-bar-menu-toggle a").attr("aria-expanded","false"),a("#wp-admin-bar-menu-toggle").on("click.wp-responsive",function(b){b.preventDefault(),h.toggleClass("wp-responsive-open"),h.hasClass("wp-responsive-open")?(a(this).find("a").attr("aria-expanded","true"),a("#adminmenu a:first").focus()):a(this).find("a").attr("aria-expanded","false")}),i.on("click.wp-responsive","li.wp-has-submenu > a",function(b){i.data("wp-responsive")&&(a(this).parent("li").toggleClass("selected"),b.preventDefault())}),e.trigger(),c.on("wp-window-resized.wp-responsive",a.proxy(this.trigger,this)),d.on("load.wp-responsive",function(){var a=navigator.userAgent.indexOf("AppleWebKit/")>-1?d.width():b.innerWidth;782>=a&&e.disableSortables()})},activate:function(){b.stickyMenu.disable(),e.hasClass("auto-fold")||e.addClass("auto-fold"),i.data("wp-responsive",1),this.disableSortables()},deactivate:function(){b.stickyMenu.enable(),i.removeData("wp-responsive"),this.enableSortables()},trigger:function(){var a;b.innerWidth&&(a=Math.max(b.innerWidth,document.documentElement.clientWidth),782>=a?o||(c.trigger("wp-responsive-activate"),o=!0):o&&(c.trigger("wp-responsive-deactivate"),o=!1),480>=a?this.enableOverlay():this.disableOverlay())},enableOverlay:function(){0===j.length&&(j=a('<div id="wp-responsive-overlay"></div>').insertAfter("#wpcontent").hide().on("click.wp-responsive",function(){k.find(".menupop.hover").removeClass("hover"),a(this).hide()})),l.on("click.wp-responsive",function(){j.show()})},disableOverlay:function(){l.off("click.wp-responsive"),j.hide()},disableSortables:function(){if(m.length)try{m.sortable("disable")}catch(a){}},enableSortables:function(){if(m.length)try{m.sortable("enable")}catch(a){}}},b.stickyMenu.enable(),b.wpResponsive.init()}),function(){if("-ms-user-select"in document.documentElement.style&&navigator.userAgent.match(/IEMobile\/10\.0/)){var a=document.createElement("style");a.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")),document.getElementsByTagName("head")[0].appendChild(a)}}()}(jQuery,window);
\ No newline at end of file
index 4bfc252a445046660b474c5316f4abcb6eae553b..85b171dbe9ae083599937e1e28323b378038c205 100644 (file)
@@ -3,6 +3,10 @@
        var api = wp.customize;
 
        /**
        var api = wp.customize;
 
        /**
+        * @constructor
+        * @augments wp.customize.Value
+        * @augments wp.customize.Class
+        *
         * @param options
         * - previewer - The Previewer instance to sync with.
         * - transport - The transport to use for previewing. Supports 'refresh' and 'postMessage'.
         * @param options
         * - previewer - The Previewer instance to sync with.
         * - transport - The transport to use for previewing. Supports 'refresh' and 'postMessage'.
                }
        });
 
                }
        });
 
+       /**
+        * @constructor
+        * @augments wp.customize.Class
+        */
        api.Control = api.Class.extend({
                initialize: function( id, options ) {
                        var control = this,
        api.Control = api.Class.extend({
                initialize: function( id, options ) {
                        var control = this,
@@ -37,6 +45,7 @@
                        this.id = id;
                        this.selector = '#customize-control-' + id.replace( /\]/g, '' ).replace( /\[/g, '-' );
                        this.container = $( this.selector );
                        this.id = id;
                        this.selector = '#customize-control-' + id.replace( /\]/g, '' ).replace( /\[/g, '-' );
                        this.container = $( this.selector );
+                       this.active = new api.Value( this.params.active );
 
                        settings = $.map( this.params.settings, function( value ) {
                                return value;
 
                        settings = $.map( this.params.settings, function( value ) {
                                return value;
                                        element.set( setting() );
                                });
                        });
                                        element.set( setting() );
                                });
                        });
+
+                       control.active.bind( function ( active ) {
+                               control.toggle( active );
+                       } );
+                       control.toggle( control.active() );
                },
 
                },
 
+               /**
+                * @abstract
+                */
                ready: function() {},
 
                ready: function() {},
 
+               /**
+                * Callback for change to the control's active state.
+                *
+                * Override function for custom behavior for the control being active/inactive.
+                *
+                * @param {Boolean} active
+                */
+               toggle: function ( active ) {
+                       if ( active ) {
+                               this.container.slideDown();
+                       } else {
+                               this.container.slideUp();
+                       }
+               },
+
                dropdownInit: function() {
                        var control      = this,
                                statuses     = this.container.find('.dropdown-status'),
                dropdownInit: function() {
                        var control      = this,
                                statuses     = this.container.find('.dropdown-status'),
                }
        });
 
                }
        });
 
+       /**
+        * @constructor
+        * @augments wp.customize.Control
+        * @augments wp.customize.Class
+        */
        api.ColorControl = api.Control.extend({
                ready: function() {
                        var control = this,
        api.ColorControl = api.Control.extend({
                ready: function() {
                        var control = this,
                }
        });
 
                }
        });
 
+       /**
+        * @constructor
+        * @augments wp.customize.Control
+        * @augments wp.customize.Class
+        */
        api.UploadControl = api.Control.extend({
                ready: function() {
                        var control = this;
        api.UploadControl = api.Control.extend({
                ready: function() {
                        var control = this;
                }
        });
 
                }
        });
 
+       /**
+        * @constructor
+        * @augments wp.customize.UploadControl
+        * @augments wp.customize.Control
+        * @augments wp.customize.Class
+        */
        api.ImageControl = api.UploadControl.extend({
                ready: function() {
                        var control = this,
        api.ImageControl = api.UploadControl.extend({
                ready: function() {
                        var control = this,
                }
        });
 
                }
        });
 
+       /**
+        * @constructor
+        * @augments wp.customize.Control
+        * @augments wp.customize.Class
+        */
        api.HeaderControl = api.Control.extend({
                ready: function() {
                        this.btnRemove        = $('#customize-control-header_image .actions .remove');
        api.HeaderControl = api.Control.extend({
                ready: function() {
                        this.btnRemove        = $('#customize-control-header_image .actions .remove');
        // Create the collection of Control objects.
        api.control = new api.Values({ defaultConstructor: api.Control });
 
        // Create the collection of Control objects.
        api.control = new api.Values({ defaultConstructor: api.Control });
 
+       /**
+        * @constructor
+        * @augments wp.customize.Messenger
+        * @augments wp.customize.Class
+        * @mixes wp.customize.Events
+        */
        api.PreviewFrame = api.Messenger.extend({
                sensitivity: 2000,
 
        api.PreviewFrame = api.Messenger.extend({
                sensitivity: 2000,
 
 
                        this.bind( 'ready', this._ready );
 
 
                        this.bind( 'ready', this._ready );
 
+                       this.bind( 'ready', function ( data ) {
+                               if ( ! data || ! data.activeControls ) {
+                                       return;
+                               }
+
+                               $.each( data.activeControls, function ( id, active ) {
+                                       var control = api.control( id );
+                                       if ( control ) {
+                                               control.active( active );
+                                       }
+                               } );
+                       } );
+
                        this.request = $.ajax( this.previewUrl(), {
                                type: 'POST',
                                data: this.query,
                        this.request = $.ajax( this.previewUrl(), {
                                type: 'POST',
                                data: this.query,
 
        (function(){
                var uuid = 0;
 
        (function(){
                var uuid = 0;
+               /**
+                * Create a universally unique identifier.
+                *
+                * @return {int}
+                */
                api.PreviewFrame.uuid = function() {
                        return 'preview-' + uuid++;
                };
        }());
 
                api.PreviewFrame.uuid = function() {
                        return 'preview-' + uuid++;
                };
        }());
 
+       /**
+        * @constructor
+        * @augments wp.customize.Messenger
+        * @augments wp.customize.Class
+        * @mixes wp.customize.Events
+        */
        api.Previewer = api.Messenger.extend({
                refreshBuffer: 250,
 
        api.Previewer = api.Messenger.extend({
                refreshBuffer: 250,
 
                }
        });
 
                }
        });
 
-       /* =====================================================================
-        * Ready.
-        * ===================================================================== */
-
        api.controlConstructor = {
                color:  api.ColorControl,
                upload: api.UploadControl,
        api.controlConstructor = {
                color:  api.ColorControl,
                upload: api.UploadControl,
                if ( ! $.support.postMessage || ( ! $.support.cors && api.settings.isCrossDomain ) )
                        return window.location = api.settings.url.fallback;
 
                if ( ! $.support.postMessage || ( ! $.support.cors && api.settings.isCrossDomain ) )
                        return window.location = api.settings.url.fallback;
 
-               var previewer, parent, topFocus,
+               var parent, topFocus,
                        body = $( document.body ),
                        body = $( document.body ),
-                       overlay = body.children('.wp-full-overlay');
+                       overlay = body.children( '.wp-full-overlay' ),
+                       title = $( '#customize-info .theme-name.site-title' ),
+                       closeBtn = $( '.customize-controls-close' ),
+                       saveBtn = $( '#save' );
 
                // Prevent the form from saving when enter is pressed on an input or select element.
                $('#customize-controls').on( 'keydown', function( e ) {
 
                // Prevent the form from saving when enter is pressed on an input or select element.
                $('#customize-controls').on( 'keydown', function( e ) {
                });
 
                // Initialize Previewer
                });
 
                // Initialize Previewer
-               previewer = new api.Previewer({
+               api.previewer = new api.Previewer({
                        container:   '#customize-preview',
                        form:        '#customize-controls',
                        previewUrl:  api.settings.url.preview,
                        container:   '#customize-preview',
                        form:        '#customize-controls',
                        previewUrl:  api.settings.url.preview,
                });
 
                // Refresh the nonces if the preview sends updated nonces over.
                });
 
                // Refresh the nonces if the preview sends updated nonces over.
-               previewer.bind( 'nonce', function( nonce ) {
+               api.previewer.bind( 'nonce', function( nonce ) {
                        $.extend( this.nonce, nonce );
                });
 
                $.each( api.settings.settings, function( id, data ) {
                        api.create( id, id, data.value, {
                                transport: data.transport,
                        $.extend( this.nonce, nonce );
                });
 
                $.each( api.settings.settings, function( id, data ) {
                        api.create( id, id, data.value, {
                                transport: data.transport,
-                               previewer: previewer
+                               previewer: api.previewer
                        } );
                });
 
                        } );
                });
 
 
                        control = api.control.add( id, new constructor( id, {
                                params: data,
 
                        control = api.control.add( id, new constructor( id, {
                                params: data,
-                               previewer: previewer
+                               previewer: api.previewer
                        } ) );
                });
 
                // Check if preview url is valid and load the preview frame.
                        } ) );
                });
 
                // Check if preview url is valid and load the preview frame.
-               if ( previewer.previewUrl() )
-                       previewer.refresh();
-               else
-                       previewer.previewUrl( api.settings.url.home );
+               if ( api.previewer.previewUrl() ) {
+                       api.previewer.refresh();
+               } else {
+                       api.previewer.previewUrl( api.settings.url.home );
+               }
 
                // Save and activated states
                (function() {
 
                // Save and activated states
                (function() {
                                processing = state.create( 'processing' );
 
                        state.bind( 'change', function() {
                                processing = state.create( 'processing' );
 
                        state.bind( 'change', function() {
-                               var save = $('#save'),
-                                       back = $('.back');
-
                                if ( ! activated() ) {
                                if ( ! activated() ) {
-                                       save.val( api.l10n.activate ).prop( 'disabled', false );
-                                       back.text( api.l10n.cancel );
+                                       saveBtn.val( api.l10n.activate ).prop( 'disabled', false );
+                                       closeBtn.find( '.screen-reader-text' ).text( api.l10n.cancel );
 
                                } else if ( saved() ) {
 
                                } else if ( saved() ) {
-                                       save.val( api.l10n.saved ).prop( 'disabled', true );
-                                       back.text( api.l10n.close );
+                                       saveBtn.val( api.l10n.saved ).prop( 'disabled', true );
+                                       closeBtn.find( '.screen-reader-text' ).text( api.l10n.close );
 
                                } else {
 
                                } else {
-                                       save.val( api.l10n.save ).prop( 'disabled', false );
-                                       back.text( api.l10n.cancel );
+                                       saveBtn.val( api.l10n.save ).prop( 'disabled', false );
+                                       closeBtn.find( '.screen-reader-text' ).text( api.l10n.cancel );
                                }
                        });
 
                                }
                        });
 
                }());
 
                // Button bindings.
                }());
 
                // Button bindings.
-               $('#save').click( function( event ) {
-                       previewer.save();
+               saveBtn.click( function( event ) {
+                       api.previewer.save();
                        event.preventDefault();
                }).keydown( function( event ) {
                        if ( 9 === event.which ) // tab
                                return;
                        if ( 13 === event.which ) // enter
                        event.preventDefault();
                }).keydown( function( event ) {
                        if ( 9 === event.which ) // tab
                                return;
                        if ( 13 === event.which ) // enter
-                               previewer.save();
+                               api.previewer.save();
                        event.preventDefault();
                });
 
                        event.preventDefault();
                });
 
-               $('.back').keydown( function( event ) {
+               closeBtn.keydown( function( event ) {
                        if ( 9 === event.which ) // tab
                                return;
                        if ( 13 === event.which ) // enter
                        if ( 9 === event.which ) // tab
                                return;
                        if ( 13 === event.which ) // enter
                        event.preventDefault();
                });
 
                        event.preventDefault();
                });
 
+               // Bind site title display to the corresponding field.
+               if ( title.length ) {
+                       $( '#customize-control-blogname input' ).on( 'input', function() {
+                               title.text(  this.value );
+                       } );
+               }
+
                // Create a potential postMessage connection with the parent frame.
                parent = new api.Messenger({
                        url: api.settings.url.parent,
                // Create a potential postMessage connection with the parent frame.
                parent = new api.Messenger({
                        url: api.settings.url.parent,
                // If we receive a 'back' event, we're inside an iframe.
                // Send any clicks to the 'Return' link to the parent page.
                parent.bind( 'back', function() {
                // If we receive a 'back' event, we're inside an iframe.
                // Send any clicks to the 'Return' link to the parent page.
                parent.bind( 'back', function() {
-                       $('.back').on( 'click.back', function( event ) {
+                       closeBtn.on( 'click.customize-controls-close', function( event ) {
                                event.preventDefault();
                                parent.send( 'close' );
                        });
                });
 
                                event.preventDefault();
                                parent.send( 'close' );
                        });
                });
 
+               // Prompt user with AYS dialog if leaving the Customizer with unsaved changes
+               $( window ).on( 'beforeunload', function () {
+                       if ( ! api.state( 'saved' )() ) {
+                               return api.l10n.saveAlert;
+                       }
+               } );
+
                // Pass events through to the parent.
                // Pass events through to the parent.
-               api.bind( 'saved', function() {
-                       parent.send( 'saved' );
-               });
+               $.each( [ 'saved', 'change' ], function ( i, event ) {
+                       api.bind( event, function() {
+                               parent.send( event );
+                       });
+               } );
 
                // When activated, let the loader handle redirecting the page.
                // If no loader exists, redirect the page ourselves (if a url exists).
 
                // When activated, let the loader handle redirecting the page.
                // If no loader exists, redirect the page ourselves (if a url exists).
                api.trigger( 'ready' );
 
                // Make sure left column gets focus
                api.trigger( 'ready' );
 
                // Make sure left column gets focus
-               topFocus = $('.back');
+               topFocus = closeBtn;
                topFocus.focus();
                setTimeout(function () {
                        topFocus.focus();
                topFocus.focus();
                setTimeout(function () {
                        topFocus.focus();
index cd6a4c55a386b0ffcb523202c8fb0fa47f0e3b34..9ee86c3b4ef61c3ccefa81a91534cad4f3367cc7 100644 (file)
@@ -1 +1 @@
-!function(a,b){var c=wp.customize;c.Setting=c.Value.extend({initialize:function(a,b,d){c.Value.prototype.initialize.call(this,b,d),this.id=a,this.transport=this.transport||"refresh",this.bind(this.preview)},preview:function(){switch(this.transport){case"refresh":return this.previewer.refresh();case"postMessage":return this.previewer.send("setting",[this.id,this()])}}}),c.Control=c.Class.extend({initialize:function(a,d){var e,f,g,h=this;this.params={},b.extend(this,d||{}),this.id=a,this.selector="#customize-control-"+a.replace(/\]/g,"").replace(/\[/g,"-"),this.container=b(this.selector),g=b.map(this.params.settings,function(a){return a}),c.apply(c,g.concat(function(){var a;h.settings={};for(a in h.params.settings)h.settings[a]=c(h.params.settings[a]);h.setting=h.settings["default"]||null,h.ready()})),h.elements=[],e=this.container.find("[data-customize-setting-link]"),f={},e.each(function(){var a,d=b(this);if(d.is(":radio")){if(a=d.prop("name"),f[a])return;f[a]=!0,d=e.filter('[name="'+a+'"]')}c(d.data("customizeSettingLink"),function(a){var b=new c.Element(d);h.elements.push(b),b.sync(a),b.set(a())})})},ready:function(){},dropdownInit:function(){var a=this,b=this.container.find(".dropdown-status"),c=this.params,d=!1,e=function(a){"string"==typeof a&&c.statuses&&c.statuses[a]?b.html(c.statuses[a]).show():b.hide()};this.container.on("click keydown",".dropdown",function(b){("keydown"!==b.type||13===b.which)&&(b.preventDefault(),d||a.container.toggleClass("open"),a.container.hasClass("open")&&a.container.parent().parent().find("li.library-selected").focus(),d=!0,setTimeout(function(){d=!1},400))}),this.setting.bind(e),e(this.setting())}}),c.ColorControl=c.Control.extend({ready:function(){var a=this,b=this.container.find(".color-picker-hex");b.val(a.setting()).wpColorPicker({change:function(){a.setting.set(b.wpColorPicker("color"))},clear:function(){a.setting.set(!1)}})}}),c.UploadControl=c.Control.extend({ready:function(){var a=this;this.params.removed=this.params.removed||"",this.success=b.proxy(this.success,this),this.uploader=b.extend({container:this.container,browser:this.container.find(".upload"),dropzone:this.container.find(".upload-dropzone"),success:this.success,plupload:{},params:{}},this.uploader||{}),a.params.extensions&&(a.uploader.plupload.filters=[{title:c.l10n.allowedFiles,extensions:a.params.extensions}]),a.params.context&&(a.uploader.params["post_data[context]"]=this.params.context),c.settings.theme.stylesheet&&(a.uploader.params["post_data[theme]"]=c.settings.theme.stylesheet),this.uploader=new wp.Uploader(this.uploader),this.remover=this.container.find(".remove"),this.remover.on("click keydown",function(b){("keydown"!==b.type||13===b.which)&&(a.setting.set(a.params.removed),b.preventDefault())}),this.removerVisibility=b.proxy(this.removerVisibility,this),this.setting.bind(this.removerVisibility),this.removerVisibility(this.setting.get())},success:function(a){this.setting.set(a.get("url"))},removerVisibility:function(a){this.remover.toggle(a!=this.params.removed)}}),c.ImageControl=c.UploadControl.extend({ready:function(){var a,d=this;this.uploader={init:function(){var a,b;this.supports.dragdrop||(a=d.container.find(".upload-fallback"),b=a.children().detach(),this.browser.detach().empty().append(b),a.append(this.browser).show())}},c.UploadControl.prototype.ready.call(this),this.thumbnail=this.container.find(".preview-thumbnail img"),this.thumbnailSrc=b.proxy(this.thumbnailSrc,this),this.setting.bind(this.thumbnailSrc),this.library=this.container.find(".library"),this.tabs={},a=this.library.find(".library-content"),this.library.children("ul").children("li").each(function(){var c=b(this),e=c.data("customizeTab"),f=a.filter('[data-customize-tab="'+e+'"]');d.tabs[e]={both:c.add(f),link:c,panel:f}}),this.library.children("ul").on("click keydown","li",function(a){if("keydown"!==a.type||13===a.which){var c=b(this).data("customizeTab"),e=d.tabs[c];a.preventDefault(),e.link.hasClass("library-selected")||(d.selected.both.removeClass("library-selected"),d.selected=e,d.selected.both.addClass("library-selected"))}}),this.library.on("click keydown","a",function(a){if("keydown"!==a.type||13===a.which){var c=b(this).data("customizeImageValue");c&&(d.setting.set(c),a.preventDefault())}}),this.tabs.uploaded&&(this.tabs.uploaded.target=this.library.find(".uploaded-target"),this.tabs.uploaded.panel.find(".thumbnail").length||this.tabs.uploaded.both.addClass("hidden")),a.each(function(){var a=d.tabs[b(this).data("customizeTab")];return a.link.hasClass("hidden")?void 0:(d.selected=a,a.both.addClass("library-selected"),!1)}),this.dropdownInit()},success:function(a){c.UploadControl.prototype.success.call(this,a),this.tabs.uploaded&&this.tabs.uploaded.target.length&&(this.tabs.uploaded.both.removeClass("hidden"),a.element=b('<a href="#" class="thumbnail"></a>').data("customizeImageValue",a.get("url")).append('<img src="'+a.get("url")+'" />').appendTo(this.tabs.uploaded.target))},thumbnailSrc:function(a){/^(https?:)?\/\//.test(a)?this.thumbnail.prop("src",a).show():this.thumbnail.hide()}}),c.HeaderControl=c.Control.extend({ready:function(){this.btnRemove=b("#customize-control-header_image .actions .remove"),this.btnNew=b("#customize-control-header_image .actions .new"),_.bindAll(this,"openMedia","removeImage"),this.btnNew.on("click",this.openMedia),this.btnRemove.on("click",this.removeImage),c.HeaderTool.currentHeader=new c.HeaderTool.ImageModel,new c.HeaderTool.CurrentView({model:c.HeaderTool.currentHeader,el:".current .container"}),new c.HeaderTool.ChoiceListView({collection:c.HeaderTool.UploadsList=new c.HeaderTool.ChoiceList,el:".choices .uploaded .list"}),new c.HeaderTool.ChoiceListView({collection:c.HeaderTool.DefaultsList=new c.HeaderTool.DefaultsList,el:".choices .default .list"}),c.HeaderTool.combinedList=c.HeaderTool.CombinedList=new c.HeaderTool.CombinedList([c.HeaderTool.UploadsList,c.HeaderTool.DefaultsList])},calculateImageSelectOptions:function(a,b){var d,e,f,g,h,i,j=parseInt(_wpCustomizeHeader.data.width,10),k=parseInt(_wpCustomizeHeader.data.height,10),l=!!parseInt(_wpCustomizeHeader.data["flex-width"],10),m=!!parseInt(_wpCustomizeHeader.data["flex-height"],10);return h=a.get("width"),g=a.get("height"),this.headerImage=new c.HeaderTool.ImageModel,this.headerImage.set({themeWidth:j,themeHeight:k,themeFlexWidth:l,themeFlexHeight:m,imageWidth:h,imageHeight:g}),b.set("canSkipCrop",!this.headerImage.shouldBeCropped()),d=j/k,e=h,f=g,e/f>d?(k=f,j=k*d):(j=e,k=j/d),i={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:h,imageHeight:g,x1:0,y1:0,x2:j,y2:k},m===!1&&l===!1&&(i.aspectRatio=j+":"+k),m===!1&&(i.maxHeight=k),l===!1&&(i.maxWidth=j),i},openMedia:function(a){var b=_wpMediaViewsL10n;a.preventDefault(),this.frame=wp.media({button:{text:b.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:b.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,priority:20,suggestedWidth:_wpCustomizeHeader.data.width,suggestedHeight:_wpCustomizeHeader.data.height}),new wp.media.controller.Cropper({imgSelectOptions:this.calculateImageSelectOptions})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this),this.frame.open()},onSelect:function(){this.frame.setState("cropper")},onCropped:function(a){var b=a.post_content,c=a.attachment_id,d=a.width,e=a.height;this.setImageFromURL(b,c,d,e)},onSkippedCrop:function(a){var b=a.get("url"),c=a.get("width"),d=a.get("height");this.setImageFromURL(b,a.id,c,d)},setImageFromURL:function(a,b,d,e){var f,g={};g.url=a,g.thumbnail_url=a,g.timestamp=_.now(),b&&(g.attachment_id=b),d&&(g.width=d),e&&(g.height=e),f=new c.HeaderTool.ImageModel({header:g,choice:a.split("/").pop()}),c.HeaderTool.UploadsList.add(f),c.HeaderTool.currentHeader.set(f.toJSON()),f.save(),f.importImage()},removeImage:function(){c.HeaderTool.currentHeader.trigger("hide"),c.HeaderTool.CombinedList.trigger("control:removeImage")}}),c.defaultConstructor=c.Setting,c.control=new c.Values({defaultConstructor:c.Control}),c.PreviewFrame=c.Messenger.extend({sensitivity:2e3,initialize:function(a,d){var e=b.Deferred();e.promise(this),this.container=a.container,this.signature=a.signature,b.extend(a,{channel:c.PreviewFrame.uuid()}),c.Messenger.prototype.initialize.call(this,a,d),this.add("previewUrl",a.previewUrl),this.query=b.extend(a.query||{},{customize_messenger_channel:this.channel()}),this.run(e)},run:function(a){var c=this,d=!1,e=!1;this._ready&&this.unbind("ready",this._ready),this._ready=function(){e=!0,d&&a.resolveWith(c)},this.bind("ready",this._ready),this.request=b.ajax(this.previewUrl(),{type:"POST",data:this.query,xhrFields:{withCredentials:!0}}),this.request.fail(function(){a.rejectWith(c,["request failure"])}),this.request.done(function(f){var g,h=c.request.getResponseHeader("Location"),i=c.signature;return h&&h!=c.previewUrl()?void a.rejectWith(c,["redirect",h]):"0"===f?void c.login(a):"-1"===f?void a.rejectWith(c,["cheatin"]):(g=f.lastIndexOf(i),-1===g||g<f.lastIndexOf("</html>")?void a.rejectWith(c,["unsigned"]):(f=f.slice(0,g)+f.slice(g+i.length),c.iframe=b("<iframe />").appendTo(c.container),c.iframe.one("load",function(){d=!0,e?a.resolveWith(c):setTimeout(function(){a.rejectWith(c,["ready timeout"])},c.sensitivity)}),c.targetWindow(c.iframe[0].contentWindow),c.targetWindow().document.open(),c.targetWindow().document.write(f),void c.targetWindow().document.close()))})},login:function(a){var d,e=this;return d=function(){a.rejectWith(e,["logged out"])},this.triedLogin?d():void b.get(c.settings.url.ajax,{action:"logged-in"}).fail(d).done(function(c){var f;"1"!==c&&d(),f=b('<iframe src="'+e.previewUrl()+'" />').hide(),f.appendTo(e.container),f.load(function(){e.triedLogin=!0,f.remove(),e.run(a)})})},destroy:function(){c.Messenger.prototype.destroy.call(this),this.request.abort(),this.iframe&&this.iframe.remove(),delete this.request,delete this.iframe,delete this.targetWindow}}),function(){var a=0;c.PreviewFrame.uuid=function(){return"preview-"+a++}}(),c.Previewer=c.Messenger.extend({refreshBuffer:250,initialize:function(a,d){var e=this,f=/^https?/;b.extend(this,d||{}),this.refresh=function(a){var b,c=a.refresh,d=function(){b=null,c.call(a)};return function(){if("number"!=typeof b){if(!a.loading)return d();a.abort()}clearTimeout(b),b=setTimeout(d,a.refreshBuffer)}}(this),this.container=c.ensure(a.container),this.allowedUrls=a.allowedUrls,this.signature=a.signature,a.url=window.location.href,c.Messenger.prototype.initialize.call(this,a),this.add("scheme",this.origin()).link(this.origin).setter(function(a){var b=a.match(f);return b?b[0]:""}),this.add("previewUrl",a.previewUrl).setter(function(a){var c;return/\/wp-admin(\/|$)/.test(a.replace(/[#?].*$/,""))?null:(b.each([a.replace(f,e.scheme()),a],function(a,d){return b.each(e.allowedUrls,function(a,b){var e;return b=b.replace(/\/+$/,""),e=d.replace(b,""),0===d.indexOf(b)&&/^([/#?]|$)/.test(e)?(c=d,!1):void 0}),c?!1:void 0}),c?c:null)}),this.previewUrl.bind(this.refresh),this.scroll=0,this.bind("scroll",function(a){this.scroll=a}),this.bind("url",this.previewUrl)},query:function(){},abort:function(){this.loading&&(this.loading.destroy(),delete this.loading)},refresh:function(){var a=this;this.abort(),this.loading=new c.PreviewFrame({url:this.url(),previewUrl:this.previewUrl(),query:this.query()||{},container:this.container,signature:this.signature}),this.loading.done(function(){this.bind("synced",function(){a.preview&&a.preview.destroy(),a.preview=this,delete a.loading,a.targetWindow(this.targetWindow()),a.channel(this.channel()),a.send("active")}),this.send("sync",{scroll:a.scroll,settings:c.get()})}),this.loading.fail(function(b,c){"redirect"===b&&c&&a.previewUrl(c),"logged out"===b&&(a.preview&&(a.preview.destroy(),delete a.preview),a.login().done(a.refresh)),"cheatin"===b&&a.cheatin()})},login:function(){var a,d,e,f=this;return this._login?this._login:(a=b.Deferred(),this._login=a.promise(),d=new c.Messenger({channel:"login",url:c.settings.url.login}),e=b('<iframe src="'+c.settings.url.login+'" />').appendTo(this.container),d.targetWindow(e[0].contentWindow),d.bind("login",function(){e.remove(),d.destroy(),delete f._login,a.resolve()}),this._login)},cheatin:function(){b(document.body).empty().addClass("cheatin").append("<p>"+c.l10n.cheatin+"</p>")}}),c.controlConstructor={color:c.ColorControl,upload:c.UploadControl,image:c.ImageControl,header:c.HeaderControl},b(function(){if(c.settings=window._wpCustomizeSettings,c.l10n=window._wpCustomizeControlsL10n,c.settings){if(!b.support.postMessage||!b.support.cors&&c.settings.isCrossDomain)return window.location=c.settings.url.fallback;var a,d,e,f=b(document.body),g=f.children(".wp-full-overlay");b("#customize-controls").on("keydown",function(a){var c=13===a.which,d=b(a.target);c&&(d.is("input:not([type=button])")||d.is("select"))&&a.preventDefault()}),a=new c.Previewer({container:"#customize-preview",form:"#customize-controls",previewUrl:c.settings.url.preview,allowedUrls:c.settings.url.allowed,signature:"WP_CUSTOMIZER_SIGNATURE"},{nonce:c.settings.nonce,query:function(){return{wp_customize:"on",theme:c.settings.theme.stylesheet,customized:JSON.stringify(c.get()),nonce:this.nonce.preview}},save:function(){var a,d,e=this,g=b.extend(this.query(),{action:"customize_save",nonce:this.nonce.save}),h=c.state("processing");f.addClass("saving"),d=function(){var a=b.post(c.settings.url.ajax,g);c.trigger("save",a),a.always(function(){f.removeClass("saving")}),a.done(function(a){return"0"===a?(e.preview.iframe.hide(),void e.login().done(function(){e.save(),e.preview.iframe.show()})):"-1"===a?void e.cheatin():void c.trigger("saved")})},0===h()?d():(a=function(){0===h()&&(c.state.unbind("change",a),d())},c.state.bind("change",a))}}),a.bind("nonce",function(a){b.extend(this.nonce,a)}),b.each(c.settings.settings,function(b,d){c.create(b,b,d.value,{transport:d.transport,previewer:a})}),b.each(c.settings.controls,function(b,d){var e,f=c.controlConstructor[d.type]||c.Control;e=c.control.add(b,new f(b,{params:d,previewer:a}))}),a.previewUrl()?a.refresh():a.previewUrl(c.settings.url.home),function(){var a=new c.Values,d=a.create("saved"),e=a.create("activated"),f=a.create("processing");a.bind("change",function(){var a=b("#save"),f=b(".back");e()?d()?(a.val(c.l10n.saved).prop("disabled",!0),f.text(c.l10n.close)):(a.val(c.l10n.save).prop("disabled",!1),f.text(c.l10n.cancel)):(a.val(c.l10n.activate).prop("disabled",!1),f.text(c.l10n.cancel))}),d(!0),e(c.settings.theme.active),f(0),c.bind("change",function(){a("saved").set(!1)}),c.bind("saved",function(){a("saved").set(!0),a("activated").set(!0)}),e.bind(function(a){a&&c.trigger("activated")}),c.state=a}(),b("#save").click(function(b){a.save(),b.preventDefault()}).keydown(function(b){9!==b.which&&(13===b.which&&a.save(),b.preventDefault())}),b(".back").keydown(function(a){9!==a.which&&(13===a.which&&this.click(),a.preventDefault())}),b(".upload-dropzone a.upload").keydown(function(a){13===a.which&&this.click()}),b(".collapse-sidebar").on("click keydown",function(a){("keydown"!==a.type||13===a.which)&&(g.toggleClass("collapsed").toggleClass("expanded"),a.preventDefault())}),d=new c.Messenger({url:c.settings.url.parent,channel:"loader"}),d.bind("back",function(){b(".back").on("click.back",function(a){a.preventDefault(),d.send("close")})}),c.bind("saved",function(){d.send("saved")}),c.bind("activated",function(){d.targetWindow()?d.send("activated",c.settings.url.activated):c.settings.url.activated&&(window.location=c.settings.url.activated)}),d.send("ready"),b.each({background_image:{controls:["background_repeat","background_position_x","background_attachment"],callback:function(a){return!!a}},show_on_front:{controls:["page_on_front","page_for_posts"],callback:function(a){return"page"===a}},header_textcolor:{controls:["header_textcolor"],callback:function(a){return"blank"!==a}}},function(a,d){c(a,function(a){b.each(d.controls,function(b,e){c.control(e,function(b){var c=function(a){b.container.toggle(d.callback(a))};c(a.get()),a.bind(c)})})})}),c.control("display_header_text",function(a){var b="";a.elements[0].unsync(c("header_textcolor")),a.element=new c.Element(a.container.find("input")),a.element.set("blank"!==a.setting()),a.element.bind(function(d){d||(b=c("header_textcolor").get()),a.setting.set(d?b:"blank")}),a.setting.bind(function(b){a.element.set("blank"!==b)})}),c.trigger("ready"),e=b(".back"),e.focus(),setTimeout(function(){e.focus()},200)}})}(wp,jQuery);
\ No newline at end of file
+!function(a,b){var c=wp.customize;c.Setting=c.Value.extend({initialize:function(a,b,d){c.Value.prototype.initialize.call(this,b,d),this.id=a,this.transport=this.transport||"refresh",this.bind(this.preview)},preview:function(){switch(this.transport){case"refresh":return this.previewer.refresh();case"postMessage":return this.previewer.send("setting",[this.id,this()])}}}),c.Control=c.Class.extend({initialize:function(a,d){var e,f,g,h=this;this.params={},b.extend(this,d||{}),this.id=a,this.selector="#customize-control-"+a.replace(/\]/g,"").replace(/\[/g,"-"),this.container=b(this.selector),this.active=new c.Value(this.params.active),g=b.map(this.params.settings,function(a){return a}),c.apply(c,g.concat(function(){var a;h.settings={};for(a in h.params.settings)h.settings[a]=c(h.params.settings[a]);h.setting=h.settings["default"]||null,h.ready()})),h.elements=[],e=this.container.find("[data-customize-setting-link]"),f={},e.each(function(){var a,d=b(this);if(d.is(":radio")){if(a=d.prop("name"),f[a])return;f[a]=!0,d=e.filter('[name="'+a+'"]')}c(d.data("customizeSettingLink"),function(a){var b=new c.Element(d);h.elements.push(b),b.sync(a),b.set(a())})}),h.active.bind(function(a){h.toggle(a)}),h.toggle(h.active())},ready:function(){},toggle:function(a){a?this.container.slideDown():this.container.slideUp()},dropdownInit:function(){var a=this,b=this.container.find(".dropdown-status"),c=this.params,d=!1,e=function(a){"string"==typeof a&&c.statuses&&c.statuses[a]?b.html(c.statuses[a]).show():b.hide()};this.container.on("click keydown",".dropdown",function(b){("keydown"!==b.type||13===b.which)&&(b.preventDefault(),d||a.container.toggleClass("open"),a.container.hasClass("open")&&a.container.parent().parent().find("li.library-selected").focus(),d=!0,setTimeout(function(){d=!1},400))}),this.setting.bind(e),e(this.setting())}}),c.ColorControl=c.Control.extend({ready:function(){var a=this,b=this.container.find(".color-picker-hex");b.val(a.setting()).wpColorPicker({change:function(){a.setting.set(b.wpColorPicker("color"))},clear:function(){a.setting.set(!1)}})}}),c.UploadControl=c.Control.extend({ready:function(){var a=this;this.params.removed=this.params.removed||"",this.success=b.proxy(this.success,this),this.uploader=b.extend({container:this.container,browser:this.container.find(".upload"),dropzone:this.container.find(".upload-dropzone"),success:this.success,plupload:{},params:{}},this.uploader||{}),a.params.extensions&&(a.uploader.plupload.filters=[{title:c.l10n.allowedFiles,extensions:a.params.extensions}]),a.params.context&&(a.uploader.params["post_data[context]"]=this.params.context),c.settings.theme.stylesheet&&(a.uploader.params["post_data[theme]"]=c.settings.theme.stylesheet),this.uploader=new wp.Uploader(this.uploader),this.remover=this.container.find(".remove"),this.remover.on("click keydown",function(b){("keydown"!==b.type||13===b.which)&&(a.setting.set(a.params.removed),b.preventDefault())}),this.removerVisibility=b.proxy(this.removerVisibility,this),this.setting.bind(this.removerVisibility),this.removerVisibility(this.setting.get())},success:function(a){this.setting.set(a.get("url"))},removerVisibility:function(a){this.remover.toggle(a!=this.params.removed)}}),c.ImageControl=c.UploadControl.extend({ready:function(){var a,d=this;this.uploader={init:function(){var a,b;this.supports.dragdrop||(a=d.container.find(".upload-fallback"),b=a.children().detach(),this.browser.detach().empty().append(b),a.append(this.browser).show())}},c.UploadControl.prototype.ready.call(this),this.thumbnail=this.container.find(".preview-thumbnail img"),this.thumbnailSrc=b.proxy(this.thumbnailSrc,this),this.setting.bind(this.thumbnailSrc),this.library=this.container.find(".library"),this.tabs={},a=this.library.find(".library-content"),this.library.children("ul").children("li").each(function(){var c=b(this),e=c.data("customizeTab"),f=a.filter('[data-customize-tab="'+e+'"]');d.tabs[e]={both:c.add(f),link:c,panel:f}}),this.library.children("ul").on("click keydown","li",function(a){if("keydown"!==a.type||13===a.which){var c=b(this).data("customizeTab"),e=d.tabs[c];a.preventDefault(),e.link.hasClass("library-selected")||(d.selected.both.removeClass("library-selected"),d.selected=e,d.selected.both.addClass("library-selected"))}}),this.library.on("click keydown","a",function(a){if("keydown"!==a.type||13===a.which){var c=b(this).data("customizeImageValue");c&&(d.setting.set(c),a.preventDefault())}}),this.tabs.uploaded&&(this.tabs.uploaded.target=this.library.find(".uploaded-target"),this.tabs.uploaded.panel.find(".thumbnail").length||this.tabs.uploaded.both.addClass("hidden")),a.each(function(){var a=d.tabs[b(this).data("customizeTab")];return a.link.hasClass("hidden")?void 0:(d.selected=a,a.both.addClass("library-selected"),!1)}),this.dropdownInit()},success:function(a){c.UploadControl.prototype.success.call(this,a),this.tabs.uploaded&&this.tabs.uploaded.target.length&&(this.tabs.uploaded.both.removeClass("hidden"),a.element=b('<a href="#" class="thumbnail"></a>').data("customizeImageValue",a.get("url")).append('<img src="'+a.get("url")+'" />').appendTo(this.tabs.uploaded.target))},thumbnailSrc:function(a){/^(https?:)?\/\//.test(a)?this.thumbnail.prop("src",a).show():this.thumbnail.hide()}}),c.HeaderControl=c.Control.extend({ready:function(){this.btnRemove=b("#customize-control-header_image .actions .remove"),this.btnNew=b("#customize-control-header_image .actions .new"),_.bindAll(this,"openMedia","removeImage"),this.btnNew.on("click",this.openMedia),this.btnRemove.on("click",this.removeImage),c.HeaderTool.currentHeader=new c.HeaderTool.ImageModel,new c.HeaderTool.CurrentView({model:c.HeaderTool.currentHeader,el:".current .container"}),new c.HeaderTool.ChoiceListView({collection:c.HeaderTool.UploadsList=new c.HeaderTool.ChoiceList,el:".choices .uploaded .list"}),new c.HeaderTool.ChoiceListView({collection:c.HeaderTool.DefaultsList=new c.HeaderTool.DefaultsList,el:".choices .default .list"}),c.HeaderTool.combinedList=c.HeaderTool.CombinedList=new c.HeaderTool.CombinedList([c.HeaderTool.UploadsList,c.HeaderTool.DefaultsList])},calculateImageSelectOptions:function(a,b){var d,e,f,g,h,i,j=parseInt(_wpCustomizeHeader.data.width,10),k=parseInt(_wpCustomizeHeader.data.height,10),l=!!parseInt(_wpCustomizeHeader.data["flex-width"],10),m=!!parseInt(_wpCustomizeHeader.data["flex-height"],10);return h=a.get("width"),g=a.get("height"),this.headerImage=new c.HeaderTool.ImageModel,this.headerImage.set({themeWidth:j,themeHeight:k,themeFlexWidth:l,themeFlexHeight:m,imageWidth:h,imageHeight:g}),b.set("canSkipCrop",!this.headerImage.shouldBeCropped()),d=j/k,e=h,f=g,e/f>d?(k=f,j=k*d):(j=e,k=j/d),i={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:h,imageHeight:g,x1:0,y1:0,x2:j,y2:k},m===!1&&l===!1&&(i.aspectRatio=j+":"+k),m===!1&&(i.maxHeight=k),l===!1&&(i.maxWidth=j),i},openMedia:function(a){var b=_wpMediaViewsL10n;a.preventDefault(),this.frame=wp.media({button:{text:b.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:b.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,priority:20,suggestedWidth:_wpCustomizeHeader.data.width,suggestedHeight:_wpCustomizeHeader.data.height}),new wp.media.controller.Cropper({imgSelectOptions:this.calculateImageSelectOptions})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this),this.frame.open()},onSelect:function(){this.frame.setState("cropper")},onCropped:function(a){var b=a.post_content,c=a.attachment_id,d=a.width,e=a.height;this.setImageFromURL(b,c,d,e)},onSkippedCrop:function(a){var b=a.get("url"),c=a.get("width"),d=a.get("height");this.setImageFromURL(b,a.id,c,d)},setImageFromURL:function(a,b,d,e){var f,g={};g.url=a,g.thumbnail_url=a,g.timestamp=_.now(),b&&(g.attachment_id=b),d&&(g.width=d),e&&(g.height=e),f=new c.HeaderTool.ImageModel({header:g,choice:a.split("/").pop()}),c.HeaderTool.UploadsList.add(f),c.HeaderTool.currentHeader.set(f.toJSON()),f.save(),f.importImage()},removeImage:function(){c.HeaderTool.currentHeader.trigger("hide"),c.HeaderTool.CombinedList.trigger("control:removeImage")}}),c.defaultConstructor=c.Setting,c.control=new c.Values({defaultConstructor:c.Control}),c.PreviewFrame=c.Messenger.extend({sensitivity:2e3,initialize:function(a,d){var e=b.Deferred();e.promise(this),this.container=a.container,this.signature=a.signature,b.extend(a,{channel:c.PreviewFrame.uuid()}),c.Messenger.prototype.initialize.call(this,a,d),this.add("previewUrl",a.previewUrl),this.query=b.extend(a.query||{},{customize_messenger_channel:this.channel()}),this.run(e)},run:function(a){var d=this,e=!1,f=!1;this._ready&&this.unbind("ready",this._ready),this._ready=function(){f=!0,e&&a.resolveWith(d)},this.bind("ready",this._ready),this.bind("ready",function(a){a&&a.activeControls&&b.each(a.activeControls,function(a,b){var d=c.control(a);d&&d.active(b)})}),this.request=b.ajax(this.previewUrl(),{type:"POST",data:this.query,xhrFields:{withCredentials:!0}}),this.request.fail(function(){a.rejectWith(d,["request failure"])}),this.request.done(function(c){var g,h=d.request.getResponseHeader("Location"),i=d.signature;return h&&h!=d.previewUrl()?void a.rejectWith(d,["redirect",h]):"0"===c?void d.login(a):"-1"===c?void a.rejectWith(d,["cheatin"]):(g=c.lastIndexOf(i),-1===g||g<c.lastIndexOf("</html>")?void a.rejectWith(d,["unsigned"]):(c=c.slice(0,g)+c.slice(g+i.length),d.iframe=b("<iframe />").appendTo(d.container),d.iframe.one("load",function(){e=!0,f?a.resolveWith(d):setTimeout(function(){a.rejectWith(d,["ready timeout"])},d.sensitivity)}),d.targetWindow(d.iframe[0].contentWindow),d.targetWindow().document.open(),d.targetWindow().document.write(c),void d.targetWindow().document.close()))})},login:function(a){var d,e=this;return d=function(){a.rejectWith(e,["logged out"])},this.triedLogin?d():void b.get(c.settings.url.ajax,{action:"logged-in"}).fail(d).done(function(c){var f;"1"!==c&&d(),f=b('<iframe src="'+e.previewUrl()+'" />').hide(),f.appendTo(e.container),f.load(function(){e.triedLogin=!0,f.remove(),e.run(a)})})},destroy:function(){c.Messenger.prototype.destroy.call(this),this.request.abort(),this.iframe&&this.iframe.remove(),delete this.request,delete this.iframe,delete this.targetWindow}}),function(){var a=0;c.PreviewFrame.uuid=function(){return"preview-"+a++}}(),c.Previewer=c.Messenger.extend({refreshBuffer:250,initialize:function(a,d){var e=this,f=/^https?/;b.extend(this,d||{}),this.refresh=function(a){var b,c=a.refresh,d=function(){b=null,c.call(a)};return function(){if("number"!=typeof b){if(!a.loading)return d();a.abort()}clearTimeout(b),b=setTimeout(d,a.refreshBuffer)}}(this),this.container=c.ensure(a.container),this.allowedUrls=a.allowedUrls,this.signature=a.signature,a.url=window.location.href,c.Messenger.prototype.initialize.call(this,a),this.add("scheme",this.origin()).link(this.origin).setter(function(a){var b=a.match(f);return b?b[0]:""}),this.add("previewUrl",a.previewUrl).setter(function(a){var c;return/\/wp-admin(\/|$)/.test(a.replace(/[#?].*$/,""))?null:(b.each([a.replace(f,e.scheme()),a],function(a,d){return b.each(e.allowedUrls,function(a,b){var e;return b=b.replace(/\/+$/,""),e=d.replace(b,""),0===d.indexOf(b)&&/^([/#?]|$)/.test(e)?(c=d,!1):void 0}),c?!1:void 0}),c?c:null)}),this.previewUrl.bind(this.refresh),this.scroll=0,this.bind("scroll",function(a){this.scroll=a}),this.bind("url",this.previewUrl)},query:function(){},abort:function(){this.loading&&(this.loading.destroy(),delete this.loading)},refresh:function(){var a=this;this.abort(),this.loading=new c.PreviewFrame({url:this.url(),previewUrl:this.previewUrl(),query:this.query()||{},container:this.container,signature:this.signature}),this.loading.done(function(){this.bind("synced",function(){a.preview&&a.preview.destroy(),a.preview=this,delete a.loading,a.targetWindow(this.targetWindow()),a.channel(this.channel()),a.send("active")}),this.send("sync",{scroll:a.scroll,settings:c.get()})}),this.loading.fail(function(b,c){"redirect"===b&&c&&a.previewUrl(c),"logged out"===b&&(a.preview&&(a.preview.destroy(),delete a.preview),a.login().done(a.refresh)),"cheatin"===b&&a.cheatin()})},login:function(){var a,d,e,f=this;return this._login?this._login:(a=b.Deferred(),this._login=a.promise(),d=new c.Messenger({channel:"login",url:c.settings.url.login}),e=b('<iframe src="'+c.settings.url.login+'" />').appendTo(this.container),d.targetWindow(e[0].contentWindow),d.bind("login",function(){e.remove(),d.destroy(),delete f._login,a.resolve()}),this._login)},cheatin:function(){b(document.body).empty().addClass("cheatin").append("<p>"+c.l10n.cheatin+"</p>")}}),c.controlConstructor={color:c.ColorControl,upload:c.UploadControl,image:c.ImageControl,header:c.HeaderControl},b(function(){if(c.settings=window._wpCustomizeSettings,c.l10n=window._wpCustomizeControlsL10n,c.settings){if(!b.support.postMessage||!b.support.cors&&c.settings.isCrossDomain)return window.location=c.settings.url.fallback;var a,d,e=b(document.body),f=e.children(".wp-full-overlay"),g=b("#customize-info .theme-name.site-title"),h=b(".customize-controls-close"),i=b("#save");b("#customize-controls").on("keydown",function(a){var c=13===a.which,d=b(a.target);c&&(d.is("input:not([type=button])")||d.is("select"))&&a.preventDefault()}),c.previewer=new c.Previewer({container:"#customize-preview",form:"#customize-controls",previewUrl:c.settings.url.preview,allowedUrls:c.settings.url.allowed,signature:"WP_CUSTOMIZER_SIGNATURE"},{nonce:c.settings.nonce,query:function(){return{wp_customize:"on",theme:c.settings.theme.stylesheet,customized:JSON.stringify(c.get()),nonce:this.nonce.preview}},save:function(){var a,d,f=this,g=b.extend(this.query(),{action:"customize_save",nonce:this.nonce.save}),h=c.state("processing");e.addClass("saving"),d=function(){var a=b.post(c.settings.url.ajax,g);c.trigger("save",a),a.always(function(){e.removeClass("saving")}),a.done(function(a){return"0"===a?(f.preview.iframe.hide(),void f.login().done(function(){f.save(),f.preview.iframe.show()})):"-1"===a?void f.cheatin():void c.trigger("saved")})},0===h()?d():(a=function(){0===h()&&(c.state.unbind("change",a),d())},c.state.bind("change",a))}}),c.previewer.bind("nonce",function(a){b.extend(this.nonce,a)}),b.each(c.settings.settings,function(a,b){c.create(a,a,b.value,{transport:b.transport,previewer:c.previewer})}),b.each(c.settings.controls,function(a,b){var d,e=c.controlConstructor[b.type]||c.Control;d=c.control.add(a,new e(a,{params:b,previewer:c.previewer}))}),c.previewer.previewUrl()?c.previewer.refresh():c.previewer.previewUrl(c.settings.url.home),function(){var a=new c.Values,b=a.create("saved"),d=a.create("activated"),e=a.create("processing");a.bind("change",function(){d()?b()?(i.val(c.l10n.saved).prop("disabled",!0),h.find(".screen-reader-text").text(c.l10n.close)):(i.val(c.l10n.save).prop("disabled",!1),h.find(".screen-reader-text").text(c.l10n.cancel)):(i.val(c.l10n.activate).prop("disabled",!1),h.find(".screen-reader-text").text(c.l10n.cancel))}),b(!0),d(c.settings.theme.active),e(0),c.bind("change",function(){a("saved").set(!1)}),c.bind("saved",function(){a("saved").set(!0),a("activated").set(!0)}),d.bind(function(a){a&&c.trigger("activated")}),c.state=a}(),i.click(function(a){c.previewer.save(),a.preventDefault()}).keydown(function(a){9!==a.which&&(13===a.which&&c.previewer.save(),a.preventDefault())}),h.keydown(function(a){9!==a.which&&(13===a.which&&this.click(),a.preventDefault())}),b(".upload-dropzone a.upload").keydown(function(a){13===a.which&&this.click()}),b(".collapse-sidebar").on("click keydown",function(a){("keydown"!==a.type||13===a.which)&&(f.toggleClass("collapsed").toggleClass("expanded"),a.preventDefault())}),g.length&&b("#customize-control-blogname input").on("input",function(){g.text(this.value)}),a=new c.Messenger({url:c.settings.url.parent,channel:"loader"}),a.bind("back",function(){h.on("click.customize-controls-close",function(b){b.preventDefault(),a.send("close")})}),b(window).on("beforeunload",function(){return c.state("saved")()?void 0:c.l10n.saveAlert}),b.each(["saved","change"],function(b,d){c.bind(d,function(){a.send(d)})}),c.bind("activated",function(){a.targetWindow()?a.send("activated",c.settings.url.activated):c.settings.url.activated&&(window.location=c.settings.url.activated)}),a.send("ready"),b.each({background_image:{controls:["background_repeat","background_position_x","background_attachment"],callback:function(a){return!!a}},show_on_front:{controls:["page_on_front","page_for_posts"],callback:function(a){return"page"===a}},header_textcolor:{controls:["header_textcolor"],callback:function(a){return"blank"!==a}}},function(a,d){c(a,function(a){b.each(d.controls,function(b,e){c.control(e,function(b){var c=function(a){b.container.toggle(d.callback(a))};c(a.get()),a.bind(c)})})})}),c.control("display_header_text",function(a){var b="";a.elements[0].unsync(c("header_textcolor")),a.element=new c.Element(a.container.find("input")),a.element.set("blank"!==a.setting()),a.element.bind(function(d){d||(b=c("header_textcolor").get()),a.setting.set(d?b:"blank")}),a.setting.bind(function(b){a.element.set("blank"!==b)})}),c.trigger("ready"),d=h,d.focus(),setTimeout(function(){d.focus()},200)}})}(wp,jQuery);
\ No newline at end of file
index 47505dd34c98d385a0f3d7e7ea056e94d3cb8657..0a3909a5346a4279c6d8d547cd647ea46ed91118 100644 (file)
@@ -5,7 +5,7 @@
 
        // Set up our namespace...
        var api = wp.customize,
 
        // Set up our namespace...
        var api = wp.customize,
-               l10n, OldPreviewer;
+               l10n;
 
        api.Widgets = api.Widgets || {};
 
 
        api.Widgets = api.Widgets || {};
 
                        } );
 
                        // Close the panel if the URL in the preview changes
                        } );
 
                        // Close the panel if the URL in the preview changes
-                       api.Widgets.Previewer.bind( 'url', this.close );
+                       api.previewer.bind( 'url', this.close );
                },
 
                // Performs a search and handles selected widget
                },
 
                // Performs a search and handles selected widget
                                isEsc = ( event.which === 27 ),
                                isDown = ( event.which === 40 ),
                                isUp = ( event.which === 38 ),
                                isEsc = ( event.which === 27 ),
                                isDown = ( event.which === 40 ),
                                isUp = ( event.which === 38 ),
+                               isTab = ( event.which === 9 ),
+                               isShift = ( event.shiftKey ),
                                selected = null,
                                firstVisible = this.$el.find( '> .widget-tpl:visible:first' ),
                                lastVisible = this.$el.find( '> .widget-tpl:visible:last' ),
                                selected = null,
                                firstVisible = this.$el.find( '> .widget-tpl:visible:first' ),
                                lastVisible = this.$el.find( '> .widget-tpl:visible:last' ),
-                               isSearchFocused = $( event.target ).is( this.$search );
+                               isSearchFocused = $( event.target ).is( this.$search ),
+                               isLastWidgetFocused = $( event.target ).is( '.widget-tpl:visible:last' );
 
                        if ( isDown || isUp ) {
                                if ( isDown ) {
 
                        if ( isDown || isUp ) {
                                if ( isDown ) {
                        } else if ( isEsc ) {
                                this.close( { returnFocus: true } );
                        }
                        } else if ( isEsc ) {
                                this.close( { returnFocus: true } );
                        }
+
+                       if ( isTab && ( isShift && isSearchFocused || ! isShift && isLastWidgetFocused ) ) {
+                               this.currentSidebarControl.container.find( '.add-new-widget' ).focus();
+                               event.preventDefault();
+                       }
                }
        });
 
                }
        });
 
                         * Handle clicks for up/down/move on the reorder nav
                         */
                        $reorderNav = this.container.find( '.widget-reorder-nav' );
                         * Handle clicks for up/down/move on the reorder nav
                         */
                        $reorderNav = this.container.find( '.widget-reorder-nav' );
-                       $reorderNav.find( '.move-widget, .move-widget-down, .move-widget-up' ).on( 'click keypress', function( event ) {
+                       $reorderNav.find( '.move-widget, .move-widget-down, .move-widget-up' ).each( function() {
+                               $( this ).prepend( self.container.find( '.widget-title' ).text() + ': ' );
+                       } ).on( 'click keypress', function( event ) {
                                if ( event.type === 'keypress' && ( event.which !== 13 && event.which !== 32 ) ) {
                                        return;
                                }
                                if ( event.type === 'keypress' && ( event.which !== 13 && event.which !== 32 ) ) {
                                        return;
                                }
                                self.container.removeClass( 'previewer-loading' );
                        } );
 
                                self.container.removeClass( 'previewer-loading' );
                        } );
 
-                       api.Widgets.Previewer.bind( 'widget-updated', function( updatedWidgetId ) {
+                       api.previewer.bind( 'widget-updated', function( updatedWidgetId ) {
                                if ( updatedWidgetId === self.params.widget_id ) {
                                        self.container.removeClass( 'previewer-loading' );
                                }
                        } );
 
                                if ( updatedWidgetId === self.params.widget_id ) {
                                        self.container.removeClass( 'previewer-loading' );
                                }
                        } );
 
-                       // Update widget control to indicate whether it is currently rendered
-                       api.Widgets.Previewer.bind( 'rendered-widgets', function( renderedWidgets ) {
-                               var isRendered = !! renderedWidgets[self.params.widget_id];
-
-                               self.container.toggleClass( 'widget-rendered', isRendered );
-                       } );
-
                        formSyncHandler = api.Widgets.formSyncHandlers[ this.params.widget_id_base ];
                        if ( formSyncHandler ) {
                                $( document ).on( 'widget-synced', function( e, widget ) {
                        formSyncHandler = api.Widgets.formSyncHandlers[ this.params.widget_id_base ];
                        if ( formSyncHandler ) {
                                $( document ).on( 'widget-synced', function( e, widget ) {
                        }
                },
 
                        }
                },
 
+               /**
+                * Update widget control to indicate whether it is currently rendered.
+                *
+                * Overrides api.Control.toggle()
+                *
+                * @param {Boolean} active
+                */
+               toggle: function ( active ) {
+                       this.container.toggleClass( 'widget-rendered', active );
+               },
+
                /**
                 * Set up event handlers for widget removal
                 */
                /**
                 * Set up event handlers for widget removal
                 */
 
                                // Check if the user is logged out.
                                if ( '0' === r ) {
 
                                // Check if the user is logged out.
                                if ( '0' === r ) {
-                                       api.Widgets.Previewer.preview.iframe.hide();
-                                       api.Widgets.Previewer.login().done( function() {
+                                       api.previewer.preview.iframe.hide();
+                                       api.previewer.login().done( function() {
                                                self.updateWidget( args );
                                                self.updateWidget( args );
-                                               api.Widgets.Previewer.preview.iframe.show();
+                                               api.previewer.preview.iframe.show();
                                        } );
                                        return;
                                }
 
                                // Check for cheaters.
                                if ( '-1' === r ) {
                                        } );
                                        return;
                                }
 
                                // Check for cheaters.
                                if ( '-1' === r ) {
-                                       api.Widgets.Previewer.cheatin();
+                                       api.previewer.cheatin();
                                        return;
                                }
 
                                        return;
                                }
 
                        } );
 
                        // Update the model with whether or not the sidebar is rendered
                        } );
 
                        // Update the model with whether or not the sidebar is rendered
-                       api.Widgets.Previewer.bind( 'rendered-sidebars', function( renderedSidebars ) {
-                               var isRendered = !! renderedSidebars[self.params.sidebar_id];
-
-                               registeredSidebar.set( 'is_rendered', isRendered );
+                       self.active.bind( function ( active ) {
+                               registeredSidebar.set( 'is_rendered', active );
                        } );
                        } );
+               },
 
 
-                       // Show the sidebar section when it becomes visible
-                       registeredSidebar.on( 'change:is_rendered', function( ) {
-                               var sectionSelector = '#accordion-section-sidebar-widgets-' + this.get( 'id' ), $section;
+               /**
+                * Show the sidebar section when it becomes visible.
+                *
+                * Overrides api.Control.toggle()
+                *
+                * @param {Boolean} active
+                */
+               toggle: function ( active ) {
+                       var $section, sectionSelector;
 
 
-                               $section = $( sectionSelector );
-                               if ( this.get( 'is_rendered' ) ) {
-                                       $section.stop().slideDown( function() {
-                                               $( this ).css( 'height', 'auto' ); // so that the .accordion-section-content won't overflow
-                                       } );
+                       sectionSelector = '#accordion-section-sidebar-widgets-' + this.params.sidebar_id;
+                       $section = $( sectionSelector );
 
 
-                               } else {
-                                       // Make sure that hidden sections get closed first
-                                       if ( $section.hasClass( 'open' ) ) {
-                                               // it would be nice if accordionSwitch() in accordion.js was public
-                                               $section.find( '.accordion-section-title' ).trigger( 'click' );
-                                       }
+                       if ( active ) {
+                               $section.stop().slideDown( function() {
+                                       $( this ).css( 'height', 'auto' ); // so that the .accordion-section-content won't overflow
+                               } );
 
 
-                                       $section.stop().slideUp();
+                       } else {
+                               // Make sure that hidden sections get closed first
+                               if ( $section.hasClass( 'open' ) ) {
+                                       // it would be nice if accordionSwitch() in accordion.js was public
+                                       $section.find( '.accordion-section-title' ).trigger( 'click' );
                                }
                                }
-                       } );
+
+                               $section.stop().slideUp();
+                       }
                },
 
                /**
                },
 
                /**
                                _( this.getWidgetFormControls() ).each( function( formControl ) {
                                        formControl.collapseForm();
                                } );
                                _( this.getWidgetFormControls() ).each( function( formControl ) {
                                        formControl.collapseForm();
                                } );
+
+                               this.$sectionContent.find( '.first-widget .move-widget' ).focus();
+                               this.$sectionContent.find( '.add-new-widget' ).prop( 'tabIndex', -1 );
+                       } else {
+                               this.$sectionContent.find( '.add-new-widget' ).prop( 'tabIndex', 0 );
                        }
                },
 
                        }
                },
 
                sidebar_widgets: api.Widgets.SidebarControl
        });
 
                sidebar_widgets: api.Widgets.SidebarControl
        });
 
-       /**
-        * Capture the instance of the Previewer since it is private
-        */
-       OldPreviewer = api.Previewer;
-       api.Previewer = OldPreviewer.extend({
-               initialize: function( params, options ) {
-                       api.Widgets.Previewer = this;
-                       OldPreviewer.prototype.initialize.call( this, params, options );
-                       this.bind( 'refresh', this.refresh );
-               }
-       } );
-
        /**
         * Init Customizer for widgets.
         */
        /**
         * Init Customizer for widgets.
         */
                });
 
                // Highlight widget control
                });
 
                // Highlight widget control
-               api.Widgets.Previewer.bind( 'highlight-widget-control', api.Widgets.highlightWidgetFormControl );
+               api.previewer.bind( 'highlight-widget-control', api.Widgets.highlightWidgetFormControl );
 
                // Open and focus widget control
 
                // Open and focus widget control
-               api.Widgets.Previewer.bind( 'focus-widget-control', api.Widgets.focusWidgetFormControl );
+               api.previewer.bind( 'focus-widget-control', api.Widgets.focusWidgetFormControl );
        } );
 
        /**
        } );
 
        /**
index f282975676ed37a43d6511bfc189f2bce0746ab2..ea5e8a4ecbe014797369cd9fa849a6a868339f09 100644 (file)
@@ -1 +1 @@
-!function(a,b){function c(a){var b,c={number:null,id_base:null};return b=a.match(/^(.+)-(\d+)$/),b?(c.id_base=b[1],c.number=parseInt(b[2],10)):c.id_base=a,c}function d(a){var b,d=c(a);return b="widget_"+d.id_base,d.number&&(b+="["+d.number+"]"),b}if(a&&a.customize){var e,f,g=a.customize;g.Widgets=g.Widgets||{},g.Widgets.data=_wpCustomizeWidgetsSettings||{},e=g.Widgets.data.l10n,delete g.Widgets.data.l10n,g.Widgets.WidgetModel=Backbone.Model.extend({id:null,temp_id:null,classname:null,control_tpl:null,description:null,is_disabled:null,is_multi:null,multi_number:null,name:null,id_base:null,transport:"refresh",params:[],width:null,height:null,search_matched:!0}),g.Widgets.WidgetCollection=Backbone.Collection.extend({model:g.Widgets.WidgetModel,doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.each(function(a){a.set("search_matched",!0)}))},search:function(a){var b,c;a=a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),a=a.replace(/ /g,")(?=.*"),b=new RegExp("^(?=.*"+a+").+","i"),this.each(function(a){c=[a.get("name"),a.get("id"),a.get("description")].join(" "),a.set("search_matched",b.test(c))})}}),g.Widgets.availableWidgets=new g.Widgets.WidgetCollection(g.Widgets.data.availableWidgets),g.Widgets.SidebarModel=Backbone.Model.extend({after_title:null,after_widget:null,before_title:null,before_widget:null,"class":null,description:null,id:null,name:null,is_rendered:!1}),g.Widgets.SidebarCollection=Backbone.Collection.extend({model:g.Widgets.SidebarModel}),g.Widgets.registeredSidebars=new g.Widgets.SidebarCollection(g.Widgets.data.registeredSidebars),g.Widgets.AvailableWidgetsPanelView=a.Backbone.View.extend({el:"#available-widgets",events:{"input #widgets-search":"search","keyup #widgets-search":"search","change #widgets-search":"search","search #widgets-search":"search","focus .widget-tpl":"focus","click .widget-tpl":"_submit","keypress .widget-tpl":"_submit",keydown:"keyboardAccessible"},selected:null,currentSidebarControl:null,$search:null,initialize:function(){var a=this;this.$search=b("#widgets-search"),_.bindAll(this,"close"),this.listenTo(this.collection,"change",this.updateList),this.updateList(),b("#customize-controls").on("click keydown",function(c){var d=b(c.target).is(".add-new-widget, .add-new-widget *");b("body").hasClass("adding-widget")&&!d&&a.close()}),g.Widgets.Previewer.bind("url",this.close)},search:function(a){var b;this.collection.doSearch(a.target.value),this.selected&&!this.selected.is(":visible")&&(this.selected.removeClass("selected"),this.selected=null),this.selected&&!a.target.value&&(this.selected.removeClass("selected"),this.selected=null),!this.selected&&a.target.value&&(b=this.$el.find("> .widget-tpl:visible:first"),b.length&&this.select(b))},updateList:function(){this.collection.each(function(a){var c=b("#widget-tpl-"+a.id);c.toggle(a.get("search_matched")&&!a.get("is_disabled")),a.get("is_disabled")&&c.is(this.selected)&&(this.selected=null)})},select:function(a){this.selected=b(a),this.selected.siblings(".widget-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(b(a.currentTarget))},_submit:function(a){("keypress"!==a.type||13===a.which||32===a.which)&&this.submit(b(a.currentTarget))},submit:function(a){var c,d;a||(a=this.selected),a&&this.currentSidebarControl&&(this.select(a),c=b(this.selected).data("widget-id"),d=this.collection.findWhere({id:c}),d&&(this.currentSidebarControl.addWidget(d.get("id_base")),this.close()))},open:function(a){this.currentSidebarControl=a,_(this.currentSidebarControl.getWidgetFormControls()).each(function(a){a.params.is_wide&&a.collapseForm()}),b("body").addClass("adding-widget"),this.$el.find(".selected").removeClass("selected"),this.collection.doSearch(""),this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentSidebarControl&&this.currentSidebarControl.container.find(".add-new-widget").focus(),this.currentSidebarControl=null,this.selected=null,b("body").removeClass("adding-widget"),this.$search.val("")},keyboardAccessible:function(a){var c=13===a.which,d=27===a.which,e=40===a.which,f=38===a.which,g=null,h=this.$el.find("> .widget-tpl:visible:first"),i=this.$el.find("> .widget-tpl:visible:last"),j=b(a.target).is(this.$search);return e||f?(e?j?g=h:this.selected&&0!==this.selected.nextAll(".widget-tpl:visible").length&&(g=this.selected.nextAll(".widget-tpl:visible:first")):f&&(j?g=i:this.selected&&0!==this.selected.prevAll(".widget-tpl:visible").length&&(g=this.selected.prevAll(".widget-tpl:visible:first"))),this.select(g),void(g?g.focus():this.$search.focus())):void((!c||this.$search.val())&&(c?this.submit():d&&this.close({returnFocus:!0})))}}),g.Widgets.formSyncHandlers={rss:function(a,c,d){var e=c.find(".widget-error:first"),f=b("<div>"+d+"</div>").find(".widget-error:first");e.length&&f.length?e.replaceWith(f):e.length?e.remove():f.length&&c.find(".widget-content:first").prepend(f)}},g.Widgets.WidgetControl=g.Control.extend({ready:function(){this._setupModel(),this._setupWideWidget(),this._setupControlToggle(),this._setupWidgetTitle(),this._setupReorderUI(),this._setupHighlightEffects(),this._setupUpdateUI(),this._setupRemoveUI()},_setupModel:function(){var a,b=this;g.Widgets.savedWidgetIds=g.Widgets.savedWidgetIds||[],a=function(){g.Widgets.savedWidgetIds[b.params.widget_id]=!0},g.bind("ready",a),g.bind("saved",a),this._updateCount=0,this.isWidgetUpdating=!1,this.liveUpdateMode=!0,this.setting.bind(function(a,c){_(c).isEqual(a)||b.isWidgetUpdating||b.updateWidget({instance:a})})},_setupWideWidget:function(){var a,c,d,e,f,h=this;this.params.is_wide&&(a=this.container.find(".widget-inside"),c=a.find("> .form"),d=b(".wp-full-overlay-sidebar-content:first"),this.container.addClass("wide-widget-control"),this.container.find(".widget-content:first").css({"max-width":this.params.width,"min-height":this.params.height}),f=function(){var d,e=h.container.offset().top,f=b(window).height(),g=c.outerHeight();a.css("max-height",f),d=Math.max(0,Math.min(Math.max(e,0),f-g)),a.css("top",d)},e=b("#customize-theme-controls"),this.container.on("expand",function(){f(),d.on("scroll",f),b(window).on("resize",f),e.on("expanded collapsed",f)}),this.container.on("collapsed",function(){d.off("scroll",f),b(window).off("resize",f),e.off("expanded collapsed",f)}),g.each(function(a){0===a.id.indexOf("sidebars_widgets[")&&a.bind(function(){h.container.hasClass("expanded")&&f()})}))},_setupControlToggle:function(){var a,b=this;this.container.find(".widget-top").on("click",function(a){a.preventDefault();var c=b.getSidebarWidgetsControl();c.isReordering||b.toggleForm()}),a=this.container.find(".widget-control-close"),a.on("click",function(a){a.preventDefault(),b.collapseForm(),b.container.find(".widget-top .widget-action:first").focus()})},_setupWidgetTitle:function(){var a,b=this;a=function(){var a=b.setting().title,c=b.container.find(".in-widget-title");c.text(a?": "+a:"")},this.setting.bind(a),a()},_setupReorderUI:function(){var a,c,d,e,f=this;a=function(a){a.siblings(".selected").removeClass("selected"),a.addClass("selected");var b=a.data("id")===f.params.sidebar_id;f.container.find(".move-widget-btn").prop("disabled",b)},this.container.find(".widget-title-action").after(b(g.Widgets.data.tpl.widgetReorderNav)),c=b(_.template(g.Widgets.data.tpl.moveWidgetArea,{sidebars:_(g.Widgets.registeredSidebars.toArray()).pluck("attributes")})),this.container.find(".widget-top").after(c),e=function(){var d,e=c.find("li");d=e.filter(function(){return b(this).data("id")===f.params.sidebar_id}),e.each(function(){var c,e,f=b(this);c=f.data("id"),e=g.Widgets.registeredSidebars.get(c),f.toggle(e.get("is_rendered")),f.hasClass("selected")&&!e.get("is_rendered")&&a(d)})},e(),g.Widgets.registeredSidebars.on("change:is_rendered",e),d=this.container.find(".widget-reorder-nav"),d.find(".move-widget, .move-widget-down, .move-widget-up").on("click keypress",function(a){if("keypress"!==a.type||13===a.which||32===a.which)if(b(this).focus(),b(this).is(".move-widget"))f.toggleWidgetMoveArea();else{var c=b(this).is(".move-widget-down"),d=b(this).is(".move-widget-up"),e=f.getWidgetSidebarPosition();if(d&&0===e||c&&e===f.getSidebarWidgetsControl().setting().length-1)return;d?f.moveUp():f.moveDown(),b(this).focus()}}),this.container.find(".widget-area-select").on("click keypress","li",function(c){("keypress"!==event.type||13===event.which||32===event.which)&&(c.preventDefault(),a(b(this)))}),this.container.find(".move-widget-btn").click(function(){f.getSidebarWidgetsControl().toggleReordering(!1);var a,b,c,d,e,h=f.params.sidebar_id,i=f.container.find(".widget-area-select li.selected").data("id");a=g("sidebars_widgets["+h+"]"),b=g("sidebars_widgets["+i+"]"),c=Array.prototype.slice.call(a()),d=Array.prototype.slice.call(b()),e=f.getWidgetSidebarPosition(),c.splice(e,1),d.push(f.params.widget_id),a(c),b(d),f.focus()})},_setupHighlightEffects:function(){var a=this;this.container.on("mouseenter click",function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)}),this.setting.bind(function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)})},_setupUpdateUI:function(){var a,c,d,f,h,i=this;a=this.container.find(".widget:first"),c=a.find(".widget-content:first"),d=this.container.find(".widget-control-save"),d.val(e.saveBtnLabel),d.attr("title",e.saveBtnTooltip),d.removeClass("button-primary").addClass("button-secondary"),d.on("click",function(a){a.preventDefault(),i.updateWidget({disable_form:!0})}),f=_.debounce(function(){i.updateWidget()},250),c.on("keydown","input",function(a){13===a.which&&(a.preventDefault(),i.updateWidget({ignoreActiveElement:!0}))}),c.on("change input propertychange",":input",function(a){i.liveUpdateMode&&("change"===a.type?i.updateWidget():this.checkValidity&&this.checkValidity()&&f())}),this.setting.previewer.channel.bind("synced",function(){i.container.removeClass("previewer-loading")}),g.Widgets.Previewer.bind("widget-updated",function(a){a===i.params.widget_id&&i.container.removeClass("previewer-loading")}),g.Widgets.Previewer.bind("rendered-widgets",function(a){var b=!!a[i.params.widget_id];i.container.toggleClass("widget-rendered",b)}),h=g.Widgets.formSyncHandlers[this.params.widget_id_base],h&&b(document).on("widget-synced",function(b,c){a.is(c)&&h.apply(document,arguments)})},_setupRemoveUI:function(){var a,b,c=this;a=this.container.find("a.widget-control-remove"),a.on("click",function(a){a.preventDefault();var b;b=c.container.next().is(".customize-control-widget_form")?c.container.next().find(".widget-action:first"):c.container.prev().is(".customize-control-widget_form")?c.container.prev().find(".widget-action:first"):c.container.next(".customize-control-sidebar_widgets").find(".add-new-widget:first"),c.container.slideUp(function(){var a,d,e=g.Widgets.getSidebarWidgetControlContainingWidget(c.params.widget_id);e&&(a=e.setting().slice(),d=_.indexOf(a,c.params.widget_id),-1!==d&&(a.splice(d,1),e.setting(a),b.focus()))})}),b=function(){a.text(e.removeBtnLabel),a.attr("title",e.removeBtnTooltip)},this.params.is_new?g.bind("saved",b):b()},_getInputs:function(a){return b(a).find(":input[name]")},_getInputsSignature:function(a){var c=_(a).map(function(a){var c,d=b(a);return c=d.is(":checkbox, :radio")?[d.attr("id"),d.attr("name"),d.prop("value")]:[d.attr("id"),d.attr("name")],c.join(",")});return c.join(";")},_getInputStatePropertyName:function(a){var c=b(a);return c.is(":radio, :checkbox")?"checked":"value"},getSidebarWidgetsControl:function(){var a,b;return a="sidebars_widgets["+this.params.sidebar_id+"]",(b=g.control(a))?b:void 0},updateWidget:function(c){var d,f,h,i,j,k,l,m,n,o,p,q=this;c=b.extend({instance:null,complete:null,ignoreActiveElement:!1},c),d=c.instance,f=c.complete,this._updateCount+=1,j=this._updateCount,h=this.container.find(".widget:first"),i=h.find(".widget-content:first"),i.find(".widget-error").remove(),this.container.addClass("widget-form-loading"),this.container.addClass("previewer-loading"),n=g.state("processing"),n(n()+1),this.liveUpdateMode||this.container.addClass("widget-form-disabled"),k={},k.action="update-widget",k.wp_customize="on",k.nonce=g.Widgets.data.nonce,k.theme=g.settings.theme.stylesheet,l=b.param(k),m=this._getInputs(i),m.each(function(){var a=b(this),c=q._getInputStatePropertyName(this);a.data("state"+j,a.prop(c))}),l+=d?"&"+b.param({sanitized_widget_setting:JSON.stringify(d)}):"&"+m.serialize(),l+="&"+i.find("~ :input").serialize(),o=b.post(a.ajax.settings.url,l),o.done(function(a){var d,k,l,n,o=!1;return"0"===a?(g.Widgets.Previewer.preview.iframe.hide(),void g.Widgets.Previewer.login().done(function(){q.updateWidget(c),g.Widgets.Previewer.preview.iframe.show()})):"-1"===a?void g.Widgets.Previewer.cheatin():void(a.success?(k=b("<div>"+a.data.form+"</div>"),l=q._getInputs(k),n=q._getInputsSignature(m)===q._getInputsSignature(l),n&&!q.liveUpdateMode&&(q.liveUpdateMode=!0,q.container.removeClass("widget-form-disabled"),q.container.find('input[name="savewidget"]').hide()),n&&q.liveUpdateMode?(m.each(function(a){var d,e,f,g=b(this),h=b(l[a]),i=q._getInputStatePropertyName(this);d=g.data("state"+j),e=h.prop(i),g.data("sanitized",e),f=d!==e&&(c.ignoreActiveElement||!g.is(document.activeElement)),f&&g.prop(i,e)}),b(document).trigger("widget-synced",[h,a.data.form])):q.liveUpdateMode?(q.liveUpdateMode=!1,q.container.find('input[name="savewidget"]').show(),o=!0):(i.html(a.data.form),q.container.removeClass("widget-form-disabled"),b(document).trigger("widget-updated",[h])),p=!o&&!_(q.setting()).isEqual(a.data.instance),p?(q.isWidgetUpdating=!0,q.setting(a.data.instance),q.isWidgetUpdating=!1):q.container.removeClass("previewer-loading"),f&&f.call(q,null,{noChange:!p,ajaxFinished:!0})):(d=e.error,a.data&&a.data.message&&(d=a.data.message),f?f.call(q,d):i.prepend('<p class="widget-error"><strong>'+d+"</strong></p>")))}),o.fail(function(a,b){f&&f.call(q,b)}),o.always(function(){q.container.removeClass("widget-form-loading"),m.each(function(){b(this).removeData("state"+j)}),n(n()-1)})},expandControlSection:function(){var a=this.container.closest(".accordion-section");a.hasClass("open")||a.find(".accordion-section-title:first").trigger("click")},expandForm:function(){this.toggleForm(!0)},collapseForm:function(){this.toggleForm(!1)},toggleForm:function(a){var b,c,d,e=this;b=this.container.find("div.widget:first"),c=b.find(".widget-inside:first"),"undefined"==typeof a&&(a=!c.is(":visible")),c.is(":visible")!==a&&(a?(g.control.each(function(a){e.params.type===a.params.type&&e!==a&&a.collapseForm()}),d=function(){e.container.removeClass("expanding"),e.container.addClass("expanded"),e.container.trigger("expanded")},e.params.is_wide?c.fadeIn("fast",d):c.slideDown("fast",d),e.container.trigger("expand"),e.container.addClass("expanding")):(d=function(){e.container.removeClass("collapsing"),e.container.removeClass("expanded"),e.container.trigger("collapsed")},e.container.trigger("collapse"),e.container.addClass("collapsing"),e.params.is_wide?c.fadeOut("fast",d):c.slideUp("fast",function(){b.css({width:"",margin:""}),d()})))},focus:function(){this.expandControlSection(),this.expandForm(),this.container.find(".widget-content :focusable:first").focus()},getWidgetSidebarPosition:function(){var a,b;return a=this.getSidebarWidgetsControl().setting(),b=_.indexOf(a,this.params.widget_id),-1!==b?b:void 0},moveUp:function(){this._moveWidgetByOne(-1)},moveDown:function(){this._moveWidgetByOne(1)},_moveWidgetByOne:function(a){var b,c,d,e;b=this.getWidgetSidebarPosition(),c=this.getSidebarWidgetsControl().setting,d=Array.prototype.slice.call(c()),e=d[b+a],d[b+a]=this.params.widget_id,d[b]=e,c(d)},toggleWidgetMoveArea:function(a){var c,d=this;c=this.container.find(".move-widget-area"),"undefined"==typeof a&&(a=!c.hasClass("active")),a&&(c.find(".selected").removeClass("selected"),c.find("li").filter(function(){return b(this).data("id")===d.params.sidebar_id}).addClass("selected"),this.container.find(".move-widget-btn").prop("disabled",!0)),c.toggleClass("active",a)},highlightSectionAndControl:function(){var a;a=this.container.is(":hidden")?this.container.closest(".control-section"):this.container,b(".highlighted").removeClass("highlighted"),a.addClass("highlighted"),setTimeout(function(){a.removeClass("highlighted")},500)}}),g.Widgets.SidebarControl=g.Control.extend({ready:function(){this.$controlSection=this.container.closest(".control-section"),this.$sectionContent=this.container.closest(".accordion-section-content"),this._setupModel(),this._setupSortable(),this._setupAddition(),this._applyCardinalOrderClassNames()},_setupModel:function(){var a=this,d=g.Widgets.registeredSidebars.get(this.params.sidebar_id);this.setting.bind(function(d,e){var f,h,i,j;j=_(e).difference(d),d=_(d).filter(function(a){var b=c(a);return!!g.Widgets.availableWidgets.findWhere({id_base:b.id_base})}),f=_(d).map(function(b){var c=g.Widgets.getWidgetFormControlForWidget(b);return c||(c=a.addWidget(b)),c}),f.sort(function(a,b){var c=_.indexOf(d,a.params.widget_id),e=_.indexOf(d,b.params.widget_id);return c===e?0:e>c?-1:1}),i=_(f).map(function(a){return a.container[0]}),h=a.$sectionContent.find(".customize-control-sidebar_widgets"),h.before(i),a._applyCardinalOrderClassNames(),_(f).each(function(b){b.params.sidebar_id=a.params.sidebar_id}),_(j).each(function(d){setTimeout(function(){var e,f,h,i,j,k=!1;g.each(function(b){if(b.id!==a.setting.id&&0===b.id.indexOf("sidebars_widgets[")&&"sidebars_widgets[wp_inactive_widgets]"!==b.id){var c,e=b();c=_.indexOf(e,d),-1!==c&&(k=!0)}}),k||(e=g.Widgets.getWidgetFormControlForWidget(d),f=e&&b.contains(document,e.container[0])&&!b.contains(a.$sectionContent[0],e.container[0]),e&&!f&&(g.control.remove(e.id),e.container.remove()),g.Widgets.savedWidgetIds[d]&&(h=g.value("sidebars_widgets[wp_inactive_widgets]")().slice(),h.push(d),g.value("sidebars_widgets[wp_inactive_widgets]")(_(h).unique())),i=c(d).id_base,j=g.Widgets.availableWidgets.findWhere({id_base:i}),j&&!j.get("is_multi")&&j.set("is_disabled",!1))})})}),g.Widgets.Previewer.bind("rendered-sidebars",function(b){var c=!!b[a.params.sidebar_id];d.set("is_rendered",c)}),d.on("change:is_rendered",function(){var a,c="#accordion-section-sidebar-widgets-"+this.get("id");a=b(c),this.get("is_rendered")?a.stop().slideDown(function(){b(this).css("height","auto")}):(a.hasClass("open")&&a.find(".accordion-section-title").trigger("click"),a.stop().slideUp())})},_setupSortable:function(){var a=this;this.isReordering=!1,this.$sectionContent.sortable({items:"> .customize-control-widget_form",handle:".widget-top",axis:"y",connectWith:".accordion-section-content:has(.customize-control-sidebar_widgets)",update:function(){var c,d=a.$sectionContent.sortable("toArray");c=b.map(d,function(a){return b("#"+a).find(":input[name=widget-id]").val()}),a.setting(c)}}),this.$controlSection.find(".accordion-section-title").droppable({accept:".customize-control-widget_form",over:function(){a.$controlSection.hasClass("open")||(a.$controlSection.addClass("open"),a.$sectionContent.toggle(!1).slideToggle(150,function(){a.$sectionContent.sortable("refreshPositions")}))}}),this.container.find(".reorder-toggle").on("click keydown",function(b){("keydown"!==b.type||13===b.which||32===b.which)&&a.toggleReordering(!a.isReordering)})},_setupAddition:function(){var a=this;this.container.find(".add-new-widget").on("click keydown",function(c){("keydown"!==c.type||13===c.which||32===c.which)&&(a.$sectionContent.hasClass("reordering")||(b("body").hasClass("adding-widget")?g.Widgets.availableWidgetsPanel.close():g.Widgets.availableWidgetsPanel.open(a)))})},_applyCardinalOrderClassNames:function(){this.$sectionContent.find(".customize-control-widget_form").removeClass("first-widget").removeClass("last-widget").find(".move-widget-down, .move-widget-up").prop("tabIndex",0),this.$sectionContent.find(".customize-control-widget_form:first").addClass("first-widget").find(".move-widget-up").prop("tabIndex",-1),this.$sectionContent.find(".customize-control-widget_form:last").addClass("last-widget").find(".move-widget-down").prop("tabIndex",-1)},toggleReordering:function(a){a=Boolean(a),a!==this.$sectionContent.hasClass("reordering")&&(this.isReordering=a,this.$sectionContent.toggleClass("reordering",a),a&&_(this.getWidgetFormControls()).each(function(a){a.collapseForm()}))},getWidgetFormControls:function(){var a;return a=_(this.setting()).map(function(a){var b=d(a),c=g.control(b);if(c)return c})},addWidget:function(a){var d,e,f,h,i,j,k,l,m,n=this,o="widget_form",p=c(a),q=p.number,r=p.id_base,s=g.Widgets.availableWidgets.findWhere({id_base:r});return s?q&&!s.get("is_multi")?!1:(s.get("is_multi")&&!q&&(s.set("multi_number",s.get("multi_number")+1),q=s.get("multi_number")),d=b.trim(b("#widget-tpl-"+s.get("id")).html()),s.get("is_multi")?d=d.replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,q)}):s.set("is_disabled",!0),e=b(d),f=b("<li/>").addClass("customize-control").addClass("customize-control-"+o).append(e),f.find("> .widget-icon").remove(),s.get("is_multi")&&(f.find('input[name="widget_number"]').val(q),f.find('input[name="multi_number"]').val(q)),a=f.find('[name="widget-id"]').val(),f.hide(),i="widget_"+s.get("id_base"),s.get("is_multi")&&(i+="["+q+"]"),f.attr("id","customize-control-"+i.replace(/\]/g,"").replace(/\[/g,"-")),this.container.after(f),j=g.has(i),j||(m={transport:"refresh",previewer:this.setting.previewer},g.create(i,i,{},m)),h=g.controlConstructor[o],k=new h(i,{params:{settings:{"default":i},sidebar_id:n.params.sidebar_id,widget_id:a,widget_id_base:s.get("id_base"),type:o,is_new:!j,width:s.get("width"),height:s.get("height"),is_wide:s.get("is_wide")},previewer:n.setting.previewer}),g.control.add(i,k),g.each(function(b){if(b.id!==n.setting.id&&0===b.id.indexOf("sidebars_widgets[")){var c=b().slice(),d=_.indexOf(c,a);-1!==d&&(c.splice(d),b(c))}}),l=this.setting().slice(),-1===_.indexOf(l,a)&&(l.push(a),this.setting(l)),f.slideDown(function(){j?(k.expandForm(),k.updateWidget({instance:k.setting(),complete:function(a){if(a)throw a;k.focus()}})):k.focus()}),b(document).trigger("widget-added",[e]),k):!1}}),b.extend(g.controlConstructor,{widget_form:g.Widgets.WidgetControl,sidebar_widgets:g.Widgets.SidebarControl}),f=g.Previewer,g.Previewer=f.extend({initialize:function(a,b){g.Widgets.Previewer=this,f.prototype.initialize.call(this,a,b),this.bind("refresh",this.refresh)}}),g.bind("ready",function(){g.Widgets.availableWidgetsPanel=new g.Widgets.AvailableWidgetsPanelView({collection:g.Widgets.availableWidgets}),g.Widgets.Previewer.bind("highlight-widget-control",g.Widgets.highlightWidgetFormControl),g.Widgets.Previewer.bind("focus-widget-control",g.Widgets.focusWidgetFormControl)}),g.Widgets.highlightWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.highlightSectionAndControl()},g.Widgets.focusWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.focus()},g.Widgets.getSidebarWidgetControlContainingWidget=function(a){var b=null;return g.control.each(function(c){"sidebar_widgets"===c.params.type&&-1!==_.indexOf(c.setting(),a)&&(b=c)}),b},g.Widgets.getWidgetFormControlForWidget=function(a){var b=null;return g.control.each(function(c){"widget_form"===c.params.type&&c.params.widget_id===a&&(b=c)}),b}}}(window.wp,jQuery);
\ No newline at end of file
+!function(a,b){function c(a){var b,c={number:null,id_base:null};return b=a.match(/^(.+)-(\d+)$/),b?(c.id_base=b[1],c.number=parseInt(b[2],10)):c.id_base=a,c}function d(a){var b,d=c(a);return b="widget_"+d.id_base,d.number&&(b+="["+d.number+"]"),b}if(a&&a.customize){var e,f=a.customize;f.Widgets=f.Widgets||{},f.Widgets.data=_wpCustomizeWidgetsSettings||{},e=f.Widgets.data.l10n,delete f.Widgets.data.l10n,f.Widgets.WidgetModel=Backbone.Model.extend({id:null,temp_id:null,classname:null,control_tpl:null,description:null,is_disabled:null,is_multi:null,multi_number:null,name:null,id_base:null,transport:"refresh",params:[],width:null,height:null,search_matched:!0}),f.Widgets.WidgetCollection=Backbone.Collection.extend({model:f.Widgets.WidgetModel,doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.each(function(a){a.set("search_matched",!0)}))},search:function(a){var b,c;a=a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),a=a.replace(/ /g,")(?=.*"),b=new RegExp("^(?=.*"+a+").+","i"),this.each(function(a){c=[a.get("name"),a.get("id"),a.get("description")].join(" "),a.set("search_matched",b.test(c))})}}),f.Widgets.availableWidgets=new f.Widgets.WidgetCollection(f.Widgets.data.availableWidgets),f.Widgets.SidebarModel=Backbone.Model.extend({after_title:null,after_widget:null,before_title:null,before_widget:null,"class":null,description:null,id:null,name:null,is_rendered:!1}),f.Widgets.SidebarCollection=Backbone.Collection.extend({model:f.Widgets.SidebarModel}),f.Widgets.registeredSidebars=new f.Widgets.SidebarCollection(f.Widgets.data.registeredSidebars),f.Widgets.AvailableWidgetsPanelView=a.Backbone.View.extend({el:"#available-widgets",events:{"input #widgets-search":"search","keyup #widgets-search":"search","change #widgets-search":"search","search #widgets-search":"search","focus .widget-tpl":"focus","click .widget-tpl":"_submit","keypress .widget-tpl":"_submit",keydown:"keyboardAccessible"},selected:null,currentSidebarControl:null,$search:null,initialize:function(){var a=this;this.$search=b("#widgets-search"),_.bindAll(this,"close"),this.listenTo(this.collection,"change",this.updateList),this.updateList(),b("#customize-controls").on("click keydown",function(c){var d=b(c.target).is(".add-new-widget, .add-new-widget *");b("body").hasClass("adding-widget")&&!d&&a.close()}),f.previewer.bind("url",this.close)},search:function(a){var b;this.collection.doSearch(a.target.value),this.selected&&!this.selected.is(":visible")&&(this.selected.removeClass("selected"),this.selected=null),this.selected&&!a.target.value&&(this.selected.removeClass("selected"),this.selected=null),!this.selected&&a.target.value&&(b=this.$el.find("> .widget-tpl:visible:first"),b.length&&this.select(b))},updateList:function(){this.collection.each(function(a){var c=b("#widget-tpl-"+a.id);c.toggle(a.get("search_matched")&&!a.get("is_disabled")),a.get("is_disabled")&&c.is(this.selected)&&(this.selected=null)})},select:function(a){this.selected=b(a),this.selected.siblings(".widget-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(b(a.currentTarget))},_submit:function(a){("keypress"!==a.type||13===a.which||32===a.which)&&this.submit(b(a.currentTarget))},submit:function(a){var c,d;a||(a=this.selected),a&&this.currentSidebarControl&&(this.select(a),c=b(this.selected).data("widget-id"),d=this.collection.findWhere({id:c}),d&&(this.currentSidebarControl.addWidget(d.get("id_base")),this.close()))},open:function(a){this.currentSidebarControl=a,_(this.currentSidebarControl.getWidgetFormControls()).each(function(a){a.params.is_wide&&a.collapseForm()}),b("body").addClass("adding-widget"),this.$el.find(".selected").removeClass("selected"),this.collection.doSearch(""),this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentSidebarControl&&this.currentSidebarControl.container.find(".add-new-widget").focus(),this.currentSidebarControl=null,this.selected=null,b("body").removeClass("adding-widget"),this.$search.val("")},keyboardAccessible:function(a){var c=13===a.which,d=27===a.which,e=40===a.which,f=38===a.which,g=9===a.which,h=a.shiftKey,i=null,j=this.$el.find("> .widget-tpl:visible:first"),k=this.$el.find("> .widget-tpl:visible:last"),l=b(a.target).is(this.$search),m=b(a.target).is(".widget-tpl:visible:last");return e||f?(e?l?i=j:this.selected&&0!==this.selected.nextAll(".widget-tpl:visible").length&&(i=this.selected.nextAll(".widget-tpl:visible:first")):f&&(l?i=k:this.selected&&0!==this.selected.prevAll(".widget-tpl:visible").length&&(i=this.selected.prevAll(".widget-tpl:visible:first"))),this.select(i),void(i?i.focus():this.$search.focus())):void((!c||this.$search.val())&&(c?this.submit():d&&this.close({returnFocus:!0}),g&&(h&&l||!h&&m)&&(this.currentSidebarControl.container.find(".add-new-widget").focus(),a.preventDefault())))}}),f.Widgets.formSyncHandlers={rss:function(a,c,d){var e=c.find(".widget-error:first"),f=b("<div>"+d+"</div>").find(".widget-error:first");e.length&&f.length?e.replaceWith(f):e.length?e.remove():f.length&&c.find(".widget-content:first").prepend(f)}},f.Widgets.WidgetControl=f.Control.extend({ready:function(){this._setupModel(),this._setupWideWidget(),this._setupControlToggle(),this._setupWidgetTitle(),this._setupReorderUI(),this._setupHighlightEffects(),this._setupUpdateUI(),this._setupRemoveUI()},_setupModel:function(){var a,b=this;f.Widgets.savedWidgetIds=f.Widgets.savedWidgetIds||[],a=function(){f.Widgets.savedWidgetIds[b.params.widget_id]=!0},f.bind("ready",a),f.bind("saved",a),this._updateCount=0,this.isWidgetUpdating=!1,this.liveUpdateMode=!0,this.setting.bind(function(a,c){_(c).isEqual(a)||b.isWidgetUpdating||b.updateWidget({instance:a})})},_setupWideWidget:function(){var a,c,d,e,g,h=this;this.params.is_wide&&(a=this.container.find(".widget-inside"),c=a.find("> .form"),d=b(".wp-full-overlay-sidebar-content:first"),this.container.addClass("wide-widget-control"),this.container.find(".widget-content:first").css({"max-width":this.params.width,"min-height":this.params.height}),g=function(){var d,e=h.container.offset().top,f=b(window).height(),g=c.outerHeight();a.css("max-height",f),d=Math.max(0,Math.min(Math.max(e,0),f-g)),a.css("top",d)},e=b("#customize-theme-controls"),this.container.on("expand",function(){g(),d.on("scroll",g),b(window).on("resize",g),e.on("expanded collapsed",g)}),this.container.on("collapsed",function(){d.off("scroll",g),b(window).off("resize",g),e.off("expanded collapsed",g)}),f.each(function(a){0===a.id.indexOf("sidebars_widgets[")&&a.bind(function(){h.container.hasClass("expanded")&&g()})}))},_setupControlToggle:function(){var a,b=this;this.container.find(".widget-top").on("click",function(a){a.preventDefault();var c=b.getSidebarWidgetsControl();c.isReordering||b.toggleForm()}),a=this.container.find(".widget-control-close"),a.on("click",function(a){a.preventDefault(),b.collapseForm(),b.container.find(".widget-top .widget-action:first").focus()})},_setupWidgetTitle:function(){var a,b=this;a=function(){var a=b.setting().title,c=b.container.find(".in-widget-title");c.text(a?": "+a:"")},this.setting.bind(a),a()},_setupReorderUI:function(){var a,c,d,e,g=this;a=function(a){a.siblings(".selected").removeClass("selected"),a.addClass("selected");var b=a.data("id")===g.params.sidebar_id;g.container.find(".move-widget-btn").prop("disabled",b)},this.container.find(".widget-title-action").after(b(f.Widgets.data.tpl.widgetReorderNav)),c=b(_.template(f.Widgets.data.tpl.moveWidgetArea,{sidebars:_(f.Widgets.registeredSidebars.toArray()).pluck("attributes")})),this.container.find(".widget-top").after(c),e=function(){var d,e=c.find("li");d=e.filter(function(){return b(this).data("id")===g.params.sidebar_id}),e.each(function(){var c,e,g=b(this);c=g.data("id"),e=f.Widgets.registeredSidebars.get(c),g.toggle(e.get("is_rendered")),g.hasClass("selected")&&!e.get("is_rendered")&&a(d)})},e(),f.Widgets.registeredSidebars.on("change:is_rendered",e),d=this.container.find(".widget-reorder-nav"),d.find(".move-widget, .move-widget-down, .move-widget-up").each(function(){b(this).prepend(g.container.find(".widget-title").text()+": ")}).on("click keypress",function(a){if("keypress"!==a.type||13===a.which||32===a.which)if(b(this).focus(),b(this).is(".move-widget"))g.toggleWidgetMoveArea();else{var c=b(this).is(".move-widget-down"),d=b(this).is(".move-widget-up"),e=g.getWidgetSidebarPosition();if(d&&0===e||c&&e===g.getSidebarWidgetsControl().setting().length-1)return;d?g.moveUp():g.moveDown(),b(this).focus()}}),this.container.find(".widget-area-select").on("click keypress","li",function(c){("keypress"!==event.type||13===event.which||32===event.which)&&(c.preventDefault(),a(b(this)))}),this.container.find(".move-widget-btn").click(function(){g.getSidebarWidgetsControl().toggleReordering(!1);var a,b,c,d,e,h=g.params.sidebar_id,i=g.container.find(".widget-area-select li.selected").data("id");a=f("sidebars_widgets["+h+"]"),b=f("sidebars_widgets["+i+"]"),c=Array.prototype.slice.call(a()),d=Array.prototype.slice.call(b()),e=g.getWidgetSidebarPosition(),c.splice(e,1),d.push(g.params.widget_id),a(c),b(d),g.focus()})},_setupHighlightEffects:function(){var a=this;this.container.on("mouseenter click",function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)}),this.setting.bind(function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)})},_setupUpdateUI:function(){var a,c,d,g,h,i=this;a=this.container.find(".widget:first"),c=a.find(".widget-content:first"),d=this.container.find(".widget-control-save"),d.val(e.saveBtnLabel),d.attr("title",e.saveBtnTooltip),d.removeClass("button-primary").addClass("button-secondary"),d.on("click",function(a){a.preventDefault(),i.updateWidget({disable_form:!0})}),g=_.debounce(function(){i.updateWidget()},250),c.on("keydown","input",function(a){13===a.which&&(a.preventDefault(),i.updateWidget({ignoreActiveElement:!0}))}),c.on("change input propertychange",":input",function(a){i.liveUpdateMode&&("change"===a.type?i.updateWidget():this.checkValidity&&this.checkValidity()&&g())}),this.setting.previewer.channel.bind("synced",function(){i.container.removeClass("previewer-loading")}),f.previewer.bind("widget-updated",function(a){a===i.params.widget_id&&i.container.removeClass("previewer-loading")}),h=f.Widgets.formSyncHandlers[this.params.widget_id_base],h&&b(document).on("widget-synced",function(b,c){a.is(c)&&h.apply(document,arguments)})},toggle:function(a){this.container.toggleClass("widget-rendered",a)},_setupRemoveUI:function(){var a,b,c=this;a=this.container.find("a.widget-control-remove"),a.on("click",function(a){a.preventDefault();var b;b=c.container.next().is(".customize-control-widget_form")?c.container.next().find(".widget-action:first"):c.container.prev().is(".customize-control-widget_form")?c.container.prev().find(".widget-action:first"):c.container.next(".customize-control-sidebar_widgets").find(".add-new-widget:first"),c.container.slideUp(function(){var a,d,e=f.Widgets.getSidebarWidgetControlContainingWidget(c.params.widget_id);e&&(a=e.setting().slice(),d=_.indexOf(a,c.params.widget_id),-1!==d&&(a.splice(d,1),e.setting(a),b.focus()))})}),b=function(){a.text(e.removeBtnLabel),a.attr("title",e.removeBtnTooltip)},this.params.is_new?f.bind("saved",b):b()},_getInputs:function(a){return b(a).find(":input[name]")},_getInputsSignature:function(a){var c=_(a).map(function(a){var c,d=b(a);return c=d.is(":checkbox, :radio")?[d.attr("id"),d.attr("name"),d.prop("value")]:[d.attr("id"),d.attr("name")],c.join(",")});return c.join(";")},_getInputStatePropertyName:function(a){var c=b(a);return c.is(":radio, :checkbox")?"checked":"value"},getSidebarWidgetsControl:function(){var a,b;return a="sidebars_widgets["+this.params.sidebar_id+"]",(b=f.control(a))?b:void 0},updateWidget:function(c){var d,g,h,i,j,k,l,m,n,o,p,q=this;c=b.extend({instance:null,complete:null,ignoreActiveElement:!1},c),d=c.instance,g=c.complete,this._updateCount+=1,j=this._updateCount,h=this.container.find(".widget:first"),i=h.find(".widget-content:first"),i.find(".widget-error").remove(),this.container.addClass("widget-form-loading"),this.container.addClass("previewer-loading"),n=f.state("processing"),n(n()+1),this.liveUpdateMode||this.container.addClass("widget-form-disabled"),k={},k.action="update-widget",k.wp_customize="on",k.nonce=f.Widgets.data.nonce,k.theme=f.settings.theme.stylesheet,l=b.param(k),m=this._getInputs(i),m.each(function(){var a=b(this),c=q._getInputStatePropertyName(this);a.data("state"+j,a.prop(c))}),l+=d?"&"+b.param({sanitized_widget_setting:JSON.stringify(d)}):"&"+m.serialize(),l+="&"+i.find("~ :input").serialize(),o=b.post(a.ajax.settings.url,l),o.done(function(a){var d,k,l,n,o=!1;return"0"===a?(f.previewer.preview.iframe.hide(),void f.previewer.login().done(function(){q.updateWidget(c),f.previewer.preview.iframe.show()})):"-1"===a?void f.previewer.cheatin():void(a.success?(k=b("<div>"+a.data.form+"</div>"),l=q._getInputs(k),n=q._getInputsSignature(m)===q._getInputsSignature(l),n&&!q.liveUpdateMode&&(q.liveUpdateMode=!0,q.container.removeClass("widget-form-disabled"),q.container.find('input[name="savewidget"]').hide()),n&&q.liveUpdateMode?(m.each(function(a){var d,e,f,g=b(this),h=b(l[a]),i=q._getInputStatePropertyName(this);d=g.data("state"+j),e=h.prop(i),g.data("sanitized",e),f=d!==e&&(c.ignoreActiveElement||!g.is(document.activeElement)),f&&g.prop(i,e)}),b(document).trigger("widget-synced",[h,a.data.form])):q.liveUpdateMode?(q.liveUpdateMode=!1,q.container.find('input[name="savewidget"]').show(),o=!0):(i.html(a.data.form),q.container.removeClass("widget-form-disabled"),b(document).trigger("widget-updated",[h])),p=!o&&!_(q.setting()).isEqual(a.data.instance),p?(q.isWidgetUpdating=!0,q.setting(a.data.instance),q.isWidgetUpdating=!1):q.container.removeClass("previewer-loading"),g&&g.call(q,null,{noChange:!p,ajaxFinished:!0})):(d=e.error,a.data&&a.data.message&&(d=a.data.message),g?g.call(q,d):i.prepend('<p class="widget-error"><strong>'+d+"</strong></p>")))}),o.fail(function(a,b){g&&g.call(q,b)}),o.always(function(){q.container.removeClass("widget-form-loading"),m.each(function(){b(this).removeData("state"+j)}),n(n()-1)})},expandControlSection:function(){var a=this.container.closest(".accordion-section");a.hasClass("open")||a.find(".accordion-section-title:first").trigger("click")},expandForm:function(){this.toggleForm(!0)},collapseForm:function(){this.toggleForm(!1)},toggleForm:function(a){var b,c,d,e=this;b=this.container.find("div.widget:first"),c=b.find(".widget-inside:first"),"undefined"==typeof a&&(a=!c.is(":visible")),c.is(":visible")!==a&&(a?(f.control.each(function(a){e.params.type===a.params.type&&e!==a&&a.collapseForm()}),d=function(){e.container.removeClass("expanding"),e.container.addClass("expanded"),e.container.trigger("expanded")},e.params.is_wide?c.fadeIn("fast",d):c.slideDown("fast",d),e.container.trigger("expand"),e.container.addClass("expanding")):(d=function(){e.container.removeClass("collapsing"),e.container.removeClass("expanded"),e.container.trigger("collapsed")},e.container.trigger("collapse"),e.container.addClass("collapsing"),e.params.is_wide?c.fadeOut("fast",d):c.slideUp("fast",function(){b.css({width:"",margin:""}),d()})))},focus:function(){this.expandControlSection(),this.expandForm(),this.container.find(".widget-content :focusable:first").focus()},getWidgetSidebarPosition:function(){var a,b;return a=this.getSidebarWidgetsControl().setting(),b=_.indexOf(a,this.params.widget_id),-1!==b?b:void 0},moveUp:function(){this._moveWidgetByOne(-1)},moveDown:function(){this._moveWidgetByOne(1)},_moveWidgetByOne:function(a){var b,c,d,e;b=this.getWidgetSidebarPosition(),c=this.getSidebarWidgetsControl().setting,d=Array.prototype.slice.call(c()),e=d[b+a],d[b+a]=this.params.widget_id,d[b]=e,c(d)},toggleWidgetMoveArea:function(a){var c,d=this;c=this.container.find(".move-widget-area"),"undefined"==typeof a&&(a=!c.hasClass("active")),a&&(c.find(".selected").removeClass("selected"),c.find("li").filter(function(){return b(this).data("id")===d.params.sidebar_id}).addClass("selected"),this.container.find(".move-widget-btn").prop("disabled",!0)),c.toggleClass("active",a)},highlightSectionAndControl:function(){var a;a=this.container.is(":hidden")?this.container.closest(".control-section"):this.container,b(".highlighted").removeClass("highlighted"),a.addClass("highlighted"),setTimeout(function(){a.removeClass("highlighted")},500)}}),f.Widgets.SidebarControl=f.Control.extend({ready:function(){this.$controlSection=this.container.closest(".control-section"),this.$sectionContent=this.container.closest(".accordion-section-content"),this._setupModel(),this._setupSortable(),this._setupAddition(),this._applyCardinalOrderClassNames()},_setupModel:function(){var a=this,d=f.Widgets.registeredSidebars.get(this.params.sidebar_id);this.setting.bind(function(d,e){var g,h,i,j;j=_(e).difference(d),d=_(d).filter(function(a){var b=c(a);return!!f.Widgets.availableWidgets.findWhere({id_base:b.id_base})}),g=_(d).map(function(b){var c=f.Widgets.getWidgetFormControlForWidget(b);return c||(c=a.addWidget(b)),c}),g.sort(function(a,b){var c=_.indexOf(d,a.params.widget_id),e=_.indexOf(d,b.params.widget_id);return c===e?0:e>c?-1:1}),i=_(g).map(function(a){return a.container[0]}),h=a.$sectionContent.find(".customize-control-sidebar_widgets"),h.before(i),a._applyCardinalOrderClassNames(),_(g).each(function(b){b.params.sidebar_id=a.params.sidebar_id}),_(j).each(function(d){setTimeout(function(){var e,g,h,i,j,k=!1;f.each(function(b){if(b.id!==a.setting.id&&0===b.id.indexOf("sidebars_widgets[")&&"sidebars_widgets[wp_inactive_widgets]"!==b.id){var c,e=b();c=_.indexOf(e,d),-1!==c&&(k=!0)}}),k||(e=f.Widgets.getWidgetFormControlForWidget(d),g=e&&b.contains(document,e.container[0])&&!b.contains(a.$sectionContent[0],e.container[0]),e&&!g&&(f.control.remove(e.id),e.container.remove()),f.Widgets.savedWidgetIds[d]&&(h=f.value("sidebars_widgets[wp_inactive_widgets]")().slice(),h.push(d),f.value("sidebars_widgets[wp_inactive_widgets]")(_(h).unique())),i=c(d).id_base,j=f.Widgets.availableWidgets.findWhere({id_base:i}),j&&!j.get("is_multi")&&j.set("is_disabled",!1))})})}),a.active.bind(function(a){d.set("is_rendered",a)})},toggle:function(a){var c,d;d="#accordion-section-sidebar-widgets-"+this.params.sidebar_id,c=b(d),a?c.stop().slideDown(function(){b(this).css("height","auto")}):(c.hasClass("open")&&c.find(".accordion-section-title").trigger("click"),c.stop().slideUp())},_setupSortable:function(){var a=this;this.isReordering=!1,this.$sectionContent.sortable({items:"> .customize-control-widget_form",handle:".widget-top",axis:"y",connectWith:".accordion-section-content:has(.customize-control-sidebar_widgets)",update:function(){var c,d=a.$sectionContent.sortable("toArray");c=b.map(d,function(a){return b("#"+a).find(":input[name=widget-id]").val()}),a.setting(c)}}),this.$controlSection.find(".accordion-section-title").droppable({accept:".customize-control-widget_form",over:function(){a.$controlSection.hasClass("open")||(a.$controlSection.addClass("open"),a.$sectionContent.toggle(!1).slideToggle(150,function(){a.$sectionContent.sortable("refreshPositions")}))}}),this.container.find(".reorder-toggle").on("click keydown",function(b){("keydown"!==b.type||13===b.which||32===b.which)&&a.toggleReordering(!a.isReordering)})},_setupAddition:function(){var a=this;this.container.find(".add-new-widget").on("click keydown",function(c){("keydown"!==c.type||13===c.which||32===c.which)&&(a.$sectionContent.hasClass("reordering")||(b("body").hasClass("adding-widget")?f.Widgets.availableWidgetsPanel.close():f.Widgets.availableWidgetsPanel.open(a)))})},_applyCardinalOrderClassNames:function(){this.$sectionContent.find(".customize-control-widget_form").removeClass("first-widget").removeClass("last-widget").find(".move-widget-down, .move-widget-up").prop("tabIndex",0),this.$sectionContent.find(".customize-control-widget_form:first").addClass("first-widget").find(".move-widget-up").prop("tabIndex",-1),this.$sectionContent.find(".customize-control-widget_form:last").addClass("last-widget").find(".move-widget-down").prop("tabIndex",-1)},toggleReordering:function(a){a=Boolean(a),a!==this.$sectionContent.hasClass("reordering")&&(this.isReordering=a,this.$sectionContent.toggleClass("reordering",a),a?(_(this.getWidgetFormControls()).each(function(a){a.collapseForm()}),this.$sectionContent.find(".first-widget .move-widget").focus(),this.$sectionContent.find(".add-new-widget").prop("tabIndex",-1)):this.$sectionContent.find(".add-new-widget").prop("tabIndex",0))},getWidgetFormControls:function(){var a;return a=_(this.setting()).map(function(a){var b=d(a),c=f.control(b);if(c)return c})},addWidget:function(a){var d,e,g,h,i,j,k,l,m,n=this,o="widget_form",p=c(a),q=p.number,r=p.id_base,s=f.Widgets.availableWidgets.findWhere({id_base:r});return s?q&&!s.get("is_multi")?!1:(s.get("is_multi")&&!q&&(s.set("multi_number",s.get("multi_number")+1),q=s.get("multi_number")),d=b.trim(b("#widget-tpl-"+s.get("id")).html()),s.get("is_multi")?d=d.replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,q)}):s.set("is_disabled",!0),e=b(d),g=b("<li/>").addClass("customize-control").addClass("customize-control-"+o).append(e),g.find("> .widget-icon").remove(),s.get("is_multi")&&(g.find('input[name="widget_number"]').val(q),g.find('input[name="multi_number"]').val(q)),a=g.find('[name="widget-id"]').val(),g.hide(),i="widget_"+s.get("id_base"),s.get("is_multi")&&(i+="["+q+"]"),g.attr("id","customize-control-"+i.replace(/\]/g,"").replace(/\[/g,"-")),this.container.after(g),j=f.has(i),j||(m={transport:"refresh",previewer:this.setting.previewer},f.create(i,i,{},m)),h=f.controlConstructor[o],k=new h(i,{params:{settings:{"default":i},sidebar_id:n.params.sidebar_id,widget_id:a,widget_id_base:s.get("id_base"),type:o,is_new:!j,width:s.get("width"),height:s.get("height"),is_wide:s.get("is_wide")},previewer:n.setting.previewer}),f.control.add(i,k),f.each(function(b){if(b.id!==n.setting.id&&0===b.id.indexOf("sidebars_widgets[")){var c=b().slice(),d=_.indexOf(c,a);-1!==d&&(c.splice(d),b(c))}}),l=this.setting().slice(),-1===_.indexOf(l,a)&&(l.push(a),this.setting(l)),g.slideDown(function(){j?(k.expandForm(),k.updateWidget({instance:k.setting(),complete:function(a){if(a)throw a;k.focus()}})):k.focus()}),b(document).trigger("widget-added",[e]),k):!1}}),b.extend(f.controlConstructor,{widget_form:f.Widgets.WidgetControl,sidebar_widgets:f.Widgets.SidebarControl}),f.bind("ready",function(){f.Widgets.availableWidgetsPanel=new f.Widgets.AvailableWidgetsPanelView({collection:f.Widgets.availableWidgets}),f.previewer.bind("highlight-widget-control",f.Widgets.highlightWidgetFormControl),f.previewer.bind("focus-widget-control",f.Widgets.focusWidgetFormControl)}),f.Widgets.highlightWidgetFormControl=function(a){var b=f.Widgets.getWidgetFormControlForWidget(a);b&&b.highlightSectionAndControl()},f.Widgets.focusWidgetFormControl=function(a){var b=f.Widgets.getWidgetFormControlForWidget(a);b&&b.focus()},f.Widgets.getSidebarWidgetControlContainingWidget=function(a){var b=null;return f.control.each(function(c){"sidebar_widgets"===c.params.type&&-1!==_.indexOf(c.setting(),a)&&(b=c)}),b},f.Widgets.getWidgetFormControlForWidget=function(a){var b=null;return f.control.each(function(c){"widget_form"===c.params.type&&c.params.widget_id===a&&(b=c)}),b}}}(window.wp,jQuery);
\ No newline at end of file
index 1029b0d0962949d4ad27ab5d4a872405032e7766..f5e37e621a96a04bd454d90a9c8cea13793e0068 100644 (file)
@@ -64,6 +64,9 @@ jQuery(document).ready( function($) {
        /* QuickPress */
        quickPressLoad = function() {
                var act = $('#quickpost-action'), t;
        /* QuickPress */
        quickPressLoad = function() {
                var act = $('#quickpost-action'), t;
+
+               $( '#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]' ).prop( 'disabled' , false );
+
                t = $('#quick-press').submit( function() {
                        $('#dashboard_quick_press #publishing-action .spinner').show();
                        $('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', true);
                t = $('#quick-press').submit( function() {
                        $('#dashboard_quick_press #publishing-action .spinner').show();
                        $('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', true);
index 972afd7eace9b1f242ae25ca585c4f323bf28935..00c3068bb43e3f03ce110a56f85462db8e160e6b 100644 (file)
@@ -1 +1 @@
-var ajaxWidgets,ajaxPopulateWidgets,quickPressLoad;jQuery(document).ready(function(a){function b(){if(!(document.documentMode&&document.documentMode<9)){a("body").append('<div class="quick-draft-textarea-clone" style="display: none;"></div>');var b=a(".quick-draft-textarea-clone"),c=a("#content"),d=c.height(),e=a(window).height()-100;b.css({"font-family":c.css("font-family"),"font-size":c.css("font-size"),"line-height":c.css("line-height"),"padding-bottom":c.css("paddingBottom"),"padding-left":c.css("paddingLeft"),"padding-right":c.css("paddingRight"),"padding-top":c.css("paddingTop"),"white-space":"pre-wrap","word-wrap":"break-word",display:"none"}),c.on("focus input propertychange",function(){var f=a(this),g=f.val()+"&nbsp;",h=b.css("width",f.css("width")).text(g).outerHeight()+2;c.css("overflow-y","auto"),h===d||h>=e&&d>=e||(d=h>e?e:h,c.css("overflow","hidden"),f.css("height",d+"px"))})}}var c,d=a("#welcome-panel"),e=a("#wp_welcome_panel-hide");c=function(b){a.post(ajaxurl,{action:"update-welcome-panel",visible:b,welcomepanelnonce:a("#welcomepanelnonce").val()})},d.hasClass("hidden")&&e.prop("checked")&&d.removeClass("hidden"),a(".welcome-panel-close, .welcome-panel-dismiss a",d).click(function(b){b.preventDefault(),d.addClass("hidden"),c(0),a("#wp_welcome_panel-hide").prop("checked",!1)}),e.click(function(){d.toggleClass("hidden",!this.checked),c(this.checked?1:0)}),ajaxWidgets=["dashboard_primary"],ajaxPopulateWidgets=function(b){function c(b,c){var d,e=a("#"+c+" div.inside:visible").find(".widget-loading");e.length&&(d=e.parent(),setTimeout(function(){d.load(ajaxurl+"?action=dashboard-widgets&widget="+c+"&pagenow="+pagenow,"",function(){d.hide().slideDown("normal",function(){a(this).css("display","")})})},500*b))}b?(b=b.toString(),-1!==a.inArray(b,ajaxWidgets)&&c(0,b)):a.each(ajaxWidgets,c)},ajaxPopulateWidgets(),postboxes.add_postbox_toggles(pagenow,{pbshow:ajaxPopulateWidgets}),quickPressLoad=function(){var c,d=a("#quickpost-action");c=a("#quick-press").submit(function(){function b(){var b=a(".drafts ul li").first();b.css("background","#fffbe5"),setTimeout(function(){b.css("background","none")},1e3)}return a("#dashboard_quick_press #publishing-action .spinner").show(),a('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop("disabled",!0),a.post(c.attr("action"),c.serializeArray(),function(c){a("#dashboard_quick_press .inside").html(c),a("#quick-press").removeClass("initial-form"),quickPressLoad(),b(),a("#title").focus()}),!1}),a("#publish").click(function(){d.val("post-quickpress-publish")}),a("#title, #tags-input, #content").each(function(){var b=a(this),c=a("#"+this.id+"-prompt-text");""===this.value&&c.removeClass("screen-reader-text"),c.click(function(){a(this).addClass("screen-reader-text"),b.focus()}),b.blur(function(){""===this.value&&c.removeClass("screen-reader-text")}),b.focus(function(){c.addClass("screen-reader-text")})}),a("#quick-press").on("click focusin",function(){wpActiveEditor="content"}),b()},quickPressLoad(),a(".meta-box-sortables").sortable("option","containment","document")});
\ No newline at end of file
+var ajaxWidgets,ajaxPopulateWidgets,quickPressLoad;jQuery(document).ready(function(a){function b(){if(!(document.documentMode&&document.documentMode<9)){a("body").append('<div class="quick-draft-textarea-clone" style="display: none;"></div>');var b=a(".quick-draft-textarea-clone"),c=a("#content"),d=c.height(),e=a(window).height()-100;b.css({"font-family":c.css("font-family"),"font-size":c.css("font-size"),"line-height":c.css("line-height"),"padding-bottom":c.css("paddingBottom"),"padding-left":c.css("paddingLeft"),"padding-right":c.css("paddingRight"),"padding-top":c.css("paddingTop"),"white-space":"pre-wrap","word-wrap":"break-word",display:"none"}),c.on("focus input propertychange",function(){var f=a(this),g=f.val()+"&nbsp;",h=b.css("width",f.css("width")).text(g).outerHeight()+2;c.css("overflow-y","auto"),h===d||h>=e&&d>=e||(d=h>e?e:h,c.css("overflow","hidden"),f.css("height",d+"px"))})}}var c,d=a("#welcome-panel"),e=a("#wp_welcome_panel-hide");c=function(b){a.post(ajaxurl,{action:"update-welcome-panel",visible:b,welcomepanelnonce:a("#welcomepanelnonce").val()})},d.hasClass("hidden")&&e.prop("checked")&&d.removeClass("hidden"),a(".welcome-panel-close, .welcome-panel-dismiss a",d).click(function(b){b.preventDefault(),d.addClass("hidden"),c(0),a("#wp_welcome_panel-hide").prop("checked",!1)}),e.click(function(){d.toggleClass("hidden",!this.checked),c(this.checked?1:0)}),ajaxWidgets=["dashboard_primary"],ajaxPopulateWidgets=function(b){function c(b,c){var d,e=a("#"+c+" div.inside:visible").find(".widget-loading");e.length&&(d=e.parent(),setTimeout(function(){d.load(ajaxurl+"?action=dashboard-widgets&widget="+c+"&pagenow="+pagenow,"",function(){d.hide().slideDown("normal",function(){a(this).css("display","")})})},500*b))}b?(b=b.toString(),-1!==a.inArray(b,ajaxWidgets)&&c(0,b)):a.each(ajaxWidgets,c)},ajaxPopulateWidgets(),postboxes.add_postbox_toggles(pagenow,{pbshow:ajaxPopulateWidgets}),quickPressLoad=function(){var c,d=a("#quickpost-action");a('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop("disabled",!1),c=a("#quick-press").submit(function(){function b(){var b=a(".drafts ul li").first();b.css("background","#fffbe5"),setTimeout(function(){b.css("background","none")},1e3)}return a("#dashboard_quick_press #publishing-action .spinner").show(),a('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop("disabled",!0),a.post(c.attr("action"),c.serializeArray(),function(c){a("#dashboard_quick_press .inside").html(c),a("#quick-press").removeClass("initial-form"),quickPressLoad(),b(),a("#title").focus()}),!1}),a("#publish").click(function(){d.val("post-quickpress-publish")}),a("#title, #tags-input, #content").each(function(){var b=a(this),c=a("#"+this.id+"-prompt-text");""===this.value&&c.removeClass("screen-reader-text"),c.click(function(){a(this).addClass("screen-reader-text"),b.focus()}),b.blur(function(){""===this.value&&c.removeClass("screen-reader-text")}),b.focus(function(){c.addClass("screen-reader-text")})}),a("#quick-press").on("click focusin",function(){wpActiveEditor="content"}),b()},quickPressLoad(),a(".meta-box-sortables").sortable("option","containment","document")});
\ No newline at end of file
index ff149e19dcca6e58c885a423216b245a94f82e52..78c46174eaf9014e8a72a9a798b9b023997d3627 100644 (file)
@@ -607,6 +607,19 @@ $(document).ready(function(){
                        }
                );
        }
                        }
                );
        }
+
+       // Quick Edit and Reply have an inline comment editor.
+       $( '#the-comment-list' ).on( 'click', '.comment-inline', function (e) {
+               e.preventDefault();
+               var $el = $( this ),
+                       action = 'replyto';
+
+               if ( 'undefined' !== typeof $el.data( 'action' ) ) {
+                       action = $el.data( 'action' );
+               }
+
+               commentReply.open( $el.data( 'commentId' ), $el.data( 'postId' ), action );
+       } );
 });
 
 })(jQuery);
 });
 
 })(jQuery);
index 107c3c5618974642f7e977b542624dc3db0e7bc1..883a72590d9d15c87645506a7b382783d29133d8 100644 (file)
@@ -1 +1 @@
-var setCommentsList,theList,theExtraList,commentReply;!function(a){var b,c,d;setCommentsList=function(){var e,f,g,h,i,j,k,l,m,n=0;e=a('input[name="_total"]',"#comments-form"),f=a('input[name="_per_page"]',"#comments-form"),g=a('input[name="_page"]',"#comments-form"),h=function(b,c){var e,f,g,h=a("#"+c.element);e=a("#replyrow"),f=a("#comment_ID",e).val(),g=a("#replybtn",e),h.is(".unapproved")?(c.data.id==f&&g.text(adminCommentsL10n.replyApprove),h.find("div.comment_status").html("0")):(c.data.id==f&&g.text(adminCommentsL10n.reply),h.find("div.comment_status").html("1")),m=a("#"+c.element).is("."+c.dimClass)?1:-1,d(m)},i=function(b,c){var d,h,i,j,k,l,m,n=!1,o=a(b.target).attr("data-wp-lists");return b.data._total=e.val()||0,b.data._per_page=f.val()||0,b.data._page=g.val()||0,b.data._url=document.location.href,b.data.comment_status=a('input[name="comment_status"]',"#comments-form").val(),-1!=o.indexOf(":trash=1")?n="trash":-1!=o.indexOf(":spam=1")&&(n="spam"),n&&(h=o.replace(/.*?comment-([0-9]+).*/,"$1"),i=a("#comment-"+h),d=a("#"+n+"-undo-holder").html(),i.find(".check-column :checkbox").prop("checked",!1),i.siblings("#replyrow").length&&commentReply.cid==h&&commentReply.close(),i.is("tr")?(j=i.children(":visible").length,m=a(".author strong",i).text(),k=a('<tr id="undo-'+h+'" class="undo un'+n+'" style="display:none;"><td colspan="'+j+'">'+d+"</td></tr>")):(m=a(".comment-author",i).text(),k=a('<div id="undo-'+h+'" style="display:none;" class="undo un'+n+'">'+d+"</div>")),i.before(k),a("strong","#undo-"+h).text(m),l=a(".undo a","#undo-"+h),l.attr("href","comment.php?action=un"+n+"comment&c="+h+"&_wpnonce="+b.data._ajax_nonce),l.attr("data-wp-lists","delete:the-comment-list:comment-"+h+"::un"+n+"=1"),l.attr("class","vim-z vim-destructive"),a(".avatar",i).first().clone().prependTo("#undo-"+h+" ."+n+"-undo-inside"),l.click(function(){return c.wpList.del(this),a("#undo-"+h).css({backgroundColor:"#ceb"}).fadeOut(350,function(){a(this).remove(),a("#comment-"+h).css("backgroundColor","").fadeIn(300,function(){a(this).show()})}),!1})),b},j=function(a,b,c){n>b||(c&&(n=b),e.val(a.toString()))},b=function(a){var b=parseInt(a.html().replace(/[^0-9]+/g,""),10);return isNaN(b)?0:b},c=function(a,b){var c="";if(!isNaN(b)){if(b=1>b?"0":b.toString(),b.length>3){for(;b.length>3;)c=thousandsSeparator+b.substr(b.length-3)+c,b=b.substr(0,b.length-3);b+=c}a.html(b)}},d=function(d){a("span.pending-count").each(function(){var e=a(this),f=b(e)+d;1>f&&(f=0),e.closest(".awaiting-mod")[0===f?"addClass":"removeClass"]("count-0"),c(e,f)})},k=function(f,g){function h(b){return a(g.target).parent().is("span."+b)?1:a("#"+g.element).is("."+b)?-1:0}var i,k,m,o,p,q=a(g.target).parent().is("span.untrash"),r=a(g.target).parent().is("span.unspam"),s=a("#"+g.element).is(".unapproved");o=q?-1:h("trash"),m=r?-1:h("spam"),a(g.target).parent().is("span.unapprove")||(q||r)&&s?p=1:s&&(p=-1),p&&d(p),a("span.spam-count").each(function(){var d=a(this),e=b(d)+m;c(d,e)}),a("span.trash-count").each(function(){var d=a(this),e=b(d)+o;c(d,e)}),a("#dashboard_right_now").length||(k=e.val()?parseInt(e.val(),10):0,a(g.target).parent().is("span.undo")?k++:k--,0>k&&(k=0),"object"==typeof f&&n<g.parsed.responses[0].supplemental.time?(i=g.parsed.responses[0].supplemental.total_items_i18n||"",i&&(a(".displaying-num").text(i),a(".total-pages").text(g.parsed.responses[0].supplemental.total_pages_i18n),a(".tablenav-pages").find(".next-page, .last-page").toggleClass("disabled",g.parsed.responses[0].supplemental.total_pages==a(".current-page").val())),j(k,g.parsed.responses[0].supplemental.time,!0)):j(k,f,!1)),!theExtraList||0===theExtraList.size()||0===theExtraList.children().size()||q||r||(theList.get(0).wpList.add(theExtraList.children(":eq(0)").remove().clone()),l())},l=function(b){var c=a.query.get(),d=a(".total-pages").text(),e=a('input[name="_per_page"]',"#comments-form").val();c.paged||(c.paged=1),c.paged>d||(b?(theExtraList.empty(),c.number=Math.min(8,e)):(c.number=1,c.offset=Math.min(8,e)-1),c.no_placeholder=!0,c.paged++,!0===c.comment_type&&(c.comment_type=""),c=a.extend(c,{action:"fetch-list",list_args:list_args,_ajax_fetch_list_nonce:a("#_ajax_fetch_list_nonce").val()}),a.ajax({url:ajaxurl,global:!1,dataType:"json",data:c,success:function(a){theExtraList.get(0).wpList.add(a.rows)}}))},theExtraList=a("#the-extra-comment-list").wpList({alt:"",delColor:"none",addColor:"none"}),theList=a("#the-comment-list").wpList({alt:"",delBefore:i,dimAfter:h,delAfter:k,addColor:"none"}).bind("wpListDelEnd",function(b,c){var d=a(c.target).attr("data-wp-lists"),e=c.element.replace(/[^0-9]+/g,"");(-1!=d.indexOf(":trash=1")||-1!=d.indexOf(":spam=1"))&&a("#undo-"+e).fadeIn(300,function(){a(this).show()})})},commentReply={cid:"",act:"",init:function(){var b=a("#replyrow");a("a.cancel",b).click(function(){return commentReply.revert()}),a("a.save",b).click(function(){return commentReply.send()}),a("input#author, input#author-email, input#author-url",b).keypress(function(a){return 13==a.which?(commentReply.send(),a.preventDefault(),!1):void 0}),a("#the-comment-list .column-comment > p").dblclick(function(){commentReply.toggle(a(this).parent())}),a("#doaction, #doaction2, #post-query-submit").click(function(){a("#the-comment-list #replyrow").length>0&&commentReply.close()}),this.comments_listing=a('#comments-form > input[name="comment_status"]').val()||""},addEvents:function(b){b.each(function(){a(this).find(".column-comment > p").dblclick(function(){commentReply.toggle(a(this).parent())})})},toggle:function(b){"none"!=a(b).css("display")&&a(b).find("a.vim-q").click()},revert:function(){return a("#the-comment-list #replyrow").length<1?!1:(a("#replyrow").fadeOut("fast",function(){commentReply.close()}),!1)},close:function(){var b,c=a("#replyrow");c.parent().is("#com-reply")||(this.cid&&"edit-comment"==this.act&&(b=a("#comment-"+this.cid),b.fadeIn(300,function(){b.show()}).css("backgroundColor","")),"undefined"!=typeof QTags&&QTags.closeAllTags("replycontent"),a("#add-new-comment").css("display",""),c.hide(),a("#com-reply").append(c),a("#replycontent").css("height","").val(""),a("#edithead input").val(""),a(".error",c).html("").hide(),a(".spinner",c).hide(),this.cid="")},open:function(b,c,d){var e,f,g,h,i,j=this,k=a("#comment-"+b),l=k.height();return j.close(),j.cid=b,e=a("#replyrow"),f=a("#inline-"+b),d=d||"replyto",g="edit"==d?"edit":"replyto",g=j.act=g+"-comment",a("#action",e).val(g),a("#comment_post_ID",e).val(c),a("#comment_ID",e).val(b),"edit"==d?(a("#author",e).val(a("div.author",f).text()),a("#author-email",e).val(a("div.author-email",f).text()),a("#author-url",e).val(a("div.author-url",f).text()),a("#status",e).val(a("div.comment_status",f).text()),a("#replycontent",e).val(a("textarea.comment",f).val()),a("#edithead, #savebtn",e).show(),a("#replyhead, #replybtn, #addhead, #addbtn",e).hide(),l>120&&(i=l>500?500:l,a("#replycontent",e).css("height",i+"px")),k.after(e).fadeOut("fast",function(){a("#replyrow").fadeIn(300,function(){a(this).show()})})):"add"==d?(a("#addhead, #addbtn",e).show(),a("#replyhead, #replybtn, #edithead, #editbtn",e).hide(),a("#the-comment-list").prepend(e),a("#replyrow").fadeIn(300)):(h=a("#replybtn",e),a("#edithead, #savebtn, #addhead, #addbtn",e).hide(),a("#replyhead, #replybtn",e).show(),k.after(e),h.text(k.hasClass("unapproved")?adminCommentsL10n.replyApprove:adminCommentsL10n.reply),a("#replyrow").fadeIn(300,function(){a(this).show()})),setTimeout(function(){var b,c,d,e,f;b=a("#replyrow").offset().top,c=b+a("#replyrow").height(),d=window.pageYOffset||document.documentElement.scrollTop,e=document.documentElement.clientHeight||window.innerHeight||0,f=d+e,c>f-20?window.scroll(0,c-e+35):d>b-20&&window.scroll(0,b-35),a("#replycontent").focus().keyup(function(a){27==a.which&&commentReply.revert()})},600),!1},send:function(){var b={};return a("#replysubmit .error").hide(),a("#replysubmit .spinner").show(),a("#replyrow input").not(":button").each(function(){var c=a(this);b[c.attr("name")]=c.val()}),b.content=a("#replycontent").val(),b.id=b.comment_post_ID,b.comments_listing=this.comments_listing,b.p=a('[name="p"]').val(),a("#comment-"+a("#comment_ID").val()).hasClass("unapproved")&&(b.approve_parent=1),a.ajax({type:"POST",url:ajaxurl,data:b,success:function(a){commentReply.show(a)},error:function(a){commentReply.error(a)}}),!1},show:function(b){var c,e,f,g,h,i=this;return"string"==typeof b?(i.error({responseText:b}),!1):(c=wpAjax.parseAjaxResponse(b),c.errors?(i.error({responseText:wpAjax.broken}),!1):(i.revert(),c=c.responses[0],f="#comment-"+c.id,"edit-comment"==i.act&&a(f).remove(),c.supplemental.parent_approved&&(h=a("#comment-"+c.supplemental.parent_approved),d(-1),"moderated"==this.comments_listing)?void h.animate({backgroundColor:"#CCEEBB"},400,function(){h.fadeOut()}):(e=a.trim(c.data),a(e).hide(),a("#replyrow").after(e),f=a(f),i.addEvents(f),g=f.hasClass("unapproved")?"#FFFFE0":f.closest(".widefat, .postbox").css("backgroundColor"),void f.animate({backgroundColor:"#CCEEBB"},300).animate({backgroundColor:g},300,function(){h&&h.length&&h.animate({backgroundColor:"#CCEEBB"},300).animate({backgroundColor:g},300).removeClass("unapproved").addClass("approved").find("div.comment_status").html("1")}))))},error:function(b){var c=b.statusText;a("#replysubmit .spinner").hide(),b.responseText&&(c=b.responseText.replace(/<.[^<>]*?>/g,"")),c&&a("#replysubmit .error").html(c).show()},addcomment:function(b){var c=this;a("#add-new-comment").fadeOut(200,function(){c.open(0,b,"add"),a("table.comments-box").css("display",""),a("#no-comments").remove()})}},a(document).ready(function(){var b,c,d,e;setCommentsList(),commentReply.init(),a(document).delegate("span.delete a.delete","click",function(){return!1}),"undefined"!=typeof a.table_hotkeys&&(b=function(b){return function(){var c,d;c="next"==b?"first":"last",d=a(".tablenav-pages ."+b+"-page:not(.disabled)"),d.length&&(window.location=d[0].href.replace(/\&hotkeys_highlight_(first|last)=1/g,"")+"&hotkeys_highlight_"+c+"=1")}},c=function(b,c){window.location=a("span.edit a",c).attr("href")},d=function(){a("#cb-select-all-1").data("wp-toggle",1).trigger("click").removeData("wp-toggle")},e=function(b){return function(){var c=a('select[name="action"]');a('option[value="'+b+'"]',c).prop("selected",!0),a("#doaction").click()}},a.table_hotkeys(a("table.widefat"),["a","u","s","d","r","q","z",["e",c],["shift+x",d],["shift+a",e("approve")],["shift+s",e("spam")],["shift+d",e("delete")],["shift+t",e("trash")],["shift+z",e("untrash")],["shift+u",e("unapprove")]],{highlight_first:adminCommentsL10n.hotkeys_highlight_first,highlight_last:adminCommentsL10n.hotkeys_highlight_last,prev_page_link_cb:b("prev"),next_page_link_cb:b("next"),hotkeys_opts:{disableInInput:!0,type:"keypress",noDisable:'.check-column input[type="checkbox"]'}}))})}(jQuery);
\ No newline at end of file
+var setCommentsList,theList,theExtraList,commentReply;!function(a){var b,c,d;setCommentsList=function(){var e,f,g,h,i,j,k,l,m,n=0;e=a('input[name="_total"]',"#comments-form"),f=a('input[name="_per_page"]',"#comments-form"),g=a('input[name="_page"]',"#comments-form"),h=function(b,c){var e,f,g,h=a("#"+c.element);e=a("#replyrow"),f=a("#comment_ID",e).val(),g=a("#replybtn",e),h.is(".unapproved")?(c.data.id==f&&g.text(adminCommentsL10n.replyApprove),h.find("div.comment_status").html("0")):(c.data.id==f&&g.text(adminCommentsL10n.reply),h.find("div.comment_status").html("1")),m=a("#"+c.element).is("."+c.dimClass)?1:-1,d(m)},i=function(b,c){var d,h,i,j,k,l,m,n=!1,o=a(b.target).attr("data-wp-lists");return b.data._total=e.val()||0,b.data._per_page=f.val()||0,b.data._page=g.val()||0,b.data._url=document.location.href,b.data.comment_status=a('input[name="comment_status"]',"#comments-form").val(),-1!=o.indexOf(":trash=1")?n="trash":-1!=o.indexOf(":spam=1")&&(n="spam"),n&&(h=o.replace(/.*?comment-([0-9]+).*/,"$1"),i=a("#comment-"+h),d=a("#"+n+"-undo-holder").html(),i.find(".check-column :checkbox").prop("checked",!1),i.siblings("#replyrow").length&&commentReply.cid==h&&commentReply.close(),i.is("tr")?(j=i.children(":visible").length,m=a(".author strong",i).text(),k=a('<tr id="undo-'+h+'" class="undo un'+n+'" style="display:none;"><td colspan="'+j+'">'+d+"</td></tr>")):(m=a(".comment-author",i).text(),k=a('<div id="undo-'+h+'" style="display:none;" class="undo un'+n+'">'+d+"</div>")),i.before(k),a("strong","#undo-"+h).text(m),l=a(".undo a","#undo-"+h),l.attr("href","comment.php?action=un"+n+"comment&c="+h+"&_wpnonce="+b.data._ajax_nonce),l.attr("data-wp-lists","delete:the-comment-list:comment-"+h+"::un"+n+"=1"),l.attr("class","vim-z vim-destructive"),a(".avatar",i).first().clone().prependTo("#undo-"+h+" ."+n+"-undo-inside"),l.click(function(){return c.wpList.del(this),a("#undo-"+h).css({backgroundColor:"#ceb"}).fadeOut(350,function(){a(this).remove(),a("#comment-"+h).css("backgroundColor","").fadeIn(300,function(){a(this).show()})}),!1})),b},j=function(a,b,c){n>b||(c&&(n=b),e.val(a.toString()))},b=function(a){var b=parseInt(a.html().replace(/[^0-9]+/g,""),10);return isNaN(b)?0:b},c=function(a,b){var c="";if(!isNaN(b)){if(b=1>b?"0":b.toString(),b.length>3){for(;b.length>3;)c=thousandsSeparator+b.substr(b.length-3)+c,b=b.substr(0,b.length-3);b+=c}a.html(b)}},d=function(d){a("span.pending-count").each(function(){var e=a(this),f=b(e)+d;1>f&&(f=0),e.closest(".awaiting-mod")[0===f?"addClass":"removeClass"]("count-0"),c(e,f)})},k=function(f,g){function h(b){return a(g.target).parent().is("span."+b)?1:a("#"+g.element).is("."+b)?-1:0}var i,k,m,o,p,q=a(g.target).parent().is("span.untrash"),r=a(g.target).parent().is("span.unspam"),s=a("#"+g.element).is(".unapproved");o=q?-1:h("trash"),m=r?-1:h("spam"),a(g.target).parent().is("span.unapprove")||(q||r)&&s?p=1:s&&(p=-1),p&&d(p),a("span.spam-count").each(function(){var d=a(this),e=b(d)+m;c(d,e)}),a("span.trash-count").each(function(){var d=a(this),e=b(d)+o;c(d,e)}),a("#dashboard_right_now").length||(k=e.val()?parseInt(e.val(),10):0,a(g.target).parent().is("span.undo")?k++:k--,0>k&&(k=0),"object"==typeof f&&n<g.parsed.responses[0].supplemental.time?(i=g.parsed.responses[0].supplemental.total_items_i18n||"",i&&(a(".displaying-num").text(i),a(".total-pages").text(g.parsed.responses[0].supplemental.total_pages_i18n),a(".tablenav-pages").find(".next-page, .last-page").toggleClass("disabled",g.parsed.responses[0].supplemental.total_pages==a(".current-page").val())),j(k,g.parsed.responses[0].supplemental.time,!0)):j(k,f,!1)),!theExtraList||0===theExtraList.size()||0===theExtraList.children().size()||q||r||(theList.get(0).wpList.add(theExtraList.children(":eq(0)").remove().clone()),l())},l=function(b){var c=a.query.get(),d=a(".total-pages").text(),e=a('input[name="_per_page"]',"#comments-form").val();c.paged||(c.paged=1),c.paged>d||(b?(theExtraList.empty(),c.number=Math.min(8,e)):(c.number=1,c.offset=Math.min(8,e)-1),c.no_placeholder=!0,c.paged++,!0===c.comment_type&&(c.comment_type=""),c=a.extend(c,{action:"fetch-list",list_args:list_args,_ajax_fetch_list_nonce:a("#_ajax_fetch_list_nonce").val()}),a.ajax({url:ajaxurl,global:!1,dataType:"json",data:c,success:function(a){theExtraList.get(0).wpList.add(a.rows)}}))},theExtraList=a("#the-extra-comment-list").wpList({alt:"",delColor:"none",addColor:"none"}),theList=a("#the-comment-list").wpList({alt:"",delBefore:i,dimAfter:h,delAfter:k,addColor:"none"}).bind("wpListDelEnd",function(b,c){var d=a(c.target).attr("data-wp-lists"),e=c.element.replace(/[^0-9]+/g,"");(-1!=d.indexOf(":trash=1")||-1!=d.indexOf(":spam=1"))&&a("#undo-"+e).fadeIn(300,function(){a(this).show()})})},commentReply={cid:"",act:"",init:function(){var b=a("#replyrow");a("a.cancel",b).click(function(){return commentReply.revert()}),a("a.save",b).click(function(){return commentReply.send()}),a("input#author, input#author-email, input#author-url",b).keypress(function(a){return 13==a.which?(commentReply.send(),a.preventDefault(),!1):void 0}),a("#the-comment-list .column-comment > p").dblclick(function(){commentReply.toggle(a(this).parent())}),a("#doaction, #doaction2, #post-query-submit").click(function(){a("#the-comment-list #replyrow").length>0&&commentReply.close()}),this.comments_listing=a('#comments-form > input[name="comment_status"]').val()||""},addEvents:function(b){b.each(function(){a(this).find(".column-comment > p").dblclick(function(){commentReply.toggle(a(this).parent())})})},toggle:function(b){"none"!=a(b).css("display")&&a(b).find("a.vim-q").click()},revert:function(){return a("#the-comment-list #replyrow").length<1?!1:(a("#replyrow").fadeOut("fast",function(){commentReply.close()}),!1)},close:function(){var b,c=a("#replyrow");c.parent().is("#com-reply")||(this.cid&&"edit-comment"==this.act&&(b=a("#comment-"+this.cid),b.fadeIn(300,function(){b.show()}).css("backgroundColor","")),"undefined"!=typeof QTags&&QTags.closeAllTags("replycontent"),a("#add-new-comment").css("display",""),c.hide(),a("#com-reply").append(c),a("#replycontent").css("height","").val(""),a("#edithead input").val(""),a(".error",c).html("").hide(),a(".spinner",c).hide(),this.cid="")},open:function(b,c,d){var e,f,g,h,i,j=this,k=a("#comment-"+b),l=k.height();return j.close(),j.cid=b,e=a("#replyrow"),f=a("#inline-"+b),d=d||"replyto",g="edit"==d?"edit":"replyto",g=j.act=g+"-comment",a("#action",e).val(g),a("#comment_post_ID",e).val(c),a("#comment_ID",e).val(b),"edit"==d?(a("#author",e).val(a("div.author",f).text()),a("#author-email",e).val(a("div.author-email",f).text()),a("#author-url",e).val(a("div.author-url",f).text()),a("#status",e).val(a("div.comment_status",f).text()),a("#replycontent",e).val(a("textarea.comment",f).val()),a("#edithead, #savebtn",e).show(),a("#replyhead, #replybtn, #addhead, #addbtn",e).hide(),l>120&&(i=l>500?500:l,a("#replycontent",e).css("height",i+"px")),k.after(e).fadeOut("fast",function(){a("#replyrow").fadeIn(300,function(){a(this).show()})})):"add"==d?(a("#addhead, #addbtn",e).show(),a("#replyhead, #replybtn, #edithead, #editbtn",e).hide(),a("#the-comment-list").prepend(e),a("#replyrow").fadeIn(300)):(h=a("#replybtn",e),a("#edithead, #savebtn, #addhead, #addbtn",e).hide(),a("#replyhead, #replybtn",e).show(),k.after(e),h.text(k.hasClass("unapproved")?adminCommentsL10n.replyApprove:adminCommentsL10n.reply),a("#replyrow").fadeIn(300,function(){a(this).show()})),setTimeout(function(){var b,c,d,e,f;b=a("#replyrow").offset().top,c=b+a("#replyrow").height(),d=window.pageYOffset||document.documentElement.scrollTop,e=document.documentElement.clientHeight||window.innerHeight||0,f=d+e,c>f-20?window.scroll(0,c-e+35):d>b-20&&window.scroll(0,b-35),a("#replycontent").focus().keyup(function(a){27==a.which&&commentReply.revert()})},600),!1},send:function(){var b={};return a("#replysubmit .error").hide(),a("#replysubmit .spinner").show(),a("#replyrow input").not(":button").each(function(){var c=a(this);b[c.attr("name")]=c.val()}),b.content=a("#replycontent").val(),b.id=b.comment_post_ID,b.comments_listing=this.comments_listing,b.p=a('[name="p"]').val(),a("#comment-"+a("#comment_ID").val()).hasClass("unapproved")&&(b.approve_parent=1),a.ajax({type:"POST",url:ajaxurl,data:b,success:function(a){commentReply.show(a)},error:function(a){commentReply.error(a)}}),!1},show:function(b){var c,e,f,g,h,i=this;return"string"==typeof b?(i.error({responseText:b}),!1):(c=wpAjax.parseAjaxResponse(b),c.errors?(i.error({responseText:wpAjax.broken}),!1):(i.revert(),c=c.responses[0],f="#comment-"+c.id,"edit-comment"==i.act&&a(f).remove(),c.supplemental.parent_approved&&(h=a("#comment-"+c.supplemental.parent_approved),d(-1),"moderated"==this.comments_listing)?void h.animate({backgroundColor:"#CCEEBB"},400,function(){h.fadeOut()}):(e=a.trim(c.data),a(e).hide(),a("#replyrow").after(e),f=a(f),i.addEvents(f),g=f.hasClass("unapproved")?"#FFFFE0":f.closest(".widefat, .postbox").css("backgroundColor"),void f.animate({backgroundColor:"#CCEEBB"},300).animate({backgroundColor:g},300,function(){h&&h.length&&h.animate({backgroundColor:"#CCEEBB"},300).animate({backgroundColor:g},300).removeClass("unapproved").addClass("approved").find("div.comment_status").html("1")}))))},error:function(b){var c=b.statusText;a("#replysubmit .spinner").hide(),b.responseText&&(c=b.responseText.replace(/<.[^<>]*?>/g,"")),c&&a("#replysubmit .error").html(c).show()},addcomment:function(b){var c=this;a("#add-new-comment").fadeOut(200,function(){c.open(0,b,"add"),a("table.comments-box").css("display",""),a("#no-comments").remove()})}},a(document).ready(function(){var b,c,d,e;setCommentsList(),commentReply.init(),a(document).delegate("span.delete a.delete","click",function(){return!1}),"undefined"!=typeof a.table_hotkeys&&(b=function(b){return function(){var c,d;c="next"==b?"first":"last",d=a(".tablenav-pages ."+b+"-page:not(.disabled)"),d.length&&(window.location=d[0].href.replace(/\&hotkeys_highlight_(first|last)=1/g,"")+"&hotkeys_highlight_"+c+"=1")}},c=function(b,c){window.location=a("span.edit a",c).attr("href")},d=function(){a("#cb-select-all-1").data("wp-toggle",1).trigger("click").removeData("wp-toggle")},e=function(b){return function(){var c=a('select[name="action"]');a('option[value="'+b+'"]',c).prop("selected",!0),a("#doaction").click()}},a.table_hotkeys(a("table.widefat"),["a","u","s","d","r","q","z",["e",c],["shift+x",d],["shift+a",e("approve")],["shift+s",e("spam")],["shift+d",e("delete")],["shift+t",e("trash")],["shift+z",e("untrash")],["shift+u",e("unapprove")]],{highlight_first:adminCommentsL10n.hotkeys_highlight_first,highlight_last:adminCommentsL10n.hotkeys_highlight_last,prev_page_link_cb:b("prev"),next_page_link_cb:b("next"),hotkeys_opts:{disableInInput:!0,type:"keypress",noDisable:'.check-column input[type="checkbox"]'}})),a("#the-comment-list").on("click",".comment-inline",function(b){b.preventDefault();var c=a(this),d="replyto";"undefined"!=typeof c.data("action")&&(d=c.data("action")),commentReply.open(c.data("commentId"),c.data("postId"),d)})})}(jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/editor-expand.js b/wp-admin/js/editor-expand.js
new file mode 100644 (file)
index 0000000..ab5e885
--- /dev/null
@@ -0,0 +1,692 @@
+/* global tinymce */
+
+window.wp = window.wp || {};
+
+jQuery( document ).ready( function($) {
+       var $window = $( window ),
+               $document = $( document ),
+               $adminBar = $( '#wpadminbar' ),
+               $footer = $( '#wpfooter' ),
+               $wrap = $( '#postdivrich' ),
+               $contentWrap = $( '#wp-content-wrap' ),
+               $tools = $( '#wp-content-editor-tools' ),
+               $visualTop = $(),
+               $visualEditor = $(),
+               $textTop = $( '#ed_toolbar' ),
+               $textEditor = $( '#content' ),
+               $textEditorClone = $( '<div id="content-textarea-clone"></div>' ),
+               $bottom = $( '#post-status-info' ),
+               $menuBar = $(),
+               $statusBar = $(),
+               $sideSortables = $( '#side-sortables' ),
+               $postboxContainer = $( '#postbox-container-1' ),
+               $postBody = $('#post-body'),
+               fullscreen = window.wp.editor && window.wp.editor.fullscreen,
+               mceEditor,
+               mceBind = function(){},
+               mceUnbind = function(){},
+               fixedTop = false,
+               fixedBottom = false,
+               fixedSideTop = false,
+               fixedSideBottom = false,
+               scrollTimer,
+               lastScrollPosition = 0,
+               pageYOffsetAtTop = 130,
+               pinnedToolsTop = 56,
+               sidebarBottom = 20,
+               autoresizeMinHeight = 300,
+               initialMode = window.getUserSetting( 'editor' ),
+               // These are corrected when adjust() runs, except on scrolling if already set.
+               heights = {
+                       windowHeight: 0,
+                       windowWidth: 0,
+                       adminBarHeight: 0,
+                       toolsHeight: 0,
+                       menuBarHeight: 0,
+                       visualTopHeight: 0,
+                       textTopHeight: 0,
+                       bottomHeight: 0,
+                       statusBarHeight: 0,
+                       sideSortablesHeight: 0
+               };
+
+       $textEditorClone.insertAfter( $textEditor );
+
+       $textEditorClone.css( {
+               'font-family': $textEditor.css( 'font-family' ),
+               'font-size': $textEditor.css( 'font-size' ),
+               'line-height': $textEditor.css( 'line-height' ),
+               'white-space': 'pre-wrap',
+               'word-wrap': 'break-word'
+       } );
+
+       function getHeights() {
+               var windowWidth = $window.width();
+
+               heights = {
+                       windowHeight: $window.height(),
+                       windowWidth: windowWidth,
+                       adminBarHeight: ( windowWidth > 600 ? $adminBar.outerHeight() : 0 ),
+                       toolsHeight: $tools.outerHeight() || 0,
+                       menuBarHeight: $menuBar.outerHeight() || 0,
+                       visualTopHeight: $visualTop.outerHeight() || 0,
+                       textTopHeight: $textTop.outerHeight() || 0,
+                       bottomHeight: $bottom.outerHeight() || 0,
+                       statusBarHeight: $statusBar.outerHeight() || 0,
+                       sideSortablesHeight: $sideSortables.height() || 0
+               };
+
+               // Adjust for hidden
+               if ( heights.menuBarHeight < 3 ) {
+                       heights.menuBarHeight = 0;
+               }
+       }
+
+       function textEditorKeyup( event ) {
+               var VK = jQuery.ui.keyCode,
+                       key = event.keyCode,
+                       range = document.createRange(),
+                       selStart = $textEditor[0].selectionStart,
+                       selEnd = $textEditor[0].selectionEnd,
+                       textNode = $textEditorClone[0].firstChild,
+                       buffer = 10,
+                       offset, cursorTop, cursorBottom, editorTop, editorBottom;
+
+               if ( selStart && selEnd && selStart !== selEnd ) {
+                       return;
+               }
+
+               // These are not TinyMCE ranges.
+               try {
+                       range.setStart( textNode, selStart );
+                       range.setEnd( textNode, selEnd + 1 );
+               } catch ( ex ) {}
+
+               offset = range.getBoundingClientRect();
+
+               if ( ! offset.height ) {
+                       return;
+               }
+
+               cursorTop = offset.top - buffer;
+               cursorBottom = cursorTop + offset.height + buffer;
+               editorTop = heights.adminBarHeight + heights.toolsHeight + heights.textTopHeight;
+               editorBottom = heights.windowHeight - heights.bottomHeight;
+
+               if ( cursorTop < editorTop && ( key === VK.UP || key === VK.LEFT || key === VK.BACKSPACE ) ) {
+                       window.scrollTo( window.pageXOffset, cursorTop + window.pageYOffset - editorTop );
+               } else if ( cursorBottom > editorBottom ) {
+                       window.scrollTo( window.pageXOffset, cursorBottom + window.pageYOffset - editorBottom );
+               }
+       }
+
+       function textEditorResize() {
+               if ( ( mceEditor && ! mceEditor.isHidden() ) || ( ! mceEditor && initialMode === 'tinymce' ) ) {
+                       return;
+               }
+
+               var textEditorHeight = $textEditor.height(),
+                       hiddenHeight;
+
+               $textEditorClone.width( $textEditor.width() - 22 );
+               $textEditorClone.text( $textEditor.val() + '&nbsp;' );
+
+               hiddenHeight = $textEditorClone.height();
+
+               if ( hiddenHeight < autoresizeMinHeight ) {
+                       hiddenHeight = autoresizeMinHeight;
+               }
+
+               if ( hiddenHeight === textEditorHeight ) {
+                       return;
+               }
+
+               $textEditor.height( hiddenHeight );
+
+               adjust();
+       }
+
+       // We need to wait for TinyMCE to initialize.
+       $document.on( 'tinymce-editor-init.editor-expand', function( event, editor ) {
+               // Make sure it's the main editor.
+               if ( editor.id !== 'content' ) {
+                       return;
+               }
+
+               // Copy the editor instance.
+               mceEditor = editor;
+
+               // Set the minimum height to the initial viewport height.
+               editor.settings.autoresize_min_height = autoresizeMinHeight;
+
+               // Get the necessary UI elements.
+               $visualTop = $contentWrap.find( '.mce-toolbar-grp' );
+               $visualEditor = $contentWrap.find( '.mce-edit-area' );
+               $statusBar = $contentWrap.find( '.mce-statusbar' );
+               $menuBar = $contentWrap.find( '.mce-menubar' );
+
+               function mceGetCursorOffset() {
+                       var node = editor.selection.getNode(),
+                               view, offset;
+
+                       if ( editor.plugins.wpview && ( view = editor.plugins.wpview.getView( node ) ) ) {
+                               offset = view.getBoundingClientRect();
+                       } else {
+                               offset = node.getBoundingClientRect();
+                       }
+
+                       return offset.height ? offset : false;
+               }
+
+               // Make sure the cursor is always visible.
+               // This is not only necessary to keep the cursor between the toolbars,
+               // but also to scroll the window when the cursor moves out of the viewport to a wpview.
+               // Setting a buffer > 0 will prevent the browser default.
+               // Some browsers will scroll to the middle,
+               // others to the top/bottom of the *window* when moving the cursor out of the viewport.
+               function mceKeyup( event ) {
+                       var VK = tinymce.util.VK,
+                               key = event.keyCode,
+                               offset = mceGetCursorOffset(),
+                               buffer = 10,
+                               cursorTop, cursorBottom, editorTop, editorBottom;
+
+                       if ( ! offset ) {
+                               return;
+                       }
+
+                       // Bail on special keys.
+                       if ( key <= 47 && ! ( key === VK.SPACEBAR || key === VK.ENTER || key === VK.DELETE || key === VK.BACKSPACE || key === VK.UP || key === VK.LEFT || key === VK.DOWN || key === VK.UP ) ) {
+                               return;
+                       // OS keys, function keys, num lock, scroll lock
+                       } else if ( ( key >= 91 && key <= 93 ) || ( key >= 112 && key <= 123 ) || key === 144 || key === 145 ) {
+                               return;
+                       }
+
+                       cursorTop = offset.top + editor.iframeElement.getBoundingClientRect().top;
+                       cursorBottom = cursorTop + offset.height;
+                       cursorTop = cursorTop - buffer;
+                       cursorBottom = cursorBottom + buffer;
+                       editorTop = heights.adminBarHeight + heights.toolsHeight + heights.menuBarHeight + heights.visualTopHeight;
+                       editorBottom = heights.windowHeight - heights.bottomHeight - heights.statusBarHeight;
+
+                       // Don't scroll if the node is taller than the visible part of the editor
+                       if ( editorBottom - editorTop < offset.height ) {
+                               return;
+                       }
+
+                       if ( cursorTop < editorTop && ( key === VK.UP || key === VK.LEFT || key === VK.BACKSPACE ) ) {
+                               window.scrollTo( window.pageXOffset, cursorTop + window.pageYOffset - editorTop );
+                       } else if ( cursorBottom > editorBottom ) {
+                               window.scrollTo( window.pageXOffset, cursorBottom + window.pageYOffset - editorBottom );
+                       }
+               }
+
+               // Adjust when switching editor modes.
+               function mceShow() {
+                       setTimeout( function() {
+                               editor.execCommand( 'wpAutoResize' );
+                               adjust();
+                       }, 300 );
+               }
+
+               function mceHide() {
+                       setTimeout( function() {
+                               var top = $contentWrap.offset().top;
+
+                               if ( window.pageYOffset > top ) {
+                                       window.scrollTo( window.pageXOffset, top - heights.adminBarHeight );
+                               }
+
+                               textEditorResize();
+                               adjust();
+                       }, 100 );
+
+                       adjust();
+               }
+
+               mceBind = function() {
+                       editor.on( 'keyup', mceKeyup );
+                       editor.on( 'show', mceShow );
+                       editor.on( 'hide', mceHide );
+                       // Adjust when the editor resizes.
+                       editor.on( 'setcontent wp-autoresize wp-toolbar-toggle', adjust );
+               };
+
+               mceUnbind = function() {
+                       editor.off( 'keyup', mceKeyup );
+                       editor.off( 'show', mceShow );
+                       editor.off( 'hide', mceHide );
+                       editor.off( 'setcontent wp-autoresize wp-toolbar-toggle', adjust );
+               };
+
+               if ( $wrap.hasClass( 'wp-editor-expand' ) ) {
+                       // Adjust "immediately"
+                       mceBind();
+                       initialResize( adjust );
+               }
+       } );
+
+       // Adjust the toolbars based on the active editor mode.
+       function adjust( type ) {
+               // Make sure we're not in fullscreen mode.
+               if ( fullscreen && fullscreen.settings.visible ) {
+                       return;
+               }
+
+               var windowPos = $window.scrollTop(),
+                       resize = type !== 'scroll',
+                       visual = ( mceEditor && ! mceEditor.isHidden() ),
+                       buffer = autoresizeMinHeight,
+                       postBodyTop = $postBody.offset().top,
+                       borderWidth = 1,
+                       contentWrapWidth = $contentWrap.width(),
+                       $top, $editor, sidebarTop, footerTop, canPin,
+                       topPos, topHeight, editorPos, editorHeight;
+
+               // Refresh the heights
+               if ( resize || ! heights.windowHeight ) {
+                       getHeights();
+               }
+
+               if ( ! visual && type === 'resize' ) {
+                       textEditorResize();
+               }
+
+               if ( visual ) {
+                       $top = $visualTop;
+                       $editor = $visualEditor;
+                       topHeight = heights.visualTopHeight;
+               } else {
+                       $top = $textTop;
+                       $editor = $textEditor;
+                       topHeight = heights.textTopHeight;
+               }
+
+               topPos = $top.parent().offset().top;
+               editorPos = $editor.offset().top;
+               editorHeight = $editor.outerHeight();
+
+               // Should we pin?
+               canPin = visual ? autoresizeMinHeight + topHeight : autoresizeMinHeight + 20; // 20px from textarea padding
+               canPin = editorHeight > ( canPin + 5 );
+
+               if ( ! canPin ) {
+                       if ( resize ) {
+                               $tools.css( {
+                                       position: 'absolute',
+                                       top: 0,
+                                       width: contentWrapWidth
+                               } );
+
+                               if ( visual && $menuBar.length ) {
+                                       $menuBar.css( {
+                                               position: 'absolute',
+                                               top: 0,
+                                               width: contentWrapWidth - ( borderWidth * 2 )
+                                       } );
+                               }
+
+                               $top.css( {
+                                       position: 'absolute',
+                                       top: heights.menuBarHeight,
+                                       width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
+                               } );
+
+                               $statusBar.add( $bottom ).attr( 'style', '' );
+                       }
+               } else {
+                       // Maybe pin the top.
+                       if ( ( ! fixedTop || resize ) &&
+                               // Handle scrolling down.
+                               ( windowPos >= ( topPos - heights.toolsHeight - heights.adminBarHeight ) &&
+                               // Handle scrolling up.
+                               windowPos <= ( topPos - heights.toolsHeight - heights.adminBarHeight + editorHeight - buffer ) ) ) {
+                               fixedTop = true;
+
+                               $tools.css( {
+                                       position: 'fixed',
+                                       top: heights.adminBarHeight,
+                                       width: contentWrapWidth
+                               } );
+
+                               if ( visual && $menuBar.length ) {
+                                       $menuBar.css( {
+                                               position: 'fixed',
+                                               top: heights.adminBarHeight + heights.toolsHeight,
+                                               width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
+                                       } );
+                               }
+
+                               $top.css( {
+                                       position: 'fixed',
+                                       top: heights.adminBarHeight + heights.toolsHeight + heights.menuBarHeight,
+                                       width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
+                               } );
+                       // Maybe unpin the top.
+                       } else if ( fixedTop || resize ) {
+                               // Handle scrolling up.
+                               if ( windowPos <= ( topPos - heights.toolsHeight - heights.adminBarHeight ) ) {
+                                       fixedTop = false;
+
+                                       $tools.css( {
+                                               position: 'absolute',
+                                               top: 0,
+                                               width: contentWrapWidth
+                                       } );
+
+                                       if ( visual && $menuBar.length ) {
+                                               $menuBar.css( {
+                                                       position: 'absolute',
+                                                       top: 0,
+                                                       width: contentWrapWidth - ( borderWidth * 2 )
+                                               } );
+                                       }
+
+                                       $top.css( {
+                                               position: 'absolute',
+                                               top: heights.menuBarHeight,
+                                               width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
+                                       } );
+                               // Handle scrolling down.
+                               } else if ( windowPos >= ( topPos - heights.toolsHeight - heights.adminBarHeight + editorHeight - buffer ) ) {
+                                       fixedTop = false;
+
+                                       $tools.css( {
+                                               position: 'absolute',
+                                               top: editorHeight - buffer,
+                                               width: contentWrapWidth
+                                       } );
+
+                                       if ( visual && $menuBar.length ) {
+                                               $menuBar.css( {
+                                                       position: 'absolute',
+                                                       top: editorHeight - buffer,
+                                                       width: contentWrapWidth - ( borderWidth * 2 )
+                                               } );
+                                       }
+
+                                       $top.css( {
+                                               position: 'absolute',
+                                               top: editorHeight - buffer + heights.menuBarHeight,
+                                               width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
+                                       } );
+                               }
+                       }
+
+                       // Maybe adjust the bottom bar.
+                       if ( ( ! fixedBottom || resize ) &&
+                               // +[n] for the border around the .wp-editor-container.
+                               ( windowPos + heights.windowHeight ) <= ( editorPos + editorHeight + heights.bottomHeight + heights.statusBarHeight + borderWidth ) ) {
+                               fixedBottom = true;
+
+                               $statusBar.css( {
+                                       position: 'fixed',
+                                       bottom: heights.bottomHeight,
+                                       width: contentWrapWidth - ( borderWidth * 2 )
+                               } );
+
+                               $bottom.css( {
+                                       position: 'fixed',
+                                       bottom: 0,
+                                       width: contentWrapWidth
+                               } );
+                       } else if ( ( fixedBottom || resize ) &&
+                                       ( windowPos + heights.windowHeight ) > ( editorPos + editorHeight + heights.bottomHeight + heights.statusBarHeight - borderWidth ) ) {
+                               fixedBottom = false;
+
+                               $statusBar.add( $bottom ).attr( 'style', '' );
+                       }
+               }
+
+               // Sidebar pinning
+               if ( $postboxContainer.width() < 300 && heights.windowWidth > 600 && // sidebar position is changed with @media from CSS, make sure it is on the side
+                       $document.height() > ( $sideSortables.height() + postBodyTop + 120 ) && // the sidebar is not the tallest element
+                       heights.windowHeight < editorHeight ) { // the editor is taller than the viewport
+
+                       if ( ( heights.sideSortablesHeight + pinnedToolsTop + sidebarBottom ) > heights.windowHeight || fixedSideTop || fixedSideBottom ) {
+                               // Reset when scrolling to the top
+                               if ( windowPos + pinnedToolsTop <= postBodyTop ) {
+                                       $sideSortables.attr( 'style', '' );
+                                       fixedSideTop = fixedSideBottom = false;
+                               } else {
+                                       if ( windowPos > lastScrollPosition ) {
+                                               // Scrolling down
+                                               if ( fixedSideTop ) {
+                                                       // let it scroll
+                                                       fixedSideTop = false;
+                                                       sidebarTop = $sideSortables.offset().top - heights.adminBarHeight;
+                                                       footerTop = $footer.offset().top;
+
+                                                       // don't get over the footer
+                                                       if ( footerTop < sidebarTop + heights.sideSortablesHeight + sidebarBottom ) {
+                                                               sidebarTop = footerTop - heights.sideSortablesHeight - 12;
+                                                       }
+
+                                                       $sideSortables.css({
+                                                               position: 'absolute',
+                                                               top: sidebarTop,
+                                                               bottom: ''
+                                                       });
+                                               } else if ( ! fixedSideBottom && heights.sideSortablesHeight + $sideSortables.offset().top + sidebarBottom < windowPos + heights.windowHeight ) {
+                                                       // pin the bottom
+                                                       fixedSideBottom = true;
+
+                                                       $sideSortables.css({
+                                                               position: 'fixed',
+                                                               top: 'auto',
+                                                               bottom: sidebarBottom
+                                                       });
+                                               }
+                                       } else if ( windowPos < lastScrollPosition ) {
+                                               // Scrolling up
+                                               if ( fixedSideBottom ) {
+                                                       // let it scroll
+                                                       fixedSideBottom = false;
+                                                       sidebarTop = $sideSortables.offset().top - sidebarBottom;
+                                                       footerTop = $footer.offset().top;
+
+                                                       // don't get over the footer
+                                                       if ( footerTop < sidebarTop + heights.sideSortablesHeight + sidebarBottom ) {
+                                                               sidebarTop = footerTop - heights.sideSortablesHeight - 12;
+                                                       }
+
+                                                       $sideSortables.css({
+                                                               position: 'absolute',
+                                                               top: sidebarTop,
+                                                               bottom: ''
+                                                       });
+                                               } else if ( ! fixedSideTop && $sideSortables.offset().top >= windowPos + pinnedToolsTop ) {
+                                                       // pin the top
+                                                       fixedSideTop = true;
+
+                                                       $sideSortables.css({
+                                                               position: 'fixed',
+                                                               top: pinnedToolsTop,
+                                                               bottom: ''
+                                                       });
+                                               }
+                                       }
+                               }
+                       } else {
+                               // if the sidebar container is smaller than the viewport, then pin/unpin the top when scrolling
+                               if ( windowPos >= ( postBodyTop - pinnedToolsTop ) ) {
+
+                                       $sideSortables.css( {
+                                               position: 'fixed',
+                                               top: pinnedToolsTop
+                                       } );
+                               } else {
+                                       $sideSortables.attr( 'style', '' );
+                               }
+
+                               fixedSideTop = fixedSideBottom = false;
+                       }
+
+                       lastScrollPosition = windowPos;
+               } else {
+                       $sideSortables.attr( 'style', '' );
+                       fixedSideTop = fixedSideBottom = false;
+               }
+
+               if ( resize ) {
+                       $contentWrap.css( {
+                               paddingTop: heights.toolsHeight
+                       } );
+
+                       if ( visual ) {
+                               $visualEditor.css( {
+                                       paddingTop: heights.visualTopHeight + heights.menuBarHeight
+                               } );
+                       } else {
+                               $textEditor.css( {
+                                       marginTop: heights.textTopHeight
+                               } );
+
+                               $textEditorClone.width( contentWrapWidth - 20 - ( borderWidth * 2 ) );
+                       }
+               }
+       }
+
+       function fullscreenHide() {
+               textEditorResize();
+               adjust();
+       }
+
+       function initialResize( callback ) {
+               for ( var i = 1; i < 6; i++ ) {
+                       setTimeout( callback, 500 * i );
+               }
+       }
+
+       function afterScroll() {
+               clearTimeout( scrollTimer );
+               scrollTimer = setTimeout( adjust, 100 );
+       }
+
+       function on() {
+               // Scroll to the top when triggering this from JS.
+               // Ensures toolbars are pinned properly.
+               if ( window.pageYOffset && window.pageYOffset > pageYOffsetAtTop ) {
+                       window.scrollTo( window.pageXOffset, 0 );
+               }
+
+               $wrap.addClass( 'wp-editor-expand' );
+
+               // Adjust when the window is scrolled or resized.
+               $window.on( 'scroll.editor-expand resize.editor-expand', function( event ) {
+                       adjust( event.type );
+                       afterScroll();
+               } );
+
+               // Adjust when collapsing the menu, changing the columns, changing the body class.
+               $document.on( 'wp-collapse-menu.editor-expand postboxes-columnchange.editor-expand editor-classchange.editor-expand', adjust )
+                       .on( 'postbox-toggled.editor-expand', function() {
+                               if ( ! fixedSideTop && ! fixedSideBottom && window.pageYOffset > pinnedToolsTop ) {
+                                       fixedSideBottom = true;
+                                       window.scrollBy( 0, -1 );
+                                       adjust();
+                                       window.scrollBy( 0, 1 );
+                               }
+
+                               adjust();
+                       });
+
+               $textEditor.on( 'focus.editor-expand input.editor-expand propertychange.editor-expand', textEditorResize );
+               $textEditor.on( 'keyup.editor-expand', textEditorKeyup );
+               mceBind();
+
+               // Adjust when entering/exiting fullscreen mode.
+               fullscreen && fullscreen.pubsub.subscribe( 'hidden', fullscreenHide );
+
+               if ( mceEditor ) {
+                       mceEditor.settings.wp_autoresize_on = true;
+                       mceEditor.execCommand( 'wpAutoResizeOn' );
+
+                       if ( ! mceEditor.isHidden() ) {
+                               mceEditor.execCommand( 'wpAutoResize' );
+                       }
+               }
+
+               if ( ! mceEditor || mceEditor.isHidden() ) {
+                       textEditorResize();
+               }
+
+               adjust();
+       }
+
+       function off() {
+               var height = window.getUserSetting('ed_size');
+
+               // Scroll to the top when triggering this from JS.
+               // Ensures toolbars are reset properly.
+               if ( window.pageYOffset && window.pageYOffset > pageYOffsetAtTop ) {
+                       window.scrollTo( window.pageXOffset, 0 );
+               }
+
+               $wrap.removeClass( 'wp-editor-expand' );
+
+               $window.off( '.editor-expand' );
+               $document.off( '.editor-expand' );
+               $textEditor.off( '.editor-expand' );
+               mceUnbind();
+
+               // Adjust when entering/exiting fullscreen mode.
+               fullscreen && fullscreen.pubsub.unsubscribe( 'hidden', fullscreenHide );
+
+               // Reset all css
+               $.each( [ $visualTop, $textTop, $tools, $menuBar, $bottom, $statusBar, $contentWrap, $visualEditor, $textEditor, $sideSortables ], function( i, element ) {
+                       element && element.attr( 'style', '' );
+               });
+
+               fixedTop = fixedBottom = fixedSideTop = fixedSideBottom = false;
+
+               if ( mceEditor ) {
+                       mceEditor.settings.wp_autoresize_on = false;
+                       mceEditor.execCommand( 'wpAutoResizeOff' );
+
+                       if ( ! mceEditor.isHidden() ) {
+                               $textEditor.hide();
+
+                               if ( height ) {
+                                       mceEditor.theme.resizeTo( null, height );
+                               }
+                       }
+               }
+
+               if ( height ) {
+                       $textEditor.height( height );
+               }
+       }
+
+       // Start on load
+       if ( $wrap.hasClass( 'wp-editor-expand' ) ) {
+               on();
+
+               // Ideally we need to resize just after CSS has fully loaded and QuickTags is ready.
+               if ( $contentWrap.hasClass( 'html-active' ) ) {
+                       initialResize( function() {
+                               adjust();
+                               textEditorResize();
+                       } );
+               }
+       }
+
+       // Show the on/off checkbox
+       $( '#adv-settings .editor-expand' ).show();
+       $( '#editor-expand-toggle' ).on( 'change.editor-expand', function() {
+               if ( $(this).prop( 'checked' ) ) {
+                       on();
+                       window.setUserSetting( 'editor_expand', 'on' );
+               } else {
+                       off();
+                       window.setUserSetting( 'editor_expand', 'off' );
+               }
+       });
+
+       // Expose on() and off()
+       window.editorExpand = {
+               on: on,
+               off: off
+       };
+});
diff --git a/wp-admin/js/editor-expand.min.js b/wp-admin/js/editor-expand.min.js
new file mode 100644 (file)
index 0000000..7104766
--- /dev/null
@@ -0,0 +1 @@
+window.wp=window.wp||{},jQuery(document).ready(function(a){function b(){var a=m.width();R={windowHeight:m.height(),windowWidth:a,adminBarHeight:a>600?o.outerHeight():0,toolsHeight:s.outerHeight()||0,menuBarHeight:z.outerHeight()||0,visualTopHeight:t.outerHeight()||0,textTopHeight:v.outerHeight()||0,bottomHeight:y.outerHeight()||0,statusBarHeight:A.outerHeight()||0,sideSortablesHeight:B.height()||0},R.menuBarHeight<3&&(R.menuBarHeight=0)}function c(a){var b,c,d,e,f,g=jQuery.ui.keyCode,h=a.keyCode,i=document.createRange(),j=w[0].selectionStart,k=w[0].selectionEnd,l=x[0].firstChild,m=10;if(!j||!k||j===k){try{i.setStart(l,j),i.setEnd(l,k+1)}catch(n){}b=i.getBoundingClientRect(),b.height&&(c=b.top-m,d=c+b.height+m,e=R.adminBarHeight+R.toolsHeight+R.textTopHeight,f=R.windowHeight-R.bottomHeight,e>c&&(h===g.UP||h===g.LEFT||h===g.BACKSPACE)?window.scrollTo(window.pageXOffset,c+window.pageYOffset-e):d>f&&window.scrollTo(window.pageXOffset,d+window.pageYOffset-f))}}function d(){if(!(k&&!k.isHidden()||!k&&"tinymce"===Q)){var a,b=w.height();x.width(w.width()-22),x.text(w.val()+"&nbsp;"),a=x.height(),P>a&&(a=P),a!==b&&(w.height(a),e())}}function e(a){if(!E||!E.settings.visible){var c,e,f,g,h,i,j,l,o,q=m.scrollTop(),F="scroll"!==a,G=k&&!k.isHidden(),M=P,Q=D.offset().top,S=1,T=r.width();(F||!R.windowHeight)&&b(),G||"resize"!==a||d(),G?(c=t,e=u,j=R.visualTopHeight):(c=v,e=w,j=R.textTopHeight),i=c.parent().offset().top,l=e.offset().top,o=e.outerHeight(),h=G?P+j:P+20,h=o>h+5,h?((!H||F)&&q>=i-R.toolsHeight-R.adminBarHeight&&q<=i-R.toolsHeight-R.adminBarHeight+o-M?(H=!0,s.css({position:"fixed",top:R.adminBarHeight,width:T}),G&&z.length&&z.css({position:"fixed",top:R.adminBarHeight+R.toolsHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())}),c.css({position:"fixed",top:R.adminBarHeight+R.toolsHeight+R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())})):(H||F)&&(q<=i-R.toolsHeight-R.adminBarHeight?(H=!1,s.css({position:"absolute",top:0,width:T}),G&&z.length&&z.css({position:"absolute",top:0,width:T-2*S}),c.css({position:"absolute",top:R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())})):q>=i-R.toolsHeight-R.adminBarHeight+o-M&&(H=!1,s.css({position:"absolute",top:o-M,width:T}),G&&z.length&&z.css({position:"absolute",top:o-M,width:T-2*S}),c.css({position:"absolute",top:o-M+R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())}))),(!I||F)&&q+R.windowHeight<=l+o+R.bottomHeight+R.statusBarHeight+S?(I=!0,A.css({position:"fixed",bottom:R.bottomHeight,width:T-2*S}),y.css({position:"fixed",bottom:0,width:T})):(I||F)&&q+R.windowHeight>l+o+R.bottomHeight+R.statusBarHeight-S&&(I=!1,A.add(y).attr("style",""))):F&&(s.css({position:"absolute",top:0,width:T}),G&&z.length&&z.css({position:"absolute",top:0,width:T-2*S}),c.css({position:"absolute",top:R.menuBarHeight,width:T-2*S-(G?0:c.outerWidth()-c.width())}),A.add(y).attr("style","")),C.width()<300&&R.windowWidth>600&&n.height()>B.height()+Q+120&&R.windowHeight<o?(R.sideSortablesHeight+N+O>R.windowHeight||J||K?Q>=q+N?(B.attr("style",""),J=K=!1):q>L?J?(J=!1,f=B.offset().top-R.adminBarHeight,g=p.offset().top,g<f+R.sideSortablesHeight+O&&(f=g-R.sideSortablesHeight-12),B.css({position:"absolute",top:f,bottom:""})):!K&&R.sideSortablesHeight+B.offset().top+O<q+R.windowHeight&&(K=!0,B.css({position:"fixed",top:"auto",bottom:O})):L>q&&(K?(K=!1,f=B.offset().top-O,g=p.offset().top,g<f+R.sideSortablesHeight+O&&(f=g-R.sideSortablesHeight-12),B.css({position:"absolute",top:f,bottom:""})):!J&&B.offset().top>=q+N&&(J=!0,B.css({position:"fixed",top:N,bottom:""}))):(q>=Q-N?B.css({position:"fixed",top:N}):B.attr("style",""),J=K=!1),L=q):(B.attr("style",""),J=K=!1),F&&(r.css({paddingTop:R.toolsHeight}),G?u.css({paddingTop:R.visualTopHeight+R.menuBarHeight}):(w.css({marginTop:R.textTopHeight}),x.width(T-20-2*S)))}}function f(){d(),e()}function g(a){for(var b=1;6>b;b++)setTimeout(a,500*b)}function h(){clearTimeout(l),l=setTimeout(e,100)}function i(){window.pageYOffset&&window.pageYOffset>M&&window.scrollTo(window.pageXOffset,0),q.addClass("wp-editor-expand"),m.on("scroll.editor-expand resize.editor-expand",function(a){e(a.type),h()}),n.on("wp-collapse-menu.editor-expand postboxes-columnchange.editor-expand editor-classchange.editor-expand",e).on("postbox-toggled.editor-expand",function(){!J&&!K&&window.pageYOffset>N&&(K=!0,window.scrollBy(0,-1),e(),window.scrollBy(0,1)),e()}),w.on("focus.editor-expand input.editor-expand propertychange.editor-expand",d),w.on("keyup.editor-expand",c),F(),E&&E.pubsub.subscribe("hidden",f),k&&(k.settings.wp_autoresize_on=!0,k.execCommand("wpAutoResizeOn"),k.isHidden()||k.execCommand("wpAutoResize")),(!k||k.isHidden())&&d(),e()}function j(){var b=window.getUserSetting("ed_size");window.pageYOffset&&window.pageYOffset>M&&window.scrollTo(window.pageXOffset,0),q.removeClass("wp-editor-expand"),m.off(".editor-expand"),n.off(".editor-expand"),w.off(".editor-expand"),G(),E&&E.pubsub.unsubscribe("hidden",f),a.each([t,v,s,z,y,A,r,u,w,B],function(a,b){b&&b.attr("style","")}),H=I=J=K=!1,k&&(k.settings.wp_autoresize_on=!1,k.execCommand("wpAutoResizeOff"),k.isHidden()||(w.hide(),b&&k.theme.resizeTo(null,b))),b&&w.height(b)}var k,l,m=a(window),n=a(document),o=a("#wpadminbar"),p=a("#wpfooter"),q=a("#postdivrich"),r=a("#wp-content-wrap"),s=a("#wp-content-editor-tools"),t=a(),u=a(),v=a("#ed_toolbar"),w=a("#content"),x=a('<div id="content-textarea-clone"></div>'),y=a("#post-status-info"),z=a(),A=a(),B=a("#side-sortables"),C=a("#postbox-container-1"),D=a("#post-body"),E=window.wp.editor&&window.wp.editor.fullscreen,F=function(){},G=function(){},H=!1,I=!1,J=!1,K=!1,L=0,M=130,N=56,O=20,P=300,Q=window.getUserSetting("editor"),R={windowHeight:0,windowWidth:0,adminBarHeight:0,toolsHeight:0,menuBarHeight:0,visualTopHeight:0,textTopHeight:0,bottomHeight:0,statusBarHeight:0,sideSortablesHeight:0};x.insertAfter(w),x.css({"font-family":w.css("font-family"),"font-size":w.css("font-size"),"line-height":w.css("line-height"),"white-space":"pre-wrap","word-wrap":"break-word"}),n.on("tinymce-editor-init.editor-expand",function(a,b){function c(){var a,c,d=b.selection.getNode();return c=b.plugins.wpview&&(a=b.plugins.wpview.getView(d))?a.getBoundingClientRect():d.getBoundingClientRect(),c.height?c:!1}function f(a){var d,e,f,g,h=tinymce.util.VK,i=a.keyCode,j=c(),k=10;j&&(47>=i&&i!==h.SPACEBAR&&i!==h.ENTER&&i!==h.DELETE&&i!==h.BACKSPACE&&i!==h.UP&&i!==h.LEFT&&i!==h.DOWN&&i!==h.UP||i>=91&&93>=i||i>=112&&123>=i||144===i||145===i||(d=j.top+b.iframeElement.getBoundingClientRect().top,e=d+j.height,d-=k,e+=k,f=R.adminBarHeight+R.toolsHeight+R.menuBarHeight+R.visualTopHeight,g=R.windowHeight-R.bottomHeight-R.statusBarHeight,g-f<j.height||(f>d&&(i===h.UP||i===h.LEFT||i===h.BACKSPACE)?window.scrollTo(window.pageXOffset,d+window.pageYOffset-f):e>g&&window.scrollTo(window.pageXOffset,e+window.pageYOffset-g))))}function h(){setTimeout(function(){b.execCommand("wpAutoResize"),e()},300)}function i(){setTimeout(function(){var a=r.offset().top;window.pageYOffset>a&&window.scrollTo(window.pageXOffset,a-R.adminBarHeight),d(),e()},100),e()}"content"===b.id&&(k=b,b.settings.autoresize_min_height=P,t=r.find(".mce-toolbar-grp"),u=r.find(".mce-edit-area"),A=r.find(".mce-statusbar"),z=r.find(".mce-menubar"),F=function(){b.on("keyup",f),b.on("show",h),b.on("hide",i),b.on("setcontent wp-autoresize wp-toolbar-toggle",e)},G=function(){b.off("keyup",f),b.off("show",h),b.off("hide",i),b.off("setcontent wp-autoresize wp-toolbar-toggle",e)},q.hasClass("wp-editor-expand")&&(F(),g(e)))}),q.hasClass("wp-editor-expand")&&(i(),r.hasClass("html-active")&&g(function(){e(),d()})),a("#adv-settings .editor-expand").show(),a("#editor-expand-toggle").on("change.editor-expand",function(){a(this).prop("checked")?(i(),window.setUserSetting("editor_expand","on")):(j(),window.setUserSetting("editor_expand","off"))}),window.editorExpand={on:i,off:j}});
\ No newline at end of file
index e71871635590e32ab3df94f6487790411bd62c8f..0712ebc1ae853bc0152674f0c7e6fa4f58e9d9e5 100644 (file)
@@ -60,7 +60,8 @@ window.switchEditors = {
                        if ( ed ) {
                                ed.show();
 
                        if ( ed ) {
                                ed.show();
 
-                               if ( editorHeight ) {
+                               // No point resizing the iframe in iOS
+                               if ( ! tinymce.Env.iOS && editorHeight ) {
                                        toolbarHeight = getToolbarHeight();
                                        editorHeight = editorHeight - toolbarHeight + 14;
 
                                        toolbarHeight = getToolbarHeight();
                                        editorHeight = editorHeight - toolbarHeight + 14;
 
@@ -84,16 +85,18 @@ window.switchEditors = {
                        }
 
                        if ( ed ) {
                        }
 
                        if ( ed ) {
-                               iframe = DOM.get( id + '_ifr' );
-                               editorHeight = iframe ? parseInt( iframe.style.height, 10 ) : 0;
-
-                               if ( editorHeight ) {
-                                       toolbarHeight = getToolbarHeight();
-                                       editorHeight = editorHeight + toolbarHeight - 14;
-
-                                       // height cannot be under 50 or over 5000
-                                       if ( editorHeight > 50 && editorHeight < 5000 ) {
-                                               txtarea_el.style.height = editorHeight + 'px';
+                               if ( ! tinymce.Env.iOS ) {
+                                       iframe = DOM.get( id + '_ifr' );
+                                       editorHeight = iframe ? parseInt( iframe.style.height, 10 ) : 0;
+
+                                       if ( editorHeight ) {
+                                               toolbarHeight = getToolbarHeight();
+                                               editorHeight = editorHeight + toolbarHeight - 14;
+
+                                               // height cannot be under 50 or over 5000
+                                               if ( editorHeight > 50 && editorHeight < 5000 ) {
+                                                       txtarea_el.style.height = editorHeight + 'px';
+                                               }
                                        }
                                }
 
                                        }
                                }
 
@@ -165,6 +168,11 @@ window.switchEditors = {
                content = content.replace( new RegExp('\\s*</(' + blocklist2 + ')>\\s*', 'g' ), '</$1>\n' );
                content = content.replace( /<li([^>]*)>/g, '\t<li$1>' );
 
                content = content.replace( new RegExp('\\s*</(' + blocklist2 + ')>\\s*', 'g' ), '</$1>\n' );
                content = content.replace( /<li([^>]*)>/g, '\t<li$1>' );
 
+               if ( content.indexOf( '<option' ) !== -1 ) {
+                       content = content.replace( /\s*<option/g, '\n<option' );
+                       content = content.replace( /\s*<\/select>/g, '\n</select>' );
+               }
+
                if ( content.indexOf( '<hr' ) !== -1 ) {
                        content = content.replace( /\s*<hr( [^>]*)?>\s*/g, '\n\n<hr$1>\n\n' );
                }
                if ( content.indexOf( '<hr' ) !== -1 ) {
                        content = content.replace( /\s*<hr( [^>]*)?>\s*/g, '\n\n<hr$1>\n\n' );
                }
@@ -200,7 +208,7 @@ window.switchEditors = {
                var preserve_linebreaks = false,
                        preserve_br = false,
                        blocklist = 'table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre' +
                var preserve_linebreaks = false,
                        preserve_br = false,
                        blocklist = 'table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre' +
-                               '|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|noscript|legend|section' +
+                               '|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section' +
                                '|article|aside|hgroup|header|footer|nav|figure|details|menu|summary';
 
                if ( pee.indexOf( '<object' ) !== -1 ) {
                                '|article|aside|hgroup|header|footer|nav|figure|details|menu|summary';
 
                if ( pee.indexOf( '<object' ) !== -1 ) {
@@ -241,6 +249,8 @@ window.switchEditors = {
                pee = pee.replace( new RegExp( '(<(?:' + blocklist + ')(?: [^>]*)?>)', 'gi' ), '\n$1' );
                pee = pee.replace( new RegExp( '(</(?:' + blocklist + ')>)', 'gi' ), '$1\n\n' );
                pee = pee.replace( /<hr( [^>]*)?>/gi, '<hr$1>\n\n' ); // hr is self closing block element
                pee = pee.replace( new RegExp( '(<(?:' + blocklist + ')(?: [^>]*)?>)', 'gi' ), '\n$1' );
                pee = pee.replace( new RegExp( '(</(?:' + blocklist + ')>)', 'gi' ), '$1\n\n' );
                pee = pee.replace( /<hr( [^>]*)?>/gi, '<hr$1>\n\n' ); // hr is self closing block element
+               pee = pee.replace( /\s*<option/gi, '<option' ); // No <p> or <br> around <option>
+               pee = pee.replace( /<\/option>\s*/gi, '</option>' );
                pee = pee.replace( /\r\n|\r/g, '\n' );
                pee = pee.replace( /\n\s*\n+/g, '\n\n' );
                pee = pee.replace( /([\s\S]+?)\n\n/g, '<p>$1</p>\n' );
                pee = pee.replace( /\r\n|\r/g, '\n' );
                pee = pee.replace( /\n\s*\n+/g, '\n\n' );
                pee = pee.replace( /([\s\S]+?)\n\n/g, '<p>$1</p>\n' );
index 9babf7bdf17dc4a8f977317ace451e95b3511b94..fd5e97c5ca1ccaa5322bea8eccf66e875b743859 100644 (file)
@@ -1 +1 @@
-window.switchEditors={switchto:function(a){var b=a.id,c=b.length,d=b.substr(0,c-5),e=b.substr(c-4);this.go(d,e)},go:function(a,b){function c(){var a=k.select(".mce-toolbar-grp",d.getContainer())[0],b=a&&a.clientHeight;return b&&b>10&&200>b?parseInt(b,10):30}var d,e,f,g,h,i,j=this,k=tinymce.DOM;if(a=a||"content",b=b||"toggle",d=tinymce.get(a),e="wp-"+a+"-wrap",f=k.get(a),"toggle"===b&&(b=d&&!d.isHidden()?"html":"tmce"),"tmce"===b||"tinymce"===b){if(d&&!d.isHidden())return!1;"undefined"!=typeof QTags&&QTags.closeAllTags(a),h=f?parseInt(f.style.height,10):0,tinyMCEPreInit.mceInit[a]&&tinyMCEPreInit.mceInit[a].wpautop&&(f.value=j.wpautop(f.value)),d?(d.show(),h&&(i=c(),h=h-i+14,h>50&&5e3>h&&d.theme.resizeTo(null,h))):tinymce.init(tinyMCEPreInit.mceInit[a]),k.removeClass(e,"html-active"),k.addClass(e,"tmce-active"),setUserSetting("editor","tinymce")}else if("html"===b){if(d&&d.isHidden())return!1;d?(g=k.get(a+"_ifr"),h=g?parseInt(g.style.height,10):0,h&&(i=c(),h=h+i-14,h>50&&5e3>h&&(f.style.height=h+"px")),d.hide()):(tinyMCEPreInit.mceInit[a]&&tinyMCEPreInit.mceInit[a].wpautop&&(f.value=j.pre_wpautop(f.value)),k.setStyles(f,{display:"",visibility:""})),k.removeClass(e,"tmce-active"),k.addClass(e,"html-active"),setUserSetting("editor","html")}return!1},_wp_Nop:function(a){var b,c,d=!1,e=!1;return(-1!==a.indexOf("<pre")||-1!==a.indexOf("<script"))&&(d=!0,a=a.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(a){return a=a.replace(/<br ?\/?>(\r\n|\n)?/g,"<wp-line-break>"),a=a.replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g,"<wp-line-break>"),a.replace(/\r?\n/g,"<wp-line-break>")})),-1!==a.indexOf("[caption")&&(e=!0,a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(a){return a.replace(/<br([^>]*)>/g,"<wp-temp-br$1>").replace(/[\r\n\t]+/,"")})),b="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|div|h[1-6]|p|fieldset",a=a.replace(new RegExp("\\s*</("+b+")>\\s*","g"),"</$1>\n"),a=a.replace(new RegExp("\\s*<((?:"+b+")(?: [^>]*)?)>","g"),"\n<$1>"),a=a.replace(/(<p [^>]+>.*?)<\/p>/g,"$1</p#>"),a=a.replace(/<div( [^>]*)?>\s*<p>/gi,"<div$1>\n\n"),a=a.replace(/\s*<p>/gi,""),a=a.replace(/\s*<\/p>\s*/gi,"\n\n"),a=a.replace(/\n[\s\u00a0]+\n/g,"\n\n"),a=a.replace(/\s*<br ?\/?>\s*/gi,"\n"),a=a.replace(/\s*<div/g,"\n<div"),a=a.replace(/<\/div>\s*/g,"</div>\n"),a=a.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi,"\n\n[caption$1[/caption]\n\n"),a=a.replace(/caption\]\n\n+\[caption/g,"caption]\n\n[caption"),c="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|h[1-6]|pre|fieldset",a=a.replace(new RegExp("\\s*<((?:"+c+")(?: [^>]*)?)\\s*>","g"),"\n<$1>"),a=a.replace(new RegExp("\\s*</("+c+")>\\s*","g"),"</$1>\n"),a=a.replace(/<li([^>]*)>/g,"      <li$1>"),-1!==a.indexOf("<hr")&&(a=a.replace(/\s*<hr( [^>]*)?>\s*/g,"\n\n<hr$1>\n\n")),-1!==a.indexOf("<object")&&(a=a.replace(/<object[\s\S]+?<\/object>/g,function(a){return a.replace(/[\r\n]+/g,"")})),a=a.replace(/<\/p#>/g,"</p>\n"),a=a.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g,"\n$1"),a=a.replace(/^\s+/,""),a=a.replace(/[\s\u00a0]+$/,""),d&&(a=a.replace(/<wp-line-break>/g,"\n")),e&&(a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),a},_wp_Autop:function(a){var b=!1,c=!1,d="table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|noscript|legend|section|article|aside|hgroup|header|footer|nav|figure|details|menu|summary";return-1!==a.indexOf("<object")&&(a=a.replace(/<object[\s\S]+?<\/object>/g,function(a){return a.replace(/[\r\n]+/g,"")})),a=a.replace(/<[^<>]+>/g,function(a){return a.replace(/[\r\n]+/g," ")}),(-1!==a.indexOf("<pre")||-1!==a.indexOf("<script"))&&(b=!0,a=a.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(a){return a.replace(/(\r\n|\n)/g,"<wp-line-break>")})),-1!==a.indexOf("[caption")&&(c=!0,a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(a){return a=a.replace(/<br([^>]*)>/g,"<wp-temp-br$1>"),a=a.replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),a.replace(/\s*\n\s*/g,"<wp-temp-br />")})),a+="\n\n",a=a.replace(/<br \/>\s*<br \/>/gi,"\n\n"),a=a.replace(new RegExp("(<(?:"+d+")(?: [^>]*)?>)","gi"),"\n$1"),a=a.replace(new RegExp("(</(?:"+d+")>)","gi"),"$1\n\n"),a=a.replace(/<hr( [^>]*)?>/gi,"<hr$1>\n\n"),a=a.replace(/\r\n|\r/g,"\n"),a=a.replace(/\n\s*\n+/g,"\n\n"),a=a.replace(/([\s\S]+?)\n\n/g,"<p>$1</p>\n"),a=a.replace(/<p>\s*?<\/p>/gi,""),a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1"),a=a.replace(/<p>(<li.+?)<\/p>/gi,"$1"),a=a.replace(/<p>\s*<blockquote([^>]*)>/gi,"<blockquote$1><p>"),a=a.replace(/<\/blockquote>\s*<\/p>/gi,"</p></blockquote>"),a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)","gi"),"$1"),a=a.replace(new RegExp("(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1"),a=a.replace(/\s*\n/gi,"<br />\n"),a=a.replace(new RegExp("(</?(?:"+d+")[^>]*>)\\s*<br />","gi"),"$1"),a=a.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi,"$1"),a=a.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi,"[caption$1[/caption]"),a=a.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g,function(a,b,c){return c.match(/<p( [^>]*)?>/)?a:b+"<p>"+c+"</p>"}),b&&(a=a.replace(/<wp-line-break>/g,"\n")),c&&(a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),a},pre_wpautop:function(a){var b=this,c={o:b,data:a,unfiltered:a},d="undefined"!=typeof jQuery;return d&&jQuery("body").trigger("beforePreWpautop",[c]),c.data=b._wp_Nop(c.data),d&&jQuery("body").trigger("afterPreWpautop",[c]),c.data},wpautop:function(a){var b=this,c={o:b,data:a,unfiltered:a},d="undefined"!=typeof jQuery;return d&&jQuery("body").trigger("beforeWpautop",[c]),c.data=b._wp_Autop(c.data),d&&jQuery("body").trigger("afterWpautop",[c]),c.data}};
\ No newline at end of file
+window.switchEditors={switchto:function(a){var b=a.id,c=b.length,d=b.substr(0,c-5),e=b.substr(c-4);this.go(d,e)},go:function(a,b){function c(){var a=k.select(".mce-toolbar-grp",d.getContainer())[0],b=a&&a.clientHeight;return b&&b>10&&200>b?parseInt(b,10):30}var d,e,f,g,h,i,j=this,k=tinymce.DOM;if(a=a||"content",b=b||"toggle",d=tinymce.get(a),e="wp-"+a+"-wrap",f=k.get(a),"toggle"===b&&(b=d&&!d.isHidden()?"html":"tmce"),"tmce"===b||"tinymce"===b){if(d&&!d.isHidden())return!1;"undefined"!=typeof QTags&&QTags.closeAllTags(a),h=f?parseInt(f.style.height,10):0,tinyMCEPreInit.mceInit[a]&&tinyMCEPreInit.mceInit[a].wpautop&&(f.value=j.wpautop(f.value)),d?(d.show(),!tinymce.Env.iOS&&h&&(i=c(),h=h-i+14,h>50&&5e3>h&&d.theme.resizeTo(null,h))):tinymce.init(tinyMCEPreInit.mceInit[a]),k.removeClass(e,"html-active"),k.addClass(e,"tmce-active"),setUserSetting("editor","tinymce")}else if("html"===b){if(d&&d.isHidden())return!1;d?(tinymce.Env.iOS||(g=k.get(a+"_ifr"),h=g?parseInt(g.style.height,10):0,h&&(i=c(),h=h+i-14,h>50&&5e3>h&&(f.style.height=h+"px"))),d.hide()):(tinyMCEPreInit.mceInit[a]&&tinyMCEPreInit.mceInit[a].wpautop&&(f.value=j.pre_wpautop(f.value)),k.setStyles(f,{display:"",visibility:""})),k.removeClass(e,"tmce-active"),k.addClass(e,"html-active"),setUserSetting("editor","html")}return!1},_wp_Nop:function(a){var b,c,d=!1,e=!1;return(-1!==a.indexOf("<pre")||-1!==a.indexOf("<script"))&&(d=!0,a=a.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(a){return a=a.replace(/<br ?\/?>(\r\n|\n)?/g,"<wp-line-break>"),a=a.replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g,"<wp-line-break>"),a.replace(/\r?\n/g,"<wp-line-break>")})),-1!==a.indexOf("[caption")&&(e=!0,a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(a){return a.replace(/<br([^>]*)>/g,"<wp-temp-br$1>").replace(/[\r\n\t]+/,"")})),b="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|div|h[1-6]|p|fieldset",a=a.replace(new RegExp("\\s*</("+b+")>\\s*","g"),"</$1>\n"),a=a.replace(new RegExp("\\s*<((?:"+b+")(?: [^>]*)?)>","g"),"\n<$1>"),a=a.replace(/(<p [^>]+>.*?)<\/p>/g,"$1</p#>"),a=a.replace(/<div( [^>]*)?>\s*<p>/gi,"<div$1>\n\n"),a=a.replace(/\s*<p>/gi,""),a=a.replace(/\s*<\/p>\s*/gi,"\n\n"),a=a.replace(/\n[\s\u00a0]+\n/g,"\n\n"),a=a.replace(/\s*<br ?\/?>\s*/gi,"\n"),a=a.replace(/\s*<div/g,"\n<div"),a=a.replace(/<\/div>\s*/g,"</div>\n"),a=a.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi,"\n\n[caption$1[/caption]\n\n"),a=a.replace(/caption\]\n\n+\[caption/g,"caption]\n\n[caption"),c="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|h[1-6]|pre|fieldset",a=a.replace(new RegExp("\\s*<((?:"+c+")(?: [^>]*)?)\\s*>","g"),"\n<$1>"),a=a.replace(new RegExp("\\s*</("+c+")>\\s*","g"),"</$1>\n"),a=a.replace(/<li([^>]*)>/g," <li$1>"),-1!==a.indexOf("<option")&&(a=a.replace(/\s*<option/g,"\n<option"),a=a.replace(/\s*<\/select>/g,"\n</select>")),-1!==a.indexOf("<hr")&&(a=a.replace(/\s*<hr( [^>]*)?>\s*/g,"\n\n<hr$1>\n\n")),-1!==a.indexOf("<object")&&(a=a.replace(/<object[\s\S]+?<\/object>/g,function(a){return a.replace(/[\r\n]+/g,"")})),a=a.replace(/<\/p#>/g,"</p>\n"),a=a.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g,"\n$1"),a=a.replace(/^\s+/,""),a=a.replace(/[\s\u00a0]+$/,""),d&&(a=a.replace(/<wp-line-break>/g,"\n")),e&&(a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),a},_wp_Autop:function(a){var b=!1,c=!1,d="table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|details|menu|summary";return-1!==a.indexOf("<object")&&(a=a.replace(/<object[\s\S]+?<\/object>/g,function(a){return a.replace(/[\r\n]+/g,"")})),a=a.replace(/<[^<>]+>/g,function(a){return a.replace(/[\r\n]+/g," ")}),(-1!==a.indexOf("<pre")||-1!==a.indexOf("<script"))&&(b=!0,a=a.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(a){return a.replace(/(\r\n|\n)/g,"<wp-line-break>")})),-1!==a.indexOf("[caption")&&(c=!0,a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(a){return a=a.replace(/<br([^>]*)>/g,"<wp-temp-br$1>"),a=a.replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),a.replace(/\s*\n\s*/g,"<wp-temp-br />")})),a+="\n\n",a=a.replace(/<br \/>\s*<br \/>/gi,"\n\n"),a=a.replace(new RegExp("(<(?:"+d+")(?: [^>]*)?>)","gi"),"\n$1"),a=a.replace(new RegExp("(</(?:"+d+")>)","gi"),"$1\n\n"),a=a.replace(/<hr( [^>]*)?>/gi,"<hr$1>\n\n"),a=a.replace(/\s*<option/gi,"<option"),a=a.replace(/<\/option>\s*/gi,"</option>"),a=a.replace(/\r\n|\r/g,"\n"),a=a.replace(/\n\s*\n+/g,"\n\n"),a=a.replace(/([\s\S]+?)\n\n/g,"<p>$1</p>\n"),a=a.replace(/<p>\s*?<\/p>/gi,""),a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1"),a=a.replace(/<p>(<li.+?)<\/p>/gi,"$1"),a=a.replace(/<p>\s*<blockquote([^>]*)>/gi,"<blockquote$1><p>"),a=a.replace(/<\/blockquote>\s*<\/p>/gi,"</p></blockquote>"),a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)","gi"),"$1"),a=a.replace(new RegExp("(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1"),a=a.replace(/\s*\n/gi,"<br />\n"),a=a.replace(new RegExp("(</?(?:"+d+")[^>]*>)\\s*<br />","gi"),"$1"),a=a.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi,"$1"),a=a.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi,"[caption$1[/caption]"),a=a.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g,function(a,b,c){return c.match(/<p( [^>]*)?>/)?a:b+"<p>"+c+"</p>"}),b&&(a=a.replace(/<wp-line-break>/g,"\n")),c&&(a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),a},pre_wpautop:function(a){var b=this,c={o:b,data:a,unfiltered:a},d="undefined"!=typeof jQuery;return d&&jQuery("body").trigger("beforePreWpautop",[c]),c.data=b._wp_Nop(c.data),d&&jQuery("body").trigger("afterPreWpautop",[c]),c.data},wpautop:function(a){var b=this,c={o:b,data:a,unfiltered:a},d="undefined"!=typeof jQuery;return d&&jQuery("body").trigger("beforeWpautop",[c]),c.data=b._wp_Autop(c.data),d&&jQuery("body").trigger("afterWpautop",[c]),c.data}};
\ No newline at end of file
index 0a592d901e56a7d2e102359f4f6319a5b792ac34..7bf292880bc8ccb772dab4ac89330ab23dfebc0b 100644 (file)
@@ -274,7 +274,7 @@ var imageEdit = window.imageEdit = {
                        var ret = JSON.parse(r);
 
                        if ( ret.error ) {
                        var ret = JSON.parse(r);
 
                        if ( ret.error ) {
-                               $('#imgedit-response-' + postid).html('<div class="error"><p>' + ret.error + '</p><div>');
+                               $('#imgedit-response-' + postid).html('<div class="error"><p>' + ret.error + '</p></div>');
                                imageEdit.close(postid);
                                return;
                        }
                                imageEdit.close(postid);
                                return;
                        }
@@ -302,7 +302,7 @@ var imageEdit = window.imageEdit = {
        open : function( postid, nonce, view ) {
                this._view = view;
 
        open : function( postid, nonce, view ) {
                this._view = view;
 
-               var data, elem = $('#image-editor-' + postid), head = $('#media-head-' + postid),
+               var dfd, data, elem = $('#image-editor-' + postid), head = $('#media-head-' + postid),
                        btn = $('#imgedit-open-btn-' + postid), spin = btn.siblings('.spinner');
 
                btn.prop('disabled', true);
                        btn = $('#imgedit-open-btn-' + postid), spin = btn.siblings('.spinner');
 
                btn.prop('disabled', true);
@@ -315,13 +315,20 @@ var imageEdit = window.imageEdit = {
                        'do': 'open'
                };
 
                        'do': 'open'
                };
 
-               elem.load(ajaxurl, data, function() {
-                       elem.fadeIn('fast');
+               dfd = $.ajax({
+                       url:  ajaxurl,
+                       type: 'post',
+                       data: data
+               }).done(function( html ) {
+                       elem.html( html );
                        head.fadeOut('fast', function(){
                        head.fadeOut('fast', function(){
+                               elem.fadeIn('fast');
                                btn.removeAttr('disabled');
                                spin.hide();
                        });
                });
                                btn.removeAttr('disabled');
                                spin.hide();
                        });
                });
+
+               return dfd;
        },
 
        imgLoaded : function(postid) {
        },
 
        imgLoaded : function(postid) {
@@ -385,10 +392,9 @@ var imageEdit = window.imageEdit = {
        },
 
        setCropSelection : function(postid, c) {
        },
 
        setCropSelection : function(postid, c) {
-               var sel, min = $('#imgedit-minthumb-' + postid).val() || '128:128',
-                       sizer = this.hold.sizer;
-                       min = min.split(':');
-                       c = c || 0;
+               var sel;
+
+               c = c || 0;
 
                if ( !c || ( c.width < 3 && c.height < 3 ) ) {
                        this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 0);
 
                if ( !c || ( c.width < 3 && c.height < 3 ) ) {
                        this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 0);
@@ -399,12 +405,6 @@ var imageEdit = window.imageEdit = {
                        return false;
                }
 
                        return false;
                }
 
-               if ( c.width < (min[0] * sizer) && c.height < (min[1] * sizer) ) {
-                       this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 0);
-                       $('#imgedit-selection-' + postid).val('');
-                       return false;
-               }
-
                sel = { 'x': c.x1, 'y': c.y1, 'w': c.width, 'h': c.height };
                this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 1);
                $('#imgedit-selection-' + postid).val( JSON.stringify(sel) );
                sel = { 'x': c.x1, 'y': c.y1, 'w': c.width, 'h': c.height };
                this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 1);
                $('#imgedit-selection-' + postid).val( JSON.stringify(sel) );
index 4830f8e856d94d2c751bf6a8602ce616935d7bd5..4c7fbe17797c5a5b7e2726e1f1b63acf18515772 100644 (file)
@@ -1 +1 @@
-!function(a){var b=window.imageEdit={iasapi:{},hold:{},postid:"",_view:!1,intval:function(a){return 0|a},setDisabled:function(b,c){c?(b.removeClass("disabled"),a("input",b).removeAttr("disabled")):(b.addClass("disabled"),a("input",b).prop("disabled",!0))},init:function(b){var c=this,d=a("#image-editor-"+c.postid),e=c.intval(a("#imgedit-x-"+b).val()),f=c.intval(a("#imgedit-y-"+b).val());c.postid!==b&&d.length&&c.close(c.postid),c.hold.w=c.hold.ow=e,c.hold.h=c.hold.oh=f,c.hold.xy_ratio=e/f,c.hold.sizer=parseFloat(a("#imgedit-sizer-"+b).val()),c.postid=b,a("#imgedit-response-"+b).empty(),a('input[type="text"]',"#imgedit-panel-"+b).keypress(function(b){var c=b.keyCode;return c>36&&41>c&&a(this).blur(),13===c?(b.preventDefault(),b.stopPropagation(),!1):void 0})},toggleEditor:function(b,c){var d=a("#imgedit-wait-"+b);c?d.height(a("#imgedit-panel-"+b).height()).fadeIn("fast"):d.fadeOut("fast")},toggleHelp:function(b){return a(b).parents(".imgedit-group-top").toggleClass("imgedit-help-toggled").find(".imgedit-help").slideToggle("fast"),!1},getTarget:function(b){return a('input[name="imgedit-target-'+b+'"]:checked',"#imgedit-save-target-"+b).val()||"full"},scaleChanged:function(b,c){var d=a("#imgedit-scale-width-"+b),e=a("#imgedit-scale-height-"+b),f=a("#imgedit-scale-warn-"+b),g="",h="";c?(h=""!==d.val()?Math.round(d.val()/this.hold.xy_ratio):"",e.val(h)):(g=""!==e.val()?Math.round(e.val()*this.hold.xy_ratio):"",d.val(g)),h&&h>this.hold.oh||g&&g>this.hold.ow?f.css("visibility","visible"):f.css("visibility","hidden")},getSelRatio:function(b){var c=this.hold.w,d=this.hold.h,e=this.intval(a("#imgedit-crop-width-"+b).val()),f=this.intval(a("#imgedit-crop-height-"+b).val());return e&&f?e+":"+f:c&&d?c+":"+d:"1:1"},filterHistory:function(b,c){var d,e,f,g,h=a("#imgedit-history-"+b).val(),i=[];if(""!==h){if(h=JSON.parse(h),d=this.intval(a("#imgedit-undone-"+b).val()),d>0)for(;d>0;)h.pop(),d--;if(c){if(!h.length)return this.hold.w=this.hold.ow,this.hold.h=this.hold.oh,"";f=h[h.length-1],f=f.c||f.r||f.f||!1,f&&(this.hold.w=f.fw,this.hold.h=f.fh)}for(e in h)g=h[e],g.hasOwnProperty("c")?i[e]={c:{x:g.c.x,y:g.c.y,w:g.c.w,h:g.c.h}}:g.hasOwnProperty("r")?i[e]={r:g.r.r}:g.hasOwnProperty("f")&&(i[e]={f:g.f.f});return JSON.stringify(i)}return""},refreshEditor:function(c,d,e){var f,g,h=this;h.toggleEditor(c,1),f={action:"imgedit-preview",_ajax_nonce:d,postid:c,history:h.filterHistory(c,1),rand:h.intval(1e6*Math.random())},g=a('<img id="image-preview-'+c+'" />').on("load",function(){var d,f,h=a("#imgedit-crop-"+c),i=b;h.empty().append(g),d=Math.max(i.hold.w,i.hold.h),f=Math.max(a(g).width(),a(g).height()),i.hold.sizer=d>f?f/d:1,i.initCrop(c,g,h),i.setCropSelection(c,0),"undefined"!=typeof e&&null!==e&&e(),a("#imgedit-history-"+c).val()&&"0"===a("#imgedit-undone-"+c).val()?a("input.imgedit-submit-btn","#imgedit-panel-"+c).removeAttr("disabled"):a("input.imgedit-submit-btn","#imgedit-panel-"+c).prop("disabled",!0),i.toggleEditor(c,0)}).on("error",function(){a("#imgedit-crop-"+c).empty().append('<div class="error"><p>'+imageEditL10n.error+"</p></div>"),h.toggleEditor(c,0)}).attr("src",ajaxurl+"?"+a.param(f))},action:function(b,c,d){var e,f,g,h,i,j=this;if(j.notsaved(b))return!1;if(e={action:"image-editor",_ajax_nonce:c,postid:b},"scale"===d){if(f=a("#imgedit-scale-width-"+b),g=a("#imgedit-scale-height-"+b),h=j.intval(f.val()),i=j.intval(g.val()),1>h)return f.focus(),!1;if(1>i)return g.focus(),!1;if(h===j.hold.ow||i===j.hold.oh)return!1;e["do"]="scale",e.fwidth=h,e.fheight=i}else{if("restore"!==d)return!1;e["do"]="restore"}j.toggleEditor(b,1),a.post(ajaxurl,e,function(c){a("#image-editor-"+b).empty().append(c),j.toggleEditor(b,0),j._view&&j._view.refresh()})},save:function(c,d){var e,f=this.getTarget(c),g=this.filterHistory(c,0),h=this;return""===g?!1:(this.toggleEditor(c,1),e={action:"image-editor",_ajax_nonce:d,postid:c,history:g,target:f,context:a("#image-edit-context").length?a("#image-edit-context").val():null,"do":"save"},void a.post(ajaxurl,e,function(d){var e=JSON.parse(d);return e.error?(a("#imgedit-response-"+c).html('<div class="error"><p>'+e.error+"</p><div>"),void b.close(c)):(e.fw&&e.fh&&a("#media-dims-"+c).html(e.fw+" &times; "+e.fh),e.thumbnail&&a(".thumbnail","#thumbnail-head-"+c).attr("src",""+e.thumbnail),e.msg&&a("#imgedit-response-"+c).html('<div class="updated"><p>'+e.msg+"</p></div>"),void(h._view?h._view.save():b.close(c)))}))},open:function(b,c,d){this._view=d;var e,f=a("#image-editor-"+b),g=a("#media-head-"+b),h=a("#imgedit-open-btn-"+b),i=h.siblings(".spinner");h.prop("disabled",!0),i.show(),e={action:"image-editor",_ajax_nonce:c,postid:b,"do":"open"},f.load(ajaxurl,e,function(){f.fadeIn("fast"),g.fadeOut("fast",function(){h.removeAttr("disabled"),i.hide()})})},imgLoaded:function(b){var c=a("#image-preview-"+b),d=a("#imgedit-crop-"+b);this.initCrop(b,c,d),this.setCropSelection(b,0),this.toggleEditor(b,0)},initCrop:function(c,d,e){var f,g=this,h=a("#imgedit-sel-width-"+c),i=a("#imgedit-sel-height-"+c);g.iasapi=a(d).imgAreaSelect({parent:e,instance:!0,handles:!0,keys:!0,minWidth:3,minHeight:3,onInit:function(b){f=a(b),f.next().css("position","absolute").nextAll(".imgareaselect-outer").css("position","absolute"),e.children().mousedown(function(a){var b,d,e=!1;a.shiftKey&&(b=g.iasapi.getSelection(),d=g.getSelRatio(c),e=b&&b.width&&b.height?b.width+":"+b.height:d),g.iasapi.setOptions({aspectRatio:e})})},onSelectStart:function(){b.setDisabled(a("#imgedit-crop-sel-"+c),1)},onSelectEnd:function(a,d){b.setCropSelection(c,d)},onSelectChange:function(a,c){var d=b.hold.sizer;h.val(b.round(c.width/d)),i.val(b.round(c.height/d))}})},setCropSelection:function(b,c){var d,e=a("#imgedit-minthumb-"+b).val()||"128:128",f=this.hold.sizer;return e=e.split(":"),c=c||0,!c||c.width<3&&c.height<3?(this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+b),0),this.setDisabled(a("#imgedit-crop-sel-"+b),0),a("#imgedit-sel-width-"+b).val(""),a("#imgedit-sel-height-"+b).val(""),a("#imgedit-selection-"+b).val(""),!1):c.width<e[0]*f&&c.height<e[1]*f?(this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+b),0),a("#imgedit-selection-"+b).val(""),!1):(d={x:c.x1,y:c.y1,w:c.width,h:c.height},this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+b),1),void a("#imgedit-selection-"+b).val(JSON.stringify(d)))},close:function(b,c){return c=c||!1,c&&this.notsaved(b)?!1:(this.iasapi={},this.hold={},void(this._view?this._view.back():a("#image-editor-"+b).fadeOut("fast",function(){a("#media-head-"+b).fadeIn("fast"),a(this).empty()})))},notsaved:function(b){var c=a("#imgedit-history-"+b).val(),d=""!==c?JSON.parse(c):[],e=this.intval(a("#imgedit-undone-"+b).val());return e<d.length?confirm(a("#imgedit-leaving-"+b).html())?!1:!0:!1},addStep:function(b,c,d){for(var e=this,f=a("#imgedit-history-"+c),g=""!==f.val()?JSON.parse(f.val()):[],h=a("#imgedit-undone-"+c),i=e.intval(h.val());i>0;)g.pop(),i--;h.val(0),g.push(b),f.val(JSON.stringify(g)),e.refreshEditor(c,d,function(){e.setDisabled(a("#image-undo-"+c),!0),e.setDisabled(a("#image-redo-"+c),!1)})},rotate:function(b,c,d,e){return a(e).hasClass("disabled")?!1:void this.addStep({r:{r:b,fw:this.hold.h,fh:this.hold.w}},c,d)},flip:function(b,c,d,e){return a(e).hasClass("disabled")?!1:void this.addStep({f:{f:b,fw:this.hold.w,fh:this.hold.h}},c,d)},crop:function(b,c,d){var e=a("#imgedit-selection-"+b).val(),f=this.intval(a("#imgedit-sel-width-"+b).val()),g=this.intval(a("#imgedit-sel-height-"+b).val());return a(d).hasClass("disabled")||""===e?!1:(e=JSON.parse(e),void(e.w>0&&e.h>0&&f>0&&g>0&&(e.fw=f,e.fh=g,this.addStep({c:e},b,c))))},undo:function(b,c){var d=this,e=a("#image-undo-"+b),f=a("#imgedit-undone-"+b),g=d.intval(f.val())+1;e.hasClass("disabled")||(f.val(g),d.refreshEditor(b,c,function(){var c=a("#imgedit-history-"+b),f=""!==c.val()?JSON.parse(c.val()):[];d.setDisabled(a("#image-redo-"+b),!0),d.setDisabled(e,g<f.length)}))},redo:function(b,c){var d=this,e=a("#image-redo-"+b),f=a("#imgedit-undone-"+b),g=d.intval(f.val())-1;e.hasClass("disabled")||(f.val(g),d.refreshEditor(b,c,function(){d.setDisabled(a("#image-undo-"+b),!0),d.setDisabled(e,g>0)}))},setNumSelection:function(b){var c,d,e,f,g,h=a("#imgedit-sel-width-"+b),i=a("#imgedit-sel-height-"+b),j=this.intval(h.val()),k=this.intval(i.val()),l=a("#image-preview-"+b),m=l.height(),n=l.width(),o=this.hold.sizer,p=this.iasapi;return 1>j?(h.val(""),!1):1>k?(i.val(""),!1):void(j&&k&&(c=p.getSelection())&&(f=c.x1+Math.round(j*o),g=c.y1+Math.round(k*o),d=c.x1,e=c.y1,f>n&&(d=0,f=n,h.val(Math.round(f/o))),g>m&&(e=0,g=m,i.val(Math.round(g/o))),p.setSelection(d,e,f,g),p.update(),this.setCropSelection(b,p.getSelection())))},round:function(a){var b;return a=Math.round(a),this.hold.sizer>.6?a:(b=a.toString().slice(-1),"1"===b?a-1:"9"===b?a+1:a)},setRatioSelection:function(b,c,d){var e,f,g=this.intval(a("#imgedit-crop-width-"+b).val()),h=this.intval(a("#imgedit-crop-height-"+b).val()),i=a("#image-preview-"+b).height();return this.intval(a(d).val())?void(g&&h&&(this.iasapi.setOptions({aspectRatio:g+":"+h}),(e=this.iasapi.getSelection(!0))&&(f=Math.ceil(e.y1+(e.x2-e.x1)/(g/h)),f>i&&(f=i,c?a("#imgedit-crop-height-"+b).val(""):a("#imgedit-crop-width-"+b).val("")),this.iasapi.setSelection(e.x1,e.y1,e.x2,f),this.iasapi.update()))):void a(d).val("")}}}(jQuery);
\ No newline at end of file
+!function(a){var b=window.imageEdit={iasapi:{},hold:{},postid:"",_view:!1,intval:function(a){return 0|a},setDisabled:function(b,c){c?(b.removeClass("disabled"),a("input",b).removeAttr("disabled")):(b.addClass("disabled"),a("input",b).prop("disabled",!0))},init:function(b){var c=this,d=a("#image-editor-"+c.postid),e=c.intval(a("#imgedit-x-"+b).val()),f=c.intval(a("#imgedit-y-"+b).val());c.postid!==b&&d.length&&c.close(c.postid),c.hold.w=c.hold.ow=e,c.hold.h=c.hold.oh=f,c.hold.xy_ratio=e/f,c.hold.sizer=parseFloat(a("#imgedit-sizer-"+b).val()),c.postid=b,a("#imgedit-response-"+b).empty(),a('input[type="text"]',"#imgedit-panel-"+b).keypress(function(b){var c=b.keyCode;return c>36&&41>c&&a(this).blur(),13===c?(b.preventDefault(),b.stopPropagation(),!1):void 0})},toggleEditor:function(b,c){var d=a("#imgedit-wait-"+b);c?d.height(a("#imgedit-panel-"+b).height()).fadeIn("fast"):d.fadeOut("fast")},toggleHelp:function(b){return a(b).parents(".imgedit-group-top").toggleClass("imgedit-help-toggled").find(".imgedit-help").slideToggle("fast"),!1},getTarget:function(b){return a('input[name="imgedit-target-'+b+'"]:checked',"#imgedit-save-target-"+b).val()||"full"},scaleChanged:function(b,c){var d=a("#imgedit-scale-width-"+b),e=a("#imgedit-scale-height-"+b),f=a("#imgedit-scale-warn-"+b),g="",h="";c?(h=""!==d.val()?Math.round(d.val()/this.hold.xy_ratio):"",e.val(h)):(g=""!==e.val()?Math.round(e.val()*this.hold.xy_ratio):"",d.val(g)),h&&h>this.hold.oh||g&&g>this.hold.ow?f.css("visibility","visible"):f.css("visibility","hidden")},getSelRatio:function(b){var c=this.hold.w,d=this.hold.h,e=this.intval(a("#imgedit-crop-width-"+b).val()),f=this.intval(a("#imgedit-crop-height-"+b).val());return e&&f?e+":"+f:c&&d?c+":"+d:"1:1"},filterHistory:function(b,c){var d,e,f,g,h=a("#imgedit-history-"+b).val(),i=[];if(""!==h){if(h=JSON.parse(h),d=this.intval(a("#imgedit-undone-"+b).val()),d>0)for(;d>0;)h.pop(),d--;if(c){if(!h.length)return this.hold.w=this.hold.ow,this.hold.h=this.hold.oh,"";f=h[h.length-1],f=f.c||f.r||f.f||!1,f&&(this.hold.w=f.fw,this.hold.h=f.fh)}for(e in h)g=h[e],g.hasOwnProperty("c")?i[e]={c:{x:g.c.x,y:g.c.y,w:g.c.w,h:g.c.h}}:g.hasOwnProperty("r")?i[e]={r:g.r.r}:g.hasOwnProperty("f")&&(i[e]={f:g.f.f});return JSON.stringify(i)}return""},refreshEditor:function(c,d,e){var f,g,h=this;h.toggleEditor(c,1),f={action:"imgedit-preview",_ajax_nonce:d,postid:c,history:h.filterHistory(c,1),rand:h.intval(1e6*Math.random())},g=a('<img id="image-preview-'+c+'" />').on("load",function(){var d,f,h=a("#imgedit-crop-"+c),i=b;h.empty().append(g),d=Math.max(i.hold.w,i.hold.h),f=Math.max(a(g).width(),a(g).height()),i.hold.sizer=d>f?f/d:1,i.initCrop(c,g,h),i.setCropSelection(c,0),"undefined"!=typeof e&&null!==e&&e(),a("#imgedit-history-"+c).val()&&"0"===a("#imgedit-undone-"+c).val()?a("input.imgedit-submit-btn","#imgedit-panel-"+c).removeAttr("disabled"):a("input.imgedit-submit-btn","#imgedit-panel-"+c).prop("disabled",!0),i.toggleEditor(c,0)}).on("error",function(){a("#imgedit-crop-"+c).empty().append('<div class="error"><p>'+imageEditL10n.error+"</p></div>"),h.toggleEditor(c,0)}).attr("src",ajaxurl+"?"+a.param(f))},action:function(b,c,d){var e,f,g,h,i,j=this;if(j.notsaved(b))return!1;if(e={action:"image-editor",_ajax_nonce:c,postid:b},"scale"===d){if(f=a("#imgedit-scale-width-"+b),g=a("#imgedit-scale-height-"+b),h=j.intval(f.val()),i=j.intval(g.val()),1>h)return f.focus(),!1;if(1>i)return g.focus(),!1;if(h===j.hold.ow||i===j.hold.oh)return!1;e["do"]="scale",e.fwidth=h,e.fheight=i}else{if("restore"!==d)return!1;e["do"]="restore"}j.toggleEditor(b,1),a.post(ajaxurl,e,function(c){a("#image-editor-"+b).empty().append(c),j.toggleEditor(b,0),j._view&&j._view.refresh()})},save:function(c,d){var e,f=this.getTarget(c),g=this.filterHistory(c,0),h=this;return""===g?!1:(this.toggleEditor(c,1),e={action:"image-editor",_ajax_nonce:d,postid:c,history:g,target:f,context:a("#image-edit-context").length?a("#image-edit-context").val():null,"do":"save"},void a.post(ajaxurl,e,function(d){var e=JSON.parse(d);return e.error?(a("#imgedit-response-"+c).html('<div class="error"><p>'+e.error+"</p></div>"),void b.close(c)):(e.fw&&e.fh&&a("#media-dims-"+c).html(e.fw+" &times; "+e.fh),e.thumbnail&&a(".thumbnail","#thumbnail-head-"+c).attr("src",""+e.thumbnail),e.msg&&a("#imgedit-response-"+c).html('<div class="updated"><p>'+e.msg+"</p></div>"),void(h._view?h._view.save():b.close(c)))}))},open:function(b,c,d){this._view=d;var e,f,g=a("#image-editor-"+b),h=a("#media-head-"+b),i=a("#imgedit-open-btn-"+b),j=i.siblings(".spinner");return i.prop("disabled",!0),j.show(),f={action:"image-editor",_ajax_nonce:c,postid:b,"do":"open"},e=a.ajax({url:ajaxurl,type:"post",data:f}).done(function(a){g.html(a),h.fadeOut("fast",function(){g.fadeIn("fast"),i.removeAttr("disabled"),j.hide()})})},imgLoaded:function(b){var c=a("#image-preview-"+b),d=a("#imgedit-crop-"+b);this.initCrop(b,c,d),this.setCropSelection(b,0),this.toggleEditor(b,0)},initCrop:function(c,d,e){var f,g=this,h=a("#imgedit-sel-width-"+c),i=a("#imgedit-sel-height-"+c);g.iasapi=a(d).imgAreaSelect({parent:e,instance:!0,handles:!0,keys:!0,minWidth:3,minHeight:3,onInit:function(b){f=a(b),f.next().css("position","absolute").nextAll(".imgareaselect-outer").css("position","absolute"),e.children().mousedown(function(a){var b,d,e=!1;a.shiftKey&&(b=g.iasapi.getSelection(),d=g.getSelRatio(c),e=b&&b.width&&b.height?b.width+":"+b.height:d),g.iasapi.setOptions({aspectRatio:e})})},onSelectStart:function(){b.setDisabled(a("#imgedit-crop-sel-"+c),1)},onSelectEnd:function(a,d){b.setCropSelection(c,d)},onSelectChange:function(a,c){var d=b.hold.sizer;h.val(b.round(c.width/d)),i.val(b.round(c.height/d))}})},setCropSelection:function(b,c){var d;return c=c||0,!c||c.width<3&&c.height<3?(this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+b),0),this.setDisabled(a("#imgedit-crop-sel-"+b),0),a("#imgedit-sel-width-"+b).val(""),a("#imgedit-sel-height-"+b).val(""),a("#imgedit-selection-"+b).val(""),!1):(d={x:c.x1,y:c.y1,w:c.width,h:c.height},this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+b),1),void a("#imgedit-selection-"+b).val(JSON.stringify(d)))},close:function(b,c){return c=c||!1,c&&this.notsaved(b)?!1:(this.iasapi={},this.hold={},void(this._view?this._view.back():a("#image-editor-"+b).fadeOut("fast",function(){a("#media-head-"+b).fadeIn("fast"),a(this).empty()})))},notsaved:function(b){var c=a("#imgedit-history-"+b).val(),d=""!==c?JSON.parse(c):[],e=this.intval(a("#imgedit-undone-"+b).val());return e<d.length?confirm(a("#imgedit-leaving-"+b).html())?!1:!0:!1},addStep:function(b,c,d){for(var e=this,f=a("#imgedit-history-"+c),g=""!==f.val()?JSON.parse(f.val()):[],h=a("#imgedit-undone-"+c),i=e.intval(h.val());i>0;)g.pop(),i--;h.val(0),g.push(b),f.val(JSON.stringify(g)),e.refreshEditor(c,d,function(){e.setDisabled(a("#image-undo-"+c),!0),e.setDisabled(a("#image-redo-"+c),!1)})},rotate:function(b,c,d,e){return a(e).hasClass("disabled")?!1:void this.addStep({r:{r:b,fw:this.hold.h,fh:this.hold.w}},c,d)},flip:function(b,c,d,e){return a(e).hasClass("disabled")?!1:void this.addStep({f:{f:b,fw:this.hold.w,fh:this.hold.h}},c,d)},crop:function(b,c,d){var e=a("#imgedit-selection-"+b).val(),f=this.intval(a("#imgedit-sel-width-"+b).val()),g=this.intval(a("#imgedit-sel-height-"+b).val());return a(d).hasClass("disabled")||""===e?!1:(e=JSON.parse(e),void(e.w>0&&e.h>0&&f>0&&g>0&&(e.fw=f,e.fh=g,this.addStep({c:e},b,c))))},undo:function(b,c){var d=this,e=a("#image-undo-"+b),f=a("#imgedit-undone-"+b),g=d.intval(f.val())+1;e.hasClass("disabled")||(f.val(g),d.refreshEditor(b,c,function(){var c=a("#imgedit-history-"+b),f=""!==c.val()?JSON.parse(c.val()):[];d.setDisabled(a("#image-redo-"+b),!0),d.setDisabled(e,g<f.length)}))},redo:function(b,c){var d=this,e=a("#image-redo-"+b),f=a("#imgedit-undone-"+b),g=d.intval(f.val())-1;e.hasClass("disabled")||(f.val(g),d.refreshEditor(b,c,function(){d.setDisabled(a("#image-undo-"+b),!0),d.setDisabled(e,g>0)}))},setNumSelection:function(b){var c,d,e,f,g,h=a("#imgedit-sel-width-"+b),i=a("#imgedit-sel-height-"+b),j=this.intval(h.val()),k=this.intval(i.val()),l=a("#image-preview-"+b),m=l.height(),n=l.width(),o=this.hold.sizer,p=this.iasapi;return 1>j?(h.val(""),!1):1>k?(i.val(""),!1):void(j&&k&&(c=p.getSelection())&&(f=c.x1+Math.round(j*o),g=c.y1+Math.round(k*o),d=c.x1,e=c.y1,f>n&&(d=0,f=n,h.val(Math.round(f/o))),g>m&&(e=0,g=m,i.val(Math.round(g/o))),p.setSelection(d,e,f,g),p.update(),this.setCropSelection(b,p.getSelection())))},round:function(a){var b;return a=Math.round(a),this.hold.sizer>.6?a:(b=a.toString().slice(-1),"1"===b?a-1:"9"===b?a+1:a)},setRatioSelection:function(b,c,d){var e,f,g=this.intval(a("#imgedit-crop-width-"+b).val()),h=this.intval(a("#imgedit-crop-height-"+b).val()),i=a("#image-preview-"+b).height();return this.intval(a(d).val())?void(g&&h&&(this.iasapi.setOptions({aspectRatio:g+":"+h}),(e=this.iasapi.getSelection(!0))&&(f=Math.ceil(e.y1+(e.x2-e.x1)/(g/h)),f>i&&(f=i,c?a("#imgedit-crop-height-"+b).val(""):a("#imgedit-crop-width-"+b).val("")),this.iasapi.setSelection(e.x1,e.y1,e.x2,f),this.iasapi.update()))):void a(d).val("")}}}(jQuery);
\ No newline at end of file
index 81f302f3b389879f50b7899d7947d63fbaa7ecc1..48e635f23c087f756cb109defde5b129926a7feb 100644 (file)
@@ -53,7 +53,7 @@ inlineEditPost = {
                        return false;
                });
 
                        return false;
                });
 
-               $('#bulk-title-div').parents('fieldset').after(
+               $('#bulk-edit').find('fieldset:first').after(
                        $('#inline-edit fieldset.inline-edit-categories').clone()
                ).siblings( 'fieldset:last' ).prepend(
                        $('#inline-edit label.inline-edit-tags').clone()
                        $('#inline-edit fieldset.inline-edit-categories').clone()
                ).siblings( 'fieldset:last' ).prepend(
                        $('#inline-edit label.inline-edit-tags').clone()
@@ -110,7 +110,7 @@ inlineEditPost = {
                if ( 'post' === type ) {
                        // support multi taxonomies?
                        tax = 'post_tag';
                if ( 'post' === type ) {
                        // support multi taxonomies?
                        tax = 'post_tag';
-                       $('tr.inline-editor textarea[name="tax_input['+tax+']"]').suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } );
+                       $('tr.inline-editor textarea[name="tax_input['+tax+']"]').suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma } );
                }
                $('html, body').animate( { scrollTop: 0 }, 'fast' );
        },
                }
                $('html, body').animate( { scrollTop: 0 }, 'fast' );
        },
@@ -195,7 +195,7 @@ inlineEditPost = {
                                textarea.val(terms);
                        }
 
                                textarea.val(terms);
                        }
 
-                       textarea.suggest( ajaxurl + '?action=ajax-tag-search&tax=' + taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } );
+                       textarea.suggest( ajaxurl + '?action=ajax-tag-search&tax=' + taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma } );
                });
 
                // handle the post status
                });
 
                // handle the post status
index 56182de2698f3a8e9cddb07b32360865e672dde0..7c54650172b13ef8e4da396503feb3b91c2b80fe 100644 (file)
@@ -1 +1 @@
-var inlineEditPost;!function(a){inlineEditPost={init:function(){var b=this,c=a("#inline-edit"),d=a("#bulk-edit");b.type=a("table.widefat").hasClass("pages")?"page":"post",b.what="#post-",c.keyup(function(a){return 27===a.which?inlineEditPost.revert():void 0}),d.keyup(function(a){return 27===a.which?inlineEditPost.revert():void 0}),a("a.cancel",c).click(function(){return inlineEditPost.revert()}),a("a.save",c).click(function(){return inlineEditPost.save(this)}),a("td",c).keydown(function(a){return 13===a.which?inlineEditPost.save(this):void 0}),a("a.cancel",d).click(function(){return inlineEditPost.revert()}),a('#inline-edit .inline-edit-private input[value="private"]').click(function(){var b=a("input.inline-edit-password-input");a(this).prop("checked")?b.val("").prop("disabled",!0):b.prop("disabled",!1)}),a("#the-list").on("click","a.editinline",function(){return inlineEditPost.edit(this),!1}),a("#bulk-title-div").parents("fieldset").after(a("#inline-edit fieldset.inline-edit-categories").clone()).siblings("fieldset:last").prepend(a("#inline-edit label.inline-edit-tags").clone()),a('select[name="_status"] option[value="future"]',d).remove(),a("#doaction, #doaction2").click(function(c){var d=a(this).attr("id").substr(2);"edit"===a('select[name="'+d+'"]').val()?(c.preventDefault(),b.setBulk()):a("form#posts-filter tr.inline-editor").length>0&&b.revert()})},toggle:function(b){var c=this;"none"===a(c.what+c.getId(b)).css("display")?c.revert():c.edit(b)},setBulk:function(){var b,c="",d=this.type,e=!0;return this.revert(),a("#bulk-edit td").attr("colspan",a(".widefat:first thead th:visible").length),a("table.widefat tbody").prepend(a("#bulk-edit")),a("#bulk-edit").addClass("inline-editor").show(),a('tbody th.check-column input[type="checkbox"]').each(function(){if(a(this).prop("checked")){e=!1;var b,d=a(this).val();b=a("#inline_"+d+" .post_title").html()||inlineEditL10n.notitle,c+='<div id="ttle'+d+'"><a id="_'+d+'" class="ntdelbutton" title="'+inlineEditL10n.ntdeltitle+'">X</a>'+b+"</div>"}}),e?this.revert():(a("#bulk-titles").html(c),a("#bulk-titles a").click(function(){var b=a(this).attr("id").substr(1);a('table.widefat input[value="'+b+'"]').prop("checked",!1),a("#ttle"+b).remove()}),"post"===d&&(b="post_tag",a('tr.inline-editor textarea[name="tax_input['+b+']"]').suggest(ajaxurl+"?action=ajax-tag-search&tax="+b,{delay:500,minchars:2,multiple:!0,multipleSep:inlineEditL10n.comma+" "})),void a("html, body").animate({scrollTop:0},"fast"))},edit:function(b){var c,d,e,f,g,h,i,j,k,l,m=this,n=!0;for(m.revert(),"object"==typeof b&&(b=m.getId(b)),c=["post_title","post_name","post_author","_status","jj","mm","aa","hh","mn","ss","post_password","post_format","menu_order"],"page"===m.type&&c.push("post_parent","page_template"),d=a("#inline-edit").clone(!0),a("td",d).attr("colspan",a(".widefat:first thead th:visible").length),a(m.what+b).hasClass("alternate")&&a(d).addClass("alternate"),a(m.what+b).hide().after(d),e=a("#inline_"+b),a(':input[name="post_author"] option[value="'+a(".post_author",e).text()+'"]',d).val()||a(':input[name="post_author"]',d).prepend('<option value="'+a(".post_author",e).text()+'">'+a("#"+m.type+"-"+b+" .author").text()+"</option>"),1===a(':input[name="post_author"] option',d).length&&a("label.inline-edit-author",d).hide(),k=a(".post_format",e).text(),a("option.unsupported",d).each(function(){var b=a(this);b.val()!==k&&b.remove()}),l=0;l<c.length;l++)a(':input[name="'+c[l]+'"]',d).val(a("."+c[l],e).text());if("open"===a(".comment_status",e).text()&&a('input[name="comment_status"]',d).prop("checked",!0),"open"===a(".ping_status",e).text()&&a('input[name="ping_status"]',d).prop("checked",!0),"sticky"===a(".sticky",e).text()&&a('input[name="sticky"]',d).prop("checked",!0),a(".post_category",e).each(function(){var c,e=a(this).text();e&&(c=a(this).attr("id").replace("_"+b,""),a("ul."+c+"-checklist :checkbox",d).val(e.split(",")))}),a(".tags_input",e).each(function(){var c=a(this).text(),e=a(this).attr("id").replace("_"+b,""),f=a("textarea.tax_input_"+e,d),g=inlineEditL10n.comma;c&&(","!==g&&(c=c.replace(/,/g,g)),f.val(c)),f.suggest(ajaxurl+"?action=ajax-tag-search&tax="+e,{delay:500,minchars:2,multiple:!0,multipleSep:inlineEditL10n.comma+" "})}),f=a("._status",e).text(),"future"!==f&&a('select[name="_status"] option[value="future"]',d).remove(),"private"===f&&(a('input[name="keep_private"]',d).prop("checked",!0),a("input.inline-edit-password-input").val("").prop("disabled",!0)),g=a('select[name="post_parent"] option[value="'+b+'"]',d),g.length>0){for(h=g[0].className.split("-")[1],i=g;n&&(i=i.next("option"),0!==i.length);)j=i[0].className.split("-")[1],h>=j?n=!1:(i.remove(),i=g);g.remove()}return a(d).attr("id","edit-"+b).addClass("inline-editor").show(),a(".ptitle",d).focus(),!1},save:function(b){var c,d,e=a(".post_status_page").val()||"";return"object"==typeof b&&(b=this.getId(b)),a("table.widefat .spinner").show(),c={action:"inline-save",post_type:typenow,post_ID:b,edit_date:"true",post_status:e},d=a("#edit-"+b).find(":input").serialize(),c=d+"&"+a.param(c),a.post(ajaxurl,c,function(c){a("table.widefat .spinner").hide(),c?-1!==c.indexOf("<tr")?(a(inlineEditPost.what+b).remove(),a("#edit-"+b).before(c).remove(),a(inlineEditPost.what+b).hide().fadeIn()):(c=c.replace(/<.[^<>]*?>/g,""),a("#edit-"+b+" .inline-edit-save .error").html(c).show()):a("#edit-"+b+" .inline-edit-save .error").html(inlineEditL10n.error).show(),a("#post-"+b).prev().hasClass("alternate")&&a("#post-"+b).removeClass("alternate")},"html"),!1},revert:function(){var b=a("table.widefat tr.inline-editor").attr("id");return b&&(a("table.widefat .spinner").hide(),"bulk-edit"===b?(a("table.widefat #bulk-edit").removeClass("inline-editor").hide(),a("#bulk-titles").html(""),a("#inlineedit").append(a("#bulk-edit"))):(a("#"+b).remove(),b=b.substr(b.lastIndexOf("-")+1),a(this.what+b).show())),!1},getId:function(b){var c=a(b).closest("tr").attr("id"),d=c.split("-");return d[d.length-1]}},a(document).ready(function(){inlineEditPost.init()}),a(document).on("heartbeat-tick.wp-check-locked-posts",function(b,c){var d=c["wp-check-locked-posts"]||{};a("#the-list tr").each(function(b,c){var e,f,g=c.id,h=a(c);d.hasOwnProperty(g)?h.hasClass("wp-locked")||(e=d[g],h.find(".column-title .locked-text").text(e.text),h.find(".check-column checkbox").prop("checked",!1),e.avatar_src&&(f=a('<img class="avatar avatar-18 photo" width="18" height="18" />').attr("src",e.avatar_src.replace(/&amp;/g,"&")),h.find(".column-title .locked-avatar").empty().append(f)),h.addClass("wp-locked")):h.hasClass("wp-locked")&&h.removeClass("wp-locked").delay(1e3).find(".locked-info span").empty()})}).on("heartbeat-send.wp-check-locked-posts",function(b,c){var d=[];a("#the-list tr").each(function(a,b){b.id&&d.push(b.id)}),d.length&&(c["wp-check-locked-posts"]=d)}).ready(function(){"undefined"!=typeof wp&&wp.heartbeat&&wp.heartbeat.interval(15)})}(jQuery);
\ No newline at end of file
+var inlineEditPost;!function(a){inlineEditPost={init:function(){var b=this,c=a("#inline-edit"),d=a("#bulk-edit");b.type=a("table.widefat").hasClass("pages")?"page":"post",b.what="#post-",c.keyup(function(a){return 27===a.which?inlineEditPost.revert():void 0}),d.keyup(function(a){return 27===a.which?inlineEditPost.revert():void 0}),a("a.cancel",c).click(function(){return inlineEditPost.revert()}),a("a.save",c).click(function(){return inlineEditPost.save(this)}),a("td",c).keydown(function(a){return 13===a.which?inlineEditPost.save(this):void 0}),a("a.cancel",d).click(function(){return inlineEditPost.revert()}),a('#inline-edit .inline-edit-private input[value="private"]').click(function(){var b=a("input.inline-edit-password-input");a(this).prop("checked")?b.val("").prop("disabled",!0):b.prop("disabled",!1)}),a("#the-list").on("click","a.editinline",function(){return inlineEditPost.edit(this),!1}),a("#bulk-edit").find("fieldset:first").after(a("#inline-edit fieldset.inline-edit-categories").clone()).siblings("fieldset:last").prepend(a("#inline-edit label.inline-edit-tags").clone()),a('select[name="_status"] option[value="future"]',d).remove(),a("#doaction, #doaction2").click(function(c){var d=a(this).attr("id").substr(2);"edit"===a('select[name="'+d+'"]').val()?(c.preventDefault(),b.setBulk()):a("form#posts-filter tr.inline-editor").length>0&&b.revert()})},toggle:function(b){var c=this;"none"===a(c.what+c.getId(b)).css("display")?c.revert():c.edit(b)},setBulk:function(){var b,c="",d=this.type,e=!0;return this.revert(),a("#bulk-edit td").attr("colspan",a(".widefat:first thead th:visible").length),a("table.widefat tbody").prepend(a("#bulk-edit")),a("#bulk-edit").addClass("inline-editor").show(),a('tbody th.check-column input[type="checkbox"]').each(function(){if(a(this).prop("checked")){e=!1;var b,d=a(this).val();b=a("#inline_"+d+" .post_title").html()||inlineEditL10n.notitle,c+='<div id="ttle'+d+'"><a id="_'+d+'" class="ntdelbutton" title="'+inlineEditL10n.ntdeltitle+'">X</a>'+b+"</div>"}}),e?this.revert():(a("#bulk-titles").html(c),a("#bulk-titles a").click(function(){var b=a(this).attr("id").substr(1);a('table.widefat input[value="'+b+'"]').prop("checked",!1),a("#ttle"+b).remove()}),"post"===d&&(b="post_tag",a('tr.inline-editor textarea[name="tax_input['+b+']"]').suggest(ajaxurl+"?action=ajax-tag-search&tax="+b,{delay:500,minchars:2,multiple:!0,multipleSep:inlineEditL10n.comma})),void a("html, body").animate({scrollTop:0},"fast"))},edit:function(b){var c,d,e,f,g,h,i,j,k,l,m=this,n=!0;for(m.revert(),"object"==typeof b&&(b=m.getId(b)),c=["post_title","post_name","post_author","_status","jj","mm","aa","hh","mn","ss","post_password","post_format","menu_order"],"page"===m.type&&c.push("post_parent","page_template"),d=a("#inline-edit").clone(!0),a("td",d).attr("colspan",a(".widefat:first thead th:visible").length),a(m.what+b).hasClass("alternate")&&a(d).addClass("alternate"),a(m.what+b).hide().after(d),e=a("#inline_"+b),a(':input[name="post_author"] option[value="'+a(".post_author",e).text()+'"]',d).val()||a(':input[name="post_author"]',d).prepend('<option value="'+a(".post_author",e).text()+'">'+a("#"+m.type+"-"+b+" .author").text()+"</option>"),1===a(':input[name="post_author"] option',d).length&&a("label.inline-edit-author",d).hide(),k=a(".post_format",e).text(),a("option.unsupported",d).each(function(){var b=a(this);b.val()!==k&&b.remove()}),l=0;l<c.length;l++)a(':input[name="'+c[l]+'"]',d).val(a("."+c[l],e).text());if("open"===a(".comment_status",e).text()&&a('input[name="comment_status"]',d).prop("checked",!0),"open"===a(".ping_status",e).text()&&a('input[name="ping_status"]',d).prop("checked",!0),"sticky"===a(".sticky",e).text()&&a('input[name="sticky"]',d).prop("checked",!0),a(".post_category",e).each(function(){var c,e=a(this).text();e&&(c=a(this).attr("id").replace("_"+b,""),a("ul."+c+"-checklist :checkbox",d).val(e.split(",")))}),a(".tags_input",e).each(function(){var c=a(this).text(),e=a(this).attr("id").replace("_"+b,""),f=a("textarea.tax_input_"+e,d),g=inlineEditL10n.comma;c&&(","!==g&&(c=c.replace(/,/g,g)),f.val(c)),f.suggest(ajaxurl+"?action=ajax-tag-search&tax="+e,{delay:500,minchars:2,multiple:!0,multipleSep:inlineEditL10n.comma})}),f=a("._status",e).text(),"future"!==f&&a('select[name="_status"] option[value="future"]',d).remove(),"private"===f&&(a('input[name="keep_private"]',d).prop("checked",!0),a("input.inline-edit-password-input").val("").prop("disabled",!0)),g=a('select[name="post_parent"] option[value="'+b+'"]',d),g.length>0){for(h=g[0].className.split("-")[1],i=g;n&&(i=i.next("option"),0!==i.length);)j=i[0].className.split("-")[1],h>=j?n=!1:(i.remove(),i=g);g.remove()}return a(d).attr("id","edit-"+b).addClass("inline-editor").show(),a(".ptitle",d).focus(),!1},save:function(b){var c,d,e=a(".post_status_page").val()||"";return"object"==typeof b&&(b=this.getId(b)),a("table.widefat .spinner").show(),c={action:"inline-save",post_type:typenow,post_ID:b,edit_date:"true",post_status:e},d=a("#edit-"+b).find(":input").serialize(),c=d+"&"+a.param(c),a.post(ajaxurl,c,function(c){a("table.widefat .spinner").hide(),c?-1!==c.indexOf("<tr")?(a(inlineEditPost.what+b).remove(),a("#edit-"+b).before(c).remove(),a(inlineEditPost.what+b).hide().fadeIn()):(c=c.replace(/<.[^<>]*?>/g,""),a("#edit-"+b+" .inline-edit-save .error").html(c).show()):a("#edit-"+b+" .inline-edit-save .error").html(inlineEditL10n.error).show(),a("#post-"+b).prev().hasClass("alternate")&&a("#post-"+b).removeClass("alternate")},"html"),!1},revert:function(){var b=a("table.widefat tr.inline-editor").attr("id");return b&&(a("table.widefat .spinner").hide(),"bulk-edit"===b?(a("table.widefat #bulk-edit").removeClass("inline-editor").hide(),a("#bulk-titles").html(""),a("#inlineedit").append(a("#bulk-edit"))):(a("#"+b).remove(),b=b.substr(b.lastIndexOf("-")+1),a(this.what+b).show())),!1},getId:function(b){var c=a(b).closest("tr").attr("id"),d=c.split("-");return d[d.length-1]}},a(document).ready(function(){inlineEditPost.init()}),a(document).on("heartbeat-tick.wp-check-locked-posts",function(b,c){var d=c["wp-check-locked-posts"]||{};a("#the-list tr").each(function(b,c){var e,f,g=c.id,h=a(c);d.hasOwnProperty(g)?h.hasClass("wp-locked")||(e=d[g],h.find(".column-title .locked-text").text(e.text),h.find(".check-column checkbox").prop("checked",!1),e.avatar_src&&(f=a('<img class="avatar avatar-18 photo" width="18" height="18" />').attr("src",e.avatar_src.replace(/&amp;/g,"&")),h.find(".column-title .locked-avatar").empty().append(f)),h.addClass("wp-locked")):h.hasClass("wp-locked")&&h.removeClass("wp-locked").delay(1e3).find(".locked-info span").empty()})}).on("heartbeat-send.wp-check-locked-posts",function(b,c){var d=[];a("#the-list tr").each(function(a,b){b.id&&d.push(b.id)}),d.length&&(c["wp-check-locked-posts"]=d)}).ready(function(){"undefined"!=typeof wp&&wp.heartbeat&&wp.heartbeat.interval(15)})}(jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/language-chooser.js b/wp-admin/js/language-chooser.js
new file mode 100644 (file)
index 0000000..628b8a8
--- /dev/null
@@ -0,0 +1,26 @@
+jQuery( function($) {
+
+var select = $( '#language' ),
+       submit = $( '#language-continue' );
+
+if ( ! $( 'body' ).hasClass( 'language-chooser' ) ) {
+       return;
+}
+
+select.focus().on( 'change', function() {
+       var option = select.children( 'option:selected' );
+       submit.attr({
+               value: option.data( 'continue' ),
+               lang: option.attr( 'lang' )
+       });
+});
+
+$( 'form' ).submit( function() {
+       // Don't show a spinner for English and installed languages,
+       // as there is nothing to download.
+       if ( ! select.children( 'option:selected' ).data( 'installed' ) ) {
+               $( this ).find( '.step .spinner' ).css( 'visibility', 'visible' );
+       }
+});
+
+});
diff --git a/wp-admin/js/language-chooser.min.js b/wp-admin/js/language-chooser.min.js
new file mode 100644 (file)
index 0000000..38d65eb
--- /dev/null
@@ -0,0 +1 @@
+jQuery(function(a){var b=a("#language"),c=a("#language-continue");a("body").hasClass("language-chooser")&&(b.focus().on("change",function(){var a=b.children("option:selected");c.attr({value:a.data("continue"),lang:a.attr("lang")})}),a("form").submit(function(){b.children("option:selected").data("installed")||a(this).find(".step .spinner").css("visibility","visible")}))});
\ No newline at end of file
index 7e6eed23da5bed19914ef379327c5840ba21ce5f..011b618ff56e288704233704825ff65c7e70d437 100644 (file)
@@ -40,7 +40,7 @@ var tb_position;
                var tbWindow = $('#TB_window'),
                        width = $(window).width(),
                        H = $(window).height(),
                var tbWindow = $('#TB_window'),
                        width = $(window).width(),
                        H = $(window).height(),
-                       W = ( 720 < width ) ? 720 : width,
+                       W = ( 833 < width ) ? 833 : width,
                        adminbar_height = 0;
 
                if ( $('#wpadminbar').length ) {
                        adminbar_height = 0;
 
                if ( $('#wpadminbar').length ) {
index 8fc72f2c1159ef0e299cc99ed0df4e7498a09a79..2bd2b4a0834f8b0a62242af68af995d691944e4a 100644 (file)
@@ -1 +1 @@
-var wpActiveEditor,send_to_editor;send_to_editor=function(a){var b,c="undefined"!=typeof tinymce,d="undefined"!=typeof QTags;if(wpActiveEditor)c&&(b=tinymce.get(wpActiveEditor));else if(c&&tinymce.activeEditor)b=tinymce.activeEditor,wpActiveEditor=b.id;else if(!d)return!1;if(b&&!b.isHidden()?b.execCommand("mceInsertContent",!1,a):d?QTags.insertContent(a):document.getElementById(wpActiveEditor).value+=a,window.tb_remove)try{window.tb_remove()}catch(e){}};var tb_position;!function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=c>720?720:c,f=0;return a("#wpadminbar").length&&(f=parseInt(a("#wpadminbar").css("height"),10)),b.size()&&(b.width(e-50).height(d-45-f),a("#TB_iframeContent").width(e-50).height(d-75-f),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+f+"px","margin-top":"0"})),a("a.thickbox").each(function(){var b=a(this).attr("href");b&&(b=b.replace(/&width=[0-9]+/g,""),b=b.replace(/&height=[0-9]+/g,""),a(this).attr("href",b+"&width="+(e-80)+"&height="+(d-85-f)))})},a(window).resize(function(){tb_position()})}(jQuery);
\ No newline at end of file
+var wpActiveEditor,send_to_editor;send_to_editor=function(a){var b,c="undefined"!=typeof tinymce,d="undefined"!=typeof QTags;if(wpActiveEditor)c&&(b=tinymce.get(wpActiveEditor));else if(c&&tinymce.activeEditor)b=tinymce.activeEditor,wpActiveEditor=b.id;else if(!d)return!1;if(b&&!b.isHidden()?b.execCommand("mceInsertContent",!1,a):d?QTags.insertContent(a):document.getElementById(wpActiveEditor).value+=a,window.tb_remove)try{window.tb_remove()}catch(e){}};var tb_position;!function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=c>833?833:c,f=0;return a("#wpadminbar").length&&(f=parseInt(a("#wpadminbar").css("height"),10)),b.size()&&(b.width(e-50).height(d-45-f),a("#TB_iframeContent").width(e-50).height(d-75-f),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+f+"px","margin-top":"0"})),a("a.thickbox").each(function(){var b=a(this).attr("href");b&&(b=b.replace(/&width=[0-9]+/g,""),b=b.replace(/&height=[0-9]+/g,""),a(this).attr("href",b+"&width="+(e-80)+"&height="+(d-85-f)))})},a(window).resize(function(){tb_position()})}(jQuery);
\ No newline at end of file
index f9fc6508afb02053ae989ed99416304116d837e2..119c10bd2aee55ac2e2e56d242ef926c032720a6 100644 (file)
@@ -72,6 +72,12 @@ var findPosts;
        };
 
        $( document ).ready( function() {
        };
 
        $( document ).ready( function() {
+               // Open up a manage media frame into the grid.
+               wp.media && wp.media({
+                       frame: 'manage',
+                       container: $('#wpbody-content > .wrap')
+               }).open();
+
                $( '#find-posts-submit' ).click( function( event ) {
                        if ( ! $( '#find-posts-response input[type="radio"]:checked' ).length )
                                event.preventDefault();
                $( '#find-posts-submit' ).click( function( event ) {
                        if ( ! $( '#find-posts-response input[type="radio"]:checked' ).length )
                                event.preventDefault();
index 5cd4e267eb5b71c41be07b8c36aea597fbe5ba4e..8a90fa78bac1757a820365c07519ed6cd4c1c28c 100644 (file)
@@ -1 +1 @@
-var findPosts;!function(a){findPosts={open:function(b,c){var d=a(".ui-find-overlay");return 0===d.length&&(a("body").append('<div class="ui-find-overlay"></div>'),findPosts.overlay()),d.show(),b&&c&&a("#affected").attr("name",b).val(c),a("#find-posts").show(),a("#find-posts-input").focus().keyup(function(a){27==a.which&&findPosts.close()}),findPosts.send(),!1},close:function(){a("#find-posts-response").html(""),a("#find-posts").hide(),a(".ui-find-overlay").hide()},overlay:function(){a(".ui-find-overlay").on("click",function(){findPosts.close()})},send:function(){var b={ps:a("#find-posts-input").val(),action:"find_posts",_ajax_nonce:a("#_ajax_nonce").val()},c=a(".find-box-search .spinner");c.show(),a.ajax(ajaxurl,{type:"POST",data:b,dataType:"json"}).always(function(){c.hide()}).done(function(b){b.success||a("#find-posts-response").text(attachMediaBoxL10n.error),a("#find-posts-response").html(b.data)}).fail(function(){a("#find-posts-response").text(attachMediaBoxL10n.error)})}},a(document).ready(function(){a("#find-posts-submit").click(function(b){a('#find-posts-response input[type="radio"]:checked').length||b.preventDefault()}),a("#find-posts .find-box-search :input").keypress(function(a){return 13==a.which?(findPosts.send(),!1):void 0}),a("#find-posts-search").click(findPosts.send),a("#find-posts-close").click(findPosts.close),a("#doaction, #doaction2").click(function(b){a('select[name^="action"]').each(function(){"attach"===a(this).val()&&(b.preventDefault(),findPosts.open())})}),a(".find-box-inside").on("click","tr",function(){a(this).find(".found-radio input").prop("checked",!0)})})}(jQuery);
\ No newline at end of file
+var findPosts;!function(a){findPosts={open:function(b,c){var d=a(".ui-find-overlay");return 0===d.length&&(a("body").append('<div class="ui-find-overlay"></div>'),findPosts.overlay()),d.show(),b&&c&&a("#affected").attr("name",b).val(c),a("#find-posts").show(),a("#find-posts-input").focus().keyup(function(a){27==a.which&&findPosts.close()}),findPosts.send(),!1},close:function(){a("#find-posts-response").html(""),a("#find-posts").hide(),a(".ui-find-overlay").hide()},overlay:function(){a(".ui-find-overlay").on("click",function(){findPosts.close()})},send:function(){var b={ps:a("#find-posts-input").val(),action:"find_posts",_ajax_nonce:a("#_ajax_nonce").val()},c=a(".find-box-search .spinner");c.show(),a.ajax(ajaxurl,{type:"POST",data:b,dataType:"json"}).always(function(){c.hide()}).done(function(b){b.success||a("#find-posts-response").text(attachMediaBoxL10n.error),a("#find-posts-response").html(b.data)}).fail(function(){a("#find-posts-response").text(attachMediaBoxL10n.error)})}},a(document).ready(function(){wp.media&&wp.media({frame:"manage",container:a("#wpbody-content > .wrap")}).open(),a("#find-posts-submit").click(function(b){a('#find-posts-response input[type="radio"]:checked').length||b.preventDefault()}),a("#find-posts .find-box-search :input").keypress(function(a){return 13==a.which?(findPosts.send(),!1):void 0}),a("#find-posts-search").click(findPosts.send),a("#find-posts-close").click(findPosts.close),a("#doaction, #doaction2").click(function(b){a('select[name^="action"]').each(function(){"attach"===a(this).val()&&(b.preventDefault(),findPosts.open())})}),a(".find-box-inside").on("click","tr",function(){a(this).find(".found-radio input").prop("checked",!0)})})}(jQuery);
\ No newline at end of file
index e54ed688e135e1a14e02acc5d7871245389a1859..dc2183c9a7fc8fc397ecbdfab1f56dfd0c3a2adc 100644 (file)
@@ -57,6 +57,8 @@ var wpNavMenu;
                        this.initAccessibility();
 
                        this.initToggles();
                        this.initAccessibility();
 
                        this.initToggles();
+
+                       this.initPreviewing();
                },
 
                jQueryExtensions : function() {
                },
 
                jQueryExtensions : function() {
@@ -530,6 +532,21 @@ var wpNavMenu;
                        });
                },
 
                        });
                },
 
+               initPreviewing : function() {
+                       // Update the item handle title when the navigation label is changed.
+                       $( '#menu-to-edit' ).on( 'change input', '.edit-menu-item-title', function(e) {
+                               var input = $( e.currentTarget ), title, titleEl;
+                               title = input.val();
+                               titleEl = input.closest( '.menu-item' ).find( '.menu-item-title' );
+                               // Don't update to empty title.
+                               if ( title ) {
+                                       titleEl.text( title ).removeClass( 'no-title' );
+                               } else {
+                                       titleEl.text( navMenuL10n.untitled ).addClass( 'no-title' );
+                               }
+                       } );
+               },
+
                initToggles : function() {
                        // init postboxes
                        postboxes.add_postbox_toggles('nav-menus');
                initToggles : function() {
                        // init postboxes
                        postboxes.add_postbox_toggles('nav-menus');
index 85f6953b48709e5b5c12dd1f5c627f7458d9dcb1..f270b494830c514675d2e261582ff3b7b2c08b5b 100644 (file)
@@ -1 +1 @@
-var wpNavMenu;!function(a){var b;b=wpNavMenu={options:{menuItemDepthPerLevel:30,globalMaxDepth:11},menuList:void 0,targetList:void 0,menusChanged:!1,isRTL:!("undefined"==typeof isRtl||!isRtl),negateIfRTL:"undefined"!=typeof isRtl&&isRtl?-1:1,init:function(){b.menuList=a("#menu-to-edit"),b.targetList=b.menuList,this.jQueryExtensions(),this.attachMenuEditListeners(),this.setupInputWithDefaultTitle(),this.attachQuickSearchListeners(),this.attachThemeLocationsListeners(),this.attachTabsPanelListeners(),this.attachUnsavedChangesListener(),b.menuList.length&&this.initSortables(),menus.oneThemeLocationNoMenus&&a("#posttype-page").addSelectedToMenu(b.addMenuItemToBottom),this.initManageLocations(),this.initAccessibility(),this.initToggles()},jQueryExtensions:function(){a.fn.extend({menuItemDepth:function(){var a=this.eq(0).css(b.isRTL?"margin-right":"margin-left");return b.pxToDepth(a&&-1!=a.indexOf("px")?a.slice(0,-2):0)},updateDepthClass:function(b,c){return this.each(function(){var d=a(this);c=c||d.menuItemDepth(),a(this).removeClass("menu-item-depth-"+c).addClass("menu-item-depth-"+b)})},shiftDepthClass:function(b){return this.each(function(){var c=a(this),d=c.menuItemDepth();a(this).removeClass("menu-item-depth-"+d).addClass("menu-item-depth-"+(d+b))})},childMenuItems:function(){var b=a();return this.each(function(){for(var c=a(this),d=c.menuItemDepth(),e=c.next();e.length&&e.menuItemDepth()>d;)b=b.add(e),e=e.next()}),b},shiftHorizontally:function(b){return this.each(function(){var c=a(this),d=c.menuItemDepth(),e=d+b;c.moveHorizontally(e,d)})},moveHorizontally:function(b,c){return this.each(function(){var d=a(this),e=d.childMenuItems(),f=b-c,g=d.find(".is-submenu");d.updateDepthClass(b,c).updateParentMenuItemDBId(),e&&e.each(function(){var b=a(this),c=b.menuItemDepth(),d=c+f;b.updateDepthClass(d,c).updateParentMenuItemDBId()}),0===b?g.hide():g.show()})},updateParentMenuItemDBId:function(){return this.each(function(){var b=a(this),c=b.find(".menu-item-data-parent-id"),d=parseInt(b.menuItemDepth(),10),e=d-1,f=b.prevAll(".menu-item-depth-"+e).first();c.val(0===d?0:f.find(".menu-item-data-db-id").val())})},hideAdvancedMenuItemFields:function(){return this.each(function(){var b=a(this);a(".hide-column-tog").not(":checked").each(function(){b.find(".field-"+a(this).val()).addClass("hidden-field")})})},addSelectedToMenu:function(c){return 0===a("#menu-to-edit").length?!1:this.each(function(){var d=a(this),e={},f=d.find(menus.oneThemeLocationNoMenus&&0===d.find(".tabs-panel-active .categorychecklist li input:checked").length?'#page-all li input[type="checkbox"]':".tabs-panel-active .categorychecklist li input:checked"),g=/menu-item\[([^\]]*)/;return c=c||b.addMenuItemToBottom,f.length?(d.find(".spinner").show(),a(f).each(function(){var d=a(this),f=g.exec(d.attr("name")),h="undefined"==typeof f[1]?0:parseInt(f[1],10);this.className&&-1!=this.className.indexOf("add-to-top")&&(c=b.addMenuItemToTop),e[h]=d.closest("li").getItemData("add-menu-item",h)}),void b.addItemToMenu(e,c,function(){f.removeAttr("checked"),d.find(".spinner").hide()})):!1})},getItemData:function(a,b){a=a||"menu-item";var c,d={},e=["menu-item-db-id","menu-item-object-id","menu-item-object","menu-item-parent-id","menu-item-position","menu-item-type","menu-item-title","menu-item-url","menu-item-description","menu-item-attr-title","menu-item-target","menu-item-classes","menu-item-xfn"];return b||"menu-item"!=a||(b=this.find(".menu-item-data-db-id").val()),b?(this.find("input").each(function(){var f;for(c=e.length;c--;)"menu-item"==a?f=e[c]+"["+b+"]":"add-menu-item"==a&&(f="menu-item["+b+"]["+e[c]+"]"),this.name&&f==this.name&&(d[e[c]]=this.value)}),d):d},setItemData:function(b,c,d){return c=c||"menu-item",d||"menu-item"!=c||(d=a(".menu-item-data-db-id",this).val()),d?(this.find("input").each(function(){var e,f=a(this);a.each(b,function(a,b){"menu-item"==c?e=a+"["+d+"]":"add-menu-item"==c&&(e="menu-item["+d+"]["+a+"]"),e==f.attr("name")&&f.val(b)})}),this):this}})},countMenuItems:function(b){return a(".menu-item-depth-"+b).length},moveMenuItem:function(c,d){var e,f,g,h=a("#menu-to-edit li"),i=h.length,j=c.parents("li.menu-item"),k=j.childMenuItems(),l=j.getItemData(),m=parseInt(j.menuItemDepth(),10),n=parseInt(j.index(),10),o=j.next(),p=o.childMenuItems(),q=parseInt(o.menuItemDepth(),10)+1,r=j.prev(),s=parseInt(r.menuItemDepth(),10),t=r.getItemData()["menu-item-db-id"];switch(d){case"up":if(f=n-1,0===n)break;0===f&&0!==m&&j.moveHorizontally(0,m),0!==s&&j.moveHorizontally(s,m),k?(e=j.add(k),e.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId()):j.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId();break;case"down":if(k){if(e=j.add(k),o=h.eq(e.length+n),p=0!==o.childMenuItems().length,p&&(g=parseInt(o.menuItemDepth(),10)+1,j.moveHorizontally(g,m)),i===n+e.length)break;e.detach().insertAfter(h.eq(n+e.length)).updateParentMenuItemDBId()}else{if(0!==p.length&&j.moveHorizontally(q,m),i===n+1)break;j.detach().insertAfter(h.eq(n+1)).updateParentMenuItemDBId()}break;case"top":if(0===n)break;k?(e=j.add(k),e.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId()):j.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId();break;case"left":if(0===m)break;j.shiftHorizontally(-1);break;case"right":if(0===n)break;if(l["menu-item-parent-id"]===t)break;j.shiftHorizontally(1)}c.focus(),b.registerChange(),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},initAccessibility:function(){var c=a("#menu-to-edit");b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility(),c.on("click",".menus-move-up",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"up"),c.preventDefault()}),c.on("click",".menus-move-down",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"down"),c.preventDefault()}),c.on("click",".menus-move-top",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"top"),c.preventDefault()}),c.on("click",".menus-move-left",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"left"),c.preventDefault()}),c.on("click",".menus-move-right",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"right"),c.preventDefault()})},refreshAdvancedAccessibility:function(){a(".menu-item-settings .field-move a").css("display","none"),a(".item-edit").each(function(){var b,c,d,e,f,g,h,i,j,k=a(this),l=k.closest("li.menu-item").first(),m=l.menuItemDepth(),n=0===m,o=k.closest(".menu-item-handle").find(".menu-item-title").text(),p=parseInt(l.index(),10),q=n?m:parseInt(m-1,10),r=l.prevAll(".menu-item-depth-"+q).first().find(".menu-item-title").text(),s=l.prevAll(".menu-item-depth-"+m).first().find(".menu-item-title").text(),t=a("#menu-to-edit li").length,u=l.nextAll(".menu-item-depth-"+m).length;0!==p&&(b=l.find(".menus-move-up"),b.prop("title",menus.moveUp).css("display","inline")),0!==p&&n&&(b=l.find(".menus-move-top"),b.prop("title",menus.moveToTop).css("display","inline")),p+1!==t&&0!==p&&(b=l.find(".menus-move-down"),b.prop("title",menus.moveDown).css("display","inline")),0===p&&0!==u&&(b=l.find(".menus-move-down"),b.prop("title",menus.moveDown).css("display","inline")),n||(b=l.find(".menus-move-left"),c=menus.outFrom.replace("%s",r),b.prop("title",menus.moveOutFrom.replace("%s",r)).html(c).css("display","inline")),0!==p&&l.find(".menu-item-data-parent-id").val()!==l.prev().find(".menu-item-data-db-id").val()&&(b=l.find(".menus-move-right"),c=menus.under.replace("%s",s),b.prop("title",menus.moveUnder.replace("%s",s)).html(c).css("display","inline")),n?(d=a(".menu-item-depth-0"),e=d.index(l)+1,t=d.length,f=menus.menuFocus.replace("%1$s",o).replace("%2$d",e).replace("%3$d",t)):(g=l.prevAll(".menu-item-depth-"+parseInt(m-1,10)).first(),h=g.find(".menu-item-data-db-id").val(),i=g.find(".menu-item-title").text(),j=a('.menu-item .menu-item-data-parent-id[value="'+h+'"]'),e=a(j.parents(".menu-item").get().reverse()).index(l)+1,f=menus.subMenuFocus.replace("%1$s",o).replace("%2$d",e).replace("%3$s",i)),k.prop("title",f).html(f)})},refreshKeyboardAccessibility:function(){a(".item-edit").off("focus").on("focus",function(){a(this).off("keydown").on("keydown",function(c){var d,e=a(this),f=e.parents("li.menu-item"),g=f.getItemData();if((37==c.which||38==c.which||39==c.which||40==c.which)&&(e.off("keydown"),1!==a("#menu-to-edit li").length)){switch(d={38:"up",40:"down",37:"left",39:"right"},a("body").hasClass("rtl")&&(d={38:"up",40:"down",39:"left",37:"right"}),d[c.which]){case"up":b.moveMenuItem(e,"up");break;case"down":b.moveMenuItem(e,"down");break;case"left":b.moveMenuItem(e,"left");break;case"right":b.moveMenuItem(e,"right")}return a("#edit-"+g["menu-item-db-id"]).focus(),!1}})})},initToggles:function(){postboxes.add_postbox_toggles("nav-menus"),columns.useCheckboxesForHidden(),columns.checked=function(b){a(".field-"+b).removeClass("hidden-field")},columns.unchecked=function(b){a(".field-"+b).addClass("hidden-field")},b.menuList.hideAdvancedMenuItemFields(),a(".hide-postbox-tog").click(function(){var b=a(".accordion-container li.accordion-section").filter(":hidden").map(function(){return this.id}).get().join(",");a.post(ajaxurl,{action:"closed-postboxes",hidden:b,closedpostboxesnonce:jQuery("#closedpostboxesnonce").val(),page:"nav-menus"})})},initSortables:function(){function c(a){var c;j=a.placeholder.prev(),k=a.placeholder.next(),j[0]==a.item[0]&&(j=j.prev()),k[0]==a.item[0]&&(k=k.next()),l=j.length?j.offset().top+j.height():0,m=k.length?k.offset().top+k.height()/3:0,h=k.length?k.menuItemDepth():0,i=j.length?(c=j.menuItemDepth()+1)>b.options.globalMaxDepth?b.options.globalMaxDepth:c:0}function d(a,b){a.placeholder.updateDepthClass(b,q),q=b}function e(){if(!s[0].className)return 0;var a=s[0].className.match(/menu-max-depth-(\d+)/);return a&&a[1]?parseInt(a[1],10):0}function f(c){var d,e=t;if(0!==c){if(c>0)d=p+c,d>t&&(e=d);else if(0>c&&p==t)for(;!a(".menu-item-depth-"+e,b.menuList).length&&e>0;)e--;s.removeClass("menu-max-depth-"+t).addClass("menu-max-depth-"+e),t=e}}var g,h,i,j,k,l,m,n,o,p,q=0,r=b.menuList.offset().left,s=a("body"),t=e();0!==a("#menu-to-edit li").length&&a(".drag-instructions").show(),r+=b.isRTL?b.menuList.width():0,b.menuList.sortable({handle:".menu-item-handle",placeholder:"sortable-placeholder",start:function(e,f){var h,i,j,k,l;b.isRTL&&(f.item[0].style.right="auto"),o=f.item.children(".menu-item-transport"),g=f.item.menuItemDepth(),d(f,g),j=f.item.next()[0]==f.placeholder[0]?f.item.next():f.item,k=j.childMenuItems(),o.append(k),h=o.outerHeight(),h+=h>0?1*f.placeholder.css("margin-top").slice(0,-2):0,h+=f.helper.outerHeight(),n=h,h-=2,f.placeholder.height(h),p=g,k.each(function(){var b=a(this).menuItemDepth();p=b>p?b:p}),i=f.helper.find(".menu-item-handle").outerWidth(),i+=b.depthToPx(p-g),i-=2,f.placeholder.width(i),l=f.placeholder.next(),l.css("margin-top",n+"px"),f.placeholder.detach(),a(this).sortable("refresh"),f.item.after(f.placeholder),l.css("margin-top",0),c(f)},stop:function(a,c){var d,e,h=q-g;d=o.children().insertAfter(c.item),e=c.item.find(".item-title .is-submenu"),q>0?e.show():e.hide(),0!==h&&(c.item.updateDepthClass(q),d.shiftDepthClass(h),f(h)),b.registerChange(),c.item.updateParentMenuItemDBId(),c.item[0].style.top=0,b.isRTL&&(c.item[0].style.left="auto",c.item[0].style.right=0),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},change:function(a,d){d.placeholder.parent().hasClass("menu")||(j.length?j.after(d.placeholder):b.menuList.prepend(d.placeholder)),c(d)},sort:function(e,f){var g=f.helper.offset(),j=b.isRTL?g.left+f.helper.width():g.left,o=b.negateIfRTL*b.pxToDepth(j-r);o>i||g.top<l?o=i:h>o&&(o=h),o!=q&&d(f,o),m&&g.top+n>m&&(k.after(f.placeholder),c(f),a(this).sortable("refreshPositions"))}})},initManageLocations:function(){a("#menu-locations-wrap form").submit(function(){window.onbeforeunload=null}),a(".menu-location-menus select").on("change",function(){var b=a(this).closest("tr").find(".locations-edit-menu-link");a(this).find("option:selected").data("orig")?b.show():b.hide()})},attachMenuEditListeners:function(){var b=this;a("#update-nav-menu").bind("click",function(a){if(a.target&&a.target.className){if(-1!=a.target.className.indexOf("item-edit"))return b.eventOnClickEditLink(a.target);if(-1!=a.target.className.indexOf("menu-save"))return b.eventOnClickMenuSave(a.target);if(-1!=a.target.className.indexOf("menu-delete"))return b.eventOnClickMenuDelete(a.target);if(-1!=a.target.className.indexOf("item-delete"))return b.eventOnClickMenuItemDelete(a.target);if(-1!=a.target.className.indexOf("item-cancel"))return b.eventOnClickCancelLink(a.target)}}),a('#add-custom-links input[type="text"]').keypress(function(b){13===b.keyCode&&(b.preventDefault(),a("#submit-customlinkdiv").click())})},setupInputWithDefaultTitle:function(){var b="input-with-default-title";a("."+b).each(function(){var c=a(this),d=c.attr("title"),e=c.val();if(c.data(b,d),""===e)c.val(d);else{if(d==e)return;c.removeClass(b)}}).focus(function(){var c=a(this);c.val()==c.data(b)&&c.val("").removeClass(b)}).blur(function(){var c=a(this);""===c.val()&&c.addClass(b).val(c.data(b))}),a(".blank-slate .input-with-default-title").focus()},attachThemeLocationsListeners:function(){var b=a("#nav-menu-theme-locations"),c={};c.action="menu-locations-save",c["menu-settings-column-nonce"]=a("#menu-settings-column-nonce").val(),b.find('input[type="submit"]').click(function(){return b.find("select").each(function(){c[this.name]=a(this).val()}),b.find(".spinner").show(),a.post(ajaxurl,c,function(){b.find(".spinner").hide()}),!1})},attachQuickSearchListeners:function(){var c;a(".quick-search").keypress(function(d){var e=a(this);return 13==d.which?(b.updateQuickSearchResults(e),!1):(c&&clearTimeout(c),void(c=setTimeout(function(){b.updateQuickSearchResults(e)},400)))}).attr("autocomplete","off")},updateQuickSearchResults:function(c){var d,e,f=2,g=c.val();g.length<f||(d=c.parents(".tabs-panel"),e={action:"menu-quick-search","response-format":"markup",menu:a("#menu").val(),"menu-settings-column-nonce":a("#menu-settings-column-nonce").val(),q:g,type:c.attr("name")},a(".spinner",d).show(),a.post(ajaxurl,e,function(a){b.processQuickSearchQueryResponse(a,e,d)}))},addCustomLink:function(c){var d=a("#custom-menu-item-url").val(),e=a("#custom-menu-item-name").val();return c=c||b.addMenuItemToBottom,""===d||"http://"==d?!1:(a(".customlinkdiv .spinner").show(),void this.addLinkToMenu(d,e,c,function(){a(".customlinkdiv .spinner").hide(),a("#custom-menu-item-name").val("").blur(),a("#custom-menu-item-url").val("http://")}))},addLinkToMenu:function(a,c,d,e){d=d||b.addMenuItemToBottom,e=e||function(){},b.addItemToMenu({"-1":{"menu-item-type":"custom","menu-item-url":a,"menu-item-title":c}},d,e)},addItemToMenu:function(b,c,d){var e,f=a("#menu").val(),g=a("#menu-settings-column-nonce").val();c=c||function(){},d=d||function(){},e={action:"add-menu-item",menu:f,"menu-settings-column-nonce":g,"menu-item":b},a.post(ajaxurl,e,function(b){var f=a("#menu-instructions");b=a.trim(b),c(b,e),a("li.pending").hide().fadeIn("slow"),a(".drag-instructions").show(),!f.hasClass("menu-instructions-inactive")&&f.siblings().length&&f.addClass("menu-instructions-inactive"),d()})},addMenuItemToBottom:function(c){a(c).hideAdvancedMenuItemFields().appendTo(b.targetList),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},addMenuItemToTop:function(c){a(c).hideAdvancedMenuItemFields().prependTo(b.targetList),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},attachUnsavedChangesListener:function(){a("#menu-management input, #menu-management select, #menu-management, #menu-management textarea, .menu-location-menus select").change(function(){b.registerChange()}),0!==a("#menu-to-edit").length||0!==a(".menu-location-menus select").length?window.onbeforeunload=function(){return b.menusChanged?navMenuL10n.saveAlert:void 0}:a("#menu-settings-column").find("input,select").end().find("a").attr("href","#").unbind("click")},registerChange:function(){b.menusChanged=!0},attachTabsPanelListeners:function(){a("#menu-settings-column").bind("click",function(c){var d,e,f,g,h=a(c.target);if(h.hasClass("nav-tab-link"))e=h.data("type"),f=h.parents(".accordion-section-content").first(),a("input",f).removeAttr("checked"),a(".tabs-panel-active",f).removeClass("tabs-panel-active").addClass("tabs-panel-inactive"),a("#"+e,f).removeClass("tabs-panel-inactive").addClass("tabs-panel-active"),a(".tabs",f).removeClass("tabs"),h.parent().addClass("tabs"),a(".quick-search",f).focus(),c.preventDefault();else if(h.hasClass("select-all")){if(d=/#(.*)$/.exec(c.target.href),d&&d[1])return g=a("#"+d[1]+" .tabs-panel-active .menu-item-title input"),g.length===g.filter(":checked").length?g.removeAttr("checked"):g.prop("checked",!0),!1}else{if(h.hasClass("submit-add-to-menu"))return b.registerChange(),c.target.id&&"submit-customlinkdiv"==c.target.id?b.addCustomLink(b.addMenuItemToBottom):c.target.id&&-1!=c.target.id.indexOf("submit-")&&a("#"+c.target.id.replace(/submit-/,"")).addSelectedToMenu(b.addMenuItemToBottom),!1;if(h.hasClass("page-numbers"))return a.post(ajaxurl,c.target.href.replace(/.*\?/,"").replace(/action=([^&]*)/,"")+"&action=menu-get-metabox",function(b){if(-1!=b.indexOf("replace-id")){var c=a.parseJSON(b),d=document.getElementById(c["replace-id"]),e=document.createElement("div"),f=document.createElement("div");c.markup&&d&&(f.innerHTML=c.markup?c.markup:"",d.parentNode.insertBefore(e,d),e.parentNode.removeChild(d),e.parentNode.insertBefore(f,e),e.parentNode.removeChild(e))}}),!1}})},eventOnClickEditLink:function(b){var c,d,e=/#(.*)$/.exec(b.href);return e&&e[1]&&(c=a("#"+e[1]),d=c.parent(),0!==d.length)?(d.hasClass("menu-item-edit-inactive")?(c.data("menu-item-data")||c.data("menu-item-data",c.getItemData()),c.slideDown("fast"),d.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active")):(c.slideUp("fast"),d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive")),!1):void 0},eventOnClickCancelLink:function(b){var c=a(b).closest(".menu-item-settings"),d=a(b).closest(".menu-item");return d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive"),c.setItemData(c.data("menu-item-data")).hide(),!1},eventOnClickMenuSave:function(){var c="",d=a("#menu-name"),e=d.val();return e&&e!=d.attr("title")&&e.replace(/\s+/,"")?(a("#nav-menu-theme-locations select").each(function(){c+='<input type="hidden" name="'+this.name+'" value="'+a(this).val()+'" />'}),a("#update-nav-menu").append(c),b.menuList.find(".menu-item-data-position").val(function(a){return a+1}),window.onbeforeunload=null,!0):(d.parent().addClass("form-invalid"),!1)},eventOnClickMenuDelete:function(){return window.confirm(navMenuL10n.warnDeleteMenu)?(window.onbeforeunload=null,!0):!1},eventOnClickMenuItemDelete:function(c){var d=parseInt(c.id.replace("delete-",""),10);return b.removeMenuItem(a("#menu-item-"+d)),b.registerChange(),!1},processQuickSearchQueryResponse:function(b,c,d){var e,f,g,h={},i=document.getElementById("nav-menu-meta"),j=/menu-item[(\[^]\]*/,k=a("<div>").html(b).find("li");return k.length?(k.each(function(){if(g=a(this),e=j.exec(g.html()),e&&e[1]){for(f=e[1];i.elements["menu-item["+f+"][menu-item-type]"]||h[f];)f--;h[f]=!0,f!=e[1]&&g.html(g.html().replace(new RegExp("menu-item\\["+e[1]+"\\]","g"),"menu-item["+f+"]"))}}),a(".categorychecklist",d).html(k),void a(".spinner",d).hide()):(a(".categorychecklist",d).html("<li><p>"+navMenuL10n.noResultsFound+"</p></li>"),void a(".spinner",d).hide())},removeMenuItem:function(b){var c=b.childMenuItems();b.addClass("deleting").animate({opacity:0,height:0},350,function(){var d=a("#menu-instructions");b.remove(),c.shiftDepthClass(-1).updateParentMenuItemDBId(),0===a("#menu-to-edit li").length&&(a(".drag-instructions").hide(),d.removeClass("menu-instructions-inactive"))})},depthToPx:function(a){return a*b.options.menuItemDepthPerLevel},pxToDepth:function(a){return Math.floor(a/b.options.menuItemDepthPerLevel)}},a(document).ready(function(){wpNavMenu.init()})}(jQuery);
\ No newline at end of file
+var wpNavMenu;!function(a){var b;b=wpNavMenu={options:{menuItemDepthPerLevel:30,globalMaxDepth:11},menuList:void 0,targetList:void 0,menusChanged:!1,isRTL:!("undefined"==typeof isRtl||!isRtl),negateIfRTL:"undefined"!=typeof isRtl&&isRtl?-1:1,init:function(){b.menuList=a("#menu-to-edit"),b.targetList=b.menuList,this.jQueryExtensions(),this.attachMenuEditListeners(),this.setupInputWithDefaultTitle(),this.attachQuickSearchListeners(),this.attachThemeLocationsListeners(),this.attachTabsPanelListeners(),this.attachUnsavedChangesListener(),b.menuList.length&&this.initSortables(),menus.oneThemeLocationNoMenus&&a("#posttype-page").addSelectedToMenu(b.addMenuItemToBottom),this.initManageLocations(),this.initAccessibility(),this.initToggles(),this.initPreviewing()},jQueryExtensions:function(){a.fn.extend({menuItemDepth:function(){var a=this.eq(0).css(b.isRTL?"margin-right":"margin-left");return b.pxToDepth(a&&-1!=a.indexOf("px")?a.slice(0,-2):0)},updateDepthClass:function(b,c){return this.each(function(){var d=a(this);c=c||d.menuItemDepth(),a(this).removeClass("menu-item-depth-"+c).addClass("menu-item-depth-"+b)})},shiftDepthClass:function(b){return this.each(function(){var c=a(this),d=c.menuItemDepth();a(this).removeClass("menu-item-depth-"+d).addClass("menu-item-depth-"+(d+b))})},childMenuItems:function(){var b=a();return this.each(function(){for(var c=a(this),d=c.menuItemDepth(),e=c.next();e.length&&e.menuItemDepth()>d;)b=b.add(e),e=e.next()}),b},shiftHorizontally:function(b){return this.each(function(){var c=a(this),d=c.menuItemDepth(),e=d+b;c.moveHorizontally(e,d)})},moveHorizontally:function(b,c){return this.each(function(){var d=a(this),e=d.childMenuItems(),f=b-c,g=d.find(".is-submenu");d.updateDepthClass(b,c).updateParentMenuItemDBId(),e&&e.each(function(){var b=a(this),c=b.menuItemDepth(),d=c+f;b.updateDepthClass(d,c).updateParentMenuItemDBId()}),0===b?g.hide():g.show()})},updateParentMenuItemDBId:function(){return this.each(function(){var b=a(this),c=b.find(".menu-item-data-parent-id"),d=parseInt(b.menuItemDepth(),10),e=d-1,f=b.prevAll(".menu-item-depth-"+e).first();c.val(0===d?0:f.find(".menu-item-data-db-id").val())})},hideAdvancedMenuItemFields:function(){return this.each(function(){var b=a(this);a(".hide-column-tog").not(":checked").each(function(){b.find(".field-"+a(this).val()).addClass("hidden-field")})})},addSelectedToMenu:function(c){return 0===a("#menu-to-edit").length?!1:this.each(function(){var d=a(this),e={},f=d.find(menus.oneThemeLocationNoMenus&&0===d.find(".tabs-panel-active .categorychecklist li input:checked").length?'#page-all li input[type="checkbox"]':".tabs-panel-active .categorychecklist li input:checked"),g=/menu-item\[([^\]]*)/;return c=c||b.addMenuItemToBottom,f.length?(d.find(".spinner").show(),a(f).each(function(){var d=a(this),f=g.exec(d.attr("name")),h="undefined"==typeof f[1]?0:parseInt(f[1],10);this.className&&-1!=this.className.indexOf("add-to-top")&&(c=b.addMenuItemToTop),e[h]=d.closest("li").getItemData("add-menu-item",h)}),void b.addItemToMenu(e,c,function(){f.removeAttr("checked"),d.find(".spinner").hide()})):!1})},getItemData:function(a,b){a=a||"menu-item";var c,d={},e=["menu-item-db-id","menu-item-object-id","menu-item-object","menu-item-parent-id","menu-item-position","menu-item-type","menu-item-title","menu-item-url","menu-item-description","menu-item-attr-title","menu-item-target","menu-item-classes","menu-item-xfn"];return b||"menu-item"!=a||(b=this.find(".menu-item-data-db-id").val()),b?(this.find("input").each(function(){var f;for(c=e.length;c--;)"menu-item"==a?f=e[c]+"["+b+"]":"add-menu-item"==a&&(f="menu-item["+b+"]["+e[c]+"]"),this.name&&f==this.name&&(d[e[c]]=this.value)}),d):d},setItemData:function(b,c,d){return c=c||"menu-item",d||"menu-item"!=c||(d=a(".menu-item-data-db-id",this).val()),d?(this.find("input").each(function(){var e,f=a(this);a.each(b,function(a,b){"menu-item"==c?e=a+"["+d+"]":"add-menu-item"==c&&(e="menu-item["+d+"]["+a+"]"),e==f.attr("name")&&f.val(b)})}),this):this}})},countMenuItems:function(b){return a(".menu-item-depth-"+b).length},moveMenuItem:function(c,d){var e,f,g,h=a("#menu-to-edit li"),i=h.length,j=c.parents("li.menu-item"),k=j.childMenuItems(),l=j.getItemData(),m=parseInt(j.menuItemDepth(),10),n=parseInt(j.index(),10),o=j.next(),p=o.childMenuItems(),q=parseInt(o.menuItemDepth(),10)+1,r=j.prev(),s=parseInt(r.menuItemDepth(),10),t=r.getItemData()["menu-item-db-id"];switch(d){case"up":if(f=n-1,0===n)break;0===f&&0!==m&&j.moveHorizontally(0,m),0!==s&&j.moveHorizontally(s,m),k?(e=j.add(k),e.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId()):j.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId();break;case"down":if(k){if(e=j.add(k),o=h.eq(e.length+n),p=0!==o.childMenuItems().length,p&&(g=parseInt(o.menuItemDepth(),10)+1,j.moveHorizontally(g,m)),i===n+e.length)break;e.detach().insertAfter(h.eq(n+e.length)).updateParentMenuItemDBId()}else{if(0!==p.length&&j.moveHorizontally(q,m),i===n+1)break;j.detach().insertAfter(h.eq(n+1)).updateParentMenuItemDBId()}break;case"top":if(0===n)break;k?(e=j.add(k),e.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId()):j.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId();break;case"left":if(0===m)break;j.shiftHorizontally(-1);break;case"right":if(0===n)break;if(l["menu-item-parent-id"]===t)break;j.shiftHorizontally(1)}c.focus(),b.registerChange(),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},initAccessibility:function(){var c=a("#menu-to-edit");b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility(),c.on("click",".menus-move-up",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"up"),c.preventDefault()}),c.on("click",".menus-move-down",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"down"),c.preventDefault()}),c.on("click",".menus-move-top",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"top"),c.preventDefault()}),c.on("click",".menus-move-left",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"left"),c.preventDefault()}),c.on("click",".menus-move-right",function(c){b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),"right"),c.preventDefault()})},refreshAdvancedAccessibility:function(){a(".menu-item-settings .field-move a").css("display","none"),a(".item-edit").each(function(){var b,c,d,e,f,g,h,i,j,k=a(this),l=k.closest("li.menu-item").first(),m=l.menuItemDepth(),n=0===m,o=k.closest(".menu-item-handle").find(".menu-item-title").text(),p=parseInt(l.index(),10),q=n?m:parseInt(m-1,10),r=l.prevAll(".menu-item-depth-"+q).first().find(".menu-item-title").text(),s=l.prevAll(".menu-item-depth-"+m).first().find(".menu-item-title").text(),t=a("#menu-to-edit li").length,u=l.nextAll(".menu-item-depth-"+m).length;0!==p&&(b=l.find(".menus-move-up"),b.prop("title",menus.moveUp).css("display","inline")),0!==p&&n&&(b=l.find(".menus-move-top"),b.prop("title",menus.moveToTop).css("display","inline")),p+1!==t&&0!==p&&(b=l.find(".menus-move-down"),b.prop("title",menus.moveDown).css("display","inline")),0===p&&0!==u&&(b=l.find(".menus-move-down"),b.prop("title",menus.moveDown).css("display","inline")),n||(b=l.find(".menus-move-left"),c=menus.outFrom.replace("%s",r),b.prop("title",menus.moveOutFrom.replace("%s",r)).html(c).css("display","inline")),0!==p&&l.find(".menu-item-data-parent-id").val()!==l.prev().find(".menu-item-data-db-id").val()&&(b=l.find(".menus-move-right"),c=menus.under.replace("%s",s),b.prop("title",menus.moveUnder.replace("%s",s)).html(c).css("display","inline")),n?(d=a(".menu-item-depth-0"),e=d.index(l)+1,t=d.length,f=menus.menuFocus.replace("%1$s",o).replace("%2$d",e).replace("%3$d",t)):(g=l.prevAll(".menu-item-depth-"+parseInt(m-1,10)).first(),h=g.find(".menu-item-data-db-id").val(),i=g.find(".menu-item-title").text(),j=a('.menu-item .menu-item-data-parent-id[value="'+h+'"]'),e=a(j.parents(".menu-item").get().reverse()).index(l)+1,f=menus.subMenuFocus.replace("%1$s",o).replace("%2$d",e).replace("%3$s",i)),k.prop("title",f).html(f)})},refreshKeyboardAccessibility:function(){a(".item-edit").off("focus").on("focus",function(){a(this).off("keydown").on("keydown",function(c){var d,e=a(this),f=e.parents("li.menu-item"),g=f.getItemData();if((37==c.which||38==c.which||39==c.which||40==c.which)&&(e.off("keydown"),1!==a("#menu-to-edit li").length)){switch(d={38:"up",40:"down",37:"left",39:"right"},a("body").hasClass("rtl")&&(d={38:"up",40:"down",39:"left",37:"right"}),d[c.which]){case"up":b.moveMenuItem(e,"up");break;case"down":b.moveMenuItem(e,"down");break;case"left":b.moveMenuItem(e,"left");break;case"right":b.moveMenuItem(e,"right")}return a("#edit-"+g["menu-item-db-id"]).focus(),!1}})})},initPreviewing:function(){a("#menu-to-edit").on("change input",".edit-menu-item-title",function(b){var c,d,e=a(b.currentTarget);c=e.val(),d=e.closest(".menu-item").find(".menu-item-title"),c?d.text(c).removeClass("no-title"):d.text(navMenuL10n.untitled).addClass("no-title")})},initToggles:function(){postboxes.add_postbox_toggles("nav-menus"),columns.useCheckboxesForHidden(),columns.checked=function(b){a(".field-"+b).removeClass("hidden-field")},columns.unchecked=function(b){a(".field-"+b).addClass("hidden-field")},b.menuList.hideAdvancedMenuItemFields(),a(".hide-postbox-tog").click(function(){var b=a(".accordion-container li.accordion-section").filter(":hidden").map(function(){return this.id}).get().join(",");a.post(ajaxurl,{action:"closed-postboxes",hidden:b,closedpostboxesnonce:jQuery("#closedpostboxesnonce").val(),page:"nav-menus"})})},initSortables:function(){function c(a){var c;j=a.placeholder.prev(),k=a.placeholder.next(),j[0]==a.item[0]&&(j=j.prev()),k[0]==a.item[0]&&(k=k.next()),l=j.length?j.offset().top+j.height():0,m=k.length?k.offset().top+k.height()/3:0,h=k.length?k.menuItemDepth():0,i=j.length?(c=j.menuItemDepth()+1)>b.options.globalMaxDepth?b.options.globalMaxDepth:c:0}function d(a,b){a.placeholder.updateDepthClass(b,q),q=b}function e(){if(!s[0].className)return 0;var a=s[0].className.match(/menu-max-depth-(\d+)/);return a&&a[1]?parseInt(a[1],10):0}function f(c){var d,e=t;if(0!==c){if(c>0)d=p+c,d>t&&(e=d);else if(0>c&&p==t)for(;!a(".menu-item-depth-"+e,b.menuList).length&&e>0;)e--;s.removeClass("menu-max-depth-"+t).addClass("menu-max-depth-"+e),t=e}}var g,h,i,j,k,l,m,n,o,p,q=0,r=b.menuList.offset().left,s=a("body"),t=e();0!==a("#menu-to-edit li").length&&a(".drag-instructions").show(),r+=b.isRTL?b.menuList.width():0,b.menuList.sortable({handle:".menu-item-handle",placeholder:"sortable-placeholder",start:function(e,f){var h,i,j,k,l;b.isRTL&&(f.item[0].style.right="auto"),o=f.item.children(".menu-item-transport"),g=f.item.menuItemDepth(),d(f,g),j=f.item.next()[0]==f.placeholder[0]?f.item.next():f.item,k=j.childMenuItems(),o.append(k),h=o.outerHeight(),h+=h>0?1*f.placeholder.css("margin-top").slice(0,-2):0,h+=f.helper.outerHeight(),n=h,h-=2,f.placeholder.height(h),p=g,k.each(function(){var b=a(this).menuItemDepth();p=b>p?b:p}),i=f.helper.find(".menu-item-handle").outerWidth(),i+=b.depthToPx(p-g),i-=2,f.placeholder.width(i),l=f.placeholder.next(),l.css("margin-top",n+"px"),f.placeholder.detach(),a(this).sortable("refresh"),f.item.after(f.placeholder),l.css("margin-top",0),c(f)},stop:function(a,c){var d,e,h=q-g;d=o.children().insertAfter(c.item),e=c.item.find(".item-title .is-submenu"),q>0?e.show():e.hide(),0!==h&&(c.item.updateDepthClass(q),d.shiftDepthClass(h),f(h)),b.registerChange(),c.item.updateParentMenuItemDBId(),c.item[0].style.top=0,b.isRTL&&(c.item[0].style.left="auto",c.item[0].style.right=0),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},change:function(a,d){d.placeholder.parent().hasClass("menu")||(j.length?j.after(d.placeholder):b.menuList.prepend(d.placeholder)),c(d)},sort:function(e,f){var g=f.helper.offset(),j=b.isRTL?g.left+f.helper.width():g.left,o=b.negateIfRTL*b.pxToDepth(j-r);o>i||g.top<l?o=i:h>o&&(o=h),o!=q&&d(f,o),m&&g.top+n>m&&(k.after(f.placeholder),c(f),a(this).sortable("refreshPositions"))}})},initManageLocations:function(){a("#menu-locations-wrap form").submit(function(){window.onbeforeunload=null}),a(".menu-location-menus select").on("change",function(){var b=a(this).closest("tr").find(".locations-edit-menu-link");a(this).find("option:selected").data("orig")?b.show():b.hide()})},attachMenuEditListeners:function(){var b=this;a("#update-nav-menu").bind("click",function(a){if(a.target&&a.target.className){if(-1!=a.target.className.indexOf("item-edit"))return b.eventOnClickEditLink(a.target);if(-1!=a.target.className.indexOf("menu-save"))return b.eventOnClickMenuSave(a.target);if(-1!=a.target.className.indexOf("menu-delete"))return b.eventOnClickMenuDelete(a.target);if(-1!=a.target.className.indexOf("item-delete"))return b.eventOnClickMenuItemDelete(a.target);if(-1!=a.target.className.indexOf("item-cancel"))return b.eventOnClickCancelLink(a.target)}}),a('#add-custom-links input[type="text"]').keypress(function(b){13===b.keyCode&&(b.preventDefault(),a("#submit-customlinkdiv").click())})},setupInputWithDefaultTitle:function(){var b="input-with-default-title";a("."+b).each(function(){var c=a(this),d=c.attr("title"),e=c.val();if(c.data(b,d),""===e)c.val(d);else{if(d==e)return;c.removeClass(b)}}).focus(function(){var c=a(this);c.val()==c.data(b)&&c.val("").removeClass(b)}).blur(function(){var c=a(this);""===c.val()&&c.addClass(b).val(c.data(b))}),a(".blank-slate .input-with-default-title").focus()},attachThemeLocationsListeners:function(){var b=a("#nav-menu-theme-locations"),c={};c.action="menu-locations-save",c["menu-settings-column-nonce"]=a("#menu-settings-column-nonce").val(),b.find('input[type="submit"]').click(function(){return b.find("select").each(function(){c[this.name]=a(this).val()}),b.find(".spinner").show(),a.post(ajaxurl,c,function(){b.find(".spinner").hide()}),!1})},attachQuickSearchListeners:function(){var c;a(".quick-search").keypress(function(d){var e=a(this);return 13==d.which?(b.updateQuickSearchResults(e),!1):(c&&clearTimeout(c),void(c=setTimeout(function(){b.updateQuickSearchResults(e)},400)))}).attr("autocomplete","off")},updateQuickSearchResults:function(c){var d,e,f=2,g=c.val();g.length<f||(d=c.parents(".tabs-panel"),e={action:"menu-quick-search","response-format":"markup",menu:a("#menu").val(),"menu-settings-column-nonce":a("#menu-settings-column-nonce").val(),q:g,type:c.attr("name")},a(".spinner",d).show(),a.post(ajaxurl,e,function(a){b.processQuickSearchQueryResponse(a,e,d)}))},addCustomLink:function(c){var d=a("#custom-menu-item-url").val(),e=a("#custom-menu-item-name").val();return c=c||b.addMenuItemToBottom,""===d||"http://"==d?!1:(a(".customlinkdiv .spinner").show(),void this.addLinkToMenu(d,e,c,function(){a(".customlinkdiv .spinner").hide(),a("#custom-menu-item-name").val("").blur(),a("#custom-menu-item-url").val("http://")}))},addLinkToMenu:function(a,c,d,e){d=d||b.addMenuItemToBottom,e=e||function(){},b.addItemToMenu({"-1":{"menu-item-type":"custom","menu-item-url":a,"menu-item-title":c}},d,e)},addItemToMenu:function(b,c,d){var e,f=a("#menu").val(),g=a("#menu-settings-column-nonce").val();c=c||function(){},d=d||function(){},e={action:"add-menu-item",menu:f,"menu-settings-column-nonce":g,"menu-item":b},a.post(ajaxurl,e,function(b){var f=a("#menu-instructions");b=a.trim(b),c(b,e),a("li.pending").hide().fadeIn("slow"),a(".drag-instructions").show(),!f.hasClass("menu-instructions-inactive")&&f.siblings().length&&f.addClass("menu-instructions-inactive"),d()})},addMenuItemToBottom:function(c){a(c).hideAdvancedMenuItemFields().appendTo(b.targetList),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},addMenuItemToTop:function(c){a(c).hideAdvancedMenuItemFields().prependTo(b.targetList),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},attachUnsavedChangesListener:function(){a("#menu-management input, #menu-management select, #menu-management, #menu-management textarea, .menu-location-menus select").change(function(){b.registerChange()}),0!==a("#menu-to-edit").length||0!==a(".menu-location-menus select").length?window.onbeforeunload=function(){return b.menusChanged?navMenuL10n.saveAlert:void 0}:a("#menu-settings-column").find("input,select").end().find("a").attr("href","#").unbind("click")},registerChange:function(){b.menusChanged=!0},attachTabsPanelListeners:function(){a("#menu-settings-column").bind("click",function(c){var d,e,f,g,h=a(c.target);if(h.hasClass("nav-tab-link"))e=h.data("type"),f=h.parents(".accordion-section-content").first(),a("input",f).removeAttr("checked"),a(".tabs-panel-active",f).removeClass("tabs-panel-active").addClass("tabs-panel-inactive"),a("#"+e,f).removeClass("tabs-panel-inactive").addClass("tabs-panel-active"),a(".tabs",f).removeClass("tabs"),h.parent().addClass("tabs"),a(".quick-search",f).focus(),c.preventDefault();else if(h.hasClass("select-all")){if(d=/#(.*)$/.exec(c.target.href),d&&d[1])return g=a("#"+d[1]+" .tabs-panel-active .menu-item-title input"),g.length===g.filter(":checked").length?g.removeAttr("checked"):g.prop("checked",!0),!1}else{if(h.hasClass("submit-add-to-menu"))return b.registerChange(),c.target.id&&"submit-customlinkdiv"==c.target.id?b.addCustomLink(b.addMenuItemToBottom):c.target.id&&-1!=c.target.id.indexOf("submit-")&&a("#"+c.target.id.replace(/submit-/,"")).addSelectedToMenu(b.addMenuItemToBottom),!1;if(h.hasClass("page-numbers"))return a.post(ajaxurl,c.target.href.replace(/.*\?/,"").replace(/action=([^&]*)/,"")+"&action=menu-get-metabox",function(b){if(-1!=b.indexOf("replace-id")){var c=a.parseJSON(b),d=document.getElementById(c["replace-id"]),e=document.createElement("div"),f=document.createElement("div");c.markup&&d&&(f.innerHTML=c.markup?c.markup:"",d.parentNode.insertBefore(e,d),e.parentNode.removeChild(d),e.parentNode.insertBefore(f,e),e.parentNode.removeChild(e))}}),!1}})},eventOnClickEditLink:function(b){var c,d,e=/#(.*)$/.exec(b.href);return e&&e[1]&&(c=a("#"+e[1]),d=c.parent(),0!==d.length)?(d.hasClass("menu-item-edit-inactive")?(c.data("menu-item-data")||c.data("menu-item-data",c.getItemData()),c.slideDown("fast"),d.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active")):(c.slideUp("fast"),d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive")),!1):void 0},eventOnClickCancelLink:function(b){var c=a(b).closest(".menu-item-settings"),d=a(b).closest(".menu-item");return d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive"),c.setItemData(c.data("menu-item-data")).hide(),!1},eventOnClickMenuSave:function(){var c="",d=a("#menu-name"),e=d.val();return e&&e!=d.attr("title")&&e.replace(/\s+/,"")?(a("#nav-menu-theme-locations select").each(function(){c+='<input type="hidden" name="'+this.name+'" value="'+a(this).val()+'" />'}),a("#update-nav-menu").append(c),b.menuList.find(".menu-item-data-position").val(function(a){return a+1}),window.onbeforeunload=null,!0):(d.parent().addClass("form-invalid"),!1)},eventOnClickMenuDelete:function(){return window.confirm(navMenuL10n.warnDeleteMenu)?(window.onbeforeunload=null,!0):!1},eventOnClickMenuItemDelete:function(c){var d=parseInt(c.id.replace("delete-",""),10);return b.removeMenuItem(a("#menu-item-"+d)),b.registerChange(),!1},processQuickSearchQueryResponse:function(b,c,d){var e,f,g,h={},i=document.getElementById("nav-menu-meta"),j=/menu-item[(\[^]\]*/,k=a("<div>").html(b).find("li");return k.length?(k.each(function(){if(g=a(this),e=j.exec(g.html()),e&&e[1]){for(f=e[1];i.elements["menu-item["+f+"][menu-item-type]"]||h[f];)f--;h[f]=!0,f!=e[1]&&g.html(g.html().replace(new RegExp("menu-item\\["+e[1]+"\\]","g"),"menu-item["+f+"]"))}}),a(".categorychecklist",d).html(k),void a(".spinner",d).hide()):(a(".categorychecklist",d).html("<li><p>"+navMenuL10n.noResultsFound+"</p></li>"),void a(".spinner",d).hide())},removeMenuItem:function(b){var c=b.childMenuItems();b.addClass("deleting").animate({opacity:0,height:0},350,function(){var d=a("#menu-instructions");b.remove(),c.shiftDepthClass(-1).updateParentMenuItemDBId(),0===a("#menu-to-edit li").length&&(a(".drag-instructions").hide(),d.removeClass("menu-instructions-inactive"))})},depthToPx:function(a){return a*b.options.menuItemDepthPerLevel},pxToDepth:function(a){return Math.floor(a/b.options.menuItemDepthPerLevel)}},a(document).ready(function(){wpNavMenu.init()})}(jQuery);
\ No newline at end of file
index 9f686fc6beaa75be65d03b5b907360109207989c..7403769e8b2756fc92bca0e1e98e0502436d73e1 100644 (file)
@@ -6,8 +6,8 @@ jQuery( document ).ready( function( $ ) {
        tb_position = function() {
                var tbWindow = $( '#TB_window' ),
                        width = $( window ).width(),
        tb_position = function() {
                var tbWindow = $( '#TB_window' ),
                        width = $( window ).width(),
-                       H = $( window ).height() - ( ( 850 < width ) ? 60 : 20 ),
-                       W = ( 850 < width ) ? 830 : width - 20;
+                       H = $( window ).height() - ( ( 792 < width ) ? 60 : 20 ),
+                       W = ( 792 < width ) ? 772 : width - 20;
 
                if ( tbWindow.size() ) {
                        tbWindow.width( W ).height( H );
 
                if ( tbWindow.size() ) {
                        tbWindow.width( W ).height( H );
@@ -17,7 +17,7 @@ jQuery( document ).ready( function( $ ) {
                        });
                        if ( typeof document.body.style.maxWidth !== 'undefined' ) {
                                tbWindow.css({
                        });
                        if ( typeof document.body.style.maxWidth !== 'undefined' ) {
                                tbWindow.css({
-                                       'top': ( ( 850 < width ) ? 30 : 10 ) + 'px',
+                                       'top': '30px',
                                        'margin-top': '0'
                                });
                        }
                                        'margin-top': '0'
                                });
                        }
@@ -38,23 +38,35 @@ jQuery( document ).ready( function( $ ) {
                tb_position();
        });
 
                tb_position();
        });
 
-       $('.plugins').on( 'click', 'a.thickbox', function() {
+       $( '.plugin-card, .plugins .column-description' ).on( 'click', 'a.thickbox', function() {
                tb_click.call(this);
 
                $('#TB_title').css({'background-color':'#222','color':'#cfcfcf'});
                tb_click.call(this);
 
                $('#TB_title').css({'background-color':'#222','color':'#cfcfcf'});
-               $('#TB_ajaxWindowTitle').html('<strong>' + plugininstallL10n.plugin_information + '</strong>&nbsp;' + $(this).attr('title') );
+               $('#TB_ajaxWindowTitle').html( '<strong>' + plugininstallL10n.plugin_information + '</strong>&nbsp;' + $(this).data( 'title' ) );
+               $('#TB_iframeContent').attr( 'title', plugininstallL10n.plugin_information + ' ' + $(this).data( 'title' ) );
+               $('#TB_closeWindowButton').focus();
+
                return false;
        });
 
                return false;
        });
 
-       /* Plugin install related JS*/
+       /* Plugin install related JS */
        $( '#plugin-information-tabs a' ).click( function( event ) {
                var tab = $( this ).attr( 'name' );
                event.preventDefault();
        $( '#plugin-information-tabs a' ).click( function( event ) {
                var tab = $( this ).attr( 'name' );
                event.preventDefault();
-               //Flip the tab
+
+               // Flip the tab
                $( '#plugin-information-tabs a.current' ).removeClass( 'current' );
                $( this ).addClass( 'current' );
                $( '#plugin-information-tabs a.current' ).removeClass( 'current' );
                $( this ).addClass( 'current' );
-               //Flip the content.
-               $( '#section-holder div.section' ).hide(); //Hide 'em all
+
+               // Only show the fyi box in the description section, on smaller screen, where it's otherwise always displayed at the top.
+               if ( 'description' !== tab && $( window ).width() < 772 ) {
+                       $( '#plugin-information-content' ).find( '.fyi' ).hide();
+               } else {
+                       $( '#plugin-information-content' ).find( '.fyi' ).show();
+               }
+
+               // Flip the content.
+               $( '#section-holder div.section' ).hide(); // Hide 'em all.
                $( '#section-' + tab ).show();
        });
 
                $( '#section-' + tab ).show();
        });
 
index dee8002a50829f3afe2502356b19a6402d5cb91e..f9401ddcb94b7afb08d67bc0acbd03888e0bdad7 100644 (file)
@@ -1 +1 @@
-var tb_position;jQuery(document).ready(function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height()-(c>850?60:20),e=c>850?830:c-20;return b.size()&&(b.width(e).height(d),a("#TB_iframeContent").width(e).height(d),b.css({"margin-left":"-"+parseInt(e/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:(c>850?30:10)+"px","margin-top":"0"})),a("a.thickbox").each(function(){var b=a(this).attr("href");b&&(b=b.replace(/&width=[0-9]+/g,""),b=b.replace(/&height=[0-9]+/g,""),a(this).attr("href",b+"&width="+e+"&height="+d))})},a(window).resize(function(){tb_position()}),a(".plugins").on("click","a.thickbox",function(){return tb_click.call(this),a("#TB_title").css({"background-color":"#222",color:"#cfcfcf"}),a("#TB_ajaxWindowTitle").html("<strong>"+plugininstallL10n.plugin_information+"</strong>&nbsp;"+a(this).attr("title")),!1}),a("#plugin-information-tabs a").click(function(b){var c=a(this).attr("name");b.preventDefault(),a("#plugin-information-tabs a.current").removeClass("current"),a(this).addClass("current"),a("#section-holder div.section").hide(),a("#section-"+c).show()}),a("a.install-now").click(function(){return confirm(plugininstallL10n.ays)})});
\ No newline at end of file
+var tb_position;jQuery(document).ready(function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height()-(c>792?60:20),e=c>792?772:c-20;return b.size()&&(b.width(e).height(d),a("#TB_iframeContent").width(e).height(d),b.css({"margin-left":"-"+parseInt(e/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:"30px","margin-top":"0"})),a("a.thickbox").each(function(){var b=a(this).attr("href");b&&(b=b.replace(/&width=[0-9]+/g,""),b=b.replace(/&height=[0-9]+/g,""),a(this).attr("href",b+"&width="+e+"&height="+d))})},a(window).resize(function(){tb_position()}),a(".plugin-card, .plugins .column-description").on("click","a.thickbox",function(){return tb_click.call(this),a("#TB_title").css({"background-color":"#222",color:"#cfcfcf"}),a("#TB_ajaxWindowTitle").html("<strong>"+plugininstallL10n.plugin_information+"</strong>&nbsp;"+a(this).data("title")),a("#TB_iframeContent").attr("title",plugininstallL10n.plugin_information+" "+a(this).data("title")),a("#TB_closeWindowButton").focus(),!1}),a("#plugin-information-tabs a").click(function(b){var c=a(this).attr("name");b.preventDefault(),a("#plugin-information-tabs a.current").removeClass("current"),a(this).addClass("current"),"description"!==c&&a(window).width()<772?a("#plugin-information-content").find(".fyi").hide():a("#plugin-information-content").find(".fyi").show(),a("#section-holder div.section").hide(),a("#section-"+c).show()}),a("a.install-now").click(function(){return confirm(plugininstallL10n.ays)})});
\ No newline at end of file
index 21f28e7d5e268bc3f91b4e1fec8b7b6681e761c4..45413f8e99bb2ff84f86e2d8c202333e70b20fe3 100644 (file)
@@ -892,7 +892,8 @@ jQuery(document).ready( function($) {
                b.children('.save').click(function() {
                        var new_slug = e.children('input').val();
                        if ( new_slug == $('#editable-post-name-full').text() ) {
                b.children('.save').click(function() {
                        var new_slug = e.children('input').val();
                        if ( new_slug == $('#editable-post-name-full').text() ) {
-                               return $('#edit-slug-buttons .cancel').click();
+                               b.children('.cancel').click();
+                               return false;
                        }
                        $.post(ajaxurl, {
                                action: 'sample-permalink',
                        }
                        $.post(ajaxurl, {
                                action: 'sample-permalink',
@@ -915,7 +916,7 @@ jQuery(document).ready( function($) {
                        return false;
                });
 
                        return false;
                });
 
-               $('#edit-slug-buttons .cancel').click(function() {
+               b.children('.cancel').click(function() {
                        $('#view-post-btn').show();
                        e.html(revert_e);
                        b.html(revert_b);
                        $('#view-post-btn').show();
                        e.html(revert_e);
                        b.html(revert_b);
@@ -1003,14 +1004,21 @@ jQuery(document).ready( function($) {
        ( function() {
                var editor, offset, mce,
                        $textarea = $('textarea#content'),
        ( function() {
                var editor, offset, mce,
                        $textarea = $('textarea#content'),
-                       $handle = $('#post-status-info');
+                       $handle = $('#post-status-info'),
+                       $postdivrich = $('#postdivrich');
 
                // No point for touch devices
                if ( ! $textarea.length || 'ontouchstart' in window ) {
 
                // No point for touch devices
                if ( ! $textarea.length || 'ontouchstart' in window ) {
+                       // Hide the resize handle
+                       $('#content-resize-handle').hide();
                        return;
                }
 
                function dragging( event ) {
                        return;
                }
 
                function dragging( event ) {
+                       if ( $postdivrich.hasClass( 'wp-editor-expand' ) ) {
+                               return;
+                       }
+
                        if ( mce ) {
                                editor.theme.resizeTo( null, offset + event.pageY );
                        } else {
                        if ( mce ) {
                                editor.theme.resizeTo( null, offset + event.pageY );
                        } else {
@@ -1023,6 +1031,10 @@ jQuery(document).ready( function($) {
                function endDrag() {
                        var height, toolbarHeight;
 
                function endDrag() {
                        var height, toolbarHeight;
 
+                       if ( $postdivrich.hasClass( 'wp-editor-expand' ) ) {
+                               return;
+                       }
+
                        if ( mce ) {
                                editor.focus();
                                toolbarHeight = parseInt( $( '#wp-content-editor-container .mce-toolbar-grp' ).height(), 10 );
                        if ( mce ) {
                                editor.focus();
                                toolbarHeight = parseInt( $( '#wp-content-editor-container .mce-toolbar-grp' ).height(), 10 );
@@ -1045,8 +1057,6 @@ jQuery(document).ready( function($) {
                        }
                }
 
                        }
                }
 
-               $textarea.css( 'resize', 'none' );
-
                $handle.on( 'mousedown.wp-editor-resize', function( event ) {
                        if ( typeof tinymce !== 'undefined' ) {
                                editor = tinymce.get('content');
                $handle.on( 'mousedown.wp-editor-resize', function( event ) {
                        if ( typeof tinymce !== 'undefined' ) {
                                editor = tinymce.get('content');
@@ -1073,14 +1083,11 @@ jQuery(document).ready( function($) {
                $( '#post-formats-select input.post-format' ).on( 'change.set-editor-class', function() {
                        var editor, body, format = this.id;
 
                $( '#post-formats-select input.post-format' ).on( 'change.set-editor-class', function() {
                        var editor, body, format = this.id;
 
-                       if ( format && $( this ).prop('checked') ) {
-                               editor = tinymce.get( 'content' );
-
-                               if ( editor ) {
-                                       body = editor.getBody();
-                                       body.className = body.className.replace( /\bpost-format-[^ ]+/, '' );
-                                       editor.dom.addClass( body, format == 'post-format-0' ? 'post-format-standard' : format );
-                               }
+                       if ( format && $( this ).prop( 'checked' ) && ( editor = tinymce.get( 'content' ) ) ) {
+                               body = editor.getBody();
+                               body.className = body.className.replace( /\bpost-format-[^ ]+/, '' );
+                               editor.dom.addClass( body, format == 'post-format-0' ? 'post-format-standard' : format );
+                               $( document ).trigger( 'editor-classchange' );
                        }
                });
        }
                        }
                });
        }
index da6463ed113cbaf2e1cfc51029a8b54958d9d94c..f75a3d4aade5ba444d06bbdb7c70766b9628b510 100644 (file)
@@ -1 +1 @@
-function array_unique_noempty(a){var b=[];return jQuery.each(a,function(a,c){c=jQuery.trim(c),c&&-1==jQuery.inArray(c,b)&&b.push(c)}),b}var tagBox,commentsBox,WPSetThumbnailHTML,WPSetThumbnailID,WPRemoveThumbnail,wptitlehint,makeSlugeditClickable,editPermalink;makeSlugeditClickable=editPermalink=function(){},window.wp=window.wp||{},function(a){var b=!1;tagBox={clean:function(a){var b=postL10n.comma;return","!==b&&(a=a.replace(new RegExp(b,"g"),",")),a=a.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,""),","!==b&&(a=a.replace(/,/g,b)),a},parseTags:function(b){var c=b.id,d=c.split("-check-num-")[1],e=a(b).closest(".tagsdiv"),f=e.find(".the-tags"),g=postL10n.comma,h=f.val().split(g),i=[];return delete h[d],a.each(h,function(b,c){c=a.trim(c),c&&i.push(c)}),f.val(this.clean(i.join(g))),this.quickClicks(e),!1},quickClicks:function(b){var c,d,e=a(".the-tags",b),f=a(".tagchecklist",b),g=a(b).attr("id");e.length&&(d=e.prop("disabled"),c=e.val().split(postL10n.comma),f.empty(),a.each(c,function(b,c){var e,h;c=a.trim(c),c&&(e=a("<span />").text(c),d||(h=a('<a id="'+g+"-check-num-"+b+'" class="ntdelbutton">X</a>'),h.click(function(){tagBox.parseTags(this)}),e.prepend("&nbsp;").prepend(h)),f.append(e))}))},flushTags:function(b,c,d){var e,f,g,h=a(".the-tags",b),i=a("input.newtag",b),j=postL10n.comma;return c=c||!1,g=c?a(c).text():i.val(),e=h.val(),f=e?e+j+g:g,f=this.clean(f),f=array_unique_noempty(f.split(j)).join(j),h.val(f),this.quickClicks(b),c||i.val(""),"undefined"==typeof d&&i.focus(),!1},get:function(b){var c=b.substr(b.indexOf("-")+1);a.post(ajaxurl,{action:"get-tagcloud",tax:c},function(d,e){(0===d||"success"!=e)&&(d=wpAjax.broken),d=a('<p id="tagcloud-'+c+'" class="the-tagcloud">'+d+"</p>"),a("a",d).click(function(){return tagBox.flushTags(a(this).closest(".inside").children(".tagsdiv"),this),!1}),a("#"+b).after(d)})},init:function(){var b=this,c=a("div.ajaxtag");a(".tagsdiv").each(function(){tagBox.quickClicks(this)}),a("input.tagadd",c).click(function(){b.flushTags(a(this).closest(".tagsdiv"))}),a("div.taghint",c).click(function(){a(this).css("visibility","hidden").parent().siblings(".newtag").focus()}),a("input.newtag",c).blur(function(){""===this.value&&a(this).parent().siblings(".taghint").css("visibility","")}).focus(function(){a(this).parent().siblings(".taghint").css("visibility","hidden")}).keyup(function(b){return 13==b.which?(tagBox.flushTags(a(this).closest(".tagsdiv")),!1):void 0}).keypress(function(a){return 13==a.which?(a.preventDefault(),!1):void 0}).each(function(){var b=a(this).closest("div.tagsdiv").attr("id");a(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+b,{delay:500,minchars:2,multiple:!0,multipleSep:postL10n.comma+" "})}),a("#post").submit(function(){a("div.tagsdiv").each(function(){tagBox.flushTags(this,!1,1)})}),a("a.tagcloud-link").click(function(){return tagBox.get(a(this).attr("id")),a(this).unbind().click(function(){return a(this).siblings(".the-tagcloud").toggle(),!1}),!1})}},commentsBox={st:0,get:function(b,c){var d,e=this.st;return c||(c=20),this.st+=c,this.total=b,a("#commentsdiv .spinner").show(),d={action:"get-comments",mode:"single",_ajax_nonce:a("#add_comment_nonce").val(),p:a("#post_ID").val(),start:e,number:c},a.post(ajaxurl,d,function(b){return b=wpAjax.parseAjaxResponse(b),a("#commentsdiv .widefat").show(),a("#commentsdiv .spinner").hide(),"object"==typeof b&&b.responses[0]?(a("#the-comment-list").append(b.responses[0].data),theList=theExtraList=null,a("a[className*=':']").unbind(),void(commentsBox.st>commentsBox.total?a("#show-comments").hide():a("#show-comments").show().children("a").html(postL10n.showcomm))):1==b?void a("#show-comments").html(postL10n.endcomm):void a("#the-comment-list").append('<tr><td colspan="2">'+wpAjax.broken+"</td></tr>")}),!1}},WPSetThumbnailHTML=function(b){a(".inside","#postimagediv").html(b)},WPSetThumbnailID=function(b){var c=a('input[value="_thumbnail_id"]',"#list-table");c.size()>0&&a("#meta\\["+c.attr("id").match(/[0-9]+/)+"\\]\\[value\\]").text(b)},WPRemoveThumbnail=function(b){a.post(ajaxurl,{action:"set-post-thumbnail",post_id:a("#post_ID").val(),thumbnail_id:-1,_ajax_nonce:b,cookie:encodeURIComponent(document.cookie)},function(a){"0"==a?alert(setPostThumbnailL10n.error):WPSetThumbnailHTML(a)})},a(document).on("heartbeat-send.refresh-lock",function(b,c){var d=a("#active_post_lock").val(),e=a("#post_ID").val(),f={};e&&a("#post-lock-dialog").length&&(f.post_id=e,d&&(f.lock=d),c["wp-refresh-post-lock"]=f)}).on("heartbeat-tick.refresh-lock",function(b,c){var d,e,f;c["wp-refresh-post-lock"]&&(d=c["wp-refresh-post-lock"],d.lock_error?(e=a("#post-lock-dialog"),e.length&&!e.is(":visible")&&(wp.autosave&&(a(document).one("heartbeat-tick",function(){wp.autosave.server.suspend(),e.removeClass("saving").addClass("saved"),a(window).off("beforeunload.edit-post")}),e.addClass("saving"),wp.autosave.server.triggerSave()),d.lock_error.avatar_src&&(f=a('<img class="avatar avatar-64 photo" width="64" height="64" />').attr("src",d.lock_error.avatar_src.replace(/&amp;/g,"&")),e.find("div.post-locked-avatar").empty().append(f)),e.show().find(".currently-editing").text(d.lock_error.text),e.find(".wp-tab-first").focus())):d.new_lock&&a("#active_post_lock").val(d.new_lock))}).on("before-autosave.update-post-slug",function(){b=document.activeElement&&"title"===document.activeElement.id}).on("after-autosave.update-post-slug",function(){a("#edit-slug-box > *").length||b||a.post(ajaxurl,{action:"sample-permalink",post_id:a("#post_ID").val(),new_title:a("#title").val(),samplepermalinknonce:a("#samplepermalinknonce").val()},function(b){"-1"!=b&&a("#edit-slug-box").html(b)})})}(jQuery),function(a){function b(){c=!1,window.clearTimeout(d),d=window.setTimeout(function(){c=!0},3e5)}var c,d;a(document).on("heartbeat-send.wp-refresh-nonces",function(b,d){var e,f;c&&(f=a("#post_ID").val())&&(e=a("#_wpnonce").val())&&(d["wp-refresh-post-nonces"]={post_id:f,post_nonce:e})}).on("heartbeat-tick.wp-refresh-nonces",function(c,d){var e=d["wp-refresh-post-nonces"];e&&(b(),e.replace&&a.each(e.replace,function(b,c){a("#"+b).val(c)}),e.heartbeatNonce&&(window.heartbeatSettings.nonce=e.heartbeatNonce))}).ready(function(){b()})}(jQuery),jQuery(document).ready(function(a){function b(){var b,c,d=0,e=a("#editable-post-name"),f=e.html(),g=a("#post_name"),h=g.val(),i=a("#edit-slug-buttons"),j=i.html(),k=a("#editable-post-name-full").html();for(a("#view-post-btn").hide(),i.html('<a href="#" class="save button button-small">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+"</a>"),i.children(".save").click(function(){var b=e.children("input").val();return b==a("#editable-post-name-full").text()?a("#edit-slug-buttons .cancel").click():(a.post(ajaxurl,{action:"sample-permalink",post_id:m,new_slug:b,new_title:a("#title").val(),samplepermalinknonce:a("#samplepermalinknonce").val()},function(c){var d=a("#edit-slug-box");d.html(c),d.hasClass("hidden")&&d.fadeIn("fast",function(){d.removeClass("hidden")}),i.html(j),g.val(b),a("#view-post-btn").show()}),!1)}),a("#edit-slug-buttons .cancel").click(function(){return a("#view-post-btn").show(),e.html(f),i.html(j),g.val(h),!1}),b=0;b<k.length;++b)"%"==k.charAt(b)&&d++;c=d>k.length/4?"":k,e.html('<input type="text" id="new-post-slug" value="'+c+'" />').children("input").keypress(function(a){var b=a.keyCode||0;return 13==b?(i.children(".save").click(),!1):27==b?(i.children(".cancel").click(),!1):void 0}).keyup(function(){g.val(this.value)}).focus()}var c,d,e,f,g,h="",i=0,j=a("#content"),k=a(document),l=a("#edit-slug-box"),m=a("#post_ID").val()||0,n=a("#submitpost"),o=!0,p=a("#post-visibility-select"),q=a("#timestampdiv"),r=a("#post-status-select");postboxes.add_postbox_toggles(pagenow),window.name="",a("#post-lock-dialog .notification-dialog").on("keydown",function(b){if(9==b.which){var c=a(b.target);c.hasClass("wp-tab-first")&&b.shiftKey?(a(this).find(".wp-tab-last").focus(),b.preventDefault()):c.hasClass("wp-tab-last")&&!b.shiftKey&&(a(this).find(".wp-tab-first").focus(),b.preventDefault())}}).filter(":visible").find(".wp-tab-first").focus(),wp.heartbeat&&a("#post-lock-dialog").length&&wp.heartbeat.interval(15),e=n.find(":button, :submit, a.submitdelete, #post-preview").on("click.edit-post",function(b){var c=a(this);return c.hasClass("disabled")?void b.preventDefault():void(c.hasClass("submitdelete")||c.is("#post-preview")||a("form#post").off("submit.edit-post").on("submit.edit-post",function(b){b.isDefaultPrevented()||(wp.autosave&&wp.autosave.server.suspend(),o=!1,a(window).off("beforeunload.edit-post"),e.addClass("disabled"),"publish"===c.attr("id")?n.find("#major-publishing-actions .spinner").show():n.find("#minor-publishing .spinner").show())}))}),a("#post-preview").on("click.post-preview",function(b){var c=a(this),d=a("form#post"),e=a("input#wp-preview"),f=c.attr("target")||"wp-preview",g=navigator.userAgent.toLowerCase();b.preventDefault(),c.hasClass("disabled")||(wp.autosave&&wp.autosave.server.tempBlockSave(),e.val("dopreview"),d.attr("target",f).submit().attr("target",""),-1!==g.indexOf("safari")&&-1===g.indexOf("chrome")&&d.attr("action",function(a,b){return b+"?t="+(new Date).getTime()}),e.val(""))}),a("#title").on("keydown.editor-focus",function(b){var c,d;if(9===b.keyCode&&!b.ctrlKey&&!b.altKey&&!b.shiftKey){if(c="undefined"!=typeof tinymce&&tinymce.get("content"),d=a("#content"),c&&!c.isHidden())c.focus();else{if(!d.length)return;d.focus()}b.preventDefault()}}),a("#auto_draft").val()&&a("#title").blur(function(){var b;this.value&&!a("#edit-slug-box > *").length&&(a("form#post").one("submit",function(){b=!0}),window.setTimeout(function(){!b&&wp.autosave&&wp.autosave.server.triggerSave()},200))}),k.on("autosave-disable-buttons.edit-post",function(){e.addClass("disabled")}).on("autosave-enable-buttons.edit-post",function(){wp.heartbeat&&wp.heartbeat.hasConnectionError()||e.removeClass("disabled")}).on("before-autosave.edit-post",function(){a(".autosave-message").text(postL10n.savingText)}).on("after-autosave.edit-post",function(b,c){a(".autosave-message").text(c.message)}),a(window).on("beforeunload.edit-post",function(){var a="undefined"!=typeof tinymce&&tinymce.get("content");return a&&!a.isHidden()&&a.isDirty()||wp.autosave&&wp.autosave.server.postChanged()?postL10n.saveAlert:void 0}).on("unload.edit-post",function(b){o&&(b.target&&"#document"!=b.target.nodeName||a.ajax({type:"POST",url:ajaxurl,async:!1,data:{action:"wp-remove-post-lock",_wpnonce:a("#_wpnonce").val(),post_ID:a("#post_ID").val(),active_post_lock:a("#active_post_lock").val()}}))}),a("#tagsdiv-post_tag").length?tagBox.init():a("#side-sortables, #normal-sortables, #advanced-sortables").children("div.postbox").each(function(){return 0===this.id.indexOf("tagsdiv-")?(tagBox.init(),!1):void 0}),a(".categorydiv").each(function(){var b,c,d,e,f,g=a(this).attr("id");d=g.split("-"),d.shift(),e=d.join("-"),f=e+"_tab","category"==e&&(f="cats"),a("a","#"+e+"-tabs").click(function(){var b=a(this).attr("href");return a(this).parent().addClass("tabs").siblings("li").removeClass("tabs"),a("#"+e+"-tabs").siblings(".tabs-panel").hide(),a(b).show(),"#"+e+"-all"==b?deleteUserSetting(f):setUserSetting(f,"pop"),!1}),getUserSetting(f)&&a('a[href="#'+e+'-pop"]',"#"+e+"-tabs").click(),a("#new"+e).one("focus",function(){a(this).val("").removeClass("form-input-tip")}),a("#new"+e).keypress(function(b){13===b.keyCode&&(b.preventDefault(),a("#"+e+"-add-submit").click())}),a("#"+e+"-add-submit").click(function(){a("#new"+e).focus()}),b=function(b){return a("#new"+e).val()?(b.data+="&"+a(":checked","#"+e+"checklist").serialize(),a("#"+e+"-add-submit").prop("disabled",!0),b):!1},c=function(b,c){var d,f=a("#new"+e+"_parent");a("#"+e+"-add-submit").prop("disabled",!1),"undefined"!=c.parsed.responses[0]&&(d=c.parsed.responses[0].supplemental.newcat_parent)&&(f.before(d),f.remove())},a("#"+e+"checklist").wpList({alt:"",response:e+"-ajax-response",addBefore:b,addAfter:c}),a("#"+e+"-add-toggle").click(function(){return a("#"+e+"-adder").toggleClass("wp-hidden-children"),a('a[href="#'+e+'-all"]',"#"+e+"-tabs").click(),a("#new"+e).focus(),!1}),a("#"+e+"checklist, #"+e+"checklist-pop").on("click",'li.popular-category > label input[type="checkbox"]',function(){var b=a(this),c=b.is(":checked"),d=b.val();d&&b.parents("#taxonomy-"+e).length&&a("#in-"+e+"-"+d+", #in-popular-"+e+"-"+d).prop("checked",c)})}),a("#postcustom").length&&a("#the-list").wpList({addAfter:function(){a("table#list-table").show()},addBefore:function(b){return b.data+="&post_id="+a("#post_ID").val(),b}}),a("#submitdiv").length&&(c=a("#timestamp").html(),d=a("#post-visibility-display").html(),f=function(){"public"!=p.find("input:radio:checked").val()?(a("#sticky").prop("checked",!1),a("#sticky-span").hide()):a("#sticky-span").show(),"password"!=p.find("input:radio:checked").val()?a("#password-span").hide():a("#password-span").show()},g=function(){if(!q.length)return!0;var b,d,e,f,g=a("#post_status"),h=a('option[value="publish"]',g),i=a("#aa").val(),j=a("#mm").val(),k=a("#jj").val(),l=a("#hh").val(),m=a("#mn").val();return b=new Date(i,j-1,k,l,m),d=new Date(a("#hidden_aa").val(),a("#hidden_mm").val()-1,a("#hidden_jj").val(),a("#hidden_hh").val(),a("#hidden_mn").val()),e=new Date(a("#cur_aa").val(),a("#cur_mm").val()-1,a("#cur_jj").val(),a("#cur_hh").val(),a("#cur_mn").val()),b.getFullYear()!=i||1+b.getMonth()!=j||b.getDate()!=k||b.getMinutes()!=m?(q.find(".timestamp-wrap").addClass("form-invalid"),!1):(q.find(".timestamp-wrap").removeClass("form-invalid"),b>e&&"future"!=a("#original_post_status").val()?(f=postL10n.publishOnFuture,a("#publish").val(postL10n.schedule)):e>=b&&"publish"!=a("#original_post_status").val()?(f=postL10n.publishOn,a("#publish").val(postL10n.publish)):(f=postL10n.publishOnPast,a("#publish").val(postL10n.update)),a("#timestamp").html(d.toUTCString()==b.toUTCString()?c:f+" <b>"+postL10n.dateFormat.replace("%1$s",a('option[value="'+a("#mm").val()+'"]',"#mm").text()).replace("%2$s",k).replace("%3$s",i).replace("%4$s",l).replace("%5$s",m)+"</b> "),"private"==p.find("input:radio:checked").val()?(a("#publish").val(postL10n.update),0===h.length?g.append('<option value="publish">'+postL10n.privatelyPublished+"</option>"):h.html(postL10n.privatelyPublished),a('option[value="publish"]',g).prop("selected",!0),a("#misc-publishing-actions .edit-post-status").hide()):("future"==a("#original_post_status").val()||"draft"==a("#original_post_status").val()?h.length&&(h.remove(),g.val(a("#hidden_post_status").val())):h.html(postL10n.published),g.is(":hidden")&&a("#misc-publishing-actions .edit-post-status").show()),a("#post-status-display").html(a("option:selected",g).text()),"private"==a("option:selected",g).val()||"publish"==a("option:selected",g).val()?a("#save-post").hide():(a("#save-post").show(),a("#save-post").show().val("pending"==a("option:selected",g).val()?postL10n.savePending:postL10n.saveDraft)),!0)},a("#visibility .edit-visibility").click(function(){return p.is(":hidden")&&(f(),p.slideDown("fast").find('input[type="radio"]').first().focus(),a(this).hide()),!1}),p.find(".cancel-post-visibility").click(function(b){p.slideUp("fast"),a("#visibility-radio-"+a("#hidden-post-visibility").val()).prop("checked",!0),a("#post_password").val(a("#hidden-post-password").val()),a("#sticky").prop("checked",a("#hidden-post-sticky").prop("checked")),a("#post-visibility-display").html(d),a("#visibility .edit-visibility").show().focus(),g(),b.preventDefault()}),p.find(".save-post-visibility").click(function(b){p.slideUp("fast"),a("#visibility .edit-visibility").show(),g(),"public"!=p.find("input:radio:checked").val()&&a("#sticky").prop("checked",!1),h=a("#sticky").prop("checked")?"Sticky":"",a("#post-visibility-display").html(postL10n[p.find("input:radio:checked").val()+h]),b.preventDefault()}),p.find("input:radio").change(function(){f()}),q.siblings("a.edit-timestamp").click(function(b){q.is(":hidden")&&(q.slideDown("fast"),a("#mm").focus(),a(this).hide()),b.preventDefault()}),q.find(".cancel-timestamp").click(function(b){q.slideUp("fast").siblings("a.edit-timestamp").show().focus(),a("#mm").val(a("#hidden_mm").val()),a("#jj").val(a("#hidden_jj").val()),a("#aa").val(a("#hidden_aa").val()),a("#hh").val(a("#hidden_hh").val()),a("#mn").val(a("#hidden_mn").val()),g(),b.preventDefault()}),q.find(".save-timestamp").click(function(a){g()&&(q.slideUp("fast"),q.siblings("a.edit-timestamp").show()),a.preventDefault()}),a("#post").on("submit",function(b){g()||(b.preventDefault(),q.show(),wp.autosave&&wp.autosave.enableButtons(),a("#publishing-action .spinner").hide())}),r.siblings("a.edit-post-status").click(function(b){r.is(":hidden")&&(r.slideDown("fast").find("select").focus(),a(this).hide()),b.preventDefault()}),r.find(".save-post-status").click(function(a){r.slideUp("fast").siblings("a.edit-post-status").show(),g(),a.preventDefault()}),r.find(".cancel-post-status").click(function(b){a("#post-status-select").slideUp("fast").siblings("a.edit-post-status").show().focus(),a("#post_status").val(a("#hidden_post_status").val()),g(),b.preventDefault()})),l.length&&l.on("click",function(c){var d=a(c.target);(d.is("#editable-post-name")||d.hasClass("edit-slug"))&&b()}),"undefined"!=typeof wpWordCount&&(k.triggerHandler("wpcountwords",[j.val()]),j.keyup(function(a){var b=a.keyCode||a.charCode;return b==i?!0:((13==b||8==i||46==i)&&k.triggerHandler("wpcountwords",[j.val()]),i=b,!0)})),wptitlehint=function(b){b=b||"title";var c=a("#"+b),d=a("#"+b+"-prompt-text");""===c.val()&&d.removeClass("screen-reader-text"),d.click(function(){a(this).addClass("screen-reader-text"),c.focus()}),c.blur(function(){""===this.value&&d.removeClass("screen-reader-text")}).focus(function(){d.addClass("screen-reader-text")}).keydown(function(b){d.addClass("screen-reader-text"),a(this).unbind(b)})},wptitlehint(),function(){function b(a){f?d.theme.resizeTo(null,e+a.pageY):g.height(Math.max(50,e+a.pageY)),a.preventDefault()}function c(){var b,c;f?(d.focus(),c=parseInt(a("#wp-content-editor-container .mce-toolbar-grp").height(),10),(10>c||c>200)&&(c=30),b=parseInt(a("#content_ifr").css("height"),10)+c-28):(g.focus(),b=parseInt(g.css("height"),10)),k.off(".wp-editor-resize"),b&&b>50&&5e3>b&&setUserSetting("ed_size",b)}var d,e,f,g=a("textarea#content"),h=a("#post-status-info");!g.length||"ontouchstart"in window||(g.css("resize","none"),h.on("mousedown.wp-editor-resize",function(h){"undefined"!=typeof tinymce&&(d=tinymce.get("content")),d&&!d.isHidden()?(f=!0,e=a("#content_ifr").height()-h.pageY):(f=!1,e=g.height()-h.pageY,g.blur()),k.on("mousemove.wp-editor-resize",b).on("mouseup.wp-editor-resize mouseleave.wp-editor-resize",c),h.preventDefault()}).on("mouseup.wp-editor-resize",c))}(),"undefined"!=typeof tinymce&&a("#post-formats-select input.post-format").on("change.set-editor-class",function(){var b,c,d=this.id;d&&a(this).prop("checked")&&(b=tinymce.get("content"),b&&(c=b.getBody(),c.className=c.className.replace(/\bpost-format-[^ ]+/,""),b.dom.addClass(c,"post-format-0"==d?"post-format-standard":d)))})});
\ No newline at end of file
+function array_unique_noempty(a){var b=[];return jQuery.each(a,function(a,c){c=jQuery.trim(c),c&&-1==jQuery.inArray(c,b)&&b.push(c)}),b}var tagBox,commentsBox,WPSetThumbnailHTML,WPSetThumbnailID,WPRemoveThumbnail,wptitlehint,makeSlugeditClickable,editPermalink;makeSlugeditClickable=editPermalink=function(){},window.wp=window.wp||{},function(a){var b=!1;tagBox={clean:function(a){var b=postL10n.comma;return","!==b&&(a=a.replace(new RegExp(b,"g"),",")),a=a.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,""),","!==b&&(a=a.replace(/,/g,b)),a},parseTags:function(b){var c=b.id,d=c.split("-check-num-")[1],e=a(b).closest(".tagsdiv"),f=e.find(".the-tags"),g=postL10n.comma,h=f.val().split(g),i=[];return delete h[d],a.each(h,function(b,c){c=a.trim(c),c&&i.push(c)}),f.val(this.clean(i.join(g))),this.quickClicks(e),!1},quickClicks:function(b){var c,d,e=a(".the-tags",b),f=a(".tagchecklist",b),g=a(b).attr("id");e.length&&(d=e.prop("disabled"),c=e.val().split(postL10n.comma),f.empty(),a.each(c,function(b,c){var e,h;c=a.trim(c),c&&(e=a("<span />").text(c),d||(h=a('<a id="'+g+"-check-num-"+b+'" class="ntdelbutton">X</a>'),h.click(function(){tagBox.parseTags(this)}),e.prepend("&nbsp;").prepend(h)),f.append(e))}))},flushTags:function(b,c,d){var e,f,g,h=a(".the-tags",b),i=a("input.newtag",b),j=postL10n.comma;return c=c||!1,g=c?a(c).text():i.val(),e=h.val(),f=e?e+j+g:g,f=this.clean(f),f=array_unique_noempty(f.split(j)).join(j),h.val(f),this.quickClicks(b),c||i.val(""),"undefined"==typeof d&&i.focus(),!1},get:function(b){var c=b.substr(b.indexOf("-")+1);a.post(ajaxurl,{action:"get-tagcloud",tax:c},function(d,e){(0===d||"success"!=e)&&(d=wpAjax.broken),d=a('<p id="tagcloud-'+c+'" class="the-tagcloud">'+d+"</p>"),a("a",d).click(function(){return tagBox.flushTags(a(this).closest(".inside").children(".tagsdiv"),this),!1}),a("#"+b).after(d)})},init:function(){var b=this,c=a("div.ajaxtag");a(".tagsdiv").each(function(){tagBox.quickClicks(this)}),a("input.tagadd",c).click(function(){b.flushTags(a(this).closest(".tagsdiv"))}),a("div.taghint",c).click(function(){a(this).css("visibility","hidden").parent().siblings(".newtag").focus()}),a("input.newtag",c).blur(function(){""===this.value&&a(this).parent().siblings(".taghint").css("visibility","")}).focus(function(){a(this).parent().siblings(".taghint").css("visibility","hidden")}).keyup(function(b){return 13==b.which?(tagBox.flushTags(a(this).closest(".tagsdiv")),!1):void 0}).keypress(function(a){return 13==a.which?(a.preventDefault(),!1):void 0}).each(function(){var b=a(this).closest("div.tagsdiv").attr("id");a(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+b,{delay:500,minchars:2,multiple:!0,multipleSep:postL10n.comma+" "})}),a("#post").submit(function(){a("div.tagsdiv").each(function(){tagBox.flushTags(this,!1,1)})}),a("a.tagcloud-link").click(function(){return tagBox.get(a(this).attr("id")),a(this).unbind().click(function(){return a(this).siblings(".the-tagcloud").toggle(),!1}),!1})}},commentsBox={st:0,get:function(b,c){var d,e=this.st;return c||(c=20),this.st+=c,this.total=b,a("#commentsdiv .spinner").show(),d={action:"get-comments",mode:"single",_ajax_nonce:a("#add_comment_nonce").val(),p:a("#post_ID").val(),start:e,number:c},a.post(ajaxurl,d,function(b){return b=wpAjax.parseAjaxResponse(b),a("#commentsdiv .widefat").show(),a("#commentsdiv .spinner").hide(),"object"==typeof b&&b.responses[0]?(a("#the-comment-list").append(b.responses[0].data),theList=theExtraList=null,a("a[className*=':']").unbind(),void(commentsBox.st>commentsBox.total?a("#show-comments").hide():a("#show-comments").show().children("a").html(postL10n.showcomm))):1==b?void a("#show-comments").html(postL10n.endcomm):void a("#the-comment-list").append('<tr><td colspan="2">'+wpAjax.broken+"</td></tr>")}),!1}},WPSetThumbnailHTML=function(b){a(".inside","#postimagediv").html(b)},WPSetThumbnailID=function(b){var c=a('input[value="_thumbnail_id"]',"#list-table");c.size()>0&&a("#meta\\["+c.attr("id").match(/[0-9]+/)+"\\]\\[value\\]").text(b)},WPRemoveThumbnail=function(b){a.post(ajaxurl,{action:"set-post-thumbnail",post_id:a("#post_ID").val(),thumbnail_id:-1,_ajax_nonce:b,cookie:encodeURIComponent(document.cookie)},function(a){"0"==a?alert(setPostThumbnailL10n.error):WPSetThumbnailHTML(a)})},a(document).on("heartbeat-send.refresh-lock",function(b,c){var d=a("#active_post_lock").val(),e=a("#post_ID").val(),f={};e&&a("#post-lock-dialog").length&&(f.post_id=e,d&&(f.lock=d),c["wp-refresh-post-lock"]=f)}).on("heartbeat-tick.refresh-lock",function(b,c){var d,e,f;c["wp-refresh-post-lock"]&&(d=c["wp-refresh-post-lock"],d.lock_error?(e=a("#post-lock-dialog"),e.length&&!e.is(":visible")&&(wp.autosave&&(a(document).one("heartbeat-tick",function(){wp.autosave.server.suspend(),e.removeClass("saving").addClass("saved"),a(window).off("beforeunload.edit-post")}),e.addClass("saving"),wp.autosave.server.triggerSave()),d.lock_error.avatar_src&&(f=a('<img class="avatar avatar-64 photo" width="64" height="64" />').attr("src",d.lock_error.avatar_src.replace(/&amp;/g,"&")),e.find("div.post-locked-avatar").empty().append(f)),e.show().find(".currently-editing").text(d.lock_error.text),e.find(".wp-tab-first").focus())):d.new_lock&&a("#active_post_lock").val(d.new_lock))}).on("before-autosave.update-post-slug",function(){b=document.activeElement&&"title"===document.activeElement.id}).on("after-autosave.update-post-slug",function(){a("#edit-slug-box > *").length||b||a.post(ajaxurl,{action:"sample-permalink",post_id:a("#post_ID").val(),new_title:a("#title").val(),samplepermalinknonce:a("#samplepermalinknonce").val()},function(b){"-1"!=b&&a("#edit-slug-box").html(b)})})}(jQuery),function(a){function b(){c=!1,window.clearTimeout(d),d=window.setTimeout(function(){c=!0},3e5)}var c,d;a(document).on("heartbeat-send.wp-refresh-nonces",function(b,d){var e,f;c&&(f=a("#post_ID").val())&&(e=a("#_wpnonce").val())&&(d["wp-refresh-post-nonces"]={post_id:f,post_nonce:e})}).on("heartbeat-tick.wp-refresh-nonces",function(c,d){var e=d["wp-refresh-post-nonces"];e&&(b(),e.replace&&a.each(e.replace,function(b,c){a("#"+b).val(c)}),e.heartbeatNonce&&(window.heartbeatSettings.nonce=e.heartbeatNonce))}).ready(function(){b()})}(jQuery),jQuery(document).ready(function(a){function b(){var b,c,d=0,e=a("#editable-post-name"),f=e.html(),g=a("#post_name"),h=g.val(),i=a("#edit-slug-buttons"),j=i.html(),k=a("#editable-post-name-full").html();for(a("#view-post-btn").hide(),i.html('<a href="#" class="save button button-small">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+"</a>"),i.children(".save").click(function(){var b=e.children("input").val();return b==a("#editable-post-name-full").text()?(i.children(".cancel").click(),!1):(a.post(ajaxurl,{action:"sample-permalink",post_id:m,new_slug:b,new_title:a("#title").val(),samplepermalinknonce:a("#samplepermalinknonce").val()},function(c){var d=a("#edit-slug-box");d.html(c),d.hasClass("hidden")&&d.fadeIn("fast",function(){d.removeClass("hidden")}),i.html(j),g.val(b),a("#view-post-btn").show()}),!1)}),i.children(".cancel").click(function(){return a("#view-post-btn").show(),e.html(f),i.html(j),g.val(h),!1}),b=0;b<k.length;++b)"%"==k.charAt(b)&&d++;c=d>k.length/4?"":k,e.html('<input type="text" id="new-post-slug" value="'+c+'" />').children("input").keypress(function(a){var b=a.keyCode||0;return 13==b?(i.children(".save").click(),!1):27==b?(i.children(".cancel").click(),!1):void 0}).keyup(function(){g.val(this.value)}).focus()}var c,d,e,f,g,h="",i=0,j=a("#content"),k=a(document),l=a("#edit-slug-box"),m=a("#post_ID").val()||0,n=a("#submitpost"),o=!0,p=a("#post-visibility-select"),q=a("#timestampdiv"),r=a("#post-status-select");postboxes.add_postbox_toggles(pagenow),window.name="",a("#post-lock-dialog .notification-dialog").on("keydown",function(b){if(9==b.which){var c=a(b.target);c.hasClass("wp-tab-first")&&b.shiftKey?(a(this).find(".wp-tab-last").focus(),b.preventDefault()):c.hasClass("wp-tab-last")&&!b.shiftKey&&(a(this).find(".wp-tab-first").focus(),b.preventDefault())}}).filter(":visible").find(".wp-tab-first").focus(),wp.heartbeat&&a("#post-lock-dialog").length&&wp.heartbeat.interval(15),e=n.find(":button, :submit, a.submitdelete, #post-preview").on("click.edit-post",function(b){var c=a(this);return c.hasClass("disabled")?void b.preventDefault():void(c.hasClass("submitdelete")||c.is("#post-preview")||a("form#post").off("submit.edit-post").on("submit.edit-post",function(b){b.isDefaultPrevented()||(wp.autosave&&wp.autosave.server.suspend(),o=!1,a(window).off("beforeunload.edit-post"),e.addClass("disabled"),"publish"===c.attr("id")?n.find("#major-publishing-actions .spinner").show():n.find("#minor-publishing .spinner").show())}))}),a("#post-preview").on("click.post-preview",function(b){var c=a(this),d=a("form#post"),e=a("input#wp-preview"),f=c.attr("target")||"wp-preview",g=navigator.userAgent.toLowerCase();b.preventDefault(),c.hasClass("disabled")||(wp.autosave&&wp.autosave.server.tempBlockSave(),e.val("dopreview"),d.attr("target",f).submit().attr("target",""),-1!==g.indexOf("safari")&&-1===g.indexOf("chrome")&&d.attr("action",function(a,b){return b+"?t="+(new Date).getTime()}),e.val(""))}),a("#title").on("keydown.editor-focus",function(b){var c,d;if(9===b.keyCode&&!b.ctrlKey&&!b.altKey&&!b.shiftKey){if(c="undefined"!=typeof tinymce&&tinymce.get("content"),d=a("#content"),c&&!c.isHidden())c.focus();else{if(!d.length)return;d.focus()}b.preventDefault()}}),a("#auto_draft").val()&&a("#title").blur(function(){var b;this.value&&!a("#edit-slug-box > *").length&&(a("form#post").one("submit",function(){b=!0}),window.setTimeout(function(){!b&&wp.autosave&&wp.autosave.server.triggerSave()},200))}),k.on("autosave-disable-buttons.edit-post",function(){e.addClass("disabled")}).on("autosave-enable-buttons.edit-post",function(){wp.heartbeat&&wp.heartbeat.hasConnectionError()||e.removeClass("disabled")}).on("before-autosave.edit-post",function(){a(".autosave-message").text(postL10n.savingText)}).on("after-autosave.edit-post",function(b,c){a(".autosave-message").text(c.message)}),a(window).on("beforeunload.edit-post",function(){var a="undefined"!=typeof tinymce&&tinymce.get("content");return a&&!a.isHidden()&&a.isDirty()||wp.autosave&&wp.autosave.server.postChanged()?postL10n.saveAlert:void 0}).on("unload.edit-post",function(b){o&&(b.target&&"#document"!=b.target.nodeName||a.ajax({type:"POST",url:ajaxurl,async:!1,data:{action:"wp-remove-post-lock",_wpnonce:a("#_wpnonce").val(),post_ID:a("#post_ID").val(),active_post_lock:a("#active_post_lock").val()}}))}),a("#tagsdiv-post_tag").length?tagBox.init():a("#side-sortables, #normal-sortables, #advanced-sortables").children("div.postbox").each(function(){return 0===this.id.indexOf("tagsdiv-")?(tagBox.init(),!1):void 0}),a(".categorydiv").each(function(){var b,c,d,e,f,g=a(this).attr("id");d=g.split("-"),d.shift(),e=d.join("-"),f=e+"_tab","category"==e&&(f="cats"),a("a","#"+e+"-tabs").click(function(){var b=a(this).attr("href");return a(this).parent().addClass("tabs").siblings("li").removeClass("tabs"),a("#"+e+"-tabs").siblings(".tabs-panel").hide(),a(b).show(),"#"+e+"-all"==b?deleteUserSetting(f):setUserSetting(f,"pop"),!1}),getUserSetting(f)&&a('a[href="#'+e+'-pop"]',"#"+e+"-tabs").click(),a("#new"+e).one("focus",function(){a(this).val("").removeClass("form-input-tip")}),a("#new"+e).keypress(function(b){13===b.keyCode&&(b.preventDefault(),a("#"+e+"-add-submit").click())}),a("#"+e+"-add-submit").click(function(){a("#new"+e).focus()}),b=function(b){return a("#new"+e).val()?(b.data+="&"+a(":checked","#"+e+"checklist").serialize(),a("#"+e+"-add-submit").prop("disabled",!0),b):!1},c=function(b,c){var d,f=a("#new"+e+"_parent");a("#"+e+"-add-submit").prop("disabled",!1),"undefined"!=c.parsed.responses[0]&&(d=c.parsed.responses[0].supplemental.newcat_parent)&&(f.before(d),f.remove())},a("#"+e+"checklist").wpList({alt:"",response:e+"-ajax-response",addBefore:b,addAfter:c}),a("#"+e+"-add-toggle").click(function(){return a("#"+e+"-adder").toggleClass("wp-hidden-children"),a('a[href="#'+e+'-all"]',"#"+e+"-tabs").click(),a("#new"+e).focus(),!1}),a("#"+e+"checklist, #"+e+"checklist-pop").on("click",'li.popular-category > label input[type="checkbox"]',function(){var b=a(this),c=b.is(":checked"),d=b.val();d&&b.parents("#taxonomy-"+e).length&&a("#in-"+e+"-"+d+", #in-popular-"+e+"-"+d).prop("checked",c)})}),a("#postcustom").length&&a("#the-list").wpList({addAfter:function(){a("table#list-table").show()},addBefore:function(b){return b.data+="&post_id="+a("#post_ID").val(),b}}),a("#submitdiv").length&&(c=a("#timestamp").html(),d=a("#post-visibility-display").html(),f=function(){"public"!=p.find("input:radio:checked").val()?(a("#sticky").prop("checked",!1),a("#sticky-span").hide()):a("#sticky-span").show(),"password"!=p.find("input:radio:checked").val()?a("#password-span").hide():a("#password-span").show()},g=function(){if(!q.length)return!0;var b,d,e,f,g=a("#post_status"),h=a('option[value="publish"]',g),i=a("#aa").val(),j=a("#mm").val(),k=a("#jj").val(),l=a("#hh").val(),m=a("#mn").val();return b=new Date(i,j-1,k,l,m),d=new Date(a("#hidden_aa").val(),a("#hidden_mm").val()-1,a("#hidden_jj").val(),a("#hidden_hh").val(),a("#hidden_mn").val()),e=new Date(a("#cur_aa").val(),a("#cur_mm").val()-1,a("#cur_jj").val(),a("#cur_hh").val(),a("#cur_mn").val()),b.getFullYear()!=i||1+b.getMonth()!=j||b.getDate()!=k||b.getMinutes()!=m?(q.find(".timestamp-wrap").addClass("form-invalid"),!1):(q.find(".timestamp-wrap").removeClass("form-invalid"),b>e&&"future"!=a("#original_post_status").val()?(f=postL10n.publishOnFuture,a("#publish").val(postL10n.schedule)):e>=b&&"publish"!=a("#original_post_status").val()?(f=postL10n.publishOn,a("#publish").val(postL10n.publish)):(f=postL10n.publishOnPast,a("#publish").val(postL10n.update)),a("#timestamp").html(d.toUTCString()==b.toUTCString()?c:f+" <b>"+postL10n.dateFormat.replace("%1$s",a('option[value="'+a("#mm").val()+'"]',"#mm").text()).replace("%2$s",k).replace("%3$s",i).replace("%4$s",l).replace("%5$s",m)+"</b> "),"private"==p.find("input:radio:checked").val()?(a("#publish").val(postL10n.update),0===h.length?g.append('<option value="publish">'+postL10n.privatelyPublished+"</option>"):h.html(postL10n.privatelyPublished),a('option[value="publish"]',g).prop("selected",!0),a("#misc-publishing-actions .edit-post-status").hide()):("future"==a("#original_post_status").val()||"draft"==a("#original_post_status").val()?h.length&&(h.remove(),g.val(a("#hidden_post_status").val())):h.html(postL10n.published),g.is(":hidden")&&a("#misc-publishing-actions .edit-post-status").show()),a("#post-status-display").html(a("option:selected",g).text()),"private"==a("option:selected",g).val()||"publish"==a("option:selected",g).val()?a("#save-post").hide():(a("#save-post").show(),a("#save-post").show().val("pending"==a("option:selected",g).val()?postL10n.savePending:postL10n.saveDraft)),!0)},a("#visibility .edit-visibility").click(function(){return p.is(":hidden")&&(f(),p.slideDown("fast").find('input[type="radio"]').first().focus(),a(this).hide()),!1}),p.find(".cancel-post-visibility").click(function(b){p.slideUp("fast"),a("#visibility-radio-"+a("#hidden-post-visibility").val()).prop("checked",!0),a("#post_password").val(a("#hidden-post-password").val()),a("#sticky").prop("checked",a("#hidden-post-sticky").prop("checked")),a("#post-visibility-display").html(d),a("#visibility .edit-visibility").show().focus(),g(),b.preventDefault()}),p.find(".save-post-visibility").click(function(b){p.slideUp("fast"),a("#visibility .edit-visibility").show(),g(),"public"!=p.find("input:radio:checked").val()&&a("#sticky").prop("checked",!1),h=a("#sticky").prop("checked")?"Sticky":"",a("#post-visibility-display").html(postL10n[p.find("input:radio:checked").val()+h]),b.preventDefault()}),p.find("input:radio").change(function(){f()}),q.siblings("a.edit-timestamp").click(function(b){q.is(":hidden")&&(q.slideDown("fast"),a("#mm").focus(),a(this).hide()),b.preventDefault()}),q.find(".cancel-timestamp").click(function(b){q.slideUp("fast").siblings("a.edit-timestamp").show().focus(),a("#mm").val(a("#hidden_mm").val()),a("#jj").val(a("#hidden_jj").val()),a("#aa").val(a("#hidden_aa").val()),a("#hh").val(a("#hidden_hh").val()),a("#mn").val(a("#hidden_mn").val()),g(),b.preventDefault()}),q.find(".save-timestamp").click(function(a){g()&&(q.slideUp("fast"),q.siblings("a.edit-timestamp").show()),a.preventDefault()}),a("#post").on("submit",function(b){g()||(b.preventDefault(),q.show(),wp.autosave&&wp.autosave.enableButtons(),a("#publishing-action .spinner").hide())}),r.siblings("a.edit-post-status").click(function(b){r.is(":hidden")&&(r.slideDown("fast").find("select").focus(),a(this).hide()),b.preventDefault()}),r.find(".save-post-status").click(function(a){r.slideUp("fast").siblings("a.edit-post-status").show(),g(),a.preventDefault()}),r.find(".cancel-post-status").click(function(b){a("#post-status-select").slideUp("fast").siblings("a.edit-post-status").show().focus(),a("#post_status").val(a("#hidden_post_status").val()),g(),b.preventDefault()})),l.length&&l.on("click",function(c){var d=a(c.target);(d.is("#editable-post-name")||d.hasClass("edit-slug"))&&b()}),"undefined"!=typeof wpWordCount&&(k.triggerHandler("wpcountwords",[j.val()]),j.keyup(function(a){var b=a.keyCode||a.charCode;return b==i?!0:((13==b||8==i||46==i)&&k.triggerHandler("wpcountwords",[j.val()]),i=b,!0)})),wptitlehint=function(b){b=b||"title";var c=a("#"+b),d=a("#"+b+"-prompt-text");""===c.val()&&d.removeClass("screen-reader-text"),d.click(function(){a(this).addClass("screen-reader-text"),c.focus()}),c.blur(function(){""===this.value&&d.removeClass("screen-reader-text")}).focus(function(){d.addClass("screen-reader-text")}).keydown(function(b){d.addClass("screen-reader-text"),a(this).unbind(b)})},wptitlehint(),function(){function b(a){i.hasClass("wp-editor-expand")||(f?d.theme.resizeTo(null,e+a.pageY):g.height(Math.max(50,e+a.pageY)),a.preventDefault())}function c(){var b,c;i.hasClass("wp-editor-expand")||(f?(d.focus(),c=parseInt(a("#wp-content-editor-container .mce-toolbar-grp").height(),10),(10>c||c>200)&&(c=30),b=parseInt(a("#content_ifr").css("height"),10)+c-28):(g.focus(),b=parseInt(g.css("height"),10)),k.off(".wp-editor-resize"),b&&b>50&&5e3>b&&setUserSetting("ed_size",b))}var d,e,f,g=a("textarea#content"),h=a("#post-status-info"),i=a("#postdivrich");return!g.length||"ontouchstart"in window?void a("#content-resize-handle").hide():void h.on("mousedown.wp-editor-resize",function(h){"undefined"!=typeof tinymce&&(d=tinymce.get("content")),d&&!d.isHidden()?(f=!0,e=a("#content_ifr").height()-h.pageY):(f=!1,e=g.height()-h.pageY,g.blur()),k.on("mousemove.wp-editor-resize",b).on("mouseup.wp-editor-resize mouseleave.wp-editor-resize",c),h.preventDefault()}).on("mouseup.wp-editor-resize",c)}(),"undefined"!=typeof tinymce&&a("#post-formats-select input.post-format").on("change.set-editor-class",function(){var b,c,d=this.id;d&&a(this).prop("checked")&&(b=tinymce.get("content"))&&(c=b.getBody(),c.className=c.className.replace(/\bpost-format-[^ ]+/,""),b.dom.addClass(c,"post-format-0"==d?"post-format-standard":d),a(document).trigger("editor-classchange"))})});
\ No newline at end of file
index a314dcd149a83b0050e717f26689c585a8a8610c..07e5ed25b3080b380ef7b1d01e85a0542bc9ec08 100644 (file)
@@ -3,13 +3,15 @@
 var postboxes;
 
 (function($) {
 var postboxes;
 
 (function($) {
+       var $document = $( document );
+
        postboxes = {
                add_postbox_toggles : function(page, args) {
                        var self = this;
 
                        self.init(page, args);
 
        postboxes = {
                add_postbox_toggles : function(page, args) {
                        var self = this;
 
                        self.init(page, args);
 
-                       $('.postbox h3, .postbox .handlediv').bind('click.postboxes', function() {
+                       $('.postbox .hndle, .postbox .handlediv').bind('click.postboxes', function() {
                                var p = $(this).parent('.postbox'), id = p.attr('id');
 
                                if ( 'dashboard_browser_nag' == id )
                                var p = $(this).parent('.postbox'), id = p.attr('id');
 
                                if ( 'dashboard_browser_nag' == id )
@@ -26,9 +28,11 @@ var postboxes;
                                        else if ( p.hasClass('closed') && $.isFunction(postboxes.pbhide) )
                                                self.pbhide(id);
                                }
                                        else if ( p.hasClass('closed') && $.isFunction(postboxes.pbhide) )
                                                self.pbhide(id);
                                }
+
+                               $document.trigger( 'postbox-toggled', p );
                        });
 
                        });
 
-                       $('.postbox h3 a').click( function(e) {
+                       $('.postbox .hndle a').click( function(e) {
                                e.stopPropagation();
                        });
 
                                e.stopPropagation();
                        });
 
@@ -39,19 +43,21 @@ var postboxes;
                        });
 
                        $('.hide-postbox-tog').bind('click.postboxes', function() {
                        });
 
                        $('.hide-postbox-tog').bind('click.postboxes', function() {
-                               var box = $(this).val();
+                               var boxId = $(this).val(),
+                                       $postbox = $( '#' + boxId );
 
                                if ( $(this).prop('checked') ) {
 
                                if ( $(this).prop('checked') ) {
-                                       $('#' + box).show();
+                                       $postbox.show();
                                        if ( $.isFunction( postboxes.pbshow ) )
                                        if ( $.isFunction( postboxes.pbshow ) )
-                                               self.pbshow( box );
+                                               self.pbshow( boxId );
                                } else {
                                } else {
-                                       $('#' + box).hide();
+                                       $postbox.hide();
                                        if ( $.isFunction( postboxes.pbhide ) )
                                        if ( $.isFunction( postboxes.pbhide ) )
-                                               self.pbhide( box );
+                                               self.pbhide( boxId );
                                }
                                self.save_state(page);
                                self._mark_area();
                                }
                                self.save_state(page);
                                self._mark_area();
+                               $document.trigger( 'postbox-toggled', $postbox );
                        });
 
                        $('.columns-prefs input[type="radio"]').bind('click.postboxes', function(){
                        });
 
                        $('.columns-prefs input[type="radio"]').bind('click.postboxes', function(){
@@ -159,6 +165,8 @@ var postboxes;
                        if ( el ) {
                                el.className = el.className.replace(/columns-\d+/, 'columns-' + n);
                        }
                        if ( el ) {
                                el.className = el.className.replace(/columns-\d+/, 'columns-' + n);
                        }
+
+                       $( document ).trigger( 'postboxes-columnchange' );
                },
 
                _pb_change : function() {
                },
 
                _pb_change : function() {
index c98e6dde7e1f3cd357c6fc2567a651909f81b66c..3cbd15ba5710f893a159ce8bdbf5b8f44cc848f9 100644 (file)
@@ -1 +1 @@
-var postboxes;!function(a){postboxes={add_postbox_toggles:function(b,c){var d=this;d.init(b,c),a(".postbox h3, .postbox .handlediv").bind("click.postboxes",function(){var c=a(this).parent(".postbox"),e=c.attr("id");"dashboard_browser_nag"!=e&&(c.toggleClass("closed"),"press-this"!=b&&d.save_state(b),e&&(!c.hasClass("closed")&&a.isFunction(postboxes.pbshow)?d.pbshow(e):c.hasClass("closed")&&a.isFunction(postboxes.pbhide)&&d.pbhide(e)))}),a(".postbox h3 a").click(function(a){a.stopPropagation()}),a(".postbox a.dismiss").bind("click.postboxes",function(){var b=a(this).parents(".postbox").attr("id")+"-hide";return a("#"+b).prop("checked",!1).triggerHandler("click"),!1}),a(".hide-postbox-tog").bind("click.postboxes",function(){var c=a(this).val();a(this).prop("checked")?(a("#"+c).show(),a.isFunction(postboxes.pbshow)&&d.pbshow(c)):(a("#"+c).hide(),a.isFunction(postboxes.pbhide)&&d.pbhide(c)),d.save_state(b),d._mark_area()}),a('.columns-prefs input[type="radio"]').bind("click.postboxes",function(){var c=parseInt(a(this).val(),10);c&&(d._pb_edit(c),d.save_order(b))})},init:function(b,c){var d=a(document.body).hasClass("mobile");a.extend(this,c||{}),a("#wpbody-content").css("overflow","hidden"),a(".meta-box-sortables").sortable({placeholder:"sortable-placeholder",connectWith:".meta-box-sortables",items:".postbox",handle:".hndle",cursor:"move",delay:d?200:0,distance:2,tolerance:"pointer",forcePlaceholderSize:!0,helper:"clone",opacity:.65,stop:function(){return a(this).find("#dashboard_browser_nag").is(":visible")&&"dashboard_browser_nag"!=this.firstChild.id?void a(this).sortable("cancel"):void postboxes.save_order(b)},receive:function(b,c){"dashboard_browser_nag"==c.item[0].id&&a(c.sender).sortable("cancel"),postboxes._mark_area()}}),d&&(a(document.body).bind("orientationchange.postboxes",function(){postboxes._pb_change()}),this._pb_change()),this._mark_area()},save_state:function(b){var c=a(".postbox").filter(".closed").map(function(){return this.id}).get().join(","),d=a(".postbox").filter(":hidden").map(function(){return this.id}).get().join(",");a.post(ajaxurl,{action:"closed-postboxes",closed:c,hidden:d,closedpostboxesnonce:jQuery("#closedpostboxesnonce").val(),page:b})},save_order:function(b){var c,d=a(".columns-prefs input:checked").val()||0;c={action:"meta-box-order",_ajax_nonce:a("#meta-box-order-nonce").val(),page_columns:d,page:b},a(".meta-box-sortables").each(function(){c["order["+this.id.split("-")[0]+"]"]=a(this).sortable("toArray").join(",")}),a.post(ajaxurl,c)},_mark_area:function(){var b=a("div.postbox:visible").length,c=a("#post-body #side-sortables");a("#dashboard-widgets .meta-box-sortables:visible").each(function(){var c=a(this);1==b||c.children(".postbox:visible").length?c.removeClass("empty-container"):c.addClass("empty-container")}),c.length&&(c.children(".postbox:visible").length?c.removeClass("empty-container"):"280px"==a("#postbox-container-1").css("width")&&c.addClass("empty-container"))},_pb_edit:function(b){var c=a(".metabox-holder").get(0);c&&(c.className=c.className.replace(/columns-\d+/,"columns-"+b))},_pb_change:function(){var b=a('label.columns-prefs-1 input[type="radio"]');switch(window.orientation){case 90:case-90:b.length&&b.is(":checked")||this._pb_edit(2);break;case 0:case 180:a("#poststuff").length?this._pb_edit(1):b.length&&b.is(":checked")||this._pb_edit(2)}},pbshow:!1,pbhide:!1}}(jQuery);
\ No newline at end of file
+var postboxes;!function(a){var b=a(document);postboxes={add_postbox_toggles:function(c,d){var e=this;e.init(c,d),a(".postbox .hndle, .postbox .handlediv").bind("click.postboxes",function(){var d=a(this).parent(".postbox"),f=d.attr("id");"dashboard_browser_nag"!=f&&(d.toggleClass("closed"),"press-this"!=c&&e.save_state(c),f&&(!d.hasClass("closed")&&a.isFunction(postboxes.pbshow)?e.pbshow(f):d.hasClass("closed")&&a.isFunction(postboxes.pbhide)&&e.pbhide(f)),b.trigger("postbox-toggled",d))}),a(".postbox .hndle a").click(function(a){a.stopPropagation()}),a(".postbox a.dismiss").bind("click.postboxes",function(){var b=a(this).parents(".postbox").attr("id")+"-hide";return a("#"+b).prop("checked",!1).triggerHandler("click"),!1}),a(".hide-postbox-tog").bind("click.postboxes",function(){var d=a(this).val(),f=a("#"+d);a(this).prop("checked")?(f.show(),a.isFunction(postboxes.pbshow)&&e.pbshow(d)):(f.hide(),a.isFunction(postboxes.pbhide)&&e.pbhide(d)),e.save_state(c),e._mark_area(),b.trigger("postbox-toggled",f)}),a('.columns-prefs input[type="radio"]').bind("click.postboxes",function(){var b=parseInt(a(this).val(),10);b&&(e._pb_edit(b),e.save_order(c))})},init:function(b,c){var d=a(document.body).hasClass("mobile");a.extend(this,c||{}),a("#wpbody-content").css("overflow","hidden"),a(".meta-box-sortables").sortable({placeholder:"sortable-placeholder",connectWith:".meta-box-sortables",items:".postbox",handle:".hndle",cursor:"move",delay:d?200:0,distance:2,tolerance:"pointer",forcePlaceholderSize:!0,helper:"clone",opacity:.65,stop:function(){return a(this).find("#dashboard_browser_nag").is(":visible")&&"dashboard_browser_nag"!=this.firstChild.id?void a(this).sortable("cancel"):void postboxes.save_order(b)},receive:function(b,c){"dashboard_browser_nag"==c.item[0].id&&a(c.sender).sortable("cancel"),postboxes._mark_area()}}),d&&(a(document.body).bind("orientationchange.postboxes",function(){postboxes._pb_change()}),this._pb_change()),this._mark_area()},save_state:function(b){var c=a(".postbox").filter(".closed").map(function(){return this.id}).get().join(","),d=a(".postbox").filter(":hidden").map(function(){return this.id}).get().join(",");a.post(ajaxurl,{action:"closed-postboxes",closed:c,hidden:d,closedpostboxesnonce:jQuery("#closedpostboxesnonce").val(),page:b})},save_order:function(b){var c,d=a(".columns-prefs input:checked").val()||0;c={action:"meta-box-order",_ajax_nonce:a("#meta-box-order-nonce").val(),page_columns:d,page:b},a(".meta-box-sortables").each(function(){c["order["+this.id.split("-")[0]+"]"]=a(this).sortable("toArray").join(",")}),a.post(ajaxurl,c)},_mark_area:function(){var b=a("div.postbox:visible").length,c=a("#post-body #side-sortables");a("#dashboard-widgets .meta-box-sortables:visible").each(function(){var c=a(this);1==b||c.children(".postbox:visible").length?c.removeClass("empty-container"):c.addClass("empty-container")}),c.length&&(c.children(".postbox:visible").length?c.removeClass("empty-container"):"280px"==a("#postbox-container-1").css("width")&&c.addClass("empty-container"))},_pb_edit:function(b){var c=a(".metabox-holder").get(0);c&&(c.className=c.className.replace(/columns-\d+/,"columns-"+b)),a(document).trigger("postboxes-columnchange")},_pb_change:function(){var b=a('label.columns-prefs-1 input[type="radio"]');switch(window.orientation){case 90:case-90:b.length&&b.is(":checked")||this._pb_edit(2);break;case 0:case 180:a("#poststuff").length?this._pb_edit(1):b.length&&b.is(":checked")||this._pb_edit(2)}},pbshow:!1,pbhide:!1}}(jQuery);
\ No newline at end of file
index 48866d6ffca4489d6ac063e89cb6b233ff87d05a..521e55ce09a2040b90dc3d6fa740f68c925f33d2 100644 (file)
@@ -399,11 +399,23 @@ window.wp = window.wp || {};
                },
 
                changeMode: function( model, value ) {
                },
 
                changeMode: function( model, value ) {
-                       // If we were on the first revision before switching, we have to bump them over one
-                       if ( value && 0 === this.revisions.indexOf( this.get('to') ) ) {
+                       var toIndex = this.revisions.indexOf( this.get( 'to' ) );
+
+                       // If we were on the first revision before switching to two-handled mode,
+                       // bump the 'to' position over one
+                       if ( value && 0 === toIndex ) {
+                               this.set({
+                                       from: this.revisions.at( toIndex ),
+                                       to:   this.revisions.at( toIndex + 1 )
+                               });
+                       }
+
+                       // When switching back to single-handled mode, reset 'from' model to
+                       // one position before the 'to' model
+                       if ( ! value && 0 !== toIndex ) { // '! value' means switching to single-handled mode
                                this.set({
                                this.set({
-                                       from: this.revisions.at(0),
-                                       to: this.revisions.at(1)
+                                       from: this.revisions.at( toIndex - 1 ),
+                                       to:   this.revisions.at( toIndex )
                                });
                        }
                },
                                });
                        }
                },
index 85b9eacdf2986120a3321db4987a9fe393bd10b7..0907e708a2d0622d5bea2ca105dafdd8dcb6b009 100644 (file)
@@ -1 +1 @@
-window.wp=window.wp||{},function(a){var b;b=wp.revisions={model:{},view:{},controller:{}},b.settings=_.isUndefined(_wpRevisionsSettings)?{}:_wpRevisionsSettings,b.debug=!1,b.log=function(){window.console&&b.debug&&window.console.log.apply(window.console,arguments)},a.fn.allOffsets=function(){var b=this.offset()||{top:0,left:0},c=a(window);return _.extend(b,{right:c.width()-b.left-this.outerWidth(),bottom:c.height()-b.top-this.outerHeight()})},a.fn.allPositions=function(){var a=this.position()||{top:0,left:0},b=this.parent();return _.extend(a,{right:b.outerWidth()-a.left-this.outerWidth(),bottom:b.outerHeight()-a.top-this.outerHeight()})},b.settings.to&&(b.settings.to=parseInt(b.settings.to,10)),b.settings.from&&(b.settings.from=parseInt(b.settings.from,10)),b.settings.compareTwoMode&&(b.settings.compareTwoMode="1"===b.settings.compareTwoMode),b.model.Slider=Backbone.Model.extend({defaults:{value:null,values:null,min:0,max:1,step:1,range:!1,compareTwoMode:!1},initialize:function(a){this.frame=a.frame,this.revisions=a.revisions,this.listenTo(this.frame,"update:revisions",this.receiveRevisions),this.listenTo(this.frame,"change:compareTwoMode",this.updateMode),this.listenTo(this,"change:from",this.handleLocalChanges),this.listenTo(this,"change:to",this.handleLocalChanges),this.listenTo(this,"change:compareTwoMode",this.updateSliderSettings),this.listenTo(this,"update:revisions",this.updateSliderSettings),this.listenTo(this,"change:hoveredRevision",this.hoverRevision),this.set({max:this.revisions.length-1,compareTwoMode:this.frame.get("compareTwoMode"),from:this.frame.get("from"),to:this.frame.get("to")}),this.updateSliderSettings()},getSliderValue:function(a,b){return isRtl?this.revisions.length-this.revisions.indexOf(this.get(a))-1:this.revisions.indexOf(this.get(b))},updateSliderSettings:function(){this.set(this.get("compareTwoMode")?{values:[this.getSliderValue("to","from"),this.getSliderValue("from","to")],value:null,range:!0}:{value:this.getSliderValue("to","to"),values:null,range:!1}),this.trigger("update:slider")},hoverRevision:function(a,b){this.trigger("hovered:revision",b)},updateMode:function(a,b){this.set({compareTwoMode:b})},handleLocalChanges:function(){this.frame.set({from:this.get("from"),to:this.get("to")})},receiveRevisions:function(a,b){(this.get("from")!==a||this.get("to")!==b)&&(this.set({from:a,to:b},{silent:!0}),this.trigger("update:revisions",a,b))}}),b.model.Tooltip=Backbone.Model.extend({defaults:{revision:null,offset:{},hovering:!1,scrubbing:!1},initialize:function(a){this.frame=a.frame,this.revisions=a.revisions,this.slider=a.slider,this.listenTo(this.slider,"hovered:revision",this.updateRevision),this.listenTo(this.slider,"change:hovering",this.setHovering),this.listenTo(this.slider,"change:scrubbing",this.setScrubbing)},updateRevision:function(a){this.set({revision:a})},setHovering:function(a,b){this.set({hovering:b})},setScrubbing:function(a,b){this.set({scrubbing:b})}}),b.model.Revision=Backbone.Model.extend({}),b.model.Revisions=Backbone.Collection.extend({model:b.model.Revision,initialize:function(){_.bindAll(this,"next","prev")},next:function(a){var b=this.indexOf(a);return-1!==b&&b!==this.length-1?this.at(b+1):void 0},prev:function(a){var b=this.indexOf(a);return-1!==b&&0!==b?this.at(b-1):void 0}}),b.model.Field=Backbone.Model.extend({}),b.model.Fields=Backbone.Collection.extend({model:b.model.Field}),b.model.Diff=Backbone.Model.extend({initialize:function(){var a=this.get("fields");this.unset("fields"),this.fields=new b.model.Fields(a)}}),b.model.Diffs=Backbone.Collection.extend({initialize:function(a,b){_.bindAll(this,"getClosestUnloaded"),this.loadAll=_.once(this._loadAll),this.revisions=b.revisions,this.requests={}},model:b.model.Diff,ensure:function(b,c){var d=this.get(b),e=this.requests[b],f=a.Deferred(),g={},h=b.split(":")[0],i=b.split(":")[1];return g[b]=!0,wp.revisions.log("ensure",b),this.trigger("ensure",g,h,i,f.promise()),d?f.resolveWith(c,[d]):(this.trigger("ensure:load",g,h,i,f.promise()),_.each(g,_.bind(function(a){this.requests[a]&&delete g[a],this.get(a)&&delete g[a]},this)),e||(g[b]=!0,e=this.load(_.keys(g))),e.done(_.bind(function(){f.resolveWith(c,[this.get(b)])},this)).fail(_.bind(function(){f.reject()}))),f.promise()},getClosestUnloaded:function(a,b){var c=this;return _.chain([0].concat(a)).initial().zip(a).sortBy(function(a){return Math.abs(b-a[1])}).map(function(a){return a.join(":")}).filter(function(a){return _.isUndefined(c.get(a))&&!c.requests[a]}).value()},_loadAll:function(b,c,d){var e=this,f=a.Deferred(),g=_.first(this.getClosestUnloaded(b,c),d);return _.size(g)>0?this.load(g).done(function(){e._loadAll(b,c,d).done(function(){f.resolve()})}).fail(function(){1===d?f.reject():e._loadAll(b,c,Math.ceil(d/2)).done(function(){f.resolve()})}):f.resolve(),f},load:function(a){return wp.revisions.log("load",a),this.fetch({data:{compare:a},remove:!1}).done(function(){wp.revisions.log("load:complete",a)})},sync:function(a,c,d){if("read"===a){d=d||{},d.context=this,d.data=_.extend(d.data||{},{action:"get-revision-diffs",post_id:b.settings.postId});var e=wp.ajax.send(d),f=this.requests;return d.data.compare&&_.each(d.data.compare,function(a){f[a]=e}),e.always(function(){d.data.compare&&_.each(d.data.compare,function(a){delete f[a]})}),e}return Backbone.Model.prototype.sync.apply(this,arguments)}}),b.model.FrameState=Backbone.Model.extend({defaults:{loading:!1,error:!1,compareTwoMode:!1},initialize:function(a,c){var d={};_.bindAll(this,"receiveDiff"),this._debouncedEnsureDiff=_.debounce(this._ensureDiff,200),this.revisions=c.revisions,this.diffs=new b.model.Diffs([],{revisions:this.revisions}),this.diffs.set(b.settings.diffData),this.listenTo(this,"change:from",this.changeRevisionHandler),this.listenTo(this,"change:to",this.changeRevisionHandler),this.listenTo(this,"change:compareTwoMode",this.changeMode),this.listenTo(this,"update:revisions",this.updatedRevisions),this.listenTo(this.diffs,"ensure:load",this.updateLoadingStatus),this.listenTo(this,"update:diff",this.updateLoadingStatus),d.to=this.revisions.get(b.settings.to),d.from=this.revisions.get(b.settings.from),d.compareTwoMode=b.settings.compareTwoMode,d.baseUrl=b.settings.baseUrl,this.set(d),window.history&&window.history.pushState&&(this.router=new b.Router({model:this}),Backbone.history.start({pushState:!0}))},updateLoadingStatus:function(){this.set("error",!1),this.set("loading",!this.diff())},changeMode:function(a,b){b&&0===this.revisions.indexOf(this.get("to"))&&this.set({from:this.revisions.at(0),to:this.revisions.at(1)})},updatedRevisions:function(a,b){this.get("compareTwoMode")||this.diffs.loadAll(this.revisions.pluck("id"),b.id,40)},diff:function(){return this.diffs.get(this._diffId)},updateDiff:function(b){var c,d,e,f;return b=b||{},c=this.get("from"),d=this.get("to"),e=(c?c.id:0)+":"+d.id,this._diffId===e?a.Deferred().reject().promise():(this._diffId=e,this.trigger("update:revisions",c,d),f=this.diffs.get(e),f?(this.receiveDiff(f),a.Deferred().resolve().promise()):b.immediate?this._ensureDiff():(this._debouncedEnsureDiff(),a.Deferred().reject().promise()))},changeRevisionHandler:function(){this.updateDiff()},receiveDiff:function(a){_.isUndefined(a)||_.isUndefined(a.id)?this.set({loading:!1,error:!0}):this._diffId===a.id&&this.trigger("update:diff",a)},_ensureDiff:function(){return this.diffs.ensure(this._diffId,this).always(this.receiveDiff)}}),b.view.Frame=wp.Backbone.View.extend({className:"revisions",template:wp.template("revisions-frame"),initialize:function(){this.listenTo(this.model,"update:diff",this.renderDiff),this.listenTo(this.model,"change:compareTwoMode",this.updateCompareTwoMode),this.listenTo(this.model,"change:loading",this.updateLoadingStatus),this.listenTo(this.model,"change:error",this.updateErrorStatus),this.views.set(".revisions-control-frame",new b.view.Controls({model:this.model}))},render:function(){return wp.Backbone.View.prototype.render.apply(this,arguments),a("html").css("overflow-y","scroll"),a("#wpbody-content .wrap").append(this.el),this.updateCompareTwoMode(),this.renderDiff(this.model.diff()),this.views.ready(),this},renderDiff:function(a){this.views.set(".revisions-diff-frame",new b.view.Diff({model:a}))},updateLoadingStatus:function(){this.$el.toggleClass("loading",this.model.get("loading"))},updateErrorStatus:function(){this.$el.toggleClass("diff-error",this.model.get("error"))},updateCompareTwoMode:function(){this.$el.toggleClass("comparing-two-revisions",this.model.get("compareTwoMode"))}}),b.view.Controls=wp.Backbone.View.extend({className:"revisions-controls",initialize:function(){_.bindAll(this,"setWidth"),this.views.add(new b.view.Buttons({model:this.model})),this.views.add(new b.view.Checkbox({model:this.model}));var a=new b.model.Slider({frame:this.model,revisions:this.model.revisions}),c=new b.model.Tooltip({frame:this.model,revisions:this.model.revisions,slider:a});this.views.add(new b.view.Tooltip({model:c})),this.views.add(new b.view.Tickmarks({model:c})),this.views.add(new b.view.Slider({model:a})),this.views.add(new b.view.Metabox({model:this.model}))},ready:function(){this.top=this.$el.offset().top,this.window=a(window),this.window.on("scroll.wp.revisions",{controls:this},function(a){var b=a.data.controls,c=b.$el.parent(),d=b.window.scrollTop(),e=b.views.parent;d>=b.top?(e.$el.hasClass("pinned")||(b.setWidth(),c.css("height",c.height()+"px"),b.window.on("resize.wp.revisions.pinning click.wp.revisions.pinning",{controls:b},function(a){a.data.controls.setWidth()})),e.$el.addClass("pinned")):e.$el.hasClass("pinned")?(b.window.off(".wp.revisions.pinning"),b.$el.css("width","auto"),e.$el.removeClass("pinned"),c.css("height","auto"),b.top=b.$el.offset().top):b.top=b.$el.offset().top})},setWidth:function(){this.$el.css("width",this.$el.parent().width()+"px")}}),b.view.Tickmarks=wp.Backbone.View.extend({className:"revisions-tickmarks",direction:isRtl?"right":"left",initialize:function(){this.listenTo(this.model,"change:revision",this.reportTickPosition)},reportTickPosition:function(a,b){var c,d,e,f,g=this.model.revisions.indexOf(b);d=this.$el.allOffsets(),e=this.$el.parent().allOffsets(),g===this.model.revisions.length-1?c={rightPlusWidth:d.left-e.left+1,leftPlusWidth:d.right-e.right+1}:(f=this.$("div:nth-of-type("+(g+1)+")"),c=f.allPositions(),_.extend(c,{left:c.left+d.left-e.left,right:c.right+d.right-e.right}),_.extend(c,{leftPlusWidth:c.left+f.outerWidth(),rightPlusWidth:c.right+f.outerWidth()})),this.model.set({offset:c})},ready:function(){var a,b;a=this.model.revisions.length-1,b=1/a,this.$el.css("width",50*this.model.revisions.length+"px"),_(a).times(function(a){this.$el.append('<div style="'+this.direction+": "+100*b*a+'%"></div>')},this)}}),b.view.Metabox=wp.Backbone.View.extend({className:"revisions-meta",initialize:function(){this.views.add(new b.view.MetaFrom({model:this.model,className:"diff-meta diff-meta-from"})),this.views.add(new b.view.MetaTo({model:this.model}))}}),b.view.Meta=wp.Backbone.View.extend({template:wp.template("revisions-meta"),events:{"click .restore-revision":"restoreRevision"},initialize:function(){this.listenTo(this.model,"update:revisions",this.render)},prepare:function(){return _.extend(this.model.toJSON()[this.type]||{},{type:this.type})},restoreRevision:function(){document.location=this.model.get("to").attributes.restoreUrl}}),b.view.MetaFrom=b.view.Meta.extend({className:"diff-meta diff-meta-from",type:"from"}),b.view.MetaTo=b.view.Meta.extend({className:"diff-meta diff-meta-to",type:"to"}),b.view.Checkbox=wp.Backbone.View.extend({className:"revisions-checkbox",template:wp.template("revisions-checkbox"),events:{"click .compare-two-revisions":"compareTwoToggle"},initialize:function(){this.listenTo(this.model,"change:compareTwoMode",this.updateCompareTwoMode)},ready:function(){this.model.revisions.length<3&&a(".revision-toggle-compare-mode").hide()},updateCompareTwoMode:function(){this.$(".compare-two-revisions").prop("checked",this.model.get("compareTwoMode"))},compareTwoToggle:function(){this.model.set({compareTwoMode:a(".compare-two-revisions").prop("checked")})}}),b.view.Tooltip=wp.Backbone.View.extend({className:"revisions-tooltip",template:wp.template("revisions-meta"),initialize:function(){this.listenTo(this.model,"change:offset",this.render),this.listenTo(this.model,"change:hovering",this.toggleVisibility),this.listenTo(this.model,"change:scrubbing",this.toggleVisibility)},prepare:function(){return _.isNull(this.model.get("revision"))?void 0:_.extend({type:"tooltip"},{attributes:this.model.get("revision").toJSON()})},render:function(){var a,b,c,d,e={},f=this.model.revisions.indexOf(this.model.get("revision"))+1;d=f/this.model.revisions.length>.5,isRtl?(b=d?"left":"right",c=d?"leftPlusWidth":b):(b=d?"right":"left",c=d?"rightPlusWidth":b),a="right"===b?"left":"right",wp.Backbone.View.prototype.render.apply(this,arguments),e[b]=this.model.get("offset")[c]+"px",e[a]="",this.$el.toggleClass("flipped",d).css(e)},visible:function(){return this.model.get("scrubbing")||this.model.get("hovering")},toggleVisibility:function(){this.visible()?this.$el.stop().show().fadeTo(100-100*this.el.style.opacity,1):this.$el.stop().fadeTo(300*this.el.style.opacity,0,function(){a(this).hide()})}}),b.view.Buttons=wp.Backbone.View.extend({className:"revisions-buttons",template:wp.template("revisions-buttons"),events:{"click .revisions-next .button":"nextRevision","click .revisions-previous .button":"previousRevision"},initialize:function(){this.listenTo(this.model,"update:revisions",this.disabledButtonCheck)},ready:function(){this.disabledButtonCheck()},gotoModel:function(a){var b={to:this.model.revisions.at(a)};a?b.from=this.model.revisions.at(a-1):this.model.unset("from",{silent:!0}),this.model.set(b)},nextRevision:function(){var a=this.model.revisions.indexOf(this.model.get("to"))+1;this.gotoModel(a)},previousRevision:function(){var a=this.model.revisions.indexOf(this.model.get("to"))-1;this.gotoModel(a)},disabledButtonCheck:function(){var b=this.model.revisions.length-1,c=0,d=a(".revisions-next .button"),e=a(".revisions-previous .button"),f=this.model.revisions.indexOf(this.model.get("to"));d.prop("disabled",b===f),e.prop("disabled",c===f)}}),b.view.Slider=wp.Backbone.View.extend({className:"wp-slider",direction:isRtl?"right":"left",events:{mousemove:"mouseMove"},initialize:function(){_.bindAll(this,"start","slide","stop","mouseMove","mouseEnter","mouseLeave"),this.listenTo(this.model,"update:slider",this.applySliderSettings)},ready:function(){this.$el.css("width",50*this.model.revisions.length+"px"),this.$el.slider(_.extend(this.model.toJSON(),{start:this.start,slide:this.slide,stop:this.stop})),this.$el.hoverIntent({over:this.mouseEnter,out:this.mouseLeave,timeout:800}),this.applySliderSettings()},mouseMove:function(b){var c=this.model.revisions.length-1,d=this.$el.allOffsets()[this.direction],e=this.$el.width(),f=e/c,g=(isRtl?a(window).width()-b.pageX:b.pageX)-d,h=Math.floor((g+f/2)/f);0>h?h=0:h>=this.model.revisions.length&&(h=this.model.revisions.length-1),this.model.set({hoveredRevision:this.model.revisions.at(h)})},mouseLeave:function(){this.model.set({hovering:!1})},mouseEnter:function(){this.model.set({hovering:!0})},applySliderSettings:function(){this.$el.slider(_.pick(this.model.toJSON(),"value","values","range"));var a=this.$("a.ui-slider-handle");this.model.get("compareTwoMode")?(a.first().toggleClass("to-handle",!!isRtl).toggleClass("from-handle",!isRtl),a.last().toggleClass("from-handle",!!isRtl).toggleClass("to-handle",!isRtl)):a.removeClass("from-handle to-handle")},start:function(b,c){this.model.set({scrubbing:!0}),a(window).on("mousemove.wp.revisions",{view:this},function(b){var d,e=b.data.view,f=e.$el.offset().left,g=f,h=f+e.$el.width(),i=h,j="0",k="100%",l=a(c.handle);e.model.get("compareTwoMode")&&(d=l.parent().find(".ui-slider-handle"),l.is(d.first())?(i=d.last().offset().left,k=i-g):(f=d.first().offset().left+d.first().width(),j=f-g)),b.pageX<f?l.css("left",j):b.pageX>i?l.css("left",k):l.css("left",b.pageX-g)})},getPosition:function(a){return isRtl?this.model.revisions.length-a-1:a},slide:function(a,b){var c,d;if(this.model.get("compareTwoMode")){if(b.values[1]===b.values[0])return!1;isRtl&&b.values.reverse(),c={from:this.model.revisions.at(this.getPosition(b.values[0])),to:this.model.revisions.at(this.getPosition(b.values[1]))}}else c={to:this.model.revisions.at(this.getPosition(b.value))},c.from=this.getPosition(b.value)>0?this.model.revisions.at(this.getPosition(b.value)-1):void 0;d=this.model.revisions.at(this.getPosition(b.value)),this.model.get("scrubbing")&&(c.hoveredRevision=d),this.model.set(c)},stop:function(){a(window).off("mousemove.wp.revisions"),this.model.updateSliderSettings(),this.model.set({scrubbing:!1})}}),b.view.Diff=wp.Backbone.View.extend({className:"revisions-diff",template:wp.template("revisions-diff"),prepare:function(){return _.extend({fields:this.model.fields.toJSON()},this.options)}}),b.Router=Backbone.Router.extend({initialize:function(a){this.model=a.model,this.listenTo(this.model,"update:diff",_.debounce(this.updateUrl,250)),this.listenTo(this.model,"change:compareTwoMode",this.updateUrl)},baseUrl:function(a){return this.model.get("baseUrl")+a},updateUrl:function(){var a=this.model.has("from")?this.model.get("from").id:0,b=this.model.get("to").id;this.model.get("compareTwoMode")?this.navigate(this.baseUrl("?from="+a+"&to="+b),{replace:!0}):this.navigate(this.baseUrl("?revision="+b),{replace:!0})},handleRoute:function(a,b){var c=_.isUndefined(b);c||(b=this.model.revisions.get(a),a=this.model.revisions.prev(b),b=b?b.id:0,a=a?a.id:0)}}),b.init=function(){b.view.frame=new b.view.Frame({model:new b.model.FrameState({},{revisions:new b.model.Revisions(b.settings.revisionData)})}).render()},a(b.init)}(jQuery);
\ No newline at end of file
+window.wp=window.wp||{},function(a){var b;b=wp.revisions={model:{},view:{},controller:{}},b.settings=_.isUndefined(_wpRevisionsSettings)?{}:_wpRevisionsSettings,b.debug=!1,b.log=function(){window.console&&b.debug&&window.console.log.apply(window.console,arguments)},a.fn.allOffsets=function(){var b=this.offset()||{top:0,left:0},c=a(window);return _.extend(b,{right:c.width()-b.left-this.outerWidth(),bottom:c.height()-b.top-this.outerHeight()})},a.fn.allPositions=function(){var a=this.position()||{top:0,left:0},b=this.parent();return _.extend(a,{right:b.outerWidth()-a.left-this.outerWidth(),bottom:b.outerHeight()-a.top-this.outerHeight()})},b.settings.to&&(b.settings.to=parseInt(b.settings.to,10)),b.settings.from&&(b.settings.from=parseInt(b.settings.from,10)),b.settings.compareTwoMode&&(b.settings.compareTwoMode="1"===b.settings.compareTwoMode),b.model.Slider=Backbone.Model.extend({defaults:{value:null,values:null,min:0,max:1,step:1,range:!1,compareTwoMode:!1},initialize:function(a){this.frame=a.frame,this.revisions=a.revisions,this.listenTo(this.frame,"update:revisions",this.receiveRevisions),this.listenTo(this.frame,"change:compareTwoMode",this.updateMode),this.listenTo(this,"change:from",this.handleLocalChanges),this.listenTo(this,"change:to",this.handleLocalChanges),this.listenTo(this,"change:compareTwoMode",this.updateSliderSettings),this.listenTo(this,"update:revisions",this.updateSliderSettings),this.listenTo(this,"change:hoveredRevision",this.hoverRevision),this.set({max:this.revisions.length-1,compareTwoMode:this.frame.get("compareTwoMode"),from:this.frame.get("from"),to:this.frame.get("to")}),this.updateSliderSettings()},getSliderValue:function(a,b){return isRtl?this.revisions.length-this.revisions.indexOf(this.get(a))-1:this.revisions.indexOf(this.get(b))},updateSliderSettings:function(){this.set(this.get("compareTwoMode")?{values:[this.getSliderValue("to","from"),this.getSliderValue("from","to")],value:null,range:!0}:{value:this.getSliderValue("to","to"),values:null,range:!1}),this.trigger("update:slider")},hoverRevision:function(a,b){this.trigger("hovered:revision",b)},updateMode:function(a,b){this.set({compareTwoMode:b})},handleLocalChanges:function(){this.frame.set({from:this.get("from"),to:this.get("to")})},receiveRevisions:function(a,b){(this.get("from")!==a||this.get("to")!==b)&&(this.set({from:a,to:b},{silent:!0}),this.trigger("update:revisions",a,b))}}),b.model.Tooltip=Backbone.Model.extend({defaults:{revision:null,offset:{},hovering:!1,scrubbing:!1},initialize:function(a){this.frame=a.frame,this.revisions=a.revisions,this.slider=a.slider,this.listenTo(this.slider,"hovered:revision",this.updateRevision),this.listenTo(this.slider,"change:hovering",this.setHovering),this.listenTo(this.slider,"change:scrubbing",this.setScrubbing)},updateRevision:function(a){this.set({revision:a})},setHovering:function(a,b){this.set({hovering:b})},setScrubbing:function(a,b){this.set({scrubbing:b})}}),b.model.Revision=Backbone.Model.extend({}),b.model.Revisions=Backbone.Collection.extend({model:b.model.Revision,initialize:function(){_.bindAll(this,"next","prev")},next:function(a){var b=this.indexOf(a);return-1!==b&&b!==this.length-1?this.at(b+1):void 0},prev:function(a){var b=this.indexOf(a);return-1!==b&&0!==b?this.at(b-1):void 0}}),b.model.Field=Backbone.Model.extend({}),b.model.Fields=Backbone.Collection.extend({model:b.model.Field}),b.model.Diff=Backbone.Model.extend({initialize:function(){var a=this.get("fields");this.unset("fields"),this.fields=new b.model.Fields(a)}}),b.model.Diffs=Backbone.Collection.extend({initialize:function(a,b){_.bindAll(this,"getClosestUnloaded"),this.loadAll=_.once(this._loadAll),this.revisions=b.revisions,this.requests={}},model:b.model.Diff,ensure:function(b,c){var d=this.get(b),e=this.requests[b],f=a.Deferred(),g={},h=b.split(":")[0],i=b.split(":")[1];return g[b]=!0,wp.revisions.log("ensure",b),this.trigger("ensure",g,h,i,f.promise()),d?f.resolveWith(c,[d]):(this.trigger("ensure:load",g,h,i,f.promise()),_.each(g,_.bind(function(a){this.requests[a]&&delete g[a],this.get(a)&&delete g[a]},this)),e||(g[b]=!0,e=this.load(_.keys(g))),e.done(_.bind(function(){f.resolveWith(c,[this.get(b)])},this)).fail(_.bind(function(){f.reject()}))),f.promise()},getClosestUnloaded:function(a,b){var c=this;return _.chain([0].concat(a)).initial().zip(a).sortBy(function(a){return Math.abs(b-a[1])}).map(function(a){return a.join(":")}).filter(function(a){return _.isUndefined(c.get(a))&&!c.requests[a]}).value()},_loadAll:function(b,c,d){var e=this,f=a.Deferred(),g=_.first(this.getClosestUnloaded(b,c),d);return _.size(g)>0?this.load(g).done(function(){e._loadAll(b,c,d).done(function(){f.resolve()})}).fail(function(){1===d?f.reject():e._loadAll(b,c,Math.ceil(d/2)).done(function(){f.resolve()})}):f.resolve(),f},load:function(a){return wp.revisions.log("load",a),this.fetch({data:{compare:a},remove:!1}).done(function(){wp.revisions.log("load:complete",a)})},sync:function(a,c,d){if("read"===a){d=d||{},d.context=this,d.data=_.extend(d.data||{},{action:"get-revision-diffs",post_id:b.settings.postId});var e=wp.ajax.send(d),f=this.requests;return d.data.compare&&_.each(d.data.compare,function(a){f[a]=e}),e.always(function(){d.data.compare&&_.each(d.data.compare,function(a){delete f[a]})}),e}return Backbone.Model.prototype.sync.apply(this,arguments)}}),b.model.FrameState=Backbone.Model.extend({defaults:{loading:!1,error:!1,compareTwoMode:!1},initialize:function(a,c){var d={};_.bindAll(this,"receiveDiff"),this._debouncedEnsureDiff=_.debounce(this._ensureDiff,200),this.revisions=c.revisions,this.diffs=new b.model.Diffs([],{revisions:this.revisions}),this.diffs.set(b.settings.diffData),this.listenTo(this,"change:from",this.changeRevisionHandler),this.listenTo(this,"change:to",this.changeRevisionHandler),this.listenTo(this,"change:compareTwoMode",this.changeMode),this.listenTo(this,"update:revisions",this.updatedRevisions),this.listenTo(this.diffs,"ensure:load",this.updateLoadingStatus),this.listenTo(this,"update:diff",this.updateLoadingStatus),d.to=this.revisions.get(b.settings.to),d.from=this.revisions.get(b.settings.from),d.compareTwoMode=b.settings.compareTwoMode,d.baseUrl=b.settings.baseUrl,this.set(d),window.history&&window.history.pushState&&(this.router=new b.Router({model:this}),Backbone.history.start({pushState:!0}))},updateLoadingStatus:function(){this.set("error",!1),this.set("loading",!this.diff())},changeMode:function(a,b){var c=this.revisions.indexOf(this.get("to"));b&&0===c&&this.set({from:this.revisions.at(c),to:this.revisions.at(c+1)}),b||0===c||this.set({from:this.revisions.at(c-1),to:this.revisions.at(c)})},updatedRevisions:function(a,b){this.get("compareTwoMode")||this.diffs.loadAll(this.revisions.pluck("id"),b.id,40)},diff:function(){return this.diffs.get(this._diffId)},updateDiff:function(b){var c,d,e,f;return b=b||{},c=this.get("from"),d=this.get("to"),e=(c?c.id:0)+":"+d.id,this._diffId===e?a.Deferred().reject().promise():(this._diffId=e,this.trigger("update:revisions",c,d),f=this.diffs.get(e),f?(this.receiveDiff(f),a.Deferred().resolve().promise()):b.immediate?this._ensureDiff():(this._debouncedEnsureDiff(),a.Deferred().reject().promise()))},changeRevisionHandler:function(){this.updateDiff()},receiveDiff:function(a){_.isUndefined(a)||_.isUndefined(a.id)?this.set({loading:!1,error:!0}):this._diffId===a.id&&this.trigger("update:diff",a)},_ensureDiff:function(){return this.diffs.ensure(this._diffId,this).always(this.receiveDiff)}}),b.view.Frame=wp.Backbone.View.extend({className:"revisions",template:wp.template("revisions-frame"),initialize:function(){this.listenTo(this.model,"update:diff",this.renderDiff),this.listenTo(this.model,"change:compareTwoMode",this.updateCompareTwoMode),this.listenTo(this.model,"change:loading",this.updateLoadingStatus),this.listenTo(this.model,"change:error",this.updateErrorStatus),this.views.set(".revisions-control-frame",new b.view.Controls({model:this.model}))},render:function(){return wp.Backbone.View.prototype.render.apply(this,arguments),a("html").css("overflow-y","scroll"),a("#wpbody-content .wrap").append(this.el),this.updateCompareTwoMode(),this.renderDiff(this.model.diff()),this.views.ready(),this},renderDiff:function(a){this.views.set(".revisions-diff-frame",new b.view.Diff({model:a}))},updateLoadingStatus:function(){this.$el.toggleClass("loading",this.model.get("loading"))},updateErrorStatus:function(){this.$el.toggleClass("diff-error",this.model.get("error"))},updateCompareTwoMode:function(){this.$el.toggleClass("comparing-two-revisions",this.model.get("compareTwoMode"))}}),b.view.Controls=wp.Backbone.View.extend({className:"revisions-controls",initialize:function(){_.bindAll(this,"setWidth"),this.views.add(new b.view.Buttons({model:this.model})),this.views.add(new b.view.Checkbox({model:this.model}));var a=new b.model.Slider({frame:this.model,revisions:this.model.revisions}),c=new b.model.Tooltip({frame:this.model,revisions:this.model.revisions,slider:a});this.views.add(new b.view.Tooltip({model:c})),this.views.add(new b.view.Tickmarks({model:c})),this.views.add(new b.view.Slider({model:a})),this.views.add(new b.view.Metabox({model:this.model}))},ready:function(){this.top=this.$el.offset().top,this.window=a(window),this.window.on("scroll.wp.revisions",{controls:this},function(a){var b=a.data.controls,c=b.$el.parent(),d=b.window.scrollTop(),e=b.views.parent;d>=b.top?(e.$el.hasClass("pinned")||(b.setWidth(),c.css("height",c.height()+"px"),b.window.on("resize.wp.revisions.pinning click.wp.revisions.pinning",{controls:b},function(a){a.data.controls.setWidth()})),e.$el.addClass("pinned")):e.$el.hasClass("pinned")?(b.window.off(".wp.revisions.pinning"),b.$el.css("width","auto"),e.$el.removeClass("pinned"),c.css("height","auto"),b.top=b.$el.offset().top):b.top=b.$el.offset().top})},setWidth:function(){this.$el.css("width",this.$el.parent().width()+"px")}}),b.view.Tickmarks=wp.Backbone.View.extend({className:"revisions-tickmarks",direction:isRtl?"right":"left",initialize:function(){this.listenTo(this.model,"change:revision",this.reportTickPosition)},reportTickPosition:function(a,b){var c,d,e,f,g=this.model.revisions.indexOf(b);d=this.$el.allOffsets(),e=this.$el.parent().allOffsets(),g===this.model.revisions.length-1?c={rightPlusWidth:d.left-e.left+1,leftPlusWidth:d.right-e.right+1}:(f=this.$("div:nth-of-type("+(g+1)+")"),c=f.allPositions(),_.extend(c,{left:c.left+d.left-e.left,right:c.right+d.right-e.right}),_.extend(c,{leftPlusWidth:c.left+f.outerWidth(),rightPlusWidth:c.right+f.outerWidth()})),this.model.set({offset:c})},ready:function(){var a,b;a=this.model.revisions.length-1,b=1/a,this.$el.css("width",50*this.model.revisions.length+"px"),_(a).times(function(a){this.$el.append('<div style="'+this.direction+": "+100*b*a+'%"></div>')},this)}}),b.view.Metabox=wp.Backbone.View.extend({className:"revisions-meta",initialize:function(){this.views.add(new b.view.MetaFrom({model:this.model,className:"diff-meta diff-meta-from"})),this.views.add(new b.view.MetaTo({model:this.model}))}}),b.view.Meta=wp.Backbone.View.extend({template:wp.template("revisions-meta"),events:{"click .restore-revision":"restoreRevision"},initialize:function(){this.listenTo(this.model,"update:revisions",this.render)},prepare:function(){return _.extend(this.model.toJSON()[this.type]||{},{type:this.type})},restoreRevision:function(){document.location=this.model.get("to").attributes.restoreUrl}}),b.view.MetaFrom=b.view.Meta.extend({className:"diff-meta diff-meta-from",type:"from"}),b.view.MetaTo=b.view.Meta.extend({className:"diff-meta diff-meta-to",type:"to"}),b.view.Checkbox=wp.Backbone.View.extend({className:"revisions-checkbox",template:wp.template("revisions-checkbox"),events:{"click .compare-two-revisions":"compareTwoToggle"},initialize:function(){this.listenTo(this.model,"change:compareTwoMode",this.updateCompareTwoMode)},ready:function(){this.model.revisions.length<3&&a(".revision-toggle-compare-mode").hide()},updateCompareTwoMode:function(){this.$(".compare-two-revisions").prop("checked",this.model.get("compareTwoMode"))},compareTwoToggle:function(){this.model.set({compareTwoMode:a(".compare-two-revisions").prop("checked")})}}),b.view.Tooltip=wp.Backbone.View.extend({className:"revisions-tooltip",template:wp.template("revisions-meta"),initialize:function(){this.listenTo(this.model,"change:offset",this.render),this.listenTo(this.model,"change:hovering",this.toggleVisibility),this.listenTo(this.model,"change:scrubbing",this.toggleVisibility)},prepare:function(){return _.isNull(this.model.get("revision"))?void 0:_.extend({type:"tooltip"},{attributes:this.model.get("revision").toJSON()})},render:function(){var a,b,c,d,e={},f=this.model.revisions.indexOf(this.model.get("revision"))+1;d=f/this.model.revisions.length>.5,isRtl?(b=d?"left":"right",c=d?"leftPlusWidth":b):(b=d?"right":"left",c=d?"rightPlusWidth":b),a="right"===b?"left":"right",wp.Backbone.View.prototype.render.apply(this,arguments),e[b]=this.model.get("offset")[c]+"px",e[a]="",this.$el.toggleClass("flipped",d).css(e)},visible:function(){return this.model.get("scrubbing")||this.model.get("hovering")},toggleVisibility:function(){this.visible()?this.$el.stop().show().fadeTo(100-100*this.el.style.opacity,1):this.$el.stop().fadeTo(300*this.el.style.opacity,0,function(){a(this).hide()})}}),b.view.Buttons=wp.Backbone.View.extend({className:"revisions-buttons",template:wp.template("revisions-buttons"),events:{"click .revisions-next .button":"nextRevision","click .revisions-previous .button":"previousRevision"},initialize:function(){this.listenTo(this.model,"update:revisions",this.disabledButtonCheck)},ready:function(){this.disabledButtonCheck()},gotoModel:function(a){var b={to:this.model.revisions.at(a)};a?b.from=this.model.revisions.at(a-1):this.model.unset("from",{silent:!0}),this.model.set(b)},nextRevision:function(){var a=this.model.revisions.indexOf(this.model.get("to"))+1;this.gotoModel(a)},previousRevision:function(){var a=this.model.revisions.indexOf(this.model.get("to"))-1;this.gotoModel(a)},disabledButtonCheck:function(){var b=this.model.revisions.length-1,c=0,d=a(".revisions-next .button"),e=a(".revisions-previous .button"),f=this.model.revisions.indexOf(this.model.get("to"));d.prop("disabled",b===f),e.prop("disabled",c===f)}}),b.view.Slider=wp.Backbone.View.extend({className:"wp-slider",direction:isRtl?"right":"left",events:{mousemove:"mouseMove"},initialize:function(){_.bindAll(this,"start","slide","stop","mouseMove","mouseEnter","mouseLeave"),this.listenTo(this.model,"update:slider",this.applySliderSettings)},ready:function(){this.$el.css("width",50*this.model.revisions.length+"px"),this.$el.slider(_.extend(this.model.toJSON(),{start:this.start,slide:this.slide,stop:this.stop})),this.$el.hoverIntent({over:this.mouseEnter,out:this.mouseLeave,timeout:800}),this.applySliderSettings()},mouseMove:function(b){var c=this.model.revisions.length-1,d=this.$el.allOffsets()[this.direction],e=this.$el.width(),f=e/c,g=(isRtl?a(window).width()-b.pageX:b.pageX)-d,h=Math.floor((g+f/2)/f);0>h?h=0:h>=this.model.revisions.length&&(h=this.model.revisions.length-1),this.model.set({hoveredRevision:this.model.revisions.at(h)})},mouseLeave:function(){this.model.set({hovering:!1})},mouseEnter:function(){this.model.set({hovering:!0})},applySliderSettings:function(){this.$el.slider(_.pick(this.model.toJSON(),"value","values","range"));var a=this.$("a.ui-slider-handle");this.model.get("compareTwoMode")?(a.first().toggleClass("to-handle",!!isRtl).toggleClass("from-handle",!isRtl),a.last().toggleClass("from-handle",!!isRtl).toggleClass("to-handle",!isRtl)):a.removeClass("from-handle to-handle")},start:function(b,c){this.model.set({scrubbing:!0}),a(window).on("mousemove.wp.revisions",{view:this},function(b){var d,e=b.data.view,f=e.$el.offset().left,g=f,h=f+e.$el.width(),i=h,j="0",k="100%",l=a(c.handle);e.model.get("compareTwoMode")&&(d=l.parent().find(".ui-slider-handle"),l.is(d.first())?(i=d.last().offset().left,k=i-g):(f=d.first().offset().left+d.first().width(),j=f-g)),b.pageX<f?l.css("left",j):b.pageX>i?l.css("left",k):l.css("left",b.pageX-g)})},getPosition:function(a){return isRtl?this.model.revisions.length-a-1:a},slide:function(a,b){var c,d;if(this.model.get("compareTwoMode")){if(b.values[1]===b.values[0])return!1;isRtl&&b.values.reverse(),c={from:this.model.revisions.at(this.getPosition(b.values[0])),to:this.model.revisions.at(this.getPosition(b.values[1]))}}else c={to:this.model.revisions.at(this.getPosition(b.value))},c.from=this.getPosition(b.value)>0?this.model.revisions.at(this.getPosition(b.value)-1):void 0;d=this.model.revisions.at(this.getPosition(b.value)),this.model.get("scrubbing")&&(c.hoveredRevision=d),this.model.set(c)},stop:function(){a(window).off("mousemove.wp.revisions"),this.model.updateSliderSettings(),this.model.set({scrubbing:!1})}}),b.view.Diff=wp.Backbone.View.extend({className:"revisions-diff",template:wp.template("revisions-diff"),prepare:function(){return _.extend({fields:this.model.fields.toJSON()},this.options)}}),b.Router=Backbone.Router.extend({initialize:function(a){this.model=a.model,this.listenTo(this.model,"update:diff",_.debounce(this.updateUrl,250)),this.listenTo(this.model,"change:compareTwoMode",this.updateUrl)},baseUrl:function(a){return this.model.get("baseUrl")+a},updateUrl:function(){var a=this.model.has("from")?this.model.get("from").id:0,b=this.model.get("to").id;this.model.get("compareTwoMode")?this.navigate(this.baseUrl("?from="+a+"&to="+b),{replace:!0}):this.navigate(this.baseUrl("?revision="+b),{replace:!0})},handleRoute:function(a,b){var c=_.isUndefined(b);c||(b=this.model.revisions.get(a),a=this.model.revisions.prev(b),b=b?b.id:0,a=a?a.id:0)}}),b.init=function(){b.view.frame=new b.view.Frame({model:new b.model.FrameState({},{revisions:new b.model.Revisions(b.settings.revisionData)})}).render()},a(b.init)}(jQuery);
\ No newline at end of file
index 77054b5cbf24983aaed1c9cb80ad7d7c076ecc74..57e33127ac9fa84b809a957c9a88a2944bd82dca 100644 (file)
@@ -105,7 +105,7 @@ themes.view.Appearance = wp.Backbone.View.extend({
                // Render and append after screen title
                view.render();
                this.searchContainer
                // Render and append after screen title
                view.render();
                this.searchContainer
-                       .append( $.parseHTML( '<label class="screen-reader-text" for="theme-search-input">' + l10n.search + '</label>' ) )
+                       .append( $.parseHTML( '<label class="screen-reader-text" for="wp-filter-search-input">' + l10n.search + '</label>' ) )
                        .append( view.el );
        },
 
                        .append( view.el );
        },
 
@@ -190,6 +190,12 @@ themes.Collection = Backbone.Collection.extend({
                        return match.test( haystack );
                });
 
                        return match.test( haystack );
                });
 
+               if ( results.length === 0 ) {
+                       this.trigger( 'query:empty' );
+               } else {
+                       $( 'body' ).removeClass( 'no-results' );
+               }
+
                this.reset( results );
        },
 
                this.reset( results );
        },
 
@@ -336,7 +342,7 @@ themes.Collection = Backbone.Collection.extend({
                        beforeSend: function() {
                                if ( ! paginated ) {
                                        // Spin it
                        beforeSend: function() {
                                if ( ! paginated ) {
                                        // Spin it
-                                       $( 'body' ).addClass( 'loading-themes' ).removeClass( 'no-results' );
+                                       $( 'body' ).addClass( 'loading-content' ).removeClass( 'no-results' );
                                }
                        }
                });
                                }
                        }
                });
@@ -362,7 +368,6 @@ themes.view.Theme = wp.Backbone.View.extend({
 
        events: {
                'click': themes.isInstall ? 'preview': 'expand',
 
        events: {
                'click': themes.isInstall ? 'preview': 'expand',
-               'click .preview': 'preview',
                'keydown': themes.isInstall ? 'preview': 'expand',
                'touchend': themes.isInstall ? 'preview': 'expand',
                'keyup': 'addFocus',
                'keydown': themes.isInstall ? 'preview': 'expand',
                'touchend': themes.isInstall ? 'preview': 'expand',
                'keyup': 'addFocus',
@@ -487,7 +492,7 @@ themes.view.Theme = wp.Backbone.View.extend({
                        preview.$el.removeClass( 'no-navigation' );
                }
 
                        preview.$el.removeClass( 'no-navigation' );
                }
 
-               // Apend preview
+               // Append preview
                $( 'div.wrap' ).append( preview.el );
 
                // Listen to our preview object
                $( 'div.wrap' ).append( preview.el );
 
                // Listen to our preview object
@@ -502,7 +507,7 @@ themes.view.Theme = wp.Backbone.View.extend({
                                current = self.current;
                        }
 
                                current = self.current;
                        }
 
-                       // Get previous theme model.
+                       // Get next theme model.
                        self.current = self.model.collection.at( self.model.collection.indexOf( current ) + 1 );
 
                        // If we have no more themes, bail.
                        self.current = self.model.collection.at( self.model.collection.indexOf( current ) + 1 );
 
                        // If we have no more themes, bail.
@@ -511,15 +516,11 @@ themes.view.Theme = wp.Backbone.View.extend({
                                return self.current = current;
                        }
 
                                return self.current = current;
                        }
 
-                       // Construct a new Preview view.
-                       preview = new themes.view.Preview({
-                               model: self.current
-                       });
+                       preview.model = self.current;
 
                        // Render and append.
                        preview.render();
                        this.setNavButtonsState();
 
                        // Render and append.
                        preview.render();
                        this.setNavButtonsState();
-                       $( 'div.wrap' ).append( preview.el );
                        $( '.next-theme' ).focus();
                })
                .listenTo( preview, 'theme:previous', function() {
                        $( '.next-theme' ).focus();
                })
                .listenTo( preview, 'theme:previous', function() {
@@ -545,15 +546,11 @@ themes.view.Theme = wp.Backbone.View.extend({
                                return;
                        }
 
                                return;
                        }
 
-                       // Construct a new Preview view.
-                       preview = new themes.view.Preview({
-                               model: self.current
-                       });
+                       preview.model = self.current;
 
                        // Render and append.
                        preview.render();
                        this.setNavButtonsState();
 
                        // Render and append.
                        preview.render();
                        this.setNavButtonsState();
-                       $( 'div.wrap' ).append( preview.el );
                        $( '.previous-theme' ).focus();
                });
 
                        $( '.previous-theme' ).focus();
                });
 
@@ -704,7 +701,7 @@ themes.view.Details = wp.Backbone.View.extend({
        // Performs the actions to effectively close
        // the theme details overlay
        closeOverlay: function() {
        // Performs the actions to effectively close
        // the theme details overlay
        closeOverlay: function() {
-               $( 'body' ).removeClass( 'theme-overlay-open' );
+               $( 'body' ).removeClass( 'modal-open' );
                this.remove();
                this.unbind();
                this.trigger( 'theme:collapse' );
                this.remove();
                this.unbind();
                this.trigger( 'theme:collapse' );
@@ -786,6 +783,7 @@ themes.view.Preview = themes.view.Details.extend({
 
                themes.router.navigate( themes.router.baseUrl( '' ) );
                this.trigger( 'preview:close' );
 
                themes.router.navigate( themes.router.baseUrl( '' ) );
                this.trigger( 'preview:close' );
+               this.undelegateEvents();
                this.unbind();
                return false;
        },
                this.unbind();
                return false;
        },
@@ -1002,7 +1000,7 @@ themes.view.Themes = wp.Backbone.View.extend({
 
                // Sets this.view to 'detail'
                this.setView( 'detail' );
 
                // Sets this.view to 'detail'
                this.setView( 'detail' );
-               $( 'body' ).addClass( 'theme-overlay-open' );
+               $( 'body' ).addClass( 'modal-open' );
 
                // Set up the theme details view
                this.overlay = new themes.view.Details({
 
                // Set up the theme details view
                this.overlay = new themes.view.Details({
@@ -1082,8 +1080,8 @@ themes.view.Themes = wp.Backbone.View.extend({
 themes.view.Search = wp.Backbone.View.extend({
 
        tagName: 'input',
 themes.view.Search = wp.Backbone.View.extend({
 
        tagName: 'input',
-       className: 'theme-search',
-       id: 'theme-search-input',
+       className: 'wp-filter-search',
+       id: 'wp-filter-search-input',
        searching: false,
 
        attributes: {
        searching: false,
 
        attributes: {
@@ -1170,11 +1168,11 @@ themes.Router = Backbone.Router.extend({
        },
 
        search: function( query ) {
        },
 
        search: function( query ) {
-               $( '.theme-search' ).val( query );
+               $( '.wp-filter-search' ).val( query );
        },
 
        themes: function() {
        },
 
        themes: function() {
-               $( '.theme-search' ).val( '' );
+               $( '.wp-filter-search' ).val( '' );
        },
 
        navigate: function() {
        },
 
        navigate: function() {
@@ -1231,7 +1229,7 @@ themes.Run = {
 
                // Handles search route event
                themes.router.on( 'route:search', function() {
 
                // Handles search route event
                themes.router.on( 'route:search', function() {
-                       $( '.theme-search' ).trigger( 'keyup' );
+                       $( '.wp-filter-search' ).trigger( 'keyup' );
                });
 
                this.extraRoutes();
                });
 
                this.extraRoutes();
@@ -1290,8 +1288,8 @@ themes.view.InstallerSearch =  themes.view.Search.extend({
                        request.tag = [ value.slice( 4 ) ];
                }
 
                        request.tag = [ value.slice( 4 ) ];
                }
 
-               $( '.theme-section.current' ).removeClass( 'current' );
-               $( 'body' ).removeClass( 'more-filters-opened filters-applied' );
+               $( '.filter-links li > a.current' ).removeClass( 'current' );
+               $( 'body' ).removeClass( 'show-filters filters-applied' );
 
                // Get the themes by sending Ajax POST request to api.wordpress.org/themes
                // or searching the local cache
 
                // Get the themes by sending Ajax POST request to api.wordpress.org/themes
                // or searching the local cache
@@ -1308,14 +1306,13 @@ themes.view.Installer = themes.view.Appearance.extend({
 
        // Register events for sorting and filters in theme-navigation
        events: {
 
        // Register events for sorting and filters in theme-navigation
        events: {
-               'click .theme-section': 'onSort',
+               'click .filter-links li > a': 'onSort',
                'click .theme-filter': 'onFilter',
                'click .theme-filter': 'onFilter',
-               'click .more-filters': 'moreFilters',
-               'click .apply-filters': 'applyFilters',
-               'click [type="checkbox"]': 'addFilter',
-               'click .clear-filters': 'clearFilters',
-               'click .feature-name': 'filterSection',
-               'click .filtering-by a': 'backToFilters'
+               'click .drawer-toggle': 'moreFilters',
+               'click .filter-drawer .apply-filters': 'applyFilters',
+               'click .filter-group [type="checkbox"]': 'addFilter',
+               'click .filter-drawer .clear-filters': 'clearFilters',
+               'click .filtered-by': 'backToFilters'
        },
 
        // Initial render method
        },
 
        // Initial render method
@@ -1345,12 +1342,12 @@ themes.view.Installer = themes.view.Appearance.extend({
                });
 
                this.listenTo( this.collection, 'query:success', function() {
                });
 
                this.listenTo( this.collection, 'query:success', function() {
-                       $( 'body' ).removeClass( 'loading-themes' );
+                       $( 'body' ).removeClass( 'loading-content' );
                        $( '.theme-browser' ).find( 'div.error' ).remove();
                });
 
                this.listenTo( this.collection, 'query:fail', function() {
                        $( '.theme-browser' ).find( 'div.error' ).remove();
                });
 
                this.listenTo( this.collection, 'query:fail', function() {
-                       $( 'body' ).removeClass( 'loading-themes' );
+                       $( 'body' ).removeClass( 'loading-content' );
                        $( '.theme-browser' ).find( 'div.error' ).remove();
                        $( '.theme-browser' ).find( 'div.themes' ).before( '<div class="error"><p>' + l10n.error + '</p></div>' );
                });
                        $( '.theme-browser' ).find( 'div.error' ).remove();
                        $( '.theme-browser' ).find( 'div.themes' ).before( '<div class="error"><p>' + l10n.error + '</p></div>' );
                });
@@ -1388,7 +1385,7 @@ themes.view.Installer = themes.view.Appearance.extend({
 
                event.preventDefault();
 
 
                event.preventDefault();
 
-               $( 'body' ).removeClass( 'filters-applied more-filters-opened' );
+               $( 'body' ).removeClass( 'filters-applied show-filters' );
 
                // Bail if this is already active
                if ( $el.hasClass( this.activeClass ) ) {
 
                // Bail if this is already active
                if ( $el.hasClass( this.activeClass ) ) {
@@ -1404,7 +1401,7 @@ themes.view.Installer = themes.view.Appearance.extend({
        sort: function( sort ) {
                this.clearSearch();
 
        sort: function( sort ) {
                this.clearSearch();
 
-               $( '.theme-section, .theme-filter' ).removeClass( this.activeClass );
+               $( '.filter-links li > a, .theme-filter' ).removeClass( this.activeClass );
                $( '[data-sort="' + sort + '"]' ).addClass( this.activeClass );
 
                this.browse( sort );
                $( '[data-sort="' + sort + '"]' ).addClass( this.activeClass );
 
                this.browse( sort );
@@ -1421,7 +1418,7 @@ themes.view.Installer = themes.view.Appearance.extend({
                        return;
                }
 
                        return;
                }
 
-               $( '.theme-filter, .theme-section' ).removeClass( this.activeClass );
+               $( '.filter-links li > a, .theme-section' ).removeClass( this.activeClass );
                $el.addClass( this.activeClass );
 
                if ( ! filter ) {
                $el.addClass( this.activeClass );
 
                if ( ! filter ) {
@@ -1448,18 +1445,18 @@ themes.view.Installer = themes.view.Appearance.extend({
                var name,
                        tags = this.filtersChecked(),
                        request = { tag: tags },
                var name,
                        tags = this.filtersChecked(),
                        request = { tag: tags },
-                       filteringBy = $( '.filtering-by .tags' );
+                       filteringBy = $( '.filtered-by .tags' );
 
                if ( event ) {
                        event.preventDefault();
                }
 
                $( 'body' ).addClass( 'filters-applied' );
 
                if ( event ) {
                        event.preventDefault();
                }
 
                $( 'body' ).addClass( 'filters-applied' );
-               $( '.theme-section.current' ).removeClass( 'current' );
+               $( '.filter-links li > a.current' ).removeClass( 'current' );
                filteringBy.empty();
 
                _.each( tags, function( tag ) {
                filteringBy.empty();
 
                _.each( tags, function( tag ) {
-                       name = $( 'label[for="feature-id-' + tag + '"]' ).text();
+                       name = $( 'label[for="filter-id-' + tag + '"]' ).text();
                        filteringBy.append( '<span class="tag">' + name + '</span>' );
                });
 
                        filteringBy.append( '<span class="tag">' + name + '</span>' );
                });
 
@@ -1471,7 +1468,7 @@ themes.view.Installer = themes.view.Appearance.extend({
        // Get the checked filters
        // @return {array} of tags or false
        filtersChecked: function() {
        // Get the checked filters
        // @return {array} of tags or false
        filtersChecked: function() {
-               var items = $( '.feature-group' ).find( ':checkbox' ),
+               var items = $( '.filter-group' ).find( ':checkbox' ),
                        tags = [];
 
                _.each( items.filter( ':checked' ), function( item ) {
                        tags = [];
 
                _.each( items.filter( ':checked' ), function( item ) {
@@ -1480,14 +1477,14 @@ themes.view.Installer = themes.view.Appearance.extend({
 
                // When no filters are checked, restore initial state and return
                if ( tags.length === 0 ) {
 
                // When no filters are checked, restore initial state and return
                if ( tags.length === 0 ) {
-                       $( '.apply-filters' ).find( 'span' ).text( '' );
-                       $( '.clear-filters' ).hide();
+                       $( '.filter-drawer .apply-filters' ).find( 'span' ).text( '' );
+                       $( '.filter-drawer .clear-filters' ).hide();
                        $( 'body' ).removeClass( 'filters-applied' );
                        return false;
                }
 
                        $( 'body' ).removeClass( 'filters-applied' );
                        return false;
                }
 
-               $( '.apply-filters' ).find( 'span' ).text( tags.length );
-               $( '.clear-filters' ).css( 'display', 'inline-block' );
+               $( '.filter-drawer .apply-filters' ).find( 'span' ).text( tags.length );
+               $( '.filter-drawer .clear-filters' ).css( 'display', 'inline-block' );
 
                return tags;
        },
 
                return tags;
        },
@@ -1496,7 +1493,7 @@ themes.view.Installer = themes.view.Appearance.extend({
 
        // Overwrite search container class to append search
        // in new location
 
        // Overwrite search container class to append search
        // in new location
-       searchContainer: $( '.theme-navigation' ),
+       searchContainer: $( '.wp-filter .search-form' ),
 
        uploader: function() {
                $( 'a.upload' ).on( 'click', function( event ) {
 
        uploader: function() {
                $( 'a.upload' ).on( 'click', function( event ) {
@@ -1521,25 +1518,20 @@ themes.view.Installer = themes.view.Appearance.extend({
 
                // If the filters section is opened and filters are checked
                // run the relevant query collapsing to filtered-by state
 
                // If the filters section is opened and filters are checked
                // run the relevant query collapsing to filtered-by state
-               if ( $( 'body' ).hasClass( 'more-filters-opened' ) && this.filtersChecked() ) {
+               if ( $( 'body' ).hasClass( 'show-filters' ) && this.filtersChecked() ) {
                        return this.addFilter();
                }
 
                this.clearSearch();
 
                themes.router.navigate( themes.router.baseUrl( '' ) );
                        return this.addFilter();
                }
 
                this.clearSearch();
 
                themes.router.navigate( themes.router.baseUrl( '' ) );
-               $( 'body' ).toggleClass( 'more-filters-opened' );
-       },
-
-       // Expand/collapse each individual filter section
-       filterSection: function() {
-               $( event.target ).parent().toggleClass( 'open' );
+               $( 'body' ).toggleClass( 'show-filters' );
        },
 
        // Clears all the checked filters
        // @uses filtersChecked()
        clearFilters: function( event ) {
        },
 
        // Clears all the checked filters
        // @uses filtersChecked()
        clearFilters: function( event ) {
-               var items = $( '.feature-group' ).find( ':checkbox' ),
+               var items = $( '.filter-group' ).find( ':checkbox' ),
                        self = this;
 
                event.preventDefault();
                        self = this;
 
                event.preventDefault();
@@ -1559,7 +1551,7 @@ themes.view.Installer = themes.view.Appearance.extend({
        },
 
        clearSearch: function() {
        },
 
        clearSearch: function() {
-               $( '#theme-search-input').val( '' );
+               $( '#wp-filter-search-input').val( '' );
        }
 });
 
        }
 });
 
@@ -1577,7 +1569,7 @@ themes.InstallerRouter = Backbone.Router.extend({
        },
 
        search: function( query ) {
        },
 
        search: function( query ) {
-               $( '.theme-search' ).val( query );
+               $( '.wp-filter-search' ).val( query );
        },
 
        navigate: function() {
        },
 
        navigate: function() {
@@ -1649,7 +1641,7 @@ themes.RunInstaller = {
 
                // The `search` route event. The router populates the input field.
                themes.router.on( 'route:search', function() {
 
                // The `search` route event. The router populates the input field.
                themes.router.on( 'route:search', function() {
-                       $( '.theme-search' ).focus().trigger( 'keyup' );
+                       $( '.wp-filter-search' ).focus().trigger( 'keyup' );
                });
 
                this.extraRoutes();
                });
 
                this.extraRoutes();
index 8f83f4b75b46db82e6b1fd397dac58fecb1095b9..b3b8a3d076cac5974d1058ee063199a4d434b334 100644 (file)
@@ -1 +1 @@
-window.wp=window.wp||{},function(a){var b,c;b=wp.themes=wp.themes||{},b.data=_wpThemeSettings,c=b.data.l10n,b.isInstall=!!b.data.settings.isInstall,_.extend(b,{model:{},view:{},routes:{},router:{},template:wp.template}),b.Model=Backbone.Model.extend({initialize:function(){var a;-1!==_.indexOf(b.data.installedThemes,this.get("slug"))&&this.set({installed:!0}),this.set({id:this.get("slug")||this.get("id")}),this.has("sections")&&(a=this.get("sections").description,this.set({description:a}))}}),b.view.Appearance=wp.Backbone.View.extend({el:"#wpbody-content .wrap .theme-browser",window:a(window),page:0,initialize:function(a){_.bindAll(this,"scroller"),this.SearchView=a.SearchView?a.SearchView:b.view.Search,this.window.bind("scroll",_.throttle(this.scroller,300))},render:function(){this.view=new b.view.Themes({collection:this.collection,parent:this}),this.search(),this.view.render(),this.$el.empty().append(this.view.el).addClass("rendered"),this.$el.append('<br class="clear"/>')},searchContainer:a("#wpbody h2:first"),search:function(){var d,e=this;1!==b.data.themes.length&&(d=new this.SearchView({collection:e.collection,parent:this}),d.render(),this.searchContainer.append(a.parseHTML('<label class="screen-reader-text" for="theme-search-input">'+c.search+"</label>")).append(d.el))},scroller:function(){var a,b,c=this;a=this.window.scrollTop()+c.window.height(),b=c.$el.offset().top+c.$el.outerHeight(!1)-c.window.height(),b=Math.round(.9*b),a>b&&this.trigger("theme:scroll")}}),b.Collection=Backbone.Collection.extend({model:b.Model,terms:"",doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.reset(b.data.themes),this.trigger("update"))},search:function(a){var c,d,e;this.reset(b.data.themes,{silent:!0}),a=a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),a=a.replace(/ /g,")(?=.*"),c=new RegExp("^(?=.*"+a+").+","i"),d=this.filter(function(b){return e=_.union(b.get("name"),b.get("id"),b.get("description"),b.get("author"),b.get("tags")),c.test(b.get("author"))&&a.length>2&&b.set("displayAuthor",!0),c.test(e)}),this.reset(d)},paginate:function(a){var b=this;return a=a||0,b=_(b.rest(20*a)),b=_(b.first(20))},count:!1,query:function(b){var c,d,e,f=this.queries,g=this;if(this.currentQuery.request=b,c=_.find(f,function(a){return _.isEqual(a.request,b)}),d=_.has(b,"page"),d||(this.currentQuery.page=1),c||d){if(d)return this.apiCall(b,d).done(function(a){g.add(a.themes),g.trigger("query:success"),g.loadingThemes=!1}).fail(function(){g.trigger("query:fail")});0===c.themes.length?g.trigger("query:empty"):a("body").removeClass("no-results"),_.isNumber(c.total)&&(this.count=c.total),this.reset(c.themes),c.total||(this.count=this.length),this.trigger("update"),this.trigger("query:success",this.count)}else c=this.apiCall(b).done(function(a){a.themes&&(g.reset(a.themes),e=a.info.results,f.push({themes:a.themes,request:b,total:e})),g.trigger("update"),g.trigger("query:success",e),a.themes&&0===a.themes.length&&g.trigger("query:empty")}).fail(function(){g.trigger("query:fail")})},queries:[],currentQuery:{page:1,request:{}},apiCall:function(b,c){return wp.ajax.send("query-themes",{data:{request:_.extend({per_page:100,fields:{description:!0,tested:!0,requires:!0,rating:!0,downloaded:!0,downloadLink:!0,last_updated:!0,homepage:!0,num_ratings:!0}},b)},beforeSend:function(){c||a("body").addClass("loading-themes").removeClass("no-results")}})},loadingThemes:!1}),b.view.Theme=wp.Backbone.View.extend({className:"theme",state:"grid",html:b.template("theme"),events:{click:b.isInstall?"preview":"expand","click .preview":"preview",keydown:b.isInstall?"preview":"expand",touchend:b.isInstall?"preview":"expand",keyup:"addFocus",touchmove:"preventExpand"},touchDrag:!1,render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)).attr({tabindex:0,"aria-describedby":a.id+"-action "+a.id+"-name"}),this.activeTheme(),this.model.get("displayAuthor")&&this.$el.addClass("display-author"),this.model.get("installed")&&this.$el.addClass("is-installed")},activeTheme:function(){this.model.get("active")&&this.$el.addClass("active")},addFocus:function(){var b=a(":focus").hasClass("theme")?a(":focus"):a(":focus").parents(".theme");a(".theme.focus").removeClass("focus"),b.addClass("focus")},expand:function(c){var d=this;return c=c||window.event,"keydown"!==c.type||13===c.which||32===c.which?this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).is(".theme-actions a")||(b.focusedTheme=this.$el,this.trigger("theme:expand",d.model.cid))):void 0},preventExpand:function(){this.touchDrag=!0},preview:function(c){var d,e,f=this;return this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).hasClass("button-primary")||("keydown"!==c.type||13===c.which||32===c.which)&&("keydown"===c.type&&13!==c.which&&a(":focus").hasClass("button")||(c.preventDefault(),c=c||window.event,b.focusedTheme=this.$el,e=new b.view.Preview({model:this.model}),e.render(),this.setNavButtonsState(),1===this.model.collection.length?e.$el.addClass("no-navigation"):e.$el.removeClass("no-navigation"),a("div.wrap").append(e.el),this.listenTo(e,"theme:next",function(){return d=f.model,_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)+1),_.isUndefined(f.current)?(f.options.parent.parent.trigger("theme:end"),f.current=d):(e=new b.view.Preview({model:f.current}),e.render(),this.setNavButtonsState(),a("div.wrap").append(e.el),void a(".next-theme").focus())}).listenTo(e,"theme:previous",function(){d=f.model,0!==f.model.collection.indexOf(f.current)&&(_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)-1),_.isUndefined(f.current)||(e=new b.view.Preview({model:f.current}),e.render(),this.setNavButtonsState(),a("div.wrap").append(e.el),a(".previous-theme").focus()))}),this.listenTo(e,"preview:close",function(){f.current=f.model}))))},setNavButtonsState:function(){var b=a(".theme-install-overlay"),c=_.isUndefined(this.current)?this.model:this.current;0===this.model.collection.indexOf(c)&&b.find(".previous-theme").addClass("disabled"),_.isUndefined(this.model.collection.at(this.model.collection.indexOf(c)+1))&&b.find(".next-theme").addClass("disabled")}}),b.view.Details=wp.Backbone.View.extend({className:"theme-overlay",events:{click:"collapse","click .delete-theme":"deleteTheme","click .left":"previousTheme","click .right":"nextTheme"},html:b.template("theme-single"),render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)),this.activeTheme(),this.navigation(),this.screenshotCheck(this.$el),this.containFocus(this.$el)},activeTheme:function(){this.$el.toggleClass("active",this.model.get("active"))},containFocus:function(b){var c;_.delay(function(){a(".theme-wrap a.button-primary:visible").focus()},500),b.on("keydown.wp-themes",function(d){9===d.which&&(c=a(d.target),c.is("button.left")&&d.shiftKey?(b.find(".theme-actions a:last-child").focus(),d.preventDefault()):c.is(".theme-actions a:last-child")&&(b.find("button.left").focus(),d.preventDefault()))})},collapse:function(c){var d,e=this;c=c||window.event,1!==b.data.themes.length&&(a(c.target).is(".theme-backdrop")||a(c.target).is(".close")||27===c.keyCode)&&(a("body").addClass("closing-overlay"),this.$el.fadeOut(130,function(){a("body").removeClass("closing-overlay"),e.closeOverlay(),d=document.body.scrollTop,b.router.navigate(b.router.baseUrl("")),document.body.scrollTop=d,b.focusedTheme&&b.focusedTheme.focus()}))},navigation:function(){this.model.cid===this.model.collection.at(0).cid&&this.$el.find(".left").addClass("disabled"),this.model.cid===this.model.collection.at(this.model.collection.length-1).cid&&this.$el.find(".right").addClass("disabled")},closeOverlay:function(){a("body").removeClass("theme-overlay-open"),this.remove(),this.unbind(),this.trigger("theme:collapse")},deleteTheme:function(){return confirm(b.data.settings.confirmDelete)},nextTheme:function(){var a=this;return a.trigger("theme:next",a.model.cid),!1},previousTheme:function(){var a=this;return a.trigger("theme:previous",a.model.cid),!1},screenshotCheck:function(a){var b,c;b=a.find(".screenshot img"),c=new Image,c.src=b.attr("src"),c.width&&c.width<=300&&a.addClass("small-screenshot")}}),b.view.Preview=b.view.Details.extend({className:"wp-full-overlay expanded",el:".theme-install-overlay",events:{"click .close-full-overlay":"close","click .collapse-sidebar":"collapse","click .previous-theme":"previousTheme","click .next-theme":"nextTheme",keyup:"keyEvent"},html:b.template("theme-preview"),render:function(){var c=this.model.toJSON();this.$el.html(this.html(c)),b.router.navigate(b.router.baseUrl("?theme="+this.model.get("id")),{replace:!0}),this.$el.fadeIn(200,function(){a("body").addClass("theme-installer-active full-overlay-active"),a(".close-full-overlay").focus()})},close:function(){return this.$el.fadeOut(200,function(){a("body").removeClass("theme-installer-active full-overlay-active"),b.focusedTheme&&b.focusedTheme.focus()}),b.router.navigate(b.router.baseUrl("")),this.trigger("preview:close"),this.unbind(),!1},collapse:function(){return this.$el.toggleClass("collapsed").toggleClass("expanded"),!1},keyEvent:function(a){27===a.keyCode&&(this.undelegateEvents(),this.close()),39===a.keyCode&&_.once(this.nextTheme()),37===a.keyCode&&this.previousTheme()}}),b.view.Themes=wp.Backbone.View.extend({className:"themes",$overlay:a("div.theme-overlay"),index:0,count:a(".theme-count"),initialize:function(b){var c=this;this.parent=b.parent,this.setView("grid"),c.currentTheme(),this.listenTo(c.collection,"update",function(){c.parent.page=0,c.currentTheme(),c.render(this)}),this.listenTo(c.collection,"query:success",function(a){c.count.text(_.isNumber(a)?a:c.collection.length)}),this.listenTo(c.collection,"query:empty",function(){a("body").addClass("no-results")}),this.listenTo(this.parent,"theme:scroll",function(){c.renderThemes(c.parent.page)}),this.listenTo(this.parent,"theme:close",function(){c.overlay&&c.overlay.closeOverlay()}),a("body").on("keyup",function(a){c.overlay&&(39===a.keyCode&&c.overlay.nextTheme(),37===a.keyCode&&c.overlay.previousTheme(),27===a.keyCode&&c.overlay.collapse(a))})},render:function(){this.$el.html(""),1===b.data.themes.length&&(this.singleTheme=new b.view.Details({model:this.collection.models[0]}),this.singleTheme.render(),this.$el.addClass("single-theme"),this.$el.append(this.singleTheme.el)),this.options.collection.size()>0&&this.renderThemes(this.parent.page),this.count.text(this.collection.count?this.collection.count:this.collection.length)},renderThemes:function(d){var e=this;return e.instance=e.collection.paginate(d),0===e.instance.size()?void this.parent.trigger("theme:end"):(d>=1&&a(".add-new-theme").remove(),e.instance.each(function(a){e.theme=new b.view.Theme({model:a,parent:e}),e.theme.render(),e.$el.append(e.theme.el),e.listenTo(e.theme,"theme:expand",e.expand,e)}),b.data.settings.canInstall&&this.$el.append('<div class="theme add-new-theme"><a href="'+b.data.settings.installURI+'"><div class="theme-screenshot"><span></span></div><h3 class="theme-name">'+c.addNew+"</h3></a></div>"),void this.parent.page++)},currentTheme:function(){var a,b=this;a=b.collection.findWhere({active:!0}),a&&(b.collection.remove(a),b.collection.add(a,{at:0}))},setView:function(a){return a},expand:function(c){var d=this;this.model=d.collection.get(c),b.router.navigate(b.router.baseUrl("?theme="+this.model.id)),this.setView("detail"),a("body").addClass("theme-overlay-open"),this.overlay=new b.view.Details({model:d.model}),this.overlay.render(),this.$overlay.html(this.overlay.el),this.listenTo(this.overlay,"theme:next",function(){d.next([d.model.cid])}).listenTo(this.overlay,"theme:previous",function(){d.previous([d.model.cid])})},next:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)+1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))},previous:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)-1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))}}),b.view.Search=wp.Backbone.View.extend({tagName:"input",className:"theme-search",id:"theme-search-input",searching:!1,attributes:{placeholder:c.searchPlaceholder,type:"search"},events:{input:"search",keyup:"search",change:"search",search:"search",blur:"pushState"},initialize:function(a){this.parent=a.parent,this.listenTo(this.parent,"theme:close",function(){this.searching=!1})},search:function(a){var c={};"keyup"===a.type&&27===a.which&&(a.target.value=""),13===a.which&&this.$el.trigger("blur"),this.collection.doSearch(a.target.value),this.searching&&13!==a.which?c.replace=!0:this.searching=!0,a.target.value?b.router.navigate(b.router.baseUrl("?search="+a.target.value),c):b.router.navigate(b.router.baseUrl(""))},pushState:function(a){var c=b.router.baseUrl("");a.target.value&&(c=b.router.baseUrl("?search="+a.target.value)),this.searching=!1,b.router.navigate(c)}}),b.Router=Backbone.Router.extend({routes:{"themes.php?theme=:slug":"theme","themes.php?search=:query":"search","themes.php?s=:query":"search","themes.php":"themes","":"themes"},baseUrl:function(a){return"themes.php"+a},search:function(b){a(".theme-search").val(b)},themes:function(){a(".theme-search").val("")},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.Run={init:function(){this.themes=new b.Collection(b.data.themes),this.view=new b.view.Appearance({collection:this.themes}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:b.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var c=this;b.router=new b.Router,b.router.on("route:theme",function(a){c.view.view.expand(a)}),b.router.on("route:themes",function(){c.themes.doSearch(""),c.view.trigger("theme:close")}),b.router.on("route:search",function(){a(".theme-search").trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},b.view.InstallerSearch=b.view.Search.extend({events:{keyup:"search"},search:function(a){("keyup"!==a.type||9!==a.which&&16!==a.which)&&(this.collection=this.options.parent.view.collection,"keyup"===a.type&&27===a.which&&(a.target.value=""),_.debounce(_.bind(this.doSearch,this),300)(a.target.value))},doSearch:_.debounce(function(c){var d={};d.search=c,"author:"===c.substring(0,7)&&(d.search="",d.author=c.slice(7)),"tag:"===c.substring(0,4)&&(d.search="",d.tag=[c.slice(4)]),a(".theme-section.current").removeClass("current"),a("body").removeClass("more-filters-opened filters-applied"),this.collection.query(d),b.router.navigate(b.router.baseUrl("?search="+c),{replace:!0})},300)}),b.view.Installer=b.view.Appearance.extend({el:"#wpbody-content .wrap",events:{"click .theme-section":"onSort","click .theme-filter":"onFilter","click .more-filters":"moreFilters","click .apply-filters":"applyFilters",'click [type="checkbox"]':"addFilter","click .clear-filters":"clearFilters","click .feature-name":"filterSection","click .filtering-by a":"backToFilters"},render:function(){var d=this;this.search(),this.uploader(),this.collection=new b.Collection,this.listenTo(this,"theme:end",function(){d.collection.loadingThemes||(d.collection.loadingThemes=!0,d.collection.currentQuery.page++,_.extend(d.collection.currentQuery.request,{page:d.collection.currentQuery.page}),d.collection.query(d.collection.currentQuery.request))}),this.listenTo(this.collection,"query:success",function(){a("body").removeClass("loading-themes"),a(".theme-browser").find("div.error").remove()}),this.listenTo(this.collection,"query:fail",function(){a("body").removeClass("loading-themes"),a(".theme-browser").find("div.error").remove(),a(".theme-browser").find("div.themes").before('<div class="error"><p>'+c.error+"</p></div>")}),this.view&&this.view.remove(),this.view=new b.view.Themes({collection:this.collection,parent:this}),this.page=0,this.$el.find(".themes").remove(),this.view.render(),this.$el.find(".theme-browser").append(this.view.el).addClass("rendered")},browse:function(a){this.collection.query({browse:a})},onSort:function(c){var d=a(c.target),e=d.data("sort");c.preventDefault(),a("body").removeClass("filters-applied more-filters-opened"),d.hasClass(this.activeClass)||(this.sort(e),b.router.navigate(b.router.baseUrl("?browse="+e)))},sort:function(b){this.clearSearch(),a(".theme-section, .theme-filter").removeClass(this.activeClass),a('[data-sort="'+b+'"]').addClass(this.activeClass),this.browse(b)},onFilter:function(b){var c,d=a(b.target),e=d.data("filter");d.hasClass(this.activeClass)||(a(".theme-filter, .theme-section").removeClass(this.activeClass),d.addClass(this.activeClass),e&&(e=_.union(e,this.filtersChecked()),c={tag:[e]},this.collection.query(c)))},addFilter:function(){this.filtersChecked()},applyFilters:function(b){var c,d=this.filtersChecked(),e={tag:d},f=a(".filtering-by .tags");b&&b.preventDefault(),a("body").addClass("filters-applied"),a(".theme-section.current").removeClass("current"),f.empty(),_.each(d,function(b){c=a('label[for="feature-id-'+b+'"]').text(),f.append('<span class="tag">'+c+"</span>")}),this.collection.query(e)},filtersChecked:function(){var b=a(".feature-group").find(":checkbox"),c=[];return _.each(b.filter(":checked"),function(b){c.push(a(b).prop("value"))}),0===c.length?(a(".apply-filters").find("span").text(""),a(".clear-filters").hide(),a("body").removeClass("filters-applied"),!1):(a(".apply-filters").find("span").text(c.length),a(".clear-filters").css("display","inline-block"),c)},activeClass:"current",searchContainer:a(".theme-navigation"),uploader:function(){a("a.upload").on("click",function(c){c.preventDefault(),a("body").addClass("show-upload-theme"),b.router.navigate(b.router.baseUrl("?upload"),{replace:!0})}),a("a.browse-themes").on("click",function(c){c.preventDefault(),a("body").removeClass("show-upload-theme"),b.router.navigate(b.router.baseUrl(""),{replace:!0})})},moreFilters:function(c){return c.preventDefault(),a("body").hasClass("filters-applied")?this.backToFilters():a("body").hasClass("more-filters-opened")&&this.filtersChecked()?this.addFilter():(this.clearSearch(),b.router.navigate(b.router.baseUrl("")),void a("body").toggleClass("more-filters-opened"))},filterSection:function(){a(event.target).parent().toggleClass("open")},clearFilters:function(b){var c=a(".feature-group").find(":checkbox"),d=this;b.preventDefault(),_.each(c.filter(":checked"),function(b){return a(b).prop("checked",!1),d.filtersChecked()})},backToFilters:function(b){b&&b.preventDefault(),a("body").removeClass("filters-applied")},clearSearch:function(){a("#theme-search-input").val("")}}),b.InstallerRouter=Backbone.Router.extend({routes:{"theme-install.php?theme=:slug":"preview","theme-install.php?browse=:sort":"sort","theme-install.php?upload":"upload","theme-install.php?search=:query":"search","theme-install.php":"sort"},baseUrl:function(a){return"theme-install.php"+a},search:function(b){a(".theme-search").val(b)},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.RunInstaller={init:function(){this.view=new b.view.Installer({section:"featured",SearchView:b.view.InstallerSearch}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:b.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var c=this,d={};b.router=new b.InstallerRouter,b.router.on("route:preview",function(a){d.theme=a,c.view.collection.query(d)}),b.router.on("route:sort",function(a){a||(a="featured"),c.view.sort(a),c.view.trigger("theme:close")}),b.router.on("route:upload",function(){a("a.upload").trigger("click")}),b.router.on("route:search",function(){a(".theme-search").focus().trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},a(document).ready(function(){b.isInstall?b.RunInstaller.init():b.Run.init()})}(jQuery);var tb_position;jQuery(document).ready(function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=c>1040?1040:c,f=0;a("#wpadminbar").length&&(f=parseInt(a("#wpadminbar").css("height"),10)),b.size()&&(b.width(e-50).height(d-45-f),a("#TB_iframeContent").width(e-50).height(d-75-f),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+f+"px","margin-top":"0"}))},a(window).resize(function(){tb_position()})});
\ No newline at end of file
+window.wp=window.wp||{},function(a){var b,c;b=wp.themes=wp.themes||{},b.data=_wpThemeSettings,c=b.data.l10n,b.isInstall=!!b.data.settings.isInstall,_.extend(b,{model:{},view:{},routes:{},router:{},template:wp.template}),b.Model=Backbone.Model.extend({initialize:function(){var a;-1!==_.indexOf(b.data.installedThemes,this.get("slug"))&&this.set({installed:!0}),this.set({id:this.get("slug")||this.get("id")}),this.has("sections")&&(a=this.get("sections").description,this.set({description:a}))}}),b.view.Appearance=wp.Backbone.View.extend({el:"#wpbody-content .wrap .theme-browser",window:a(window),page:0,initialize:function(a){_.bindAll(this,"scroller"),this.SearchView=a.SearchView?a.SearchView:b.view.Search,this.window.bind("scroll",_.throttle(this.scroller,300))},render:function(){this.view=new b.view.Themes({collection:this.collection,parent:this}),this.search(),this.view.render(),this.$el.empty().append(this.view.el).addClass("rendered"),this.$el.append('<br class="clear"/>')},searchContainer:a("#wpbody h2:first"),search:function(){var d,e=this;1!==b.data.themes.length&&(d=new this.SearchView({collection:e.collection,parent:this}),d.render(),this.searchContainer.append(a.parseHTML('<label class="screen-reader-text" for="wp-filter-search-input">'+c.search+"</label>")).append(d.el))},scroller:function(){var a,b,c=this;a=this.window.scrollTop()+c.window.height(),b=c.$el.offset().top+c.$el.outerHeight(!1)-c.window.height(),b=Math.round(.9*b),a>b&&this.trigger("theme:scroll")}}),b.Collection=Backbone.Collection.extend({model:b.Model,terms:"",doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.reset(b.data.themes),this.trigger("update"))},search:function(c){var d,e,f;this.reset(b.data.themes,{silent:!0}),c=c.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),c=c.replace(/ /g,")(?=.*"),d=new RegExp("^(?=.*"+c+").+","i"),e=this.filter(function(a){return f=_.union(a.get("name"),a.get("id"),a.get("description"),a.get("author"),a.get("tags")),d.test(a.get("author"))&&c.length>2&&a.set("displayAuthor",!0),d.test(f)}),0===e.length?this.trigger("query:empty"):a("body").removeClass("no-results"),this.reset(e)},paginate:function(a){var b=this;return a=a||0,b=_(b.rest(20*a)),b=_(b.first(20))},count:!1,query:function(b){var c,d,e,f=this.queries,g=this;if(this.currentQuery.request=b,c=_.find(f,function(a){return _.isEqual(a.request,b)}),d=_.has(b,"page"),d||(this.currentQuery.page=1),c||d){if(d)return this.apiCall(b,d).done(function(a){g.add(a.themes),g.trigger("query:success"),g.loadingThemes=!1}).fail(function(){g.trigger("query:fail")});0===c.themes.length?g.trigger("query:empty"):a("body").removeClass("no-results"),_.isNumber(c.total)&&(this.count=c.total),this.reset(c.themes),c.total||(this.count=this.length),this.trigger("update"),this.trigger("query:success",this.count)}else c=this.apiCall(b).done(function(a){a.themes&&(g.reset(a.themes),e=a.info.results,f.push({themes:a.themes,request:b,total:e})),g.trigger("update"),g.trigger("query:success",e),a.themes&&0===a.themes.length&&g.trigger("query:empty")}).fail(function(){g.trigger("query:fail")})},queries:[],currentQuery:{page:1,request:{}},apiCall:function(b,c){return wp.ajax.send("query-themes",{data:{request:_.extend({per_page:100,fields:{description:!0,tested:!0,requires:!0,rating:!0,downloaded:!0,downloadLink:!0,last_updated:!0,homepage:!0,num_ratings:!0}},b)},beforeSend:function(){c||a("body").addClass("loading-content").removeClass("no-results")}})},loadingThemes:!1}),b.view.Theme=wp.Backbone.View.extend({className:"theme",state:"grid",html:b.template("theme"),events:{click:b.isInstall?"preview":"expand",keydown:b.isInstall?"preview":"expand",touchend:b.isInstall?"preview":"expand",keyup:"addFocus",touchmove:"preventExpand"},touchDrag:!1,render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)).attr({tabindex:0,"aria-describedby":a.id+"-action "+a.id+"-name"}),this.activeTheme(),this.model.get("displayAuthor")&&this.$el.addClass("display-author"),this.model.get("installed")&&this.$el.addClass("is-installed")},activeTheme:function(){this.model.get("active")&&this.$el.addClass("active")},addFocus:function(){var b=a(":focus").hasClass("theme")?a(":focus"):a(":focus").parents(".theme");a(".theme.focus").removeClass("focus"),b.addClass("focus")},expand:function(c){var d=this;return c=c||window.event,"keydown"!==c.type||13===c.which||32===c.which?this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).is(".theme-actions a")||(b.focusedTheme=this.$el,this.trigger("theme:expand",d.model.cid))):void 0},preventExpand:function(){this.touchDrag=!0},preview:function(c){var d,e,f=this;return this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).hasClass("button-primary")||("keydown"!==c.type||13===c.which||32===c.which)&&("keydown"===c.type&&13!==c.which&&a(":focus").hasClass("button")||(c.preventDefault(),c=c||window.event,b.focusedTheme=this.$el,e=new b.view.Preview({model:this.model}),e.render(),this.setNavButtonsState(),1===this.model.collection.length?e.$el.addClass("no-navigation"):e.$el.removeClass("no-navigation"),a("div.wrap").append(e.el),this.listenTo(e,"theme:next",function(){return d=f.model,_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)+1),_.isUndefined(f.current)?(f.options.parent.parent.trigger("theme:end"),f.current=d):(e.model=f.current,e.render(),this.setNavButtonsState(),void a(".next-theme").focus())}).listenTo(e,"theme:previous",function(){d=f.model,0!==f.model.collection.indexOf(f.current)&&(_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)-1),_.isUndefined(f.current)||(e.model=f.current,e.render(),this.setNavButtonsState(),a(".previous-theme").focus()))}),this.listenTo(e,"preview:close",function(){f.current=f.model}))))},setNavButtonsState:function(){var b=a(".theme-install-overlay"),c=_.isUndefined(this.current)?this.model:this.current;0===this.model.collection.indexOf(c)&&b.find(".previous-theme").addClass("disabled"),_.isUndefined(this.model.collection.at(this.model.collection.indexOf(c)+1))&&b.find(".next-theme").addClass("disabled")}}),b.view.Details=wp.Backbone.View.extend({className:"theme-overlay",events:{click:"collapse","click .delete-theme":"deleteTheme","click .left":"previousTheme","click .right":"nextTheme"},html:b.template("theme-single"),render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)),this.activeTheme(),this.navigation(),this.screenshotCheck(this.$el),this.containFocus(this.$el)},activeTheme:function(){this.$el.toggleClass("active",this.model.get("active"))},containFocus:function(b){var c;_.delay(function(){a(".theme-wrap a.button-primary:visible").focus()},500),b.on("keydown.wp-themes",function(d){9===d.which&&(c=a(d.target),c.is("button.left")&&d.shiftKey?(b.find(".theme-actions a:last-child").focus(),d.preventDefault()):c.is(".theme-actions a:last-child")&&(b.find("button.left").focus(),d.preventDefault()))})},collapse:function(c){var d,e=this;c=c||window.event,1!==b.data.themes.length&&(a(c.target).is(".theme-backdrop")||a(c.target).is(".close")||27===c.keyCode)&&(a("body").addClass("closing-overlay"),this.$el.fadeOut(130,function(){a("body").removeClass("closing-overlay"),e.closeOverlay(),d=document.body.scrollTop,b.router.navigate(b.router.baseUrl("")),document.body.scrollTop=d,b.focusedTheme&&b.focusedTheme.focus()}))},navigation:function(){this.model.cid===this.model.collection.at(0).cid&&this.$el.find(".left").addClass("disabled"),this.model.cid===this.model.collection.at(this.model.collection.length-1).cid&&this.$el.find(".right").addClass("disabled")},closeOverlay:function(){a("body").removeClass("modal-open"),this.remove(),this.unbind(),this.trigger("theme:collapse")},deleteTheme:function(){return confirm(b.data.settings.confirmDelete)},nextTheme:function(){var a=this;return a.trigger("theme:next",a.model.cid),!1},previousTheme:function(){var a=this;return a.trigger("theme:previous",a.model.cid),!1},screenshotCheck:function(a){var b,c;b=a.find(".screenshot img"),c=new Image,c.src=b.attr("src"),c.width&&c.width<=300&&a.addClass("small-screenshot")}}),b.view.Preview=b.view.Details.extend({className:"wp-full-overlay expanded",el:".theme-install-overlay",events:{"click .close-full-overlay":"close","click .collapse-sidebar":"collapse","click .previous-theme":"previousTheme","click .next-theme":"nextTheme",keyup:"keyEvent"},html:b.template("theme-preview"),render:function(){var c=this.model.toJSON();this.$el.html(this.html(c)),b.router.navigate(b.router.baseUrl("?theme="+this.model.get("id")),{replace:!0}),this.$el.fadeIn(200,function(){a("body").addClass("theme-installer-active full-overlay-active"),a(".close-full-overlay").focus()})},close:function(){return this.$el.fadeOut(200,function(){a("body").removeClass("theme-installer-active full-overlay-active"),b.focusedTheme&&b.focusedTheme.focus()}),b.router.navigate(b.router.baseUrl("")),this.trigger("preview:close"),this.undelegateEvents(),this.unbind(),!1},collapse:function(){return this.$el.toggleClass("collapsed").toggleClass("expanded"),!1},keyEvent:function(a){27===a.keyCode&&(this.undelegateEvents(),this.close()),39===a.keyCode&&_.once(this.nextTheme()),37===a.keyCode&&this.previousTheme()}}),b.view.Themes=wp.Backbone.View.extend({className:"themes",$overlay:a("div.theme-overlay"),index:0,count:a(".theme-count"),initialize:function(b){var c=this;this.parent=b.parent,this.setView("grid"),c.currentTheme(),this.listenTo(c.collection,"update",function(){c.parent.page=0,c.currentTheme(),c.render(this)}),this.listenTo(c.collection,"query:success",function(a){c.count.text(_.isNumber(a)?a:c.collection.length)}),this.listenTo(c.collection,"query:empty",function(){a("body").addClass("no-results")}),this.listenTo(this.parent,"theme:scroll",function(){c.renderThemes(c.parent.page)}),this.listenTo(this.parent,"theme:close",function(){c.overlay&&c.overlay.closeOverlay()}),a("body").on("keyup",function(a){c.overlay&&(39===a.keyCode&&c.overlay.nextTheme(),37===a.keyCode&&c.overlay.previousTheme(),27===a.keyCode&&c.overlay.collapse(a))})},render:function(){this.$el.html(""),1===b.data.themes.length&&(this.singleTheme=new b.view.Details({model:this.collection.models[0]}),this.singleTheme.render(),this.$el.addClass("single-theme"),this.$el.append(this.singleTheme.el)),this.options.collection.size()>0&&this.renderThemes(this.parent.page),this.count.text(this.collection.count?this.collection.count:this.collection.length)},renderThemes:function(d){var e=this;return e.instance=e.collection.paginate(d),0===e.instance.size()?void this.parent.trigger("theme:end"):(d>=1&&a(".add-new-theme").remove(),e.instance.each(function(a){e.theme=new b.view.Theme({model:a,parent:e}),e.theme.render(),e.$el.append(e.theme.el),e.listenTo(e.theme,"theme:expand",e.expand,e)}),b.data.settings.canInstall&&this.$el.append('<div class="theme add-new-theme"><a href="'+b.data.settings.installURI+'"><div class="theme-screenshot"><span></span></div><h3 class="theme-name">'+c.addNew+"</h3></a></div>"),void this.parent.page++)},currentTheme:function(){var a,b=this;a=b.collection.findWhere({active:!0}),a&&(b.collection.remove(a),b.collection.add(a,{at:0}))},setView:function(a){return a},expand:function(c){var d=this;this.model=d.collection.get(c),b.router.navigate(b.router.baseUrl("?theme="+this.model.id)),this.setView("detail"),a("body").addClass("modal-open"),this.overlay=new b.view.Details({model:d.model}),this.overlay.render(),this.$overlay.html(this.overlay.el),this.listenTo(this.overlay,"theme:next",function(){d.next([d.model.cid])}).listenTo(this.overlay,"theme:previous",function(){d.previous([d.model.cid])})},next:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)+1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))},previous:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)-1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))}}),b.view.Search=wp.Backbone.View.extend({tagName:"input",className:"wp-filter-search",id:"wp-filter-search-input",searching:!1,attributes:{placeholder:c.searchPlaceholder,type:"search"},events:{input:"search",keyup:"search",change:"search",search:"search",blur:"pushState"},initialize:function(a){this.parent=a.parent,this.listenTo(this.parent,"theme:close",function(){this.searching=!1})},search:function(a){var c={};"keyup"===a.type&&27===a.which&&(a.target.value=""),13===a.which&&this.$el.trigger("blur"),this.collection.doSearch(a.target.value),this.searching&&13!==a.which?c.replace=!0:this.searching=!0,a.target.value?b.router.navigate(b.router.baseUrl("?search="+a.target.value),c):b.router.navigate(b.router.baseUrl(""))},pushState:function(a){var c=b.router.baseUrl("");a.target.value&&(c=b.router.baseUrl("?search="+a.target.value)),this.searching=!1,b.router.navigate(c)}}),b.Router=Backbone.Router.extend({routes:{"themes.php?theme=:slug":"theme","themes.php?search=:query":"search","themes.php?s=:query":"search","themes.php":"themes","":"themes"},baseUrl:function(a){return"themes.php"+a},search:function(b){a(".wp-filter-search").val(b)},themes:function(){a(".wp-filter-search").val("")},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.Run={init:function(){this.themes=new b.Collection(b.data.themes),this.view=new b.view.Appearance({collection:this.themes}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:b.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var c=this;b.router=new b.Router,b.router.on("route:theme",function(a){c.view.view.expand(a)}),b.router.on("route:themes",function(){c.themes.doSearch(""),c.view.trigger("theme:close")}),b.router.on("route:search",function(){a(".wp-filter-search").trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},b.view.InstallerSearch=b.view.Search.extend({events:{keyup:"search"},search:function(a){("keyup"!==a.type||9!==a.which&&16!==a.which)&&(this.collection=this.options.parent.view.collection,"keyup"===a.type&&27===a.which&&(a.target.value=""),_.debounce(_.bind(this.doSearch,this),300)(a.target.value))},doSearch:_.debounce(function(c){var d={};d.search=c,"author:"===c.substring(0,7)&&(d.search="",d.author=c.slice(7)),"tag:"===c.substring(0,4)&&(d.search="",d.tag=[c.slice(4)]),a(".filter-links li > a.current").removeClass("current"),a("body").removeClass("show-filters filters-applied"),this.collection.query(d),b.router.navigate(b.router.baseUrl("?search="+c),{replace:!0})},300)}),b.view.Installer=b.view.Appearance.extend({el:"#wpbody-content .wrap",events:{"click .filter-links li > a":"onSort","click .theme-filter":"onFilter","click .drawer-toggle":"moreFilters","click .filter-drawer .apply-filters":"applyFilters",'click .filter-group [type="checkbox"]':"addFilter","click .filter-drawer .clear-filters":"clearFilters","click .filtered-by":"backToFilters"},render:function(){var d=this;this.search(),this.uploader(),this.collection=new b.Collection,this.listenTo(this,"theme:end",function(){d.collection.loadingThemes||(d.collection.loadingThemes=!0,d.collection.currentQuery.page++,_.extend(d.collection.currentQuery.request,{page:d.collection.currentQuery.page}),d.collection.query(d.collection.currentQuery.request))}),this.listenTo(this.collection,"query:success",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove()}),this.listenTo(this.collection,"query:fail",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove(),a(".theme-browser").find("div.themes").before('<div class="error"><p>'+c.error+"</p></div>")}),this.view&&this.view.remove(),this.view=new b.view.Themes({collection:this.collection,parent:this}),this.page=0,this.$el.find(".themes").remove(),this.view.render(),this.$el.find(".theme-browser").append(this.view.el).addClass("rendered")},browse:function(a){this.collection.query({browse:a})},onSort:function(c){var d=a(c.target),e=d.data("sort");c.preventDefault(),a("body").removeClass("filters-applied show-filters"),d.hasClass(this.activeClass)||(this.sort(e),b.router.navigate(b.router.baseUrl("?browse="+e)))},sort:function(b){this.clearSearch(),a(".filter-links li > a, .theme-filter").removeClass(this.activeClass),a('[data-sort="'+b+'"]').addClass(this.activeClass),this.browse(b)},onFilter:function(b){var c,d=a(b.target),e=d.data("filter");d.hasClass(this.activeClass)||(a(".filter-links li > a, .theme-section").removeClass(this.activeClass),d.addClass(this.activeClass),e&&(e=_.union(e,this.filtersChecked()),c={tag:[e]},this.collection.query(c)))},addFilter:function(){this.filtersChecked()},applyFilters:function(b){var c,d=this.filtersChecked(),e={tag:d},f=a(".filtered-by .tags");b&&b.preventDefault(),a("body").addClass("filters-applied"),a(".filter-links li > a.current").removeClass("current"),f.empty(),_.each(d,function(b){c=a('label[for="filter-id-'+b+'"]').text(),f.append('<span class="tag">'+c+"</span>")}),this.collection.query(e)},filtersChecked:function(){var b=a(".filter-group").find(":checkbox"),c=[];return _.each(b.filter(":checked"),function(b){c.push(a(b).prop("value"))}),0===c.length?(a(".filter-drawer .apply-filters").find("span").text(""),a(".filter-drawer .clear-filters").hide(),a("body").removeClass("filters-applied"),!1):(a(".filter-drawer .apply-filters").find("span").text(c.length),a(".filter-drawer .clear-filters").css("display","inline-block"),c)},activeClass:"current",searchContainer:a(".wp-filter .search-form"),uploader:function(){a("a.upload").on("click",function(c){c.preventDefault(),a("body").addClass("show-upload-theme"),b.router.navigate(b.router.baseUrl("?upload"),{replace:!0})}),a("a.browse-themes").on("click",function(c){c.preventDefault(),a("body").removeClass("show-upload-theme"),b.router.navigate(b.router.baseUrl(""),{replace:!0})})},moreFilters:function(c){return c.preventDefault(),a("body").hasClass("filters-applied")?this.backToFilters():a("body").hasClass("show-filters")&&this.filtersChecked()?this.addFilter():(this.clearSearch(),b.router.navigate(b.router.baseUrl("")),void a("body").toggleClass("show-filters"))},clearFilters:function(b){var c=a(".filter-group").find(":checkbox"),d=this;b.preventDefault(),_.each(c.filter(":checked"),function(b){return a(b).prop("checked",!1),d.filtersChecked()})},backToFilters:function(b){b&&b.preventDefault(),a("body").removeClass("filters-applied")},clearSearch:function(){a("#wp-filter-search-input").val("")}}),b.InstallerRouter=Backbone.Router.extend({routes:{"theme-install.php?theme=:slug":"preview","theme-install.php?browse=:sort":"sort","theme-install.php?upload":"upload","theme-install.php?search=:query":"search","theme-install.php":"sort"},baseUrl:function(a){return"theme-install.php"+a},search:function(b){a(".wp-filter-search").val(b)},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.RunInstaller={init:function(){this.view=new b.view.Installer({section:"featured",SearchView:b.view.InstallerSearch}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:b.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var c=this,d={};b.router=new b.InstallerRouter,b.router.on("route:preview",function(a){d.theme=a,c.view.collection.query(d)}),b.router.on("route:sort",function(a){a||(a="featured"),c.view.sort(a),c.view.trigger("theme:close")}),b.router.on("route:upload",function(){a("a.upload").trigger("click")}),b.router.on("route:search",function(){a(".wp-filter-search").focus().trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},a(document).ready(function(){b.isInstall?b.RunInstaller.init():b.Run.init()})}(jQuery);var tb_position;jQuery(document).ready(function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=c>1040?1040:c,f=0;a("#wpadminbar").length&&(f=parseInt(a("#wpadminbar").css("height"),10)),b.size()&&(b.width(e-50).height(d-45-f),a("#TB_iframeContent").width(e-50).height(d-75-f),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+f+"px","margin-top":"0"}))},a(window).resize(function(){tb_position()})});
\ No newline at end of file
index 40b04e3c2c5400a256acb4db74c2d1a949b51dc1..3139c3ef241e54f6478f89d95678c4e980d72a5e 100644 (file)
@@ -32,7 +32,7 @@ window.wp = window.wp || {};
                        $elem = $( '#menu-plugins' );
                        pluginCount = $elem.find( '.plugin-count' ).eq(0).text();
                        pluginCount = parseInt( pluginCount, 10 ) - 1;
                        $elem = $( '#menu-plugins' );
                        pluginCount = $elem.find( '.plugin-count' ).eq(0).text();
                        pluginCount = parseInt( pluginCount, 10 ) - 1;
-                       if ( count < 0 ) {
+                       if ( pluginCount < 0 ) {
                                return;
                        }
                        $elem.find( '.plugin-count' ).text( pluginCount );
                                return;
                        }
                        $elem.find( '.plugin-count' ).text( pluginCount );
index 766fd73010a213a1e6630dce4023de40f6347d3f..63068b198c98dcec30bcbfc7c2e886c2265de3a7 100644 (file)
@@ -1 +1 @@
-window.wp=window.wp||{},function(a,b){b.updates={},b.updates.decrementCount=function(b){var c,d,e;if(e=a("#wp-admin-bar-updates .ab-label"),c=e.text(),c=parseInt(c,10)-1,!(0>c)&&(a("#wp-admin-bar-updates .ab-item").removeAttr("title"),e.text(c),e=a('a[href="update-core.php"] .update-plugins'),e.each(function(a,b){b.className=b.className.replace(/count-\d+/,"count-"+c)}),e.removeAttr("title"),e.find(".update-count").text(c),"plugin"===b)){if(e=a("#menu-plugins"),d=e.find(".plugin-count").eq(0).text(),d=parseInt(d,10)-1,0>c)return;e.find(".plugin-count").text(d),e.find(".update-plugins").each(function(a,b){b.className=b.className.replace(/count-\d+/,"count-"+d)})}},a(window).on("message",function(c){var d,e=c.originalEvent,f=document.location,g=f.protocol+"//"+f.hostname;e.origin===g&&(d=a.parseJSON(e.data),"undefined"!=typeof d.action&&"decrementUpdateCount"===d.action&&b.updates.decrementCount(d.upgradeType))})}(jQuery,window.wp);
\ No newline at end of file
+window.wp=window.wp||{},function(a,b){b.updates={},b.updates.decrementCount=function(b){var c,d,e;if(e=a("#wp-admin-bar-updates .ab-label"),c=e.text(),c=parseInt(c,10)-1,!(0>c)&&(a("#wp-admin-bar-updates .ab-item").removeAttr("title"),e.text(c),e=a('a[href="update-core.php"] .update-plugins'),e.each(function(a,b){b.className=b.className.replace(/count-\d+/,"count-"+c)}),e.removeAttr("title"),e.find(".update-count").text(c),"plugin"===b)){if(e=a("#menu-plugins"),d=e.find(".plugin-count").eq(0).text(),d=parseInt(d,10)-1,0>d)return;e.find(".plugin-count").text(d),e.find(".update-plugins").each(function(a,b){b.className=b.className.replace(/count-\d+/,"count-"+d)})}},a(window).on("message",function(c){var d,e=c.originalEvent,f=document.location,g=f.protocol+"//"+f.hostname;e.origin===g&&(d=a.parseJSON(e.data),"undefined"!=typeof d.action&&"decrementUpdateCount"===d.action&&b.updates.decrementCount(d.upgradeType))})}(jQuery,window.wp);
\ No newline at end of file
index 7390563e4b912d03805f2fe50141584c39658d90..81d2248cc4141b7cba8642ffa3efc76368b36c79 100644 (file)
@@ -50,10 +50,12 @@ wpWidgets = {
                                                css[ margin ] = widgetWidth - ( targetWidth + 30 ) + 'px';
                                                widget.css( css );
                                        }
                                                css[ margin ] = widgetWidth - ( targetWidth + 30 ) + 'px';
                                                widget.css( css );
                                        }
+                                       widget.addClass( 'open' );
                                        inside.slideDown('fast');
                                } else {
                                        inside.slideUp('fast', function() {
                                                widget.attr( 'style', '' );
                                        inside.slideDown('fast');
                                } else {
                                        inside.slideUp('fast', function() {
                                                widget.attr( 'style', '' );
+                                               widget.removeClass( 'open' );
                                        });
                                }
                                e.preventDefault();
                                        });
                                }
                                e.preventDefault();
index 85b2975ad9f764f4dd7e120b110ca8c4393e9165..f301c841f86006d6d5af5a4ea246172c9ce3483d 100644 (file)
@@ -1 +1 @@
-var wpWidgets;!function(a){wpWidgets={init:function(){var b,c,d=this,e=a(".widgets-chooser"),f=e.find(".widgets-chooser-sidebars"),g=a("div.widgets-sortables"),h=!("undefined"==typeof isRtl||!isRtl);a("#widgets-right .sidebar-name").click(function(){var b=a(this),c=b.closest(".widgets-holder-wrap");c.hasClass("closed")?(c.removeClass("closed"),b.parent().sortable("refresh")):c.addClass("closed")}),a("#widgets-left .sidebar-name").click(function(){a(this).closest(".widgets-holder-wrap").toggleClass("closed")}),a(document.body).bind("click.widgets-toggle",function(b){var c,d,e,f,g,i=a(b.target),j={"z-index":100};i.parents(".widget-top").length&&!i.parents("#available-widgets").length?(c=i.closest("div.widget"),d=c.children(".widget-inside"),e=parseInt(c.find("input.widget-width").val(),10),f=c.parent().width(),d.is(":hidden")?(e>250&&e+30>f&&c.closest("div.widgets-sortables").length&&(g=c.closest("div.widget-liquid-right").length?h?"margin-right":"margin-left":h?"margin-left":"margin-right",j[g]=f-(e+30)+"px",c.css(j)),d.slideDown("fast")):d.slideUp("fast",function(){c.attr("style","")}),b.preventDefault()):i.hasClass("widget-control-save")?(wpWidgets.save(i.closest("div.widget"),0,1,0),b.preventDefault()):i.hasClass("widget-control-remove")?(wpWidgets.save(i.closest("div.widget"),1,1,0),b.preventDefault()):i.hasClass("widget-control-close")&&(wpWidgets.close(i.closest("div.widget")),b.preventDefault())}),g.children(".widget").each(function(){var b=a(this);wpWidgets.appendTitle(this),b.find("p.widget-error").length&&b.find("a.widget-action").trigger("click")}),a("#widget-list").children(".widget").draggable({connectToSortable:"div.widgets-sortables",handle:"> .widget-top > .widget-title",distance:2,helper:"clone",zIndex:100,containment:"document",start:function(b,e){var f=a(this).find(".widgets-chooser");e.helper.find("div.widget-description").hide(),c=this.id,f.length&&(a("#wpbody-content").append(f.hide()),e.helper.find(".widgets-chooser").remove(),d.clearWidgetSelection())},stop:function(){b&&a(b).hide(),b=""}}),g.sortable({placeholder:"widget-placeholder",items:"> .widget",handle:"> .widget-top > .widget-title",cursor:"move",distance:2,containment:"document",start:function(b,c){var d,e=a(this),f=e.parent(),g=c.item.children(".widget-inside");"block"===g.css("display")&&(g.hide(),a(this).sortable("refreshPositions")),f.hasClass("closed")||(d=c.item.hasClass("ui-draggable")?e.height():1+e.height(),e.css("min-height",d+"px"))},stop:function(d,e){var f,g,h,i,j,k,l=e.item,m=c;return l.hasClass("deleting")?(wpWidgets.save(l,1,0,1),void l.remove()):(f=l.find("input.add_new").val(),g=l.find("input.multi_number").val(),l.attr("style","").removeClass("ui-draggable"),c="",f&&("multi"===f?(l.html(l.html().replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,g)})),l.attr("id",m.replace("__i__",g)),g++,a("div#"+m).find("input.multi_number").val(g)):"single"===f&&(l.attr("id","new-"+m),b="div#"+m),wpWidgets.save(l,0,0,1),l.find("input.add_new").val(""),a(document).trigger("widget-added",[l])),h=l.parent(),h.parent().hasClass("closed")&&(h.parent().removeClass("closed"),i=h.children(".widget"),i.length>1&&(j=i.get(0),k=l.get(0),j.id&&k.id&&j.id!==k.id&&a(j).before(l))),void(f?l.find("a.widget-action").trigger("click"):wpWidgets.saveOrder(h.attr("id"))))},activate:function(){a(this).parent().addClass("widget-hover")},deactivate:function(){a(this).css("min-height","").parent().removeClass("widget-hover")},receive:function(b,c){var d=a(c.sender);return this.id.indexOf("orphaned_widgets")>-1?void d.sortable("cancel"):void(d.attr("id").indexOf("orphaned_widgets")>-1&&!d.children(".widget").length&&d.parents(".orphan-sidebar").slideUp(400,function(){a(this).remove()}))}}).sortable("option","connectWith","div.widgets-sortables"),a("#available-widgets").droppable({tolerance:"pointer",accept:function(b){return"widget-list"!==a(b).parent().attr("id")},drop:function(b,c){c.draggable.addClass("deleting"),a("#removing-widget").hide().children("span").html("")},over:function(b,c){c.draggable.addClass("deleting"),a("div.widget-placeholder").hide(),c.draggable.hasClass("ui-sortable-helper")&&a("#removing-widget").show().children("span").html(c.draggable.find("div.widget-title").children("h4").html())},out:function(b,c){c.draggable.removeClass("deleting"),a("div.widget-placeholder").show(),a("#removing-widget").hide().children("span").html("")}}),a("#widgets-right .widgets-holder-wrap").each(function(b,c){var d=a(c),e=d.find(".sidebar-name h3").text(),g=d.find(".widgets-sortables").attr("id"),h=a('<li tabindex="0">').text(a.trim(e));0===b&&h.addClass("widgets-chooser-selected"),f.append(h),h.data("sidebarId",g)}),a("#available-widgets .widget .widget-title").on("click.widgets-chooser",function(){var b=a(this).closest(".widget");b.hasClass("widget-in-question")||a("#widgets-left").hasClass("chooser")?d.closeChooser():(d.clearWidgetSelection(),a("#widgets-left").addClass("chooser"),b.addClass("widget-in-question").children(".widget-description").after(e),e.slideDown(300,function(){f.find(".widgets-chooser-selected").focus()}),f.find("li").on("focusin.widgets-chooser",function(){f.find(".widgets-chooser-selected").removeClass("widgets-chooser-selected"),a(this).addClass("widgets-chooser-selected")}))}),e.on("click.widgets-chooser",function(b){var c=a(b.target);c.hasClass("button-primary")?(d.addWidget(e),d.closeChooser()):c.hasClass("button-secondary")&&d.closeChooser()}).on("keyup.widgets-chooser",function(b){b.which===a.ui.keyCode.ENTER?a(b.target).hasClass("button-secondary")?d.closeChooser():(d.addWidget(e),d.closeChooser()):b.which===a.ui.keyCode.ESCAPE&&d.closeChooser()})},saveOrder:function(b){var c={action:"widgets-order",savewidgets:a("#_wpnonce_widgets").val(),sidebars:[]};b&&a("#"+b).find(".spinner:first").css("display","inline-block"),a("div.widgets-sortables").each(function(){a(this).sortable&&(c["sidebars["+a(this).attr("id")+"]"]=a(this).sortable("toArray").join(","))}),a.post(ajaxurl,c,function(){a(".spinner").hide()})},save:function(b,c,d,e){var f,g=b.closest("div.widgets-sortables").attr("id"),h=b.find("form").serialize();b=a(b),a(".spinner",b).show(),f={action:"save-widget",savewidgets:a("#_wpnonce_widgets").val(),sidebar:g},c&&(f.delete_widget=1),h+="&"+a.param(f),a.post(ajaxurl,h,function(f){var g;c?(a("input.widget_number",b).val()||(g=a("input.widget-id",b).val(),a("#available-widgets").find("input.widget-id").each(function(){a(this).val()===g&&a(this).closest("div.widget").show()})),d?(e=0,b.slideUp("fast",function(){a(this).remove(),wpWidgets.saveOrder()})):b.remove()):(a(".spinner").hide(),f&&f.length>2&&(a("div.widget-content",b).html(f),wpWidgets.appendTitle(b),a(document).trigger("widget-updated",[b]))),e&&wpWidgets.saveOrder()})},appendTitle:function(b){var c=a('input[id*="-title"]',b).val()||"";c&&(c=": "+c.replace(/<[^<>]+>/g,"").replace(/</g,"&lt;").replace(/>/g,"&gt;")),a(b).children(".widget-top").children(".widget-title").children().children(".in-widget-title").html(c)},close:function(a){a.children(".widget-inside").slideUp("fast",function(){a.attr("style","")})},addWidget:function(b){var c,d,e,f,g,h,i,j=b.find(".widgets-chooser-selected").data("sidebarId"),k=a("#"+j);c=a("#available-widgets").find(".widget-in-question").clone(),d=c.attr("id"),e=c.find("input.add_new").val(),f=c.find("input.multi_number").val(),c.find(".widgets-chooser").remove(),"multi"===e?(c.html(c.html().replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,f)})),c.attr("id",d.replace("__i__",f)),f++,a("#"+d).find("input.multi_number").val(f)):"single"===e&&(c.attr("id","new-"+d),a("#"+d).hide()),k.closest(".widgets-holder-wrap").removeClass("closed"),k.append(c),k.sortable("refresh"),wpWidgets.save(c,0,0,1),c.find("input.add_new").val(""),a(document).trigger("widget-added",[c]),g=a(window).scrollTop(),h=g+a(window).height(),i=k.offset(),i.bottom=i.top+k.outerHeight(),(g>i.bottom||h<i.top)&&a("html, body").animate({scrollTop:i.top-130},200),window.setTimeout(function(){c.find(".widget-title").trigger("click")},250)},closeChooser:function(){var b=this;a(".widgets-chooser").slideUp(200,function(){a("#wpbody-content").append(this),b.clearWidgetSelection()})},clearWidgetSelection:function(){a("#widgets-left").removeClass("chooser"),a(".widget-in-question").removeClass("widget-in-question")}},a(document).ready(function(){wpWidgets.init()})}(jQuery);
\ No newline at end of file
+var wpWidgets;!function(a){wpWidgets={init:function(){var b,c,d=this,e=a(".widgets-chooser"),f=e.find(".widgets-chooser-sidebars"),g=a("div.widgets-sortables"),h=!("undefined"==typeof isRtl||!isRtl);a("#widgets-right .sidebar-name").click(function(){var b=a(this),c=b.closest(".widgets-holder-wrap");c.hasClass("closed")?(c.removeClass("closed"),b.parent().sortable("refresh")):c.addClass("closed")}),a("#widgets-left .sidebar-name").click(function(){a(this).closest(".widgets-holder-wrap").toggleClass("closed")}),a(document.body).bind("click.widgets-toggle",function(b){var c,d,e,f,g,i=a(b.target),j={"z-index":100};i.parents(".widget-top").length&&!i.parents("#available-widgets").length?(c=i.closest("div.widget"),d=c.children(".widget-inside"),e=parseInt(c.find("input.widget-width").val(),10),f=c.parent().width(),d.is(":hidden")?(e>250&&e+30>f&&c.closest("div.widgets-sortables").length&&(g=c.closest("div.widget-liquid-right").length?h?"margin-right":"margin-left":h?"margin-left":"margin-right",j[g]=f-(e+30)+"px",c.css(j)),c.addClass("open"),d.slideDown("fast")):d.slideUp("fast",function(){c.attr("style",""),c.removeClass("open")}),b.preventDefault()):i.hasClass("widget-control-save")?(wpWidgets.save(i.closest("div.widget"),0,1,0),b.preventDefault()):i.hasClass("widget-control-remove")?(wpWidgets.save(i.closest("div.widget"),1,1,0),b.preventDefault()):i.hasClass("widget-control-close")&&(wpWidgets.close(i.closest("div.widget")),b.preventDefault())}),g.children(".widget").each(function(){var b=a(this);wpWidgets.appendTitle(this),b.find("p.widget-error").length&&b.find("a.widget-action").trigger("click")}),a("#widget-list").children(".widget").draggable({connectToSortable:"div.widgets-sortables",handle:"> .widget-top > .widget-title",distance:2,helper:"clone",zIndex:100,containment:"document",start:function(b,e){var f=a(this).find(".widgets-chooser");e.helper.find("div.widget-description").hide(),c=this.id,f.length&&(a("#wpbody-content").append(f.hide()),e.helper.find(".widgets-chooser").remove(),d.clearWidgetSelection())},stop:function(){b&&a(b).hide(),b=""}}),g.sortable({placeholder:"widget-placeholder",items:"> .widget",handle:"> .widget-top > .widget-title",cursor:"move",distance:2,containment:"document",start:function(b,c){var d,e=a(this),f=e.parent(),g=c.item.children(".widget-inside");"block"===g.css("display")&&(g.hide(),a(this).sortable("refreshPositions")),f.hasClass("closed")||(d=c.item.hasClass("ui-draggable")?e.height():1+e.height(),e.css("min-height",d+"px"))},stop:function(d,e){var f,g,h,i,j,k,l=e.item,m=c;return l.hasClass("deleting")?(wpWidgets.save(l,1,0,1),void l.remove()):(f=l.find("input.add_new").val(),g=l.find("input.multi_number").val(),l.attr("style","").removeClass("ui-draggable"),c="",f&&("multi"===f?(l.html(l.html().replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,g)})),l.attr("id",m.replace("__i__",g)),g++,a("div#"+m).find("input.multi_number").val(g)):"single"===f&&(l.attr("id","new-"+m),b="div#"+m),wpWidgets.save(l,0,0,1),l.find("input.add_new").val(""),a(document).trigger("widget-added",[l])),h=l.parent(),h.parent().hasClass("closed")&&(h.parent().removeClass("closed"),i=h.children(".widget"),i.length>1&&(j=i.get(0),k=l.get(0),j.id&&k.id&&j.id!==k.id&&a(j).before(l))),void(f?l.find("a.widget-action").trigger("click"):wpWidgets.saveOrder(h.attr("id"))))},activate:function(){a(this).parent().addClass("widget-hover")},deactivate:function(){a(this).css("min-height","").parent().removeClass("widget-hover")},receive:function(b,c){var d=a(c.sender);return this.id.indexOf("orphaned_widgets")>-1?void d.sortable("cancel"):void(d.attr("id").indexOf("orphaned_widgets")>-1&&!d.children(".widget").length&&d.parents(".orphan-sidebar").slideUp(400,function(){a(this).remove()}))}}).sortable("option","connectWith","div.widgets-sortables"),a("#available-widgets").droppable({tolerance:"pointer",accept:function(b){return"widget-list"!==a(b).parent().attr("id")},drop:function(b,c){c.draggable.addClass("deleting"),a("#removing-widget").hide().children("span").html("")},over:function(b,c){c.draggable.addClass("deleting"),a("div.widget-placeholder").hide(),c.draggable.hasClass("ui-sortable-helper")&&a("#removing-widget").show().children("span").html(c.draggable.find("div.widget-title").children("h4").html())},out:function(b,c){c.draggable.removeClass("deleting"),a("div.widget-placeholder").show(),a("#removing-widget").hide().children("span").html("")}}),a("#widgets-right .widgets-holder-wrap").each(function(b,c){var d=a(c),e=d.find(".sidebar-name h3").text(),g=d.find(".widgets-sortables").attr("id"),h=a('<li tabindex="0">').text(a.trim(e));0===b&&h.addClass("widgets-chooser-selected"),f.append(h),h.data("sidebarId",g)}),a("#available-widgets .widget .widget-title").on("click.widgets-chooser",function(){var b=a(this).closest(".widget");b.hasClass("widget-in-question")||a("#widgets-left").hasClass("chooser")?d.closeChooser():(d.clearWidgetSelection(),a("#widgets-left").addClass("chooser"),b.addClass("widget-in-question").children(".widget-description").after(e),e.slideDown(300,function(){f.find(".widgets-chooser-selected").focus()}),f.find("li").on("focusin.widgets-chooser",function(){f.find(".widgets-chooser-selected").removeClass("widgets-chooser-selected"),a(this).addClass("widgets-chooser-selected")}))}),e.on("click.widgets-chooser",function(b){var c=a(b.target);c.hasClass("button-primary")?(d.addWidget(e),d.closeChooser()):c.hasClass("button-secondary")&&d.closeChooser()}).on("keyup.widgets-chooser",function(b){b.which===a.ui.keyCode.ENTER?a(b.target).hasClass("button-secondary")?d.closeChooser():(d.addWidget(e),d.closeChooser()):b.which===a.ui.keyCode.ESCAPE&&d.closeChooser()})},saveOrder:function(b){var c={action:"widgets-order",savewidgets:a("#_wpnonce_widgets").val(),sidebars:[]};b&&a("#"+b).find(".spinner:first").css("display","inline-block"),a("div.widgets-sortables").each(function(){a(this).sortable&&(c["sidebars["+a(this).attr("id")+"]"]=a(this).sortable("toArray").join(","))}),a.post(ajaxurl,c,function(){a(".spinner").hide()})},save:function(b,c,d,e){var f,g=b.closest("div.widgets-sortables").attr("id"),h=b.find("form").serialize();b=a(b),a(".spinner",b).show(),f={action:"save-widget",savewidgets:a("#_wpnonce_widgets").val(),sidebar:g},c&&(f.delete_widget=1),h+="&"+a.param(f),a.post(ajaxurl,h,function(f){var g;c?(a("input.widget_number",b).val()||(g=a("input.widget-id",b).val(),a("#available-widgets").find("input.widget-id").each(function(){a(this).val()===g&&a(this).closest("div.widget").show()})),d?(e=0,b.slideUp("fast",function(){a(this).remove(),wpWidgets.saveOrder()})):b.remove()):(a(".spinner").hide(),f&&f.length>2&&(a("div.widget-content",b).html(f),wpWidgets.appendTitle(b),a(document).trigger("widget-updated",[b]))),e&&wpWidgets.saveOrder()})},appendTitle:function(b){var c=a('input[id*="-title"]',b).val()||"";c&&(c=": "+c.replace(/<[^<>]+>/g,"").replace(/</g,"&lt;").replace(/>/g,"&gt;")),a(b).children(".widget-top").children(".widget-title").children().children(".in-widget-title").html(c)},close:function(a){a.children(".widget-inside").slideUp("fast",function(){a.attr("style","")})},addWidget:function(b){var c,d,e,f,g,h,i,j=b.find(".widgets-chooser-selected").data("sidebarId"),k=a("#"+j);c=a("#available-widgets").find(".widget-in-question").clone(),d=c.attr("id"),e=c.find("input.add_new").val(),f=c.find("input.multi_number").val(),c.find(".widgets-chooser").remove(),"multi"===e?(c.html(c.html().replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,f)})),c.attr("id",d.replace("__i__",f)),f++,a("#"+d).find("input.multi_number").val(f)):"single"===e&&(c.attr("id","new-"+d),a("#"+d).hide()),k.closest(".widgets-holder-wrap").removeClass("closed"),k.append(c),k.sortable("refresh"),wpWidgets.save(c,0,0,1),c.find("input.add_new").val(""),a(document).trigger("widget-added",[c]),g=a(window).scrollTop(),h=g+a(window).height(),i=k.offset(),i.bottom=i.top+k.outerHeight(),(g>i.bottom||h<i.top)&&a("html, body").animate({scrollTop:i.top-130},200),window.setTimeout(function(){c.find(".widget-title").trigger("click")},250)},closeChooser:function(){var b=this;a(".widgets-chooser").slideUp(200,function(){a("#wpbody-content").append(this),b.clearWidgetSelection()})},clearWidgetSelection:function(){a("#widgets-left").removeClass("chooser"),a(".widget-in-question").removeClass("widget-in-question")}},a(document).ready(function(){wpWidgets.init()})}(jQuery);
\ No newline at end of file
index 6ce373e3917fc4904edb2c82b0d92c80f5fe9f65..de73060ae5e912187c46f89d40f4fd07267102e1 100644 (file)
                                }
                        });
 
                                }
                        });
 
-                       $document.on( 'keydown.wp-fullscreen', function( event ) {
-                               if ( 27 === event.which && s.visible ) { // Esc
+                       $( window ).on( 'keydown.wp-fullscreen', function( event ) {
+                               // Turn fullscreen off when Esc is pressed.
+                               if ( 27 === event.keyCode && s.visible ) {
                                        api.off();
                                        event.stopImmediatePropagation();
                                }
                                        api.off();
                                        event.stopImmediatePropagation();
                                }
index 60514879a46e52f925871a11f935c9ca94995c7e..54044868df88b5030637d72922d15c477902685d 100644 (file)
@@ -1 +1 @@
-!function(a,b){function c(){m.removeClass("wp-dfw-show-ui")}function d(b){g.$dfwWrap.parents().each(function(c,d){var e,f=a(d);return b?(d.style.position&&f.data("wp-dfw-css-position",d.style.position),f.css("position","static")):(e=f.data("wp-dfw-css-position"),e=e||"",f.css("position",e)),"BODY"===d.nodeName?!1:void 0})}var e,f,g,h,i,j,k=0,l="transitionend webkitTransitionEnd",m=a(document.body),n=a(document);j=function(){this.topics={},this.subscribe=function(a,b){return this.topics[a]||(this.topics[a]=[]),this.topics[a].push(b),b},this.unsubscribe=function(a,b){var c,d,e=this.topics[a];if(!e)return b||[];if(b){for(c=0,d=e.length;d>c;c++)b==e[c]&&e.splice(c,1);return b}return this.topics[a]=[],e},this.publish=function(a,b){var c,d,e,f=this.topics[a];if(f){for(b=b||[],c=0,d=f.length;d>c;c++)e=f[c].apply(null,b)===!1||e;return!e}}},e={},f=e.pubsub=new j,g=e.settings={visible:!1,mode:"tinymce",id:"",title_id:"",timer:0,toolbar_shown:!1},h=e.toggleUI=function(a){clearTimeout(i),m.hasClass("wp-dfw-show-ui")&&"show"!==a?"autohide"!==a&&m.removeClass("wp-dfw-show-ui"):m.addClass("wp-dfw-show-ui"),"autohide"===a&&(i=setTimeout(c,2e3))},e.on=function(){var c,d,f;if(!g.visible){if(g.$fullscreenFader||e.ui.init(),"object"==typeof b.wp_fullscreen_settings&&a.extend(g,b.wp_fullscreen_settings),c=g.id||b.wpActiveEditor,!c){if(!g.hasTinymce)return;c=tinymce.activeEditor.id}g.id=c,d=g.$dfwWrap=a("#wp-"+c+"-wrap"),d.length&&(g.$dfwTextarea=a("#"+c),g.$editorContainer=d.find(".wp-editor-container"),k=n.scrollTop(),g.hasTinymce&&(g.editor=tinymce.get(c)),g.editor&&!g.editor.isHidden()?(g.origHeight=a("#"+c+"_ifr").height(),g.mode="tinymce"):(g.origHeight=g.$dfwTextarea.height(),g.mode="html"),f="undefined"==typeof b.adminpage||"post-php"!==b.adminpage&&"post-new-php"!==b.adminpage?c+"-title":"title",g.$dfwTitle=a("#"+f),g.$dfwTitle.length||(g.$dfwTitle=null),e.ui.fade("show","showing","shown"))}},e.off=function(){g.visible&&e.ui.fade("hide","hiding","hidden")},e.switchmode=function(a){var b=g.mode;return a&&g.visible&&g.hasTinymce&&"undefined"!=typeof switchEditors?b==a?b:("tinymce"!==a||g.editor||(g.editor=tinymce.get(g.id),!g.editor&&"undefined"!=typeof tinyMCEPreInit&&tinyMCEPreInit.mceInit&&tinyMCEPreInit.mceInit[g.id]&&(tinyMCEPreInit.mceInit[g.id].wp_fullscreen=!0)),g.mode=a,switchEditors.go(g.id,a),e.refreshButtons(!0),"html"===a&&setTimeout(e.resizeTextarea,200),a):b},e.save=function(){var c=a("#hiddenaction"),d=c.val(),e=a("#wp-fullscreen-save .spinner"),f=a("#wp-fullscreen-save .wp-fullscreen-saved-message"),h=a("#wp-fullscreen-save .wp-fullscreen-error-message");e.show(),h.hide(),f.hide(),c.val("wp-fullscreen-save-post"),g.editor&&!g.editor.isHidden()&&g.editor.save(),a.ajax({url:b.ajaxurl,type:"post",data:a("form#post").serialize(),dataType:"json"}).done(function(b){e.hide(),b&&b.success?(f.show(),setTimeout(function(){f.fadeOut(300)},3e3),b.data&&b.data.last_edited&&a("#wp-fullscreen-save input").attr("title",b.data.last_edited)):h.show()}).fail(function(){e.hide(),h.show()}),c.val(d)},e.dfwWidth=function(b,c){var d;return b&&-1!==b.toString().indexOf("%")?(g.$editorContainer.css("width",b),g.$statusbar.css("width",b),void(g.$dfwTitle&&g.$dfwTitle.css("width",b))):b?(c?d=b:(d=g.$editorContainer.width(),d+=b),void(200>d||d>1200||(g.$editorContainer.width(d),g.$statusbar.width(d),g.$dfwTitle&&g.$dfwTitle.width(d-16),setUserSetting("dfw_width",d)))):(d=a("#wp-fullscreen-body").data("theme-width")||800,g.$editorContainer.width(d),g.$statusbar.width(d),g.$dfwTitle&&g.$dfwTitle.width(d-16),void deleteUserSetting("dfw_width"))},f.subscribe("show",function(){var b=a("#last-edit").text();b&&a("#wp-fullscreen-save input").attr("title",b)}),f.subscribe("showing",function(){m.addClass("wp-fullscreen-active"),g.$dfwWrap.addClass("wp-fullscreen-wrap"),g.$dfwTitle&&(g.$dfwTitle.after('<span id="wp-fullscreen-title-placeholder">'),g.$dfwWrap.prepend(g.$dfwTitle.addClass("wp-fullscreen-title"))),e.refreshButtons(),d(!0),a("#wpadminbar").hide(),h("autohide"),e.bind_resize(),g.editor&&g.editor.execCommand("wpFullScreenOn"),"ontouchstart"in b?e.dfwWidth("90%"):e.dfwWidth(a("#wp-fullscreen-body").data("dfw-width")||800,!0),scrollTo(0,0)}),f.subscribe("shown",function(){g.visible=!0,g.editor&&!g.editor.isHidden()?g.editor.execCommand("wpAutoResize"):e.resizeTextarea("force")}),f.subscribe("hide",function(){n.unbind(".fullscreen"),g.$dfwTextarea.unbind(".wp-dfw-resize")}),f.subscribe("hiding",function(){m.removeClass("wp-fullscreen-active"),g.$dfwTitle&&a("#wp-fullscreen-title-placeholder").before(g.$dfwTitle.removeClass("wp-fullscreen-title").css("width","")).remove(),g.$dfwWrap.removeClass("wp-fullscreen-wrap"),g.$editorContainer.css("width",""),g.$dfwTextarea.add("#"+g.id+"_ifr").height(g.origHeight),g.editor&&g.editor.execCommand("wpFullScreenOff"),d(!1),b.scrollTo(0,k),a("#wpadminbar").show()}),f.subscribe("hidden",function(){g.visible=!1}),e.refreshButtons=function(b){"html"===g.mode?(a("#wp-fullscreen-mode-bar").removeClass("wp-tmce-mode").addClass("wp-html-mode").find("a").removeClass("active").filter(".wp-fullscreen-mode-html").addClass("active"),b?a("#wp-fullscreen-button-bar").fadeOut(150,function(){a(this).addClass("wp-html-mode").fadeIn(150)}):a("#wp-fullscreen-button-bar").addClass("wp-html-mode")):"tinymce"===g.mode&&(a("#wp-fullscreen-mode-bar").removeClass("wp-html-mode").addClass("wp-tmce-mode").find("a").removeClass("active").filter(".wp-fullscreen-mode-tinymce").addClass("active"),b?a("#wp-fullscreen-button-bar").fadeOut(150,function(){a(this).removeClass("wp-html-mode").fadeIn(150)}):a("#wp-fullscreen-button-bar").removeClass("wp-html-mode"))},e.ui={init:function(){var c;g.toolbar=c=a("#fullscreen-topbar"),g.$fullscreenFader=a("#fullscreen-fader"),g.$statusbar=a("#wp-fullscreen-status"),g.hasTinymce="undefined"!=typeof tinymce,g.hasTinymce||a("#wp-fullscreen-mode-bar").hide(),n.keyup(function(a){var b,c=a.keyCode||a.charCode;g.visible&&(b=navigator.platform&&-1!==navigator.platform.indexOf("Mac")?a.ctrlKey:a.altKey,!b||61!==c&&107!==c&&187!==c||(e.dfwWidth(25),a.preventDefault()),!b||45!==c&&109!==c&&189!==c||(e.dfwWidth(-25),a.preventDefault()),b&&48===c&&(e.dfwWidth(0),a.preventDefault()))}),n.on("keydown.wp-fullscreen",function(a){27===a.which&&g.visible&&(e.off(),a.stopImmediatePropagation())}),"ontouchstart"in b&&m.addClass("wp-dfw-touch"),c.on("mouseenter",function(){h("show")}).on("mouseleave",function(){h("autohide")}),a("#wp-fullscreen-buttons").on("click.wp-fullscreen","button",function(a){var c=a.currentTarget.id?a.currentTarget.id.substr(6):null;if(g.editor&&"tinymce"===g.mode)switch(c){case"bold":g.editor.execCommand("Bold");break;case"italic":g.editor.execCommand("Italic");break;case"bullist":g.editor.execCommand("InsertUnorderedList");break;case"numlist":g.editor.execCommand("InsertOrderedList");break;case"link":g.editor.execCommand("WP_Link");break;case"unlink":g.editor.execCommand("unlink");break;case"help":g.editor.execCommand("WP_Help");break;case"blockquote":g.editor.execCommand("mceBlockQuote")}else"link"===c&&b.wpLink&&b.wpLink.open();"wp-media-library"===c&&"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(g.id)})},fade:function(a,b,c){g.$fullscreenFader||e.ui.init(),(!a||f.publish(a))&&e.fade.In(g.$fullscreenFader,200,function(){b&&f.publish(b),e.fade.Out(g.$fullscreenFader,200,function(){c&&f.publish(c)})})}},e.fade={sensitivity:100,In:function(b,c,d,f){if(d=d||a.noop,c=c||400,f=f||!1,e.fade.transitions){if(b.is(":visible"))return b.addClass("fade-trigger"),b;b.show(),b.first().one(l,function(){d()}),setTimeout(function(){b.addClass("fade-trigger")},this.sensitivity)}else f&&b.stop(),b.css("opacity",1),b.first().fadeIn(c,d),b.length>1&&b.not(":first").fadeIn(c);return b},Out:function(b,c,d,f){return d=d||a.noop,c=c||400,f=f||!1,b.is(":visible")?(e.fade.transitions?(b.first().one(l,function(){b.hasClass("fade-trigger")||(b.hide(),d())}),setTimeout(function(){b.removeClass("fade-trigger")},this.sensitivity)):(f&&b.stop(),b.first().fadeOut(c,d),b.length>1&&b.not(":first").fadeOut(c)),b):b},transitions:function(){var a=document.documentElement.style;return"string"==typeof a.WebkitTransition||"string"==typeof a.MozTransition||"string"==typeof a.OTransition||"string"==typeof a.transition}()},e.bind_resize=function(){g.$dfwTextarea.on("keydown.wp-dfw-resize click.wp-dfw-resize paste.wp-dfw-resize",function(){e.resizeTextarea()})},e.resizeTextarea=function(){var a=g.$dfwTextarea[0];a.scrollHeight>a.clientHeight&&(a.style.height=a.scrollHeight+50+"px")},b.wp=b.wp||{},b.wp.editor=b.wp.editor||{},b.wp.editor.fullscreen=e}(jQuery,window);
\ No newline at end of file
+!function(a,b){function c(){m.removeClass("wp-dfw-show-ui")}function d(b){g.$dfwWrap.parents().each(function(c,d){var e,f=a(d);return b?(d.style.position&&f.data("wp-dfw-css-position",d.style.position),f.css("position","static")):(e=f.data("wp-dfw-css-position"),e=e||"",f.css("position",e)),"BODY"===d.nodeName?!1:void 0})}var e,f,g,h,i,j,k=0,l="transitionend webkitTransitionEnd",m=a(document.body),n=a(document);j=function(){this.topics={},this.subscribe=function(a,b){return this.topics[a]||(this.topics[a]=[]),this.topics[a].push(b),b},this.unsubscribe=function(a,b){var c,d,e=this.topics[a];if(!e)return b||[];if(b){for(c=0,d=e.length;d>c;c++)b==e[c]&&e.splice(c,1);return b}return this.topics[a]=[],e},this.publish=function(a,b){var c,d,e,f=this.topics[a];if(f){for(b=b||[],c=0,d=f.length;d>c;c++)e=f[c].apply(null,b)===!1||e;return!e}}},e={},f=e.pubsub=new j,g=e.settings={visible:!1,mode:"tinymce",id:"",title_id:"",timer:0,toolbar_shown:!1},h=e.toggleUI=function(a){clearTimeout(i),m.hasClass("wp-dfw-show-ui")&&"show"!==a?"autohide"!==a&&m.removeClass("wp-dfw-show-ui"):m.addClass("wp-dfw-show-ui"),"autohide"===a&&(i=setTimeout(c,2e3))},e.on=function(){var c,d,f;if(!g.visible){if(g.$fullscreenFader||e.ui.init(),"object"==typeof b.wp_fullscreen_settings&&a.extend(g,b.wp_fullscreen_settings),c=g.id||b.wpActiveEditor,!c){if(!g.hasTinymce)return;c=tinymce.activeEditor.id}g.id=c,d=g.$dfwWrap=a("#wp-"+c+"-wrap"),d.length&&(g.$dfwTextarea=a("#"+c),g.$editorContainer=d.find(".wp-editor-container"),k=n.scrollTop(),g.hasTinymce&&(g.editor=tinymce.get(c)),g.editor&&!g.editor.isHidden()?(g.origHeight=a("#"+c+"_ifr").height(),g.mode="tinymce"):(g.origHeight=g.$dfwTextarea.height(),g.mode="html"),f="undefined"==typeof b.adminpage||"post-php"!==b.adminpage&&"post-new-php"!==b.adminpage?c+"-title":"title",g.$dfwTitle=a("#"+f),g.$dfwTitle.length||(g.$dfwTitle=null),e.ui.fade("show","showing","shown"))}},e.off=function(){g.visible&&e.ui.fade("hide","hiding","hidden")},e.switchmode=function(a){var b=g.mode;return a&&g.visible&&g.hasTinymce&&"undefined"!=typeof switchEditors?b==a?b:("tinymce"!==a||g.editor||(g.editor=tinymce.get(g.id),!g.editor&&"undefined"!=typeof tinyMCEPreInit&&tinyMCEPreInit.mceInit&&tinyMCEPreInit.mceInit[g.id]&&(tinyMCEPreInit.mceInit[g.id].wp_fullscreen=!0)),g.mode=a,switchEditors.go(g.id,a),e.refreshButtons(!0),"html"===a&&setTimeout(e.resizeTextarea,200),a):b},e.save=function(){var c=a("#hiddenaction"),d=c.val(),e=a("#wp-fullscreen-save .spinner"),f=a("#wp-fullscreen-save .wp-fullscreen-saved-message"),h=a("#wp-fullscreen-save .wp-fullscreen-error-message");e.show(),h.hide(),f.hide(),c.val("wp-fullscreen-save-post"),g.editor&&!g.editor.isHidden()&&g.editor.save(),a.ajax({url:b.ajaxurl,type:"post",data:a("form#post").serialize(),dataType:"json"}).done(function(b){e.hide(),b&&b.success?(f.show(),setTimeout(function(){f.fadeOut(300)},3e3),b.data&&b.data.last_edited&&a("#wp-fullscreen-save input").attr("title",b.data.last_edited)):h.show()}).fail(function(){e.hide(),h.show()}),c.val(d)},e.dfwWidth=function(b,c){var d;return b&&-1!==b.toString().indexOf("%")?(g.$editorContainer.css("width",b),g.$statusbar.css("width",b),void(g.$dfwTitle&&g.$dfwTitle.css("width",b))):b?(c?d=b:(d=g.$editorContainer.width(),d+=b),void(200>d||d>1200||(g.$editorContainer.width(d),g.$statusbar.width(d),g.$dfwTitle&&g.$dfwTitle.width(d-16),setUserSetting("dfw_width",d)))):(d=a("#wp-fullscreen-body").data("theme-width")||800,g.$editorContainer.width(d),g.$statusbar.width(d),g.$dfwTitle&&g.$dfwTitle.width(d-16),void deleteUserSetting("dfw_width"))},f.subscribe("show",function(){var b=a("#last-edit").text();b&&a("#wp-fullscreen-save input").attr("title",b)}),f.subscribe("showing",function(){m.addClass("wp-fullscreen-active"),g.$dfwWrap.addClass("wp-fullscreen-wrap"),g.$dfwTitle&&(g.$dfwTitle.after('<span id="wp-fullscreen-title-placeholder">'),g.$dfwWrap.prepend(g.$dfwTitle.addClass("wp-fullscreen-title"))),e.refreshButtons(),d(!0),a("#wpadminbar").hide(),h("autohide"),e.bind_resize(),g.editor&&g.editor.execCommand("wpFullScreenOn"),"ontouchstart"in b?e.dfwWidth("90%"):e.dfwWidth(a("#wp-fullscreen-body").data("dfw-width")||800,!0),scrollTo(0,0)}),f.subscribe("shown",function(){g.visible=!0,g.editor&&!g.editor.isHidden()?g.editor.execCommand("wpAutoResize"):e.resizeTextarea("force")}),f.subscribe("hide",function(){n.unbind(".fullscreen"),g.$dfwTextarea.unbind(".wp-dfw-resize")}),f.subscribe("hiding",function(){m.removeClass("wp-fullscreen-active"),g.$dfwTitle&&a("#wp-fullscreen-title-placeholder").before(g.$dfwTitle.removeClass("wp-fullscreen-title").css("width","")).remove(),g.$dfwWrap.removeClass("wp-fullscreen-wrap"),g.$editorContainer.css("width",""),g.$dfwTextarea.add("#"+g.id+"_ifr").height(g.origHeight),g.editor&&g.editor.execCommand("wpFullScreenOff"),d(!1),b.scrollTo(0,k),a("#wpadminbar").show()}),f.subscribe("hidden",function(){g.visible=!1}),e.refreshButtons=function(b){"html"===g.mode?(a("#wp-fullscreen-mode-bar").removeClass("wp-tmce-mode").addClass("wp-html-mode").find("a").removeClass("active").filter(".wp-fullscreen-mode-html").addClass("active"),b?a("#wp-fullscreen-button-bar").fadeOut(150,function(){a(this).addClass("wp-html-mode").fadeIn(150)}):a("#wp-fullscreen-button-bar").addClass("wp-html-mode")):"tinymce"===g.mode&&(a("#wp-fullscreen-mode-bar").removeClass("wp-html-mode").addClass("wp-tmce-mode").find("a").removeClass("active").filter(".wp-fullscreen-mode-tinymce").addClass("active"),b?a("#wp-fullscreen-button-bar").fadeOut(150,function(){a(this).removeClass("wp-html-mode").fadeIn(150)}):a("#wp-fullscreen-button-bar").removeClass("wp-html-mode"))},e.ui={init:function(){var c;g.toolbar=c=a("#fullscreen-topbar"),g.$fullscreenFader=a("#fullscreen-fader"),g.$statusbar=a("#wp-fullscreen-status"),g.hasTinymce="undefined"!=typeof tinymce,g.hasTinymce||a("#wp-fullscreen-mode-bar").hide(),n.keyup(function(a){var b,c=a.keyCode||a.charCode;g.visible&&(b=navigator.platform&&-1!==navigator.platform.indexOf("Mac")?a.ctrlKey:a.altKey,!b||61!==c&&107!==c&&187!==c||(e.dfwWidth(25),a.preventDefault()),!b||45!==c&&109!==c&&189!==c||(e.dfwWidth(-25),a.preventDefault()),b&&48===c&&(e.dfwWidth(0),a.preventDefault()))}),a(b).on("keydown.wp-fullscreen",function(a){27===a.keyCode&&g.visible&&(e.off(),a.stopImmediatePropagation())}),"ontouchstart"in b&&m.addClass("wp-dfw-touch"),c.on("mouseenter",function(){h("show")}).on("mouseleave",function(){h("autohide")}),a("#wp-fullscreen-buttons").on("click.wp-fullscreen","button",function(a){var c=a.currentTarget.id?a.currentTarget.id.substr(6):null;if(g.editor&&"tinymce"===g.mode)switch(c){case"bold":g.editor.execCommand("Bold");break;case"italic":g.editor.execCommand("Italic");break;case"bullist":g.editor.execCommand("InsertUnorderedList");break;case"numlist":g.editor.execCommand("InsertOrderedList");break;case"link":g.editor.execCommand("WP_Link");break;case"unlink":g.editor.execCommand("unlink");break;case"help":g.editor.execCommand("WP_Help");break;case"blockquote":g.editor.execCommand("mceBlockQuote")}else"link"===c&&b.wpLink&&b.wpLink.open();"wp-media-library"===c&&"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(g.id)})},fade:function(a,b,c){g.$fullscreenFader||e.ui.init(),(!a||f.publish(a))&&e.fade.In(g.$fullscreenFader,200,function(){b&&f.publish(b),e.fade.Out(g.$fullscreenFader,200,function(){c&&f.publish(c)})})}},e.fade={sensitivity:100,In:function(b,c,d,f){if(d=d||a.noop,c=c||400,f=f||!1,e.fade.transitions){if(b.is(":visible"))return b.addClass("fade-trigger"),b;b.show(),b.first().one(l,function(){d()}),setTimeout(function(){b.addClass("fade-trigger")},this.sensitivity)}else f&&b.stop(),b.css("opacity",1),b.first().fadeIn(c,d),b.length>1&&b.not(":first").fadeIn(c);return b},Out:function(b,c,d,f){return d=d||a.noop,c=c||400,f=f||!1,b.is(":visible")?(e.fade.transitions?(b.first().one(l,function(){b.hasClass("fade-trigger")||(b.hide(),d())}),setTimeout(function(){b.removeClass("fade-trigger")},this.sensitivity)):(f&&b.stop(),b.first().fadeOut(c,d),b.length>1&&b.not(":first").fadeOut(c)),b):b},transitions:function(){var a=document.documentElement.style;return"string"==typeof a.WebkitTransition||"string"==typeof a.MozTransition||"string"==typeof a.OTransition||"string"==typeof a.transition}()},e.bind_resize=function(){g.$dfwTextarea.on("keydown.wp-dfw-resize click.wp-dfw-resize paste.wp-dfw-resize",function(){e.resizeTextarea()})},e.resizeTextarea=function(){var a=g.$dfwTextarea[0];a.scrollHeight>a.clientHeight&&(a.style.height=a.scrollHeight+50+"px")},b.wp=b.wp||{},b.wp.editor=b.wp.editor||{},b.wp.editor.fullscreen=e}(jQuery,window);
\ No newline at end of file
index 99e17b2d7a3ed27430fb75cc3e5420cc1418b865..6197281d8667bc891e9150dddac608c47994902f 100644 (file)
@@ -9,20 +9,7 @@
 if ( ! defined('ABSPATH') )
        die();
 
 if ( ! defined('ABSPATH') )
        die();
 
-global $opml, $map;
-
-// columns we wish to find are: link_url, link_name, link_target, link_description
-// we need to map XML attribute names to our columns
-$opml_map = array('URL'         => 'link_url',
-       'HTMLURL'     => 'link_url',
-       'TEXT'        => 'link_name',
-       'TITLE'       => 'link_name',
-       'TARGET'      => 'link_target',
-       'DESCRIPTION' => 'link_description',
-       'XMLURL'      => 'link_rss'
-);
-
-$map = $opml_map;
+global $opml;
 
 /**
  * XML callback function for the start of a new XML tag.
 
 /**
  * XML callback function for the start of a new XML tag.
@@ -30,9 +17,6 @@ $map = $opml_map;
  * @since 0.71
  * @access private
  *
  * @since 0.71
  * @access private
  *
- * @uses $updated_timestamp Not used inside function.
- * @uses $all_links Not used inside function.
- * @uses $map Stores names of attributes to use.
  * @global array $names
  * @global array $urls
  * @global array $targets
  * @global array $names
  * @global array $urls
  * @global array $targets
@@ -44,25 +28,31 @@ $map = $opml_map;
  * @param array $attrs XML element attributes.
  */
 function startElement($parser, $tagName, $attrs) {
  * @param array $attrs XML element attributes.
  */
 function startElement($parser, $tagName, $attrs) {
-       global $updated_timestamp, $all_links, $map;
        global $names, $urls, $targets, $descriptions, $feeds;
 
        global $names, $urls, $targets, $descriptions, $feeds;
 
-       if ($tagName == 'OUTLINE') {
-               foreach (array_keys($map) as $key) {
-                       if (isset($attrs[$key])) {
-                               $$map[$key] = $attrs[$key];
-                       }
+       if ( 'OUTLINE' === $tagName ) {
+               $name = '';
+               if ( isset( $attrs['TEXT'] ) ) {
+                       $name = $attrs['TEXT'];
+               }
+               if ( isset( $attrs['TITLE'] ) ) {
+                       $name = $attrs['TITLE'];
+               }
+               $url = '';
+               if ( isset( $attrs['URL'] ) ) {
+                       $url = $attrs['URL'];
+               }
+               if ( isset( $attrs['HTMLURL'] ) ) {
+                       $url = $attrs['HTMLURL'];
                }
 
                }
 
-               //echo("got data: link_url = [$link_url], link_name = [$link_name], link_target = [$link_target], link_description = [$link_description]<br />\n");
-
-               // save the data away.
-               $names[] = $link_name;
-               $urls[] = $link_url;
-               $targets[] = $link_target;
-               $feeds[] = $link_rss;
-               $descriptions[] = $link_description;
-       } // end if outline
+               // Save the data away.
+               $names[] = $name;
+               $urls[] = $url;
+               $targets[] = isset( $attrs['TARGET'] ) ? $attrs['TARGET'] :  '';
+               $feeds[] = isset( $attrs['XMLURL'] ) ? $attrs['XMLURL'] :  '';
+               $descriptions[] = isset( $attrs['DESCRIPTION'] ) ? $attrs['DESCRIPTION'] :  '';
+       } // End if outline.
 }
 
 /**
 }
 
 /**
@@ -75,7 +65,7 @@ function startElement($parser, $tagName, $attrs) {
  * @param string $tagName XML tag name.
  */
 function endElement($parser, $tagName) {
  * @param string $tagName XML tag name.
  */
 function endElement($parser, $tagName) {
-       // nothing to do.
+       // Nothing to do.
 }
 
 // Create an XML parser
 }
 
 // Create an XML parser
index 1b27ce7de72c4074f1ec81fcaf472c6bbfa841b0..802745fc2c4e28ebaa48c44e4c3b1b8aa4b1a2da 100644 (file)
@@ -30,7 +30,7 @@ switch ($action) {
        case 'deletebookmarks' :
                check_admin_referer('bulk-bookmarks');
 
        case 'deletebookmarks' :
                check_admin_referer('bulk-bookmarks');
 
-               //for each link id (in $linkcheck[]) change category to selected value
+               // For each link id (in $linkcheck[]) change category to selected value.
                if (count($linkcheck) == 0) {
                        wp_redirect($this_file);
                        exit;
                if (count($linkcheck) == 0) {
                        wp_redirect($this_file);
                        exit;
@@ -46,23 +46,23 @@ switch ($action) {
 
                wp_redirect("$this_file?deleted=$deleted");
                exit;
 
                wp_redirect("$this_file?deleted=$deleted");
                exit;
-               break;
 
        case 'move' :
                check_admin_referer('bulk-bookmarks');
 
 
        case 'move' :
                check_admin_referer('bulk-bookmarks');
 
-               //for each link id (in $linkcheck[]) change category to selected value
+               // For each link id (in $linkcheck[]) change category to selected value.
                if (count($linkcheck) == 0) {
                        wp_redirect($this_file);
                        exit;
                }
                $all_links = join(',', $linkcheck);
                if (count($linkcheck) == 0) {
                        wp_redirect($this_file);
                        exit;
                }
                $all_links = join(',', $linkcheck);
-               // should now have an array of links we can change
-               //$q = $wpdb->query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)");
+               /*
+                * Should now have an array of links we can change:
+                *     $q = $wpdb->query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)");
+                */
 
                wp_redirect($this_file);
                exit;
 
                wp_redirect($this_file);
                exit;
-               break;
 
        case 'add' :
                check_admin_referer('add-bookmark');
 
        case 'add' :
                check_admin_referer('add-bookmark');
@@ -73,7 +73,6 @@ switch ($action) {
 
                wp_redirect( $redir );
                exit;
 
                wp_redirect( $redir );
                exit;
-               break;
 
        case 'save' :
                $link_id = (int) $_POST['link_id'];
 
        case 'save' :
                $link_id = (int) $_POST['link_id'];
@@ -83,7 +82,6 @@ switch ($action) {
 
                wp_redirect($this_file);
                exit;
 
                wp_redirect($this_file);
                exit;
-               break;
 
        case 'delete' :
                $link_id = (int) $_GET['link_id'];
 
        case 'delete' :
                $link_id = (int) $_GET['link_id'];
@@ -93,7 +91,6 @@ switch ($action) {
 
                wp_redirect($this_file);
                exit;
 
                wp_redirect($this_file);
                exit;
-               break;
 
        case 'edit' :
                wp_enqueue_script('link');
 
        case 'edit' :
                wp_enqueue_script('link');
index 8dfe3b18ad37487d470942348a212451d8e22108..81c4fc61629a915e3cea8bf622dd6d2c87da7778 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * Disable error reporting
  *
 /**
  * Disable error reporting
  *
- * Set this to error_reporting( E_ALL ) or error_reporting( E_ALL | E_STRICT ) for debugging
+ * Set this to error_reporting( -1 ) for debugging.
  */
 error_reporting(0);
 
  */
 error_reporting(0);
 
index 64ae474199d13d02b21357ba197137074850ccc9..716592344e0c30963b0ff4883d97eb5b04dd4cfc 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * Disable error reporting
  *
 /**
  * Disable error reporting
  *
- * Set this to error_reporting( E_ALL ) or error_reporting( E_ALL | E_STRICT ) for debugging
+ * Set this to error_reporting( -1 ) for debugging
  */
 error_reporting(0);
 
  */
 error_reporting(0);
 
@@ -92,8 +92,8 @@ function get_file($path) {
        return @file_get_contents($path);
 }
 
        return @file_get_contents($path);
 }
 
-require(ABSPATH . '/wp-includes/script-loader.php');
-require(ABSPATH . '/wp-includes/version.php');
+require( ABSPATH . WPINC . '/script-loader.php' );
+require( ABSPATH . WPINC . '/version.php' );
 
 $load = preg_replace( '/[^a-z0-9,_-]+/i', '', $_GET['load'] );
 $load = array_unique( explode( ',', $load ) );
 
 $load = preg_replace( '/[^a-z0-9,_-]+/i', '', $_GET['load'] );
 $load = array_unique( explode( ',', $load ) );
@@ -124,10 +124,10 @@ foreach( $load as $handle ) {
 
        $content = get_file( $path ) . "\n";
 
 
        $content = get_file( $path ) . "\n";
 
-       if ( strpos( $style->src, '/wp-includes/css/' ) === 0 ) {
-               $content = str_replace( '../images/', '../wp-includes/images/', $content );
-               $content = str_replace( '../js/tinymce/', '../wp-includes/js/tinymce/', $content );
-               $content = str_replace( '../fonts/', '../wp-includes/fonts/', $content );
+       if ( strpos( $style->src, '/' . WPINC . '/css/' ) === 0 ) {
+               $content = str_replace( '../images/', '../' . WPINC . '/images/', $content );
+               $content = str_replace( '../js/tinymce/', '../' . WPINC . '/js/tinymce/', $content );
+               $content = str_replace( '../fonts/', '../' . WPINC . '/fonts/', $content );
                $out .= $content;
        } else {
                $out .= str_replace( '../images/', 'images/', $content );
                $out .= $content;
        } else {
                $out .= str_replace( '../images/', 'images/', $content );
index 361229f555aa5f290a64047f15fa3c4671480804..cdc6c0aa5f9725210eed6d9f5ca5974a8c0c0217 100644 (file)
@@ -22,7 +22,7 @@ header( 'Content-Type: text/html; charset=utf-8' );
        ?>
 </head>
 <body class="wp-core-ui">
        ?>
 </head>
 <body class="wp-core-ui">
-<h1 id="logo"><a href="<?php echo esc_url( __( 'https://wordpress.org/' ) ); ?>"><?php _e( 'WordPress' ); ?></a></h1>
+<h1 id="logo"><a href="<?php echo esc_url( __( 'https://wordpress.org/' ) ); ?>" tabindex="-1"><?php _e( 'WordPress' ); ?></a></h1>
 
 <?php
 
 
 <?php
 
@@ -36,8 +36,10 @@ if ( ! defined( 'WP_ALLOW_REPAIR' ) ) {
        $tables = $wpdb->tables();
 
        // Sitecategories may not exist if global terms are disabled.
        $tables = $wpdb->tables();
 
        // Sitecategories may not exist if global terms are disabled.
-       if ( is_multisite() && ! $wpdb->get_var( "SHOW TABLES LIKE '$wpdb->sitecategories'" ) )
+       $query = $wpdb->prepare( "SHOW TABLES LIKE %s", $wpdb->esc_like( $wpdb->sitecategories ) );
+       if ( is_multisite() && ! $wpdb->get_var( $query ) ) {
                unset( $tables['sitecategories'] );
                unset( $tables['sitecategories'] );
+       }
 
        /**
         * Filter additional database tables to repair.
 
        /**
         * Filter additional database tables to repair.
index 9a6e8f90e488c9b06b17574961f2075b43dfd075..cb871c0c114e9c647c18b4d61cf0e6e46d4502ce 100644 (file)
@@ -30,14 +30,14 @@ wp_enqueue_script( 'media-gallery' );
 $ID = isset($ID) ? (int) $ID : 0;
 $post_id = isset($post_id)? (int) $post_id : 0;
 
 $ID = isset($ID) ? (int) $ID : 0;
 $post_id = isset($post_id)? (int) $post_id : 0;
 
-// Require an ID for the edit screen
+// Require an ID for the edit screen.
 if ( isset($action) && $action == 'edit' && !$ID )
        wp_die( __( 'Cheatin&#8217; uh?' ) );
 
        if ( ! empty( $_REQUEST['post_id'] ) && ! current_user_can( 'edit_post' , $_REQUEST['post_id'] ) )
                wp_die( __( 'Cheatin&#8217; uh?' ) );
 
 if ( isset($action) && $action == 'edit' && !$ID )
        wp_die( __( 'Cheatin&#8217; uh?' ) );
 
        if ( ! empty( $_REQUEST['post_id'] ) && ! current_user_can( 'edit_post' , $_REQUEST['post_id'] ) )
                wp_die( __( 'Cheatin&#8217; uh?' ) );
 
-       // upload type: image, video, file, ..?
+       // Upload type: image, video, file, ..?
        if ( isset($_GET['type']) ) {
                $type = strval($_GET['type']);
        } else {
        if ( isset($_GET['type']) ) {
                $type = strval($_GET['type']);
        } else {
@@ -52,7 +52,7 @@ if ( isset($action) && $action == 'edit' && !$ID )
                $type = apply_filters( 'media_upload_default_type', 'file' );
        }
 
                $type = apply_filters( 'media_upload_default_type', 'file' );
        }
 
-       // tab: gallery, library, or type-specific
+       // Tab: gallery, library, or type-specific.
        if ( isset($_GET['tab']) ) {
                $tab = strval($_GET['tab']);
        } else {
        if ( isset($_GET['tab']) ) {
                $tab = strval($_GET['tab']);
        } else {
@@ -68,7 +68,7 @@ if ( isset($action) && $action == 'edit' && !$ID )
 
        $body_id = 'media-upload';
 
 
        $body_id = 'media-upload';
 
-       // let the action code decide how to handle the request
+       // Let the action code decide how to handle the request.
        if ( $tab == 'type' || $tab == 'type_url' || ! array_key_exists( $tab , media_upload_tabs() ) ) {
                /**
                 * Fires inside specific upload-type views in the legacy (pre-3.5.0)
        if ( $tab == 'type' || $tab == 'type_url' || ! array_key_exists( $tab , media_upload_tabs() ) ) {
                /**
                 * Fires inside specific upload-type views in the legacy (pre-3.5.0)
index 7920bef917dfa22ebb05c4d5e91096b114bdece3..60abb648f6e5d78b3c51b35c6bde3be1b8caca7e 100644 (file)
@@ -14,7 +14,7 @@ $submenu_file = 'upload.php';
 
 wp_reset_vars(array('action'));
 
 
 wp_reset_vars(array('action'));
 
-switch( $action ) :
+switch ( $action ) {
 case 'editattachment' :
        $attachment_id = (int) $_POST['attachment_id'];
        check_admin_referer('media-form');
 case 'editattachment' :
        $attachment_id = (int) $_POST['attachment_id'];
        check_admin_referer('media-form');
@@ -40,7 +40,7 @@ case 'editattachment' :
                exit;
        }
 
                exit;
        }
 
-       // no break
+       // No break.
 case 'edit' :
        $title = __('Edit Media');
 
 case 'edit' :
        $title = __('Edit Media');
 
@@ -90,12 +90,12 @@ case 'edit' :
        $message = '';
        $class = '';
        if ( isset($_GET['message']) ) {
        $message = '';
        $class = '';
        if ( isset($_GET['message']) ) {
-               switch ( $_GET['message'] ) :
-               case 'updated' :
-                       $message = __('Media attachment updated.');
-                       $class = 'updated';
-                       break;
-               endswitch;
+               switch ( $_GET['message'] ) {
+                       case 'updated' :
+                               $message = __('Media attachment updated.');
+                               $class = 'updated';
+                               break;
+               }
        }
        if ( $message )
                echo "<div id='message' class='$class'><p>$message</p></div>\n";
        }
        if ( $message )
                echo "<div id='message' class='$class'><p>$message</p></div>\n";
@@ -117,7 +117,7 @@ if ( current_user_can( 'upload_files' ) ) { ?>
 </p>
 
 <div class="media-single">
 </p>
 
 <div class="media-single">
-<div id='media-item-<?php echo $att_id; ?>' class='media-item'>
+<div id="media-item-<?php echo $att_id; ?>" class="media-item">
 <?php echo get_media_item( $att_id, array( 'toggle' => false, 'send' => false, 'delete' => false, 'show_title' => false, 'errors' => !empty($errors[$att_id]) ? $errors[$att_id] : null ) ); ?>
 </div>
 </div>
 <?php echo get_media_item( $att_id, array( 'toggle' => false, 'send' => false, 'delete' => false, 'show_title' => false, 'errors' => !empty($errors[$att_id]) ? $errors[$att_id] : null ) ); ?>
 </div>
 </div>
@@ -143,4 +143,4 @@ default:
        wp_redirect( admin_url('upload.php') );
        exit;
 
        wp_redirect( admin_url('upload.php') );
        exit;
 
-endswitch;
+}
index 1771fb0f8ac4a3bf80daa6777cb59dd45ce5e3ed..275cc145d9882d1764061ab9cf9361c4203bf954 100644 (file)
@@ -73,16 +73,19 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
                }
 
                if ( ! empty( $item[4] ) )
                }
 
                if ( ! empty( $item[4] ) )
-                       $class[] = $item[4];
+                       $class[] = esc_attr( $item[4] );
 
                $class = $class ? ' class="' . join( ' ', $class ) . '"' : '';
                $id = ! empty( $item[5] ) ? ' id="' . preg_replace( '|[^a-zA-Z0-9_:.]|', '-', $item[5] ) . '"' : '';
                $img = $img_style = '';
                $img_class = ' dashicons-before';
 
 
                $class = $class ? ' class="' . join( ' ', $class ) . '"' : '';
                $id = ! empty( $item[5] ) ? ' id="' . preg_replace( '|[^a-zA-Z0-9_:.]|', '-', $item[5] ) . '"' : '';
                $img = $img_style = '';
                $img_class = ' dashicons-before';
 
-               // if the string 'none' (previously 'div') is passed instead of an URL, don't output the default menu image
-               // so an icon can be added to div.wp-menu-image as background with CSS.
-               // Dashicons and base64-encoded data:image/svg_xml URIs are also handled as special cases.
+               /*
+                * If the string 'none' (previously 'div') is passed instead of an URL, don't output
+                * the default menu image so an icon can be added to div.wp-menu-image as background
+                * with CSS. Dashicons and base64-encoded data:image/svg_xml URIs are also handled
+                * as special cases.
+                */
                if ( ! empty( $item[6] ) ) {
                        $img = '<img src="' . $item[6] . '" alt="" />';
 
                if ( ! empty( $item[6] ) ) {
                        $img = '<img src="' . $item[6] . '" alt="" />';
 
@@ -135,6 +138,8 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
                        echo "<li class='wp-submenu-head'>{$item[0]}</li>";
 
                        $first = true;
                        echo "<li class='wp-submenu-head'>{$item[0]}</li>";
 
                        $first = true;
+
+                       // 0 = menu_title, 1 = capability, 2 = menu_slug, 3 = page_title, 4 = classes
                        foreach ( $submenu_items as $sub_key => $sub_item ) {
                                if ( ! current_user_can( $sub_item[1] ) )
                                        continue;
                        foreach ( $submenu_items as $sub_key => $sub_item ) {
                                if ( ! current_user_can( $sub_item[1] ) )
                                        continue;
@@ -165,6 +170,10 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
                                        $class[] = 'current';
                                }
 
                                        $class[] = 'current';
                                }
 
+                               if ( ! empty( $sub_item[4] ) ) {
+                                       $class[] = esc_attr( $sub_item[4] );
+                               }
+
                                $class = $class ? ' class="' . join( ' ', $class ) . '"' : '';
 
                                $menu_hook = get_plugin_page_hook($sub_item[2], $item[2]);
                                $class = $class ? ' class="' . join( ' ', $class ) . '"' : '';
 
                                $menu_hook = get_plugin_page_hook($sub_item[2], $item[2]);
index 4008a0986d6739658a3331346aacd5bf5fea9cfd..5fc718d5328f23f974ab2cc1a70247502ee76f9c 100644 (file)
@@ -121,7 +121,10 @@ foreach ( (array) get_post_types( array('show_ui' => true, '_builtin' => false,
                $ptype_class = 'post';
        }
 
                $ptype_class = 'post';
        }
 
-       // if $ptype_menu_position is already populated or will be populated by a hard-coded value below, increment the position.
+       /*
+        * If $ptype_menu_position is already populated or will be populated
+        * by a hard-coded value below, increment the position.
+        */
        $core_menu_positions = array(59, 60, 65, 70, 75, 80, 85, 99);
        while ( isset($menu[$ptype_menu_position]) || in_array($ptype_menu_position, $core_menu_positions) )
                $ptype_menu_position++;
        $core_menu_positions = array(59, 60, 65, 70, 75, 80, 85, 99);
        while ( isset($menu[$ptype_menu_position]) || in_array($ptype_menu_position, $core_menu_positions) )
                $ptype_menu_position++;
@@ -146,9 +149,13 @@ $appearance_cap = current_user_can( 'switch_themes') ? 'switch_themes' : 'edit_t
 
 $menu[60] = array( __('Appearance'), $appearance_cap, 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'dashicons-admin-appearance' );
        $submenu['themes.php'][5] = array( __( 'Themes' ), $appearance_cap, 'themes.php' );
 
 $menu[60] = array( __('Appearance'), $appearance_cap, 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'dashicons-admin-appearance' );
        $submenu['themes.php'][5] = array( __( 'Themes' ), $appearance_cap, 'themes.php' );
-       $submenu['themes.php'][6] = array( __( 'Customize' ), 'edit_theme_options', 'customize.php', 'hide-if-no-customize' );
-       if ( current_theme_supports( 'menus' ) || current_theme_supports( 'widgets' ) )
+
+       $customize_url = add_query_arg( 'return', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), 'customize.php' );
+       $submenu['themes.php'][6] = array( __( 'Customize' ), 'customize', $customize_url, '', 'hide-if-no-customize' );
+       unset( $customize_url );
+       if ( current_theme_supports( 'menus' ) || current_theme_supports( 'widgets' ) ) {
                $submenu['themes.php'][10] = array(__( 'Menus' ), 'edit_theme_options', 'nav-menus.php');
                $submenu['themes.php'][10] = array(__( 'Menus' ), 'edit_theme_options', 'nav-menus.php');
+       }
 
 unset( $appearance_cap );
 
 
 unset( $appearance_cap );
 
index 77a4057a7521c67e6c32026beb409d79f65084f1..0dd34cf9e6f90cc9ceb65225b120ac1f3b7d1eaf 100644 (file)
@@ -53,7 +53,8 @@ switch ( $action ) {
                        wp_save_nav_menu_items( $nav_menu_selected_id, $_REQUEST['menu-item'] );
                break;
        case 'move-down-menu-item' :
                        wp_save_nav_menu_items( $nav_menu_selected_id, $_REQUEST['menu-item'] );
                break;
        case 'move-down-menu-item' :
-               // moving down a menu item is the same as moving up the next in order
+
+               // Moving down a menu item is the same as moving up the next in order.
                check_admin_referer( 'move-menu_item' );
                $menu_item_id = isset( $_REQUEST['menu-item'] ) ? (int) $_REQUEST['menu-item'] : 0;
                if ( is_nav_menu_item( $menu_item_id ) ) {
                check_admin_referer( 'move-menu_item' );
                $menu_item_id = isset( $_REQUEST['menu-item'] ) ? (int) $_REQUEST['menu-item'] : 0;
                if ( is_nav_menu_item( $menu_item_id ) ) {
@@ -63,7 +64,7 @@ switch ( $action ) {
                                $ordered_menu_items = wp_get_nav_menu_items( $menu_id );
                                $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) );
 
                                $ordered_menu_items = wp_get_nav_menu_items( $menu_id );
                                $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) );
 
-                               // set up the data we need in one pass through the array of menu items
+                               // Set up the data we need in one pass through the array of menu items.
                                $dbids_to_orders = array();
                                $orders_to_dbids = array();
                                foreach( (array) $ordered_menu_items as $ordered_menu_item_object ) {
                                $dbids_to_orders = array();
                                $orders_to_dbids = array();
                                foreach( (array) $ordered_menu_items as $ordered_menu_item_object ) {
@@ -75,14 +76,14 @@ switch ( $action ) {
                                        }
                                }
 
                                        }
                                }
 
-                               // get next in order
+                               // Get next in order.
                                if (
                                        isset( $orders_to_dbids[$dbids_to_orders[$menu_item_id] + 1] )
                                ) {
                                        $next_item_id = $orders_to_dbids[$dbids_to_orders[$menu_item_id] + 1];
                                        $next_item_data = (array) wp_setup_nav_menu_item( get_post( $next_item_id ) );
 
                                if (
                                        isset( $orders_to_dbids[$dbids_to_orders[$menu_item_id] + 1] )
                                ) {
                                        $next_item_id = $orders_to_dbids[$dbids_to_orders[$menu_item_id] + 1];
                                        $next_item_data = (array) wp_setup_nav_menu_item( get_post( $next_item_id ) );
 
-                                       // if not siblings of same parent, bubble menu item up but keep order
+                                       // If not siblings of same parent, bubble menu item up but keep order.
                                        if (
                                                ! empty( $menu_item_data['menu_item_parent'] ) &&
                                                (
                                        if (
                                                ! empty( $menu_item_data['menu_item_parent'] ) &&
                                                (
@@ -102,7 +103,7 @@ switch ( $action ) {
 
                                                }
 
 
                                                }
 
-                                       // make menu item a child of its next sibling
+                                       // Make menu item a child of its next sibling.
                                        } else {
                                                $next_item_data['menu_order'] = $next_item_data['menu_order'] - 1;
                                                $menu_item_data['menu_order'] = $menu_item_data['menu_order'] + 1;
                                        } else {
                                                $next_item_data['menu_order'] = $next_item_data['menu_order'] - 1;
                                                $menu_item_data['menu_order'] = $menu_item_data['menu_order'] + 1;
@@ -114,7 +115,7 @@ switch ( $action ) {
                                                wp_update_post($next_item_data);
                                        }
 
                                                wp_update_post($next_item_data);
                                        }
 
-                               // the item is last but still has a parent, so bubble up
+                               // The item is last but still has a parent, so bubble up.
                                } elseif (
                                        ! empty( $menu_item_data['menu_item_parent'] ) &&
                                        in_array( $menu_item_data['menu_item_parent'], $orders_to_dbids )
                                } elseif (
                                        ! empty( $menu_item_data['menu_item_parent'] ) &&
                                        in_array( $menu_item_data['menu_item_parent'], $orders_to_dbids )
@@ -136,7 +137,7 @@ switch ( $action ) {
                                $ordered_menu_items = wp_get_nav_menu_items( $menu_id );
                                $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) );
 
                                $ordered_menu_items = wp_get_nav_menu_items( $menu_id );
                                $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) );
 
-                               // set up the data we need in one pass through the array of menu items
+                               // Set up the data we need in one pass through the array of menu items.
                                $dbids_to_orders = array();
                                $orders_to_dbids = array();
                                foreach( (array) $ordered_menu_items as $ordered_menu_item_object ) {
                                $dbids_to_orders = array();
                                $orders_to_dbids = array();
                                foreach( (array) $ordered_menu_items as $ordered_menu_item_object ) {
@@ -148,10 +149,10 @@ switch ( $action ) {
                                        }
                                }
 
                                        }
                                }
 
-                               // if this menu item is not first
+                               // If this menu item is not first.
                                if ( ! empty( $dbids_to_orders[$menu_item_id] ) && ! empty( $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] ) ) {
 
                                if ( ! empty( $dbids_to_orders[$menu_item_id] ) && ! empty( $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] ) ) {
 
-                                       // if this menu item is a child of the previous
+                                       // If this menu item is a child of the previous.
                                        if (
                                                ! empty( $menu_item_data['menu_item_parent'] ) &&
                                                in_array( $menu_item_data['menu_item_parent'], array_keys( $dbids_to_orders ) ) &&
                                        if (
                                                ! empty( $menu_item_data['menu_item_parent'] ) &&
                                                in_array( $menu_item_data['menu_item_parent'], array_keys( $dbids_to_orders ) ) &&
@@ -164,7 +165,10 @@ switch ( $action ) {
                                                if ( ! is_wp_error( $parent_object ) ) {
                                                        $parent_data = (array) $parent_object;
 
                                                if ( ! is_wp_error( $parent_object ) ) {
                                                        $parent_data = (array) $parent_object;
 
-                                                       // if there is something before the parent and parent a child of it, make menu item a child also of it
+                                                       /*
+                                                        * If there is something before the parent and parent a child of it,
+                                                        * make menu item a child also of it.
+                                                        */
                                                        if (
                                                                ! empty( $dbids_to_orders[$parent_db_id] ) &&
                                                                ! empty( $orders_to_dbids[$dbids_to_orders[$parent_db_id] - 1] ) &&
                                                        if (
                                                                ! empty( $dbids_to_orders[$parent_db_id] ) &&
                                                                ! empty( $orders_to_dbids[$dbids_to_orders[$parent_db_id] - 1] ) &&
@@ -172,7 +176,10 @@ switch ( $action ) {
                                                        ) {
                                                                $menu_item_data['menu_item_parent'] = $parent_data['menu_item_parent'];
 
                                                        ) {
                                                                $menu_item_data['menu_item_parent'] = $parent_data['menu_item_parent'];
 
-                                                       // else if there is something before parent and parent not a child of it, make menu item a child of that something's parent
+                                                       /*
+                                                        * Else if there is something before parent and parent not a child of it,
+                                                        * make menu item a child of that something's parent
+                                                        */
                                                        } elseif (
                                                                ! empty( $dbids_to_orders[$parent_db_id] ) &&
                                                                ! empty( $orders_to_dbids[$dbids_to_orders[$parent_db_id] - 1] )
                                                        } elseif (
                                                                ! empty( $dbids_to_orders[$parent_db_id] ) &&
                                                                ! empty( $orders_to_dbids[$dbids_to_orders[$parent_db_id] - 1] )
@@ -183,24 +190,24 @@ switch ( $action ) {
                                                                else
                                                                        $menu_item_data['menu_item_parent'] = 0;
 
                                                                else
                                                                        $menu_item_data['menu_item_parent'] = 0;
 
-                                                       // else there isn't something before the parent
+                                                       // Else there isn't something before the parent.
                                                        } else {
                                                                $menu_item_data['menu_item_parent'] = 0;
                                                        }
 
                                                        } else {
                                                                $menu_item_data['menu_item_parent'] = 0;
                                                        }
 
-                                                       // set former parent's [menu_order] to that of menu-item's
+                                                       // Set former parent's [menu_order] to that of menu-item's.
                                                        $parent_data['menu_order'] = $parent_data['menu_order'] + 1;
 
                                                        $parent_data['menu_order'] = $parent_data['menu_order'] + 1;
 
-                                                       // set menu-item's [menu_order] to that of former parent
+                                                       // Set menu-item's [menu_order] to that of former parent.
                                                        $menu_item_data['menu_order'] = $menu_item_data['menu_order'] - 1;
 
                                                        $menu_item_data['menu_order'] = $menu_item_data['menu_order'] - 1;
 
-                                                       // save changes
+                                                       // Save changes.
                                                        update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] );
                                                        wp_update_post($menu_item_data);
                                                        wp_update_post($parent_data);
                                                }
 
                                                        update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] );
                                                        wp_update_post($menu_item_data);
                                                        wp_update_post($parent_data);
                                                }
 
-                                       // else this menu item is not a child of the previous
+                                       // Else this menu item is not a child of the previous.
                                        } elseif (
                                                empty( $menu_item_data['menu_order'] ) ||
                                                empty( $menu_item_data['menu_item_parent'] ) ||
                                        } elseif (
                                                empty( $menu_item_data['menu_order'] ) ||
                                                empty( $menu_item_data['menu_item_parent'] ) ||
@@ -208,7 +215,7 @@ switch ( $action ) {
                                                empty( $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] ) ||
                                                $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] != $menu_item_data['menu_item_parent']
                                        ) {
                                                empty( $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] ) ||
                                                $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] != $menu_item_data['menu_item_parent']
                                        ) {
-                                               // just make it a child of the previous; keep the order
+                                               // Just make it a child of the previous; keep the order.
                                                $menu_item_data['menu_item_parent'] = (int) $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1];
                                                update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] );
                                                wp_update_post($menu_item_data);
                                                $menu_item_data['menu_item_parent'] = (int) $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1];
                                                update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] );
                                                wp_update_post($menu_item_data);
@@ -232,7 +239,7 @@ switch ( $action ) {
                if ( is_nav_menu( $nav_menu_selected_id ) ) {
                        $deletion = wp_delete_nav_menu( $nav_menu_selected_id );
                } else {
                if ( is_nav_menu( $nav_menu_selected_id ) ) {
                        $deletion = wp_delete_nav_menu( $nav_menu_selected_id );
                } else {
-                       // Reset the selected menu
+                       // Reset the selected menu.
                        $nav_menu_selected_id = 0;
                        unset( $_REQUEST['menu'] );
                }
                        $nav_menu_selected_id = 0;
                        unset( $_REQUEST['menu'] );
                }
@@ -266,22 +273,22 @@ switch ( $action ) {
        case 'update':
                check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
 
        case 'update':
                check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
 
-               // Remove menu locations that have been unchecked
+               // Remove menu locations that have been unchecked.
                foreach ( $locations as $location => $description ) {
                        if ( ( empty( $_POST['menu-locations'] ) || empty( $_POST['menu-locations'][ $location ] ) ) && isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] == $nav_menu_selected_id )
                                unset( $menu_locations[ $location ] );
                }
 
                foreach ( $locations as $location => $description ) {
                        if ( ( empty( $_POST['menu-locations'] ) || empty( $_POST['menu-locations'][ $location ] ) ) && isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] == $nav_menu_selected_id )
                                unset( $menu_locations[ $location ] );
                }
 
-               // Merge new and existing menu locations if any new ones are set
+               // Merge new and existing menu locations if any new ones are set.
                if ( isset( $_POST['menu-locations'] ) ) {
                        $new_menu_locations = array_map( 'absint', $_POST['menu-locations'] );
                        $menu_locations = array_merge( $menu_locations, $new_menu_locations );
                }
 
                if ( isset( $_POST['menu-locations'] ) ) {
                        $new_menu_locations = array_map( 'absint', $_POST['menu-locations'] );
                        $menu_locations = array_merge( $menu_locations, $new_menu_locations );
                }
 
-               // Set menu locations
+               // Set menu locations.
                set_theme_mod( 'nav_menu_locations', $menu_locations );
 
                set_theme_mod( 'nav_menu_locations', $menu_locations );
 
-               // Add Menu
+               // Add Menu.
                if ( 0 == $nav_menu_selected_id ) {
                        $new_menu_title = trim( esc_html( $_POST['menu-name'] ) );
 
                if ( 0 == $nav_menu_selected_id ) {
                        $new_menu_title = trim( esc_html( $_POST['menu-name'] ) );
 
@@ -314,6 +321,7 @@ switch ( $action ) {
                                                        $menu_locations[ $_REQUEST['use-location'] ] = $nav_menu_selected_id;
                                                set_theme_mod( 'nav_menu_locations', $menu_locations );
                                        }
                                                        $menu_locations[ $_REQUEST['use-location'] ] = $nav_menu_selected_id;
                                                set_theme_mod( 'nav_menu_locations', $menu_locations );
                                        }
+
                                        // $messages[] = '<div id="message" class="updated"><p>' . sprintf( __( '<strong>%s</strong> has been created.' ), $nav_menu_selected_title ) . '</p></div>';
                                        wp_redirect( admin_url( 'nav-menus.php?menu=' . $_nav_menu_selected_id ) );
                                        exit();
                                        // $messages[] = '<div id="message" class="updated"><p>' . sprintf( __( '<strong>%s</strong> has been created.' ), $nav_menu_selected_title ) . '</p></div>';
                                        wp_redirect( admin_url( 'nav-menus.php?menu=' . $_nav_menu_selected_id ) );
                                        exit();
@@ -322,7 +330,7 @@ switch ( $action ) {
                                $messages[] = '<div id="message" class="error"><p>' . __( 'Please enter a valid menu name.' ) . '</p></div>';
                        }
 
                                $messages[] = '<div id="message" class="error"><p>' . __( 'Please enter a valid menu name.' ) . '</p></div>';
                        }
 
-               // Update existing menu
+               // Update existing menu.
                } else {
 
                        $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id );
                } else {
 
                        $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id );
@@ -344,7 +352,7 @@ switch ( $action ) {
                                }
                        }
 
                                }
                        }
 
-                       // Update menu items
+                       // Update menu items.
                        if ( ! is_wp_error( $_menu_object ) ) {
                                $messages = array_merge( $messages, wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ) );
                        }
                        if ( ! is_wp_error( $_menu_object ) ) {
                                $messages = array_merge( $messages, wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ) );
                        }
@@ -371,7 +379,7 @@ switch ( $action ) {
                break;
 }
 
                break;
 }
 
-// Get all nav menus
+// Get all nav menus.
 $nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
 $menu_count = count( $nav_menus );
 
 $nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
 $menu_count = count( $nav_menus );
 
@@ -380,7 +388,10 @@ $add_new_screen = ( isset( $_GET['menu'] ) && 0 == $_GET['menu'] ) ? true : fals
 
 $locations_screen = ( isset( $_GET['action'] ) && 'locations' == $_GET['action'] ) ? true : false;
 
 
 $locations_screen = ( isset( $_GET['action'] ) && 'locations' == $_GET['action'] ) ? true : false;
 
-// If we have one theme location, and zero menus, we take them right into editing their first menu
+/*
+ * If we have one theme location, and zero menus, we take them right
+ * into editing their first menu.
+ */
 $page_count = wp_count_posts( 'page' );
 $one_theme_location_no_menus = ( 1 == count( get_registered_nav_menus() ) && ! $add_new_screen && empty( $nav_menus ) && ! empty( $page_count->publish ) ) ? true : false;
 
 $page_count = wp_count_posts( 'page' );
 $one_theme_location_no_menus = ( 1 == count( get_registered_nav_menus() ) && ! $add_new_screen && empty( $nav_menus ) && ! empty( $page_count->publish ) ) ? true : false;
 
@@ -404,32 +415,35 @@ $nav_menus_l10n = array(
 );
 wp_localize_script( 'nav-menu', 'menus', $nav_menus_l10n );
 
 );
 wp_localize_script( 'nav-menu', 'menus', $nav_menus_l10n );
 
-// Redirect to add screen if there are no menus and this users has either zero, or more than 1 theme locations
+/*
+ * Redirect to add screen if there are no menus and this users has either zero,
+ * or more than 1 theme locations.
+ */
 if ( 0 == $menu_count && ! $add_new_screen && ! $one_theme_location_no_menus )
        wp_redirect( admin_url( 'nav-menus.php?action=edit&menu=0' ) );
 
 if ( 0 == $menu_count && ! $add_new_screen && ! $one_theme_location_no_menus )
        wp_redirect( admin_url( 'nav-menus.php?action=edit&menu=0' ) );
 
-// Get recently edited nav menu
+// Get recently edited nav menu.
 $recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) );
 if ( empty( $recently_edited ) && is_nav_menu( $nav_menu_selected_id ) )
        $recently_edited = $nav_menu_selected_id;
 
 $recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) );
 if ( empty( $recently_edited ) && is_nav_menu( $nav_menu_selected_id ) )
        $recently_edited = $nav_menu_selected_id;
 
-// Use $recently_edited if none are selected
+// Use $recently_edited if none are selected.
 if ( empty( $nav_menu_selected_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) )
        $nav_menu_selected_id = $recently_edited;
 
 if ( empty( $nav_menu_selected_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) )
        $nav_menu_selected_id = $recently_edited;
 
-// On deletion of menu, if another menu exists, show it
+// On deletion of menu, if another menu exists, show it.
 if ( ! $add_new_screen && 0 < $menu_count && isset( $_GET['action'] ) && 'delete' == $_GET['action'] )
        $nav_menu_selected_id = $nav_menus[0]->term_id;
 
 if ( ! $add_new_screen && 0 < $menu_count && isset( $_GET['action'] ) && 'delete' == $_GET['action'] )
        $nav_menu_selected_id = $nav_menus[0]->term_id;
 
-// Set $nav_menu_selected_id to 0 if no menus
+// Set $nav_menu_selected_id to 0 if no menus.
 if ( $one_theme_location_no_menus ) {
        $nav_menu_selected_id = 0;
 } elseif ( empty( $nav_menu_selected_id ) && ! empty( $nav_menus ) && ! $add_new_screen ) {
 if ( $one_theme_location_no_menus ) {
        $nav_menu_selected_id = 0;
 } elseif ( empty( $nav_menu_selected_id ) && ! empty( $nav_menus ) && ! $add_new_screen ) {
-       // if we have no selection yet, and we have menus, set to the first one in the list
+       // if we have no selection yet, and we have menus, set to the first one in the list.
        $nav_menu_selected_id = $nav_menus[0]->term_id;
 }
 
        $nav_menu_selected_id = $nav_menus[0]->term_id;
 }
 
-// Update the user's setting
+// Update the user's setting.
 if ( $nav_menu_selected_id != $recently_edited && is_nav_menu( $nav_menu_selected_id ) )
        update_user_meta( $current_user->ID, 'nav_menu_recently_edited', $nav_menu_selected_id );
 
 if ( $nav_menu_selected_id != $recently_edited && is_nav_menu( $nav_menu_selected_id ) )
        update_user_meta( $current_user->ID, 'nav_menu_recently_edited', $nav_menu_selected_id );
 
@@ -439,23 +453,25 @@ if ( ! $nav_menu_selected_title && is_nav_menu( $nav_menu_selected_id ) ) {
        $nav_menu_selected_title = ! is_wp_error( $_menu_object ) ? $_menu_object->name : '';
 }
 
        $nav_menu_selected_title = ! is_wp_error( $_menu_object ) ? $_menu_object->name : '';
 }
 
-// Generate truncated menu names
+// Generate truncated menu names.
 foreach( (array) $nav_menus as $key => $_nav_menu ) {
        $nav_menus[$key]->truncated_name = wp_html_excerpt( $_nav_menu->name, 40, '&hellip;' );
 }
 
 foreach( (array) $nav_menus as $key => $_nav_menu ) {
        $nav_menus[$key]->truncated_name = wp_html_excerpt( $_nav_menu->name, 40, '&hellip;' );
 }
 
-// Retrieve menu locations
+// Retrieve menu locations.
 if ( current_theme_supports( 'menus' ) ) {
        $locations = get_registered_nav_menus();
        $menu_locations = get_nav_menu_locations();
 }
 
 if ( current_theme_supports( 'menus' ) ) {
        $locations = get_registered_nav_menus();
        $menu_locations = get_nav_menu_locations();
 }
 
-// Ensure the user will be able to scroll horizontally
-// by adding a class for the max menu depth.
+/*
+ * Ensure the user will be able to scroll horizontally
+ * by adding a class for the max menu depth.
+ */
 global $_wp_nav_menu_max_depth;
 $_wp_nav_menu_max_depth = 0;
 
 global $_wp_nav_menu_max_depth;
 $_wp_nav_menu_max_depth = 0;
 
-// Calling wp_get_nav_menu_to_edit generates $_wp_nav_menu_max_depth
+// Calling wp_get_nav_menu_to_edit generates $_wp_nav_menu_max_depth.
 if ( is_nav_menu( $nav_menu_selected_id ) ) {
        $menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'post_status' => 'any' ) );
        $edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id );
 if ( is_nav_menu( $nav_menu_selected_id ) ) {
        $menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'post_status' => 'any' ) );
        $edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id );
@@ -510,7 +526,7 @@ if ( ! $locations_screen ) : // Main tab
                'title'   => __( 'Editing Menus' ),
                'content' => $editing_menus
        ) );
                'title'   => __( 'Editing Menus' ),
                'content' => $editing_menus
        ) );
-else : // Locations Tab
+else : // Locations Tab.
        $locations_overview  = '<p>' . __( 'This screen is used for globally assigning menus to locations defined by your theme.' ) . '</p>';
        $locations_overview .= '<ul><li>' . __( 'To assign menus to one or more theme locations, <strong>select a menu from each location&#8217;s drop down.</strong> When you&#8217;re finished, <strong>click Save Changes</strong>' ) . '</li>';
        $locations_overview .= '<li>' . __( 'To edit a menu currently assigned to a theme location, <strong>click the adjacent &#8217;Edit&#8217; link</strong>' ) . '</li>';
        $locations_overview  = '<p>' . __( 'This screen is used for globally assigning menus to locations defined by your theme.' ) . '</p>';
        $locations_overview .= '<ul><li>' . __( 'To assign menus to one or more theme locations, <strong>select a menu from each location&#8217;s drop down.</strong> When you&#8217;re finished, <strong>click Save Changes</strong>' ) . '</li>';
        $locations_overview .= '<li>' . __( 'To edit a menu currently assigned to a theme location, <strong>click the adjacent &#8217;Edit&#8217; link</strong>' ) . '</li>';
@@ -529,7 +545,7 @@ get_current_screen()->set_help_sidebar(
        '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
 );
 
        '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
 );
 
-// Get the admin header
+// Get the admin header.
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 <div class="wrap">
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 <div class="wrap">
@@ -620,7 +636,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
                        <label for="menu" class="selected-menu"><?php _e( 'Select a menu to edit:' ); ?></label>
                        <select name="menu" id="menu">
                                <?php if ( $add_new_screen ) : ?>
                        <label for="menu" class="selected-menu"><?php _e( 'Select a menu to edit:' ); ?></label>
                        <select name="menu" id="menu">
                                <?php if ( $add_new_screen ) : ?>
-                                       <option value="0" selected="selected"><?php _e( '-- Select --' ); ?></option>
+                                       <option value="0" selected="selected"><?php _e( '&mdash; Select &mdash;' ); ?></option>
                                <?php endif; ?>
                                <?php foreach( (array) $nav_menus as $_nav_menu ) : ?>
                                        <option value="<?php echo esc_attr( $_nav_menu->term_id ); ?>" <?php selected( $_nav_menu->term_id, $nav_menu_selected_id ); ?>>
                                <?php endif; ?>
                                <?php foreach( (array) $nav_menus as $_nav_menu ) : ?>
                                        <option value="<?php echo esc_attr( $_nav_menu->term_id ); ?>" <?php selected( $_nav_menu->term_id, $nav_menu_selected_id ); ?>>
@@ -644,7 +660,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
                                                         */
                                                        $assigned_locations = array_slice( $locations_assigned_to_this_menu, 0, absint( apply_filters( 'wp_nav_locations_listed_per_menu', 3 ) ) );
 
                                                         */
                                                        $assigned_locations = array_slice( $locations_assigned_to_this_menu, 0, absint( apply_filters( 'wp_nav_locations_listed_per_menu', 3 ) ) );
 
-                                                       // Adds ellipses following the number of locations defined in $assigned_locations
+                                                       // Adds ellipses following the number of locations defined in $assigned_locations.
                                                        if ( ! empty( $assigned_locations ) ) {
                                                                printf( ' (%1$s%2$s)',
                                                                        implode( ', ', $assigned_locations ),
                                                        if ( ! empty( $assigned_locations ) ) {
                                                                printf( ' (%1$s%2$s)',
                                                                        implode( ', ', $assigned_locations ),
index c7b115f6fa9d2a879e9383e414807d1a84a82936..e5046f9b03a1fd9ef9b41cbcccdbd15651873062 100644 (file)
@@ -39,8 +39,11 @@ foreach ( $wpdb->tables( 'ms_global' ) as $table => $prefixed_table )
  */
 function network_domain_check() {
        global $wpdb;
  */
 function network_domain_check() {
        global $wpdb;
-       if ( $wpdb->get_var( "SHOW TABLES LIKE '$wpdb->site'" ) )
+
+       $sql = $wpdb->prepare( "SHOW TABLES LIKE %s", $wpdb->esc_like( $wpdb->site ) );
+       if ( $wpdb->get_var( $sql ) ) {
                return $wpdb->get_var( "SELECT domain FROM $wpdb->site ORDER BY id ASC LIMIT 1" );
                return $wpdb->get_var( "SELECT domain FROM $wpdb->site ORDER BY id ASC LIMIT 1" );
+       }
        return false;
 }
 
        return false;
 }
 
@@ -153,7 +156,7 @@ function network_step1( $errors = false ) {
        if ( defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) {
                echo '<div class="error"><p><strong>' . __('ERROR:') . '</strong> ' . __( 'The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a network.' ) . '</p></div>';
                echo '</div>';
        if ( defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) {
                echo '<div class="error"><p><strong>' . __('ERROR:') . '</strong> ' . __( 'The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a network.' ) . '</p></div>';
                echo '</div>';
-               include ( ABSPATH . 'wp-admin/admin-footer.php' );
+               include( ABSPATH . 'wp-admin/admin-footer.php' );
                die();
        }
 
                die();
        }
 
@@ -219,11 +222,11 @@ function network_step1( $errors = false ) {
                <?php // @todo: Link to an MS readme? ?>
                <table class="form-table">
                        <tr>
                <?php // @todo: Link to an MS readme? ?>
                <table class="form-table">
                        <tr>
-                               <th><label><input type='radio' name='subdomain_install' value='1'<?php checked( $subdomain_install ); ?> /> <?php _e( 'Sub-domains' ); ?></label></th>
+                               <th><label><input type="radio" name="subdomain_install" value="1"<?php checked( $subdomain_install ); ?> /> <?php _e( 'Sub-domains' ); ?></label></th>
                                <td><?php printf( _x( 'like <code>site1.%1$s</code> and <code>site2.%1$s</code>', 'subdomain examples' ), $hostname ); ?></td>
                        </tr>
                        <tr>
                                <td><?php printf( _x( 'like <code>site1.%1$s</code> and <code>site2.%1$s</code>', 'subdomain examples' ), $hostname ); ?></td>
                        </tr>
                        <tr>
-                               <th><label><input type='radio' name='subdomain_install' value='0'<?php checked( ! $subdomain_install ); ?> /> <?php _e( 'Sub-directories' ); ?></label></th>
+                               <th><label><input type="radio" name="subdomain_install" value="0"<?php checked( ! $subdomain_install ); ?> /> <?php _e( 'Sub-directories' ); ?></label></th>
                                <td><?php printf( _x( 'like <code>%1$s/site1</code> and <code>%1$s/site2</code>', 'subdirectory examples' ), $hostname ); ?></td>
                        </tr>
                </table>
                                <td><?php printf( _x( 'like <code>%1$s/site1</code> and <code>%1$s/site2</code>', 'subdirectory examples' ), $hostname ); ?></td>
                        </tr>
                </table>
@@ -436,7 +439,7 @@ define('BLOG_ID_CURRENT_SITE', 1);</textarea>
                                        $web_config_file .= '
                 <rule name="WordPress Rule for Files" stopProcessing="true">
                     <match url="^' . $iis_subdir_match . 'files/(.+)" ignoreCase="false" />
                                        $web_config_file .= '
                 <rule name="WordPress Rule for Files" stopProcessing="true">
                     <match url="^' . $iis_subdir_match . 'files/(.+)" ignoreCase="false" />
-                    <action type="Rewrite" url="' . $iis_rewrite_base . 'wp-includes/ms-files.php?file={R:1}" appendQueryString="false" />
+                    <action type="Rewrite" url="' . $iis_rewrite_base . WPINC . '/ms-files.php?file={R:1}" appendQueryString="false" />
                 </rule>';
                 }
                 $web_config_file .= '
                 </rule>';
                 }
                 $web_config_file .= '
@@ -486,7 +489,7 @@ define('BLOG_ID_CURRENT_SITE', 1);</textarea>
                $ms_files_rewriting = '';
                if ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) {
                        $ms_files_rewriting = "\n# uploaded files\nRewriteRule ^";
                $ms_files_rewriting = '';
                if ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) {
                        $ms_files_rewriting = "\n# uploaded files\nRewriteRule ^";
-                       $ms_files_rewriting .= $subdir_match . "files/(.+) {$rewrite_base}wp-includes/ms-files.php?file={$subdir_replacement_12} [L]" . "\n";
+                       $ms_files_rewriting .= $subdir_match . "files/(.+) {$rewrite_base}" . WPINC . "/ms-files.php?file={$subdir_replacement_12} [L]" . "\n";
                }
 
                $htaccess_file = <<<EOF
                }
 
                $htaccess_file = <<<EOF
@@ -530,7 +533,7 @@ if ( $_POST ) {
        check_admin_referer( 'install-network-1' );
 
        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
        check_admin_referer( 'install-network-1' );
 
        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
-       // create network tables
+       // Create network tables.
        install_network();
        $base              = parse_url( trailingslashit( get_option( 'home' ) ), PHP_URL_PATH );
        $subdomain_install = allow_subdomain_install() ? !empty( $_POST['subdomain_install'] ) : false;
        install_network();
        $base              = parse_url( trailingslashit( get_option( 'home' ) ), PHP_URL_PATH );
        $subdomain_install = allow_subdomain_install() ? !empty( $_POST['subdomain_install'] ) : false;
index 3497ddb007a76c63f7de61f84b5a5331d08f3079..6349e8cdd0c9c920f43755705d400be34108809b 100644 (file)
@@ -85,7 +85,7 @@ if ( isset( $_GET['updated'] ) ) {
 
 <div class="wrap">
        <h2><?php echo esc_html( $title ); ?></h2>
 
 <div class="wrap">
        <h2><?php echo esc_html( $title ); ?></h2>
-       <form method="post" action="settings.php">
+       <form method="post" action="settings.php" novalidate="novalidate">
                <?php wp_nonce_field( 'siteoptions' ); ?>
                <h3><?php _e( 'Operational Settings' ); ?></h3>
                <table class="form-table">
                <?php wp_nonce_field( 'siteoptions' ); ?>
                <h3><?php _e( 'Operational Settings' ); ?></h3>
                <table class="form-table">
@@ -99,10 +99,10 @@ if ( isset( $_GET['updated'] ) ) {
                        <tr>
                                <th scope="row"><label for="admin_email"><?php _e( 'Network Admin Email' ) ?></label></th>
                                <td>
                        <tr>
                                <th scope="row"><label for="admin_email"><?php _e( 'Network Admin Email' ) ?></label></th>
                                <td>
-                                       <input name="admin_email" type="text" id="admin_email" class="regular-text" value="<?php echo esc_attr( get_site_option('admin_email') ) ?>" />
+                                       <input name="admin_email" type="email" id="admin_email" class="regular-text" value="<?php echo esc_attr( get_site_option( 'admin_email' ) ) ?>" />
                                        <p class="description">
                                                <?php _e( 'This email address will receive notifications. Registration and support emails will also come from this address.' ); ?>
                                        <p class="description">
                                                <?php _e( 'This email address will receive notifications. Registration and support emails will also come from this address.' ); ?>
-                                       </p>    
+                                       </p>
                                </td>
                        </tr>
                </table>
                                </td>
                        </tr>
                </table>
@@ -165,7 +165,7 @@ if ( isset( $_GET['updated'] ) ) {
 <?php echo esc_textarea( $limited_email_domains == '' ? '' : implode( "\n", (array) $limited_email_domains ) ); ?></textarea>
                                        <p class="description">
                                                <?php _e( 'If you want to limit site registrations to certain domains. One domain per line.' ) ?>
 <?php echo esc_textarea( $limited_email_domains == '' ? '' : implode( "\n", (array) $limited_email_domains ) ); ?></textarea>
                                        <p class="description">
                                                <?php _e( 'If you want to limit site registrations to certain domains. One domain per line.' ) ?>
-                                       </p>    
+                                       </p>
                                </td>
                        </tr>
 
                                </td>
                        </tr>
 
@@ -231,7 +231,7 @@ if ( isset( $_GET['updated'] ) ) {
 <?php echo esc_textarea( get_site_option( 'first_comment' ) ) ?></textarea>
                                        <p class="description">
                                                <?php _e( 'The first comment on a new site.' ) ?>
 <?php echo esc_textarea( get_site_option( 'first_comment' ) ) ?></textarea>
                                        <p class="description">
                                                <?php _e( 'The first comment on a new site.' ) ?>
-                                       </p>    
+                                       </p>
                                </td>
                        </tr>
                        <tr>
                                </td>
                        </tr>
                        <tr>
@@ -273,25 +273,34 @@ if ( isset( $_GET['updated'] ) ) {
                        </tr>
                </table>
 
                        </tr>
                </table>
 
-<?php
+               <?php
                $languages = get_available_languages();
                if ( ! empty( $languages ) ) {
                $languages = get_available_languages();
                if ( ! empty( $languages ) ) {
-                       $lang = get_site_option( 'WPLANG' );
-?>
-               <h3><?php _e( 'Language Settings' ); ?></h3>
-               <table class="form-table">
+                       ?>
+                       <h3><?php _e( 'Language Settings' ); ?></h3>
+                       <table class="form-table">
                                <tr>
                                        <th><label for="WPLANG"><?php _e( 'Default Language' ); ?></label></th>
                                        <td>
                                <tr>
                                        <th><label for="WPLANG"><?php _e( 'Default Language' ); ?></label></th>
                                        <td>
-                                               <select name="WPLANG" id="WPLANG">
-                                                       <?php mu_dropdown_languages( $languages, get_site_option( 'WPLANG' ) ); ?>
-                                               </select>
+                                               <?php
+                                               $lang = get_site_option( 'WPLANG' );
+                                               if ( ! in_array( $lang, $languages ) ) {
+                                                       $lang = '';
+                                               }
+
+                                               wp_dropdown_languages( array(
+                                                       'name'      => 'WPLANG',
+                                                       'id'        => 'WPLANG',
+                                                       'selected'  => $lang,
+                                                       'languages' => $languages,
+                                               ) );
+                                               ?>
                                        </td>
                                </tr>
                                        </td>
                                </tr>
-               </table>
-<?php
-               } // languages
-?>
+                       </table>
+                       <?php
+               }
+               ?>
 
                <h3><?php _e( 'Menu Settings' ); ?></h3>
                <table id="menu" class="form-table">
 
                <h3><?php _e( 'Menu Settings' ); ?></h3>
                <table id="menu" class="form-table">
@@ -324,7 +333,7 @@ if ( isset( $_GET['updated'] ) ) {
                        </tr>
                </table>
 
                        </tr>
                </table>
 
-               <?php 
+               <?php
                /**
                 * Fires at the end of the Network Settings form, before the submit button.
                 *
                /**
                 * Fires at the end of the Network Settings form, before the submit button.
                 *
index 1034af14787c5bdfa04aade729d521d9eb8430f9..2fb9fefedcd903a9b4bc53255578f5c5a388d8ed 100644 (file)
@@ -42,6 +42,7 @@ $details = get_blog_details( $id );
 if ( !can_edit_network( $details->site_id ) )
        wp_die( __( 'You do not have permission to access this page.' ) );
 
 if ( !can_edit_network( $details->site_id ) )
        wp_die( __( 'You do not have permission to access this page.' ) );
 
+$parsed = parse_url( $details->siteurl );
 $is_main_site = is_main_site( $id );
 
 if ( isset($_REQUEST['action']) && 'update-site' == $_REQUEST['action'] ) {
 $is_main_site = is_main_site( $id );
 
 if ( isset($_REQUEST['action']) && 'update-site' == $_REQUEST['action'] ) {
@@ -58,10 +59,10 @@ if ( isset($_REQUEST['action']) && 'update-site' == $_REQUEST['action'] ) {
                        update_option( 'home', $blog_address );
        }
 
                        update_option( 'home', $blog_address );
        }
 
-       // rewrite rules can't be flushed during switch to blog
+       // Rewrite rules can't be flushed during switch to blog.
        delete_option( 'rewrite_rules' );
 
        delete_option( 'rewrite_rules' );
 
-       // update blogs table
+       // Update blogs table.
        $blog_data = wp_unslash( $_POST['blog'] );
        $existing_details = get_blog_details( $id, false );
        $blog_data_checkboxes = array( 'public', 'archived', 'spam', 'mature', 'deleted' );
        $blog_data = wp_unslash( $_POST['blog'] );
        $existing_details = get_blog_details( $id, false );
        $blog_data_checkboxes = array( 'public', 'archived', 'spam', 'mature', 'deleted' );
@@ -122,12 +123,10 @@ if ( ! empty( $messages ) ) {
        <table class="form-table">
                <tr class="form-field form-required">
                        <th scope="row"><?php _e( 'Domain' ) ?></th>
        <table class="form-table">
                <tr class="form-field form-required">
                        <th scope="row"><?php _e( 'Domain' ) ?></th>
-                       <?php
-                       $protocol = is_ssl() ? 'https://' : 'http://';
-                       if ( $is_main_site ) { ?>
-                       <td><code><?php echo $protocol; echo esc_attr( $details->domain ) ?></code></td>
+                       <?php if ( $is_main_site ) { ?>
+                               <td><code><?php echo $parsed['scheme'] . '://' . esc_attr( $details->domain ) ?></code></td>
                        <?php } else { ?>
                        <?php } else { ?>
-                       <td><?php echo $protocol; ?><input name="blog[domain]" type="text" id="domain" value="<?php echo esc_attr( $details->domain ) ?>" size="33" /></td>
+                               <td><?php echo $parsed['scheme'] . '://'; ?><input name="blog[domain]" type="text" id="domain" value="<?php echo esc_attr( $details->domain ) ?>" size="33" /></td>
                        <?php } ?>
                </tr>
                <tr class="form-field form-required">
                        <?php } ?>
                </tr>
                <tr class="form-field form-required">
@@ -138,7 +137,7 @@ if ( ! empty( $messages ) ) {
                        } else {
                                switch_to_blog( $id );
                        ?>
                        } else {
                                switch_to_blog( $id );
                        ?>
-                       <td><input name="blog[path]" type="text" id="path" value="<?php echo esc_attr( $details->path ) ?>" size="40" style='margin-bottom:5px;' />
+                       <td><input name="blog[path]" type="text" id="path" value="<?php echo esc_attr( $details->path ) ?>" size="40" style="margin-bottom:5px;" />
                        <br /><input type="checkbox" style="width:20px;" name="update_home_url" value="update" <?php if ( get_option( 'siteurl' ) == untrailingslashit( get_blogaddress_by_id ($id ) ) || get_option( 'home' ) == untrailingslashit( get_blogaddress_by_id( $id ) ) ) echo 'checked="checked"'; ?> /> <?php _e( 'Update <code>siteurl</code> and <code>home</code> as well.' ); ?></td>
                        <?php
                                restore_current_blog();
                        <br /><input type="checkbox" style="width:20px;" name="update_home_url" value="update" <?php if ( get_option( 'siteurl' ) == untrailingslashit( get_blogaddress_by_id ($id ) ) || get_option( 'home' ) == untrailingslashit( get_blogaddress_by_id( $id ) ) ) echo 'checked="checked"'; ?> /> <?php _e( 'Update <code>siteurl</code> and <code>home</code> as well.' ); ?></td>
                        <?php
                                restore_current_blog();
index 6a6cac993f1ac87b20bc6691a87e1909d6c56142..d8024400d5abc3139ab005011ff451dec89120c5 100644 (file)
@@ -119,7 +119,7 @@ if ( ! empty( $messages ) ) {
        foreach ( $messages as $msg )
                echo '<div id="message" class="updated"><p>' . $msg . '</p></div>';
 } ?>
        foreach ( $messages as $msg )
                echo '<div id="message" class="updated"><p>' . $msg . '</p></div>';
 } ?>
-<form method="post" action="<?php echo network_admin_url('site-new.php?action=add-site'); ?>">
+<form method="post" action="<?php echo network_admin_url( 'site-new.php?action=add-site' ); ?>" novalidate="novalidate">
 <?php wp_nonce_field( 'add-blog', '_wpnonce_add-blog' ) ?>
        <table class="form-table">
                <tr class="form-field form-required">
 <?php wp_nonce_field( 'add-blog', '_wpnonce_add-blog' ) ?>
        <table class="form-table">
                <tr class="form-field form-required">
@@ -140,7 +140,7 @@ if ( ! empty( $messages ) ) {
                </tr>
                <tr class="form-field form-required">
                        <th scope="row"><?php _e( 'Admin Email' ) ?></th>
                </tr>
                <tr class="form-field form-required">
                        <th scope="row"><?php _e( 'Admin Email' ) ?></th>
-                       <td><input name="blog[email]" type="text" class="regular-text wp-suggest-user" data-autocomplete-type="search" data-autocomplete-field="user_email" title="<?php esc_attr_e( 'Email' ) ?>"/></td>
+                       <td><input name="blog[email]" type="email" class="regular-text wp-suggest-user" data-autocomplete-type="search" data-autocomplete-field="user_email" title="<?php esc_attr_e( 'Email' ) ?>"/></td>
                </tr>
                <tr class="form-field">
                        <td colspan="2"><?php _e( 'A new user will be created if the above email address is not in the database.' ) ?><br /><?php _e( 'The username and password will be mailed to this email address.' ) ?></td>
                </tr>
                <tr class="form-field">
                        <td colspan="2"><?php _e( 'A new user will be created if the above email address is not in the database.' ) ?><br /><?php _e( 'The username and password will be mailed to this email address.' ) ?></td>
index aeca875e50634686ebfe4357a86254841737fa80..1decdcbec1c2a50cb97393ddc4d03a829a986eda 100644 (file)
@@ -113,7 +113,14 @@ if ( ! empty( $messages ) ) {
        <table class="form-table">
                <?php
                $blog_prefix = $wpdb->get_blog_prefix( $id );
        <table class="form-table">
                <?php
                $blog_prefix = $wpdb->get_blog_prefix( $id );
-               $options = $wpdb->get_results( "SELECT * FROM {$blog_prefix}options WHERE option_name NOT LIKE '\_%' AND option_name NOT LIKE '%user_roles'" );
+               $sql = "SELECT * FROM {$blog_prefix}options
+                       WHERE option_name NOT LIKE %s
+                       AND option_name NOT LIKE %s";
+               $query = $wpdb->prepare( $sql,
+                       $wpdb->esc_like( '_' ) . '%',
+                       '%' . $wpdb->esc_like( 'user_roles' )
+               );
+               $options = $wpdb->get_results( $query );
                foreach ( $options as $option ) {
                        if ( $option->option_name == 'default_role' )
                                $editblog_default_role = $option->option_value;
                foreach ( $options as $option ) {
                        if ( $option->option_name == 'default_role' )
                                $editblog_default_role = $option->option_value;
index 4e2c6c9d92e6c6ae7ff9cc1a033764951c1a6065..a037c8b8710efa388159220f706e33a13861b282 100644 (file)
@@ -176,7 +176,7 @@ if ( ! wp_is_large_network( 'users' ) && apply_filters( 'show_network_site_users
 
 require( ABSPATH . 'wp-admin/admin-header.php' ); ?>
 
 
 require( ABSPATH . 'wp-admin/admin-header.php' ); ?>
 
-<script type='text/javascript'>
+<script type="text/javascript">
 /* <![CDATA[ */
 var current_site_id = <?php echo $id; ?>;
 /* ]]> */
 /* <![CDATA[ */
 var current_site_id = <?php echo $id; ?>;
 /* ]]> */
index 230463f328f5ce591d762ee67abb16dc6099d098..a70d5b84049664e500afd07854c26f8d59750e17 100644 (file)
@@ -40,14 +40,12 @@ if ( $action ) {
                        else
                                wp_safe_redirect( add_query_arg( 'enabled', 1, $referer ) );
                        exit;
                        else
                                wp_safe_redirect( add_query_arg( 'enabled', 1, $referer ) );
                        exit;
-                       break;
                case 'disable':
                        check_admin_referer('disable-theme_' . $_GET['theme']);
                        unset( $allowed_themes[ $_GET['theme'] ] );
                        update_site_option( 'allowedthemes', $allowed_themes );
                        wp_safe_redirect( add_query_arg( 'disabled', '1', $referer ) );
                        exit;
                case 'disable':
                        check_admin_referer('disable-theme_' . $_GET['theme']);
                        unset( $allowed_themes[ $_GET['theme'] ] );
                        update_site_option( 'allowedthemes', $allowed_themes );
                        wp_safe_redirect( add_query_arg( 'disabled', '1', $referer ) );
                        exit;
-                       break;
                case 'enable-selected':
                        check_admin_referer('bulk-themes');
                        $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
                case 'enable-selected':
                        check_admin_referer('bulk-themes');
                        $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
@@ -60,7 +58,6 @@ if ( $action ) {
                        update_site_option( 'allowedthemes', $allowed_themes );
                        wp_safe_redirect( add_query_arg( 'enabled', count( $themes ), $referer ) );
                        exit;
                        update_site_option( 'allowedthemes', $allowed_themes );
                        wp_safe_redirect( add_query_arg( 'enabled', count( $themes ), $referer ) );
                        exit;
-                       break;
                case 'disable-selected':
                        check_admin_referer('bulk-themes');
                        $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
                case 'disable-selected':
                        check_admin_referer('bulk-themes');
                        $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
@@ -73,7 +70,6 @@ if ( $action ) {
                        update_site_option( 'allowedthemes', $allowed_themes );
                        wp_safe_redirect( add_query_arg( 'disabled', count( $themes ), $referer ) );
                        exit;
                        update_site_option( 'allowedthemes', $allowed_themes );
                        wp_safe_redirect( add_query_arg( 'disabled', count( $themes ), $referer ) );
                        exit;
-                       break;
                case 'update-selected' :
                        check_admin_referer( 'bulk-themes' );
 
                case 'update-selected' :
                        check_admin_referer( 'bulk-themes' );
 
@@ -99,7 +95,6 @@ if ( $action ) {
                        echo '</div>';
                        require_once(ABSPATH . 'wp-admin/admin-footer.php');
                        exit;
                        echo '</div>';
                        require_once(ABSPATH . 'wp-admin/admin-footer.php');
                        exit;
-                       break;
                case 'delete-selected':
                        if ( ! current_user_can( 'delete_themes' ) )
                                wp_die( __('You do not have sufficient permissions to delete themes for this site.') );
                case 'delete-selected':
                        if ( ! current_user_can( 'delete_themes' ) )
                                wp_die( __('You do not have sufficient permissions to delete themes for this site.') );
@@ -182,7 +177,7 @@ if ( $action ) {
                                        '_wpnonce' => $_REQUEST['_wpnonce']
                                ), network_admin_url( 'themes.php' ) ) ) );
                        }
                                        '_wpnonce' => $_REQUEST['_wpnonce']
                                ), network_admin_url( 'themes.php' ) ) ) );
                        }
-                       
+
                        $paged = ( $_REQUEST['paged'] ) ? $_REQUEST['paged'] : 1;
                        wp_redirect( add_query_arg( array(
                                'deleted' => count( $themes ),
                        $paged = ( $_REQUEST['paged'] ) ? $_REQUEST['paged'] : 1;
                        wp_redirect( add_query_arg( array(
                                'deleted' => count( $themes ),
@@ -190,7 +185,6 @@ if ( $action ) {
                                's' => $s
                        ), network_admin_url( 'themes.php' ) ) );
                        exit;
                                's' => $s
                        ), network_admin_url( 'themes.php' ) ) );
                        exit;
-                       break;
        }
 }
 
        }
 }
 
index 15a5b74a980b0401bb3217997205c56236c16dc9..f7ea218125225044ca6c0877049a9d984bb6a4e6 100644 (file)
@@ -86,7 +86,7 @@ switch ( $action ) {
                }
                echo "</ul>";
                ?><p><?php _e( 'If your browser doesn&#8217;t start loading the next page automatically, click this link:' ); ?> <a class="button" href="upgrade.php?action=upgrade&amp;n=<?php echo ($n + 5) ?>"><?php _e("Next Sites"); ?></a></p>
                }
                echo "</ul>";
                ?><p><?php _e( 'If your browser doesn&#8217;t start loading the next page automatically, click this link:' ); ?> <a class="button" href="upgrade.php?action=upgrade&amp;n=<?php echo ($n + 5) ?>"><?php _e("Next Sites"); ?></a></p>
-               <script type='text/javascript'>
+               <script type="text/javascript">
                <!--
                function nextpage() {
                        location.href = "upgrade.php?action=upgrade&n=<?php echo ($n + 5) ?>";
                <!--
                function nextpage() {
                        location.href = "upgrade.php?action=upgrade&n=<?php echo ($n + 5) ?>";
index 9694b6d164c5037dae59a047d16fd9f0049267e9..39ab1b5a0d06511e1984a1f9438e5fd063701ac4 100644 (file)
@@ -28,7 +28,7 @@ function confirm_delete_users( $users ) {
        <?php
        wp_nonce_field( 'ms-users-delete' );
        $site_admins = get_super_admins();
        <?php
        wp_nonce_field( 'ms-users-delete' );
        $site_admins = get_super_admins();
-       $admin_out = "<option value='$current_user->ID'>$current_user->user_login</option>";
+       $admin_out = '<option value="' . $current_user->ID . '">' . $current_user->user_login . '</option>';
 
        foreach ( ( $allusers = (array) $_POST['allusers'] ) as $key => $val ) {
                if ( $val != '' && $val != '0' ) {
 
        foreach ( ( $allusers = (array) $_POST['allusers'] ) as $key => $val ) {
                if ( $val != '' && $val != '0' ) {
@@ -77,6 +77,9 @@ function confirm_delete_users( $users ) {
                }
        }
 
                }
        }
 
+       /** This action is documented in wp-admin/users.php */
+       do_action( 'delete_user_form', $current_user );
+
        submit_button( __('Confirm Deletion'), 'delete' );
        ?>
        </form>
        submit_button( __('Confirm Deletion'), 'delete' );
        ?>
        </form>
@@ -109,7 +112,6 @@ if ( isset( $_GET['action'] ) ) {
                                wp_redirect( network_admin_url( 'users.php' ) );
                        }
                        exit();
                                wp_redirect( network_admin_url( 'users.php' ) );
                        }
                        exit();
-               break;
 
                case 'allusers':
                        if ( !current_user_can( 'manage_network_users' ) )
 
                case 'allusers':
                        if ( !current_user_can( 'manage_network_users' ) )
@@ -135,7 +137,6 @@ if ( isset( $_GET['action'] ) ) {
                                                                echo '</div>';
                                                                require_once( ABSPATH . 'wp-admin/admin-footer.php' );
                                                                exit();
                                                                echo '</div>';
                                                                require_once( ABSPATH . 'wp-admin/admin-footer.php' );
                                                                exit();
-                                                       break;
 
                                                        case 'spam':
                                                                $user = get_userdata( $val );
 
                                                        case 'spam':
                                                                $user = get_userdata( $val );
@@ -172,7 +173,6 @@ if ( isset( $_GET['action'] ) ) {
                                wp_redirect( $location );
                        }
                        exit();
                                wp_redirect( $location );
                        }
                        exit();
-               break;
 
                case 'dodelete':
                        check_admin_referer( 'ms-users-delete' );
 
                case 'dodelete':
                        check_admin_referer( 'ms-users-delete' );
@@ -208,7 +208,6 @@ if ( isset( $_GET['action'] ) ) {
 
                        wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $deletefunction ), network_admin_url( 'users.php' ) ) );
                        exit();
 
                        wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $deletefunction ), network_admin_url( 'users.php' ) ) );
                        exit();
-               break;
        }
 }
 
        }
 }
 
@@ -289,7 +288,7 @@ if ( isset( $_REQUEST['updated'] ) && $_REQUEST['updated'] == 'true' && ! empty(
                <?php $wp_list_table->search_box( __( 'Search Users' ), 'all-user' ); ?>
        </form>
 
                <?php $wp_list_table->search_box( __( 'Search Users' ), 'all-user' ); ?>
        </form>
 
-       <form id="form-user-list" action='users.php?action=allusers' method='post'>
+       <form id="form-user-list" action="users.php?action=allusers" method="post">
                <?php $wp_list_table->display(); ?>
        </form>
 </div>
                <?php $wp_list_table->display(); ?>
        </form>
 </div>
index 38f20c580018fdab586a1a36d2644b7d6d1c7a78..701188555353a3b4de1734327b99b4a90397cb31 100644 (file)
@@ -86,7 +86,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 <div class="wrap">
 <h2><?php echo esc_html( $title ); ?></h2>
 
 <div class="wrap">
 <h2><?php echo esc_html( $title ); ?></h2>
 
-<form method="post" action="options.php">
+<form method="post" action="options.php" novalidate="novalidate">
 <?php settings_fields('general'); ?>
 
 <table class="form-table">
 <?php settings_fields('general'); ?>
 
 <table class="form-table">
@@ -102,16 +102,16 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 <?php if ( !is_multisite() ) { ?>
 <tr>
 <th scope="row"><label for="siteurl"><?php _e('WordPress Address (URL)') ?></label></th>
 <?php if ( !is_multisite() ) { ?>
 <tr>
 <th scope="row"><label for="siteurl"><?php _e('WordPress Address (URL)') ?></label></th>
-<td><input name="siteurl" type="text" id="siteurl" value="<?php form_option('siteurl'); ?>"<?php disabled( defined( 'WP_SITEURL' ) ); ?> class="regular-text code<?php if ( defined( 'WP_SITEURL' ) ) echo ' disabled' ?>" /></td>
+<td><input name="siteurl" type="url" id="siteurl" value="<?php form_option( 'siteurl' ); ?>"<?php disabled( defined( 'WP_SITEURL' ) ); ?> class="regular-text code<?php if ( defined( 'WP_SITEURL' ) ) echo ' disabled' ?>" /></td>
 </tr>
 <tr>
 <th scope="row"><label for="home"><?php _e('Site Address (URL)') ?></label></th>
 </tr>
 <tr>
 <th scope="row"><label for="home"><?php _e('Site Address (URL)') ?></label></th>
-<td><input name="home" type="text" id="home" value="<?php form_option('home'); ?>"<?php disabled( defined( 'WP_HOME' ) ); ?> class="regular-text code<?php if ( defined( 'WP_HOME' ) ) echo ' disabled' ?>" />
+<td><input name="home" type="url" id="home" value="<?php form_option( 'home' ); ?>"<?php disabled( defined( 'WP_HOME' ) ); ?> class="regular-text code<?php if ( defined( 'WP_HOME' ) ) echo ' disabled' ?>" />
 <p class="description"><?php _e('Enter the address here if you want your site homepage <a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">to be different from the directory</a> you installed WordPress.'); ?></p></td>
 </tr>
 <tr>
 <th scope="row"><label for="admin_email"><?php _e('E-mail Address') ?> </label></th>
 <p class="description"><?php _e('Enter the address here if you want your site homepage <a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">to be different from the directory</a> you installed WordPress.'); ?></p></td>
 </tr>
 <tr>
 <th scope="row"><label for="admin_email"><?php _e('E-mail Address') ?> </label></th>
-<td><input name="admin_email" type="text" id="admin_email" value="<?php form_option('admin_email'); ?>" class="regular-text ltr" />
+<td><input name="admin_email" type="email" id="admin_email" value="<?php form_option( 'admin_email' ); ?>" class="regular-text ltr" />
 <p class="description"><?php _e('This address is used for admin purposes, like new user notification.') ?></p></td>
 </tr>
 <tr>
 <p class="description"><?php _e('This address is used for admin purposes, like new user notification.') ?></p></td>
 </tr>
 <tr>
@@ -130,7 +130,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 <?php } else { ?>
 <tr>
 <th scope="row"><label for="new_admin_email"><?php _e('E-mail Address') ?> </label></th>
 <?php } else { ?>
 <tr>
 <th scope="row"><label for="new_admin_email"><?php _e('E-mail Address') ?> </label></th>
-<td><input name="new_admin_email" type="text" id="new_admin_email" value="<?php form_option('admin_email'); ?>" class="regular-text ltr" />
+<td><input name="new_admin_email" type="email" id="new_admin_email" value="<?php form_option( 'admin_email' ); ?>" class="regular-text ltr" />
 <p class="description"><?php _e('This address is used for admin purposes. If you change this we will send you an e-mail at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>') ?></p>
 <?php
 $new_admin_email = get_option( 'new_admin_email' );
 <p class="description"><?php _e('This address is used for admin purposes. If you change this we will send you an e-mail at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>') ?></p>
 <?php
 $new_admin_email = get_option( 'new_admin_email' );
@@ -232,10 +232,11 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
        * Filter the default date formats.
        *
        * @since 2.7.0
        * Filter the default date formats.
        *
        * @since 2.7.0
+       * @since 4.0.0 Added ISO date standard YYYY-MM-DD format.
        *
        * @param array $default_date_formats Array of default date formats.
        */
        *
        * @param array $default_date_formats Array of default date formats.
        */
-       $date_formats = array_unique( apply_filters( 'date_formats', array( __( 'F j, Y' ), 'Y/m/d', 'm/d/Y', 'd/m/Y' ) ) );
+       $date_formats = array_unique( apply_filters( 'date_formats', array( __( 'F j, Y' ), 'Y-m-d', 'm/d/Y', 'd/m/Y' ) ) );
 
        $custom = true;
 
 
        $custom = true;
 
@@ -251,8 +252,6 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
        echo '  <label><input type="radio" name="date_format" id="date_format_custom_radio" value="\c\u\s\t\o\m"';
        checked( $custom );
        echo '/> ' . __('Custom:') . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option('date_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('date_format') ) . "</span> <span class='spinner'></span>\n";
        echo '  <label><input type="radio" name="date_format" id="date_format_custom_radio" value="\c\u\s\t\o\m"';
        checked( $custom );
        echo '/> ' . __('Custom:') . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option('date_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('date_format') ) . "</span> <span class='spinner'></span>\n";
-
-       echo "\t<p>" . __('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date and time formatting</a>.') . "</p>\n";
 ?>
        </fieldset>
 </td>
 ?>
        </fieldset>
 </td>
@@ -285,7 +284,8 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
        echo '  <label><input type="radio" name="time_format" id="time_format_custom_radio" value="\c\u\s\t\o\m"';
        checked( $custom );
        echo '/> ' . __('Custom:') . ' </label><input type="text" name="time_format_custom" value="' . esc_attr( get_option('time_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('time_format') ) . "</span> <span class='spinner'></span>\n";
        echo '  <label><input type="radio" name="time_format" id="time_format_custom_radio" value="\c\u\s\t\o\m"';
        checked( $custom );
        echo '/> ' . __('Custom:') . ' </label><input type="text" name="time_format_custom" value="' . esc_attr( get_option('time_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('time_format') ) . "</span> <span class='spinner'></span>\n";
-       ;
+
+       echo "\t<p>" . __('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date and time formatting</a>.') . "</p>\n";
 ?>
        </fieldset>
 </td>
 ?>
        </fieldset>
 </td>
@@ -302,20 +302,46 @@ endfor;
 </select></td>
 </tr>
 <?php do_settings_fields('general', 'default'); ?>
 </select></td>
 </tr>
 <?php do_settings_fields('general', 'default'); ?>
+
 <?php
 <?php
-       $languages = get_available_languages();
-       if ( is_multisite() && !empty( $languages ) ):
-?>
+$languages = get_available_languages();
+if ( ! is_multisite() && defined( 'WPLANG' ) && '' !== WPLANG && 'en_US' !== WPLANG && ! in_array( WPLANG, $languages ) ) {
+       $languages[] = WPLANG;
+}
+if ( $languages ) {
+       ?>
        <tr>
        <tr>
-               <th width="33%" scope="row"><?php _e('Site Language') ?></th>
+               <th width="33%" scope="row"><label for="WPLANG"><?php _e( 'Site Language' ); ?></label></th>
                <td>
                <td>
-                       <select name="WPLANG" id="WPLANG">
-                               <?php mu_dropdown_languages( $languages, get_option('WPLANG') ); ?>
-                       </select>
+                       <?php
+                       $locale = get_locale();
+                       if ( ! in_array( $locale, $languages ) ) {
+                               $locale = '';
+                       }
+
+                       wp_dropdown_languages( array(
+                               'name'      => 'WPLANG',
+                               'id'        => 'WPLANG',
+                               'selected'  => $locale,
+                               'languages' => $languages,
+                       ) );
+
+                       // Add note about deprecated WPLANG constant.
+                       if ( defined( 'WPLANG' ) && ( '' !== WPLANG ) && $locale !== WPLANG ) {
+                               if ( is_super_admin() ) {
+                                       ?>
+                                       <p class="description">
+                                               <strong><?php _e( 'Note:' ); ?></strong> <?php printf( __( 'The %s constant in your %s file is no longer needed.' ), '<code>WPLANG</code>', '<code>wp-config.php</code>' ); ?>
+                                       </p>
+                                       <?php
+                               }
+                               _deprecated_argument( 'define()', '4.0', sprintf( __( 'The %s constant in your %s file is no longer needed.' ), 'WPLANG', 'wp-config.php' ) );
+                       }
+                       ?>
                </td>
        </tr>
                </td>
        </tr>
-<?php
-       endif;
+       <?php
+}
 ?>
 </table>
 
 ?>
 </table>
 
index f705a9f662c38700fd6520a1287bfe35d1715a2c..29a93446945f114f599fd973d211051ca4a1dd4b 100644 (file)
@@ -26,9 +26,10 @@ wp_reset_vars(array('action', 'option_page'));
 
 $capability = 'manage_options';
 
 
 $capability = 'manage_options';
 
-if ( empty($option_page) ) // This is for back compat and will eventually be removed.
+// This is for back compat and will eventually be removed.
+if ( empty($option_page) ) {
        $option_page = 'options';
        $option_page = 'options';
-else
+} else {
 
        /**
         * Filter the capability required when using the Settings API.
 
        /**
         * Filter the capability required when using the Settings API.
@@ -41,6 +42,7 @@ else
         * @param string $capability The capability used for the page, which is manage_options by default.
         */
        $capability = apply_filters( "option_page_capability_{$option_page}", $capability );
         * @param string $capability The capability used for the page, which is manage_options by default.
         */
        $capability = apply_filters( "option_page_capability_{$option_page}", $capability );
+}
 
 if ( !current_user_can( $capability ) )
        wp_die(__('Cheatin&#8217; uh?'));
 
 if ( !current_user_can( $capability ) )
        wp_die(__('Cheatin&#8217; uh?'));
@@ -70,7 +72,7 @@ if ( is_multisite() && !is_super_admin() && 'update' != $action )
        wp_die(__('Cheatin&#8217; uh?'));
 
 $whitelist_options = array(
        wp_die(__('Cheatin&#8217; uh?'));
 
 $whitelist_options = array(
-       'general' => array( 'blogname', 'blogdescription', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'timezone_string' ),
+       'general' => array( 'blogname', 'blogdescription', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'timezone_string', 'WPLANG' ),
        'discussion' => array( 'default_pingback_flag', 'default_ping_status', 'default_comment_status', 'comments_notify', 'moderation_notify', 'comment_moderation', 'require_name_email', 'comment_whitelist', 'comment_max_links', 'moderation_keys', 'blacklist_keys', 'show_avatars', 'avatar_rating', 'avatar_default', 'close_comments_for_old_posts', 'close_comments_days_old', 'thread_comments', 'thread_comments_depth', 'page_comments', 'comments_per_page', 'default_comments_page', 'comment_order', 'comment_registration' ),
        'media' => array( 'thumbnail_size_w', 'thumbnail_size_h', 'thumbnail_crop', 'medium_size_w', 'medium_size_h', 'large_size_w', 'large_size_h', 'image_default_size', 'image_default_align', 'image_default_link_type' ),
        'reading' => array( 'posts_per_page', 'posts_per_rss', 'rss_use_excerpt', 'show_on_front', 'page_on_front', 'page_for_posts', 'blog_public' ),
        'discussion' => array( 'default_pingback_flag', 'default_ping_status', 'default_comment_status', 'comments_notify', 'moderation_notify', 'comment_moderation', 'require_name_email', 'comment_whitelist', 'comment_max_links', 'moderation_keys', 'blacklist_keys', 'show_avatars', 'avatar_rating', 'avatar_default', 'close_comments_for_old_posts', 'close_comments_days_old', 'thread_comments', 'thread_comments_depth', 'page_comments', 'comments_per_page', 'default_comments_page', 'comment_order', 'comment_registration' ),
        'media' => array( 'thumbnail_size_w', 'thumbnail_size_h', 'thumbnail_crop', 'medium_size_w', 'medium_size_h', 'large_size_w', 'large_size_h', 'image_default_size', 'image_default_align', 'image_default_link_type' ),
        'reading' => array( 'posts_per_page', 'posts_per_rss', 'rss_use_excerpt', 'show_on_front', 'page_on_front', 'page_for_posts', 'blog_public' ),
@@ -105,7 +107,6 @@ if ( !is_multisite() ) {
        }
 } else {
        $whitelist_options['general'][] = 'new_admin_email';
        }
 } else {
        $whitelist_options['general'][] = 'new_admin_email';
-       $whitelist_options['general'][] = 'WPLANG';
 
        /**
         * Filter whether the post-by-email functionality is enabled.
 
        /**
         * Filter whether the post-by-email functionality is enabled.
@@ -150,7 +151,7 @@ if ( 'update' == $action ) {
                $options = $whitelist_options[ $option_page ];
        }
 
                $options = $whitelist_options[ $option_page ];
        }
 
-       // Handle custom date/time formats
+       // Handle custom date/time formats.
        if ( 'general' == $option_page ) {
                if ( !empty($_POST['date_format']) && isset($_POST['date_format_custom']) && '\c\u\s\t\o\m' == wp_unslash( $_POST['date_format'] ) )
                        $_POST['date_format'] = $_POST['date_format_custom'];
        if ( 'general' == $option_page ) {
                if ( !empty($_POST['date_format']) && isset($_POST['date_format_custom']) && '\c\u\s\t\o\m' == wp_unslash( $_POST['date_format'] ) )
                        $_POST['date_format'] = $_POST['date_format_custom'];
@@ -179,6 +180,14 @@ if ( 'update' == $action ) {
                        }
                        update_option( $option, $value );
                }
                        }
                        update_option( $option, $value );
                }
+
+               // Switch translation in case WPLANG was changed.
+               $language = get_option( 'WPLANG' );
+               if ( $language ) {
+                       load_default_textdomain( $language );
+               } else {
+                       unload_textdomain( 'default' );
+               }
        }
 
        /**
        }
 
        /**
@@ -204,7 +213,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' ); ?>
   <form name="form" action="options.php" method="post" id="all-options">
   <?php wp_nonce_field('options-options') ?>
   <input type="hidden" name="action" value="update" />
   <form name="form" action="options.php" method="post" id="all-options">
   <?php wp_nonce_field('options-options') ?>
   <input type="hidden" name="action" value="update" />
-  <input type='hidden' name='option_page' value='options' />
+  <input type="hidden" name="option_page" value="options" />
   <table class="form-table">
 <?php
 $options = $wpdb->get_results( "SELECT * FROM $wpdb->options ORDER BY option_name" );
   <table class="form-table">
 <?php
 $options = $wpdb->get_results( "SELECT * FROM $wpdb->options ORDER BY option_name" );
@@ -215,7 +224,7 @@ foreach ( (array) $options as $option ) :
                continue;
        if ( is_serialized( $option->option_value ) ) {
                if ( is_serialized_string( $option->option_value ) ) {
                continue;
        if ( is_serialized( $option->option_value ) ) {
                if ( is_serialized_string( $option->option_value ) ) {
-                       // this is a serialized string, so we should display it
+                       // This is a serialized string, so we should display it.
                        $value = maybe_unserialize( $option->option_value );
                        $options_to_update[] = $option->option_name;
                        $class = 'all-options';
                        $value = maybe_unserialize( $option->option_value );
                        $options_to_update[] = $option->option_name;
                        $class = 'all-options';
@@ -230,18 +239,19 @@ foreach ( (array) $options as $option ) :
                $class = 'all-options';
        }
        $name = esc_attr( $option->option_name );
                $class = 'all-options';
        }
        $name = esc_attr( $option->option_name );
-       echo "
+       ?>
 <tr>
 <tr>
-       <th scope='row'><label for='$name'>" . esc_html( $option->option_name ) . "</label></th>
-<td>";
-       if ( strpos( $value, "\n" ) !== false )
-               echo "<textarea class='$class' name='$name' id='$name' cols='30' rows='5'>" . esc_textarea( $value ) . "</textarea>";
-       else
-               echo "<input class='regular-text $class' type='text' name='$name' id='$name' value='" . esc_attr( $value ) . "'" . disabled( $disabled, true, false ) . " />";
-       echo "</td>
-</tr>";
-endforeach;
-?>
+       <th scope="row"><label for="<?php echo $name ?>"><?php echo esc_html( $option->option_name ); ?></label></th>
+<td>
+<?php if ( strpos( $value, "\n" ) !== false ) : ?>
+       <textarea class="<?php echo $class ?>" name="<?php echo $name ?>" id="<?php echo $name ?>" cols="30" rows="5"><?php
+               echo esc_textarea( $value );
+       ?></textarea>
+       <?php else: ?>
+               <input class="regular-text <?php echo $class ?>" type="text" name="<?php echo $name ?>" id="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>"<?php disabled( $disabled, true ) ?> />
+       <?php endif ?></td>
+</tr>
+<?php endforeach; ?>
   </table>
 
 <input type="hidden" name="page_options" value="<?php echo esc_attr( implode( ',', $options_to_update ) ); ?>" />
   </table>
 
 <input type="hidden" name="page_options" value="<?php echo esc_attr( implode( ',', $options_to_update ) ); ?>" />
index 26c14bc251b04479bf7a586d10b21403562f7a83..1c242955ba72318c0a8dab4ffbedc94cd0e01253 100644 (file)
@@ -83,8 +83,6 @@ case 'update':
        }
        exit;
 
        }
        exit;
 
-break;
-
 default:
 
        if ( isset($_GET['liveupdate']) ) {
 default:
 
        if ( isset($_GET['liveupdate']) ) {
index b87193977fb291d1aee7b7ef7f0adf61cd46800e..6ec2b9d148475a0f26205dba164a3753d2113376 100644 (file)
@@ -26,7 +26,7 @@ $wp_list_table = _get_list_table('WP_Plugin_Install_List_Table');
 $pagenum = $wp_list_table->get_pagenum();
 $wp_list_table->prepare_items();
 
 $pagenum = $wp_list_table->get_pagenum();
 $wp_list_table->prepare_items();
 
-$title = __('Install Plugins');
+$title = __( 'Add Plugins' );
 $parent_file = 'plugins.php';
 
 wp_enqueue_script( 'plugin-install' );
 $parent_file = 'plugins.php';
 
 wp_enqueue_script( 'plugin-install' );
@@ -56,7 +56,7 @@ get_current_screen()->add_help_tab( array(
 'title'                => __('Adding Plugins'),
 'content'      =>
        '<p>' . __('If you know what you&#8217;re looking for, Search is your best bet. The Search screen has options to search the WordPress.org Plugin Directory for a particular Term, Author, or Tag. You can also search the directory by selecting popular tags. Tags in larger type mean more plugins have been labeled with that tag.') . '</p>' .
 'title'                => __('Adding Plugins'),
 'content'      =>
        '<p>' . __('If you know what you&#8217;re looking for, Search is your best bet. The Search screen has options to search the WordPress.org Plugin Directory for a particular Term, Author, or Tag. You can also search the directory by selecting popular tags. Tags in larger type mean more plugins have been labeled with that tag.') . '</p>' .
-       '<p>' . __('If you just want to get an idea of what&#8217;s available, you can browse Featured, Popular, and Newest plugins by using the links in the upper left of the screen. These sections rotate regularly.') . '</p>' .
+       '<p>' . __('If you just want to get an idea of what&#8217;s available, you can browse Featured and Popular plugins by using the links in the upper left of the screen. These sections rotate regularly.') . '</p>' .
        '<p>' . __('You can also browse a user&#8217;s favorite plugins, by using the Favorites link in the upper left of the screen and entering their WordPress.org username.') . '</p>' .
        '<p>' . __('If you want to install a plugin that you&#8217;ve downloaded elsewhere, click the Upload link in the upper left. You will be prompted to upload the .zip package, and once uploaded, you can activate the new plugin.') . '</p>'
 ) );
        '<p>' . __('You can also browse a user&#8217;s favorite plugins, by using the Favorites link in the upper left of the screen and entering their WordPress.org username.') . '</p>' .
        '<p>' . __('If you want to install a plugin that you&#8217;ve downloaded elsewhere, click the Upload link in the upper left. You will be prompted to upload the .zip package, and once uploaded, you can activate the new plugin.') . '</p>'
 ) );
@@ -73,12 +73,28 @@ get_current_screen()->set_help_sidebar(
 include(ABSPATH . 'wp-admin/admin-header.php');
 ?>
 <div class="wrap">
 include(ABSPATH . 'wp-admin/admin-header.php');
 ?>
 <div class="wrap">
-<h2><?php echo esc_html( $title ); ?></h2>
+<h2>
+       <?php
+       echo esc_html( $title );
+       if ( ! empty( $tabs['upload'] ) && current_user_can( 'upload_plugins' ) ) {
+               if ( $tab === 'upload' ) {
+                       $href = self_admin_url( 'plugin-install.php' );
+                       $text = _x( 'Browse', 'plugins' );
+               } else {
+                       $href = self_admin_url( 'plugin-install.php?tab=upload' );
+                       $text = __( 'Upload Plugin' );
+               }
+               echo ' <a href="' . $href . '" class="upload add-new-h2">' . $text . '</a>';
+       }
+       ?>
+</h2>
 
 
-<?php $wp_list_table->views(); ?>
-
-<br class="clear" />
 <?php
 <?php
+if ( $tab !== 'upload' ) {
+       $wp_list_table->views();
+       echo '<br class="clear" />';
+}
+
 /**
  * Fires after the plugins list table in each tab of the Install Plugins screen.
  *
 /**
  * Fires after the plugins list table in each tab of the Install Plugins screen.
  *
index 9c3aa457f1d898aaa4c5c02f00a4e802c217b5e5..988cfa932514e1dc1e22f0cb79d00738bdb1b348 100644 (file)
@@ -60,7 +60,7 @@ if ( $action ) {
                                wp_redirect( self_admin_url("plugins.php?activate=true&plugin_status=$status&paged=$page&s=$s") ); // overrides the ?error=true one above
                        }
                        exit;
                                wp_redirect( self_admin_url("plugins.php?activate=true&plugin_status=$status&paged=$page&s=$s") ); // overrides the ?error=true one above
                        }
                        exit;
-                       break;
+
                case 'activate-selected':
                        if ( ! current_user_can('activate_plugins') )
                                wp_die(__('You do not have sufficient permissions to activate plugins for this site.'));
                case 'activate-selected':
                        if ( ! current_user_can('activate_plugins') )
                                wp_die(__('You do not have sufficient permissions to activate plugins for this site.'));
@@ -101,7 +101,7 @@ if ( $action ) {
 
                        wp_redirect( self_admin_url("plugins.php?activate-multi=true&plugin_status=$status&paged=$page&s=$s") );
                        exit;
 
                        wp_redirect( self_admin_url("plugins.php?activate-multi=true&plugin_status=$status&paged=$page&s=$s") );
                        exit;
-                       break;
+
                case 'update-selected' :
 
                        check_admin_referer( 'bulk-plugins' );
                case 'update-selected' :
 
                        check_admin_referer( 'bulk-plugins' );
@@ -129,7 +129,7 @@ if ( $action ) {
                        echo '</div>';
                        require_once(ABSPATH . 'wp-admin/admin-footer.php');
                        exit;
                        echo '</div>';
                        require_once(ABSPATH . 'wp-admin/admin-footer.php');
                        exit;
-                       break;
+
                case 'error_scrape':
                        if ( ! current_user_can('activate_plugins') )
                                wp_die(__('You do not have sufficient permissions to activate plugins for this site.'));
                case 'error_scrape':
                        if ( ! current_user_can('activate_plugins') )
                                wp_die(__('You do not have sufficient permissions to activate plugins for this site.'));
@@ -154,7 +154,7 @@ if ( $action ) {
                        /** This action is documented in wp-admin/includes/plugins.php */
                        do_action( "activate_{$plugin}" );
                        exit;
                        /** This action is documented in wp-admin/includes/plugins.php */
                        do_action( "activate_{$plugin}" );
                        exit;
-                       break;
+
                case 'deactivate':
                        if ( ! current_user_can('activate_plugins') )
                                wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.'));
                case 'deactivate':
                        if ( ! current_user_can('activate_plugins') )
                                wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.'));
@@ -174,7 +174,7 @@ if ( $action ) {
                        else
                                wp_redirect( self_admin_url("plugins.php?deactivate=true&plugin_status=$status&paged=$page&s=$s") );
                        exit;
                        else
                                wp_redirect( self_admin_url("plugins.php?deactivate=true&plugin_status=$status&paged=$page&s=$s") );
                        exit;
-                       break;
+
                case 'deactivate-selected':
                        if ( ! current_user_can('activate_plugins') )
                                wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.'));
                case 'deactivate-selected':
                        if ( ! current_user_can('activate_plugins') )
                                wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.'));
@@ -205,7 +205,7 @@ if ( $action ) {
 
                        wp_redirect( self_admin_url("plugins.php?deactivate-multi=true&plugin_status=$status&paged=$page&s=$s") );
                        exit;
 
                        wp_redirect( self_admin_url("plugins.php?deactivate-multi=true&plugin_status=$status&paged=$page&s=$s") );
                        exit;
-                       break;
+
                case 'delete-selected':
                        if ( ! current_user_can('delete_plugins') )
                                wp_die(__('You do not have sufficient permissions to delete plugins for this site.'));
                case 'delete-selected':
                        if ( ! current_user_can('delete_plugins') )
                                wp_die(__('You do not have sufficient permissions to delete plugins for this site.'));
@@ -324,7 +324,7 @@ if ( $action ) {
                        set_transient('plugins_delete_result_' . $user_ID, $delete_result); //Store the result in a cache rather than a URL param due to object type & length
                        wp_redirect( self_admin_url("plugins.php?deleted=true&plugin_status=$status&paged=$page&s=$s") );
                        exit;
                        set_transient('plugins_delete_result_' . $user_ID, $delete_result); //Store the result in a cache rather than a URL param due to object type & length
                        wp_redirect( self_admin_url("plugins.php?deleted=true&plugin_status=$status&paged=$page&s=$s") );
                        exit;
-                       break;
+
                case 'clear-recent-list':
                        if ( ! is_network_admin() )
                                update_option( 'recently_activated', array() );
                case 'clear-recent-list':
                        if ( ! is_network_admin() )
                                update_option( 'recently_activated', array() );
@@ -380,7 +380,7 @@ if ( !empty($invalid) )
        else
                $errmsg = __('Plugin could not be activated because it triggered a <strong>fatal error</strong>.');
        ?>
        else
                $errmsg = __('Plugin could not be activated because it triggered a <strong>fatal error</strong>.');
        ?>
-       <div id="message" class="updated"><p><?php echo $errmsg; ?></p>
+       <div id="message" class="error"><p><?php echo $errmsg; ?></p>
        <?php
                if ( !isset( $_GET['main'] ) && !isset($_GET['charsout']) && wp_verify_nonce($_GET['_error_nonce'], 'plugin-activation-error_' . $plugin) ) { ?>
        <iframe style="border:0" width="100%" height="70px" src="<?php echo 'plugins.php?action=error_scrape&amp;plugin=' . esc_attr($plugin) . '&amp;_wpnonce=' . esc_attr($_GET['_error_nonce']); ?>"></iframe>
        <?php
                if ( !isset( $_GET['main'] ) && !isset($_GET['charsout']) && wp_verify_nonce($_GET['_error_nonce'], 'plugin-activation-error_' . $plugin) ) { ?>
        <iframe style="border:0" width="100%" height="70px" src="<?php echo 'plugins.php?action=error_scrape&amp;plugin=' . esc_attr($plugin) . '&amp;_wpnonce=' . esc_attr($_GET['_error_nonce']); ?>"></iframe>
@@ -394,7 +394,7 @@ if ( !empty($invalid) )
                delete_transient( 'plugins_delete_result_' . $user_ID );
 
                if ( is_wp_error($delete_result) ) : ?>
                delete_transient( 'plugins_delete_result_' . $user_ID );
 
                if ( is_wp_error($delete_result) ) : ?>
-               <div id="message" class="updated"><p><?php printf( __('Plugin could not be deleted due to an error: %s'), $delete_result->get_error_message() ); ?></p></div>
+               <div id="message" class="error"><p><?php printf( __('Plugin could not be deleted due to an error: %s'), $delete_result->get_error_message() ); ?></p></div>
                <?php else : ?>
                <div id="message" class="updated"><p><?php _e('The selected plugins have been <strong>deleted</strong>.'); ?></p></div>
                <?php endif; ?>
                <?php else : ?>
                <div id="message" class="updated"><p><?php _e('The selected plugins have been <strong>deleted</strong>.'); ?></p></div>
                <?php endif; ?>
index 79896c3b789a738b52591ffbc4a45ca4ee21a1d6..bfdffaf3a3534faeaa1454f7c3949dcf28ff6490 100644 (file)
@@ -28,8 +28,16 @@ if ( 'post' == $post_type ) {
        $submenu_file = "post-new.php?post_type=$post_type";
        if ( isset( $post_type_object ) && $post_type_object->show_in_menu && $post_type_object->show_in_menu !== true ) {
                $parent_file = $post_type_object->show_in_menu;
        $submenu_file = "post-new.php?post_type=$post_type";
        if ( isset( $post_type_object ) && $post_type_object->show_in_menu && $post_type_object->show_in_menu !== true ) {
                $parent_file = $post_type_object->show_in_menu;
-               if ( ! isset( $_registered_pages[ get_plugin_page_hookname( "post-new.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) )
-                       $submenu_file = $parent_file;
+               // What if there isn't a post-new.php item for this post type?
+               if ( ! isset( $_registered_pages[ get_plugin_page_hookname( "post-new.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) {
+                       if (    isset( $_registered_pages[ get_plugin_page_hookname( "edit.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) {
+                               // Fall back to edit.php for that post type, if it exists
+                               $submenu_file = "edit.php?post_type=$post_type";
+                       } else {
+                               // Otherwise, give up and highlight the parent
+                               $submenu_file = $parent_file;
+                       }
+               }
        } else {
                $parent_file = "edit.php?post_type=$post_type";
        }
        } else {
                $parent_file = "edit.php?post_type=$post_type";
        }
index f378c22061a7763ec26c56d5c0e97ab69c37e052..805c46e6edf6e0461112c1d5196859eb567aba6a 100644 (file)
@@ -128,7 +128,6 @@ case 'post-quickdraft-save':
        edit_post();
        wp_dashboard_quick_press();
        exit;
        edit_post();
        wp_dashboard_quick_press();
        exit;
-       break;
 
 case 'postajaxpost':
 case 'post':
 
 case 'postajaxpost':
 case 'post':
@@ -136,7 +135,6 @@ case 'post':
        $post_id = 'postajaxpost' == $action ? edit_post() : write_post();
        redirect_post( $post_id );
        exit();
        $post_id = 'postajaxpost' == $action ? edit_post() : write_post();
        redirect_post( $post_id );
        exit();
-       break;
 
 case 'edit':
        $editing = true;
 
 case 'edit':
        $editing = true;
@@ -231,13 +229,13 @@ case 'editpost':
        $post_id = edit_post();
 
        // Session cookie flag that the post was saved
        $post_id = edit_post();
 
        // Session cookie flag that the post was saved
-       if ( isset( $_COOKIE['wp-saving-post-' . $post_id] ) )
-               setcookie( 'wp-saving-post-' . $post_id, 'saved' );
+       if ( isset( $_COOKIE['wp-saving-post'] ) && $_COOKIE['wp-saving-post'] === $post_id . '-check' ) {
+               setcookie( 'wp-saving-post', $post_id . '-saved', time() + DAY_IN_SECONDS );
+       }
 
        redirect_post($post_id); // Send user on their way while we keep working
 
        exit();
 
        redirect_post($post_id); // Send user on their way while we keep working
 
        exit();
-       break;
 
 case 'trash':
        check_admin_referer('trash-post_' . $post_id);
 
 case 'trash':
        check_admin_referer('trash-post_' . $post_id);
@@ -261,7 +259,6 @@ case 'trash':
 
        wp_redirect( add_query_arg( array('trashed' => 1, 'ids' => $post_id), $sendback ) );
        exit();
 
        wp_redirect( add_query_arg( array('trashed' => 1, 'ids' => $post_id), $sendback ) );
        exit();
-       break;
 
 case 'untrash':
        check_admin_referer('untrash-post_' . $post_id);
 
 case 'untrash':
        check_admin_referer('untrash-post_' . $post_id);
@@ -280,7 +277,6 @@ case 'untrash':
 
        wp_redirect( add_query_arg('untrashed', 1, $sendback) );
        exit();
 
        wp_redirect( add_query_arg('untrashed', 1, $sendback) );
        exit();
-       break;
 
 case 'delete':
        check_admin_referer('delete-post_' . $post_id);
 
 case 'delete':
        check_admin_referer('delete-post_' . $post_id);
@@ -306,7 +302,6 @@ case 'delete':
 
        wp_redirect( add_query_arg('deleted', 1, $sendback) );
        exit();
 
        wp_redirect( add_query_arg('deleted', 1, $sendback) );
        exit();
-       break;
 
 case 'preview':
        check_admin_referer( 'update-post_' . $post_id );
 
 case 'preview':
        check_admin_referer( 'update-post_' . $post_id );
@@ -315,11 +310,9 @@ case 'preview':
 
        wp_redirect($url);
        exit();
 
        wp_redirect($url);
        exit();
-       break;
 
 default:
        wp_redirect( admin_url('edit.php') );
        exit();
 
 default:
        wp_redirect( admin_url('edit.php') );
        exit();
-       break;
 } // end switch
 include( ABSPATH . 'wp-admin/admin-footer.php' );
 } // end switch
 include( ABSPATH . 'wp-admin/admin-footer.php' );
index 1becc48f8c803a651e745ae4a9536da4bb0fa687..5daa2f9bbd75c6814eac09b70b2dc1a87898d880 100644 (file)
@@ -40,7 +40,7 @@ function press_it() {
        $upload = false;
        if ( !empty($_POST['photo_src']) && current_user_can('upload_files') ) {
                foreach( (array) $_POST['photo_src'] as $key => $image) {
        $upload = false;
        if ( !empty($_POST['photo_src']) && current_user_can('upload_files') ) {
                foreach( (array) $_POST['photo_src'] as $key => $image) {
-                       // see if files exist in content - we don't want to upload non-used selected files.
+                       // See if files exist in content - we don't want to upload non-used selected files.
                        if ( strpos($_POST['content'], htmlspecialchars($image)) !== false ) {
                                $desc = isset($_POST['photo_description'][$key]) ? $_POST['photo_description'][$key] : '';
                                $upload = media_sideload_image($image, $post_ID, $desc);
                        if ( strpos($_POST['content'], htmlspecialchars($image)) !== false ) {
                                $desc = isset($_POST['photo_description'][$key]) ? $_POST['photo_description'][$key] : '';
                                $upload = media_sideload_image($image, $post_ID, $desc);
@@ -51,7 +51,7 @@ function press_it() {
                        }
                }
        }
                        }
                }
        }
-       // set the post_content and status
+       // Set the post_content and status.
        $post['post_content'] = $content;
        if ( isset( $_POST['publish'] ) && current_user_can( 'publish_posts' ) )
                $post['post_status'] = 'publish';
        $post['post_content'] = $content;
        if ( isset( $_POST['publish'] ) && current_user_can( 'publish_posts' ) )
                $post['post_status'] = 'publish';
@@ -60,12 +60,12 @@ function press_it() {
        else
                $post['post_status'] = 'draft';
 
        else
                $post['post_status'] = 'draft';
 
-       // error handling for media_sideload
+       // Error handling for media_sideload.
        if ( is_wp_error($upload) ) {
                wp_delete_post($post_ID);
                wp_die($upload);
        } else {
        if ( is_wp_error($upload) ) {
                wp_delete_post($post_ID);
                wp_die($upload);
        } else {
-               // Post formats
+               // Post formats.
                if ( isset( $_POST['post_format'] ) ) {
                        if ( current_theme_supports( 'post-formats', $_POST['post_format'] ) )
                                set_post_format( $post_ID, $_POST['post_format'] );
                if ( isset( $_POST['post_format'] ) ) {
                        if ( current_theme_supports( 'post-formats', $_POST['post_format'] ) )
                                set_post_format( $post_ID, $_POST['post_format'] );
@@ -181,9 +181,10 @@ if ( !empty($_REQUEST['ajax']) ) {
                                return '';
                        $sources = array();
                        foreach ($matches[3] as $src) {
                                return '';
                        $sources = array();
                        foreach ($matches[3] as $src) {
-                               // if no http in url
+
+                               // If no http in URL.
                                if (strpos($src, 'http') === false)
                                if (strpos($src, 'http') === false)
-                                       // if it doesn't have a relative uri
+                                       // If it doesn't have a relative URI.
                                        if ( strpos($src, '../') === false && strpos($src, './') === false && strpos($src, '/') === 0)
                                                $src = 'http://'.str_replace('//','/', $host['host'].'/'.$src);
                                        else
                                        if ( strpos($src, '../') === false && strpos($src, './') === false && strpos($src, '/') === 0)
                                                $src = 'http://'.str_replace('//','/', $host['host'].'/'.$src);
                                        else
@@ -197,7 +198,7 @@ if ( !empty($_REQUEST['ajax']) ) {
                break;
 
        case 'photo_js': ?>
                break;
 
        case 'photo_js': ?>
-               // gather images and load some default JS
+               // Gather images and load some default JS.
                var last = null
                var img, img_tag, aspect, w, h, skip, i, strtoappend = "";
                if(photostorage == false) {
                var last = null
                var img, img_tag, aspect, w, h, skip, i, strtoappend = "";
                if(photostorage == false) {
@@ -438,12 +439,16 @@ var photostorage = false;
                }
        }
        jQuery(document).ready(function($) {
                }
        }
        jQuery(document).ready(function($) {
-               //resize screen
+               var $contnet = $( '#content' );
+
+               // Resize screen.
                window.resizeTo(760,580);
                window.resizeTo(760,580);
-               // set button actions
+
+               // Set button actions.
                jQuery('#photo_button').click(function() { show('photo'); return false; });
                jQuery('#video_button').click(function() { show('video'); return false; });
                jQuery('#photo_button').click(function() { show('photo'); return false; });
                jQuery('#video_button').click(function() { show('video'); return false; });
-               // auto select
+
+               // Auto select.
                <?php if ( preg_match("/youtube\.com\/watch/i", $url) ) { ?>
                        show('video');
                <?php } elseif ( preg_match("/vimeo\.com\/[0-9]+/i", $url) ) { ?>
                <?php if ( preg_match("/youtube\.com\/watch/i", $url) ) { ?>
                        show('video');
                <?php } elseif ( preg_match("/vimeo\.com\/[0-9]+/i", $url) ) { ?>
@@ -457,6 +462,12 @@ var photostorage = false;
                $('#tagsdiv-post_tag, #categorydiv').children('h3, .handlediv').click(function(){
                        $(this).siblings('.inside').toggle();
                });
                $('#tagsdiv-post_tag, #categorydiv').children('h3, .handlediv').click(function(){
                        $(this).siblings('.inside').toggle();
                });
+
+               if ( $( '#wp-content-wrap' ).hasClass( 'html-active' ) && window.switchEditors &&
+                       ( tinyMCEPreInit.mceInit.content && tinyMCEPreInit.mceInit.content.wpautop ) ) {
+                       // The Text editor is default, run the initial content through pre_wpautop() to convert the paragraphs
+                       $contnet.text( window.switchEditors.pre_wpautop( $contnet.text() ) );
+               }
        });
 </script>
 </head>
        });
 </script>
 </head>
index e4cc0c7d99a2fa3060e38f64ce3d4bf49e16cfd1..ba954b85f8dce3801a5401ebf1a72e34835764bd 100644 (file)
@@ -29,7 +29,7 @@ if ( ! $revision_id )
        $revision_id = absint( $to );
 $redirect = 'edit.php';
 
        $revision_id = absint( $to );
 $redirect = 'edit.php';
 
-switch ( $action ) :
+switch ( $action ) {
 case 'restore' :
        if ( ! $revision = wp_get_post_revision( $revision_id ) )
                break;
 case 'restore' :
        if ( ! $revision = wp_get_post_revision( $revision_id ) )
                break;
@@ -80,7 +80,7 @@ default :
 
        $redirect = false;
        break;
 
        $redirect = false;
        break;
-endswitch;
+}
 
 // Empty post_type means either malformed object found, or no valid parent was found.
 if ( ! $redirect && empty( $post->post_type ) )
 
 // Empty post_type means either malformed object found, or no valid parent was found.
 if ( ! $redirect && empty( $post->post_type ) )
index 2b5b7f89fb6bb2f14ed4dbc9123b8fa8f02c4b28..c6f98f1ffc601e4dc135b14e876fd3f4a2d7f9d6 100644 (file)
@@ -24,44 +24,21 @@ define('WP_SETUP_CONFIG', true);
 /**
  * Disable error reporting
  *
 /**
  * Disable error reporting
  *
- * Set this to error_reporting( E_ALL ) or error_reporting( E_ALL | E_STRICT ) for debugging
+ * Set this to error_reporting( -1 ) for debugging
  */
 error_reporting(0);
 
  */
 error_reporting(0);
 
-/**#@+
- * These three defines are required to allow us to use require_wp_db() to load
- * the database class while being wp-content/db.php aware.
- * @ignore
- */
-define('ABSPATH', dirname(dirname(__FILE__)).'/');
-define('WPINC', 'wp-includes');
-define('WP_CONTENT_DIR', ABSPATH . 'wp-content');
-define('WP_DEBUG', false);
-/**#@-*/
-
-require(ABSPATH . WPINC . '/load.php');
-require(ABSPATH . WPINC . '/version.php');
-
-// Check for the required PHP version and for the MySQL extension or a database drop-in.
-wp_check_php_mysql_versions();
+define( 'ABSPATH', dirname( dirname( __FILE__ ) ) . '/' );
 
 
-require_once(ABSPATH . WPINC . '/functions.php');
+require( ABSPATH . 'wp-settings.php' );
 
 
-// Also loads plugin.php, l10n.php, pomo/mo.php (all required by setup-config.php)
-wp_load_translations_early();
+/** Load WordPress Administration Upgrade API */
+require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
 
 
-// Turn register_globals off.
-wp_unregister_GLOBALS();
+/** Load WordPress Translation Install API */
+require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
 
 
-// Standardize $_SERVER variables across setups.
-wp_fix_server_vars();
-
-require_once(ABSPATH . WPINC . '/compat.php');
-require_once(ABSPATH . WPINC . '/class-wp-error.php');
-require_once(ABSPATH . WPINC . '/formatting.php');
-
-// Add magic quotes and set up $_REQUEST ( $_GET + $_POST )
-wp_magic_quotes();
+nocache_headers();
 
 // Support wp-config-sample.php one level up, for the develop repo.
 if ( file_exists( ABSPATH . 'wp-config-sample.php' ) )
 
 // Support wp-config-sample.php one level up, for the develop repo.
 if ( file_exists( ABSPATH . 'wp-config-sample.php' ) )
@@ -79,7 +56,7 @@ if ( file_exists( ABSPATH . 'wp-config.php' ) )
 if ( file_exists(ABSPATH . '../wp-config.php' ) && ! file_exists( ABSPATH . '../wp-settings.php' ) )
        wp_die( '<p>' . sprintf( __( "The file 'wp-config.php' already exists one level above your WordPress installation. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='install.php'>installing now</a>."), 'install.php' ) . '</p>' );
 
 if ( file_exists(ABSPATH . '../wp-config.php' ) && ! file_exists( ABSPATH . '../wp-settings.php' ) )
        wp_die( '<p>' . sprintf( __( "The file 'wp-config.php' already exists one level above your WordPress installation. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='install.php'>installing now</a>."), 'install.php' ) . '</p>' );
 
-$step = isset( $_GET['step'] ) ? (int) $_GET['step'] : 0;
+$step = isset( $_GET['step'] ) ? (int) $_GET['step'] : -1;
 
 /**
  * Display setup wp-config.php file header.
 
 /**
  * Display setup wp-config.php file header.
@@ -87,29 +64,65 @@ $step = isset( $_GET['step'] ) ? (int) $_GET['step'] : 0;
  * @ignore
  * @since 2.3.0
  */
  * @ignore
  * @since 2.3.0
  */
-function setup_config_display_header() {
+function setup_config_display_header( $body_classes = array() ) {
        global $wp_version;
        global $wp_version;
+       $body_classes = (array) $body_classes;
+       $body_classes[] = 'wp-core-ui';
+       if ( is_rtl() ) {
+               $body_classes[] = 'rtl';
+       }
 
        header( 'Content-Type: text/html; charset=utf-8' );
 ?>
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml"<?php if ( is_rtl() ) echo ' dir="rtl"'; ?>>
 <head>
 
        header( 'Content-Type: text/html; charset=utf-8' );
 ?>
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml"<?php if ( is_rtl() ) echo ' dir="rtl"'; ?>>
 <head>
-<meta name="viewport" content="width=device-width" />
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title><?php _e( 'WordPress &rsaquo; Setup Configuration File' ); ?></title>
-<link rel="stylesheet" href="css/install.css?ver=<?php echo preg_replace( '/[^0-9a-z\.-]/i', '', $wp_version ); ?>" type="text/css" />
-<link rel="stylesheet" href="../wp-includes/css/buttons.css?ver=<?php echo preg_replace( '/[^0-9a-z\.-]/i', '', $wp_version ); ?>" type="text/css" />
-
+       <meta name="viewport" content="width=device-width" />
+       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+       <title><?php _e( 'WordPress &rsaquo; Setup Configuration File' ); ?></title>
+       <?php wp_admin_css( 'install', true ); ?>
 </head>
 </head>
-<body class="wp-core-ui<?php if ( is_rtl() ) echo ' rtl'; ?>">
-<h1 id="logo"><a href="<?php esc_attr_e( 'https://wordpress.org/' ); ?>"><?php _e( 'WordPress' ); ?></a></h1>
+<body class="<?php echo implode( ' ', $body_classes ); ?>">
+<h1 id="logo"><a href="<?php esc_attr_e( 'https://wordpress.org/' ); ?>" tabindex="-1"><?php _e( 'WordPress' ); ?></a></h1>
 <?php
 } // end function setup_config_display_header();
 
 <?php
 } // end function setup_config_display_header();
 
+$language = '';
+if ( ! empty( $_REQUEST['language'] ) ) {
+       $language = preg_replace( '/[^a-zA-Z_]/', '', $_REQUEST['language'] );
+} elseif ( isset( $GLOBALS['wp_local_package'] ) ) {
+       $language = $GLOBALS['wp_local_package'];
+}
+
 switch($step) {
 switch($step) {
+       case -1:
+               if ( wp_can_install_language_pack() && empty( $language ) && ( $languages = wp_get_available_translations() ) ) {
+                       setup_config_display_header( 'language-chooser' );
+                       echo '<form id="setup" method="post" action="?step=0">';
+                       wp_install_language_form( $languages );
+                       echo '</form>';
+                       break;
+               }
+
+               // Deliberately fall through if we can't reach the translations API.
+
        case 0:
        case 0:
+               if ( ! empty( $language ) ) {
+                       $loaded_language = wp_download_language_pack( $language );
+                       if ( $loaded_language ) {
+                               load_default_textdomain( $loaded_language );
+                               $GLOBALS['wp_locale'] = new WP_Locale();
+                       }
+               }
+
                setup_config_display_header();
                setup_config_display_header();
+               $step_1 = 'setup-config.php?step=1';
+               if ( isset( $_REQUEST['noapi'] ) ) {
+                       $step_1 .= '&amp;noapi';
+               }
+               if ( ! empty( $loaded_language ) ) {
+                       $step_1 .= '&amp;language=' . $loaded_language;
+               }
 ?>
 
 <p><?php _e( 'Welcome to WordPress. Before getting started, we need some information on the database. You will need to know the following items before proceeding.' ) ?></p>
 ?>
 
 <p><?php _e( 'Welcome to WordPress. Before getting started, we need some information on the database. You will need to know the following items before proceeding.' ) ?></p>
@@ -120,14 +133,21 @@ switch($step) {
        <li><?php _e( 'Database host' ); ?></li>
        <li><?php _e( 'Table prefix (if you want to run more than one WordPress in a single database)' ); ?></li>
 </ol>
        <li><?php _e( 'Database host' ); ?></li>
        <li><?php _e( 'Table prefix (if you want to run more than one WordPress in a single database)' ); ?></li>
 </ol>
-<p><strong><?php _e( "If for any reason this automatic file creation doesn&#8217;t work, don&#8217;t worry. All this does is fill in the database information to a configuration file. You may also simply open <code>wp-config-sample.php</code> in a text editor, fill in your information, and save it as <code>wp-config.php</code>." ); ?></strong></p>
+<p>
+       <?php _e( 'We&#8217;re going to use this information to create a <code>wp-config.php</code> file.' ); ?>
+       <strong><?php _e( "If for any reason this automatic file creation doesn&#8217;t work, don&#8217;t worry. All this does is fill in the database information to a configuration file. You may also simply open <code>wp-config-sample.php</code> in a text editor, fill in your information, and save it as <code>wp-config.php</code>." ); ?></strong>
+       <?php _e( "Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>." ); ?>
+</p>
 <p><?php _e( "In all likelihood, these items were supplied to you by your Web Host. If you do not have this information, then you will need to contact them before you can continue. If you&#8217;re all ready&hellip;" ); ?></p>
 
 <p><?php _e( "In all likelihood, these items were supplied to you by your Web Host. If you do not have this information, then you will need to contact them before you can continue. If you&#8217;re all ready&hellip;" ); ?></p>
 
-<p class="step"><a href="setup-config.php?step=1<?php if ( isset( $_GET['noapi'] ) ) echo '&amp;noapi'; ?>" class="button button-large"><?php _e( 'Let&#8217;s go!' ); ?></a></p>
+<p class="step"><a href="<?php echo $step_1; ?>" class="button button-large"><?php _e( 'Let&#8217;s go!' ); ?></a></p>
 <?php
        break;
 
        case 1:
 <?php
        break;
 
        case 1:
+               load_default_textdomain( $language );
+               $GLOBALS['wp_locale'] = new WP_Locale();
+
                setup_config_display_header();
        ?>
 <form method="post" action="setup-config.php?step=2">
                setup_config_display_header();
        ?>
 <form method="post" action="setup-config.php?step=2">
@@ -145,7 +165,7 @@ switch($step) {
                </tr>
                <tr>
                        <th scope="row"><label for="pwd"><?php _e( 'Password' ); ?></label></th>
                </tr>
                <tr>
                        <th scope="row"><label for="pwd"><?php _e( 'Password' ); ?></label></th>
-                       <td><input name="pwd" id="pwd" type="text" size="25" value="<?php echo htmlspecialchars( _x( 'password', 'example password' ), ENT_QUOTES ); ?>" /></td>
+                       <td><input name="pwd" id="pwd" type="text" size="25" value="<?php echo htmlspecialchars( _x( 'password', 'example password' ), ENT_QUOTES ); ?>" autocomplete="off" /></td>
                        <td><?php _e( '&hellip;and your MySQL password.' ); ?></td>
                </tr>
                <tr>
                        <td><?php _e( '&hellip;and your MySQL password.' ); ?></td>
                </tr>
                <tr>
@@ -160,16 +180,36 @@ switch($step) {
                </tr>
        </table>
        <?php if ( isset( $_GET['noapi'] ) ) { ?><input name="noapi" type="hidden" value="1" /><?php } ?>
                </tr>
        </table>
        <?php if ( isset( $_GET['noapi'] ) ) { ?><input name="noapi" type="hidden" value="1" /><?php } ?>
+       <input type="hidden" name="language" value="<?php echo esc_attr( $language ); ?>" />
        <p class="step"><input name="submit" type="submit" value="<?php echo htmlspecialchars( __( 'Submit' ), ENT_QUOTES ); ?>" class="button button-large" /></p>
 </form>
 <?php
        break;
 
        case 2:
        <p class="step"><input name="submit" type="submit" value="<?php echo htmlspecialchars( __( 'Submit' ), ENT_QUOTES ); ?>" class="button button-large" /></p>
 </form>
 <?php
        break;
 
        case 2:
-       foreach ( array( 'dbname', 'uname', 'pwd', 'dbhost', 'prefix' ) as $key )
-               $$key = trim( wp_unslash( $_POST[ $key ] ) );
+       load_default_textdomain( $language );
+       $GLOBALS['wp_locale'] = new WP_Locale();
+
+       $dbname = trim( wp_unslash( $_POST[ 'dbname' ] ) );
+       $uname = trim( wp_unslash( $_POST[ 'uname' ] ) );
+       $pwd = trim( wp_unslash( $_POST[ 'pwd' ] ) );
+       $dbhost = trim( wp_unslash( $_POST[ 'dbhost' ] ) );
+       $prefix = trim( wp_unslash( $_POST[ 'prefix' ] ) );
+
+       $step_1 = 'setup-config.php?step=1';
+       $install = 'install.php';
+       if ( isset( $_REQUEST['noapi'] ) ) {
+               $step_1 .= '&amp;noapi';
+       }
+
+       if ( ! empty( $language ) ) {
+               $step_1 .= '&amp;language=' . $language;
+               $install .= '?language=' . $language;
+       } else {
+               $install .= '?language=en_US';
+       }
 
 
-       $tryagain_link = '</p><p class="step"><a href="setup-config.php?step=1" onclick="javascript:history.go(-1);return false;" class="button button-large">' . __( 'Try again' ) . '</a>';
+       $tryagain_link = '</p><p class="step"><a href="' . $step_1 . '" onclick="javascript:history.go(-1);return false;" class="button button-large">' . __( 'Try again' ) . '</a>';
 
        if ( empty( $prefix ) )
                wp_die( __( '<strong>ERROR</strong>: "Table Prefix" must not be empty.' . $tryagain_link ) );
 
        if ( empty( $prefix ) )
                wp_die( __( '<strong>ERROR</strong>: "Table Prefix" must not be empty.' . $tryagain_link ) );
@@ -188,29 +228,27 @@ switch($step) {
        define('DB_HOST', $dbhost);
        /**#@-*/
 
        define('DB_HOST', $dbhost);
        /**#@-*/
 
-       // We'll fail here if the values are no good.
+       // Re-construct $wpdb with these new values.
+       unset( $wpdb );
        require_wp_db();
        require_wp_db();
+
+       /*
+        * The wpdb constructor bails when WP_SETUP_CONFIG is set, so we must
+        * fire this manually. We'll fail here if the values are no good.
+        */
+       $wpdb->db_connect();
+
        if ( ! empty( $wpdb->error ) )
                wp_die( $wpdb->error->get_error_message() . $tryagain_link );
 
        // Fetch or generate keys and salts.
        $no_api = isset( $_POST['noapi'] );
        if ( ! $no_api ) {
        if ( ! empty( $wpdb->error ) )
                wp_die( $wpdb->error->get_error_message() . $tryagain_link );
 
        // Fetch or generate keys and salts.
        $no_api = isset( $_POST['noapi'] );
        if ( ! $no_api ) {
-               require_once( ABSPATH . WPINC . '/class-http.php' );
-               require_once( ABSPATH . WPINC . '/http.php' );
-               /**#@+
-                * @ignore
-                */
-               function get_bloginfo() {
-                       return wp_guess_url();
-               }
-               /**#@-*/
                $secret_keys = wp_remote_get( 'https://api.wordpress.org/secret-key/1.1/salt/' );
        }
 
        if ( $no_api || is_wp_error( $secret_keys ) ) {
                $secret_keys = array();
                $secret_keys = wp_remote_get( 'https://api.wordpress.org/secret-key/1.1/salt/' );
        }
 
        if ( $no_api || is_wp_error( $secret_keys ) ) {
                $secret_keys = array();
-               require_once( ABSPATH . WPINC . '/pluggable.php' );
                for ( $i = 0; $i < 8; $i++ ) {
                        $secret_keys[] = wp_generate_password( 64, true, true );
                }
                for ( $i = 0; $i < 8; $i++ ) {
                        $secret_keys[] = wp_generate_password( 64, true, true );
                }
@@ -267,7 +305,7 @@ switch($step) {
                }
 ?></textarea>
 <p><?php _e( 'After you&#8217;ve done that, click &#8220;Run the install.&#8221;' ); ?></p>
                }
 ?></textarea>
 <p><?php _e( 'After you&#8217;ve done that, click &#8220;Run the install.&#8221;' ); ?></p>
-<p class="step"><a href="install.php" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
+<p class="step"><a href="<?php echo $install; ?>" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
 <script>
 (function(){
 var el=document.getElementById('wp-config');
 <script>
 (function(){
 var el=document.getElementById('wp-config');
@@ -277,8 +315,10 @@ el.select();
 </script>
 <?php
        else :
 </script>
 <?php
        else :
-               // If this file doesn't exist, then we are using the wp-config-sample.php
-               // file one level up, which is for the develop repo.
+               /*
+                * If this file doesn't exist, then we are using the wp-config-sample.php
+                * file one level up, which is for the develop repo.
+                */
                if ( file_exists( ABSPATH . 'wp-config-sample.php' ) )
                        $path_to_wp_config = ABSPATH . 'wp-config.php';
                else
                if ( file_exists( ABSPATH . 'wp-config-sample.php' ) )
                        $path_to_wp_config = ABSPATH . 'wp-config.php';
                else
@@ -294,11 +334,12 @@ el.select();
 ?>
 <p><?php _e( "All right, sparky! You&#8217;ve made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to&hellip;" ); ?></p>
 
 ?>
 <p><?php _e( "All right, sparky! You&#8217;ve made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to&hellip;" ); ?></p>
 
-<p class="step"><a href="install.php" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
+<p class="step"><a href="<?php echo $install; ?>" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
 <?php
        endif;
        break;
 }
 ?>
 <?php
        endif;
        break;
 }
 ?>
+<?php wp_print_scripts( 'language-chooser' ); ?>
 </body>
 </html>
 </body>
 </html>
index 382e594a15e6ff634162d01f08190e2c1079333e..d0ecee48f4904fd5c4d542bcf66bcd964a1ef9a7 100644 (file)
@@ -81,7 +81,7 @@ case 'update':
        $newcontent = wp_unslash( $_POST['newcontent'] );
        $location = 'theme-editor.php?file=' . urlencode( $relative_file ) . '&theme=' . urlencode( $stylesheet ) . '&scrollto=' . $scrollto;
        if ( is_writeable( $file ) ) {
        $newcontent = wp_unslash( $_POST['newcontent'] );
        $location = 'theme-editor.php?file=' . urlencode( $relative_file ) . '&theme=' . urlencode( $stylesheet ) . '&scrollto=' . $scrollto;
        if ( is_writeable( $file ) ) {
-               //is_writable() not always reliable, check return value. see comments @ http://uk.php.net/is_writable
+               // is_writable() not always reliable, check return value. see comments @ http://uk.php.net/is_writable
                $f = fopen( $file, 'w+' );
                if ( $f !== false ) {
                        fwrite( $f, $newcontent );
                $f = fopen( $file, 'w+' );
                if ( $f !== false ) {
                        fwrite( $f, $newcontent );
@@ -92,7 +92,6 @@ case 'update':
        }
        wp_redirect( $location );
        exit;
        }
        wp_redirect( $location );
        exit;
-break;
 
 default:
 
 
 default:
 
@@ -122,8 +121,7 @@ default:
                $content = esc_textarea( $content );
        }
 
                $content = esc_textarea( $content );
        }
 
-       ?>
-<?php if ( isset( $_GET['updated'] ) ) : ?>
+       if ( isset( $_GET['updated'] ) ) : ?>
  <div id="message" class="updated"><p><?php _e( 'File edited successfully.' ) ?></p></div>
 <?php endif;
 
  <div id="message" class="updated"><p><?php _e( 'File edited successfully.' ) ?></p></div>
 <?php endif;
 
index 088feed4a46c4c725740f10bdefa71f9ef2ff631..fd8847c547d3b130b3aa1b3ef853d3ee9625df35 100644 (file)
@@ -79,7 +79,7 @@ if ( $tab ) {
 
 $help_overview =
        '<p>' . sprintf(__('You can find additional themes for your site by using the Theme Browser/Installer on this screen, which will display themes from the <a href="%s" target="_blank">WordPress.org Theme Directory</a>. These themes are designed and developed by third parties, are available free of charge, and are compatible with the license WordPress uses.'), 'https://wordpress.org/themes/') . '</p>' .
 
 $help_overview =
        '<p>' . sprintf(__('You can find additional themes for your site by using the Theme Browser/Installer on this screen, which will display themes from the <a href="%s" target="_blank">WordPress.org Theme Directory</a>. These themes are designed and developed by third parties, are available free of charge, and are compatible with the license WordPress uses.'), 'https://wordpress.org/themes/') . '</p>' .
-       '<p>' . __('You can Search for themes by keyword, author, or tag, or can get more specific and search by criteria listed in the feature filter. Alternately, you can browse the themes that are Featured, Newest, or Recently Updated. When you find a theme you like, you can preview it or install it.') . '</p>' .
+       '<p>' . __('You can Search for themes by keyword, author, or tag, or can get more specific and search by criteria listed in the feature filter. Alternately, you can browse the themes that are Featured, Popular, or Latest. When you find a theme you like, you can preview it or install it.') . '</p>' .
        '<p>' . __('You can Upload a theme manually if you have already downloaded its ZIP archive onto your computer (make sure it is from a trusted and original source). You can also do it the old-fashioned way and copy a downloaded theme&#8217;s folder via FTP into your <code>/wp-content/themes</code> directory.') . '</p>';
 
 get_current_screen()->add_help_tab( array(
        '<p>' . __('You can Upload a theme manually if you have already downloaded its ZIP archive onto your computer (make sure it is from a trusted and original source). You can also do it the old-fashioned way and copy a downloaded theme&#8217;s folder via FTP into your <code>/wp-content/themes</code> directory.') . '</p>';
 
 get_current_screen()->add_help_tab( array(
@@ -108,58 +108,77 @@ include(ABSPATH . 'wp-admin/admin-header.php');
 
 ?>
 <div class="wrap">
 
 ?>
 <div class="wrap">
-       <h2>
-               <?php echo esc_html( $title ); ?>
-               <a href="#" class="upload add-new-h2"><?php _e( 'Upload Theme' ); ?></a>
-               <a href="#" class="browse-themes add-new-h2"><?php _ex( 'Browse', 'themes' ); ?></a>
-       </h2>
+       <h2><?php
+       echo esc_html( $title );
+
+       /**
+        * Filter the tabs shown on the Add Themes screen.
+        *
+        * This filter is for backwards compatibility only,
+        * for the suppression of the upload tab.
+        *
+        * @since 2.8.0
+        * @param array $tabs The tabs shown on the Add Themes screen. Default is 'upload'.
+        */
+       $tabs = apply_filters( 'install_themes_tabs', array( 'upload' => __( 'Upload Theme' ) ) );
+       if ( ! empty( $tabs['upload'] ) && current_user_can( 'upload_themes' ) ) {
+               echo ' <a href="#" class="upload add-new-h2">' . __( 'Upload Theme' ) . '</a>';
+               echo ' <a href="#" class="browse-themes add-new-h2">' . _x( 'Browse', 'themes' ) . '</a>';
+       }
+       ?></h2>
 
        <div class="upload-theme">
        <?php install_themes_upload(); ?>
        </div>
 
 
        <div class="upload-theme">
        <?php install_themes_upload(); ?>
        </div>
 
-       <div class="theme-navigation">
-               <span class="theme-count"></span>
-               <a class="theme-section" href="#" data-sort="featured"><?php _ex( 'Featured', 'themes' ); ?></a>
-               <a class="theme-section" href="#" data-sort="popular"><?php _ex( 'Popular', 'themes' ); ?></a>
-               <a class="theme-section" href="#" data-sort="new"><?php _ex( 'Latest', 'themes' ); ?></a>
-               <div class="theme-top-filters">
-                       <!-- <span class="theme-filter" data-filter="photoblogging">Photography</span>
-                       <span class="theme-filter" data-filter="responsive-layout">Responsive</span> -->
-                       <a class="more-filters" href="#"><?php _e( 'Feature Filter' ); ?></a>
+       <div class="wp-filter">
+               <div class="filter-count">
+                       <span class="count theme-count"></span>
                </div>
                </div>
-               <div class="more-filters-container">
-                       <a class="apply-filters button button-secondary" href="#"><?php _e( 'Apply Filters' ); ?><span></span></a>
-                       <a class="clear-filters button button-secondary" href="#"><?php _e( 'Clear' ); ?></a>
-                       <br class="clear" />
+
+               <ul class="filter-links">
+                       <li><a href="#" data-sort="featured"><?php _ex( 'Featured', 'themes' ); ?></a></li>
+                       <li><a href="#" data-sort="popular"><?php _ex( 'Popular', 'themes' ); ?></a></li>
+                       <li><a href="#" data-sort="new"><?php _ex( 'Latest', 'themes' ); ?></a></li>
+               </ul>
+
+               <a class="drawer-toggle" href="#"><?php _e( 'Feature Filter' ); ?></a>
+
+               <div class="search-form"></div>
+
+               <div class="filter-drawer">
+                       <div class="buttons">
+                               <a class="apply-filters button button-secondary" href="#"><?php _e( 'Apply Filters' ); ?><span></span></a>
+                               <a class="clear-filters button button-secondary" href="#"><?php _e( 'Clear' ); ?></a>
+                       </div>
                <?php
                $feature_list = get_theme_feature_list();
                foreach ( $feature_list as $feature_name => $features ) {
                        if ( $feature_name === 'Features' || $feature_name === __( 'Features' ) ) { // hack hack hack
                <?php
                $feature_list = get_theme_feature_list();
                foreach ( $feature_list as $feature_name => $features ) {
                        if ( $feature_name === 'Features' || $feature_name === __( 'Features' ) ) { // hack hack hack
-                               echo '<div class="filters-group wide-filters-group">';
+                               echo '<div class="filter-group wide">';
                        } else {
                        } else {
-                               echo '<div class="filters-group">';
+                               echo '<div class="filter-group">';
                        }
                        $feature_name = esc_html( $feature_name );
                        }
                        $feature_name = esc_html( $feature_name );
-                       echo '<h4 class="feature-name">' . $feature_name . '</h4>';
+                       echo '<h4>' . $feature_name . '</h4>';
                        echo '<ol class="feature-group">';
                        foreach ( $features as $feature => $feature_name ) {
                                $feature = esc_attr( $feature );
                        echo '<ol class="feature-group">';
                        foreach ( $features as $feature => $feature_name ) {
                                $feature = esc_attr( $feature );
-                               echo '<li><input type="checkbox" id="feature-id-' . $feature . '" value="' . $feature . '" /> ';
-                               echo '<label for="feature-id-' . $feature . '">' . $feature_name . '</label></li>';
+                               echo '<li><input type="checkbox" id="filter-id-' . $feature . '" value="' . $feature . '" /> ';
+                               echo '<label for="filter-id-' . $feature . '">' . $feature_name . '</label></li>';
                        }
                        echo '</ol>';
                        echo '</div>';
                }
                ?>
                        }
                        echo '</ol>';
                        echo '</div>';
                }
                ?>
-                       <div class="filtering-by">
+                       <div class="filtered-by">
                                <span><?php _e( 'Filtering by:' ); ?></span>
                                <div class="tags"></div>
                                <a href="#"><?php _e( 'Edit' ); ?></a>
                        </div>
                </div>
        </div>
                                <span><?php _e( 'Filtering by:' ); ?></span>
                                <div class="tags"></div>
                                <a href="#"><?php _e( 'Edit' ); ?></a>
                        </div>
                </div>
        </div>
-       <div class="theme-browser"></div>
+       <div class="theme-browser content-filterable"></div>
        <div class="theme-install-overlay wp-full-overlay expanded"></div>
 
        <p class="no-themes"><?php _e( 'No themes found. Try a different search.' ); ?></p>
        <div class="theme-install-overlay wp-full-overlay expanded"></div>
 
        <p class="no-themes"><?php _e( 'No themes found. Try a different search.' ); ?></p>
@@ -202,16 +221,18 @@ if ( $tab ) {
        </div>
 
        <# if ( data.installed ) { #>
        </div>
 
        <# if ( data.installed ) { #>
-               <div class="theme-installed"><?php _e( 'Already Installed' ); ?></div>
+               <div class="theme-installed"><?php _ex( 'Already Installed', 'theme' ); ?></div>
        <# } #>
 </script>
 
 <script id="tmpl-theme-preview" type="text/template">
        <div class="wp-full-overlay-sidebar">
                <div class="wp-full-overlay-header">
        <# } #>
 </script>
 
 <script id="tmpl-theme-preview" type="text/template">
        <div class="wp-full-overlay-sidebar">
                <div class="wp-full-overlay-header">
-                       <a href="#" class="close-full-overlay button-secondary"><?php _e( 'Close' ); ?></a>
+                       <a href="#" class="close-full-overlay"><span class="screen-reader-text"><?php _e( 'Close' ); ?></span></a>
+                       <a href="#" class="previous-theme"><span class="screen-reader-text"><?php _ex( 'Previous', 'Button label for a theme' ); ?></span></a>
+                       <a href="#" class="next-theme"><span class="screen-reader-text"><?php _ex( 'Next', 'Button label for a theme' ); ?></span></a>
                <# if ( data.installed ) { #>
                <# if ( data.installed ) { #>
-                       <a href="#" class="button button-primary theme-install disabled"><?php _e( 'Installed' ); ?></a>
+                       <a href="#" class="button button-primary theme-install disabled"><?php _ex( 'Installed', 'theme' ); ?></a>
                <# } else { #>
                        <a href="{{ data.install_url }}" class="button button-primary theme-install"><?php _e( 'Install' ); ?></a>
                <# } #>
                <# } else { #>
                        <a href="{{ data.install_url }}" class="button button-primary theme-install"><?php _e( 'Install' ); ?></a>
                <# } #>
@@ -246,10 +267,6 @@ if ( $tab ) {
                                <span class="collapse-sidebar-label"><?php _e( 'Collapse' ); ?></span>
                                <span class="collapse-sidebar-arrow"></span>
                        </a>
                                <span class="collapse-sidebar-label"><?php _e( 'Collapse' ); ?></span>
                                <span class="collapse-sidebar-arrow"></span>
                        </a>
-                       <div class="theme-navigation">
-                               <a class="previous-theme button" href="#"><?php _e( 'Previous' ); ?></a>
-                               <a class="next-theme button" href="#"><?php _e( 'Next' ); ?></a>
-                       </div>
                </div>
        </div>
        <div class="wp-full-overlay-main">
                </div>
        </div>
        <div class="wp-full-overlay-main">
index 68463fcecb5ed4f20c0320e1517c3c9c16cb28bc..9457fe3693aedb019321cf8559296f3f4e764acd 100644 (file)
@@ -67,7 +67,7 @@ if ( current_user_can( 'install_themes' ) ) {
 } // install_themes
 
 // Help tab: Previewing and Customizing
 } // install_themes
 
 // Help tab: Previewing and Customizing
-if ( current_user_can( 'edit_theme_options' ) ) {
+if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
        $help_customize =
                '<p>' . __( 'Tap or hover on any theme then click the Live Preview button to see a live preview of that theme and change theme options in a separate, full-screen view. You can also find a Live Preview button at the bottom of the theme details screen. Any installed theme can be previewed and customized in this way.' ) . '</p>'.
                '<p>' . __( 'The theme being previewed is fully interactive &mdash; navigate to different pages to see how the theme handles posts, archives, and other page templates. The settings may differ depending on what theme features the theme being previewed supports. To accept the new settings and activate the theme all in one step, click the Save &amp; Activate button above the menu.' ) . '</p>' .
        $help_customize =
                '<p>' . __( 'Tap or hover on any theme then click the Live Preview button to see a live preview of that theme and change theme options in a separate, full-screen view. You can also find a Live Preview button at the bottom of the theme details screen. Any installed theme can be previewed and customized in this way.' ) . '</p>'.
                '<p>' . __( 'The theme being previewed is fully interactive &mdash; navigate to different pages to see how the theme handles posts, archives, and other page templates. The settings may differ depending on what theme features the theme being previewed supports. To accept the new settings and activate the theme all in one step, click the Save &amp; Activate button above the menu.' ) . '</p>' .
@@ -78,7 +78,7 @@ if ( current_user_can( 'edit_theme_options' ) ) {
                'title'         => __( 'Previewing and Customizing' ),
                'content'       => $help_customize
        ) );
                'title'         => __( 'Previewing and Customizing' ),
                'content'       => $help_customize
        ) );
-} // edit_theme_options
+} // edit_theme_options && customize
 
 get_current_screen()->set_help_sidebar(
        '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
 
 get_current_screen()->set_help_sidebar(
        '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
@@ -117,7 +117,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 
 <div class="wrap">
        <h2><?php esc_html_e( 'Themes' ); ?>
 
 <div class="wrap">
        <h2><?php esc_html_e( 'Themes' ); ?>
-               <span class="theme-count"><?php echo count( $themes ); ?></span>
+               <span class="title-count theme-count"><?php echo count( $themes ); ?></span>
        <?php if ( ! is_multisite() && current_user_can( 'install_themes' ) ) : ?>
                <a href="<?php echo admin_url( 'theme-install.php' ); ?>" class="hide-if-no-js add-new-h2"><?php echo esc_html( _x( 'Add New', 'Add new theme' ) ); ?></a>
        <?php endif; ?>
        <?php if ( ! is_multisite() && current_user_can( 'install_themes' ) ) : ?>
                <a href="<?php echo admin_url( 'theme-install.php' ); ?>" class="hide-if-no-js add-new-h2"><?php echo esc_html( _x( 'Add New', 'Add new theme' ) ); ?></a>
        <?php endif; ?>
@@ -153,7 +153,7 @@ if ( ! $ct->errors() || ( 1 == count( $ct->errors()->get_error_codes() )
        if ( is_array( $submenu ) && isset( $submenu['themes.php'] ) ) {
                foreach ( (array) $submenu['themes.php'] as $item) {
                        $class = '';
        if ( is_array( $submenu ) && isset( $submenu['themes.php'] ) ) {
                foreach ( (array) $submenu['themes.php'] as $item) {
                        $class = '';
-                       if ( 'themes.php' == $item[2] || 'theme-editor.php' == $item[2] || 'customize.php' == $item[2] )
+                       if ( 'themes.php' == $item[2] || 'theme-editor.php' == $item[2] || 0 === strpos( $item[2], 'customize.php' ) )
                                continue;
                        // 0 = name, 1 = capability, 2 = file
                        if ( ( strcmp($self, $item[2]) == 0 && empty($parent_file)) || ($parent_file && ($item[2] == $parent_file)) )
                                continue;
                        // 0 = name, 1 = capability, 2 = file
                        if ( ( strcmp($self, $item[2]) == 0 && empty($parent_file)) || ($parent_file && ($item[2] == $parent_file)) )
@@ -212,13 +212,15 @@ foreach ( $themes as $theme ) :
        <div class="theme-actions">
 
        <?php if ( $theme['active'] ) { ?>
        <div class="theme-actions">
 
        <?php if ( $theme['active'] ) { ?>
-               <?php if ( $theme['actions']['customize'] ) { ?>
+               <?php if ( $theme['actions']['customize'] && current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { ?>
                        <a class="button button-primary customize load-customize hide-if-no-customize" href="<?php echo $theme['actions']['customize']; ?>"><?php _e( 'Customize' ); ?></a>
                <?php } ?>
        <?php } else { ?>
                <a class="button button-primary activate" href="<?php echo $theme['actions']['activate']; ?>"><?php _e( 'Activate' ); ?></a>
                        <a class="button button-primary customize load-customize hide-if-no-customize" href="<?php echo $theme['actions']['customize']; ?>"><?php _e( 'Customize' ); ?></a>
                <?php } ?>
        <?php } else { ?>
                <a class="button button-primary activate" href="<?php echo $theme['actions']['activate']; ?>"><?php _e( 'Activate' ); ?></a>
-               <a class="button button-secondary load-customize hide-if-no-customize" href="<?php echo $theme['actions']['customize']; ?>"><?php _e( 'Live Preview' ); ?></a>
-               <a class="button button-secondary hide-if-customize" href="<?php echo $theme['actions']['preview']; ?>"><?php _e( 'Preview' ); ?></a>
+               <?php if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { ?>
+                       <a class="button button-secondary load-customize hide-if-no-customize" href="<?php echo $theme['actions']['customize']; ?>"><?php _e( 'Live Preview' ); ?></a>
+                       <a class="button button-secondary hide-if-customize" href="<?php echo $theme['actions']['preview']; ?>"><?php _e( 'Preview' ); ?></a>
+               <?php } ?>
        <?php } ?>
 
        </div>
        <?php } ?>
 
        </div>
@@ -233,6 +235,8 @@ foreach ( $themes as $theme ) :
 </div>
 <div class="theme-overlay"></div>
 
 </div>
 <div class="theme-overlay"></div>
 
+<p class="no-themes"><?php _e( 'No themes found. Try a different search.' ); ?></p>
+
 <?php
 // List broken themes, if any.
 if ( ! is_multisite() && current_user_can('edit_themes') && $broken_themes = wp_get_themes( array( 'errors' => true ) ) ) {
 <?php
 // List broken themes, if any.
 if ( ! is_multisite() && current_user_can('edit_themes') && $broken_themes = wp_get_themes( array( 'errors' => true ) ) ) {
@@ -367,4 +371,4 @@ if ( ! is_multisite() && current_user_can('edit_themes') && $broken_themes = wp_
        </div>
 </script>
 
        </div>
 </script>
 
-<?php require( ABSPATH . 'wp-admin/admin-footer.php' ); ?>
+<?php require( ABSPATH . 'wp-admin/admin-footer.php' );
index a8a7aa9909fe57b57b6fd8814345fc34cd70bc33..f88025e09bcaa643fa24b3879f2dcb328534c640 100644 (file)
@@ -174,12 +174,14 @@ function core_upgrade_preamble() {
        if ( isset( $updates[0] ) && $updates[0]->response == 'development' ) {
                require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
                $upgrader = new WP_Automatic_Updater;
        if ( isset( $updates[0] ) && $updates[0]->response == 'development' ) {
                require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
                $upgrader = new WP_Automatic_Updater;
-               if ( wp_http_supports( 'ssl' ) && $upgrader->should_update( 'core', $updates[0], ABSPATH ) )
-                       echo '<div class="updated inline"><p><strong>BETA TESTERS:</strong> This site is set up to install updates of future beta versions automatically.</p></div>';
+               if ( wp_http_supports( 'ssl' ) && $upgrader->should_update( 'core', $updates[0], ABSPATH ) ) {
+                       echo '<div class="updated inline"><p>';
+                       echo '<strong>' . __( 'BETA TESTERS:' ) . '</strong> ' . __( 'This site is set up to install updates of future beta versions automatically.' );
+                       echo '</p></div>';
+               }
        }
 
        echo '<ul class="core-updates">';
        }
 
        echo '<ul class="core-updates">';
-       $alternate = true;
        foreach( (array) $updates as $update ) {
                echo '<li>';
                list_core_update( $update );
        foreach( (array) $updates as $update ) {
                echo '<li>';
                list_core_update( $update );
@@ -343,9 +345,9 @@ function list_translation_updates() {
        $form_action = 'update-core.php?action=do-translation-upgrade';
        ?>
        <h3><?php _e( 'Translations' ); ?></h3>
        $form_action = 'update-core.php?action=do-translation-upgrade';
        ?>
        <h3><?php _e( 'Translations' ); ?></h3>
-       <form method="post" action="<?php echo esc_url( $form_action ); ?>" name="upgrade-themes" class="upgrade">
+       <form method="post" action="<?php echo esc_url( $form_action ); ?>" name="upgrade-translations" class="upgrade">
                <p><?php _e( 'Some of your translations are out of date.' ); ?></p>
                <p><?php _e( 'Some of your translations are out of date.' ); ?></p>
-               <?php wp_nonce_field('upgrade-translations'); ?>
+               <?php wp_nonce_field( 'upgrade-translations' ); ?>
                <p><input class="button" type="submit" value="<?php esc_attr_e( 'Update Translations' ); ?>" name="upgrade" /></p>
        </form>
        <?php
                <p><input class="button" type="submit" value="<?php esc_attr_e( 'Update Translations' ); ?>" name="upgrade" /></p>
        </form>
        <?php
@@ -361,7 +363,7 @@ function list_translation_updates() {
 function do_core_upgrade( $reinstall = false ) {
        global $wp_filesystem;
 
 function do_core_upgrade( $reinstall = false ) {
        global $wp_filesystem;
 
-       include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+       include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
 
        if ( $reinstall )
                $url = 'update-core.php?action=do-core-reinstall';
 
        if ( $reinstall )
                $url = 'update-core.php?action=do-core-reinstall';
@@ -538,8 +540,7 @@ if ( 'upgrade-core' == $action ) {
 
        check_admin_referer('upgrade-core');
 
 
        check_admin_referer('upgrade-core');
 
-       // do the (un)dismiss actions before headers,
-       // so that they can redirect
+       // Do the (un)dismiss actions before headers, so that they can redirect.
        if ( isset( $_POST['dismiss'] ) )
                do_dismiss_core_update();
        elseif ( isset( $_POST['undismiss'] ) )
        if ( isset( $_POST['dismiss'] ) )
                do_dismiss_core_update();
        elseif ( isset( $_POST['undismiss'] ) )
@@ -580,7 +581,7 @@ if ( 'upgrade-core' == $action ) {
        require_once(ABSPATH . 'wp-admin/admin-header.php');
        echo '<div class="wrap">';
        echo '<h2>' . esc_html__('Update Plugins') . '</h2>';
        require_once(ABSPATH . 'wp-admin/admin-header.php');
        echo '<div class="wrap">';
        echo '<h2>' . esc_html__('Update Plugins') . '</h2>';
-       echo "<iframe src='$url' style='width: 100%; height: 100%; min-height: 750px;' frameborder='0'></iframe>";
+       echo '<iframe src="', $url, '" style="width: 100%; height: 100%; min-height: 750px;" frameborder="0"></iframe>';
        echo '</div>';
        include(ABSPATH . 'wp-admin/admin-footer.php');
 
        echo '</div>';
        include(ABSPATH . 'wp-admin/admin-footer.php');
 
@@ -606,10 +607,12 @@ if ( 'upgrade-core' == $action ) {
        $title = __('Update Themes');
 
        require_once(ABSPATH . 'wp-admin/admin-header.php');
        $title = __('Update Themes');
 
        require_once(ABSPATH . 'wp-admin/admin-header.php');
-       echo '<div class="wrap">';
-       echo '<h2>' . esc_html__('Update Themes') . '</h2>';
-       echo "<iframe src='$url' style='width: 100%; height: 100%; min-height: 750px;' frameborder='0'></iframe>";
-       echo '</div>';
+       ?>
+       <div class="wrap">
+               <h2><?php echo esc_html__('Update Themes') ?></h2>
+               <iframe src="<?php echo $url ?>" style="width: 100%; height: 100%; min-height: 750px;" frameborder="0"></iframe>
+       </div>
+       <?php
        include(ABSPATH . 'wp-admin/admin-footer.php');
 
 } elseif ( 'do-translation-upgrade' == $action ) {
        include(ABSPATH . 'wp-admin/admin-footer.php');
 
 } elseif ( 'do-translation-upgrade' == $action ) {
index fc8657446939ff9c44ce886cb3ce5385b4036e38..c279444320daac761ad0dd7c856648ddf810215e 100644 (file)
@@ -12,7 +12,7 @@ if ( ! defined( 'IFRAME_REQUEST' ) && isset( $_GET['action'] ) && in_array( $_GE
 /** WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
 /** WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
 
 if ( isset($_GET['action']) ) {
        $plugin = isset($_REQUEST['plugin']) ? trim($_REQUEST['plugin']) : '';
 
 if ( isset($_GET['action']) ) {
        $plugin = isset($_REQUEST['plugin']) ? trim($_REQUEST['plugin']) : '';
@@ -95,7 +95,7 @@ if ( isset($_GET['action']) ) {
                if ( ! current_user_can('install_plugins') )
                        wp_die( __( 'You do not have sufficient permissions to install plugins on this site.' ) );
 
                if ( ! current_user_can('install_plugins') )
                        wp_die( __( 'You do not have sufficient permissions to install plugins on this site.' ) );
 
-               include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; //for plugins_api..
+               include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); //for plugins_api..
 
                check_admin_referer('install-plugin_' . $plugin);
                $api = plugins_api('plugin_information', array('slug' => $plugin, 'fields' => array('sections' => false) ) ); //Save on a bit of bandwidth.
 
                check_admin_referer('install-plugin_' . $plugin);
                $api = plugins_api('plugin_information', array('slug' => $plugin, 'fields' => array('sections' => false) ) ); //Save on a bit of bandwidth.
@@ -123,8 +123,9 @@ if ( isset($_GET['action']) ) {
 
        } elseif ( 'upload-plugin' == $action ) {
 
 
        } elseif ( 'upload-plugin' == $action ) {
 
-               if ( ! current_user_can('install_plugins') )
+               if ( ! current_user_can( 'upload_plugins' ) ) {
                        wp_die( __( 'You do not have sufficient permissions to install plugins on this site.' ) );
                        wp_die( __( 'You do not have sufficient permissions to install plugins on this site.' ) );
+               }
 
                check_admin_referer('plugin-upload');
 
 
                check_admin_referer('plugin-upload');
 
@@ -200,7 +201,7 @@ if ( isset($_GET['action']) ) {
                if ( ! current_user_can('install_themes') )
                        wp_die( __( 'You do not have sufficient permissions to install themes on this site.' ) );
 
                if ( ! current_user_can('install_themes') )
                        wp_die( __( 'You do not have sufficient permissions to install themes on this site.' ) );
 
-               include_once ABSPATH . 'wp-admin/includes/theme-install.php'; //for themes_api..
+               include_once( ABSPATH . 'wp-admin/includes/theme-install.php' ); //for themes_api..
 
                check_admin_referer( 'install-theme_' . $theme );
                $api = themes_api('theme_information', array('slug' => $theme, 'fields' => array('sections' => false, 'tags' => false) ) ); //Save on a bit of bandwidth.
 
                check_admin_referer( 'install-theme_' . $theme );
                $api = themes_api('theme_information', array('slug' => $theme, 'fields' => array('sections' => false, 'tags' => false) ) ); //Save on a bit of bandwidth.
@@ -227,8 +228,9 @@ if ( isset($_GET['action']) ) {
 
        } elseif ( 'upload-theme' == $action ) {
 
 
        } elseif ( 'upload-theme' == $action ) {
 
-               if ( ! current_user_can('install_themes') )
+               if ( ! current_user_can( 'upload_themes' ) ) {
                        wp_die( __( 'You do not have sufficient permissions to install themes on this site.' ) );
                        wp_die( __( 'You do not have sufficient permissions to install themes on this site.' ) );
+               }
 
                check_admin_referer('theme-upload');
 
 
                check_admin_referer('theme-upload');
 
index 10c04131a5de8b11b67554de89270887f104561e..57dedad94cc69f4f9c5ef13751b5469af6d1a50a 100644 (file)
@@ -59,7 +59,7 @@ else
        ?>
 </head>
 <body class="wp-core-ui">
        ?>
 </head>
 <body class="wp-core-ui">
-<h1 id="logo"><a href="<?php echo esc_url( __( 'https://wordpress.org/' ) ); ?>"><?php _e( 'WordPress' ); ?></a></h1>
+<h1 id="logo"><a href="<?php echo esc_url( __( 'https://wordpress.org/' ) ); ?>" tabindex="-1"><?php _e( 'WordPress' ); ?></a></h1>
 
 <?php if ( get_option( 'db_version' ) == $wp_db_version || !is_blog_installed() ) : ?>
 
 
 <?php if ( get_option( 'db_version' ) == $wp_db_version || !is_blog_installed() ) : ?>
 
index c38a0b63566e518e7421867bbccca3fd13263c9e..646381e94a49695c13f0869313cdf339791dceea 100644 (file)
@@ -12,6 +12,69 @@ require_once( dirname( __FILE__ ) . '/admin.php' );
 if ( !current_user_can('upload_files') )
        wp_die( __( 'You do not have permission to upload files.' ) );
 
 if ( !current_user_can('upload_files') )
        wp_die( __( 'You do not have permission to upload files.' ) );
 
+$mode = get_user_option( 'media_library_mode', get_current_user_id() ) ? get_user_option( 'media_library_mode', get_current_user_id() ) : 'grid';
+$modes = array( 'grid', 'list' );
+
+if ( isset( $_GET['mode'] ) && in_array( $_GET['mode'], $modes ) ) {
+       $mode = $_GET['mode'];
+       update_user_option( get_current_user_id(), 'media_library_mode', $mode );
+}
+
+if ( 'grid' === $mode ) {
+       wp_enqueue_media();
+       wp_enqueue_script( 'media-grid' );
+       wp_enqueue_script( 'media' );
+       wp_localize_script( 'media-grid', '_wpMediaGridSettings', array(
+               'adminUrl' => parse_url( self_admin_url(), PHP_URL_PATH ),
+       ) );
+
+       get_current_screen()->add_help_tab( array(
+               'id'            => 'overview',
+               'title'         => __( 'Overview' ),
+               'content'       =>
+                       '<p>' . __( 'All the files you&#8217;ve uploaded are listed in the Media Library, with the most recent uploads listed first.' ) . '</p>' .
+                       '<p>' . __( 'You can view your media in a simple visual grid or a list with columns. Switch between these views using the icons to the left above the media.' ) . '</p>' .
+                       '<p>' . __( 'To delete media items, click the Bulk Select button at the top of the screen. Select any items you wish to delete, then click the Delete Selected button. Clicking the Cancel Selection button takes you back to viewing your media.' ) . '</p>'
+       ) );
+
+       get_current_screen()->add_help_tab( array(
+               'id'            => 'attachment-details',
+               'title'         => __( 'Attachment Details' ),
+               'content'       =>
+                       '<p>' . __( 'Clicking an item will display an Attachment Details dialog, which allows you to preview media and make quick edits. Any changes you make to the attachment details will be automatically saved.' ) . '</p>' .
+                       '<p>' . __( 'Use the arrow buttons at the top of the dialog, or the left and right arrow keys on your keyboard, to navigate between media items quickly.' ) . '</p>' .
+                       '<p>' . __( 'You can also delete individual items and access the extended edit screen from the details dialog.' ) . '</p>'
+       ) );
+
+       get_current_screen()->set_help_sidebar(
+               '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
+               '<p>' . __( '<a href="http://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' .
+               '<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+       );
+
+       $title = __('Media Library');
+       $parent_file = 'upload.php';
+
+       require_once( ABSPATH . 'wp-admin/admin-header.php' );
+       ?>
+       <div class="wrap">
+               <h2>
+               <?php
+               echo esc_html( $title );
+               if ( current_user_can( 'upload_files' ) ) { ?>
+                       <a href="media-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'file' ); ?></a><?php
+               }
+               ?>
+               </h2>
+               <div class="error hide-if-js">
+                       <p><?php _e( 'The grid view for the Media Library requires JavaScript. <a href="upload.php?mode=list">Switch to the list view</a>.' ); ?></p>
+               </div>
+       </div>
+       <?php
+       include( ABSPATH . 'wp-admin/admin-footer.php' );
+       exit;
+}
+
 $wp_list_table = _get_list_table('WP_Media_List_Table');
 $pagenum = $wp_list_table->get_pagenum();
 
 $wp_list_table = _get_list_table('WP_Media_List_Table');
 $pagenum = $wp_list_table->get_pagenum();
 
@@ -37,21 +100,6 @@ if ( $doaction ) {
        }
 
        switch ( $doaction ) {
        }
 
        switch ( $doaction ) {
-               case 'find_detached':
-                       if ( !current_user_can('edit_posts') )
-                               wp_die( __('You are not allowed to scan for lost attachments.') );
-
-                       $lost = $wpdb->get_col( "
-                               SELECT ID FROM $wpdb->posts
-                               WHERE post_type = 'attachment' AND post_parent > '0'
-                               AND post_parent NOT IN (
-                                       SELECT ID FROM $wpdb->posts
-                                       WHERE post_type NOT IN ( 'attachment', '" . join( "', '", get_post_types( array( 'public' => false ) ) ) . "' )
-                               )
-                       " );
-
-                       $_REQUEST['detached'] = 1;
-                       break;
                case 'attach':
                        $parent_id = (int) $_REQUEST['found_post_id'];
                        if ( !$parent_id )
                case 'attach':
                        $parent_id = (int) $_REQUEST['found_post_id'];
                        if ( !$parent_id )
@@ -150,7 +198,8 @@ get_current_screen()->add_help_tab( array(
 'title'                => __('Overview'),
 'content'      =>
        '<p>' . __( 'All the files you&#8217;ve uploaded are listed in the Media Library, with the most recent uploads listed first. You can use the Screen Options tab to customize the display of this screen.' ) . '</p>' .
 'title'                => __('Overview'),
 'content'      =>
        '<p>' . __( 'All the files you&#8217;ve uploaded are listed in the Media Library, with the most recent uploads listed first. You can use the Screen Options tab to customize the display of this screen.' ) . '</p>' .
-       '<p>' . __( 'You can narrow the list by file type/status using the text link filters at the top of the screen. You also can refine the list by date using the dropdown menu above the media table.' ) . '</p>'
+       '<p>' . __( 'You can narrow the list by file type/status using the text link filters at the top of the screen. You also can refine the list by date using the dropdown menu above the media table.' ) . '</p>' .
+       '<p>' . __( 'You can view your media in a simple visual grid or a list with columns. Switch between these views using the icons to the left above the media.' ) . '</p>'
 ) );
 get_current_screen()->add_help_tab( array(
 'id'           => 'actions-links',
 ) );
 get_current_screen()->add_help_tab( array(
 'id'           => 'actions-links',
@@ -228,16 +277,14 @@ if ( !empty($message) ) { ?>
 <div id="message" class="updated"><p><?php echo $message; ?></p></div>
 <?php } ?>
 
 <div id="message" class="updated"><p><?php echo $message; ?></p></div>
 <?php } ?>
 
-<?php $wp_list_table->views(); ?>
-
 <form id="posts-filter" action="" method="get">
 
 <form id="posts-filter" action="" method="get">
 
-<?php $wp_list_table->search_box( __( 'Search Media' ), 'media' ); ?>
+<?php $wp_list_table->views(); ?>
 
 <?php $wp_list_table->display(); ?>
 
 <div id="ajax-response"></div>
 
 <?php $wp_list_table->display(); ?>
 
 <div id="ajax-response"></div>
-<?php find_posts_div(); ?> 
+<?php find_posts_div(); ?>
 </form>
 </div>
 
 </form>
 </div>
 
index 2c064bad38d89a591a826772b8ee3f7032d0f5bc..fd3db18802aa3a5e987f3a7ccb0764adb6785b3e 100644 (file)
@@ -187,7 +187,7 @@ $profileuser = get_user_to_edit($user_id);
 if ( !current_user_can('edit_user', $user_id) )
        wp_die(__('You do not have permission to edit this user.'));
 
 if ( !current_user_can('edit_user', $user_id) )
        wp_die(__('You do not have permission to edit this user.'));
 
-include (ABSPATH . 'wp-admin/admin-header.php');
+include(ABSPATH . 'wp-admin/admin-header.php');
 ?>
 
 <?php if ( !IS_PROFILE_PAGE && is_super_admin( $profileuser->ID ) && current_user_can( 'manage_network_options' ) ) { ?>
 ?>
 
 <?php if ( !IS_PROFILE_PAGE && is_super_admin( $profileuser->ID ) && current_user_can( 'manage_network_options' ) ) { ?>
@@ -228,7 +228,7 @@ if ( ! IS_PROFILE_PAGE ) {
  * @since 3.0.0
  */
 ?>
  * @since 3.0.0
  */
 ?>
-<form id="your-profile" action="<?php echo esc_url( self_admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ); ?>" method="post"<?php do_action( 'user_edit_form_tag' ); ?>>
+<form id="your-profile" action="<?php echo esc_url( self_admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ); ?>" method="post" novalidate="novalidate"<?php do_action( 'user_edit_form_tag' ); ?>>
 <?php wp_nonce_field('update-user_' . $user_id) ?>
 <?php if ( $wp_http_referer ) : ?>
        <input type="hidden" name="wp_http_referer" value="<?php echo esc_url($wp_http_referer); ?>" />
 <?php wp_nonce_field('update-user_' . $user_id) ?>
 <?php if ( $wp_http_referer ) : ?>
        <input type="hidden" name="wp_http_referer" value="<?php echo esc_url($wp_http_referer); ?>" />
@@ -401,7 +401,7 @@ if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && current_user_c
 <table class="form-table">
 <tr>
        <th><label for="email"><?php _e('E-mail'); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
 <table class="form-table">
 <tr>
        <th><label for="email"><?php _e('E-mail'); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
-       <td><input type="text" name="email" id="email" value="<?php echo esc_attr($profileuser->user_email) ?>" class="regular-text ltr" />
+       <td><input type="email" name="email" id="email" value="<?php echo esc_attr( $profileuser->user_email ) ?>" class="regular-text ltr" />
        <?php
        $new_email = get_option( $current_user->ID . '_new_email' );
        if ( $new_email && $new_email['newemail'] != $current_user->user_email && $profileuser->ID == $current_user->ID ) : ?>
        <?php
        $new_email = get_option( $current_user->ID . '_new_email' );
        if ( $new_email && $new_email['newemail'] != $current_user->user_email && $profileuser->ID == $current_user->ID ) : ?>
@@ -414,7 +414,7 @@ if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && current_user_c
 
 <tr>
        <th><label for="url"><?php _e('Website') ?></label></th>
 
 <tr>
        <th><label for="url"><?php _e('Website') ?></label></th>
-       <td><input type="text" name="url" id="url" value="<?php echo esc_attr($profileuser->user_url) ?>" class="regular-text code" /></td>
+       <td><input type="url" name="url" id="url" value="<?php echo esc_attr( $profileuser->user_url ) ?>" class="regular-text code" /></td>
 </tr>
 
 <?php
 </tr>
 
 <?php
index b5c9c0bc42201b519d99ceb3b20f774929f09188..19356ef9f2fce8e6e9d867e23c4594da8fc8f087 100644 (file)
@@ -171,11 +171,11 @@ get_current_screen()->add_help_tab( array(
 'title'   => __('User Roles'),
 'content' => '<p>' . __('Here is a basic overview of the different user roles and the permissions associated with each one:') . '</p>' .
                                '<ul>' .
 'title'   => __('User Roles'),
 'content' => '<p>' . __('Here is a basic overview of the different user roles and the permissions associated with each one:') . '</p>' .
                                '<ul>' .
-                               '<li>' . __('Administrators have access to all the administration features.') . '</li>' .
-                               '<li>' . __('Editors can publish posts, manage posts as well as manage other people&#8217;s posts, etc.') . '</li>' .
-                               '<li>' . __('Authors can publish and manage their own posts, and are able to upload files.') . '</li>' .
-                               '<li>' . __('Contributors can write and manage their posts but not publish posts or upload media files.') . '</li>' .
                                '<li>' . __('Subscribers can read comments/comment/receive newsletters, etc. but cannot create regular site content.') . '</li>' .
                                '<li>' . __('Subscribers can read comments/comment/receive newsletters, etc. but cannot create regular site content.') . '</li>' .
+                               '<li>' . __('Contributors can write and manage their posts but not publish posts or upload media files.') . '</li>' .
+                               '<li>' . __('Authors can publish and manage their own posts, and are able to upload files.') . '</li>' .
+                               '<li>' . __('Editors can publish posts, manage posts as well as manage other people&#8217;s posts, etc.') . '</li>' .
+                               '<li>' . __('Administrators have access to all the administration features.') . '</li>' .
                                '</ul>'
 ) );
 
                                '</ul>'
 ) );
 
@@ -272,11 +272,13 @@ if ( is_multisite() ) {
        if ( $do_both )
                echo '<h3 id="add-existing-user">' . __('Add Existing User') . '</h3>';
        if ( !is_super_admin() ) {
        if ( $do_both )
                echo '<h3 id="add-existing-user">' . __('Add Existing User') . '</h3>';
        if ( !is_super_admin() ) {
-               _e( 'Enter the email address of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite.' );
+               echo '<p>' . __( 'Enter the email address of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite.' ) . '</p>';
                $label = __('E-mail');
                $label = __('E-mail');
+               $type  = 'email';
        } else {
        } else {
-               _e( 'Enter the email address or username of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite.' );
+               echo '<p>' . __( 'Enter the email address or username of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite.' ) . '</p>';
                $label = __('E-mail or Username');
                $label = __('E-mail or Username');
+               $type  = 'text';
        }
 ?>
 <?php
        }
 ?>
 <?php
@@ -286,14 +288,14 @@ if ( is_multisite() ) {
  * @since 3.0.0
  */
 ?>
  * @since 3.0.0
  */
 ?>
-<form action="" method="post" name="adduser" id="adduser" class="validate"<?php do_action( 'user_new_form_tag' );?>>
+<form action="" method="post" name="adduser" id="adduser" class="validate" novalidate="novalidate"<?php do_action( 'user_new_form_tag' );?>>
 <input name="action" type="hidden" value="adduser" />
 <?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
 
 <table class="form-table">
        <tr class="form-field form-required">
                <th scope="row"><label for="adduser-email"><?php echo $label; ?></label></th>
 <input name="action" type="hidden" value="adduser" />
 <?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
 
 <table class="form-table">
        <tr class="form-field form-required">
                <th scope="row"><label for="adduser-email"><?php echo $label; ?></label></th>
-               <td><input name="email" type="text" id="adduser-email" class="wp-suggest-user" value="" /></td>
+               <td><input name="email" type="<?php echo $type; ?>" id="adduser-email" class="wp-suggest-user" value="" /></td>
        </tr>
        <tr class="form-field">
                <th scope="row"><label for="adduser-role"><?php _e('Role'); ?></label></th>
        </tr>
        <tr class="form-field">
                <th scope="row"><label for="adduser-role"><?php _e('Role'); ?></label></th>
@@ -305,7 +307,7 @@ if ( is_multisite() ) {
 <?php if ( is_super_admin() ) { ?>
        <tr>
                <th scope="row"><label for="adduser-noconfirmation"><?php _e('Skip Confirmation Email') ?></label></th>
 <?php if ( is_super_admin() ) { ?>
        <tr>
                <th scope="row"><label for="adduser-noconfirmation"><?php _e('Skip Confirmation Email') ?></label></th>
-               <td><label for="adduser-noconfirmation"><input type="checkbox" name="noconfirmation" id="adduser-noconfirmation" value="1" /> <?php _e( 'Add the user without sending them a confirmation email.' ); ?></label></td>
+               <td><label for="adduser-noconfirmation"><input type="checkbox" name="noconfirmation" id="adduser-noconfirmation" value="1" /> <?php _e( 'Add the user without sending an email that requires their confirmation.' ); ?></label></td>
        </tr>
 <?php } ?>
 </table>
        </tr>
 <?php } ?>
 </table>
@@ -334,21 +336,21 @@ if ( current_user_can( 'create_users') ) {
 ?>
 <p><?php _e('Create a brand new user and add them to this site.'); ?></p>
 <?php /** This action is documented in wp-admin/user-new.php */ ?>
 ?>
 <p><?php _e('Create a brand new user and add them to this site.'); ?></p>
 <?php /** This action is documented in wp-admin/user-new.php */ ?>
-<form action="" method="post" name="createuser" id="createuser" class="validate"<?php do_action( 'user_new_form_tag' );?>>
+<form action="" method="post" name="createuser" id="createuser" class="validate" novalidate="novalidate"<?php do_action( 'user_new_form_tag' );?>>
 <input name="action" type="hidden" value="createuser" />
 <?php wp_nonce_field( 'create-user', '_wpnonce_create-user' ); ?>
 <?php
 // Load up the passed data, else set to a default.
 <input name="action" type="hidden" value="createuser" />
 <?php wp_nonce_field( 'create-user', '_wpnonce_create-user' ); ?>
 <?php
 // Load up the passed data, else set to a default.
-foreach ( array( 'user_login' => 'login', 'first_name' => 'firstname', 'last_name' => 'lastname',
-                               'email' => 'email', 'url' => 'uri', 'role' => 'role', 'send_password' => 'send_password', 'noconfirmation' => 'ignore_pass' ) as $post_field => $var ) {
-       $var = "new_user_$var";
-       if( isset( $_POST['createuser'] ) ) {
-               if ( ! isset($$var) )
-                       $$var = isset( $_POST[$post_field] ) ? wp_unslash( $_POST[$post_field] ) : '';
-       } else {
-               $$var = false;
-       }
-}
+$creating = isset( $_POST['createuser'] );
+
+$new_user_login = $creating && isset( $_POST['user_login'] ) ? wp_unslash( $_POST['user_login'] ) : '';
+$new_user_firstname = $creating && isset( $_POST['first_name'] ) ? wp_unslash( $_POST['first_name'] ) : '';
+$new_user_lastname = $creating && isset( $_POST['last_name'] ) ? wp_unslash( $_POST['last_name'] ) : '';
+$new_user_email = $creating && isset( $_POST['email'] ) ? wp_unslash( $_POST['email'] ) : '';
+$new_user_uri = $creating && isset( $_POST['url'] ) ? wp_unslash( $_POST['url'] ) : '';
+$new_user_role = $creating && isset( $_POST['role'] ) ? wp_unslash( $_POST['role'] ) : '';
+$new_user_send_password = $creating && isset( $_POST['send_password'] ) ? wp_unslash( $_POST['send_password'] ) : '';
+$new_user_ignore_pass = $creating && isset( $_POST['noconfirmation'] ) ? wp_unslash( $_POST['noconfirmation'] ) : '';
 
 ?>
 <table class="form-table">
 
 ?>
 <table class="form-table">
@@ -358,7 +360,7 @@ foreach ( array( 'user_login' => 'login', 'first_name' => 'firstname', 'last_nam
        </tr>
        <tr class="form-field form-required">
                <th scope="row"><label for="email"><?php _e('E-mail'); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
        </tr>
        <tr class="form-field form-required">
                <th scope="row"><label for="email"><?php _e('E-mail'); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
-               <td><input name="email" type="text" id="email" value="<?php echo esc_attr($new_user_email); ?>" /></td>
+               <td><input name="email" type="email" id="email" value="<?php echo esc_attr( $new_user_email ); ?>" /></td>
        </tr>
 <?php if ( !is_multisite() ) { ?>
        <tr class="form-field">
        </tr>
 <?php if ( !is_multisite() ) { ?>
        <tr class="form-field">
@@ -371,7 +373,7 @@ foreach ( array( 'user_login' => 'login', 'first_name' => 'firstname', 'last_nam
        </tr>
        <tr class="form-field">
                <th scope="row"><label for="url"><?php _e('Website') ?></label></th>
        </tr>
        <tr class="form-field">
                <th scope="row"><label for="url"><?php _e('Website') ?></label></th>
-               <td><input name="url" type="text" id="url" class="code" value="<?php echo esc_attr($new_user_uri); ?>" /></td>
+               <td><input name="url" type="url" id="url" class="code" value="<?php echo esc_attr( $new_user_uri ); ?>" /></td>
        </tr>
 <?php
 /**
        </tr>
 <?php
 /**
@@ -418,7 +420,7 @@ if ( apply_filters( 'show_password_fields', true ) ) : ?>
        <?php if ( is_multisite() && is_super_admin() ) { ?>
        <tr>
                <th scope="row"><label for="noconfirmation"><?php _e('Skip Confirmation Email') ?></label></th>
        <?php if ( is_multisite() && is_super_admin() ) { ?>
        <tr>
                <th scope="row"><label for="noconfirmation"><?php _e('Skip Confirmation Email') ?></label></th>
-               <td><label for="noconfirmation"><input type="checkbox" name="noconfirmation" id="noconfirmation" value="1" <?php checked( $new_user_ignore_pass ); ?> /> <?php _e( 'Add the user without sending them a confirmation email.' ); ?></label></td>
+               <td><label for="noconfirmation"><input type="checkbox" name="noconfirmation" id="noconfirmation" value="1" <?php checked( $new_user_ignore_pass ); ?> /> <?php _e( 'Add the user without sending an email that requires their confirmation.' ); ?></label></td>
        </tr>
        <?php } ?>
 </table>
        </tr>
        <?php } ?>
 </table>
index 1dfd73cd882c6f69aaa267df162f880263a2ffc9..c83dbaa644896a8df705d568c678a52348616ac6 100644 (file)
@@ -137,8 +137,6 @@ case 'promote':
        wp_redirect(add_query_arg('update', $update, $redirect));
        exit();
 
        wp_redirect(add_query_arg('update', $update, $redirect));
        exit();
 
-break;
-
 case 'dodelete':
        if ( is_multisite() )
                wp_die( __('User deletion is not allowed from this screen.') );
 case 'dodelete':
        if ( is_multisite() )
                wp_die( __('User deletion is not allowed from this screen.') );
@@ -188,8 +186,6 @@ case 'dodelete':
        wp_redirect($redirect);
        exit();
 
        wp_redirect($redirect);
        exit();
 
-break;
-
 case 'delete':
        if ( is_multisite() )
                wp_die( __('User deletion is not allowed from this screen.') );
 case 'delete':
        if ( is_multisite() )
                wp_die( __('User deletion is not allowed from this screen.') );
@@ -248,6 +244,16 @@ case 'delete':
                <?php echo '<label for="delete_option1">' . __( 'Attribute all content to:' ) . '</label> ';
                wp_dropdown_users( array( 'name' => 'reassign_user', 'exclude' => array_diff( $userids, array($current_user->ID) ) ) ); ?></li>
        </ul></fieldset>
                <?php echo '<label for="delete_option1">' . __( 'Attribute all content to:' ) . '</label> ';
                wp_dropdown_users( array( 'name' => 'reassign_user', 'exclude' => array_diff( $userids, array($current_user->ID) ) ) ); ?></li>
        </ul></fieldset>
+       <?php
+       /**
+        * Fires at the end of the delete users form prior to the confirm button.
+        *
+        * @since 4.0.0
+        *
+        * @param WP_User $current_user WP_User object for the user being deleted.
+        */
+       do_action( 'delete_user_form', $current_user );
+       ?>
        <input type="hidden" name="action" value="dodelete" />
        <?php submit_button( __('Confirm Deletion'), 'secondary' ); ?>
 <?php else : ?>
        <input type="hidden" name="action" value="dodelete" />
        <?php submit_button( __('Confirm Deletion'), 'secondary' ); ?>
 <?php else : ?>
@@ -293,8 +299,6 @@ case 'doremove':
        wp_redirect($redirect);
        exit;
 
        wp_redirect($redirect);
        exit;
 
-break;
-
 case 'remove':
 
        check_admin_referer('bulk-users');
 case 'remove':
 
        check_admin_referer('bulk-users');
@@ -340,6 +344,7 @@ case 'remove':
                }
        }
        ?>
                }
        }
        ?>
+</ul>
 <?php if ( $go_remove ) : ?>
                <input type="hidden" name="action" value="doremove" />
                <?php submit_button( __('Confirm Removal'), 'secondary' ); ?>
 <?php if ( $go_remove ) : ?>
                <input type="hidden" name="action" value="doremove" />
                <?php submit_button( __('Confirm Removal'), 'secondary' ); ?>
index 9383d7436c9f8557ab17ae9824b13a4881ebc6b3..f4de378ff1ea4c5c695450d33b0ffdc740513318 100644 (file)
@@ -141,7 +141,7 @@ if ( isset($_POST['savewidget']) || isset($_POST['removewidget']) ) {
        $id_base = $_POST['id_base'];
        $sidebar = isset($sidebars_widgets[$sidebar_id]) ? $sidebars_widgets[$sidebar_id] : array();
 
        $id_base = $_POST['id_base'];
        $sidebar = isset($sidebars_widgets[$sidebar_id]) ? $sidebars_widgets[$sidebar_id] : array();
 
-       // delete
+       // Delete.
        if ( isset($_POST['removewidget']) && $_POST['removewidget'] ) {
 
                if ( !in_array($widget_id, $sidebar, true) ) {
        if ( isset($_POST['removewidget']) && $_POST['removewidget'] ) {
 
                if ( !in_array($widget_id, $sidebar, true) ) {
@@ -168,7 +168,7 @@ if ( isset($_POST['savewidget']) || isset($_POST['removewidget']) ) {
 
        $sidebars_widgets[$sidebar_id] = $sidebar;
 
 
        $sidebars_widgets[$sidebar_id] = $sidebar;
 
-       // remove old position
+       // Remove old position.
        if ( !isset($_POST['delete_widget']) ) {
                foreach ( $sidebars_widgets as $key => $sb ) {
                        if ( is_array($sb) )
        if ( !isset($_POST['delete_widget']) ) {
                foreach ( $sidebars_widgets as $key => $sb ) {
                        if ( is_array($sb) )
@@ -224,7 +224,7 @@ if ( isset($_GET['editwidget']) && $_GET['editwidget'] ) {
 
        $id_base = isset($control['id_base']) ? $control['id_base'] : $control['id'];
 
 
        $id_base = isset($control['id_base']) ? $control['id_base'] : $control['id'];
 
-       // show the widget form
+       // Show the widget form.
        $width = ' style="width:' . max($control['width'], 350) . 'px"';
        $key = isset($_GET['key']) ? (int) $_GET['key'] : 0;
 
        $width = ' style="width:' . max($control['width'], 350) . 'px"';
        $key = isset($_GET['key']) ? (int) $_GET['key'] : 0;
 
index 6196c368423a5bf6dd1b249a681c46bee609f14b..0ed359c5bb763161ee98783ae0dd96b52c548c71 100644 (file)
@@ -132,7 +132,11 @@ $comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_paren
 $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');
 
 $comment_id = wp_new_comment( $commentdata );
 $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');
 
 $comment_id = wp_new_comment( $commentdata );
-$comment = get_comment($comment_id);
+if ( ! $comment_id ) {
+       wp_die( __( "<strong>ERROR</strong>: The comment could not be saved. Please try again later." ) );
+}
+
+$comment = get_comment( $comment_id );
 
 /**
  * Perform other actions when comment cookies are set.
 
 /**
  * Perform other actions when comment cookies are set.
index 5a6acc65b795a6eb11b9255fc4fbd6922ec08967..f247332eaf31477a4e819b6fbc51b1add3f38b89 100644 (file)
@@ -61,16 +61,6 @@ define('NONCE_SALT',       'put your unique phrase here');
  */
 $table_prefix  = 'wp_';
 
  */
 $table_prefix  = 'wp_';
 
-/**
- * WordPress Localized Language, defaults to English.
- *
- * Change this to localize WordPress. A corresponding MO file for the chosen
- * language must be installed to wp-content/languages. For example, install
- * de_DE.mo to wp-content/languages and set WPLANG to 'de_DE' to enable German
- * language support.
- */
-define('WPLANG', '');
-
 /**
  * For developers: WordPress debugging mode.
  *
 /**
  * For developers: WordPress debugging mode.
  *
index 7fc1e9db56212bee69501ce3b070c8c17a906c9f..68289a3722965749c562cd85ef698b51696a801b 100644 (file)
@@ -6,7 +6,7 @@
 Plugin Name: Akismet
 Plugin URI: http://akismet.com/
 Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from comment and trackback spam</strong>. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) <a href="http://akismet.com/get/">Sign up for an Akismet API key</a>, and 3) Go to your Akismet configuration page, and save your API key.
 Plugin Name: Akismet
 Plugin URI: http://akismet.com/
 Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from comment and trackback spam</strong>. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) <a href="http://akismet.com/get/">Sign up for an Akismet API key</a>, and 3) Go to your Akismet configuration page, and save your API key.
-Version: 3.0.1
+Version: 3.0.2
 Author: Automattic
 Author URI: http://automattic.com/wordpress-plugins/
 License: GPLv2 or later
 Author: Automattic
 Author URI: http://automattic.com/wordpress-plugins/
 License: GPLv2 or later
@@ -35,7 +35,7 @@ if ( !function_exists( 'add_action' ) ) {
        exit;
 }
 
        exit;
 }
 
-define( 'AKISMET_VERSION', '3.0.1' );
+define( 'AKISMET_VERSION', '3.0.2' );
 define( 'AKISMET__MINIMUM_WP_VERSION', '3.1' );
 define( 'AKISMET__PLUGIN_URL', plugin_dir_url( __FILE__ ) );
 define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
 define( 'AKISMET__MINIMUM_WP_VERSION', '3.1' );
 define( 'AKISMET__PLUGIN_URL', plugin_dir_url( __FILE__ ) );
 define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
index 7a62ccbd6453cba7350954deb1cee08b20cf6c79..a1c712e01aa7a5e681b4b6659a24cb10292b93de 100644 (file)
@@ -367,7 +367,8 @@ class Akismet_Admin {
 
                        add_comment_meta( $c['comment_ID'], 'akismet_rechecking', true );
 
 
                        add_comment_meta( $c['comment_ID'], 'akismet_rechecking', true );
 
-                       $response = Akismet::http_post( build_query( $c ), 'comment-check' );
+                       $response = Akismet::http_post( Akismet::build_query( $c ), 'comment-check' );
+                       
                        if ( 'true' == $response[1] ) {
                                wp_set_comment_status( $c['comment_ID'], 'spam' );
                                update_comment_meta( $c['comment_ID'], 'akismet_result', 'true' );
                        if ( 'true' == $response[1] ) {
                                wp_set_comment_status( $c['comment_ID'], 'spam' );
                                update_comment_meta( $c['comment_ID'], 'akismet_result', 'true' );
@@ -625,7 +626,7 @@ class Akismet_Admin {
        }
        
        public static function get_akismet_user( $api_key ) {
        }
        
        public static function get_akismet_user( $api_key ) {
-               $akismet_user = Akismet::http_post( build_query( array( 'key' => $api_key ) ), 'get-subscription' );
+               $akismet_user = Akismet::http_post( Akismet::build_query( array( 'key' => $api_key ) ), 'get-subscription' );
 
                if ( ! empty( $akismet_user[1] ) )
                        $akismet_user = json_decode( $akismet_user[1] );
 
                if ( ! empty( $akismet_user[1] ) )
                        $akismet_user = json_decode( $akismet_user[1] );
@@ -639,7 +640,7 @@ class Akismet_Admin {
                $stat_totals = array();
 
                foreach( array( '6-months', 'all' ) as $interval ) {
                $stat_totals = array();
 
                foreach( array( '6-months', 'all' ) as $interval ) {
-                       $response = Akismet::http_post( build_query( array( 'blog' => urlencode( get_bloginfo('url') ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' );
+                       $response = Akismet::http_post( Akismet::build_query( array( 'blog' => urlencode( get_bloginfo('url') ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' );
 
                        if ( ! empty( $response[1] ) ) {
                                $stat_totals[$interval] = json_decode( $response[1] );
 
                        if ( ! empty( $response[1] ) ) {
                                $stat_totals[$interval] = json_decode( $response[1] );
@@ -649,7 +650,7 @@ class Akismet_Admin {
        }
        
        public static function verify_wpcom_key( $api_key, $user_id, $token = '' ) {
        }
        
        public static function verify_wpcom_key( $api_key, $user_id, $token = '' ) {
-               $akismet_account = Akismet::http_post( build_query( array(
+               $akismet_account = Akismet::http_post( Akismet::build_query( array(
                        'user_id'          => $user_id,
                        'api_key'          => $api_key,
                        'token'            => $token,
                        'user_id'          => $user_id,
                        'api_key'          => $api_key,
                        'token'            => $token,
@@ -674,11 +675,11 @@ class Akismet_Admin {
 
        public static function display_spam_check_warning() {
                Akismet::fix_scheduled_recheck();
 
        public static function display_spam_check_warning() {
                Akismet::fix_scheduled_recheck();
-               
-               $link_text = apply_filters( 'akismet_spam_check_warning_link_text', sprintf( __( 'Please check your <a href="%s">Akismet configuration</a> and contact your web host if problems persist.', 'akismet'), esc_url( self::get_page_url() ) ) );
 
 
-               if ( self::get_number_spam_waiting() > 0 && wp_next_scheduled('akismet_schedule_cron_recheck') > time() )
+               if ( wp_next_scheduled('akismet_schedule_cron_recheck') > time() && self::get_number_spam_waiting() > 0 ) {
+                       $link_text = apply_filters( 'akismet_spam_check_warning_link_text', sprintf( __( 'Please check your <a href="%s">Akismet configuration</a> and contact your web host if problems persist.', 'akismet'), esc_url( self::get_page_url() ) ) );
                        Akismet::view( 'notice', array( 'type' => 'spam-check', 'link_text' => $link_text ) );
                        Akismet::view( 'notice', array( 'type' => 'spam-check', 'link_text' => $link_text ) );
+               }
        }
 
        public static function display_invalid_version() {
        }
 
        public static function display_invalid_version() {
index 17f6b0058acd846465abb38aa3091f2f62536124..a9ab0eaa9916090cc2cb6b5b3af22b2767fa724a 100644 (file)
@@ -54,7 +54,7 @@ class Akismet {
        }
 
        public static function check_key_status( $key, $ip = null ) {
        }
 
        public static function check_key_status( $key, $ip = null ) {
-               return self::http_post( build_query( array( 'key' => $key, 'blog' => get_option('home') ) ), 'verify-key', $ip );
+               return self::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option('home') ) ), 'verify-key', $ip );
        }
 
        public static function verify_key( $key, $ip = null ) {
        }
 
        public static function verify_key( $key, $ip = null ) {
@@ -117,7 +117,7 @@ class Akismet {
                $post = get_post( $comment['comment_post_ID'] );
                $comment[ 'comment_post_modified_gmt' ] = $post->post_modified_gmt;
 
                $post = get_post( $comment['comment_post_ID'] );
                $comment[ 'comment_post_modified_gmt' ] = $post->post_modified_gmt;
 
-               $response = self::http_post( build_query( $comment ), 'comment-check' );
+               $response = self::http_post( Akismet::build_query( $comment ), 'comment-check' );
 
                do_action( 'akismet_comment_check_response', $response );
 
 
                do_action( 'akismet_comment_check_response', $response );
 
@@ -370,7 +370,7 @@ class Akismet {
                if ( self::is_test_mode() )
                        $c['is_test'] = 'true';
 
                if ( self::is_test_mode() )
                        $c['is_test'] = 'true';
 
-               $response = self::http_post( build_query( $c ), 'comment-check' );
+               $response = self::http_post( Akismet::build_query( $c ), 'comment-check' );
 
                return ( is_array( $response ) && ! empty( $response[1] ) ) ? $response[1] : false;
        }
 
                return ( is_array( $response ) && ! empty( $response[1] ) ) ? $response[1] : false;
        }
@@ -464,7 +464,7 @@ class Akismet {
                $post = get_post( $comment->comment_post_ID );
                $comment->comment_post_modified_gmt = $post->post_modified_gmt;
 
                $post = get_post( $comment->comment_post_ID );
                $comment->comment_post_modified_gmt = $post->post_modified_gmt;
 
-               $response = Akismet::http_post( build_query( $comment ), 'submit-spam' );
+               $response = Akismet::http_post( Akismet::build_query( $comment ), 'submit-spam' );
                if ( $comment->reporter ) {
                        self::update_comment_history( $comment_id, sprintf( __('%s reported this comment as spam', 'akismet'), $comment->reporter ), 'report-spam' );
                        update_comment_meta( $comment_id, 'akismet_user_result', 'true' );
                if ( $comment->reporter ) {
                        self::update_comment_history( $comment_id, sprintf( __('%s reported this comment as spam', 'akismet'), $comment->reporter ), 'report-spam' );
                        update_comment_meta( $comment_id, 'akismet_user_result', 'true' );
@@ -510,7 +510,7 @@ class Akismet {
                $post = get_post( $comment->comment_post_ID );
                $comment->comment_post_modified_gmt = $post->post_modified_gmt;
 
                $post = get_post( $comment->comment_post_ID );
                $comment->comment_post_modified_gmt = $post->post_modified_gmt;
 
-               $response = self::http_post( build_query( $comment ), 'submit-ham' );
+               $response = self::http_post( Akismet::build_query( $comment ), 'submit-ham' );
                if ( $comment->reporter ) {
                        self::update_comment_history( $comment_id, sprintf( __('%s reported this comment as not spam', 'akismet'), $comment->reporter ), 'report-ham' );
                        update_comment_meta( $comment_id, 'akismet_user_result', 'false' );
                if ( $comment->reporter ) {
                        self::update_comment_history( $comment_id, sprintf( __('%s reported this comment as not spam', 'akismet'), $comment->reporter ), 'report-ham' );
                        update_comment_meta( $comment_id, 'akismet_user_result', 'false' );
@@ -915,6 +915,16 @@ p {
        public static function plugin_deactivation( ) {
                //tidy up
        }
        public static function plugin_deactivation( ) {
                //tidy up
        }
+       
+       /**
+        * Essentially a copy of WP's build_query but one that doesn't expect pre-urlencoded values.
+        *
+        * @param array $args An array of key => value pairs
+        * @return string A string ready for use as a URL query string.
+        */
+       public static function build_query( $args ) {
+               return _http_build_query( $args, '', '&' );
+       }
 
        public static function log( $akismet_debug ) {
                if ( defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG )
 
        public static function log( $akismet_debug ) {
                if ( defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG )
index c9dce67585d13af389e26d687621ab8439e8281f..d0e5a1df6b27c2cceb3cd498a6f01416935843b6 100644 (file)
@@ -2,8 +2,8 @@
 Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, cfinke, automattic
 Tags: akismet, comments, spam
 Requires at least: 3.1
 Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, cfinke, automattic
 Tags: akismet, comments, spam
 Requires at least: 3.1
-Tested up to: 3.9.1
-Stable tag: 3.0.1
+Tested up to: 4.0
+Stable tag: 3.0.2
 License: GPLv2 or later
 
 Akismet checks your comments against the Akismet Web service to see if they look like spam or not.
 License: GPLv2 or later
 
 Akismet checks your comments against the Akismet Web service to see if they look like spam or not.
@@ -30,6 +30,10 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co
 
 == Changelog ==
 
 
 == Changelog ==
 
+= 3.0.2 =
+* Performance improvements.
+* Fixed a bug that could truncate the comment data being sent to Akismet for checking.
+
 = 3.0.1 =
 * Removed dependency on PHP's fsockopen function
 * Fix spam/ham reports to work when reported outside of the WP dashboard, e.g., from Notifications or the WP app
 = 3.0.1 =
 * Removed dependency on PHP's fsockopen function
 * Fix spam/ham reports to work when reported outside of the WP dashboard, e.g., from Notifications or the WP app
index 0476929ab71f918ce7d8e8de40488fa04b50078c..8a1411d3af490cfa20fb263dd1d41f9bf9774799 100644 (file)
        </form>
 </div>
 <?php elseif ( $type == 'spam-check' ) :?>
        </form>
 </div>
 <?php elseif ( $type == 'spam-check' ) :?>
-<div id="akismet-warning" class="updated fade"><p><strong><?php esc_html_e('Akismet has detected a problem.', 'akismet');?></strong> <?php printf( __('Some comments have not yet been checked for spam by Akismet. They have been temporarily held for moderation. Please check your <a href="%s">Akismet configuration</a> and contact your web host if problems persist.', 'akismet'), esc_url( Akismet_Admin::get_page_url() ) );?></p></div>
+<div id="akismet-warning" class="updated fade">
+       <p><strong><?php esc_html_e( 'Akismet has detected a problem.', 'akismet' );?></strong></p>
+       <p><?php printf( __( 'Some comments have not yet been checked for spam by Akismet. They have been temporarily held for moderation and will automatically be rechecked later.', 'akismet' ) ); ?></p>
+       <?php if ( $link_text ) { ?>
+               <p><?php echo $link_text; ?></p>
+       <?php } ?>
+</div>
 <?php elseif ( $type == 'version' ) :?>
 <div id="akismet-warning" class="updated fade"><p><strong><?php printf( esc_html__('Akismet %s requires WordPress 3.0 or higher.', 'akismet'), AKISMET_VERSION);?></strong> <?php printf(__('Please <a href="%1$s">upgrade WordPress</a> to a current version, or <a href="%2$s">downgrade to version 2.4 of the Akismet plugin</a>.', 'akismet'), 'https://codex.wordpress.org/Upgrading_WordPress', 'https://wordpress.org/extend/plugins/akismet/download/');?></p></div>
 <?php elseif ( $type == 'alert' ) :?>
 <?php elseif ( $type == 'version' ) :?>
 <div id="akismet-warning" class="updated fade"><p><strong><?php printf( esc_html__('Akismet %s requires WordPress 3.0 or higher.', 'akismet'), AKISMET_VERSION);?></strong> <?php printf(__('Please <a href="%1$s">upgrade WordPress</a> to a current version, or <a href="%2$s">downgrade to version 2.4 of the Akismet plugin</a>.', 'akismet'), 'https://codex.wordpress.org/Upgrading_WordPress', 'https://wordpress.org/extend/plugins/akismet/download/');?></p></div>
 <?php elseif ( $type == 'alert' ) :?>
index 4e6c07c7ee1691cab5336b2f356ff6a5f367f879..62200328fddc2de0805db758fb758bcb4d65d8e2 100644 (file)
@@ -1,3 +1,2 @@
 <?php
 // Silence is golden.
 <?php
 // Silence is golden.
-?>
\ No newline at end of file
index 4e6c07c7ee1691cab5336b2f356ff6a5f367f879..62200328fddc2de0805db758fb758bcb4d65d8e2 100644 (file)
@@ -1,3 +1,2 @@
 <?php
 // Silence is golden.
 <?php
 // Silence is golden.
-?>
\ No newline at end of file
index e99813cae06bce444be02b5f05508195eb695e62..1d66b73c593820d2bedc92b38111620719e64a6d 100644 (file)
@@ -420,7 +420,7 @@ img {
 }
 
 .wp-caption.aligncenter {
 }
 
 .wp-caption.aligncenter {
-       margin: 7px 0;
+       margin: 7px auto;
 }
 
 .wp-caption-dt {
 }
 
 .wp-caption-dt {
@@ -617,6 +617,79 @@ img {
        background: transparent;
 }
 
        background: transparent;
 }
 
+.mejs-overlay-button {
+       background-color: #fff;
+       background-image: none;
+       border-radius: 2px;
+       box-shadow: 1px 1px 1px rgba(0,0,0,.8);
+       color: #000;
+       height: 36px;
+       margin-left: -24px;
+       width: 48px;
+}
+
+.mejs-overlay-button:before {
+       -webkit-font-smoothing: antialiased;
+       content: '\f452';
+       display: inline-block;
+       font: normal 32px/1.125 Genericons;
+       position: absolute;
+       top: 1px;
+       left: 10px;
+}
+
+.mejs-controls .mejs-button button:focus {
+       outline: none;
+}
+
+.mejs-controls .mejs-button button {
+       -webkit-font-smoothing: antialiased;
+       background: none;
+       color: #fff;
+       display: inline-block;
+       font: normal 16px/1 Genericons;
+}
+
+.mejs-playpause-button.mejs-play button:before {
+       content: '\f452';
+}
+
+.mejs-playpause-button.mejs-pause button:before {
+       content: '\f448';
+}
+
+.mejs-volume-button.mejs-mute button:before {
+       content: '\f109';
+       font-size: 20px;
+       position: absolute;
+       top: -2px;
+       left: 0;
+}
+
+.mejs-volume-button.mejs-unmute button:before {
+       content: '\f109';
+       left: 0;
+       position: absolute;
+       top: 0;
+}
+
+.mejs-fullscreen-button button:before {
+       content: '\f474';
+}
+
+.mejs-fullscreen-button.mejs-unfullscreen button:before {
+       content: '\f406';
+}
+
+.mejs-overlay:hover .mejs-overlay-button {
+       background-color: #24890d;
+       color: #fff;
+}
+
+.mejs-controls .mejs-button button:hover {
+       color: #41a62a;
+}
+
 
 /**
  * 10.0 RTL
 
 /**
  * 10.0 RTL
index 3b71a6b790e33cc3c83f0bb6e45f2f6d2392f1ca..82142d2e278b996c4143f331fb654558a9ccf72d 100644 (file)
@@ -29,6 +29,10 @@ textarea:focus {
        border: 1px solid #b2b2b2;
 }
 
        border: 1px solid #b2b2b2;
 }
 
+.site-title {
+       max-width: 71%;
+}
+
 .site-content blockquote.alignleft,
 .site-content blockquote.alignright {
        border-top: 1px solid #e5e5e5;
 .site-content blockquote.alignleft,
 .site-content blockquote.alignright {
        border-top: 1px solid #e5e5e5;
@@ -515,13 +519,12 @@ a.post-thumbnail:hover {
        margin-right: auto;
 }
 
        margin-right: auto;
 }
 
-.ie8 .full-width.singular .hentry.has-post-thumbnail,
-.ie8 .full-width.home .hentry.has-post-thumbnail {
+.ie8 .full-width .hentry.has-post-thumbnail:first-child {
        margin-top: -72px;
 }
 
 
        margin-top: -72px;
 }
 
 
-.ie8 .singular .hentry.has-post-thumbnail {
+.ie8 .singular .site-content .hentry.has-post-thumbnail {
        margin-top: 0;
 }
 
        margin-top: 0;
 }
 
index d78b44b26274387893808fcb57b0bc51c9843844..d95d29dce034d360e9c44c8dc5b41d0b6fa1515e 100644 (file)
@@ -68,7 +68,7 @@ function twentyfourteen_setup() {
        load_theme_textdomain( 'twentyfourteen', get_template_directory() . '/languages' );
 
        // This theme styles the visual editor to resemble the theme style.
        load_theme_textdomain( 'twentyfourteen', get_template_directory() . '/languages' );
 
        // This theme styles the visual editor to resemble the theme style.
-       add_editor_style( array( 'css/editor-style.css', twentyfourteen_font_url() ) );
+       add_editor_style( array( 'css/editor-style.css', twentyfourteen_font_url(), 'genericons/genericons.css' ) );
 
        // Add RSS feed links to <head> for posts and comments.
        add_theme_support( 'automatic-feed-links' );
 
        // Add RSS feed links to <head> for posts and comments.
        add_theme_support( 'automatic-feed-links' );
@@ -227,7 +227,7 @@ function twentyfourteen_scripts() {
        wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null );
 
        // Add Genericons font, used in the main stylesheet.
        wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null );
 
        // Add Genericons font, used in the main stylesheet.
-       wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.0.2' );
+       wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.0.3' );
 
        // Load our main stylesheet.
        wp_enqueue_style( 'twentyfourteen-style', get_stylesheet_uri(), array( 'genericons' ) );
 
        // Load our main stylesheet.
        wp_enqueue_style( 'twentyfourteen-style', get_stylesheet_uri(), array( 'genericons' ) );
@@ -256,7 +256,7 @@ function twentyfourteen_scripts() {
                ) );
        }
 
                ) );
        }
 
-       wp_enqueue_script( 'twentyfourteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20140319', true );
+       wp_enqueue_script( 'twentyfourteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20140616', true );
 }
 add_action( 'wp_enqueue_scripts', 'twentyfourteen_scripts' );
 
 }
 add_action( 'wp_enqueue_scripts', 'twentyfourteen_scripts' );
 
@@ -385,7 +385,7 @@ endif;
  *
  * Adds body classes to denote:
  * 1. Single or multiple authors.
  *
  * Adds body classes to denote:
  * 1. Single or multiple authors.
- * 2. Presence of header image.
+ * 2. Presence of header image except in Multisite signup and activate pages.
  * 3. Index views.
  * 4. Full-width content layout.
  * 5. Presence of footer widgets.
  * 3. Index views.
  * 4. Full-width content layout.
  * 5. Presence of footer widgets.
@@ -404,7 +404,7 @@ function twentyfourteen_body_classes( $classes ) {
 
        if ( get_header_image() ) {
                $classes[] = 'header-image';
 
        if ( get_header_image() ) {
                $classes[] = 'header-image';
-       } else {
+       } elseif ( ! in_array( $GLOBALS['pagenow'], array( 'wp-activate.php', 'wp-signup.php' ) ) ) {
                $classes[] = 'masthead-fixed';
        }
 
                $classes[] = 'masthead-fixed';
        }
 
@@ -463,6 +463,9 @@ add_filter( 'post_class', 'twentyfourteen_post_classes' );
  *
  * @since Twenty Fourteen 1.0
  *
  *
  * @since Twenty Fourteen 1.0
  *
+ * @global int $paged WordPress archive pagination page count.
+ * @global int $page  WordPress paginated post page count.
+ *
  * @param string $title Default title text for current view.
  * @param string $sep Optional separator.
  * @return string The filtered title.
  * @param string $title Default title text for current view.
  * @param string $sep Optional separator.
  * @return string The filtered title.
@@ -484,7 +487,7 @@ function twentyfourteen_wp_title( $title, $sep ) {
        }
 
        // Add a page number if necessary.
        }
 
        // Add a page number if necessary.
-       if ( $paged >= 2 || $page >= 2 ) {
+       if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
                $title = "$title $sep " . sprintf( __( 'Page %s', 'twentyfourteen' ), max( $paged, $page ) );
        }
 
                $title = "$title $sep " . sprintf( __( 'Page %s', 'twentyfourteen' ), max( $paged, $page ) );
        }
 
index e21c3490e56be55fd52100269bff40118eb46f0e..5cd41e8b81c9fa490d0ed695536226c0dbe69ac6 100644 (file)
Binary files a/wp-content/themes/twentyfourteen/genericons/Genericons-Regular.otf and b/wp-content/themes/twentyfourteen/genericons/Genericons-Regular.otf differ
index e6ebd7d3452ea1f790082874b316d669e67803b3..7a0a92e5fdf8d879a33622a266b2a36fc276d9e1 100644 (file)
@@ -74,6 +74,14 @@ ____ _  _ ____ _  _ ____ ____ _    ____ ____
 |    |__| |__| |\ | | __ |___ |    |  | | __ 
 |___ |  | |  | | \| |__] |___ |___ |__| |__] 
 
 |    |__| |__| |\ | | __ |___ |    |  | | __ 
 |___ |  | |  | | \| |__] |___ |___ |__| |__] 
 
+V3.0.3:
+Bunch of updates mostly.
+- Two new icons, Dropbox and Fullscreen.
+- Updates to all icons containing an exclamation mark.
+- Updates to Image and Quote.
+- Nicer "Share" icon.
+- Bigger default Linkedin icon.
+
 V3.0.2: 
 A slew of new stuff and updates.
 - Social icons: Skype, Digg, Reddit, Stumbleupon, Pocket.
 V3.0.2: 
 A slew of new stuff and updates.
 - Social icons: Skype, Digg, Reddit, Stumbleupon, Pocket.
index f33b30a5e123b84d763e3880b2479baa5383d447..cdc7d04c73b58239f22f2b6b716f6c4d16ee755e 100644 (file)
@@ -165,6 +165,7 @@ body {
                <div alt="f222" class="genericon genericon-reddit"></div>
                <div alt="f223" class="genericon genericon-stumbleupon"></div>
                <div alt="f224" class="genericon genericon-pocket"></div>
                <div alt="f222" class="genericon genericon-reddit"></div>
                <div alt="f223" class="genericon genericon-stumbleupon"></div>
                <div alt="f224" class="genericon genericon-pocket"></div>
+               <div alt="f225" class="genericon genericon-dropbox"></div>
 
                <!-- meta icons -->
                <div alt="f300" class="genericon genericon-comment"></div>
 
                <!-- meta icons -->
                <div alt="f300" class="genericon genericon-comment"></div>
@@ -252,6 +253,7 @@ body {
                <div alt="f471" class="genericon genericon-bold"></div>
                <div alt="f472" class="genericon genericon-italic"></div>
                <div alt="f473" class="genericon genericon-picture"></div>
                <div alt="f471" class="genericon genericon-bold"></div>
                <div alt="f472" class="genericon genericon-italic"></div>
                <div alt="f473" class="genericon genericon-picture"></div>
+               <div alt="f474" class="genericon genericon-fullscreen"></div>
 
                <!-- generic shapes -->
                <div alt="f500" class="genericon genericon-uparrow"></div>
 
                <!-- generic shapes -->
                <div alt="f500" class="genericon genericon-uparrow"></div>
index 6e71567730e983711fc04e5afb3ef72c513baca9..46574695ece5d4a4d2eb5dd29c1b09995d93e214 100644 (file)
Binary files a/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.eot and b/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.eot differ
index d9f0c82ed3e85e51af12aa55b2399b504c256b1b..ef236c102009d26108dcd62f72d24750cea80275 100644 (file)
 <font id="genericonsregular" horiz-adv-x="2048" >
 <font-face units-per-em="2048" ascent="1638" descent="-410" />
 <missing-glyph horiz-adv-x="500" />
 <font id="genericonsregular" horiz-adv-x="2048" >
 <font-face units-per-em="2048" ascent="1638" descent="-410" />
 <missing-glyph horiz-adv-x="500" />
-<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="&#xf100;" d="M1536 1408v-128h-1024v128h1024zM1152 1024h-640v128h640v-128zM1280 1152h256v-128h-256v128zM768 768h-256v128h256v-128zM896 896h640v-128h-640v128zM512 640h768v-128h-768v128z" />
-<glyph unicode="&#xf101;" d="M1024 1792q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1024 768q106 0 181 75t75 181t-75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75z" />
-<glyph unicode="&#xf102;" d="M1920 1408v-1024h-1792v896l512 128l128 256h512l128 -256h512zM512 1504l-256 -64v160h256v-96zM1024 512q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1024 1280q133 0 226.5 -93.5t93.5 -226.5 t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5z" />
-<glyph unicode="&#xf103;" d="M128 1408h896v-384h-896v384zM2048 1408v-896h-896v896h896zM128 896h384v-384h-384v384zM640 896h384v-384h-384v384z" />
-<glyph unicode="&#xf104;" d="M1664 1024l-1152 -640v1280z" />
-<glyph unicode="&#xf105;" d="M1408 1408q0 -124 -71.5 -222t-184.5 -138v-536l-256 -128v664q-113 40 -184.5 138t-71.5 222q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
-<glyph unicode="&#xf106;" d="M512 1408h512l-256 -768h-384zM1792 1408l-256 -768h-384l128 768h512z" />
-<glyph unicode="&#xf107;" d="M1088 1792q133 0 226.5 -93.5t93.5 -226.5v-384q0 -97 -53 -176.5t-139 -116.5v151q64 57 64 142v384q0 80 -56 136t-136 56t-136 -56t-56 -136v-384q0 -85 64 -142v-151q-86 37 -139 116.5t-53 176.5v384q0 133 93.5 226.5t226.5 93.5zM960 1230v151q86 -37 139 -116.5 t53 -176.5v-384q0 -133 -93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5v384q0 97 53 176.5t139 116.5v-151q-64 -57 -64 -142v-384q0 -80 56 -136t136 -56t136 56t56 136v384q0 85 -64 142z" />
-<glyph unicode="&#xf108;" d="M256 1792h1024q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-448l-448 -448v448h-128q-96 0 -176 80t-80 176v384q0 96 80 176t176 80zM1664 1152v384q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-128v-448l-448 448h-320l128 128h384q168 0 276 108 t108 276z" />
-<glyph unicode="&#xf109;" d="M640 1280l384 384v-1280l-384 384h-384v512h384zM1386 1386l91 91q88 -89 137.5 -206t49.5 -247q0 -87 -23 -170t-64.5 -153.5t-99.5 -129.5l-91 91q71 71 110.5 164.5t39.5 197.5t-39.5 197.5t-110.5 164.5zM1205 1205l91 91q26 -27 46.5 -57.5t35 -65t22.5 -72.5t8 -77 q0 -78 -29.5 -148t-82.5 -124l-91 91q75 75 75 181t-75 181z" />
-<glyph unicode="&#xf200;" d="M1024 2048q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5q0 -335 -195.5 -601.5t-504.5 -369.5q-36 -7 -53 8.5t-17 40.5q0 4 0.5 102t0.5 179q0 130 -69 189q77 9 137.5 24.5t124.5 51.5t107 89t70.5 140t27.5 201q0 161 -105 274q6 15 11 35t9 56t-3.5 83.5 t-26.5 96.5q-4 1 -10.5 2t-32 -1t-55.5 -11t-79.5 -33.5t-104.5 -61.5q-118 33 -256 35q-138 -2 -256 -35q-55 37 -104 61.5t-80 33t-54.5 11.5t-33.5 1l-10 -2q-58 -146 -10 -271q-105 -115 -105 -274q0 -114 27.5 -201t70.5 -140t107 -89t124.5 -52t136.5 -24 q-53 -47 -65 -137q-28 -13 -59.5 -20t-75.5 -6.5t-87.5 28.5t-75.5 83q-2 4 -6.5 10.5t-19 24t-31.5 31t-44 25.5t-56 14h-10t-18.5 -3.5t-17 -9t4 -18.5t34.5 -31q3 -1 7.5 -4t19 -14.5t27.5 -27t30 -43.5t30 -61q1 -3 2.5 -7t8 -17t15.5 -25.5t24.5 -28t33.5 -28t45 -23.5 t57.5 -16t71.5 -3.5t87 11.5q0 -50 0.5 -110t0.5 -64q0 -24 -17 -40t-53 -10q-309 103 -504.5 370t-195.5 602q0 208 81 398t218.5 327t327 218t397.5 81z" />
-<glyph unicode="&#xf201;" d="M1024 2048q206 0 395.5 -82t327 -219.5t219.5 -327t82 -395.5t-82 -395.5t-219.5 -327t-327 -219.5t-395.5 -82t-395.5 82t-327 219.5t-219.5 327t-82 395.5t82 395.5t219.5 327t327 219.5t395.5 82zM1024 1920q-32 0 -96 -8t-96 -8q102 -166 304 -512q6 2 86 31 t118.5 45t108 47t122 64t93.5 69q-126 126 -290.5 199t-349.5 73zM672 1856q-194 -85 -329.5 -247.5t-182.5 -376.5q194 -22 444 14t388 82q-141 282 -320 528zM1760 1536q-71 -57 -162 -104.5t-214.5 -100.5t-183.5 -83q22 -29 36.5 -54.5t34 -67.5t25.5 -54q170 33 336 30 t288 -30q-26 285 -160 464zM128 1088v-64q0 -167 58 -319.5t166 -272.5q125 205 339 360t445 232q-16 48 -80 176q-282 -86 -481.5 -111t-446.5 -1zM1536 288q156 108 258 278t126 362q-276 46 -576 0q14 -27 43 -103t74.5 -231t74.5 -306zM1024 128q181 0 368 80 q-33 300 -208 688q-222 -74 -410 -225.5t-294 -350.5q216 -192 544 -192z" />
-<glyph unicode="&#xf202;" d="M1920 1584q-73 -111 -183 -191q0 -7 0.5 -23t0.5 -24q0 -122 -31 -246t-89.5 -241t-149.5 -218.5t-204 -177.5t-260.5 -119.5t-311.5 -43.5q-305 0 -564 165q48 -5 88 -5q256 0 456 157q-119 2 -213 73.5t-130 182.5q39 -7 69 -7q47 0 97 13q-127 26 -211 127t-84 233v5 q80 -43 167 -46q-76 50 -120 131t-44 175q0 101 50 185q138 -170 335 -271.5t423 -112.5q-10 39 -10 84q0 152 108 259.5t260 107.5q160 0 268 -116q128 26 233 89q-42 -132 -161 -203q109 13 211 58z" />
-<glyph unicode="&#xf203;" d="M384 1920h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-282v711h270l12 260h-282v192v12q0 60 21.5 87.5t87.5 27.5l166 -1l6 242q-78 10 -183 10q-94 0 -167 -27.5t-117 -74.5t-66 -105.5t-22 -126.5v-236h-254v-260h254v-711h-724q-106 0 -181 75 t-75 181v1280q0 106 75 181t181 75z" />
-<glyph unicode="&#xf204;" d="M1511 1272l-14 -303h-315v-841h-320v841h-222v303h222v258q0 78 26 147t77 124t136.5 87t194.5 32q55 0 108 -3t79 -6l26 -3l-7 -282h-193q-76 0 -101.5 -32t-25.5 -101v-14v-207h329z" />
-<glyph unicode="&#xf205;" d="M1024 1920q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1426 536l81 268q24 79 32.5 107.5t18.5 74.5t10 79q0 46 -11.5 90.5t-23.5 71t-32 60.5q-2 4 -11.5 19 t-12 20t-10.5 18.5t-11 19t-9 17.5t-8.5 19t-6.5 18t-5.5 19.5t-3 18.5t-1.5 20q0 57 39 100t97 43l10 -1q-110 101 -249.5 156.5t-294.5 55.5q-207 0 -385 -98t-288 -266h52q37 0 91 2.5t89 4.5l34 3q21 1 30.5 -14.5t2.5 -32.5t-27 -20q-44 -5 -93 -7l294 -873l176 529 l-125 344l-85 7q-20 2 -27.5 19t2.5 33t30 15q133 -10 212 -10q38 0 91.5 2.5t88.5 4.5l35 3q16 1 25.5 -8.5t10 -22t-7 -23.5t-23.5 -13q-43 -5 -92 -7zM1731 1410q5 -40 5 -82q0 -135 -61 -289l-246 -711q183 106 292 291.5t109 404.5q0 207 -99 386zM218 1024 q0 -236 125 -430.5t330 -294.5l-385 1053q-70 -156 -70 -328zM1024 218q138 0 268 46q-4 6 -6 11l-248 679l-242 -703q112 -33 228 -33z" />
-<glyph unicode="&#xf206;" d="M1664 1536v256h-128v-256h-256v-128h256v-256h128v256h256v-1024q0 -106 -75 -181t-181 -75h-507q5 28 5 50q0 143 -46.5 230t-189.5 194q-3 2 -20.5 15t-25 19t-25.5 20t-27.5 22.5t-24 22t-23 23.5t-17 22t-12.5 22.5t-4 20.5q0 52 23 87t99 94q180 141 180 324 q0 113 -45 204.5t-128 139.5h160l135 142h-607q-127 0 -241.5 -49t-194.5 -132v65q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-128h-256zM575 937q-125 4 -225.5 108t-121.5 262q-21 161 50.5 269.5t194.5 104.5q121 -4 215.5 -118.5t116.5 -277.5q21 -160 -43 -256 t-187 -92zM572 570q-18 0 -54.5 -0.5t-55.5 -0.5q-183 0 -334 -83v485q125 -127 330 -127q30 0 59 3q-32 -61 -32 -118q0 -33 13 -63t28.5 -48.5t45.5 -47.5zM966 218q7 -29 7 -66q0 -16 -1 -24h-588q-85 0 -153 50.5t-92 130.5q57 85 166 137.5t237 51.5q84 -1 158 -26 q19 -13 62 -42.5t61 -42t48 -37t44.5 -41.5t29 -41.5t21.5 -49.5z" />
-<glyph unicode="&#xf207;" d="M530 1285h1q67 0 108.5 39.5t41.5 97.5q-2 60 -42 98.5t-106 38.5q-67 0 -108 -39t-41 -98q0 -58 40.5 -97.5t105.5 -39.5zM1614 384v455q0 175 -83.5 266t-220.5 91q-50 0 -90.5 -12t-68.5 -34t-45 -41t-33 -44v112h-264v-793h264v443q0 45 8 64q16 40 50.5 68t85.5 28 q133 0 133 -179v-424h264zM663 1177h-263v-793h263v793z" />
-<glyph unicode="&#xf208;" d="M384 1920h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181v1280q0 106 75 181t181 75zM530 1285h1q67 0 108.5 39.5t41.5 97.5q-2 60 -42 98.5t-106 38.5q-67 0 -108 -39t-41 -98q0 -58 40.5 -97.5t105.5 -39.5zM1614 384v455 q0 175 -83.5 266t-220.5 91q-50 0 -90.5 -12t-68.5 -34t-45 -41t-33 -44v112h-264v-793h264v443q0 45 8 64q16 40 50.5 68t85.5 28q133 0 133 -179v-424h264zM663 1177h-263v-793h263v793z" />
-<glyph unicode="&#xf209;" d="M1073 2048q176 0 327.5 -60.5t253.5 -161t160 -231t58 -270.5q0 -246 -85 -443t-241 -309.5t-355 -112.5q-99 0 -186.5 46.5t-121.5 110.5q-73 -290 -89 -347q-34 -123 -127 -270l-149 54q-7 167 22 290l162 688q-40 81 -40 200q0 139 70.5 232.5t172.5 93.5 q83 0 127 -53.5t44 -135.5q0 -51 -18.5 -124t-49 -170t-44.5 -154q-23 -99 37.5 -171t161.5 -72q117 0 209.5 92t142 244.5t49.5 334.5q0 214 -139 349t-387 135q-139 0 -257.5 -49.5t-197 -133t-122.5 -193t-44 -229.5q0 -147 83 -247q18 -21 21.5 -34t-3.5 -37 q-16 -61 -25 -101q-7 -24 -24.5 -32t-39.5 1q-127 51 -192.5 181.5t-65.5 300.5q0 109 35.5 219t110 213t179 182t254 126.5t323.5 47.5z" />
-<glyph unicode="&#xf210;" d="M1024 2048q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5t-81 -398.5t-218 -326.5t-326.5 -218t-398.5 -81q-147 0 -290 42q74 116 103 219l72 282q28 -53 99 -90.5t151 -37.5q162 0 288.5 91.5t195.5 251t69 359.5q0 114 -47 220t-130 187.5t-206.5 130.5t-265.5 49 q-141 0 -262 -38.5t-205.5 -103t-145.5 -147.5t-89.5 -172.5t-28.5 -178.5q0 -138 53 -243.5t156 -147.5q18 -8 32.5 -1t18.5 26q2 9 10 41t11 41q5 19 2.5 30t-16.5 28q-68 78 -68 200q0 97 35.5 186t99.5 156.5t160 108t209 40.5q201 0 313.5 -109.5t112.5 -283.5 q0 -148 -40 -271.5t-115 -198t-169 -74.5q-82 0 -131.5 58.5t-30.5 138.5q11 46 35.5 125t39.5 138t15 101q0 66 -35.5 109.5t-102.5 43.5q-82 0 -139.5 -76t-57.5 -189q0 -43 8 -83.5t16 -59.5l9 -19q-113 -475 -132 -558q-24 -97 -18 -235q-275 120 -444 374t-169 564 q0 208 81 398t218.5 327t327 218t397.5 81z" />
-<glyph unicode="&#xf211;" d="M992 1024q0 172 -122 294t-294 122t-294 -122t-122 -294t122 -294t294 -122t294 122t122 294zM1888 1024q0 172 -122 294t-294 122t-294 -122t-122 -294t122 -294t294 -122t294 122t122 294z" />
-<glyph unicode="&#xf212;" d="M1919 1437q16 347 -260 355q-373 12 -505 -417q69 29 133 29q136 0 120 -152q-8 -92 -120 -268q-113 -176 -169 -176q-73 0 -133 271q-20 79 -72 407q-49 303 -258 284q-89 -8 -265 -160q-127 -113 -262 -231l84 -108q121 84 141 84q92 0 173 -287l144 -525 q108 -287 265 -287q253 0 619 471q353 451 365 710z" />
-<glyph unicode="&#xf213;" d="M512 1664h1024q159 0 271.5 -112.5t112.5 -271.5v-512q0 -159 -112.5 -271.5t-271.5 -112.5h-1024q-159 0 -271.5 112.5t-112.5 271.5v512q0 159 112.5 271.5t271.5 112.5zM1408 1024l-640 384v-768z" />
-<glyph unicode="&#xf214;" d="M1091 1920h-255q-17 -139 -62 -228q-48 -93 -121 -154q-74 -64 -181 -99v-253h198v-629q0 -121 26 -187q26 -65 92 -122t161 -89q93 -31 218 -31q110 0 201 22q88 20 208 76v282q-134 -88 -271 -88q-76 0 -136 36q-44 25 -61 70q-17 46 -17 200v460h426v281h-426v453z " />
-<glyph unicode="&#xf215;" d="M384 1920h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181v1280q0 106 75 181t181 75zM1792 1536v128q0 53 -37.5 90.5t-90.5 37.5h-128q-53 0 -90.5 -37.5t-37.5 -90.5v-128q0 -53 37.5 -90.5t90.5 -37.5h128q53 0 90.5 37.5 t37.5 90.5zM1024 1408q-159 0 -271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5zM1792 1152h-272q16 -66 16 -128q0 -212 -150 -362t-362 -150t-362 150t-150 362q0 62 16 128h-272v-768q0 -53 37.5 -90.5 t90.5 -37.5h1280q53 0 90.5 37.5t37.5 90.5v768z" />
-<glyph unicode="&#xf216;" d="M1061 1779l702 -467q29 -24 29 -55v-467q0 -32 -29 -54l-702 -468q-17 -11 -37 -11q-18 0 -37 11l-702 468q-29 22 -29 54v467q0 31 29 55l702 467q17 11 37 11t37 -11zM441 1257l231 -154l286 191v307zM1090 1294l286 -191l231 154l-517 344v-307zM1258 1024l-234 156 l-233 -156l233 -156zM388 914l165 110l-165 110v-220zM1660 1134l-165 -110l165 -110v220zM958 754l-286 191l-231 -155l517 -344v308zM1607 790l-231 155l-286 -191v-308z" />
-<glyph unicode="&#xf217;" d="M1024 1920q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1024 208q236 0 432 123.5t298 327.5q59 136 59 266q0 117 -43.5 221.5t-118.5 182.5t-175.5 131 t-215.5 73q116 -48 204 -145t127 -218q54 -151 17.5 -320t-150.5 -289q-111 -123 -276 -179t-332 -27q-168 27 -307 138t-210 270q-74 156 -67.5 338.5t93.5 335.5q88 155 238.5 260t328.5 135q2 0 35 6q-208 -16 -380.5 -128t-272.5 -293.5t-100 -392.5q0 -221 109.5 -409 t297.5 -297.5t409 -109.5zM1113 1770q-157 7 -306.5 -51.5t-258.5 -169.5q-109 -107 -159 -254.5t-30 -296.5q17 -148 100 -275.5t207 -200.5q120 -71 264 -78.5t267 49.5q-76 -21 -148 -21q-149 0 -275.5 74t-200.5 201t-74 276q0 214 146 373l3 3l14 14l1 1 q98 114 235 178t293 64q163 0 306 -70t241 -193q-36 57 -70 96q-104 126 -250 200.5t-305 80.5zM1415 1006q6 -142 -81 -257q-86 -115 -225 -157q-114 -35 -234 -7q83 -34 174 -34q195 0 333.5 138.5t138.5 333.5v2q-10 107 -63.5 202.5t-137.5 157.5q-102 77 -236 87 t-243 -49q-116 -62 -177 -167q-61 -107 -52 -231q8 -119 85 -217t186 -128q110 -33 221.5 8.5t170.5 134.5q61 91 50 204t-86 187q-70 77 -179.5 87t-188.5 -50q-85 -62 -105 -157q-21 -98 30 -182q50 -84 142 -108q92 -23 172 26q38 23 64 58.5t34 76.5q17 88 -34 159 q-52 72 -136 77q-83 6 -142 -54q-57 -55 -45 -138q6 -37 27.5 -68.5t52.5 -47.5q40 -21 87 -16q-46 1 -82 29t-49 71l-2 3q-14 30 -9.5 67t25.5 66q22 30 56.5 46.5t72.5 14.5t73.5 -23.5t54.5 -55.5q46 -76 8 -158q-18 -39 -53.5 -66.5t-78.5 -35.5q-43 -9 -88.5 3.5 t-78.5 43.5q-74 68 -68 169q2 65 45 118.5t109.5 77t132.5 5.5q68 -16 118.5 -70.5t65 -124.5t-9.5 -144q-37 -107 -150 -158.5t-224 -8.5q-114 43 -170 158q-55 117 -17 238q35 121 152 191t246 47q131 -19 223 -128t95 -246z" />
-<glyph unicode="&#xf218;" d="M1151 1835l151 85h-485q-264 0 -421 -129q-73 -64 -111.5 -147.5t-38.5 -167.5q0 -56 16 -109.5t49.5 -100.5t79.5 -82.5t109 -56.5t136 -21q19 0 75 5q0 -2 -4 -10.5t-4.5 -10.5t-3.5 -9.5t-4 -11l-3 -10.5t-2.5 -12.5t-1 -13t-0.5 -14.5q0 -26 5 -48t18.5 -45 t20.5 -32.5t26 -34.5q-61 -4 -98 -7.5t-107 -14.5t-131.5 -32.5t-112.5 -53.5q-50 -29 -86.5 -66.5t-56.5 -76.5t-29 -74.5t-9 -69.5q0 -66 32 -125.5t92.5 -107t159 -75.5t222.5 -28q117 0 218.5 25t174 68t124 99.5t76.5 120.5t25 131q0 40 -6.5 74.5t-22.5 65t-30.5 53 t-41.5 50t-45 43t-51 44.5l-85 66q-19 15 -28.5 24.5t-21 31t-11.5 45.5t12 47.5t21.5 34.5t32.5 33q37 29 59 48t52 52t46 64t28 75.5t12 94.5q0 43 -8 82t-23.5 70.5t-30.5 55.5t-38 47.5t-35 34.5t-32 27h146zM906 1238q-18 -19 -44 -33.5t-56.5 -23.5t-58.5 -9 q-58 0 -108 28.5t-83.5 73.5t-57.5 101.5t-34.5 111.5t-10.5 104q0 110 51 174q28 35 73.5 56t91.5 21q56 0 105.5 -28.5t83.5 -74.5t59 -103.5t36.5 -115.5t11.5 -110q0 -113 -59 -172zM2048 1152v-128h-256v-256h-128v256h-256v128h256v256h128v-256h256zM838 791 q51 -36 82 -59t63.5 -50.5t50.5 -48.5t33.5 -46t21.5 -50.5t6 -55.5q0 -113 -91 -183.5t-255 -70.5q-187 0 -300.5 80t-113.5 207q0 47 17 87.5t38.5 64.5t54 45t50.5 28.5t42 16.5q35 11 76.5 19.5t77.5 12t58.5 5t34.5 1.5q35 0 54 -3z" />
-<glyph unicode="&#xf219;" d="M1438 1833q12 -5 32 -14.5t74.5 -45.5t101 -78.5t97 -114.5t78 -153t27.5 -194.5t-40 -238.5q-43 -89 -97 -157.5t-109.5 -110t-115.5 -69t-115.5 -37t-107.5 -12t-95.5 4t-76 13t-49.5 13.5l-18 6v-277q-1 -3 -2 -9t-6.5 -23t-14 -34t-24.5 -39.5t-36 -42t-51.5 -39.5 t-68.5 -33q-52 -19 -107 -20t-97 11.5t-76.5 27.5t-53.5 27l-18 13v280q33 -34 67 -55.5t67.5 -28.5t61.5 11t44 63v946h312v-538l65 -13q206 -32 329 60q105 78 128 243q2 76 -15.5 141t-49 110.5t-72.5 82.5t-86.5 59.5t-91.5 39t-87.5 24t-73.5 11.5t-52 5h-19l-66 -2 q-217 -16 -359 -141q-57 -50 -97 -115q-27 -45 -39.5 -93t-11 -88t10 -78.5t22 -67.5t25.5 -51t21 -33l9 -12l-225 -201q-7 9 -18.5 25t-40.5 68.5t-49.5 107.5t-34.5 137.5t-8.5 163t41 179.5t102.5 191q70 78 153.5 135t167 86.5t172 45.5t169 15t156.5 -8t137.5 -21 t107.5 -26.5t72 -22.5z" />
-<glyph unicode="&#xf220;" d="M1857 834q51 -106 50 -217q0 -133 -65.5 -245.5t-178 -178t-244.5 -65.5q-123 0 -231 58q-79 -14 -155 -14q-171 0 -327 67t-269 180t-179.5 269t-66.5 327q0 86 17 169q-67 116 -67 247q0 133 65.5 245.5t178 178t245.5 65.5q141 0 260 -75q69 12 144 12 q171 0 327 -66.5t269 -179.5t179.5 -269t66.5 -327q0 -96 -19 -181zM1466 612q59 85 59 188q0 88 -34 149q-35 62 -96 100q-58 39 -143 66q-77 25 -187 49q-89 20 -116 28q-35 9 -68 27q-33 15 -50 38q-17 20 -17 49q0 46 52 80q54 36 146 36q97 0 141 -32q43 -32 75 -94 q30 -48 51 -67q25 -22 72 -22q53 0 87 36q34 35 34 81t-25 96q-24 47 -82 92q-57 45 -139 70q-86 26 -197 26q-139 0 -247 -40q-107 -39 -164 -113q-57 -73 -57 -170q0 -102 55 -170q52 -65 144 -105q95 -40 221 -66q93 -20 154 -38q57 -19 90 -50q33 -30 33 -80 q0 -64 -62 -105q-65 -44 -170 -44q-78 0 -123 22q-47 22 -70 54q-27 34 -49 86q-21 49 -49 72q-32 26 -75 26q-52 0 -87 -33q-36 -33 -36 -79q0 -75 54 -153q52 -76 139 -123q119 -63 302 -63q150 0 263 46q111 46 171 130z" />
-<glyph unicode="&#xf221;" d="M1664 1024q0 -41 -24 -74t-62 -46q22 -33 22 -72q0 -41 -24 -74t-62 -46q22 -33 22 -72q0 -53 -37.5 -90.5t-90.5 -37.5h-64q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-448q-65 0 -123 20t-93.5 44t-80.5 44t-87 20h-128v640h192q49 0 104 47t103.5 127.5 t80.5 204.5t32 261q0 5 0.5 13.5t4 31t9.5 39t19 30.5t31 14q33 0 77.5 -42t79.5 -119t35 -159q0 -85 -8 -165t-16 -117l-8 -38h416q53 0 90.5 -37.5t37.5 -90.5z" />
-<glyph unicode="&#xf222;" d="M1843 1168q0 -55 -28 -100.5t-74 -72.5q14 -50 14 -99q0 -135 -98.5 -250t-267.5 -181.5t-368 -66.5t-368.5 66.5t-268 181t-98.5 249.5q0 50 16 104q-44 27 -70.5 71.5t-26.5 97.5q0 83 59 142t142 59q100 0 160 -83q183 97 412 106l92 457q5 22 23 33q18 12 39 7 l313 -72q24 41 65.5 65.5t89.5 24.5q74 0 126.5 -52.5t52.5 -126.5t-52.5 -126.5t-126.5 -52.5q-71 0 -122 48.5t-56 119.5l-262 60l-77 -386q222 -12 397 -108q60 86 163 86q83 0 141.5 -59t58.5 -142zM1600 1805q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5 t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM1021 501q171 0 316.5 53t230.5 143.5t85 197.5q0 108 -85 199t-230.5 144t-316.5 53q-172 0 -317.5 -53t-230.5 -144t-85 -198t85 -198t230.5 -144t317.5 -53zM307 1168q0 -47 40 -75q47 75 132 137q-29 36 -73 36 q-41 0 -70 -28.5t-29 -69.5zM1698 1089q43 31 43 79q0 40 -28.5 69t-69.5 29q-45 0 -76 -39q83 -61 131 -138zM895 982q0 -46 -33 -79t-79 -33t-78.5 33t-32.5 79t32.5 79t78.5 33q47 0 79.5 -33t32.5 -79zM1265 1094q47 0 79.5 -33t32.5 -79t-33 -79t-79 -33t-79 33t-33 79 t32.5 79t79.5 33zM1224 776q15 15 36 15t36 -15t15 -36.5t-15 -36.5q-86 -86 -271 -86q-187 0 -273 86q-15 15 -15 36.5t15 36.5t36 15t36 -15q56 -56 199 -56q145 0 201 56z" />
-<glyph unicode="&#xf223;" d="M1105 1233v92q0 34 -23.5 57t-57.5 23t-57.5 -23t-23.5 -57l-1 -481q-1 -138 -101.5 -235t-241.5 -97q-142 0 -242.5 99t-100.5 238v209h263v-206q0 -33 23.5 -56.5t57.5 -23.5t57.5 23.5t23.5 56.5v487q5 136 104.5 230.5t238.5 94.5t238.5 -95.5t104.5 -231.5v-107 l-157 -45zM1792 1058v-209q0 -139 -100.5 -238t-242.5 -99t-242 97.5t-102 236.5v210l105 -48l157 46v-212q0 -33 23.5 -56.5t57.5 -23.5t57.5 23.5t23.5 56.5v216h263z" />
-<glyph unicode="&#xf224;" d="M512 1792h1024q106 0 181 -75t75 -181v-384q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5v384q0 106 75 181t181 75zM1024 1077l-293 294q-37 37 -91 37t-90 -37q-38 -37 -38 -90t38 -91l362 -362l4 4q37 -64 108 -64t108 64l5 -4 l362 362q37 38 37 91t-37 90t-91 37q-53 0 -90 -37z" />
-<glyph unicode="&#xf300;" d="M512 1536h1024q106 0 181 -75t75 -181v-384q0 -106 -75 -181t-181 -75h-448l-448 -448v448h-128q-106 0 -181 75t-75 181v384q0 106 75 181t181 75z" />
-<glyph unicode="&#xf301;" d="M1664 1152l-256 -640h-1024v1024h384l64 -128h448v-128h-640l-128 -256h128l64 128h960z" />
-<glyph unicode="&#xf302;" d="M1536 1536v-512l-768 -768l-512 512l768 768h512zM1280 1152q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5z" />
-<glyph unicode="&#xf303;" d="M960 1792q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5t-55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5zM960 512q117 0 223.5 45.5t184 123t123 184t45.5 223.5t-45.5 223.5 t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5zM1024 1115l298 -298l-90 -91l-336 336v474h128v-421z" />
-<glyph unicode="&#xf304;" d="M1024 1152q-106 0 -181 75t-75 181t75 181t181 75t181 -75t75 -181t-75 -181t-181 -75zM896 1024h256q159 0 271.5 -112.5t112.5 -271.5v-256h-1024v256q0 159 112.5 271.5t271.5 112.5z" />
-<glyph unicode="&#xf305;" d="M1664 1664v-1280h-1408v1280h256v128h128v-128h640v128h128v-128h256zM1536 640v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5zM832 1280h128q26 0 45 -19t19 -45v-512 q0 -26 -19 -45t-45 -19t-45 19t-19 45v448h-64q-26 0 -45 19t-19 45t19 45t45 19z" />
-<glyph unicode="&#xf306;" d="M1664 1664v-1280h-1408v1280h256v128h128v-128h640v128h128v-128h256zM1536 640v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5zM1088 1280h2h1h3q22 -2 38.5 -18t19.5 -39v-2v-2 v-1v-2q0 -5 -2 -15l-128 -512q-6 -26 -28.5 -40t-48.5 -7q-26 6 -40 28.5t-7 48.5l108 433h-174q-26 0 -45 19t-19 45t19 45t45 19h256z" />
-<glyph unicode="&#xf307;" d="M1664 1664v-1280h-1408v1280h256v128h128v-128h640v128h128v-128h256zM1536 640v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5zM768 1280h128v-128h-128v128zM1024 1280h128v-128 h-128v128zM1280 1280h128v-128h-128v128zM512 1024h128v-128h-128v128zM768 1024h128v-128h-128v128zM1024 1024h128v-128h-128v128zM1280 1024h128v-128h-128v128zM512 768h128v-128h-128v128zM768 768h128v-128h-128v128zM1024 768h128v-128h-128v128z" />
-<glyph unicode="&#xf308;" d="M1914 1371l-181 -181q-37 38 -90 38t-91 -38l-181 -181q-37 -37 -37 -90t37 -91l-181 -181l-227 226l-395 -395q-68 -68 -113.5 -93t-112.5 -43q12 45 22 71t38 66.5t76 88.5l395 395l-227 227l181 181q37 -37 90.5 -37t91.5 37l181 181q38 38 38 91t-38 90l181 181z" />
-<glyph unicode="&#xf400;" d="M1792 384l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337zM832 768q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5 q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
-<glyph unicode="&#xf401;" d="M1792 384l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337zM832 768q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5 q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM512 1280h640v-128h-640v128z" />
-<glyph unicode="&#xf402;" d="M1664 256l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495zM384 1216q0 -185 131.5 -316.5t316.5 -131.5 q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM1152 1152h-256v-256h-128v256h-256v128h256v256h128v-256h256v-128z" />
-<glyph unicode="&#xf403;" d="M0 1024l506 506q101 103 234.5 160.5t283.5 57.5t283.5 -57.5t233.5 -159.5l507 -507l-506 -507q-101 -103 -234.5 -160t-283.5 -57t-283.5 57.5t-233.5 160.5zM272 1024l370 -371q77 -78 175.5 -119.5t206.5 -41.5t206 41.5t174 118.5l373 372l-371 371 q-158 161 -382 161q-108 0 -206.5 -41t-173.5 -119zM1024 1408q159 0 271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5zM1152 1024q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5 t37.5 -90.5t90.5 -37.5z" />
-<glyph unicode="&#xf404;" d="M1382 1653l-143 -143q-103 46 -215 46q-108 0 -206.5 -41t-173.5 -119l-372 -372l240 -240l-136 -136l-376 376l506 506q101 103 234.5 160.5t283.5 57.5q193 0 358 -95zM1709 1619l-90 90l-1280 -1280l90 -90zM1122 1394l-468 -468q-14 54 -14 98q0 159 112.5 271.5 t271.5 112.5q44 0 98 -14zM2048 1024l-506 -507q-101 -103 -234.5 -160t-283.5 -57q-193 0 -358 95l143 143q103 -46 215 -46q108 0 206 41.5t174 118.5l373 372l-241 241l136 135zM926 654l468 468q14 -54 14 -98q0 -159 -112.5 -271.5t-271.5 -112.5q-44 0 -98 14z" />
-<glyph unicode="&#xf405;" d="M1216 1088l320 -320l-128 -128l-320 320l-320 -320l-128 128l320 320l-320 320l128 128l320 -320l320 320l128 -128z" />
-<glyph unicode="&#xf406;" d="M1216 1088l832 -832l-128 -128l-832 832l-832 -832l-128 128l832 832l-832 832l128 128l832 -832l832 832l128 -128z" />
-<glyph unicode="&#xf407;" d="M1536 1408v-128h-1152v128l256 128q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM832 1408h256q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19zM1408 1216v-704q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5 t-37.5 90.5v704h128v-704h128v704h128v-704h128v704h128v-704h128v704h128z" />
-<glyph unicode="&#xf408;" d="M844 1150l-588 1l476 -330l-183 -535l475 332l475 -332l-183 535l476 330l-587 -1l-181 535z" />
-<glyph unicode="&#xf409;" d="M1664 1152l-128 -128v-512h-1024v512l-128 128l640 512zM1152 1024h-256v-448h256v448z" />
-<glyph unicode="&#xf410;" d="M1792 1536v-128l-768 -384l-768 384v128h1536zM1024 832l768 384v-704h-1536v704z" />
-<glyph unicode="&#xf411;" d="M1728 1280l-896 -896h-448v448l896 896zM685 941l96 -96l595 595l-96 96zM1440 1376l-595 -595l96 -96l595 595zM896 640l-256 256l-128 -128l256 -256z" />
-<glyph unicode="&#xf412;" d="M1280 192v448h-1024v704l384 384v-704h640v448l640 -640z" />
-<glyph unicode="&#xf413;" d="M256 1536v256q209 0 408 -55t367.5 -154t310.5 -241t241 -310.5t154 -367.5t55 -408h-256q0 260 -101.5 497t-273 408.5t-408.5 273t-497 101.5zM256 1024v256q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5h-256q0 209 -103 385.5t-279.5 279.5t-385.5 103zM640 448 q0 80 -56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56t136 56t56 136z" />
-<glyph unicode="&#xf414;" d="M1237 1711l759 -1237q88 -142 31 -244t-224 -102h-1557q-168 0 -225 102t31 244l760 1237q57 93 134.5 126.5t155 0t135.5 -126.5zM1152 896v384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 384 q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5z" />
-<glyph unicode="&#xf415;" d="M128 1024h400q45 0 79.5 27.5t44.5 69.5q33 125 136.5 206t235.5 81q154 0 270 -114q38 -38 90.5 -38t90.5 38q37 38 37 91t-37 90q-88 89 -204.5 139t-246.5 50q-194 0 -353 -106t-234 -278h-309v-256zM1280 1024q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181 t181 -75t181 75t75 181zM1920 1024h-400q-45 0 -79.5 -27.5t-44.5 -69.5q-33 -125 -136.5 -206t-235.5 -81q-156 0 -269 115q-38 37 -91 37t-91 -38q-37 -38 -37 -91t37 -90q89 -89 205 -139t246 -50q194 0 353 106t234 278h309v256z" />
-<glyph unicode="&#xf416;" d="M1088 1792q133 0 226.5 -93.5t93.5 -226.5v-640q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5v320h128v-320q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5v640q0 80 -56 136t-136 56t-136 -56t-56 -136v-512q0 -26 19 -45t45 -19t45 19 t19 45v452h128v-452q0 -80 -56 -136t-136 -56t-136 56t-56 136v512q0 133 93.5 226.5t226.5 93.5z" />
-<glyph unicode="&#xf417;" d="M1536 1216q0 -117 -44.5 -222.5t-124.5 -185.5l-407 -406l-407 406q-80 80 -124.5 185.5t-44.5 222.5t45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM960 896q133 0 226.5 93.5t93.5 226.5t-93.5 226.5t-226.5 93.5t-226.5 -93.5 t-93.5 -226.5t93.5 -226.5t226.5 -93.5z" />
-<glyph unicode="&#xf418;" d="M1536 1408l-512 -768h-128l-288 416l128 128l224 -192l448 512z" />
-<glyph unicode="&#xf419;" d="M2048 1792v-256h-2048v256h2048zM0 1152h2048v-256h-2048v256zM0 512h2048v-256h-2048v256z" />
-<glyph unicode="&#xf420;" d="M256 1792h640v-640l-232 232q-72 -71 -112 -163.5t-40 -196.5q0 -176 108.5 -313.5t275.5 -180.5v-262q-180 30 -326 137t-230 269.5t-84 349.5q0 155 60 294.5t167 246.5zM1792 1024q0 -155 -60 -294.5t-167 -246.5l227 -227h-640v640l19 -19l213 -213q71 71 111.5 164 t40.5 196q0 176 -108.5 313.5t-275.5 180.5v263q180 -31 326 -137.5t230 -269.5t84 -350z" />
-<glyph unicode="&#xf421;" d="M1536 1152v-256h-1152v256h1152z" />
-<glyph unicode="&#xf422;" d="M1536 1536v-1024h-1152v1024h1152zM1408 1280h-896v-640h896v640z" />
-<glyph unicode="&#xf423;" d="M301 960h403v-384h-128v256h-493l373 671l112 -62zM2048 960v-384h-128v256h-493l373 671l112 -62l-267 -481h403zM1088 1344q87 0 160.5 -43t116.5 -116.5t43 -160.5t-43 -160.5t-116.5 -116.5t-160.5 -43t-160.5 43t-116.5 116.5t-43 160.5t43 160.5t116.5 116.5 t160.5 43zM1088 832q79 0 135.5 56.5t56.5 135.5t-56.5 135.5t-135.5 56.5t-135.5 -56.5t-56.5 -135.5t56.5 -135.5t135.5 -56.5z" />
-<glyph unicode="&#xf424;" d="M1792 1408v-768l-384 -384h-768l-384 384v768l384 384h768zM1152 1024v384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5z" />
-<glyph unicode="&#xf425;" d="M1536 1664v-1280h-1152v1280h256q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5h256zM1088 1664h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45t-19 45t-45 19zM1408 1536h-128v-128h-640v128h-128v-1024h896v1024zM704 1280q26 0 45 -19 t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM896 1280h384v-128h-384v128zM704 1024q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM896 1024h384v-128h-384v128zM704 768q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19z M896 768h384v-128h-384v128z" />
-<glyph unicode="&#xf426;" d="M1641 1024h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-1280q-106 0 -181 75t-75 181t75 181t181 75h7q-7 29 -7 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128z" />
-<glyph unicode="&#xf427;" d="M1432 1722l286 -286q74 -75 74 -180.5t-74 -180.5l-233 -233q-74 -73 -178.5 -74t-179.5 71l-455 -455h-288v288l455 455l-1 1q-74 74 -74 180t74 181l233 233q75 74 181 74t180 -74zM1504 1264l-256 256l-160 -160l256 -256z" />
-<glyph unicode="&#xf428;" d="M1024 1280q106 0 181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181t75 181t181 75z" />
-<glyph unicode="&#xf429;" d="M1517 960l-493 -493l-87 86l343 343h-896v128h896l-343 343l87 86z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#xf100;" d="M512 512v128h768v-128h-768zM512 768v128h256v-128h-256zM512 1024v128h640v-128h-640zM512 1280v128h1024v-128h-1024zM896 768v128h640v-128h-640zM1280 1024v128h256v-128h-256z" />
+<glyph unicode="&#xf101;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM768 1024q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
+<glyph unicode="&#xf102;" d="M128 384v896l512 128l128 256h512l128 -256l512 -128v-896h-1792zM256 1440v160h256v-96zM576 960q0 -185 131.5 -316.5t316.5 -131.5q186 0 317 131.5t131 316.5q0 186 -131 317t-317 131q-185 0 -316.5 -131t-131.5 -317zM704 960q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5q0 -132 -93.5 -226t-226.5 -94t-226.5 94t-93.5 226z" />
+<glyph unicode="&#xf103;" d="M128 512v384h384v-384h-384zM128 1024v384h896v-384h-896zM640 512v384h384v-384h-384zM1152 512v896h896v-896h-896z" />
+<glyph unicode="&#xf104;" d="M512 384v1280l1152 -640z" />
+<glyph unicode="&#xf105;" d="M640 1408q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5q0 -124 -71.5 -222t-184.5 -138v-536l-256 -128v664q-113 40 -184.5 138t-71.5 222z" />
+<glyph unicode="&#xf106;" d="M256 896v640h640v-640q0 -212 -150 -362t-362 -150v256q106 0 181 75t75 181h-384zM1152 896v640h640v-640q0 -212 -150 -362t-362 -150v256q106 0 181 75t75 181h-384z" />
+<glyph unicode="&#xf107;" d="M512 704v384q0 97 53 176.5t139 116.5v-151q-64 -57 -64 -142v-384q0 -80 56 -136t136 -56t136 56t56 136v384q0 85 -64 142v151q86 -37 139 -116.5t53 -176.5v-384q0 -133 -93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5zM768 1088v384q0 133 93.5 226.5 t226.5 93.5t226.5 -93.5t93.5 -226.5v-384q0 -97 -53 -176.5t-139 -116.5v151q64 57 64 142v384q0 80 -56 136t-136 56t-136 -56t-56 -136v-384q0 -85 64 -142v-151q-86 37 -139 116.5t-53 176.5z" />
+<glyph unicode="&#xf108;" d="M0 1152v384q0 96 80 176t176 80h1024q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-448l-448 -448v448h-128q-96 0 -176 80t-80 176zM768 640l128 128h384q168 0 276 108t108 276v384q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-128v-448l-448 448 h-320z" />
+<glyph unicode="&#xf109;" d="M256 768v512h384l384 384v-1280l-384 384h-384zM1205 843q75 75 75 181t-75 181l91 91q26 -27 46.5 -57.5t35 -65t22.5 -72.5t8 -77q0 -78 -29.5 -148t-82.5 -124zM1386 662q71 71 110.5 164.5t39.5 197.5t-39.5 197.5t-110.5 164.5l91 91q88 -89 137.5 -206t49.5 -247 q0 -87 -23 -170t-64.5 -153.5t-99.5 -129.5z" />
+<glyph unicode="&#xf200;" d="M0 1024q0 208 81 398t218.5 327t327 218t397.5 81q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5q0 -335 -195.5 -601.5t-504.5 -369.5q-36 -7 -53 8.5t-17 40.5q0 4 0.5 102t0.5 179q0 130 -69 189q77 9 137.5 24.5t124.5 51.5t107 89t70.5 140t27.5 201 q0 161 -105 274q6 15 11 35t9 56t-3.5 83.5t-26.5 96.5q-4 1 -10.5 2t-32 -1t-55.5 -11t-79.5 -33.5t-104.5 -61.5q-118 33 -256 35q-138 -2 -256 -35q-55 37 -104 61.5t-80 33t-54.5 11.5t-33.5 1l-10 -2q-58 -146 -10 -271q-105 -115 -105 -274q0 -114 27.5 -201 t70.5 -140t107 -89t124.5 -52t136.5 -24q-53 -47 -65 -137q-28 -13 -59.5 -20t-75.5 -6.5t-87.5 28.5t-75.5 83q-2 4 -6.5 10.5t-19 24t-31.5 31t-44 25.5t-56 14h-10t-18.5 -3.5t-17 -9t4 -18.5t34.5 -31q3 -1 7.5 -4t19 -14.5t27.5 -27t30 -43.5t30 -61q1 -3 2.5 -7t8 -17 t15.5 -25.5t24.5 -28t33.5 -28t45 -23.5t57.5 -16t71.5 -3.5t87 11.5q0 -50 0.5 -110t0.5 -64q0 -24 -17 -40t-53 -10q-309 103 -504.5 370t-195.5 602z" />
+<glyph unicode="&#xf201;" d="M0 1024q0 206 82 395.5t219.5 327t327 219.5t395.5 82t395.5 -82t327 -219.5t219.5 -327t82 -395.5t-82 -395.5t-219.5 -327t-327 -219.5t-395.5 -82t-395.5 82t-327 219.5t-219.5 327t-82 395.5zM128 1024q0 -167 58 -319.5t166 -272.5q125 205 339 360t445 232 q-16 48 -80 176q-282 -86 -481.5 -111t-446.5 -1v-64zM160 1232q194 -22 444 14t388 82q-141 282 -320 528q-194 -85 -329.5 -247.5t-182.5 -376.5zM480 320q216 -192 544 -192q181 0 368 80q-33 300 -208 688q-222 -74 -410 -225.5t-294 -350.5zM832 1904 q102 -166 304 -512q6 2 86 31t118.5 45t108 47t122 64t93.5 69q-126 126 -290.5 199t-349.5 73q-32 0 -96 -8t-96 -8zM1200 1248q22 -29 36.5 -54.5t34 -67.5t25.5 -54q170 33 336 30t288 -30q-26 285 -160 464q-71 -57 -162 -104.5t-214.5 -100.5t-183.5 -83zM1344 928 q14 -27 43 -103t74.5 -231t74.5 -306q156 108 258 278t126 362q-276 46 -576 0z" />
+<glyph unicode="&#xf202;" d="M128 465q48 -5 88 -5q256 0 456 157q-119 2 -213 73.5t-130 182.5q39 -7 69 -7q47 0 97 13q-127 26 -211 127t-84 233v5q80 -43 167 -46q-76 50 -120 131t-44 175q0 101 50 185q138 -170 335 -271.5t423 -112.5q-10 39 -10 84q0 152 108 259.5t260 107.5q160 0 268 -116 q128 26 233 89q-42 -132 -161 -203q109 13 211 58q-73 -111 -183 -191q0 -7 0.5 -23t0.5 -24q0 -122 -31 -246t-89.5 -241t-149.5 -218.5t-204 -177.5t-260.5 -119.5t-311.5 -43.5q-305 0 -564 165z" />
+<glyph unicode="&#xf203;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-282v711h270l12 260h-282v192v12q0 60 21.5 87.5t87.5 27.5l166 -1l6 242q-78 10 -183 10q-94 0 -167 -27.5t-117 -74.5t-66 -105.5t-22 -126.5v-236h-254v-260h254v-711 h-724q-106 0 -181 75t-75 181z" />
+<glyph unicode="&#xf204;" d="M640 969v303h222v258q0 78 26 147t77 124t136.5 87t194.5 32q55 0 108 -3t79 -6l26 -3l-7 -282h-193q-76 0 -101.5 -32t-25.5 -101v-14v-207h329l-14 -303h-315v-841h-320v841h-222z" />
+<glyph unicode="&#xf205;" d="M128 1024q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM218 1024q0 -236 125 -430.5t330 -294.5l-385 1053q-70 -156 -70 -328zM351 1466h52q37 0 91 2.5t89 4.5 l34 3q21 1 30.5 -14.5t2.5 -32.5t-27 -20q-44 -5 -93 -7l294 -873l176 529l-125 344l-85 7q-20 2 -27.5 19t2.5 33t30 15q133 -10 212 -10q38 0 91.5 2.5t88.5 4.5l35 3q16 1 25.5 -8.5t10 -22t-7 -23.5t-23.5 -13q-43 -5 -92 -7l291 -866l81 268q24 79 32.5 107.5 t18.5 74.5t10 79q0 46 -11.5 90.5t-23.5 71t-32 60.5q-2 4 -11.5 19t-12 20t-10.5 18.5t-11 19t-9 17.5t-8.5 19t-6.5 18t-5.5 19.5t-3 18.5t-1.5 20q0 57 39 100t97 43l10 -1q-110 101 -249.5 156.5t-294.5 55.5q-207 0 -385 -98t-288 -266zM796 251q112 -33 228 -33 q138 0 268 46q-4 6 -6 11l-248 679zM1429 328q183 106 292 291.5t109 404.5q0 207 -99 386q5 -40 5 -82q0 -135 -61 -289z" />
+<glyph unicode="&#xf206;" d="M128 486v485q125 -127 330 -127q30 0 59 3q-32 -61 -32 -118q0 -33 13 -63t28.5 -48.5t45.5 -47.5q-18 0 -54.5 -0.5t-55.5 -0.5q-183 0 -334 -83zM128 1599v65q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-128h-256v256h-128v-256h-256v-128h256v-256h128v256h256 v-1024q0 -106 -75 -181t-181 -75h-507q5 28 5 50q0 143 -46.5 230t-189.5 194q-3 2 -20.5 15t-25 19t-25.5 20t-27.5 22.5t-24 22t-23 23.5t-17 22t-12.5 22.5t-4 20.5q0 52 23 87t99 94q180 141 180 324q0 113 -45 204.5t-128 139.5h160l135 142h-607q-127 0 -241.5 -49 t-194.5 -132zM139 309q57 85 166 137.5t237 51.5q84 -1 158 -26q19 -13 62 -42.5t61 -42t48 -37t44.5 -41.5t29 -41.5t21.5 -49.5q7 -29 7 -66q0 -16 -1 -24h-588q-85 0 -153 50.5t-92 130.5zM228 1307q-21 161 50.5 269.5t194.5 104.5q121 -4 215.5 -118.5t116.5 -277.5 q21 -160 -43 -256t-187 -92q-125 4 -225.5 108t-121.5 262z" />
+<glyph unicode="&#xf207;" d="M256 1553q0 -73 50.5 -122t131.5 -49h2q84 0 135 49t51 122q-1 75 -51 123t-133 48t-134.5 -48.5t-51.5 -122.5zM275 256h330v991h-330v-991zM787 256h329v553q0 54 11 81q20 50 63 85t106 35q58 0 96 -29t54.5 -77.5t16.5 -117.5v-530h329v568q0 112 -28.5 198 t-80 139.5t-120 81t-150.5 27.5q-36 0 -69 -5.5t-58.5 -15t-49 -23t-40 -27t-32.5 -31t-26.5 -31.5t-21.5 -31v141h-329q1 -26 1.5 -138t0.5 -252.5t-0.5 -277.5t-1.5 -230v-93z" />
+<glyph unicode="&#xf208;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM384 1422q0 -58 40.5 -97.5t105.5 -39.5h1q67 0 108.5 39.5t41.5 97.5q-2 60 -42 98.5t-106 38.5q-67 0 -108 -39t-41 -98zM400 384h263 v793h-263v-793zM809 384h264v443q0 45 8 64q16 40 50.5 68t85.5 28q133 0 133 -179v-424h264v455q0 175 -83.5 266t-220.5 91q-50 0 -90.5 -12t-68.5 -34t-45 -41t-33 -44v112h-264v-793z" />
+<glyph unicode="&#xf209;" d="M171 1260q0 109 35.5 219t110 213t179 182t254 126.5t323.5 47.5q176 0 327.5 -60.5t253.5 -161t160 -231t58 -270.5q0 -246 -85 -443t-241 -309.5t-355 -112.5q-99 0 -186.5 46.5t-121.5 110.5q-73 -290 -89 -347q-34 -123 -127 -270l-149 54q-7 167 22 290l162 688 q-40 81 -40 200q0 139 70.5 232.5t172.5 93.5q83 0 127 -53.5t44 -135.5q0 -51 -18.5 -124t-49 -170t-44.5 -154q-23 -99 37.5 -171t161.5 -72q117 0 209.5 92t142 244.5t49.5 334.5q0 214 -139 349t-387 135q-139 0 -257.5 -49.5t-197 -133t-122.5 -193t-44 -229.5 q0 -147 83 -247q18 -21 21.5 -34t-3.5 -37q-16 -61 -25 -101q-7 -24 -24.5 -32t-39.5 1q-127 51 -192.5 181.5t-65.5 300.5z" />
+<glyph unicode="&#xf210;" d="M0 1024q0 208 81 398t218.5 327t327 218t397.5 81q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5t-81 -398.5t-218 -326.5t-326.5 -218t-398.5 -81q-147 0 -290 42q74 116 103 219l72 282q28 -53 99 -90.5t151 -37.5q162 0 288.5 91.5t195.5 251t69 359.5 q0 114 -47 220t-130 187.5t-206.5 130.5t-265.5 49q-141 0 -262 -38.5t-205.5 -103t-145.5 -147.5t-89.5 -172.5t-28.5 -178.5q0 -138 53 -243.5t156 -147.5q18 -8 32.5 -1t18.5 26q2 9 10 41t11 41q5 19 2.5 30t-16.5 28q-68 78 -68 200q0 97 35.5 186t99.5 156.5t160 108 t209 40.5q201 0 313.5 -109.5t112.5 -283.5q0 -148 -40 -271.5t-115 -198t-169 -74.5q-82 0 -131.5 58.5t-30.5 138.5q11 46 35.5 125t39.5 138t15 101q0 66 -35.5 109.5t-102.5 43.5q-82 0 -139.5 -76t-57.5 -189q0 -43 8 -83.5t16 -59.5l9 -19q-113 -475 -132 -558 q-24 -97 -18 -235q-275 120 -444 374t-169 564z" />
+<glyph unicode="&#xf211;" d="M160 1024q0 -172 122 -294t294 -122t294 122t122 294t-122 294t-294 122t-294 -122t-122 -294zM1056 1024q0 -172 122 -294t294 -122t294 122t122 294t-122 294t-294 122t-294 -122t-122 -294z" />
+<glyph unicode="&#xf212;" d="M128 1379l84 -108q121 84 141 84q92 0 173 -287l144 -525q108 -287 265 -287q253 0 619 471q353 451 365 710q16 347 -260 355q-373 12 -505 -417q69 29 133 29q136 0 120 -152q-8 -92 -120 -268q-113 -176 -169 -176q-73 0 -133 271q-20 79 -72 407q-49 303 -258 284 q-89 -8 -265 -160q-127 -113 -262 -231z" />
+<glyph unicode="&#xf213;" d="M128 768v512q0 159 112.5 271.5t271.5 112.5h1024q159 0 271.5 -112.5t112.5 -271.5v-512q0 -159 -112.5 -271.5t-271.5 -112.5h-1024q-159 0 -271.5 112.5t-112.5 271.5zM768 640l640 384l-640 384v-768z" />
+<glyph unicode="&#xf214;" d="M472 1186h198v-629q0 -121 26 -187q26 -65 92 -122t161 -89q93 -31 218 -31q110 0 201 22q88 20 208 76v282q-134 -88 -271 -88q-76 0 -136 36q-44 25 -61 70q-17 46 -17 200v460h426v281h-426v453h-255q-17 -139 -62 -228q-48 -93 -121 -154q-74 -64 -181 -99v-253z" />
+<glyph unicode="&#xf215;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM256 384q0 -53 37.5 -90.5t90.5 -37.5h1280q53 0 90.5 37.5t37.5 90.5v768h-272q16 -66 16 -128q0 -212 -150 -362t-362 -150t-362 150 t-150 362q0 62 16 128h-272v-768zM640 1024q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM1408 1536q0 -53 37.5 -90.5t90.5 -37.5h128q53 0 90.5 37.5t37.5 90.5v128q0 53 -37.5 90.5t-90.5 37.5 h-128q-53 0 -90.5 -37.5t-37.5 -90.5v-128z" />
+<glyph unicode="&#xf216;" d="M256 790v467q0 31 29 55l702 467q17 11 37 11t37 -11l702 -467q29 -24 29 -55v-467q0 -32 -29 -54l-702 -468q-17 -11 -37 -11q-18 0 -37 11l-702 468q-29 22 -29 54zM388 914l165 110l-165 110v-220zM441 790l517 -344v308l-286 191zM441 1257l231 -154l286 191v307z M791 1024l233 -156l234 156l-234 156zM1090 446l517 344l-231 155l-286 -191v-308zM1090 1294l286 -191l231 154l-517 344v-307zM1495 1024l165 -110v220z" />
+<glyph unicode="&#xf217;" d="M128 1024q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM208 1024q0 -221 109.5 -409t297.5 -297.5t409 -109.5q236 0 432 123.5t298 327.5q59 136 59 266 q0 117 -43.5 221.5t-118.5 182.5t-175.5 131t-215.5 73q116 -48 204 -145t127 -218q54 -151 17.5 -320t-150.5 -289q-111 -123 -276 -179t-332 -27q-168 27 -307 138t-210 270q-74 156 -67.5 338.5t93.5 335.5q88 155 238.5 260t328.5 135q2 0 35 6q-208 -16 -380.5 -128 t-272.5 -293.5t-100 -392.5zM359 998q17 -148 100 -275.5t207 -200.5q120 -71 264 -78.5t267 49.5q-76 -21 -148 -21q-149 0 -275.5 74t-200.5 201t-74 276q0 214 146 373l3 3l14 14l1 1q98 114 235 178t293 64q163 0 306 -70t241 -193q-36 57 -70 96q-104 126 -250 200.5 t-305 80.5q-157 7 -306.5 -51.5t-258.5 -169.5q-109 -107 -159 -254.5t-30 -296.5zM612 1025q8 -119 85 -217t186 -128q110 -33 221.5 8.5t170.5 134.5q61 91 50 204t-86 187q-70 77 -179.5 87t-188.5 -50q-85 -62 -105 -157q-21 -98 30 -182q50 -84 142 -108q92 -23 172 26 q38 23 64 58.5t34 76.5q17 88 -34 159q-52 72 -136 77q-83 6 -142 -54q-57 -55 -45 -138q6 -37 27.5 -68.5t52.5 -47.5q40 -21 87 -16q-46 1 -82 29t-49 71l-2 3q-14 30 -9.5 67t25.5 66q22 30 56.5 46.5t72.5 14.5t73.5 -23.5t54.5 -55.5q46 -76 8 -158 q-18 -39 -53.5 -66.5t-78.5 -35.5q-43 -9 -88.5 3.5t-78.5 43.5q-74 68 -68 169q2 65 45 118.5t109.5 77t132.5 5.5q68 -16 118.5 -70.5t65 -124.5t-9.5 -144q-37 -107 -150 -158.5t-224 -8.5q-114 43 -170 158q-55 117 -17 238q35 121 152 191t246 47q131 -19 223 -128 t95 -246q6 -142 -81 -257q-86 -115 -225 -157q-114 -35 -234 -7q83 -34 174 -34q195 0 333.5 138.5t138.5 333.5v2q-10 107 -63.5 202.5t-137.5 157.5q-102 77 -236 87t-243 -49q-116 -62 -177 -167q-61 -107 -52 -231z" />
+<glyph unicode="&#xf218;" d="M128 464q0 -66 32 -125.5t92.5 -107t159 -75.5t222.5 -28q117 0 218.5 25t174 68t124 99.5t76.5 120.5t25 131q0 40 -6.5 74.5t-22.5 65t-30.5 53t-41.5 50t-45 43t-51 44.5l-85 66q-19 15 -28.5 24.5t-21 31t-11.5 45.5t12 47.5t21.5 34.5t32.5 33q37 29 59 48t52 52 t46 64t28 75.5t12 94.5q0 43 -8 82t-23.5 70.5t-30.5 55.5t-38 47.5t-35 34.5t-32 27h146l151 85h-485q-264 0 -421 -129q-73 -64 -111.5 -147.5t-38.5 -167.5q0 -56 16 -109.5t49.5 -100.5t79.5 -82.5t109 -56.5t136 -21q19 0 75 5q0 -2 -4 -10.5t-4.5 -10.5t-3.5 -9.5 t-4 -11l-3 -10.5t-2.5 -12.5t-1 -13t-0.5 -14.5q0 -26 5 -48t18.5 -45t20.5 -32.5t26 -34.5q-61 -4 -98 -7.5t-107 -14.5t-131.5 -32.5t-112.5 -53.5q-50 -29 -86.5 -66.5t-56.5 -76.5t-29 -74.5t-9 -69.5zM335 514q0 47 17 87.5t38.5 64.5t54 45t50.5 28.5t42 16.5 q35 11 76.5 19.5t77.5 12t58.5 5t34.5 1.5q35 0 54 -3q51 -36 82 -59t63.5 -50.5t50.5 -48.5t33.5 -46t21.5 -50.5t6 -55.5q0 -113 -91 -183.5t-255 -70.5q-187 0 -300.5 80t-113.5 207zM453 1591q0 110 51 174q28 35 73.5 56t91.5 21q56 0 105.5 -28.5t83.5 -74.5 t59 -103.5t36.5 -115.5t11.5 -110q0 -113 -59 -172q-18 -19 -44 -33.5t-56.5 -23.5t-58.5 -9q-58 0 -108 28.5t-83.5 73.5t-57.5 101.5t-34.5 111.5t-10.5 104zM1408 1024v128h256v256h128v-256h256v-128h-256v-256h-128v256h-256z" />
+<glyph unicode="&#xf219;" d="M134.5 1267.5q5.5 80.5 41 179.5t102.5 191q70 78 153.5 135t167 86.5t172 45.5t169 15t156.5 -8t137.5 -21t107.5 -26.5t72 -22.5l25 -9q12 -5 32 -14.5t74.5 -45.5t101 -78.5t97 -114.5t78 -153t27.5 -194.5t-40 -238.5q-43 -89 -97 -157.5t-109.5 -110t-115.5 -69 t-115.5 -37t-107.5 -12t-95.5 4t-76 13t-49.5 13.5l-18 6v-277q-1 -3 -2 -9t-6.5 -23t-14 -34t-24.5 -39.5t-36 -42t-51.5 -39.5t-68.5 -33q-52 -19 -107 -20t-97 11.5t-76.5 27.5t-53.5 27l-18 13v280q33 -34 67 -55.5t67.5 -28.5t61.5 11t44 63v946h312v-538l65 -13 q206 -32 329 60q105 78 128 243q2 76 -15.5 141t-49 110.5t-72.5 82.5t-86.5 59.5t-91.5 39t-87.5 24t-73.5 11.5t-52 5h-19l-66 -2q-217 -16 -359 -141q-57 -50 -97 -115q-27 -45 -39.5 -93t-11 -88t10 -78.5t22 -67.5t25.5 -51t21 -33l9 -12l-225 -201q-7 9 -18.5 25 t-40.5 68.5t-49.5 107.5t-34.5 137.5t-8.5 163z" />
+<glyph unicode="&#xf220;" d="M141 1431q0 133 65.5 245.5t178 178t245.5 65.5q141 0 260 -75q69 12 144 12q171 0 327 -66.5t269 -179.5t179.5 -269t66.5 -327q0 -96 -19 -181q51 -106 50 -217q0 -133 -65.5 -245.5t-178 -178t-244.5 -65.5q-123 0 -231 58q-79 -14 -155 -14q-171 0 -327 67t-269 180 t-179.5 269t-66.5 327q0 86 17 169q-67 116 -67 247zM537 775q0 -75 54 -153q52 -76 139 -123q119 -63 302 -63q150 0 263 46q111 46 171 130q59 85 59 188q0 88 -34 149q-35 62 -96 100q-58 39 -143 66q-77 25 -187 49q-89 20 -116 28q-35 9 -68 27q-33 15 -50 38 q-17 20 -17 49q0 46 52 80q54 36 146 36q97 0 141 -32q43 -32 75 -94q30 -48 51 -67q25 -22 72 -22q53 0 87 36q34 35 34 81t-25 96q-24 47 -82 92q-57 45 -139 70q-86 26 -197 26q-139 0 -247 -40q-107 -39 -164 -113q-57 -73 -57 -170q0 -102 55 -170q52 -65 144 -105 q95 -40 221 -66q93 -20 154 -38q57 -19 90 -50q33 -30 33 -80q0 -64 -62 -105q-65 -44 -170 -44q-78 0 -123 22q-47 22 -70 54q-27 34 -49 86q-21 49 -49 72q-32 26 -75 26q-52 0 -87 -33q-36 -33 -36 -79z" />
+<glyph unicode="&#xf221;" d="M384 384v640h192q49 0 104 47t103.5 127.5t80.5 204.5t32 261q0 5 0.5 13.5t4 31t9.5 39t19 30.5t31 14q33 0 77.5 -42t79.5 -119t35 -159q0 -85 -8 -165t-16 -117l-8 -38h416q53 0 90.5 -37.5t37.5 -90.5q0 -41 -24 -74t-62 -46q22 -33 22 -72q0 -41 -24 -74t-62 -46 q22 -33 22 -72q0 -53 -37.5 -90.5t-90.5 -37.5h-64q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-448q-65 0 -123 20t-93.5 44t-80.5 44t-87 20h-128z" />
+<glyph unicode="&#xf222;" d="M205 1168q0 83 59 142t142 59q100 0 160 -83q183 97 412 106l92 457q5 22 23 33q18 12 39 7l313 -72q24 41 65.5 65.5t89.5 24.5q74 0 126.5 -52.5t52.5 -126.5t-52.5 -126.5t-126.5 -52.5q-71 0 -122 48.5t-56 119.5l-262 60l-77 -386q222 -12 397 -108q60 86 163 86 q83 0 141.5 -59t58.5 -142q0 -55 -28 -100.5t-74 -72.5q14 -50 14 -99q0 -135 -98.5 -250t-267.5 -181.5t-368 -66.5t-368.5 66.5t-268 181t-98.5 249.5q0 50 16 104q-44 27 -70.5 71.5t-26.5 97.5zM307 1168q0 -47 40 -75q47 75 132 137q-29 36 -73 36q-41 0 -70 -28.5 t-29 -69.5zM388 896q0 -107 85 -198t230.5 -144t317.5 -53q171 0 316.5 53t230.5 143.5t85 197.5q0 108 -85 199t-230.5 144t-316.5 53q-172 0 -317.5 -53t-230.5 -144t-85 -198zM672 982q0 46 32.5 79t78.5 33q47 0 79.5 -33t32.5 -79t-33 -79t-79 -33t-78.5 33t-32.5 79z M737 739.5q0 21.5 15 36.5t36 15t36 -15q56 -56 199 -56q145 0 201 56q15 15 36 15t36 -15t15 -36.5t-15 -36.5q-86 -86 -271 -86q-187 0 -273 86q-15 15 -15 36.5zM1153 982q0 46 32.5 79t79.5 33t79.5 -33t32.5 -79t-33 -79t-79 -33t-79 33t-33 79zM1523 1728 q0 -32 22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5t-54.5 -22.5t-22.5 -54.5zM1567 1227q83 -61 131 -138q43 31 43 79q0 40 -28.5 69t-69.5 29q-45 0 -76 -39z" />
+<glyph unicode="&#xf223;" d="M256 849v209h263v-206q0 -33 23.5 -56.5t57.5 -23.5t57.5 23.5t23.5 56.5v487q5 136 104.5 230.5t238.5 94.5t238.5 -95.5t104.5 -231.5v-107l-157 -45l-105 48v92q0 34 -23.5 57t-57.5 23t-57.5 -23t-23.5 -57l-1 -481q-1 -138 -101.5 -235t-241.5 -97q-142 0 -242.5 99 t-100.5 238zM1105 846v210l105 -48l157 46v-212q0 -33 23.5 -56.5t57.5 -23.5t57.5 23.5t23.5 56.5v216h263v-209q0 -139 -100.5 -238t-242.5 -99t-242 97.5t-102 236.5z" />
+<glyph unicode="&#xf224;" d="M256 1152v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-384q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 1281q0 -53 38 -91l362 -362l4 4q37 -64 108 -64t108 64l5 -4l362 362q37 38 37 91t-37 90t-91 37 q-53 0 -90 -37l-294 -294l-293 294q-37 37 -91 37t-90 -37q-38 -37 -38 -90z" />
+<glyph unicode="&#xf225;" d="M128 930l365 291l531 -328l-369 -308zM128 1513l527 345l369 -308l-531 -329zM497 508v115l158 -103l370 307l370 -307l158 103v-115l-528 -317zM1024 893l532 328l364 -291l-527 -345zM1024 1550l369 308l527 -345l-364 -292z" />
+<glyph unicode="&#xf300;" d="M256 896v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-384q0 -106 -75 -181t-181 -75h-448l-448 -448v448h-128q-106 0 -181 75t-75 181z" />
+<glyph unicode="&#xf301;" d="M384 512v1024h384l64 -128h448v-128h-640l-128 -256h128l64 128h960l-256 -640h-1024z" />
+<glyph unicode="&#xf302;" d="M256 768l768 768h512v-512l-768 -768zM1152 1280q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf303;" d="M256 1088q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5t-55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5zM384 1088q0 -117 45.5 -223.5t123 -184t184 -123t223.5 -45.5 t223.5 45.5t184 123t123 184t45.5 223.5t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5zM896 1062v474h128v-421l298 -298l-90 -91z" />
+<glyph unicode="&#xf304;" d="M512 384v256q0 159 112.5 271.5t271.5 112.5h256q159 0 271.5 -112.5t112.5 -271.5v-256h-1024zM768 1408q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
+<glyph unicode="&#xf305;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM768 1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45 v-512q0 -26 -19 -45t-45 -19t-45 19t-19 45v448h-64q-26 0 -45 19t-19 45z" />
+<glyph unicode="&#xf306;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM768 1216q0 26 19 45t45 19h256h2h1h3 q22 -2 38.5 -18t19.5 -39v-2v-2v-1v-2q0 -5 -2 -15l-128 -512q-6 -26 -28.5 -40t-48.5 -7q-26 6 -40 28.5t-7 48.5l108 433h-174q-26 0 -45 19t-19 45z" />
+<glyph unicode="&#xf307;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM512 640v128h128v-128h-128zM512 896v128h128v-128 h-128zM768 640v128h128v-128h-128zM768 896v128h128v-128h-128zM768 1152v128h128v-128h-128zM1024 640v128h128v-128h-128zM1024 896v128h128v-128h-128zM1024 1152v128h128v-128h-128zM1280 896v128h128v-128h-128zM1280 1152v128h128v-128h-128z" />
+<glyph unicode="&#xf308;" d="M342 342q12 45 22 71t38 66.5t76 88.5l395 395l-227 227l181 181q37 -37 90.5 -37t91.5 37l181 181q38 38 38 91t-38 90l181 181l543 -543l-181 -181q-37 38 -90 38t-91 -38l-181 -181q-37 -37 -37 -90t37 -91l-181 -181l-227 226l-395 -395q-68 -68 -113.5 -93 t-112.5 -43z" />
+<glyph unicode="&#xf400;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5z" />
+<glyph unicode="&#xf401;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM512 1152v128h640v-128h-640z" />
+<glyph unicode="&#xf402;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM512 1152v128h256v256h128v-256h256v-128h-256v-256h-128v256h-256z" />
+<glyph unicode="&#xf403;" d="M0 1024l506 506q101 103 234.5 160.5t283.5 57.5t283.5 -57.5t233.5 -159.5l507 -507l-506 -507q-101 -103 -234.5 -160t-283.5 -57t-283.5 57.5t-233.5 160.5zM272 1024l370 -371q77 -78 175.5 -119.5t206.5 -41.5t206 41.5t174 118.5l373 372l-371 371 q-158 161 -382 161q-108 0 -206.5 -41t-173.5 -119zM640 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5zM1024 1152q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf404;" d="M0 1024l506 506q101 103 234.5 160.5t283.5 57.5q193 0 358 -95l-143 -143q-103 46 -215 46q-108 0 -206.5 -41t-173.5 -119l-372 -372l240 -240l-136 -136zM339 429l90 -90l1280 1280l-90 90zM640 1024q0 159 112.5 271.5t271.5 112.5q44 0 98 -14l-468 -468 q-14 54 -14 98zM666 395l143 143q103 -46 215 -46q108 0 206 41.5t174 118.5l373 372l-241 241l136 135l376 -376l-506 -507q-101 -103 -234.5 -160t-283.5 -57q-193 0 -358 95zM926 654l468 468q14 -54 14 -98q0 -159 -112.5 -271.5t-271.5 -112.5q-44 0 -98 14z" />
+<glyph unicode="&#xf405;" d="M640 768l320 320l-320 320l128 128l320 -320l320 320l128 -128l-320 -320l320 -320l-128 -128l-320 320l-320 -320z" />
+<glyph unicode="&#xf406;" d="M128 256l832 832l-832 832l128 128l832 -832l832 832l128 -128l-832 -832l832 -832l-128 -128l-832 832l-832 -832z" />
+<glyph unicode="&#xf407;" d="M384 1280v128l256 128q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5l256 -128v-128h-1152zM512 512v704h128v-704h128v704h128v-704h128v704h128v-704h128v704h128v-704q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM768 1472 q0 -26 19 -45t45 -19h256q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45z" />
+<glyph unicode="&#xf408;" d="M256 1151l476 -330l-183 -535l475 332l475 -332l-183 535l476 330l-587 -1l-181 535l-180 -535z" />
+<glyph unicode="&#xf409;" d="M384 1152l640 512l640 -512l-128 -128v-512h-1024v512zM896 576h256v448h-256v-448z" />
+<glyph unicode="&#xf410;" d="M256 512v704l768 -384l768 384v-704h-1536zM256 1408v128h1536v-128l-768 -384z" />
+<glyph unicode="&#xf411;" d="M384 384v448l896 896l448 -448l-896 -896h-448zM512 768l256 -256l128 128l-256 256zM685 941l96 -96l595 595l-96 96zM845 781l96 -96l595 595l-96 96z" />
+<glyph unicode="&#xf412;" d="M256 640v704l384 384v-704h640v448l640 -640l-640 -640v448h-1024z" />
+<glyph unicode="&#xf413;" d="M256 448q0 -80 56 -136t136 -56t136 56t56 136t-56 136t-136 56t-136 -56t-56 -136zM256 1024v256q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5h-256q0 209 -103 385.5t-279.5 279.5t-385.5 103zM256 1536v256q209 0 408 -55t367.5 -154t310.5 -241t241 -310.5 t154 -367.5t55 -408h-256q0 260 -101.5 497t-273 408.5t-408.5 273t-497 101.5z" />
+<glyph unicode="&#xf414;" d="M21 358q-57 102 31 244l760 1237q57 93 134.5 126.5t155 0t135.5 -126.5l759 -1237q88 -142 31 -244t-224 -102h-1557q-168 0 -225 102zM883 1536l51 -640h179l52 640h-282zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5z" />
+<glyph unicode="&#xf415;" d="M128 1024v256h310q75 172 233.5 278t352.5 106q130 0 246.5 -50t204.5 -139q37 -37 37 -90t-37 -91t-90 -38t-91 38q-116 114 -270 114q-159 0 -271.5 -112.5t-112.5 -271.5h-512zM536 665q0 53 38 90t91 37t90 -37q113 -115 269 -115q159 0 271.5 112.5t112.5 271.5h512 v-256h-310q-75 -172 -233.5 -278t-352.5 -106q-130 0 -246 50t-205 139l1 1q-38 38 -38 91zM832 1024q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136z" />
+<glyph unicode="&#xf416;" d="M512 832v320h128v-320q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5v640q0 80 -56 136t-136 56t-136 -56t-56 -136v-512q0 -26 19 -45t45 -19t45 19t19 45v452h128v-452q0 -80 -56 -136t-136 -56t-136 56t-56 136v512q0 133 93.5 226.5t226.5 93.5t226.5 -93.5 t93.5 -226.5v-640q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5z" />
+<glyph unicode="&#xf417;" d="M384 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5t-44.5 -222.5t-124.5 -185.5l-407 -406l-407 406q-80 80 -124.5 185.5t-44.5 222.5zM640 1216q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5t-93.5 226.5 t-226.5 93.5t-226.5 -93.5t-93.5 -226.5z" />
+<glyph unicode="&#xf418;" d="M608 1056l128 128l224 -192l448 512l128 -96l-512 -768h-128z" />
+<glyph unicode="&#xf419;" d="M0 256v256h2048v-256h-2048zM0 896v256h2048v-256h-2048zM0 1536v256h2048v-256h-2048z" />
+<glyph unicode="&#xf420;" d="M256 1024q0 155 60 294.5t167 246.5l-227 227h640v-640l-232 232q-72 -71 -112 -163.5t-40 -196.5q0 -176 108.5 -313.5t275.5 -180.5v-262q-180 30 -326 137t-230 269.5t-84 349.5zM1152 256v640l19 -19l213 -213q71 71 111.5 164t40.5 196q0 176 -108.5 313.5 t-275.5 180.5v263q180 -31 326 -137.5t230 -269.5t84 -350q0 -155 -60 -294.5t-167 -246.5l227 -227h-640z" />
+<glyph unicode="&#xf421;" d="M384 896v256h1152v-256h-1152z" />
+<glyph unicode="&#xf422;" d="M384 512v1024h1152v-1024h-1152zM512 640h896v640h-896v-640z" />
+<glyph unicode="&#xf423;" d="M83 832l373 671l112 -62l-267 -481h403v-384h-128v256h-493zM768 1024q0 87 43 160.5t116.5 116.5t160.5 43t160.5 -43t116.5 -116.5t43 -160.5t-43 -160.5t-116.5 -116.5t-160.5 -43t-160.5 43t-116.5 116.5t-43 160.5zM896 1024q0 -79 56.5 -135.5t135.5 -56.5 t135.5 56.5t56.5 135.5t-56.5 135.5t-135.5 56.5t-135.5 -56.5t-56.5 -135.5zM1427 832l373 671l112 -62l-267 -481h403v-384h-128v256h-493z" />
+<glyph unicode="&#xf424;" d="M256 640v768l384 384h768l384 -384v-768l-384 -384h-768zM883 1536l51 -640h179l52 640h-282zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf425;" d="M384 384v1280h256q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5h256v-1280h-1152zM512 512h896v1024h-128v-128h-640v128h-128v-1024zM640 704q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM640 960q0 26 19 45t45 19t45 -19t19 -45 t-19 -45t-45 -19t-45 19t-19 45zM640 1216q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM768 1600q0 -26 19 -45t45 -19h256q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45zM896 640v128h384v-128h-384zM896 896v128h384v-128h-384z M896 1152v128h384v-128h-384z" />
+<glyph unicode="&#xf426;" d="M128 768q0 106 75 181t181 75h7q-7 29 -7 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-1280q-106 0 -181 75t-75 181z" />
+<glyph unicode="&#xf427;" d="M384 384v288l455 455l-1 1q-74 74 -74 180t74 181l233 233q75 74 181 74t180 -74l286 -286q74 -75 74 -180.5t-74 -180.5l-233 -233q-74 -73 -178.5 -74t-179.5 71l-455 -455h-288zM1088 1360l256 -256l160 160l-256 256z" />
+<glyph unicode="&#xf428;" d="M768 1024q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
+<glyph unicode="&#xf429;" d="M384 896v128h896l-343 343l87 86l493 -493l-493 -493l-87 86l343 343h-896z" />
 <glyph unicode="&#xf430;" d="M531 960l493 -493l87 86l-343 343h896v128h-896l343 343l-87 86z" />
 <glyph unicode="&#xf430;" d="M531 960l493 -493l87 86l-343 343h896v128h-896l343 343l-87 86z" />
-<glyph unicode="&#xf431;" d="M1536 1152l-576 -576l-576 576l128 128l448 -448l448 448z" />
-<glyph unicode="&#xf432;" d="M1536 768l-128 -128l-448 448l-448 -448l-128 128l576 576z" />
-<glyph unicode="&#xf433;" d="M896 0h-896v896z" />
-<glyph unicode="&#xf434;" d="M2048 896v-896h-896z" />
-<glyph unicode="&#xf435;" d="M1664 1408v-128h-1280v128h1280zM1024 1152l640 -640h-1280z" />
-<glyph unicode="&#xf436;" d="M512 1536h128v-128h-128v128zM768 1536h128v-128h-128v128zM1024 1536h128v-128h-128v128zM1408 1536v-128h-128v128h128zM512 1280h128v-128h-128v128zM768 1280h128v-128h-128v128zM1024 1280h128v-128h-128v128zM1280 1280h128v-128h-128v128zM512 1024h128v-128h-128 v128zM768 1024h128v-128h-128v128zM1024 1024h128v-128h-128v128zM1280 1024h128v-128h-128v128zM512 768h128v-128h-128v128zM768 768h128v-128h-128v128zM1024 768h128v-128h-128v128zM1280 768h128v-128h-128v128z" />
-<glyph unicode="&#xf437;" d="M768 1792h512q106 0 181 -75t75 -181v-1024q0 -106 -75 -181t-181 -75h-512q-106 0 -181 75t-75 181v1024q0 106 75 181t181 75zM1408 1536h-768v-768h768v768zM1024 384q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 z" />
-<glyph unicode="&#xf438;" d="M768 1792h512q106 0 181 -75t75 -181v-1024q0 -106 -75 -181t-181 -75h-512q-106 0 -181 75t-75 181v384h128v-128h768v768h-768v-128h-128v128q0 106 75 181t181 75zM768 1024h-512v256h512v128l384 -256l-384 -256v128zM1024 384q53 0 90.5 37.5t37.5 90.5t-37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5z" />
-<glyph unicode="&#xf439;" d="M896 1280h-256v384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5v-384zM1408 1280h-256v384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5v-384zM384 1152h1280q0 -231 -145.5 -406.5t-366.5 -220.5v-269h-256v269q-221 45 -366.5 220.5t-145.5 406.5z" />
-<glyph unicode="&#xf440;" d="M1641 1024h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-384v256h-512v-256h-384q-106 0 -181 75t-75 181t75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128z M1152 384h256l-384 -384l-384 384h256v256h256v-256z" />
-<glyph unicode="&#xf441;" d="M1641 1024h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-512v256h256l-384 384l-384 -384h256v-256h-512q-106 0 -181 75t-75 181t75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5 t112.5 -271.5q0 -62 -23 -128z" />
-<glyph unicode="&#xf442;" d="M1664 1664v-640h-128v422l-550 -550l-90 91l550 549h-422v128h640zM1280 896l128 128v-512h-896v896h512l-128 -128h-256v-640h640v256z" />
-<glyph unicode="&#xf443;" d="M1536 1280v-896h-1024v1280h640zM1408 1152h-384v384h-384v-1024h768v640z" />
-<glyph unicode="&#xf444;" d="M1664 640h-64q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5h64v-128h-1024q-106 0 -181 75t-75 181v1024q0 106 75 181t181 75h1024v-1152zM640 384h818q-50 55 -50 128t50 128h-818q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5z" />
-<glyph unicode="&#xf445;" d="M1888 748l-58 -140l-305 22q-44 -56 -107 -107l22 -305l-139 -58l-201 232q-67 -8 -76 -8q-8 0 -75 8l-201 -232l-139 58l21 305q-56 44 -107 107l-305 -22l-58 139l232 201q-8 67 -8 76q0 8 8 75l-232 201l58 139l305 -21q47 60 107 107l-21 305l139 58l201 -232 q67 8 75 8t75 -8l201 232l140 -58l-22 -305q56 -44 107 -107l305 22l58 -139l-232 -201q8 -67 8 -76q0 -8 -8 -75zM1024 768q106 0 181 75t75 181t-75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75z" />
-<glyph unicode="&#xf446;" d="M1024 1792q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1536 1024q0 212 -150 362t-362 150q-136 0 -259 -72l699 -699q72 123 72 259zM512 1024 q0 -212 150 -362t362 -150q135 0 259 72l-699 699q-72 -126 -72 -259z" />
-<glyph unicode="&#xf447;" d="M640 896v-128h896v-128h-1024v1024h-256v128h384v-256h1152l-256 -640h-896zM640 512q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5zM1408 512q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5z" />
-<glyph unicode="&#xf448;" d="M896 1664v-1280h-384v1280h384zM1536 1664v-1280h-384v1280h384z" />
-<glyph unicode="&#xf449;" d="M1536 1536v-1024h-1024v1024h1024z" />
-<glyph unicode="&#xf450;" d="M640 1664v-1280h-384v1280h384zM1792 1664v-1280l-1024 640z" />
-<glyph unicode="&#xf451;" d="M1280 1024l-1024 -640v1280zM1792 1664v-1280h-384v1280h384z" />
-<glyph unicode="&#xf452;" d="M1536 1024l-1024 -640v1280z" />
-<glyph unicode="&#xf453;" d="M512 2048h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181v1536q0 106 75 181t181 75zM1536 1792h-1024v-1280h1024v1280zM1024 128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5 t90.5 -37.5z" />
-<glyph unicode="&#xf454;" d="M512 2048h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181v640h256v-384h1024v1280h-1024v-384h-256v384q0 106 75 181t181 75zM640 1024h-512v256h512v128l384 -256l-384 -256v128zM1024 128q53 0 90.5 37.5t37.5 90.5 t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5z" />
-<glyph unicode="&#xf455;" d="M960 1792q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5t-55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5zM960 512q117 0 223.5 45.5t184 123t123 184t45.5 223.5t-45.5 223.5 t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5zM960 1440q40 0 68 -28t28 -68t-28 -68t-68 -28t-68 28t-28 68t28 68t68 28zM896 1184h128v-448h-128v448z" />
-<glyph unicode="&#xf456;" d="M960 1792q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5t-55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5zM960 512q117 0 223.5 45.5t184 123t123 184t45.5 223.5t-45.5 223.5 t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5zM888 1024l-22 414h189l-23 -414h-144zM960 928q40 0 68 -28t28 -68t-28 -68t-68 -28t-68 28t-28 68t28 68t68 28z" />
-<glyph unicode="&#xf457;" d="M960 1792q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5t-55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5zM960 512q117 0 223.5 45.5t184 123t123 184t45.5 223.5t-45.5 223.5 t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5zM1142 1404q55 -42 55 -117q0 -52 -24 -91q-25 -38 -79 -74q-43 -27 -58 -43q-11 -12 -11 -33v-22h-135v38q0 42 18 72q16 29 62 58q32 20 51 40 q15 18 15 41q0 19 -16 29q-17 11 -44 11q-65 0 -154 -47l-61 119q110 62 228 62q98 0 153 -43zM960 928q40 0 68 -28t28 -68t-28 -68t-68 -28t-68 28t-28 68t28 68t68 28z" />
-<glyph unicode="&#xf458;" d="M896 384v480l-768 -480v1280l768 -480v480l1024 -640z" />
-<glyph unicode="&#xf459;" d="M1152 384v480l768 -480v1280l-768 -480v480l-1024 -640z" />
-<glyph unicode="&#xf460;" d="M896 1280l-256 -768h-128l-256 768h128l86 256h340zM1792 1280l-256 -768h-768l256 768h128l86 256h340l86 -256h128zM747 1280l-43 128h-128l-43 -128h214zM1515 1280l-43 128h-128l-43 -128h214z" />
-<glyph unicode="&#xf461;" d="M1024 384l648 613q112 106 120 264t-93 276t-251.5 126.5t-262.5 -97.5l-161 -153l-161 153q-112 106 -262.5 97.5t-251.5 -126.5t-93 -276t120 -264z" />
-<glyph unicode="&#xf462;" d="M1276 1505l-248 62l-256 -1024l248 -62zM619 711l-209 313l209 313l-213 142l-304 -455l304 -455zM1946 1024l-303 455l-213 -142l208 -313l-208 -313l213 -142z" />
-<glyph unicode="&#xf463;" d="M768 1024l-768 384v128h1536v-128zM1024 512h-1024v704l768 -384l256 128v-448zM1280 1152h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5zM1920 768h-256v256h-128v-256h-256 v-128h256v-256h128v256h256v128z" />
-<glyph unicode="&#xf464;" d="M768 1024l-768 384v128h1536v-128zM1024 512h-1024v704l768 -384l256 128v-448zM1280 1152h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5zM1920 768h-640v-128h640v128z" />
-<glyph unicode="&#xf465;" d="M768 1024l-768 384v128h1536v-128zM768 832l256 128v-448h-1024v704zM1280 1152h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5zM1984 837l-90 90l-362 -362l-181 181l-91 -90 l272 -272z" />
-<glyph unicode="&#xf466;" d="M320 1024l320 -320v-320l-640 640l640 640v-320zM1152 1280h256q212 0 362 -150t150 -362v-300l-150 150q-74 74 -168 112t-194 38h-256v-384l-640 640l640 640v-384z" />
-<glyph unicode="&#xf467;" d="M1024 1280h256q212 0 362 -150t150 -362v-300l-150 150q-74 74 -168 112t-194 38h-256v-384l-640 640l640 640v-384z" />
-<glyph unicode="&#xf468;" d="M256 1792h256v-1536h-256v1536zM1792 1664v-768h-256q-70 0 -125.5 13t-93 32l-75 38t-93 32t-125.5 13q-71 0 -125 -13t-85 -32t-56.5 -38t-54 -32t-63.5 -13v768q35 0 63.5 13t54 32t56.5 38t85 32t125 13q70 0 125.5 -13t93 -32l75 -38t93 -32t125.5 -13h256z" />
-<glyph unicode="&#xf469;" d="M1408 1664h-768v-256h768v256zM1792 1280v-768h-256v384h-1024v-384h-256v768h1536zM1633 256h-768l-112 113q-113 113 -113 271v128h768v-128q0 -158 113 -271z" />
-<glyph unicode="&#xf470;" d="M1536 1280v-128q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-1024q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5v128q0 212 150 362t362 150t362 -150t150 -362zM1280 1152v128q0 106 -75 181t-181 75t-181 -75t-75 -181v-128h512z " />
-<glyph unicode="&#xf471;" d="M1223 1121q83 -39 134 -117t51 -172q0 -133 -93.5 -226.5t-226.5 -93.5h-576v1024h512q106 0 181 -75t75 -181q0 -87 -57 -159zM768 1152h128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5h-128v-256zM768 640h192q80 0 136 56t56 136t-56 136t-136 56h-192v-384z " />
-<glyph unicode="&#xf472;" d="M1240 1408l-240 -768h128l-40 -128h-448l40 128h128l240 768h-128l40 128h448l-40 -128h-128z" />
-<glyph unicode="&#xf473;" d="M1664 1664v-1280h-1280v1280h1280zM768 1408q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5zM1536 1088l-128 192l-448 -672l-192 288l-256 -384h1024v576z" />
+<glyph unicode="&#xf431;" d="M384 1152l128 128l448 -448l448 448l128 -128l-576 -576z" />
+<glyph unicode="&#xf432;" d="M384 768l576 576l576 -576l-128 -128l-448 448l-448 -448z" />
+<glyph unicode="&#xf433;" d="M0 0v896l896 -896h-896z" />
+<glyph unicode="&#xf434;" d="M1152 0l896 896v-896h-896z" />
+<glyph unicode="&#xf435;" d="M384 512l640 640l640 -640h-1280zM384 1280v128h1280v-128h-1280z" />
+<glyph unicode="&#xf436;" d="M512 640v128h128v-128h-128zM512 896v128h128v-128h-128zM512 1152v128h128v-128h-128zM512 1408v128h128v-128h-128zM768 640v128h128v-128h-128zM768 896v128h128v-128h-128zM768 1152v128h128v-128h-128zM768 1408v128h128v-128h-128zM1024 640v128h128v-128h-128z M1024 896v128h128v-128h-128zM1024 1152v128h128v-128h-128zM1024 1408v128h128v-128h-128zM1280 640v128h128v-128h-128zM1280 896v128h128v-128h-128zM1280 1152v128h128v-128h-128zM1280 1408v128h128v-128h-128z" />
+<glyph unicode="&#xf437;" d="M512 512v1024q0 106 75 181t181 75h512q106 0 181 -75t75 -181v-1024q0 -106 -75 -181t-181 -75h-512q-106 0 -181 75t-75 181zM640 768h768v768h-768v-768zM896 512q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z " />
+<glyph unicode="&#xf438;" d="M256 1024v256h512v128l384 -256l-384 -256v128h-512zM512 512v384h128v-128h768v768h-768v-128h-128v128q0 106 75 181t181 75h512q106 0 181 -75t75 -181v-1024q0 -106 -75 -181t-181 -75h-512q-106 0 -181 75t-75 181zM896 512q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf439;" d="M384 1152h1280q0 -231 -145.5 -406.5t-366.5 -220.5v-269h-256v269q-221 45 -366.5 220.5t-145.5 406.5zM640 1280v384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5v-384h-256zM1152 1280v384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5v-384h-256z" />
+<glyph unicode="&#xf440;" d="M128 768q0 106 75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-384v256h-512v-256h-384q-106 0 -181 75t-75 181 zM640 384h256v256h256v-256h256l-384 -384z" />
+<glyph unicode="&#xf441;" d="M128 768q0 106 75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-512v256h256l-384 384l-384 -384h256v-256h-512 q-106 0 -181 75t-75 181z" />
+<glyph unicode="&#xf442;" d="M512 512v896h512l-128 -128h-256v-640h640v256l128 128v-512h-896zM896 987l550 549h-422v128h640v-640h-128v422l-550 -550z" />
+<glyph unicode="&#xf443;" d="M512 384v1280h640l384 -384v-896h-1024zM640 512h768v640h-384v384h-384v-1024z" />
+<glyph unicode="&#xf444;" d="M384 512v1024q0 106 75 181t181 75h1024v-1152h-64q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5h64v-128h-1024q-106 0 -181 75t-75 181zM512 512q0 -53 37.5 -90.5t90.5 -37.5h818q-50 55 -50 128t50 128h-818q-53 0 -90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf445;" d="M160 747l232 201q-8 67 -8 76q0 8 8 75l-232 201l58 139l305 -21q47 60 107 107l-21 305l139 58l201 -232q67 8 75 8t75 -8l201 232l140 -58l-22 -305q56 -44 107 -107l305 22l58 -139l-232 -201q8 -67 8 -76q0 -8 -8 -75l232 -201l-58 -140l-305 22q-44 -56 -107 -107 l22 -305l-139 -58l-201 232q-67 -8 -76 -8q-8 0 -75 8l-201 -232l-139 58l21 305q-56 44 -107 107l-305 -22zM768 1024q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
+<glyph unicode="&#xf446;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 1024q0 -212 150 -362t362 -150q135 0 259 72l-699 699q-72 -126 -72 -259zM765 1464l699 -699 q72 123 72 259q0 212 -150 362t-362 150q-136 0 -259 -72z" />
+<glyph unicode="&#xf447;" d="M256 1664v128h384v-256h1152l-256 -640h-896v-128h896v-128h-1024v1024h-256zM512 384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1280 384q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
+<glyph unicode="&#xf448;" d="M512 384v1280h384v-1280h-384zM1152 384v1280h384v-1280h-384z" />
+<glyph unicode="&#xf449;" d="M512 512v1024h1024v-1024h-1024z" />
+<glyph unicode="&#xf450;" d="M256 384v1280h384v-1280h-384zM768 1024l1024 640v-1280z" />
+<glyph unicode="&#xf451;" d="M256 384v1280l1024 -640zM1408 384v1280h384v-1280h-384z" />
+<glyph unicode="&#xf452;" d="M512 384v1280l1024 -640z" />
+<glyph unicode="&#xf453;" d="M256 256v1536q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181zM512 512h1024v1280h-1024v-1280zM896 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5z" />
+<glyph unicode="&#xf454;" d="M128 1024v256h512v128l384 -256l-384 -256v128h-512zM256 256v640h256v-384h1024v1280h-1024v-384h-256v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181zM896 256q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf455;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM896 1408q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5zM928 512h192v640h-192v-640z" />
+<glyph unicode="&#xf456;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM883 1536l51 -640h179l52 640h-282zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5 t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf457;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM720 1442l92 -180q134 71 234 71q38 0 65 -16q26 -17 26 -44q0 -35 -24 -63q-24 -27 -77 -61 q-68 -42 -95 -87q-26 -44 -26 -109v-57h204v34q0 29 17 49q18 21 87 66q83 53 120 111t37 139q0 111 -84 176q-85 65 -232 65q-180 0 -344 -94zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf458;" d="M128 384v1280l768 -480v480l1024 -640l-1024 -640v480z" />
+<glyph unicode="&#xf459;" d="M128 1024l1024 -640v480l768 -480v1280l-768 -480v480z" />
+<glyph unicode="&#xf460;" d="M256 1280h128l86 256h340l86 -256l-256 -768h-128zM533 1280h214l-43 128h-128zM768 512l256 768h128l86 256h340l86 -256h128l-256 -768h-768zM1301 1280h214l-43 128h-128z" />
+<glyph unicode="&#xf461;" d="M256 1261q8 -158 120 -264l648 -613l648 613q112 106 120 264t-93 276t-251.5 126.5t-262.5 -97.5l-161 -153l-161 153q-112 106 -262.5 97.5t-251.5 -126.5t-93 -276z" />
+<glyph unicode="&#xf462;" d="M102 1024l304 -455l213 142l-209 313l209 313l-213 142zM772 543l248 -62l256 1024l-248 62zM1430 711l213 -142l303 455l-303 455l-213 -142l208 -313z" />
+<glyph unicode="&#xf463;" d="M0 512v704l768 -384l256 128v-448h-1024zM0 1408v128h1536v-128l-768 -384zM1152 384v640q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM1280 640h256v-256h128v256h256v128h-256 v256h-128v-256h-256v-128z" />
+<glyph unicode="&#xf464;" d="M0 512v704l768 -384l256 128v-448h-1024zM0 1408v128h1536v-128l-768 -384zM1152 384v640q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM1280 640h640v128h-640v-128z" />
+<glyph unicode="&#xf465;" d="M0 512v704l768 -384l256 128v-448h-1024zM0 1408v128h1536v-128l-768 -384zM1152 384v640q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM1260 656l272 -272l452 453l-90 90 l-362 -362l-181 181z" />
+<glyph unicode="&#xf466;" d="M0 1024l640 640v-320l-320 -320l320 -320v-320zM512 1024l640 640v-384h256q212 0 362 -150t150 -362v-300l-150 150q-74 74 -168 112t-194 38h-256v-384z" />
+<glyph unicode="&#xf467;" d="M384 1024l640 640v-384h256q212 0 362 -150t150 -362v-300l-150 150q-74 74 -168 112t-194 38h-256v-384z" />
+<glyph unicode="&#xf468;" d="M256 256v1536h256v-1536h-256zM640 896v768q35 0 63.5 13t54 32t56.5 38t85 32t125 13q70 0 125.5 -13t93 -32l75 -38t93 -32t125.5 -13h256v-768h-256q-70 0 -125.5 13t-93 32l-75 38t-93 32t-125.5 13q-71 0 -125 -13t-85 -32t-56.5 -38t-54 -32t-63.5 -13z" />
+<glyph unicode="&#xf469;" d="M256 512v768h1536v-768h-256v384h-1024v-384h-256zM640 640v128h768v-128q0 -158 113 -271l112 -113h-768l-112 113q-113 113 -113 271zM640 1408h768v256h-768v-256z" />
+<glyph unicode="&#xf470;" d="M384 384v640q0 53 37.5 90.5t90.5 37.5v128q0 212 150 362t362 150t362 -150t150 -362v-128q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-1024q-53 0 -90.5 37.5t-37.5 90.5zM768 1152h512v128q0 106 -75 181t-181 75t-181 -75t-75 -181v-128z" />
+<glyph unicode="&#xf471;" d="M512 512v1024h512q106 0 181 -75t75 -181q0 -87 -57 -159q83 -39 134 -117t51 -172q0 -133 -93.5 -226.5t-226.5 -93.5h-576zM768 640h192q80 0 136 56t56 136t-56 136t-136 56h-192v-384zM768 1152h128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5h-128v-256z" />
+<glyph unicode="&#xf472;" d="M640 512l40 128h128l240 768h-128l40 128h448l-40 -128h-128l-240 -768h128l-40 -128h-448z" />
+<glyph unicode="&#xf473;" d="M384 384v1280h1280v-1280h-1280zM512 512h1024v576l-128 192l-448 -672l-192 288zM640 1280q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf474;" d="M128 256v384l154 -154l230 154l-154 -230l154 -154h-384zM128 1408v384h384l-154 -154l154 -230l-230 154zM640 768v512h768v-512h-768zM1536 256l154 154l-154 230l230 -154l154 154v-384h-384zM1536 1408l154 230l-154 154h384v-384l-154 154z" />
 <glyph unicode="&#xf500;" d="M128 0l960 960l960 -960h-1920z" />
 <glyph unicode="&#xf501;" d="M0 128l960 960l-960 960v-1920z" />
 <glyph unicode="&#xf502;" d="M128 2048l960 -960l960 960h-1920z" />
 <glyph unicode="&#xf500;" d="M128 0l960 960l960 -960h-1920z" />
 <glyph unicode="&#xf501;" d="M0 128l960 960l-960 960v-1920z" />
 <glyph unicode="&#xf502;" d="M128 2048l960 -960l960 960h-1920z" />
-<glyph unicode="&#xf503;" d="M2048 128l-960 960l960 960v-1920z" />
+<glyph unicode="&#xf503;" d="M1088 1088l960 960v-1920z" />
 </font>
 </defs></svg> 
\ No newline at end of file
 </font>
 </defs></svg> 
\ No newline at end of file
index 7be71af30997bea0feb6fe6e886428dec6c085ec..b6f125e7eec0da4df8acaf85c86fc993115a4723 100644 (file)
Binary files a/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.ttf and b/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.ttf differ
index 4d72659cea710410bd73d08a14a021f028ff0e8d..da8be383d82820c6f279d9a2245b3e4303790907 100644 (file)
Binary files a/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.woff and b/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.woff differ
index 5a36281ad056f7e86f914079646d6499e184bc7f..b10b86fcf873c814a2d0396e21d3bd5520315a98 100644 (file)
@@ -16,7 +16,7 @@
 
 @font-face {
     font-family: 'Genericons';
 
 @font-face {
     font-family: 'Genericons';
-    src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAACs4AA4AAAAARowAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABRAAAABwAAAAcaW/Oz0dERUYAAAFgAAAAHQAAACAAqwAET1MvMgAAAYAAAABCAAAAYFFfaIVjbWFwAAABxAAAAJcAAAGyqWOQYWdhc3AAAAJcAAAACAAAAAgAAAAQZ2x5ZgAAAmQAACOsAAA47IE+VnJoZWFkAAAmEAAAACsAAAA2BFJrzGhoZWEAACY8AAAAHAAAACQQAwfdaG10eAAAJlgAAACGAAABBlHsRCBsb2NhAAAm4AAAAP4AAAD+AbXzmG1heHAAACfgAAAAHgAAACAA0ADAbmFtZQAAKAAAAAFhAAAC2ELRXhRwb3N0AAApZAAAAcwAAAT2hTWbEXdlYmYAACswAAAABgAAAAZeqFJzAAAAAQAAAADMPaLPAAAAAM6ZHNoAAAAAzpkPJXjaY2BkYGDgA2IJBhBgYmAEwlogZgHzGAAJqQCwAAAAeNpjYGb/zDiBgZWBhdWY5QwDA8NMCM10hsEIzAdKYQeh3uF+DA4PGL4ys6X9S2Ng4GBg0AAKMyIpUWBgBACHZguVAAB42mNgYGBmgGAZBkYGEFgD5DGC+SwME4C0AhCyMDA8YPjI+Ynzk+Qnlc8cXzi/SH7R/GL5xfNL5JfML8Vfmf//B6tg+MTwSeCTwmeGLwxfBL4ofDH44vAl4EvCl4KvDP//KzDzs/Dx8XHwMfGq8xjwaPGo8MjxSPAI8fDwsHFXQW3HCxjZGODKGJmABBO6AoZhDwAl3ijmAAABAAH//wAPeNqNWwlglNW1vudfE8g2mS0LSWYymZlAkgmZycwkLGEAMZAAgoGwBBFUoAQEwqIgLn9VKoJA6xKtoKBVodiqbUVr0z5T6wJ15RF91u0ZfBVFfc+2tkWYubxz7j8TEsAlk3+/89/tnO9859wzTGX4B19Jv2cy01g6y2DZjNVY3BbZ6rY6LeAeDBYrfHVyP//Fwf18O8zYf3C/9PvEBbCVneY9p4En3mSnoZJL7DQD1u+vhjFNYhK+VDXw3TobjG+2MifWZneHwR12h9x2d+qo4qaxOJOMhCEZBuDbuHijQXe4IbMEvsfAM8M4zXBnYBUSYAEdP/huK167lNwcSXGVSTm5LBip9ZVqNrkaHoSFr73Gd/P5fPdrr8HBns7Onk6dnbmzkErEX+ukB4wpzABDNzRDtNjOirC9OBpeHA2vGnZDkOUwTynucl2OHM3ly9GNr7GXBv7HDWqwxH4HGj/5u2f416DXwqCuLv6vLtWIM9ns1oLYnlPdoMNq0PnXfDv/WmZUogsGUd0SS+s/XszqtripfqAjboaM1ei4xRngYEhir+IGeE82OKMzjoMD9EijfkiMpYNFM04ZCksYNN8gYSHVwHHLxAubpltUSwDCtRGXQzV2dJxmHTt6oaFXNa59vjzxiSHdU/78tbt7e3G8cTb0VPsYYIvSwW2lWcbpwjfSHg8JRtMlCzGQqB2irnwWojly2C1YYzgSttAE4YXTjnVbaq3hYqBHLh9eRKJ2euQIUjEZx6arvTW2as+qWGt7d2s7jZd5rbOuTdxYuNt7d/1MMKatWjWNGzPr7/buXgjGJn4rnXBjU1fXJkgW4qIQGDNF23Dr1qltucxD/QmKxnlwxD2lohlgMW9VAM5A1B2MAE7Sgj17FvAYjxl4on5IVwZeduOY7ntbZ/gMH/AYdO9ZAHiWwPtn7hlvY50ypOZGRbl1ifnByfVGcQRsWaD7G6DWp0eLZTuOlD9SK4k55YbS3jb78kDLiLbGiy6KtxUMLcoZGW5rVvFlp3CTWHvbnOM3znpk28i2xq43ula0FY6eMNk/9bZIW3OP0M3aNJQutgR7GlRYrj2HqZoPZz1c629QaCf5/AHIknSfX9MDcjZoTs1uK5admp4FAfAHFP8wyAKHs1hxFuuRqM2B7fOXMUttLitT2GHYCLkP8g385bJSmDBlg9EaXaoNSsu2KpmhUZdHr9qy5aroZQ3VgwaNGL402mpsmBzOGDJm9iyXlF5UGilSMvLTLQVyelFBaSbImbklZZHRFwegtIy/zDc8CFbYmMYe5P/LNx3mv0p8tkQvyVeen37jyPSSie2PrX6gI7t84qU1ICm5NV63JLm9NRZNkm6/bs3u1Y+1T3SlVc/NzIK6qJLpKcyT9MEFudi3kjq3nFaQX5LvGCQPCq5X8lzaEskBF70B12I/SD502okxy0Yc8LIga2CNbJpAGoZQwxBrGIGNt1TzOKwNStRXpmpMd5RFJRXHsVhyRhSnhJOa64ywqM+fARDJjZapxZALwagkU1k5CLtw5KwPPcS/4Jv4Fbh98dBDYJUmuQzX4j9re6ZsXTr0ev504thz/G/Vz8FXW7bJ2xqf+vcoR5Ff2w+Tryn4umDt8uvgF8dyYvxj3qHcuuuVPP4578ka0caLDnS5H/+Ab25/O42d9X6sU9RblvMIf0Qa4WoYV3b97bGZvOstx8QAFDTVX9peXBSakeHWCqGI/yO2l7++/lWITBlutAbjJ5bDjO5AoPAe/md+aBpUws1N/PBL3YQtiJ+ViJ/vkbaDppOQZMmKx+V1hFxRlCJHKIiH0ShGBDlRh+IkGQwFnZGopkd0Y9IKaFj31FH+l4f46zwxvBzYwat/X+Yvrg7esG/arMmzg1tgy9FBb9+zZ7mxdNjVV2rDV07TXWnXnDj+8j2zHlbvk3as1DML/nyzWiEHH5y/aMb+lwf7q+75r7UFY25uzDTbxxBAdYP5+2u8xW11jwZshzPq85RmSUXgsYQs7iQKIGq2d3a2848hK4N/XDHuEW3q0vm3z67kPFGJD3Sjs/0UlpBeAqU7Y1QU/j4oOn/dBZ/zeKK+s52+KzCXGeoxrDcfL2Ss0EI11DZIoaCjBGRPqVYkqcey+Au8+4MPahc/emW0vaBA/+PkkHKCH44/LU+CapCmblkR02SZfxybkPU6okeqL9lsKpvN5rPFQjYdKJsayqYPZTMC1gYpXEvqm07j7PSVeUoVPRSMjIGIQ9M1Hawyqn3E6TDvFQPd9OK06XIkN1yrovCChuLq8w8Gh9wEy2Hyl9u3f8mf5HfyJ+lMvnN6HsJ4nk2yqjlahpomy1NHDFrBP935Ot+1ota73FNqt2bZKmvA98R1M23ZNtumi3zLPJ4cK2TnVNRIM9TR/3r6na+fPPkqv+FC2bflRkU68fdVutG/Dpgs6j3lg4yL6ue5A3PCpUrxoMLBeVkOi21QfSssWvn8PlWSoaRUVqX43ZIFZutSqQsG0U1rvkNSpbTyYbfcm6hvhzXvvv7653zjFUrRrnggoKnS3sRYNxO2PzmeYTaWTWeLyPZ7LEhNSBaEnCBYIkim4UhGxWko6i5Fa4YDi6JUBASTvoizGJwOTUZQKNUtJO8EowA0pChRiO5OxFBVMwRfQFKAkqWql+yQPdll1iKLJS0w+cm5LXtuSTxww1+nmfJz8tnrDtntOzZu+IPDblyfO8n69N3XvVpc5CoogX06JJ6cuTmv/h1jRpO1tWxUUZHGiGiIt8fxy0McOx5bJhVkDLEU2vLsg2ovHLnt6Y6nh2+/rGUsSbWR+Lnyxv0P/EVR/vqzPd38LmiBv94gj653j/Lym4q8OWmLps1cCpCfOTK/prSGCfuFBkmbqjmRLXqEHqHohAOAMmy3OQANO6mQHiYhr4024FO7IDBSLoxvkaaNG3/xdOW6vbcGp9eV5vATkJaWMyG0KTGdCJOqXjRi1JSpI0dcFN8ILz3+VF6lL39V/Bh0VVnL637DZ8v58WP95imbDUGcifbXZFNlrd+vRSnNJu3tjH9n61KKbk5KYtP3aCuwR9GQTEMbMlbYXUeu3SYpSC/8EqqZ3xe1mvDnEJZfIyVEpWPUXLsNBUkn4+v3oQo3SGVKzRNQ/cra/fzgS5c/Xjopp/SSu/SiB8u3LW6Z7R2d5dywaN0zl/PjJ7Z+cd/sllxdz0nXPY4bbmq86zBUpLENh/ip2/7Fr+q9JMY/qN94R2TvRumJ6Vdv7Vp2cej25+ov//FvoeaptyDr8r3vrr/jCntB3ujyvJz0EKj7r3zvtfsvFdiZsoetSQ5BNtBT6o9ErcVgtjwgYdORuDicjggOdDTi8/vCJspRD7HjUcIjnzkzJYCj4DyLQphm/o4dTUUTh2yf9mBiy/xH/r19299/fk19+5LcIkXKkVU164JGo7vjUO+0zvkXX24dXFPcOP7iNTlp6R3WPA3t3GP9GQPy/E38fx8ctnYJFISbn4YxB1f3/OyyKT985DdzthwZlpZlTY+lWx2Wqdcs/PUt09997M5/37VuWuD+q4aNm3VPR8V0q5V7WxZuWQ9xiCSpgcT2SAv0BeoeZAjI0VmOz6XlOFxlyaP84Vd831dfwWxlbfJEngGzv0qei6NpJ5l+A1IMRB7I9ZbJKAQ42YgZsk8m2dB0J94qhNxQkErmoE3fevOE2OactFUddZNG2WprDs954oZbZmywzZv+4+X3JWAFLFTvg7a0DN5SdM+8J56A7ItgIlRb0+7puGr5DN6b+Afvhf+CP5G7kvRxspH5nqM7yEZxWhky/t1x2islCSzbu5uLWxLuidMm8IvwNjO0ctTDUrzwaKLR9pDFJgAQcS8StWB//CQCqHhuZfxpS9XwSU3LXiwouPnSS65b0TZ7/Y9unTyq0mKB/bxVN7bOuWR0zJNIbN0wbuxqV4nDVgcFs8vyqwL3wiuQP0DvSxB3Rp7bdqQUvgpAWwo2x0gIRhQxI5Ec1Y3ih1QbGQcCuQPROhIeoPzq8eawEW4Wu8Ru/lwveUBIu7/M4T18Nu/J4V82h1UWbh6IAejvJL/U3NxrfqtkXEMP74HKnoZxCUYPWRryfdCZxpmN5SFiuRA1fWwYCxDzp+brQMME1IMoRILg9FqsahSsft3pjfrdulP16ungVy2KV/qPoqLEOIst15oYV1Qk/YelPPHwMSi+GYqPJU7tO/7pp4mbH35YOfHww4lx/OgxtHq3HuNHtX/wqrwSXuVy8MrBg6HH4YIjJXlwZHDis3ufhRB/9dl7YXbi2V27dgVW4N+eZ3fyfTB757P8lQFjHmaz2O/PwzCCZWQMA5Kfph1FV/H7yvy+3GikLIq2T0Egy1XAp+iaJARDiWJvifyNkSNloSASQCxvdZD0EDtko4UVLaNrUT5CIBIAcY2wIlCFZCr5GNlkNfgIbOhKJxTFh4gyzmJJYCddABY9H3eRpM9h8+KRszoPrVn7hD8yafVK/tTeffx4Y1PmrNlQ9WvJ/Qbfe/BdWA+R+/ibV155hc3yyLXrwbVx8sS7EnfeLmfBZZC762dQfFlZ6Q/4ezu0Wa1bV69vafsT2Actm7GYf3Xl2tGj09PuvXLFf48c7Wi+8N2LZtrsoeC8edN8tWmWUO2MlpH1GVpFSXl1YGKmlJVud0yY3GgN+HIbKyra3E2a1Lpp3AWLivK8R1eurkNqevyHN/32vMzo6w/+/crmG9cd3tVuG/7chrv5Y+s3rioq/GD3Lrjypzv/s1jL+ZDfdeR9vvldrUBft3IZ/8tdd56e1Jhdb7+T3/XWbuzHauO2jfX+6+9KDNq+Zs0wz5BSsP9JWvZswxTbyIaly669+vlid8slbUebpthGNVx62YwZec4aZ+PQ2Y0TVW1UtMU7JseuQl2FXNxUVOxWKkonX+yPpqXnl1ywaOyy6tycK29rWrakomLNug0bbnNa30lyrTSGcjUVeVYH24q6HHW7cMLI5UTssGURa5KcWbJO9qQYLUiDjFKmVENAqkUZIJ8VXVI5Cy1OAJ8Is04+s2onbu0OE2uDYhWdVPLmaxvkaAO+WLnhbl7IT9w3aYpr/LzrJ1nr0kCTFIBBhVnW0U23bQwFJ5Xnxja8cO26l3+yJJjpKoqUuWdarc48q9NbOcqVl1NSHMizXZ5bO3rIiCvGD7eHhrQF6i6/IOhURiY5lxG/MNQwtqwk46mHuj4qrRhbludpmViV4dErZv4wtndG3bL5jcNUyaJk61mDs/WCyoA1X9EdFa6i5qmNpeOuvrQu2NphjC+fMLoqWlI0LttaMbza4SjyjWuYE6yYOgYvchKPWoty6+d2rKhZEfMMq5+3Zm1tx09SbPI043eXBaLDgqHijm17bqiePnxYdvpgiy7j4x+hLtfhmM/F0S5WbXqWSspjyTI9fDwrlhCz3ZbhqFaodgHN7xkuUD0LiuUS0AMKDbxcLDvV+zPKr7xkUbS8YvnK9St/MGusJRekwRZX+Rhv7YoZE6y57gvG1+VA3djXNi51Sp4xF7fNa4nZrOP+sr2+vDBfthTmpaf36s4RQ4cMbhx/4d69v3rgno3zCvShqnXizB8/+NF1c25tiVrVzExd45/JGaWlVf7yTKuUX5yRCXmlFVllVfKvEx9nuuZNfXjyjW1NVe7sNJByrguOrVowbcqIysEZh9JdS1c8/MCL86auHumSsobkD6J4zzbs/xrsv5utxxFw6IKR+FE+yohhRUlKgFzRkEnUgGIjvv4fLES+qoM+ZOCSj5Ho4yghYXOkPsj1k6Yv9dx8Sl/Sx4bgpt6bNy6/aPKj/ODRTZbxN/Vu2nb1hOZHoe7oJr54ZKln9IiZU1bMKfS43Ra0avMWVla4iu351eHS0vy8EfUXt67cunxZfX20dt6l11+CVN3dMHbp1KpqZ6HDPsRVUespi9TOuvrpzo6V8rj2lZt6bxqR9aOjUPdoa8vam/CqOWPTUX7w0QX81ZlLZo9u8PkL8/Nsaem52U5bUaC0zOVqGG51lHnmBaurqvILyv1NkxYuvmBseXkBWp2S4mBsaKXD4SqtrXEWuN2B5qmTq8cEAiKMjH4B0yieFjTjihQgErsKCDqEkQ5IFWBBTSY+i8pIAS8tm4y4Zgz3OfC/ORwjm8ljY9c2zh1mdNesWBgDPaMg1z3nwpy0NNgTblbY0HGZbr/YYdn25vLh5ZIx/4ETt6qWKveQGfdePHOP19dMVPVV2K6H9DWshtWziejRzWWXs2XsujOtIxuGcyqinyIGYUWxd6okBQ6BG36v7CB5cEilGsUja9HakedHXjTeUMCGXyI2q0YEq9Udik0r9dHbXPQKPHVG8MSUhtpIkERAD9UFsl7gj/HV/Jcv5FSGr2q5YtTTf52n5ubaoT6vZXjT0qVNjYtVfnLKB4+PWtKy7kisqipWlVj1KHj27+fvP/oL/v7+/eBJHC2vnllUOXSEurKifmhVSUsic9y8sWMD1XDz/LHj5o1rzB5WnN36TFdrdvGw7LodP1F+HG0rDNbc8vGmTX+9JRgpnBNuuaplYToccgzOUCcOrVl659KFjaP49RkLWq+ShlVRpafs7QeWLX+qvf2pt55ql3ZWD2luKKtfXzK8fIR/9JZ548Yl/+PZxRXZra3ZFcXZdSIuLyE1Rn5ZRByHOBmyfVmw/9Hgtptx3QZwOZx2nfDZ5fOHnVFxfzQo06svqAY4tG37IdDxVH0JHC+p90kXHuL/c1Baeh/eUg7PKw0ESnnJlude3Hr4NXd1tRuObf7Ds5uXVd1weOuLf9r6n8MDPXT3bbFGYIg1gmxW1scXxSqByXV9qJo2J0QdwagTImIKif22d6ZWCDqldv6ud3mZzwftine7V4V2b1Mk7NXJbzcOm2sIh8FAhzAMPq/X2+7jnUospkC7r73JK/SC4sxMYwPZdl+U2awP30ZBZTzRxJuRXMagu7Od3ix0S8IR1WitA1kjsmmn2+6WQ1ENcZ8WA7BswjCMmGIkDDSutErCUmskGtWtoLfOwJIu5SbXRjSWYJzJ7OV2UiINzxM4bzLjRjPd6YtTi7ErYd5zmR9DRUbeh76qrRjSQUfVlmuQhql/WLnyD/wUP8pP0RmUHH9zZ1vbzjfNA2yBYXP5E/jeAYVU8cVTK/vK0UFi/K02mAbv9K0laEyszVjwmtQMVcscUXTsI0q7WN3hCEO7e+OsVzHEqg4/3rubjOPu3v59GswKWaW5uuMOh+y0WSlQ4BarEsJFIBSguaJp8lBtmnHSEGtShtEcjgvqL5PDEDMKfL5aXwz3mnGKAnP4R6tZVCJBe+mAr4AzfF4A3VjyrHZEvqMdIyXktkWyTUclQioctYrWhL6hOTwmgexwy5KhVRUUDNGXP0b1fmPDJJdTkkBSB2H7huj4FfgVtZCxjAFtLBGxngpWLSIuI9kYNv67Rs/u8SY3td/52dffNKiMFszMrf/52dff2C/j3D/So1Zo1a/RrxEre7qvNBtQ/XU/oN/QIEXBj0AwBnHAH9WvOYCqfMDrPfARX3dB2/gMW91w2PrRAe8y3wGf74DaRnsqcRQfB3Oraqebj70HfO3eA2zA+qTVrI3cPCKvUrAYnSJd7VtM1JnBLT/97bozarKSV/dbRwTs6v/104x1v/3pyv5riKZcn6nL/a21yYgc31XjLbTu+l3VSibGDKx7KOHTwKoBKw2Z1cMZbu7WzmkC/B+Kgv5Msh3wdYpRUwVnt4RbZNGIZINYH/1FpGNQmca0HpaJcutBmWUWiJS5FCc2DLHLLyPUBCNRBH803HokuZKrJHERTi6CwVAJg6+AU1xbxP/Je/g/r/gMVk954e3nJ8M6vu3+D5e/0Pw+NPSSyw8mfioMTi5Zs2YxV7m6ZPWaJXCSb5va0jIF1sKaBy6empGMDuxOYqva10ZaFS/ENoaEPFKDwInePrnGqh+wyWaAkJqOFCJKEUISU4ocEENRF+9Ysgqbw2/7cjPfLNre+Uf4fO4pNlc6wCuzendXyj2iG51/fJiKUhf+tjnhgB56pq3bEbh4Kn0ZfVzswA/pi0oJr4xU7u7lBvXl0h0B6sbfbqHv0G1mriFLhrArwh5ReCIdsFFOpRtiBu+m9VCxKBrDSyU24JJTkdRajIgnnvMOOWbEu+PdhhwTO5neMeAyTkX6YtFkEwYzJ6syswu8ZjzerrppSgmTbA61L0oU6vfR2CmUmeYwCNgEAdCnaS/NNXHExA1KPTADPYiM+N+dECxVwuOZjew8FKOdv4ulYzu8IKeDDKosT048Ce89De/Cu0/De4kDB5TrgT+V+BQm8yclJzSB5GRibZ2JNWGNDSJJQGD1Ay3/awRshI4k4IphcDPdIGHwGDvDtUjqqVZ7OoTTCZV1tOa0CC+zk/hUZAgYiRgYoqVYWoxbt9aN30tDZpBjsgocfPA7UeokhI/uONYhG4lfLpBaFuwRhwTxCkDpjRvQLRvxL/o/AtLWPr6Db6ep9VL2Am2qoCkkNt3QLXVTS4iyDMCPTJZH6+FgCaLtKcCpzJFYGV7RcrW7VirLFQrqCAI7DNthOgx5ccVp9jL/OffxuBk8Pk2ZHY+v2rNq1R5aBlnxIv8f/jhffRgUeAdmvczxnhlfPgwLX0uIcqsEhjE7+oaf6QEcizxzTd4h5CUKDeCQU8kKyFClJEwob0r/nr1679ef7Vs9WzpRv3NnoVDt5gMmnXr8VMX2V17Zrrx5yfjx8bUgpIfTnoeTEIB1puKwDlbMwpTtEYyIMIbTIXxLWsBQdDdL9ZrWmoTHapJWirmXRd0G/LhqwiD36zffu9a3FAno7E9vfI4/18xfTtIf2cFXmQV2dfjascCcT258DhqaIayw6LDrHlzt86HFmnNFzy+4KN8J4vYab+q2qe+pPA5/KouDwqmoQjaH60wyh2D2oSRlMjM3TFNh0CmONSqPkUzcSBjC0jxDwEA5GpKZwGGSpOf5KLqS2CahG3C7RvKRhSPFGPpu6RAAYV6AuSIi7q6xOdP4Ur502hzTSiQ6U7k34eNHpvF26Jx2xDQeiau6zEdmvxYQjqkfkgqlgwfQCyAqbPAPjQ+hm5JZYI/RLZkygtKTRu0w83OI/eQTFadPGjvBUpsujFFC5MOc7s8DLKYPYvFniaQAiw+9kNrcKNgk3em2lKCohWslv8Wh5KJaG59MnPaXvU/y9/atX6YWrV/2UcKwvtk4HW9B2T5Ub+OTxmd+8AT/ooKfLH4LJnTtBOeyxEc7+afLPpKo5O+WPAHWCtBL3uS/I/9Bxn4qhugFNpiQTxGYksQeGgAzryeZbyRKsLj4Xhxh4jRWiYcWKZbG1P8Wax+FZt4MmXQEjuSB4azYsqAUZyiS8jWgCu4wuBXWrVIPmkf+z8S1j93R2noH7Xbe39Fxf4fcTcxd2t3AS/pOwDBL4I63dlCx/nihC9vJKH3G3M5VUx3nICHSomTsQX8VVfvu02rGeTQ03bQtgv86xYpDheC+Z5hv0s6YFiYkrI3qQQOEA8GS3r+XMtu+6byf9ek+bQo+7cGH5AvHPWFaGxBZXu98w7nJf6nxZmlBhGWWujjryEy7izaDfMlCsXZrhmbQoRiZ5BpOEf9AerHU2bdA0q7rXZt+NL+6a/XuXoWZQFHk2dS1YNHG3t0NQkfJz1bMHD9ET1s2cmo/Cgf4fbVIqYNWZGrqPVDc1PRp0+FmXs8/hJcAL5p7bj/N9qCX+jt+tPlI86eTpIm8Hlz0sKf506bE58D2mHaFrJlK1Ikyc5LjKJtNUc0miRjUEfUL9Zdke9Kp/rAbouoX3DoLZokUuZ/PQjmztsIsA2a1ov5b4YhmpMpHRXk/3vxiFv85JdvBrIHlUVdiGrUB/9MlZCvoRncnkNmgVUPfu1tCfoOGLRkPE9gSE2yP6A2QJSYvX4oR+HeLM3NdVca2UUbaULDIIpcPv4Lais0y7wNBTFzk/5m+heALIhdPM1kP2m+SBbKwp0SypFBYWp+U8KZqaGxAHub5PDrW32fz2j1h+Ba/7XzXUn9H7dv9tvNdayzlqZ1mxvn/aKgkEdMQcQlT/89eBXST/iUzQHHwRHCF9tJxokTcRAEK4MTFMwq/nKZoSCrykcQYUYcTbbPv7DrQ47W4cXxqI0TRcOhzz1OdyFo16NzM03z5rGpxgFAKKHDEBHWinNc+btAXSyWczRcoS9EO+5mjjRFJ9KF8CFyTTHiLo7Dx998/zd7n76t9qJY8smP8gSr+D8isgkspHo6jKXCgRPQwiQQEbOdDA5HtiWbBBAUukk3pTNP6gIHoFWUq0uAJkCB/DA8uVwooEg3UGDNT+AwOlfavXdTyLXB0phIxp/3rT9ZJg31Wvcn4UZJjp4lIHNorARBASx5u3eTaiXfmSj4+l5ZxKKn3NKqORq7wI4l32iQvSSynVF7SrDPxKEVwdksySdeSTGU2mykLtoyTgoXjLKm7ybm1COn1kPUYiSpsSm8IX+KrjQqbohnC0Yil5BSRPRgMxl+jAAcJq2EK70kjensUL2lO97A9+gJ9AQuIqJLu1XSrTkscft1v9flVP61yRP1RNRKVo85I0Bl1yg6n10nhcD3lAusLRvDXK8c4th4an542/tBWe12Ivz7ik7S0T0ZATfUoO97PGX/oNkddCGrodqJYgLD0Od06U7L/G0ZVm0U/6f/mA8ms6/42fbCp0/2zuYESYnSIeG0sFIyCdnZWtxLkPT2bN0pdE9HFqOy55drEhInnpHgnXuuByomJCRs39/CeiVLX9efWiVNAek1pQpCyL2XJo0TQS7xOsKa4CSFy8oC4pDCBt0kIaU7p8RkZ6eNW9JEpnZeljDdtJsfu42FJjhZnJvdKxbG1FN6Lt6ATzgU5S71G6ov5mmUlk9WKwqp4GU9mgSerTOaJszN54qI6M09cBpEEm/a9cDYVxBaSqrSLt5iAl4aAd9LUVIGzpwbgrMAgquO8OJsk15Y+nD1fdYQ1NDWdx1NIC81n1UwDpQq2194ZT6FtIom2yoA4N1nEb490p0TDGbJ4vk+8u3RaXd20OpfxvSLe8oQ6Kn4QvfuB7fJ8Z7tADskpevl92iU5/uBcJdr2fRoGD8P9/LIFonXsrLaNYY3f1TaxIkqfIvDQKmpUZFCKpVE/Yrz0/dstsWhefqQie/AtuTkBlzU7x1I4ds7oFVddtvd790V2D2vGussKczLsDt+w4qIiG7pj1kGDq69uSHyd7KKIJ5r+udA48ZHFrxsU7Dx8yF0oUi74kGzB+coqggDEzymr9MVsNPRoc8mnJc8zZCXTRwer2+/RaSPTTv+tMEN+iwQWxHlrfFmFUSG/hTtVBHlASLN5TMW5UxiQSW+P5PrKspGIK1quU2HS5lU5f+ZHVj3wwCp+5M85q5BLLmqHUZ9b2n/603bL5/z5dnzXYujV79VK8CydstzQUjq9stWfLutW2anET5xmJ/jKw4ff5G/AcE3hh99844031d6GOGv4GOqhfjsS/Hrk8C9t5y/xl7YzZsZlUdOTsap8WlFKh7CbKA36h+diS1/qLQ0jOeVx0UUYGOY/EyOmWTHIbKMfaXQnC4SpMDf6MmLP046ib2+H/dvrpx8sfVvNxjn1laTqo9iYenZ9fvDrYNaYEBm86oD6/jmXdx5ogxyzSnQ8eEzqjg2o8gUqMpd/mfyNS1Iu6bcmhPD4j3Uyu4XCSxTxo5gsdYJYNZrIzqbfX0GWjHpFcVzyJ3h3DC0s7+lsmsxFCE/4WX3yBQPep5z9HpT8gV8esDYi03iA+Tun0oBM6aMeS1BkB8ghECKt4XbhyubmlRc2Lm8I1Xs89aGG5Y3mHZ2dZOTJk/NMm9x3lrLvwmbSb7lELWrSooDbby5GO80fLIFYRz3N1IUJtqpDZh20sCriAkTh4qyj437DuL9jIH8zfx9mHziDoXAtcyVXvYvQ46N5iYs9VMI+qBTMVGVG/zkzcMB4D/+FINRJH0diwmfLTNYiciWIHxMVVkNkB0UuhTgqL7Us7tqE3iflJDIzVN1NAbRuZaF/1/xNXciM22cNRXuHvaOIJ8XvzfdTHEsO6e5oyOqJunXl7S+Nch4rN/AA3eWq8NHITUnF2o3keFpMFsKSeRGqH2TTAQUzvCIZKJrdp1HmTXaSDL78szuxAFw8Ff8n/7abpDSUDobcTZ94LJlrjNdpQoLR7tNt8dz8nhIT6wb4zJr8HjrHMXwKSiy5poDPvOlg3hYl/h9VXAj9eNpjYGRgYGBmaPaTOnEpnt/mKwM3BwMInJvJr4ZMczBwQCgmEAUABy0HjgB42mNgZGDgYPh/A0QyMPz/DySBIiiAFQBj/AP1eNotj7ERAkEIRR94gbljP/bgzMUXWQeR2fVwsdZibiEWIB9gZz/wYfms/SjzF1jGZxyDIBwPS0S5TFwITfhO5qjsm7eqPNmz9jHqhNCZbG1fWjVjOqqLq/RSbaNfBnd59Z3EX4pjqY1qZsyOio5Waq3ef9SiIx6MtZ7N77KePcvtD516IYIAAAAAACYAJgAmAC4AXgCIAMYA7AD6ARYBMAF+AboB9AKOAygDeAO0A94EhgUaBVoFsAYWBpoGvAb6Bx4HVgeyCBAJPAn2CnYLJgtuDCoMcAyyDNQM8A0ODVYNeA28Dg4OeA6uDuQPIg9qD7wQHBA+EGAQphDEEOAQ/BEqEUIRhBG+EhQSUhKAEpYSshL0EwITGBNaE44T+hQkFFYUaBSAFJgUrhTCFM4U3BTyFVoVjBXMFf4WPhZ2Fp4WuhboF0QXfhewF8YX1BfqGAAYDhhAGIIYzhkcGY4ZpBm6GewaDBo2GnoashrwGxwbPBtuG5obzBv8HBYcPhxMHFocaBx2AAB42mNgZGBgqGPYyyDAAAJMQMzIABJzAPMZACNoAZEAAHjajZK9TgJBFIXPAppgYUUsrDbRQk34cYl/UFmIiRpDNGpngmYBI7AIq2Dj8+kLWPoQllZ+MwyRAIWZzOy555577p0BSUt6U1JeKi3piz3CnjJEI5zQsr4dTqrkjTUprXslhxc09G4dXoT/dDitVe/H4XetJDIOf6iQ2NKxqjqTrxeF6qmvB0XqEAfsCMZXjfiVbwsUW9WsegCK1QTVLRODQg11z9klGus20MSsrkrKswZ25dQg+8zXdGzAt6gwtR16hOw8bBc2i39NTyiNTxtmTRXX8Wim3ya3Mx5mVuMXWb8L4gbdzH16KuJVYAUq60qnutE5aF5ddqpynsaf0lxPvdNkt6ouYUw0yTZRxs7vhfy2zeW0x1nmxjU94mk0dVjzTnfU5bRj9z5egQ7+Nf8JfGinOiTbhu/b1+7wBiGuf7/kaIaKdfN5n8hOZnjfTl+i8y5nADb/nAKZ4i+dtXAXAAAAeNpt0tVyG0EYBWG1Ag4zMzNoZ/7ZtUMO2WFmZnDAQYcrj5hXClhtX2WrVOdG9e1O17TardHn969Wav3v+fn3R6tNmwlMZBKT6WEKU5nGdGYwk1nMZg5zmcd8FrCQRSxmCUtZxnJWsJJVrGYNa1nHejawkU1sZgtb2cZ2drCTXeymQ0UiExRqGnrpYw972cd+DtDPQQ5xmCMcZYBBjnGcE5zkFKc5w1nOcZ4LXOQSl7nCVa5xnRvc5Ba3ucNd7nGfBzzkEY95wlOe8ZwhXvCSV7xmmDe85R3v+cBHRvjEZ77wlW9850fPyPDQQKfT+beD1fhWbnKzG25xa7dxe92+0U16SS/pJb2kl/SSXtJLemnMq/QqvUqv0qv0Kr1Kr9Kr9Cq9pJf0kl7SS10ve47sObLnyJ4jd8b+V9zabdzue0MndEIndEIndEIndGLc6X5/2CPsEfYIe4Q9wh5hj7BH2CPsEfYIe4Q9wh5hj0h6SS/pJb2kl/WyXtbLelkv62W9rJf1sl7ohV7ohV7ohV7ohV7ohV7RK3pFr+gVvaJX9Ipe0St6tV6tV+vVerVerVfr1Xq1Xq3X6DV6jV7T9Yr3qXifivepdPIfY1AvlQABUnNepwAA) format('woff'),
+    src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAENIABEAAAAAatQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABgAAAABwAAAAcaii0EkdERUYAAAGcAAAAHQAAACAArQAET1MvMgAAAbwAAABCAAAAYJdbaIVjbWFwAAACAAAAAJgAAAGyqWnWY2N2dCAAAAKYAAAADgAAAA4BYgHJZnBnbQAAAqgAAAGxAAACZVO0L6dnYXNwAAAEXAAAAAgAAAAIAAAAEGdseWYAAARkAAA5fgAAWkD4H3YjaGVhZAAAPeQAAAArAAAANgUfUT9oaGVhAAA+EAAAABwAAAAkEAMH3WhtdHgAAD4sAAAAiAAAAQpVkUB7bG9jYQAAPrQAAAECAAABAoDMauhtYXhwAAA/uAAAACAAAAAgAagCQm5hbWUAAD/YAAABYgAAAthC114IcG9zdAAAQTwAAAHUAAAFCuMEJONwcmVwAABDEAAAAC4AAAAusPIrFHdlYmYAAENAAAAABgAAAAbRQFLPAAAAAQAAAADMPaLPAAAAAM71j4QAAAAAzvWBvnjaY2BkYGDgA2IJBhBgYmAEwnogZgHzGAAJvwCyAAAAeNpjYGb/zDiBgZWBhdWY5QwDA8NMCM10hsEIzAdKYQeh3uF+DA6qf74ys6X9S2Ng4GBg0AAKMyIpUWBgBACOigvWAAB42mNgYGBmgGAZBkYGEFgD5DGC+SwME4C0AhCyMDCo/vnI+Ynzk+Qn1c8cXzi/SH7R/GL5xfNL5JfMLyVfmf//B6tg+MTwSeCTwmeGLwxfBL4ofDH44vAl4EvCl4KvDP//32LnZ+Hj4+PgY+LV4DHk0eZR5ZHnkeQR5uHlYeeugdqOFzCyMcCVMTIBCSZ0BQzDHgAA5FwqMwAAAQkARQBBAGYAfwC3AAB42l1Ru05bQRDdDQ8DgcTYIDnaFLOZkMZ7oQUJxNWNYmQ7heUIaTdykYtxAR9AgUQN2q8ZoKGkSJsGIRdIfEI+IRIza4iiNDs7s3POmTNLypGqd+lrz1PnJJDC3QbNNv1OSLWzAPek6+uNjLSDB1psZvTKdfv+Cwab0ZQ7agDlPW8pDxlNO4FatKf+0fwKhvv8H/M7GLQ00/TUOgnpIQTmm3FLg+8ZzbrLD/qC1eFiMDCkmKbiLj+mUv63NOdqy7C1kdG8gzMR+ck0QFNrbQSa/tQh1fNxFEuQy6axNpiYsv4kE8GFyXRVU7XM+NrBXbKz6GCDKs2BB9jDVnkMHg4PJhTStyTKLA0R9mKrxAgRkxwKOeXcyf6kQPlIEsa8SUo744a1BsaR18CgNk+z/zybTW1vHcL4WRzBd78ZSzr4yIbaGBFiO2IpgAlEQkZV+YYaz70sBuRS+89AlIDl8Y9/nQi07thEPJe1dQ4xVgh6ftvc8suKu1a5zotCd2+qaqjSKc37Xs6+xwOeHgvDQWPBm8/7/kqB+jwsrjRoDgRDejd6/6K16oirvBc+sifTv7FaAAAAAAEAAf//AA942q18C3xU1bnvWnvveSaZmT3PZJKZzHtCJpkJ88hkIIQhCAECCAQCCCooggTkjS9q3Vqpioo9tqJVK2hbsdpj90xA2mJrjtVaW0fLFbmt1h6xp1ptPcfe9rSKmc39vrVnQhBsz/39bmBm7732npm1vvU9/t9jLaIh8Ef/yj1DeKIlBlJLzIRMFP1i2Mbb/DXUZeNdIv2r0vPEE166+An4u/MJ7pnyBZeS0+R0+XVymi6HE+X4aaoQSsb9TSREyxEOvlQjwXfrSA18s424yJVEJgmZlmQhIVtSsqYki0lZn5DtKdlQkh1JuTYh15WoXJ+QhRNFoq9NJpOyrlTUCcbYcF7HG/C9xhCTdZaCncZkV6lgsiaTRbsL79sthlihgcZIx0Sa8TvO9+KgO2Xo7GnCSWVJIGWJk07DNUckiY57KZUj4Sjc1cE/GION9BLZmJDNJdkGHYR+2mEwJ6DHcp2lIEJ/dKWCg8YKYp1oHRYMRj7kypGCzQxXVKsjcNUxkVisIZ9gtXCCL0TszmRnOhKg5BW6mj5KV7/yirJfuUTZT5P7ju/bd5xPjG985RXuIWzdhyQWiEQlnaSVGHVdxE+uZ7SFvvkSciMQMyHzpWEj79DH5JqSrIfeBlhva0tyraVQD731lGSPpWCFM22pEIR+11LRWtAbczm5XpS5nOyBUfAOM/RbtoqyBsbS6IOxaKm1FtscYoHT5GBMNuAYv00jIoVtdpJKkkyaBAPEle70OR12rS8iAYHZ/0+ArHmq+8EPqVY59cMfKJ9IR6nx6FHlb0epxCPNTxNpVBJ8B1aV34a7Y0/uPnp09y3PPIPj5oh+PF9Nx3EX9LWpFDKWIYm8BYxVl6SyJSGTE7KQBErIvKWgp4wU2qRcY4GxxoBYOGsEB+AXaeWVghfQVoHuKHCEA0fwUn1XiHprVALRwSYtzgEHFyJcCvABDTAV3sNTCfimjqQJlU2sK9AvTWnYoCEwKcYS8pKhVDAD5Y1EtALFCxoDHPkccnCFdjpRI8bh207SnpN3bz1Ntt6tkfafPLn/C8+3lP8gcfe3PM94FH5JS4iROMhKImsTspgCZpStSeSJGkaZWiCIk/WCUUP9/aKRR8kxakGmgEI1QBRTSTZZZAdyUNFhwrsOEeTKpcoVEMdOgmKyM+M/cwryIynHjw/t46onQDSQr+PKcUr2DY07JRzSjNGlgaTIPoKiDnMSS8he4NA065++VNQT/GG9AN3SWwpu6Fa8VIy7sTE+ERrjlkIdNDpKxToHNtZBF2WHpRCFRn+pGPVjYzQE/c4Add164GtjfS5XqIsD/9a4PDHg30LUAc3e1hzwdawGJVYMTWQySsV0Z9ahdYgonxkxHc14KVwAH+MdmBY412XwTiSAT7kcMENkaDC/5cCW/OAQ42aCfD3WxI1QafX+8H25JYq0YMuWBVRakrsvvH+1IgFjcxqKh91K5RHKHlHUR0DWgbvIiA5pZiVB0kZkf0K2pXCKgMFrU0wThRJy/QmQ6EIY5qkgWICNGmAkDcBGKX+S9Tjop2IwEKFZPw5KbYsB2x5YJZBVBw6sUvJKXlp1gEfN8vivsEVS8sjR7Ca8K3k6ckBZJf3qcSqdaSGEp1U50EAPfWRmRctT7Kj+BOoks6XghKlpKhUCMB9mmI9ho9VWj1rEKRYafDgHFGTgsNZgdjibKrMAHabhznQ06+VRElw9NB2BC+qwm6gOf5TJZaa/f4V7gscyOXNR34UX9q1Ydnl8YBJPkNE+hVd///H+FY1TZsyNzr+z86K+o7882rdi+Qc3L33srslo/uCV1oNGIevIBiJfkZAvKcmtqEGofCXjxs6S3GkpNFKU2MJ66H0n9LPYP29BDvRko/i0xuLovmDJZUzVX3IFcJTlMrjRKuZrjDYPaWlL52cPXooD1VgPBULhjiQbnJi2klAqKRCrw0I02kgm3ZlJR3sEfOMi0Tg1cbpIVKuL82aqdWkddi/v0upMNE6jcSHaSk3U6fIKLq+uM2tHNRENkUepje765TG6i1ofVa5TfhEK0BnzrpMGs+u1Rr3ZJtSlui/PXr1nz9XZy3oSRuOkjvXZQem6uZnapqnLlvo4gyfQ6RFqGwyimzd43IE6ytdZm0OdUxbFaSCk/EK5TiC/pF+AL39U+U9l9zGlUP7jOl1zg/D8wpsnG5pnDT217ZGt5pZZl06knGCdGPZznD88UdRy3D03bN+/7amhWT594qI6E+3KCnXBxnpOV+O2wtiau/y83t3Q3OAEXZS8Vqj3addxTrRxOnxjc2MmjYzzJ5E+soDsIMU6QmJypITao7kkd6nztZDZNwuIhaVwIcxXbxLV6yKYsgtBHvJ1mto6wdnUHGppz0yexearPgLtRgOxtfZMzfcumIvT1Cwe0tMmz2Q877IW/YkLcmjj6ilMmA/mywJqHkw3b7e6Okk2Eq2l0awzlOWiWkKd/mSW47XE5rT1CNlIKBjQUi/n6hRcXNTE2bwUPmPNhr6FM0UfgpftW99SPlR2K2vg9WFox8Yb6Hffs+SVd5Wtf/c9R/+6567h55Q/U/FXdNbho/7v/Va57W9rf649MO+O9RO+qBz5gU+iC5yeqPYJOvd695f7nv77YtOkFZ6HXq5X/sQnz/3+b8HvcrMPKq9eW6Kd8zqkwWT9V5yz4tT9tyXK0U8fGFlA2+gtc5RjmvWPKY9xk3w9vaEv3mMpb/GkFtf6tY3UM5y7dEh5tPF+5ef3baSLR+JMfiTaBjjkN6DNYdgpXxY41JlKwmEKsGicZtJZp+BC/k4lXZ1ZrQ5fyLImXgj6pI4WSn52zTOhqDeRvPHxBUvnLkvuoXveMf7q/gMbpfWt11y1dvYm2rPz6XeUX39LeZUe03yDu3uzrs7981s0MT756CVXLH7iFzXR9vv/9w731Fv66to3L9D59Nd//MEv7l+KfSOAkXQSiZILCKpIUJYBMG9JWUzIvpTsLMlulXVaAHeeQDAKMNRgAVwpuwBLpQoTgHlcgOZkd47BhPHaVPTb/FNQv7qykWDAxHloEMFDICLtG9KQoX37hpR3qalWeTfW+5h2/vpL7lnWpijltqF9iBHw9qfwzr1IhZHa7iz9P8bsJTsv+JMyWs4hwAOLTyTNe9D3BjKf6VMHs+K2ZJFQNG7EBRYPUIVetexupv+5JHZdTBZd9fiMy2GIFesZNq4nYAsbKzY8JaZ7uFTS2Ux54FAP5+fRmHPSb9Nrn7wqO+R26/5tborONikvKCP8SzRBufl7NuW1PK+8m59helU5NnqEn01A21fpawbcsRiQx1qyl8h1CXlpSW5OFMJpwGSNpcKEOKD4RSqh142T0W6Q0QuT8ppSsXsN9rG7H4a0xlJYBe0guFcC7btRcA0ouDbnkuUXM6FtXorCTPUGYrcFsn0rL161BmW1UTzkjM3qR0UsL7IWWjpQaq0WaydIrROkVgtSG0GppVpbKtk5lXY6tTqtjtp40LadLqfa5qVqYw+XSaOuNSDjulCSBYpsHYnytNMKWho4WCft/YjOpRvp3I/27v1IOaR8TTn0UfpUSblx5u50eGMw4LCZ7G0TaUS+YYndbLfvvjCyIRi02KjZEptIgwvrATnU2zmbxqKt1eh5fv4k4ybl/QdfVR6iF27ZsedmgfuY3nrkjcs1U/g5n/kVOOO4Pym71gieh6hJw/G0OcBruNH7OJEu03EBHzVio63ByUHrw7T2wtxKf3x5JiB4jY019SanaDfmBukVm58/9XV/XKvhDpb3DtHtb7463NJ66wOqfzE2tzPIcnIFeYjISxNyS0qeXUK+AxA5HRyNlGwvFafbcfqme2H6GoAX16pzjJ4bOmpg8WV3Ug6Btk4WAyF8NNAF3LgO5lcHHscwb5q5AmctIOaNmhrvhFhv/+LB1WyuZ8NcF0lsJqjgAm+Cc128C+3udPEItfiDockrL2Pm1Cbi5KCZpK6ANhjgM6qkeqhfDIp+hwrrUWrBzIJ51cP9LDtNZf0BLd9DXWBPNS6cVZBgW6TTBd/k1AJrSDeUvB6fu9lrnW07cp8q2uCknGaqDyCtotFcfDcfNIdsHlHUx+ceumjgwK3lR278/YzcG9LiObbBULfHo9PR8qElt01z3L3ruh85HdKuG16i79Lf38hPyfm7wx4qaKehRlD9H/zqUfiVJufdT23g3LVNYqO93mFMz5x815GtRzr2Xnbqm0vWU9pQN7lhYmBigyds0V8hdD7ya0H4/TcPjAjCL4mKycCAap8Br94CunkWQ9owB3wCcEwVaasT5IEJ8pYYUtYBtinUmYDCHrEghhCWhepF6yGLua09rqIyu3MyBQAZp6A6bKA3gMLpbA9NJREjw3mcA2Wo0WX8XmrhAKVdsZBbvJauGRhYZ6NzlKcBls2usQ9OnTTXT2fn1t2+KNSbSvh9jhrlCIU/rTj7sstm969aferb/L+P+rkJnY3JmZNWzyj/J9e15bsbsjW2xsZgk3iX+23lPeU/Lz6LT5sAe2bJDUwDARL2x0DtdDBn0Oc7IcqdKdkG/pdFdsP4u9j4wQO2MCfYy/wG2a9yawwcEkuhTVVDOSCL18NMgOwXC/UuIE7AKmdyckwsdHQiiXxwu9CSUV3h8SYC0PbnkosRixkOoNWYyUCbQMnCaXT6ALegd/oiC9WBF/x1qtdbZqR2U/3B25MLuwIW5ePxRmSfcO2kCy+c1D1v/qdH+IbR9+jRdltL17CyjL74vafr2yINW4AZngRAtQCw1DTyXVJ0In4yJ+QJJaSQFgjSywiSKckZS6EJRg52MmAptDOXuTAdDp3uH/bUfDSHOGJGk9wAVBwp2OkncmRk2GqP2GJFePft8e0JakFMc+SQ1d7gjsTxj447l/NuWmjKgCC7clNQkANiUevswLN2a8E8AanZMQF9NNLco0o2mCoEyk6rw84J4L9EOVDQ0UjWpmIKJ3MGtKi+rSzqYOIcdhBeHaLlaIR7su/eYzT2lEwTL+94QvnZi5d/LzDbErj4Xp3n0Za71g4sC08xua67YucPLlc++PiOD7+xbMCq01kMuqDzxi8Jf7rqN688fOl1Lymf3vk35eqTF+eV3+Z2fbXz4C5OXnjNHUc3LErd81zu8q98n058+gQ1XX7wzWu/usbhrp/SUm8xpKgaXhvDsINkNymakO4AO2Yn5C60kcwmLmWkD5fksKWQAkrPLclzLYWZcDa5JE9W3V/wPZYBI85NAW1iiYHFqC9nikdMGltz1zTLArycbC04pyIBnSb0QhYDTWeDF2IwEps7PCE1eeqCz3geiGSDgWhnFoCpSj4mu+BrOV3OTmDSbGckClRmWAHJDNTPomEErgVVC/ABpsJ1tuOh+gZfvXuOZ1bT3gWPlvdc8tjf9971f75zfW5ondUjcBZeozFd0CeNbH3p5IJ9lyy63FYz0ds3fdF2i96w1VavBbT61Fl+hnIJvP7z0dYd66g703+ETv3ZtuPfvGzeTY8NL9/zWqveZDPkDTanOP/61cVbF7751Nf+fu/OBfGHr27tXXr/1thCm00JD6zecy0dZX70AW6VbpXmAChGM2khTBeyOIlJDRZRNUJjKRiA4nXV4JDV4vR1WiI+oXI88Fe67K9/VR7n7qycCN9VHv9r5ZwdK7iY6G4EF8ZPMgRjnPUl2ZqQTSwOh9E28D7ADZa1GFsrEo0FZcBkHa5r8vhUxncBdzdSaypJic0aDvFwCUyNxi3CowxopcXX2Vcu/MrGb5TpJrq61qL8Sbnjlhn52yz6LVu7Znfb0xOPLZdv1Fy+cbFysvwX5ST93/QnlKcr9LXKgOf+lbJMzRfSWTRh09+/lTD6VGOKZvDjrYRimJMgWsNgKzlXuYUNVDq5XyAYjxqFd45FfdD1xhYF35vRSUd60F8RSdsCejoAnpxsSMC3UjmYkJtOYLTSmSyEkCQWjH/VoZlJiXZmgsGsd2ZFGHUUeVFEoBpEiAYg7Vc/dbtvufTiGzatWHbtl2+f290mivQJZfC02N4xe84G4dHyHdf1Ttvma3bau6h7WaihPf4AfZk20BfuWH7xlHzwLNsRJDEymdzMbAdYCW9CjpbkhoQcSMkJFp4SSrJgAaGlcneFKAhhfcAoquCCp4ADabRgpExOMddzCkhs2AcjCuTkCeKw19PGvMpGjM2QQkMUZLnRF27BtoRYCE04nwEB9z7FAjZ+EEEwcOBP+UMVTgyrxgWckEiMgkieZUWk/oyGZPqVjyzKcWWZctyifERZFPGk8hzX3J+RMv3s7SxDMoSNPOntwXhd2/Ge3mbluZP4oerT/RlQZ4AtKGALhdiJCzzzZqBeFOgXB9+cyglGHowfWjAYL3sZ9GuB9zFz0gF0aXDA6J31Tcjsckg8pNUgnnOhHRgOhFvbEP6xSFyWdiZdFOmho8gGNDKVRm1UDPOusMi7snAe1YiarIG6MpR4uB+LLSL3Y4+n3CvarbZyr+eWb387w2mUd957j3oPvv/BB72c5j3lHep9r/wpvffbvJO+1lxPX6upUdrrm5V2n1Npq6mhx50PbdqkPK48TtPP0q4HnqWp8rMPPfRQOUCXPfgs1/TsA3RZ+dlNvzmLhzJkKXmGPMZ4yF6SexLy90rynETV9fnRONcHsYUaWLoHzq4pydeoxAKm+TGGmNqAaZbm5HvEQ88sX9d7AOlyjbVYJ1yNWqJBzNtqNXZvoCPZ3TNn3qVbbv/6Y/9aHGaAuccOtjUyaTIC5jnguD5N9RZv97zvY7xTswjudSRTuc/xjIRUMoSgOM5FUfJAxwjRSCgasWY7Q1lA1wLHJFLIwjSgYz+V70RD4oqwpwSdltPg/U40G3E0wFoA1U5mR1B44RJvZ+PgUEbQvOCVDo033AS74vJyzGTjBWWP4ldgMIFMwbhXJMSU3nl8rp436bVv/Ynetnby0n0vbd8hRztnb9usPH3wceWDvjl1S5fR9iLn/6Vy8Gf3iY994Vrq2zV31r3lr93Dm+hl1PrQN6n3slDgSuU3+7+hvH7VVWuoqH/gqk3/PnmKs3/mmxcusTtSyZUrF0TSejGVXjwwOVerjTW3JOKz6jiTweGcMbfPFo9Y+2KxFf45Wm5wd+8FV3jqw+9s3taVjQQ/uOlL3+e1Swfv2HbtwIqfUIdxw+K1yl+v2jHlc1y6t5Tb3vz7y7fdvPPYQ0P2jueuu0956tpdWzyNv93/EL3q6w/+L6/W8rZy74dfOz27z5xzfE2598R+GMU26c5duegX79Xqdm7eoPz6+mue9/oHLl7xzpx59u6eSy9bvLjeNdHVN2FZ3yyNtjs7EJ5qcWhoV4z3zvF4/UIsMHdRNKs3NDRfcMW0DQmr5ao752xYF4tt33nddXe6bG/cvnf79tZgU4A6fsJteLZnnn1yz/oNpOoj6gnw/nxyJbmR3EFvIrImIa8tyVJCvjUl31SSdyeL0k3o8kl7DLHiTRKe3vQlcBRvssjXIyoHxBlNyJtSciuIyJ0JOXFCXl8avnB9Qh+TSQkDHxeW5PWWQp6l+2SXRc6W5GwCTgo7oMlXGr7ct0PNcfkshT3QdHNSvr0k35Is3r4Hf+32W+GH99yOp3skcDvvUrGsYevIsIplZ1nkmSOFQe4TednID4UdIy1qc59FnjFSWMp/Ii8fKcyaqYeG4Zl9M2yxQt8MPXxouG/WTFtMHrQMLx1cBq2Dy/TyUsvwsqXLbTFyZMbMvlmDS5ctj1f+6DktDArn14NIZjSbUKxdYnHl2utRcH07QDeK7ihahsKeGtAFE0C0pbXQSgDRoTa4SSw6XUzKo9dDszuxfoeKGuxeQGs94P/GhQSNc2mQPowqxwX0dH0gYBhKBqNqN6G3zLlMvM7EZ9M9fLYHmsEHdoDdAQ+44tMBGNSZABXGeZphTrQDHWopf90LX9j5i39Zl6zzeTpD/iU2m6ve5gq3dfvqLc3eeL39nvuURuXjb8ye55u+8ouzbV16quUESo2NJtuUOXfuSiVnt1hfDcSmheqDA7Paa4O2VM+0UHPt0986+rurU00r4l2XX5B0TbampzRNWjO9w8EfZYAKnGP6y95rLu1KDm6VprfMmNKebfb0mm2xjoTT6Yn09ixPxuZPhQvLkpvyBxd3bbikr1XDiYJZZ6ox69xtcVuDoHPGfJ7++X2WxMKOVrOhRtTxfCiebU2mvFvvOiAc2pQPtuZWbt+R3jrZ5rHmLtq6qXzqjF+uYvovg87vAr6/CP3qvgTLrq5A9V5IA3cBgzYni+ksslw6AbyetSAUAJtQWAnKPU1hzi9cMohznhULgb4cWjorThTv5ZupVwMk16CWFE1qyB/OvBygIL/YAfoT9GtcGw12MBBkovgRXZy/qaZv+syDBwuP3L9rpbuhtuWqi6/ItsQ2br5285VLp4lWytWIvpap4fSmxTNsVv8F07sstGvaK7vWu7jg1EUrVg7k7bbeX+/NtTQ28GJjvcFwUueaNEH45iM/XTl/22QfZ2pqMBo0tllLvvLo725YfvtA1qapq9NplT/ytYFAe7SlzsY1eGvraH0gZgq188Xyu3W+lfO/PffmFXPa/WY95Sw3JKe1r1owb1JbTe1LBt/6TYg37wI6bgc6+sm14JUi3mopFRtakHANDiDchoR8eUlekmApwSXVlCCVr0vI3hPyCnBRS8WAl0WU1oGUewN46iXwyRWWQpyB+GK8jmUNe0D0rwfqB7wgTr5cIb4CjKPgaGjRz9uJAlUnymYQspYGuA1Sd/kGkCpzPMDuLRGH67ykE0/1iNiZV0oxnl1xTHVOHXOPoiA6oQh4SFlw/NH4MfSKmZ3I+H9wH6PhzuoTldvBAE6pw67ewH/wzRXkW71/15dO7r7rmhn9T9Kud3bbUvRLJ2/ZtfHCuU8qP3tntzid3tmZXnrNkX1bN3dPDgSnTFoyb9PyxqDfLwKoXLm6LebzOhoSmUCgoX5SbtHg5js2bsjlsumVl37x4ik5v79n2vr57QlXo9PR5IulgyHNfbtPfqm/dvc7ys+eXLVkaDNcTTJ9+R3a9eTgwI7yX/rnz01MjccXL1m3bEpPJNrYUG/XG6xml90TD4R8vp4OmzMUXJlMtLc3uFuic2avXnvBtJYWN4CyZm8yP6HN6fQF0hNdbr+f+QcgY1rMcSbJCiK3If4uRttYGrcOpzyVkHUnZLFUFHXYKLZiLYjYwN697D0IHKATWaEIBrvTWIihg9l0wLRGEVARllQE7QgThMoOE4laM0Wwbdfqxt5iNOlk2Bu8YSqNTNy0Ok91tW6rf/lMi15PD2T6OyJO+N+fySMeVvLTdvRd1ErB97nkkY9v14jt/qbFDyxaciAc6c9M6K3zR9kbPDrU39LRwsIBJbpXl9JtJxPJJDKbLCJryEayg9xAryaYe5xaki9LyMtLxeWXwWjI8kHg55Usgr4hJc8rFdPrrsG6mK6E/IUUxmEBYTsS8paSvEP1qr6YkNtPyN2l4WR3+5gVTZbkbkuhH2RiQUleYCmshbOhkjxkYcGdSEnehtbYVhq+LjJdj8Gwwo2VoM9P/rJLtYg6i6wfKbiFT+SGkR/++eC/PYLNBXeDHsNB9SOFWrhTN0Ke1ulr6+ob3FXL95lrZve620VrIZEGDdgvDvOaLiZbC6zF1oGlqBbXisNT+5azUP6QdXjCiktYAnW6mDdYHE3eq7Zs3/kFbIhYC6FrMOKxaDlMb3dOnicejrQnQpOnq8m7w+A4kZ3X4QUvFjVNffjdDmtB2wh2c8cW6ILNynyuSnLKBrLq0qBkO5kRjIZ5p0uNMamsgUAZhDdOs3Z4HMMgTrsTYTOGkjFH4GQhKbs2YE+D18KEGy6ZEIfSnexOtegHv5qFUkpXD6zpPvL7lRqr1UFz9QMdc9avn9O3VqOcmvfb73WvG9jZFTe9oDylbFP+9QVLW2ZtS2KJp23CpIVP0OB3n6TBJ55Q3nryu8pb26bFE9N6V3pbzV13/0uXudVrHvzB0UH6L9MugVba0Z5vb8/TgY5YbkK78JWBqwdWG+hLzppazawJE9d/bf3qvm7li7WrBq8eyK5oTE689d3du39/a7KzcXkm0dTfE8q9cuLpoaHDGzbC+ycre3tX9t4f85q7uszemHlw8H3Wwl+PP9Fe/vGUec0dLZMI1qVwGIOWiAd8wzuI3JiQ21KytlTUNqKYaikwdgtj3tpS1XE8U6pTX5Lr1cismKyk7QJqhUer6kLqeZj1RlasVJNjir1Q247soG0EC9sQCrPpFp82mC31zT4/skGtVTbm1PIwtbajh/qcLocummGlHDyLcYUzriy7PYX6WfUS+Lu6xAUJzYvU+aLmG+vhlNKX7tr7Er9w/TfwQveS8h8/4xcee8WfSPjpe7f96NnbNrR3rAzE4wGlec9zP73tf3XEj+O9Xx2746c/qdbr6DCvHSJTmL/oLMkeFm1ATzHMKCGWZFEtPACvMALjbRQxOF+LI/Q4mRVTS1Uq4QKsKOOI3UWzzmTWRTuRt3QGGgnoME0hgHtfLSSjJEKHhPDesIYOhed0ZsLKG8qb4Y0hLPZgeUvpGJab0dX01qGIsk/I5wU6FBmaA8/RSDiMGAhzf8+C39vL6rDU6j5iM2htGZeBZh2UN2glehVnU+4u/5kz063lD4WH6Ta67eHyR5Sz043lPyt3062cWfka/ygNKt9XXuYP0OXKy8qRcnb7OppSSuu2Kz/hfkxnKW8pB/kXaFo5qPwG7QTWwmCtk5U4yLgCGFuiEqSi4rklL5Xxw8iwxgXLk6oDHdqHNSz70P5wwKlarPMLsnyroYR1VMCOHHx7bQLrjUjBgHVaOrU4xQVYmAdQjaZLgi8pS5KU50dOA9ODZwRoUSpX6ge12F+B1JJ6ghWOWBkDU25EZi+YWKcN1C/SM+WAGEIrY+3KEFgNHi4VuBQyeNU/Vm/D+KeZhMnFjIMcjIOQfSIs0KCyDwaogiU5OBZeAPkp+ICRhusEuwf9i4agaD1c69A0hcIsguBxwDVmV/3hasHiWYECK3gNYELTcS5gophLxlKczT+iGvDnNT/avPlHyqfKO8qnPxJXPPj6B68/uEI90G9LtPUivvCZh+CMM5x5Cg7KQ/QNZYVyYgVRa8W0qD+A7MTLZkUoYe4ea0StCbkGa4sKts9MO6koWo6c3E/J/pNlwoopEWBgWPI04fepZZRn6FhDGkkbuapaQRnDqpJirBmVVCwKSqo+AVxQ0BiSrJRQl6RyOxNRtZaSA8qqcWMMAoZKxQmY5CQTPPDJkKWgZYSXDRbsKYa/4tVSukzKwV4irQb5QGb9oIeEdOdkqrJwIJIBFkYuAoABQ/iU9Gd4FogbZcG7iFtyRyLpCFhVCYQS/j6FZ/E+x566KB2JuBUCz7jH1WpVxtxJ7quOOZOQ0ykspjl3rNnzjvWcYXVV8ELDR19CYCCn4yY5NVJo03wit4+QYlt7CtHAMBzTYzhAqwFma4pEWya0MubLmEG+Erl/Sp2UfzLnpS4Pb9eBzo6CQbb9YyKBKaK8089zkrbd7W7SbXzq8+nF+VwcRzmNEcjWpIPnaYHUnkW3asQzQVIkSyaTqWQ6OVKlZFOiEOpIpVgx3kSgoi9RbEl3p6DFD6yRmYLYrS1R6MpDS3upkJsG1+cS/YJxRG8CmeV8cK+5VBACeLRguLzQ0gbn0VKhFQssohZmFNNdcJ4qFTon4ZEVWRS0eTifWiroe/E4NmEz/ikf2qCVh1f1+Hnnn0d56Tx/5yc7Kk+qas1zirDHtzP/mw7SQd31uusBVxDaw2WxAis5lWKlINVFAmaqtbt0UQrqabDW3tVB7/jd4fCGyOFI5DDXfDg8FDkcDh/+nbLzghV0sD29UL0fPhwZCh8un8Sn8JF34H6SjKv/tsGvzWcWx4VzzDStl2laNdbtVvVrM9abYmxbI5gsCDkMiE5IwYUlmaac3CQOU1JjUFVruodLejnw8iiLbcep1YLV0xaCzFxRiZvpf0mK+PXv73z9wfCZwmmhv6I1d37/64oo0f/avOJBjlf2Ysk02FlWOsef1Xc/WVvtvZdVzVXGEDh3DMHKGA7jGLy+84zCKw4TR00Dq5ezygYcVpG67Syy/I9GxWMd/j8e2a2c9M8Gp6iMcPb4JpDhceMLM10WTBa9TIt7W8A5bGaRgmY/qOXK2FvHjb0Fo4koTnIgWYyyGEQ0DJ9qieJpCxa3RMcoFEPpAwrJQk6OikVXE0vfua0FDdZO/P8j1ljE7Z8RrRoe+x+Q7qxYlgAS1KYn2uOkjtVYxpBLahKytYTJuWjFFrIFGUAvcMs9J8YlvMBLbMcclwd4pUbk670sgzNBPGQUrM0BptGjCC90JkeTH9c/YM2Ex4cDFymiCgCLCCqiPOCCZGcW0Cr4VDrO0ulzWrQ+axUQnbqC1tA2WrOGfqpor1D+Wzmu/PeaP9Jt81741fNz6U7lroff3vhCv1DJbu1nsEkg9NS67dvXKhpFs24bYMpTyl3zBwbm0R10+yOL5pc/VB8+yVVhFWDaKi0QzzYCLVIkzzxyoIBBpUA6gXUypNDcCi6GpUnMsenOG4nO7HJ7wpF2LO+VBWtRa7XlquME51LHBkZdZuqiUcr8TRqxZbFsAdUXkiEYsFEni76y8e77t2/fvW4LDEu586PbwhdpyEWj7Sf3t3UqbSY33sCB//k2ei0jyL5/u5QeN8FtddSX3h1fNB8/9yZ+rjyw/6RJaessH7k7juP/863KbUgTehk93tm2/yRR6w05ieHUGkIMHGbTDBS8B06ieWUE3mheUkbYmzLCk7Ov2TNErbdktQ416AvQsS+R+PzoCLzxeWl0hL2NjgDIPeuaPYMyLVUwXw1orHZyC8EqCUR5rmSyaGbCbDaBWIqOBjSkrNC8YAwzm8pkOg4uQbXm3AI8aivJtupqIcwa1LNEbSEBfGsBtFHkAkEMo7vsWMMzQV37YgDGbcPFMJwhx9zFcAVcahyIeMf/U7O0RDWczGwi0OzPUAQeZJRUrB5aOGxAJIJY7DRxoxlkWVWpTLiRcn78C9oFcxpxHbN3hHrB57kXcDAxgGtFeaqpwdbfHKFv0jeP0N+UDx8+JNyoPF1+n85VDnEuOodyrvL7aL9Uv0aCqTWSVpaf0QGVQMQ11fovdLaFEq6IKegxYEYxHm3gdLggBiuWJOQNaRTr7UF1CPCFoEUUcFHU8v8xPx+1iQFXwhgoWwpE0ZHhySm4AyOEMeJ6mnKeB3IoqL8FNtcj2hH4nJ7VqeFnhSzNoozgSwJHbWQUGQ01VvsqbmCVMg/f4ZMjvKTkR+EbMCmg3ivX4XvFR4Rvhm/1MVTGw4gNTNeDx2VE+eWJqEZyKVv0gz0m6kBxSRgu1ygzl64ssSGOszU6tsahF6tHCqbGFKsf0TN30YZpX7bogZ4o6G3AkipSNldX1bDCqka2BgIoPBYIEtkyAH+aC8EpAE03dfgtHAlRsuXAFvivVtacJuC+HztG99KFtOmnm06TXyjfUSKchT2CU6OW3hyjq18Bv4ls+qnyH8r3lG3HqEDfoEt/gWMgYHt1f9Q9xWhdX/FG7Uy7m6HjDQk0b5iLiGRpD3W6qBM9aFvKVu3q/G3LuI9zDz44ifv7sm0HP/kjd0NqOK38helbSl7eK7x+8fTpF38a2/uyhi2tGz1c1a38WG2JlURInFxKEHg0lIoNGLMnDU4wryDoTSU5jnHI1lJloaAZhbpo1uBD5loMBCcScssJuU0NAbW1YJi+IaBhtqapGUQ22qaWUfhR7zpd6AlGWcESVwnJsaVLWlZKlq36ihLt7KdTnrv5/WXhOUORHQ/sP3nl3KHw1of2nwQu/3m/8pPnbv7Dcko5NiGgY8l3j69ZHh6aG9l2cr+yZmhOeDs6lthI6TY2I6SyPoytdYpiVWIEC+2wUNtaKlrZUiYr5jhgCnxqBfpY9KuJrU1DBXZGbemZI88K0s1NoLY07gjaHrtYqG3G5CFYnAYW8NKLhRq2nqbWigqM5tSot2h3+s6sWGKxr1TFvawsaQKu5ghbjgfdB80jwQGvlE8QPvB5VPK4TIlTlyepLuXzSjdecQTvlCW2ZI/VEgFH3qNFeTERJ8w3Lj1D7ewaVwRhV7EUKOSC3YJDEmpzLBdWAUV2LYavquVXVKogoOULlPXK+gUHKwsHxxDPB68tUIbovgW0pPztKN5U7doqtGuat1E9oWJx0SC3SnqbjqB7IfikEY6sKiN/wqTqsb/qukLvuJWqmoqAj4WBcF3VmQWDevIxUV+0srL0zPs4/0EkIfAfqsE9ISkbS0UjW+ZmBHsma6BBNU6+khxKFut9rGy/CW5Zkyz8x9YI8rmCrx6OQXWNoDUb9YtRTOpaXWIkxFGxGSQ3k+aiolPAikmdi5JrN/yOk/4wa8GvDx5SfvM4L9le71sI5zT0ONwRyIPUteF3ZekPfT+4UlY+jCmnvCfojPJRDp/74TqZ2mJU1/y68sOjDyrvb/idmqvhgaYCrsF0VOmEQS0hUdCMLROkkoDqG4lAqnYIJwHp21KN5ejUaJhepQmWWOE3oJY2jH1RmNkgAQwQLrvE4NooOptobQa4vJ5o/h2+0cbQ680Ew0IupjyaWG6kOYlrHUHu/EkMP9eqS+W04wv9zpQqqTIXUIFtuFqkVCtaMeVeCCBaaPI2I48WeBfc0Zsd9erSg2GDyd6gJuCBwxCwd6Z7aNJL7SYaiFRxrKFyb4Du3KL8N/2qNDL41ae+OohvrVsf3rr1Yfpo9Q6f5/b3KM1gMcn6yiODgzSHD21VpLF7Z9klXKGcJEhTdYWykfEtx9Yp47pkdSlyQUMA7uiNcCZUlAPFhXb+RnpG0aMx5NlS1zL5yxkdz401KtLZGt6g4rbKOmnVk6hGRu5ns13L1mm5U3IOy/2wii6Qkqew7FU+Ibem5GklOcJW5iRY700p6Dqu5+1UNcf4gAgMZpgTm0IhVxJtiA8DIXBmwRhUoRujHZNLwwZzTy8+MFldK6oGPAqTu2DgWAOlclcF1zEuCzr8maC1Gj38zNE6DuHZxq8qPwvtAbbBSEaEQbdx/y8ah/suomxhMb4wFoIQ8FNQRYAGRx9jj9PIWYc32GF0XDBErS8FzIXx6kaSIGhVeLY4iGeGhTdgRpQ3ob1sYhoXjUgJK/3RvGN0sbIiiyW7wPtMVXKe0r4hne7o7i9fkji6bf9Jl6tSGcjtO77PE9x9dNUVu07u7+lVF6Gjjsc8hqBG/4GHopH0VLVcz26mJhoFRwKj4y/SOXPe7z8+h3rhOOdYv5KjByg5cBoRpQ/vHu9/f84c5Z3+1/rfn83NUnL8L0+TA8xBpYggNeia6VAn69g4eVVlVMp1q7qiast5Nd5bjfKqueXXNB9q/hVUtHtsbaohoSJBXHYqa9SkELosUabelO8spR8qtqV0Ka5KXzqo2BTbIF0K9sRGX9NK7LuA6bPUD5+KQuOHS5XvoH6iS5fyI+xZ/BjLK+S12H/0LtEjghbAlGB/yiMCAOE8O2PPoZ3K43OAvQ3sgxz4V3klzxMuXwYva0TJj9WU89BJsNciKcIFTDOgUYGRATxOXl2gTkFDQzc/5zmQeVTQ6lL2qp+gkdi2DVZWG43+ri6ByAP9ARa6YQj5U+gjR9RSX2RGC15oJC05a6+H80VJv4/UL1p8HSm2Wr8o+iei4AqJoj2UxjbAeo5wBtv0iWJ9Sxe2GQAkTshhW22i2NTGIql1paKnHSOpFJUHOVEU1L0i+FJRazSxM+b9Fe31TXhlKxWdbi87YzmRYkhVGcFSMYLR0yRmSABQFtNd3UkWQC12TuqBs8K0yn4SZ4Kenw2C/k+uOSL94z9OOnsDijL5f7tmLMGxXBPLC6EOnsryQiD5jVgXUN2zomlc+bJYjeGDFkX470Gbh1Ere+6cTFoggstXqgaCw3X9akoNa43VXTVUG0HUVBuuYNpHh3gyOj5vpfZPC7IcIV8i2JlACZExgqEIA0N6QDwqpGCl2MU6G1vgb0ZdFlXXkyN2kuuSiJSM6qYFLFeMdcahBAbyCj4jrivTaDm1ulgWwGQTIxN0meKlXIdYSo1+G2gGADLYAL8jmDl7yKExe6hu/wC+Jg5VGj/4SpoOvQK4f5qwPSKYaIyRYX/VDWLxDbXOBXNaDVg/ZgSPIIUOokNdx2ms5u60NZhrKWq0SAANNcSKWg3Lm2OBE4AXK9xvKFVXdfrtBD32CMFpwxH4K0c0Mspbb50mbylvsTlib4L0nvJIu/IXWtdOL6XrKAtFoE1Sj5X1AES1Mc0wW4tJMYKrV7zgtqWq1sb7WWsDM+Q/ARPBZiHkB1tbE0G85I0AePL5Q+ih8GKxkQVd/qEpwlL/gIYdKNBbq/2MVcK9OBRpiA5RhrsBFIG29/nG2yi1YBDe1PGcsZkBXA/sYwPxgngki16Gtr1sIF6E4z6LOkRco6AuTfD6YDAuwvpfoM5/2ntM6TJ7em7PWXcRvimqZf1sr1VOw/xnJXZjAI18NbNcGuaR4HYemAUt1rLitloLkt42tsXI+OScheHaosWMD1rAg0a3i+XdipzRipEvtuYC49UCNurVRtwKRhZVAdHhJGRFA9o6DEVjtyT0cDAIFFEugpPyG5yKfShj/ze5MJ4/Vn6D8dFYHlcgRtJVHYdRtcM1n+l2JRKFPZQ56JVRI46JKmXOgOhHg0PBcPEqHZHB4Uri1LUm3JiMiaAFZxIMIjhwmTRKlzY1TguCX6BlmsRWGjZqcVeWehYNMTKoVDCCp1VwNuTOKEMxGNDiogsH6IZORISRdBYjflhfwKrB8qPq0gsebMfoKxlVGX6KGkJCLZC9J8vWIZEDulW6VeAXd+K8Rlh5VqcahckCxDkhd5TkDgurJnWzzGqhg8e0vEZfO6EddVpaHLaE6tjSEbf1sOiob2oOshhIEgTtsIf4Qy24x4ncKQ5TTT1uqCGbrYe1xjqLzaX6KVmsZIpmNZ1ZPusCzJZ18U5X2IV1TjqXLqzV2XRYzhjVRW2RqKaq9w/8Qa//wyQ6MdHtuOOl6ZbpL93p7ErRiZNYs/Jq21QnNBv001+6w9GVUl7lIgyFcX+sNnYnzvcwfony6qTKd0M7Z6yAN/6s/ZfYbKo7MLnHrNnYnkYudQcmnDkXOG2HcQcm0c6o4jYj9bQ6YnWcswsT27EoS7U22skWEJ6zG1OSth2/9QvlGbPK3NFZyvHjt52zL1PyuHJ8Fnf0izRVnrHrtuO07Zx+byIon+D9mJn3Y8QobKW+pIJHm5jmr2Wrprlk0cjKHI2o6o0WNAg65vagodYn2Rh16MKZbKCQRLFgBqll7ipu08SwLC41dWDyyFLBxdUCNNQvAsjvKGK/is0+zA5azLOi/yKQU79gJqu/arjOyDBivCZS9dnVgJWgUv6Mz872E2ABY9XJQcj4qRqPIWNxAO/ZsYPq15XGBRFQflSPX40zs32OJLZfGa5P01U+VMGo+AmbGsmFIai/qwLWcZ/lznyWRw0w9lnKdoFSd9ZSt3Eqs2+o7PNExu/zRKr7PPGUbVSir2KuaZW9Sf7/oS46DnWdKWQaZeuEkTAV+IHICm+cUmGXhpzKjIu9Vvqo4q4bSLEJ+/j/iLx045DX58CuELDkIU6jFZqZ1J0XcdmqiMtf+Xd+xFXdb0tSR3n6rJFzn4VcZdx4ipkBtbDr1HjUdbYsukgH0yF2dY+PsRmqT7C949REkA7tvFkEg5T7nD3b+JQYPHfftiLrV2xk5LMqgn+PdWYU+nlWf8xj/bGx/piYZR/fH5Or2p/a8/VnfHj+3P58+0zs5rM9EpLj4zfj+4R5zytZnxIlrLv2sB2R1OwnatumUrGJ7UHSZMNUugWjkyj+uIFAE+CGw7yxtq6NmamI+LRBMLfGO1JqbVmqOpbW847Fxcriseod/3loCivlqxX0wYD1c8fJrfzymkiju74+c0Gj+2XROmMgHF685KuHas87dP74oT6L2Bhsagy0trdNywU8dkd7ZtKkhZunTTuTsmBreNWcBagrm8jyWgA5VKEDXvPRt1mC6O1znsWkEjwrsN0GcZdB+rbiUz/B8l7VfBnm5KzECTKJ1HawiJcJdD83tilbTRJj5hgXRtWQsvltNGhLRYM2dp6iPJzDbw/SxYMgBo4TMWmkcgmC8Ue41LCYdBmVAOKlsYtKXlHViaCy3Jir7bRGQmYajQgfW7Zwt3G3bbH8XHltyyOPbFFe09yhPD9UfpC7Yoh2/0kc+vrXh0Tmz5C19KTuAW0zKHgD7h9po1nepmbvMPlrW0s7Xj927HW66WNKPqb3vE4TyrHXfykQJbeX5mhu7+iyHoH0jD6+l75IX9yrvFipSQBtVcknNpAw2U5QNtwsWNhUwhC6L1XZqC6IMUJW82hEzizogkkgYBMjoAYVGior/GiTutGFP6lmhDGn35zAckhAB00YDMWwaDAMZzyXY1un0TBLYxrO4wenRBUL+3m2V4dWrdYcq2XK9Et0rNBCzXxKSiXxiVJXfaqfZir7iJw+z7g96B2q4/aoK8e9bJRw7VYLg21qvVGjG/dt1KGf5XZVh2LyIMQ38Ll/NpjM5w+CZUP/Yfel8/S7mZB/8HsYYYt+3i9upBb6/EXKvsP/8FdnKB/RF/AptjdeRe40oNu9LP6vHxfx1luBCryWVGoxUIR5MD1J4hCjcRrEXY9YGQOmawC37ZvzzJrTiDlYXQP+Q/yg4KaGyvF9c+YqUiWeWJUbN8uhYozdlMBELylwtZWlJoazfoee5yfO/tpxuSIeaJgmiIlslV1SixqhGgVgOsFXRT5+/E2NwPYnqSAgMclWt/ApdEDjPG7pwAr0grlUz8a+mZv7+zfPRI5Tz/o29qRyiB5OEQzvY5AaX+Wxs7G9ZHCvUZE4SD/zqNT6aFoqaulYUIIf22NSrSwQ1FwOAPOCoAPDoDfWmK02dT2GbMqNA4tZrMhvpv5ohDn80J3TmObhydYtZbJlK88qCFiUCcgGfw9vhT/+YUrO8vccIDPziGrRCzXOJMv56FXBEU7IzlJRcGJnBeysU/UYakrFGrZFVg0AHSZOLmdVnCpoDNwCH/HQ8ZhMXS+AzEvb6OO0jVU8Eqw15TD8TBm/SjDdMMWV4o9+PsOwCcbpOMLipXWsx0sYDjaxPVvVdQCc2mWgo4m5CyZ1m1bAXm7MjmtUsddYWTE6KThMIq5rkJ0iXMqeSjhbZAubdGyVUzCcQssZo5nKEbswtC83sPbobmVkBFO4I2oxCoLbfUNLZ0UfumT3UUwBS8waYn2Q2ucapHANm38OQ7cFXp9Sly2o2VGsAZ7i/NP7rAaYi8v6uMxZCgbtJ7iTJ6/9hB/meL2hUgGMFM6mbMGsXxfkUzpOapE+klroCDtwhEXRykSq1gVJDPtj5Kx3XDU4VavBAZnUlHBr10oG0QYkqqFqjZ5GLBhMqB9FARFIbS43lluMUp6r4grE+5iJUfIjFVTNPACJy4+UV1EfPYMNNGx/D+Q5DUNxDsD+VlLdv7gpUUm12ERXVufCGIorymQzG3VlRcqyttID7z7wAALWBx54l66FkcIRrh94AFrQMuMlrsiAw+i7WHOjEPUTgsSeY/VWGN8fOW98P4V1VyP4bzSv5gzgUs80JuBvbGW3Vewi5FndFsfqtli7nozm4S4V8pWaLg7zHaIAjfj6WCL/F8P1u2sAAHjaY2BkYGBgZjjy6Mpmh3h+m68M8hwMIHDua+N+ZJqDgQNCMYEoAHf+C1gAeNpjYGRg4GD4fwNEMjD8/w8kgSIogBUAY/wD9XjaNU+7FcJADJNNCvq87MMOvEdNxRyq0mWH1GEWegZhACz54nvnj+yTzvGDLQ8gKr8iEQDBRDKqgmqZMMq7/y5kd/UdCLFiC+ITZiivaz6fR0er6d054SksUgzmU3qFEXdFzV2Ez8Ywlc/m5Pilsr2VWitP/bGJ4wvDWi96P3Not+n2B3lgIYIAAAAmACYAJgAuAJIA3gFaAaABrgHkAjoC1AMkA4IEUAUiBXAFzgYgBw4H7ghiCPYJsgp4Cq4LCAs2C4AMHAyiDiAPnBBAEUYRvBMwE7wUHhRaFIYUshTcFVAVgBX6FpYXXBeSF/AYYBkCGYgaBhooGkoa1BryGyQbQBtsG5Yb+Bw2HLAdLh1yHYYdsh4cHjYeYB7iHyYf3iAgIFIgdCCaILIgxiDcIPAhBiEkIegiOCK6IxAjeCPQJDQkbCS8JVIlriYWJjomWCZ2JpQmoib0J3QnvCgGKJAopii8KQApIilMKcgqJCpiKpwqyCsUK2QrvCwWLFYsnizgLPYtBC0SLSAAAAABAAAAgAC9ABAAAAAAAAIAAQACABYAAAEAAYEAAAAAeNqNkr1OAkEUhc8CmmBhRSysNtFCTfiXqFBZiIkaQzRqZ7KaBYz8CStg4/PpC1j6EJZWfjMMwSCFmczOuWfOPffOzEpa0avi8hJJSZ/MCfaUIprgmFb15XBcZW+qSWjTKzu8pLF36/Ay/IfDSa173w6/aS2WcvhdudiOjlXTmXwNFaqvgR7UVYe4wOzC+AqIX1hboMiq/qpHoEhNUN0yESjUWPd8e0RT3RaaiNFTWVnGyI6MGuw+s5qKDfgWGSa3Q42QmYXtwabxD/SE0vi0YTZUdRWP/tTb5nTGw/Rq/LrW74K4QTVznr6KeOUYRVV0pVPd6By0KC89l7lI489prufu6Xe1mi5hJtGMbaKMnN+Q/bzdy2iPb4UTB3rE02jqsOae7nirjEp27uNR0MG/+j+BD21Xh+y24Qf2tjvcQYjr7CUnPVStm09eYLPycKb/Em9Zoq755u2fk2Pd/QGe+3ARAAB42m3S1XIUURRG4VmDBHd3d5k+Z5/uBIdAcHd3CRI0OBRPyCshmRWu6Kqp/6brm9qrutVujTy/frZS63/Pjz8/Wm3ajGEs4xhPDxOYyCQmM4WpTGM6M5jJLGYzh7nMYz4LWMgiFrOEpSxjOStYySpWs4a1rGM9G9jIJjazha1sYzsdKhKZoFDT0EsfO9jJLnazh73sYz8H6OcghxjgMEc4yjGOc4KTnOI0ZzjLOc5zgYtc4jJXuMo1rnODm9ziNne4yz3u84CHPOIxTxjkKc94zguGeMkrXvOGt7xjmPd84COf+MwXvvKN7z3DQ4OpDPT/3YGq03ErN7nZDbe4tdu4vW7fyCa9pJf0kl7SS3pJL+klvTTqVXqVXqVX6VV6lV6lV+lVepVe0kt6SS/pJb3U9bL3ZO/J3pO9J3tP7oy+X7uN2/3/0Amd0Amd0Amd0Amd+Od07wi7hF3CLmGXsEvYJewSdgm7hF3CLmGXsEvYJewSdomkl/SSXtLLelkv62W9rJf1sl7Wy3pZL/RCL/RCL/RCL/RCL/RCr+gVvaJX9Ipe0St6Ra/oFb1ar9ar9Wq9Wq/Wq/VqvVqv1mv0Gr1Gr9Frul7xuyp+V8XvqnTyb1UoNRm4Af+FsAGNAEuwCFBYsQEBjlmxRgYrWCGwEFlLsBRSWCGwgFkdsAYrXFhZsBQrAAAAAVLP0T8AAA==) format('woff'),
          url('font/genericons-regular-webfont.ttf') format('truetype'),
          url('font/genericons-regular-webfont.svg#genericonsregular') format('svg');
     font-weight: normal;
          url('font/genericons-regular-webfont.ttf') format('truetype'),
          url('font/genericons-regular-webfont.svg#genericonsregular') format('svg');
     font-weight: normal;
@@ -33,6 +33,7 @@
        width: 16px;
        height: 16px;
        -webkit-font-smoothing: antialiased;
        width: 16px;
        height: 16px;
        -webkit-font-smoothing: antialiased;
+       -moz-osx-font-smoothing: grayscale;
        font-size: 16px;
        line-height: 1;
        font-family: 'Genericons';
        font-size: 16px;
        line-height: 1;
        font-family: 'Genericons';
@@ -94,6 +95,7 @@
 .genericon-reddit:before {          content: '\f222'; }
 .genericon-stumbleupon:before {     content: '\f223'; }
 .genericon-pocket:before {          content: '\f224'; }
 .genericon-reddit:before {          content: '\f222'; }
 .genericon-stumbleupon:before {     content: '\f223'; }
 .genericon-pocket:before {          content: '\f224'; }
+.genericon-dropbox:before {         content: '\f225'; }
 
 /* Meta icons */
 .genericon-comment:before {         content: '\f300'; }
 
 /* Meta icons */
 .genericon-comment:before {         content: '\f300'; }
 .genericon-bold:before {            content: '\f471'; }
 .genericon-italic:before {          content: '\f472'; }
 .genericon-picture:before {         content: '\f473'; }
 .genericon-bold:before {            content: '\f471'; }
 .genericon-italic:before {          content: '\f472'; }
 .genericon-picture:before {         content: '\f473'; }
+.genericon-fullscreen:before {      content: '\f474'; }
 
 /* Generic shapes */
 .genericon-uparrow:before {         content: '\f500'; }
 
 /* Generic shapes */
 .genericon-uparrow:before {         content: '\f500'; }
index 3cd56649f291c552e201eb64fb8d8c8e8c094dca..bd8f8fac95ee24a4b4dfda64fc783e4d53d129de 100644 (file)
@@ -15,7 +15,7 @@
 <!--[if IE 8]>
 <html class="ie ie8" <?php language_attributes(); ?>>
 <![endif]-->
 <!--[if IE 8]>
 <html class="ie ie8" <?php language_attributes(); ?>>
 <![endif]-->
-<!--[if !(IE 7) | !(IE 8) ]><!-->
+<!--[if !(IE 7) & !(IE 8)]><!-->
 <html <?php language_attributes(); ?>>
 <!--<![endif]-->
 <head>
 <html <?php language_attributes(); ?>>
 <!--<![endif]-->
 <head>
index 98daaec1f3e231616df8374347aca1dcca3295fd..4e7fb82ac22beddf294191747ba7f855eac29ab6 100644 (file)
@@ -28,9 +28,9 @@ get_header();
 
                                                <span class="entry-date"><time class="entry-date" datetime="<?php echo esc_attr( get_the_date( 'c' ) ); ?>"><?php echo esc_html( get_the_date() ); ?></time></span>
 
 
                                                <span class="entry-date"><time class="entry-date" datetime="<?php echo esc_attr( get_the_date( 'c' ) ); ?>"><?php echo esc_html( get_the_date() ); ?></time></span>
 
-                                               <span class="full-size-link"><a href="<?php echo wp_get_attachment_url(); ?>"><?php echo $metadata['width']; ?> &times; <?php echo $metadata['height']; ?></a></span>
+                                               <span class="full-size-link"><a href="<?php echo esc_url( wp_get_attachment_url() ); ?>"><?php echo $metadata['width']; ?> &times; <?php echo $metadata['height']; ?></a></span>
 
 
-                                               <span class="parent-post-link"><a href="<?php echo get_permalink( $post->post_parent ); ?>" rel="gallery"><?php echo get_the_title( $post->post_parent ); ?></a></span>
+                                               <span class="parent-post-link"><a href="<?php echo esc_url( get_permalink( $post->post_parent ) ); ?>" rel="gallery"><?php echo get_the_title( $post->post_parent ); ?></a></span>
                                                <?php edit_post_link( __( 'Edit', 'twentyfourteen' ), '<span class="edit-link">', '</span>' ); ?>
                                        </div><!-- .entry-meta -->
                                </header><!-- .entry-header -->
                                                <?php edit_post_link( __( 'Edit', 'twentyfourteen' ), '<span class="edit-link">', '</span>' ); ?>
                                        </div><!-- .entry-meta -->
                                </header><!-- .entry-header -->
index f22ef18866b5278db99e4ce0c8be527ff3314987..523db8096652795a5de389fbfa62923bb7ecb3e6 100644 (file)
@@ -111,6 +111,9 @@ function twentyfourteen_admin_header_style() {
                line-height: 48px;
                margin: 0 0 0 30px;
        }
                line-height: 48px;
                margin: 0 0 0 30px;
        }
+       .rtl #headimg h1  {
+               margin: 0 30px 0 0;
+       }
        #headimg h1 a {
                color: #fff;
                text-decoration: none;
        #headimg h1 a {
                color: #fff;
                text-decoration: none;
index 3f9dc411a4f519c77d2ceff0d0abf8ce556bdcdf..ccff4cace41b6766ac28809c6161fbd3c53e1558 100644 (file)
@@ -106,7 +106,7 @@ class Featured_Content {
         */
        public static function wp_loaded() {
                if ( self::get_setting( 'hide-tag' ) ) {
         */
        public static function wp_loaded() {
                if ( self::get_setting( 'hide-tag' ) ) {
-                       add_filter( 'get_terms',     array( __CLASS__, 'hide_featured_term'     ), 10, 2 );
+                       add_filter( 'get_terms',     array( __CLASS__, 'hide_featured_term'     ), 10, 3 );
                        add_filter( 'get_the_terms', array( __CLASS__, 'hide_the_featured_term' ), 10, 3 );
                }
        }
                        add_filter( 'get_the_terms', array( __CLASS__, 'hide_the_featured_term' ), 10, 3 );
                }
        }
@@ -151,46 +151,39 @@ class Featured_Content {
         * @return array Array of post IDs.
         */
        public static function get_featured_post_ids() {
         * @return array Array of post IDs.
         */
        public static function get_featured_post_ids() {
-               // Return array of cached results if they exist.
+               // Get array of cached results if they exist.
                $featured_ids = get_transient( 'featured_content_ids' );
                $featured_ids = get_transient( 'featured_content_ids' );
-               if ( ! empty( $featured_ids ) ) {
-                       return array_map( 'absint', (array) $featured_ids );
-               }
 
 
-               $settings = self::get_setting();
+               if ( false === $featured_ids ) {
+                       $settings = self::get_setting();
+                       $term     = get_term_by( 'name', $settings['tag-name'], 'post_tag' );
 
 
-               // Return sticky post ids if no tag name is set.
-               $term = get_term_by( 'name', $settings['tag-name'], 'post_tag' );
-               if ( $term ) {
-                       $tag = $term->term_id;
-               } else {
-                       return self::get_sticky_posts();
-               }
+                       if ( $term ) {
+                               // Query for featured posts.
+                               $featured_ids = get_posts( array(
+                                       'fields'           => 'ids',
+                                       'numberposts'      => self::$max_posts,
+                                       'suppress_filters' => false,
+                                       'tax_query'        => array(
+                                               array(
+                                                       'field'    => 'term_id',
+                                                       'taxonomy' => 'post_tag',
+                                                       'terms'    => $term->term_id,
+                                               ),
+                                       ),
+                               ) );
+                       }
 
 
-               // Query for featured posts.
-               $featured = get_posts( array(
-                       'numberposts' => self::$max_posts,
-                       'tax_query'   => array(
-                               array(
-                                       'field'    => 'term_id',
-                                       'taxonomy' => 'post_tag',
-                                       'terms'    => $tag,
-                               ),
-                       ),
-               ) );
+                       // Get sticky posts if no Featured Content exists.
+                       if ( ! $featured_ids ) {
+                               $featured_ids = self::get_sticky_posts();
+                       }
 
 
-               // Return array with sticky posts if no Featured Content exists.
-               if ( ! $featured ) {
-                       return self::get_sticky_posts();
+                       set_transient( 'featured_content_ids', $featured_ids );
                }
 
                }
 
-               // Ensure correct format before save/return.
-               $featured_ids = wp_list_pluck( (array) $featured, 'ID' );
-               $featured_ids = array_map( 'absint', $featured_ids );
-
-               set_transient( 'featured_content_ids', $featured_ids );
-
-               return $featured_ids;
+               // Ensure correct format before return.
+               return array_map( 'absint', $featured_ids );
        }
 
        /**
        }
 
        /**
@@ -203,7 +196,6 @@ class Featured_Content {
         * @return array Array of sticky posts.
         */
        public static function get_sticky_posts() {
         * @return array Array of sticky posts.
         */
        public static function get_sticky_posts() {
-               $settings = self::get_setting();
                return array_slice( get_option( 'sticky_posts', array() ), 0, self::$max_posts );
        }
 
                return array_slice( get_option( 'sticky_posts', array() ), 0, self::$max_posts );
        }
 
@@ -312,7 +304,7 @@ class Featured_Content {
         *
         * @uses Featured_Content::get_setting()
         */
         *
         * @uses Featured_Content::get_setting()
         */
-       public static function hide_featured_term( $terms, $taxonomies ) {
+       public static function hide_featured_term( $terms, $taxonomies, $args ) {
 
                // This filter is only appropriate on the front-end.
                if ( is_admin() ) {
 
                // This filter is only appropriate on the front-end.
                if ( is_admin() ) {
@@ -329,6 +321,11 @@ class Featured_Content {
                        return $terms;
                }
 
                        return $terms;
                }
 
+               // Bail if term objects are unavailable.
+               if ( 'all' != $args['fields'] ) {
+                       return $terms;
+               }
+
                $settings = self::get_setting();
                foreach( $terms as $order => $term ) {
                        if ( ( $settings['tag-id'] === $term->term_id || $settings['tag-name'] === $term->name ) && 'post_tag' === $term->taxonomy ) {
                $settings = self::get_setting();
                foreach( $terms as $order => $term ) {
                        if ( ( $settings['tag-id'] === $term->term_id || $settings['tag-name'] === $term->name ) && 'post_tag' === $term->taxonomy ) {
index d1f9bcfcce6057d4b145b5e4817eeaa32fd0ae2c..bea908914732b8bdddaf390275703718c98939ab 100644 (file)
@@ -12,10 +12,15 @@ if ( ! function_exists( 'twentyfourteen_paging_nav' ) ) :
  * Display navigation to next/previous set of posts when applicable.
  *
  * @since Twenty Fourteen 1.0
  * Display navigation to next/previous set of posts when applicable.
  *
  * @since Twenty Fourteen 1.0
+ *
+ * @global WP_Query   $wp_query   WordPress Query object.
+ * @global WP_Rewrite $wp_rewrite WordPress Rewrite object.
  */
 function twentyfourteen_paging_nav() {
  */
 function twentyfourteen_paging_nav() {
+       global $wp_query, $wp_rewrite;
+
        // Don't print empty markup if there's only one page.
        // Don't print empty markup if there's only one page.
-       if ( $GLOBALS['wp_query']->max_num_pages < 2 ) {
+       if ( $wp_query->max_num_pages < 2 ) {
                return;
        }
 
                return;
        }
 
@@ -31,14 +36,14 @@ function twentyfourteen_paging_nav() {
        $pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link );
        $pagenum_link = trailingslashit( $pagenum_link ) . '%_%';
 
        $pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link );
        $pagenum_link = trailingslashit( $pagenum_link ) . '%_%';
 
-       $format  = $GLOBALS['wp_rewrite']->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : '';
-       $format .= $GLOBALS['wp_rewrite']->using_permalinks() ? user_trailingslashit( 'page/%#%', 'paged' ) : '?paged=%#%';
+       $format  = $wp_rewrite->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : '';
+       $format .= $wp_rewrite->using_permalinks() ? user_trailingslashit( $wp_rewrite->pagination_base . '/%#%', 'paged' ) : '?paged=%#%';
 
        // Set up paginated links.
        $links = paginate_links( array(
                'base'     => $pagenum_link,
                'format'   => $format,
 
        // Set up paginated links.
        $links = paginate_links( array(
                'base'     => $pagenum_link,
                'format'   => $format,
-               'total'    => $GLOBALS['wp_query']->max_num_pages,
+               'total'    => $wp_query->max_num_pages,
                'current'  => $paged,
                'mid_size' => 1,
                'add_args' => array_map( 'urlencode', $query_args ),
                'current'  => $paged,
                'mid_size' => 1,
                'add_args' => array_map( 'urlencode', $query_args ),
index 61c1160ae6303afe3fcfaf63b1677827c2da6632..9bd1e79efd4b194433324b3df8af53db433792a3 100644 (file)
@@ -47,7 +47,7 @@ class Twenty_Fourteen_Ephemera_Widget extends WP_Widget {
         * @param array $instance An array of settings for this widget instance.
         */
        public function widget( $args, $instance ) {
         * @param array $instance An array of settings for this widget instance.
         */
        public function widget( $args, $instance ) {
-               $format = $instance['format'];
+               $format = isset( $instance['format'] ) && in_array( $instance['format'], $this->formats ) ? $instance['format'] : 'aside';
 
                switch ( $format ) {
                        case 'image':
 
                switch ( $format ) {
                        case 'image':
index ea656d8077e8c93808d9e12e496f3bab4eb2d78a..7eddd83ef3750f71e7b298e81f18b06b197ed60e 100644 (file)
         * @link http://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/
         */
        _window.on( 'hashchange.twentyfourteen', function() {
         * @link http://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/
         */
        _window.on( 'hashchange.twentyfourteen', function() {
-               var element = document.getElementById( location.hash.substring( 1 ) );
+               var hash = location.hash.substring( 1 ), element;
+
+               if ( ! hash ) {
+                       return;
+               }
+
+               element = document.getElementById( hash );
 
                if ( element ) {
                        if ( ! /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) {
 
                if ( element ) {
                        if ( ! /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) {
@@ -88,7 +94,7 @@
                                mastheadOffset = $( '#masthead' ).offset().top - toolbarOffset;
 
                                _window.on( 'scroll.twentyfourteen', function() {
                                mastheadOffset = $( '#masthead' ).offset().top - toolbarOffset;
 
                                _window.on( 'scroll.twentyfourteen', function() {
-                                       if ( ( window.scrollY > mastheadOffset ) && ( mastheadHeight < 49 ) ) {
+                                       if ( _window.scrollTop() > mastheadOffset && mastheadHeight < 49 ) {
                                                body.addClass( 'masthead-fixed' );
                                        } else {
                                                body.removeClass( 'masthead-fixed' );
                                                body.addClass( 'masthead-fixed' );
                                        } else {
                                                body.removeClass( 'masthead-fixed' );
index 3cd1327ef1c7f12b3de8199b6a71d85b333bf6b7..cf67030582ff6fea4e8d5f6efedf466933949460 100644 (file)
@@ -2,9 +2,9 @@
 # This file is distributed under the GNU General Public License v2 or later.
 msgid ""
 msgstr ""
 # This file is distributed under the GNU General Public License v2 or later.
 msgid ""
 msgstr ""
-"Project-Id-Version: Twenty Fourteen 1.1\n"
+"Project-Id-Version: Twenty Fourteen 1.2\n"
 "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyfourteen\n"
 "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyfourteen\n"
-"POT-Creation-Date: 2014-04-16 18:29:37+00:00\n"
+"POT-Creation-Date: 2014-09-03 00:45:47+00:00\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -141,7 +141,7 @@ msgid ""
 "searching can help."
 msgstr ""
 
 "searching can help."
 msgstr ""
 
-#. #-#-#-#-#  twentyfourteen.pot (Twenty Fourteen 1.0)  #-#-#-#-#
+#. #-#-#-#-#  twentyfourteen.pot (Twenty Fourteen 1.2)  #-#-#-#-#
 #. Author URI of the plugin/theme
 #: footer.php:21
 msgid "http://wordpress.org/"
 #. Author URI of the plugin/theme
 #: footer.php:21
 msgid "http://wordpress.org/"
@@ -202,7 +202,7 @@ msgid_plural "%d Articles"
 msgstr[0] ""
 msgstr[1] ""
 
 msgstr[0] ""
 msgstr[1] ""
 
-#: functions.php:488
+#: functions.php:491
 msgid "Page %s"
 msgstr ""
 
 msgid "Page %s"
 msgstr ""
 
@@ -244,18 +244,18 @@ msgstr ""
 msgid "Display Site Title &amp; Tagline"
 msgstr ""
 
 msgid "Display Site Title &amp; Tagline"
 msgstr ""
 
-#: inc/customizer.php:35 inc/featured-content.php:408
+#: inc/customizer.php:35 inc/featured-content.php:405
 msgid "Featured Content"
 msgstr ""
 
 msgid "Featured Content"
 msgstr ""
 
-#: inc/customizer.php:36 inc/featured-content.php:409
+#: inc/customizer.php:36 inc/featured-content.php:406
 msgid ""
 "Use a <a href=\"%1$s\">tag</a> to feature your posts. If no posts match the "
 "tag, <a href=\"%2$s\">sticky posts</a> will be displayed instead."
 msgstr ""
 
 msgid ""
 "Use a <a href=\"%1$s\">tag</a> to feature your posts. If no posts match the "
 "tag, <a href=\"%2$s\">sticky posts</a> will be displayed instead."
 msgstr ""
 
-#: inc/customizer.php:37 inc/customizer.php:102 inc/featured-content.php:410
-#: inc/featured-content.php:419 inc/featured-content.php:479
+#: inc/customizer.php:37 inc/customizer.php:102 inc/featured-content.php:407
+#: inc/featured-content.php:416 inc/featured-content.php:476
 msgctxt "featured content default tag slug"
 msgid "featured"
 msgstr ""
 msgctxt "featured content default tag slug"
 msgid "featured"
 msgstr ""
@@ -272,7 +272,7 @@ msgstr ""
 msgid "Slider"
 msgstr ""
 
 msgid "Slider"
 msgstr ""
 
-#. #-#-#-#-#  twentyfourteen.pot (Twenty Fourteen 1.0)  #-#-#-#-#
+#. #-#-#-#-#  twentyfourteen.pot (Twenty Fourteen 1.2)  #-#-#-#-#
 #. Theme Name of the plugin/theme
 #: inc/customizer.php:99
 msgid "Twenty Fourteen"
 #. Theme Name of the plugin/theme
 #: inc/customizer.php:99
 msgid "Twenty Fourteen"
@@ -302,43 +302,43 @@ msgid ""
 "\">Twenty Fourteen documentation</a>."
 msgstr ""
 
 "\">Twenty Fourteen documentation</a>."
 msgstr ""
 
-#: inc/featured-content.php:431
+#: inc/featured-content.php:428
 msgid "Tag Name"
 msgstr ""
 
 msgid "Tag Name"
 msgstr ""
 
-#: inc/featured-content.php:436
+#: inc/featured-content.php:433
 msgid "Don&rsquo;t display tag on front end."
 msgstr ""
 
 msgid "Don&rsquo;t display tag on front end."
 msgstr ""
 
-#: inc/template-tags.php:45
+#: inc/template-tags.php:50
 msgid "&larr; Previous"
 msgstr ""
 
 msgid "&larr; Previous"
 msgstr ""
 
-#: inc/template-tags.php:46
+#: inc/template-tags.php:51
 msgid "Next &rarr;"
 msgstr ""
 
 msgid "Next &rarr;"
 msgstr ""
 
-#: inc/template-tags.php:53
+#: inc/template-tags.php:58
 msgid "Posts navigation"
 msgstr ""
 
 msgid "Posts navigation"
 msgstr ""
 
-#: inc/template-tags.php:80
+#: inc/template-tags.php:85
 msgid "Post navigation"
 msgstr ""
 
 msgid "Post navigation"
 msgstr ""
 
-#: inc/template-tags.php:84
+#: inc/template-tags.php:89
 msgid "<span class=\"meta-nav\">Published In</span>%title"
 msgstr ""
 
 msgid "<span class=\"meta-nav\">Published In</span>%title"
 msgstr ""
 
-#: inc/template-tags.php:86
+#: inc/template-tags.php:91
 msgid "<span class=\"meta-nav\">Previous Post</span>%title"
 msgstr ""
 
 msgid "<span class=\"meta-nav\">Previous Post</span>%title"
 msgstr ""
 
-#: inc/template-tags.php:87
+#: inc/template-tags.php:92
 msgid "<span class=\"meta-nav\">Next Post</span>%title"
 msgstr ""
 
 msgid "<span class=\"meta-nav\">Next Post</span>%title"
 msgstr ""
 
-#: inc/template-tags.php:104
+#: inc/template-tags.php:109
 msgid "Sticky"
 msgstr ""
 
 msgid "Sticky"
 msgstr ""
 
index cebe6435808b6a3ac5765d88f6e457bb64294468..d88aed580dbbe8b5dbed824bfd650055803fd659 100644 (file)
@@ -4,7 +4,7 @@ Theme URI: http://wordpress.org/themes/twentyfourteen
 Author: the WordPress team
 Author URI: http://wordpress.org/
 Description: In 2014, our default theme lets you create a responsive magazine website with a sleek, modern design. Feature your favorite homepage content in either a grid or a slider. Use the three widget areas to customize your website, and change your content's layout with a full-width page template and a contributor page to show off your authors. Creating a magazine website with WordPress has never been easier.
 Author: the WordPress team
 Author URI: http://wordpress.org/
 Description: In 2014, our default theme lets you create a responsive magazine website with a sleek, modern design. Feature your favorite homepage content in either a grid or a slider. Use the three widget areas to customize your website, and change your content's layout with a full-width page template and a contributor page to show off your authors. Creating a magazine website with WordPress has never been easier.
-Version: 1.1
+Version: 1.2
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Tags: black, green, white, light, dark, two-columns, three-columns, left-sidebar, right-sidebar, fixed-layout, responsive-layout, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, accessibility-ready
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Tags: black, green, white, light, dark, two-columns, three-columns, left-sidebar, right-sidebar, fixed-layout, responsive-layout, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, accessibility-ready
@@ -863,11 +863,19 @@ span + .edit-link:before,
        font-weight: 700;
        line-height: 48px;
        margin: 0;
        font-weight: 700;
        line-height: 48px;
        margin: 0;
+
+       /* Nav-toggle width + search-toggle width - gutter = 86px */
+       max-width: -webkit-calc(100% - 86px);
+       max-width:         calc(100% - 86px);
 }
 
 .site-title a,
 .site-title a:hover {
        color: #fff;
 }
 
 .site-title a,
 .site-title a:hover {
        color: #fff;
+       display: block;
+       overflow: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
 }
 
 /* Search in the header */
 }
 
 /* Search in the header */
@@ -1003,7 +1011,6 @@ span + .edit-link:before,
        background-color: #000;
        border-radius: 0;
        cursor: pointer;
        background-color: #000;
        border-radius: 0;
        cursor: pointer;
-       font-size: 0;
        height: 48px;
        margin: 0;
        overflow: hidden;
        height: 48px;
        margin: 0;
        overflow: hidden;
@@ -1018,8 +1025,7 @@ span + .edit-link:before,
 .menu-toggle:before {
        color: #fff;
        content: "\f419";
 .menu-toggle:before {
        color: #fff;
        content: "\f419";
-       display: inline;
-       margin-top: 16px;
+       padding: 16px;
 }
 
 .menu-toggle:active,
 }
 
 .menu-toggle:active,
@@ -1369,6 +1375,83 @@ a.post-thumbnail:hover {
        background: transparent;
 }
 
        background: transparent;
 }
 
+.hentry .mejs-overlay-button {
+       background-color: #fff;
+       background-image: none;
+       border-radius: 2px;
+       box-shadow: 1px 1px 1px rgba(0,0,0,.8);
+       color: #000;
+       height: 36px;
+       margin-left: -24px;
+       width: 48px;
+}
+
+.hentry .mejs-overlay-button:before {
+       -webkit-font-smoothing: antialiased;
+       content: '\f452';
+       display: inline-block;
+       font: normal 32px/1.125 Genericons;
+       position: absolute;
+       top: 1px;
+       left: 10px;
+}
+
+.hentry .mejs-controls .mejs-button button:focus {
+       outline: none;
+}
+
+.hentry .mejs-controls .mejs-button button {
+       -webkit-font-smoothing: antialiased;
+       background: none;
+       color: #fff;
+       display: inline-block;
+       font: normal 16px/1 Genericons;
+}
+
+.hentry .mejs-playpause-button.mejs-play button:before {
+       content: '\f452';
+}
+
+.hentry .mejs-playpause-button.mejs-pause button:before {
+       content: '\f448';
+}
+
+.hentry .mejs-volume-button.mejs-mute button:before {
+       content: '\f109';
+       font-size: 20px;
+       position: absolute;
+       top: -2px;
+       left: 0;
+}
+
+.hentry .mejs-volume-button.mejs-unmute button:before {
+       content: '\f109';
+       left: 0;
+       position: absolute;
+       top: 0;
+}
+
+.hentry .mejs-fullscreen-button button:before {
+       content: '\f474';
+}
+
+.hentry .mejs-fullscreen-button.mejs-unfullscreen button:before {
+       content: '\f406';
+}
+
+.hentry .mejs-overlay:hover .mejs-overlay-button {
+       background-color: #24890d;
+       color: #fff;
+}
+
+.hentry .mejs-controls .mejs-button button:hover {
+       color: #41a62a;
+}
+
+.content-sidebar .wp-playlist-item .wp-playlist-caption {
+       color: #000;
+}
+
 /* Page links */
 
 .page-links {
 /* Page links */
 
 .page-links {
@@ -2248,8 +2331,8 @@ a.post-thumbnail:hover {
        margin-bottom: 18px;
 }
 
        margin-bottom: 18px;
 }
 
-.widget input,
-.widget textarea {
+.widget-area .widget input,
+.widget-area .widget textarea {
        background-color: rgba(255, 255, 255, 0.1);
        border-color: rgba(255, 255, 255, 0.2);
        color: #fff;
        background-color: rgba(255, 255, 255, 0.1);
        border-color: rgba(255, 255, 255, 0.2);
        color: #fff;
@@ -2257,8 +2340,8 @@ a.post-thumbnail:hover {
        padding: 1px 2px 2px 4px;
 }
 
        padding: 1px 2px 2px 4px;
 }
 
-.widget input:focus,
-.widget textarea:focus {
+.widget-area .widget input:focus,
+.widget-area .widget textarea:focus {
        border-color: rgba(255, 255, 255, 0.3);
 }
 
        border-color: rgba(255, 255, 255, 0.3);
 }
 
@@ -3261,8 +3344,7 @@ a.post-thumbnail:hover {
        }
 
        .full-width .site-content .has-post-thumbnail .entry-header,
        }
 
        .full-width .site-content .has-post-thumbnail .entry-header,
-       .full-width.singular .site-content .hentry.has-post-thumbnail,
-       .full-width.home .site-content .hentry.has-post-thumbnail {
+       .full-width .site-content .hentry.has-post-thumbnail:first-child {
                margin-top: -48px;
        }
 
                margin-top: -48px;
        }
 
@@ -3349,6 +3431,12 @@ a.post-thumbnail:hover {
 }
 
 @media screen and (min-width: 783px) {
 }
 
 @media screen and (min-width: 783px) {
+       .site-title {
+               /* Search-toggle width = 48px */
+               max-width: -webkit-calc(100% - 48px);
+               max-width:         calc(100% - 48px);
+       }
+
        .header-main {
                padding-right: 0;
        }
        .header-main {
                padding-right: 0;
        }
@@ -3589,8 +3677,7 @@ a.post-thumbnail:hover {
                margin-left: 20px;
        }
 
                margin-left: 20px;
        }
 
-       .full-width.singular .site-content .hentry.has-post-thumbnail,
-       .full-width.home .site-content .hentry.has-post-thumbnail {
+       .full-width .site-content .hentry.has-post-thumbnail:first-child {
                margin-top: -72px;
        }
 
                margin-top: -72px;
        }
 
@@ -3655,7 +3742,7 @@ a.post-thumbnail:hover {
 
        .site-description {
                display: block;
 
        .site-description {
                display: block;
-               margin: -3px 0 21px;
+               margin: 0 0 18px;
        }
 
        .site-description:empty {
        }
 
        .site-description:empty {
diff --git a/wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.eot b/wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.eot
deleted file mode 100644 (file)
index defbbe5..0000000
Binary files a/wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.eot and /dev/null differ
diff --git a/wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.ttf b/wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.ttf
deleted file mode 100644 (file)
index a21dcb6..0000000
Binary files a/wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.ttf and /dev/null differ
diff --git a/wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.woff b/wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.woff
deleted file mode 100644 (file)
index b57e62c..0000000
Binary files a/wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.woff and /dev/null differ
diff --git a/wp-content/themes/twentythirteen/fonts/genericons.css b/wp-content/themes/twentythirteen/fonts/genericons.css
deleted file mode 100644 (file)
index 2fde399..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
-
-       Genericons Helper CSS
-
-*/
-
-
-/**
- * The font was graciously generated by Font Squirrel (http://www.fontsquirrel.com). We love those guys.
- */
-@font-face {
-       font-family: 'Genericons';
-       src: url('genericons-regular-webfont.eot');
-}
-
-@font-face {
-       font-family: 'Genericons';
-       src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAC98ABEAAAAATZgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABgAAAABwAAAAcaBk2X0dERUYAAAGcAAAAHQAAACAAjwAET1MvMgAAAbwAAABCAAAAYFFfaIFjbWFwAAACAAAAAIcAAAGayK6UdGN2dCAAAAKIAAAABgAAAAYAfwEJZnBnbQAAApAAAAGxAAACZVO0L6dnYXNwAAAERAAAAAgAAAAI//8AA2dseWYAAARMAAAmfwAAPpi5AaxsaGVhZAAAKswAAAArAAAANgMOxuZoaGVhAAAq+AAAABwAAAAkEAMH3WhtdHgAACsUAAAAcAAAAM5JOTFAbG9jYQAAK4QAAADGAAAAxk3HPlxtYXhwAAAsTAAAACAAAAAgAYoBJW5hbWUAACxsAAABZgAAAwhJCWWYcG9zdAAALdQAAAFwAAAD3pfLCKFwcmVwAAAvRAAAAC4AAAAusPIrFHdlYmYAAC90AAAABgAAAAYLT1HIAAAAAQAAAADMPaLPAAAAAM3t18IAAAAAze27zXjaY2BkYGDgA2IJBhBgYmAEwkQgZgHzGAAIdQCUAAAAeNpjYGZ/zziBgZWBhdWY5QwDA8NMCM10hsEIzAdKYQeh3uF+DA4PGL4ys6X9S2Ng4GBg0AAKMyIpUWBgBACF8guRAAB42mNgYGBmgGAZBkYGEJgC5DGC+SwMFUBaikEAKML1gOEj5yfOT2KfOb5wfpH8ovnF8ovnl5CvzP//MzAA5Rg+MXwS+MzwheGLwBfFLwZfHL4EfGX4/1+BmZ+Fj4+Pg1eeR4NHiUeaR5SHn4eTOw5qFw7AyMYAV8DIBCSY0BUwDHsAAB/OIGwAAAABCQB/AAB42l1Ru05bQRDdDQ8DgcTYIDnaFLOZkMZ7oQUJxNWNYmQ7heUIaTdykYtxAR9AgUQN2q8ZoKGkSJsGIRdIfEI+IRIza4iiNDs7s3POmTNLypGqd+lrz1PnJJDC3QbNNv1OSLWzAPek6+uNjLSDB1psZvTKdfv+Cwab0ZQ7agDlPW8pDxlNO4FatKf+0fwKhvv8H/M7GLQ00/TUOgnpIQTmm3FLg+8ZzbrLD/qC1eFiMDCkmKbiLj+mUv63NOdqy7C1kdG8gzMR+ck0QFNrbQSa/tQh1fNxFEuQy6axNpiYsv4kE8GFyXRVU7XM+NrBXbKz6GCDKs2BB9jDVnkMHg4PJhTStyTKLA0R9mKrxAgRkxwKOeXcyf6kQPlIEsa8SUo744a1BsaR18CgNk+z/zybTW1vHcL4WRzBd78ZSzr4yIbaGBFiO2IpgAlEQkZV+YYaz70sBuRS+89AlIDl8Y9/nQi07thEPJe1dQ4xVgh6ftvc8suKu1a5zotCd2+qaqjSKc37Xs6+xwOeHgvDQWPBm8/7/kqB+jwsrjRoDgRDejd6/6K16oirvBc+sifTv7FaAAAAAAAAAf//AAJ42q17CXgb5bX2d2ak0WJbmtFqy5YsyVqc2LESrXYWRyQsSRxCICFrgRCWNC4FwlYopUxZmrCFXrhNKaQkpC3Q5aczckLa5nJxKf17KYjlwc3llrZ/0+dpWVp66b2UQmJN/nO+kRyFpKX3ea5tzfLNaPyd853lPcswYE0/sxiTBCYwiVlVJjIba2Fu5mVB9kmmsYwGVc2S0eScZq1qSlazZzRfTnNUNX9Wa81obVXQ2jOa5WCF2Vuz2axmq1ZsFmffWNkmOmjb4ujTbLLugz4tWNVdnmy24gvSdZ/s6NM7oI/NnAWFmP9kHwGnU2PAjjJBrakWVlMF9SieC0xVoelj1PdMALxqw1+kwcsWMM2Z0dxVzYsTxHn6kJiDOGOtTdYVnI+tqvuhT1faFM+YxeEUE8EhpnvdeAaSjeHZzFlM9iSiFo8sWKIJ5gtki/lUHNiLcCHsgQtffNHYZZxv7ILsjokdOybETPPgiy8KO2l0B7HYwlRQbaqkcu76WZjdxHmLcwtntI4qTU2sjjlFn71Pa6lqdpxtpGm2QZxtZ1XrlHUPHklVvRvn3QaKR7c7h4a0oKIJQ1onUiH63DhvzaNoVqSlI6x49rYieUCDPqUiWKWhISTLqyS9MW9MISZ7ZJbLMpn1xAW5GA3IUlRF/vK/D5GrZbD94IcgGYd/+IOtB8B54IDxPqgi8fsom2SW6O4NxleN7caHYIOrwFar33KA0ywwe7NMLSSadXtrLkdC5ciSXKFQtWVBkzMaO6hZssgFTZR1O3A2SFmtRdZb8cRdpRVjNHOcdf2Tww/y1cDpGLjHncDo1NwazLw0qTIGNCQR/wU8UfDUgl+wokDRNTpUUWbaWJ6B5uJTwXlZq2MOK8MFcVZJjhxV3Y1cdzLFg9zWrQ7ci0MkvXlkm98n2RSrMoBPOwTDh+7dcpRtudeq7jp0aNfnnu2tvakKD/Q+i/KJEmxr8ISBNwa4DIBzF5Cd9Z2gktTTh4lwqyBaa9JNXB/72HKmKRnizLQMygNo/VxGbFXSsCSyqbuqz8A5Jm2Kp+wULS7FF2jvjMW5YE9roUEmtrn8wfZIrM+U7/x8CNokXzcEsvwongEHBMFbKmZxzOeGdKmYz0Aq7ga4dWTb+m2p1LrUaBIPRiZG1oMMo+uMHQNb6WRkZNu6rfXLwnsTI1vXbUuO4mkKD0bwXje/V1hKJ3g/PqJ+mdGqsHEbrYGH9bB+psUymjen+askGK05rr2JjNZ+UAtXiVCmW2RkfwdS0IHsz8WyAb/ik3pioPTEU1CKZYsFxRzrw+XevcHCNuxGSS0bZXXDbpG08fHXaEQ1yiQJ/CJujTKM7zY2qK89DuqxEVqHhvxYUY7D7Iy6ZeRaam9oqRdXoKOum3a0Ik637CfF8yp6IDyESwAoO09KjtY2j7eDsx+lGKeXLObTpQigBAWHIZ+iY7/PhQqF/5TLcwE5Vpgzp7DujLPOOmP9mosGVswWGYn0EfyMEO+Ld++8u7jujAMvHzhj/dq3b1n96D1zyO6Qnc/bUQvZJvYppl2S0c6vatNJ60D7JJfzYlUrynonkJTrm3HmRZxjZeTM5WgntE7lSavsn3vquRu5BJ1/CRoceSNemK6UW5zeMOvtz5cXr7qAiLR69sYTyZlZTpeS97BELmthHr/MrFKqkC8W8ulhC22EVHoAXIItlZZsA6IbpKDk90XEoGRzwQCkByzp6eCCQDBiCUZsxZKPVCudYHvACze+/ArcCJ49xg3G84k4nHbmDeqq0mbJaXd7LW25uReVrrvzzutKG4czTufsmZtLq9QblhZau+avWR0VHOF4MWxp7XAoIdERDsXbQGzzdCeK884ZgHjCeN64wcJehs/hw/cYfzJuf8XQa3/YZOvusDx79i1zHN2LRp+46pEt7t5FF8wCweKZlYwJQiw5S5EE4b6brt511ROji6L2zLo2FwyWLG09ne2CrSXkQdq6B2OiPdTR3RFwis7s9Zb2qLRJCNDa2GjD18bNOrnUz0a5Ws6uYZU2xvq0VJUca3dVGzTX62yu6zKqhKyfheu1IEsm6RxcsrNQF8pt1tY2S6CrO9E7ozBnEV+v9hRpvIN5pw/PLy9YvpSWqVvZa4eu8Bw6HvRUYplTuUNoB1ywKK6XjKYRXZ3o8wSLrJRKt6IBCCRKQlpiEIhlS4IoMW/AO2wppRI9cQkiQrBoCQppl+CNAH7HU0p8g1YKduLH+41vGO8YtxsX4+edxDWX3QTffUMuG783tvw1+gy8d+c9Y88YfwblNVi070Dse782tr1/6c+k3WfetXna5439P4iqsDwQTkvfhqWfDX3xjCf/utI1e3145wvtxh/F7InP/wb+X2HxY8ZL11eheOZMdVW2/UuBRQMQev9c48CRB8eXQz/ctsR4xbr5UeNRYXZ0eEHi8/fJtSvDuZWtMakTwmNDF4waezofMH72lctg5fhAXX/G7cxWZlnGlEAuWkIJDeSyuJuHIjoAhXwpYLGSfOeygWCxJNnogyLrhFboiWazkPzdHf/e298zVPin8VWbV10y9DA8A0LL+0+s3TVn++cyd3zu2pWfFzb+zHjTuP43xiNwk7RX2HOzzR1+4wHrTOvs71+2ZeMzb7bNyjzx/unDnSM7VrhzN69LeB83njCe/9N2mp/KEFfYVJZmpzIykWgs41XNlSU/Ec1pgaoWMsWnF7HaQQJwCN0cMmIxLYj4I6dPQwEKIkTQQkPcvTZbUwWd0zyyr8FSqifuEsLQQ043nlJ3jFrZ6I4do8bvwdVq/L5vwaPSss3n37em3zBq/aM7yLfS5SO4FX4KlvHWuSX4L2fp/GtP/aMxWRsiUISekqnWN3DunWwZt6dBjgv82QoDAoisA6EjemN7VWtFiNCV0UIHNSFLcEnJVjpCdE9H0NFXCXXQYYghngybeBJnmR8WcEm6QUQpDVtiIhKjCOqv85d+59Ol0VDI9qOlOVjsMn5ijIvPQQaEZXdeXpZE0fh9+TRRcLxkvDK5X1xMKmqd4rEbkdsqdj7i4u1Ma8toa6taNKOnCohnuqr69Ayi35Umszc36eo81NWzs9ql1cq8S2me85YiWZfK+kYcRwUeRf7PIwV2kAJ7A6vXX8CVN7qWlBrsDubz9gwuOv+CjZeSznYpewP9i5deTMcrPfq0WaS9HtlTRO0NoPZKqL0p0l6QvNlctjgfigHJJtnAK6LZLQYD5lgEzMFhoZAno+vgEhwknbYACXgqLULRg/YaZdmmbn8XlsJlsPTd7dvfNfYa/2zsfTd/+AVDPf32cDB5WU/c73X5+mdBSrvpXJ/b57v9rNSnenpkL7jlvlnQs7xD8QXbfYLXKkutVrsoLhsS7Zcbbz30svE1OOvKa+78gih8AFv3/8dG6zxxyUf+Dx4Jwh+NGy+2hHeCyyqI0B0XrcLkVwQF1tiEeBScNOjtCAg4+jC0njX0idjA2kLcEnF2trS7AorPObQKLrni2cNfjQ1IVuGx2vZRuPr1l8Z6p2990MTmU+t7GlvLLmE7mbY6o/XmtMVVkj+EpAsRbuU0X7Wy0EdLuDCCS9iBMnmpuc7ZOgSL45KGsloCLXe2Ek/QrfFBlMpNuMY2ROtjouv09bRycaXstLZEpvUtGFm56kK+3otXo99lfaejOdZFFx7bBgbJBy9U9oMc60nM+cRG7lq9Ci0PuUwIxqWeuFgwNTYMMaVHiflNWEzaiy4XXa0dr5f4Ya4Ui0viMATRt1qDtK6oyd5UMYhPCkgoHepN1Ug4GuqOeBZ793/FVPGjjEdcCPdR2a3W8+4Ve9wJb1hR7ANL965bsXtr7ZGbf3fa0C/UlUu8qxJzw2GbDWp7z912iv/eG294KuBXb7zpOfg9/O5mcd5QbG4yDBbpFLIMPH7gj57E/9IVuPeJTwmh1i6l09fud+ZPn3PP/i37Z27fePjr524G6Gib0zErPqsjnJTtl1iKj/yHxfK7r+8et1heZoTNECRJy6Qga8UoJs3OZeQ3oxhHZBDTcMPHGhiZoj5PVUtmNY8JelBvyQDaEPTobS5kfacHTWGU9K8dYyfZnUylTaTmC8wBRJUDgPYEIycE7kq+NAy5rB/Znefm0VaIgXr2KbBwhbB8wcJzZLBhWPRVsNvl03K3g/2xO7JnD8Zl4wPr9tlnnTV77pnLjuwXOybfgAMzvL2DY8Ya+On3nmzvT3VceZxMdrEoK1G8iBYH0W+sD83MTB44RaMHFa2Y07wYq8haCGkd5LSGq2R6wrIeQQpjVS1mSmZfVeuT9X7T7Awh1ZEwN/taTNHbgyhqcY9WGNL6FH1mkdBqFC/rvQUzXmx2C4iw/zFuTLkJ8gPA/gHWNDuOHZbrP45PwL6DQGo5YqhT2HdZJUC4yZ3RplWJQxIyZAFnSKGqFWS9CylH3xiXKUbCIEpfiLti6IfDLe8uYf4+p0vrQC6O6z74UEuNj3l8KW9fBbfRO6N39kiokkNsr8fXEUoN0A80HWvlEOhdBVTa4NA8Utq4UpECM+lohkd3TyNuzpyG+t/CuodNLUb3RAA54PH7BAvGLGkB7XE6VfLWsQQPACSy1miEGfHT70NFtRFKTqeE75zx5Veg7wkNMi9c823j33560ffii+X4eV+2hff03nPpijXJea7gDZdc+4OLjLc/uOudr61Z4bHZZIetJ3DzrZY/fvqXLz58wQ3PGUfuft+47tB5ZePXQzfeX3zsRkE7+zN3HfjUObn7nhm66Evfh1lPHgTXRY+9fv39F/tD7fN622VHDqyNuMLErqvY7aziIr4j1Fic0QarWrfpA1dz1idR22Q9h5xeWtWWyvrpeDSnqs2R9ZAZc6xBQVyaQ970ZVasJNt4urLfZfV2D54iL6fTOR49MJ8YGHBR9LESeboYow+Hk3lDyWm5OfOXfyTiIATbE08XSwhITfYNCMg/0e8LBANFFNJSMZVGLnN8QGxG7pfID6LUollFyIBLETw+4DBjgvvvXRJe1LV9+Z7anec/+tft9/zXtz47NLrJE7YIsmi1uk49Qx3f8tyh5TvOP+cib8usyBkLz7latju2eNslRKlPHBdfGOfj5097pl+zCUKFkf0w/9+umvj6xjO/8OjY2jtfnW53eR1lhzegLPvshZWtZ7/+xD//9cvXLh94+LrpC1Y/sKXvbK/XSK648M7rYZJR7Lxb2GDbYN2NEYWb9TJu93Jk8FxmYgXMbIasO5DjbY1EikcORItyKmqp73e/B2vee894XLi7fmD5rvH4e/VjvufrjnbbdjOGLglWYFoLZSE0f0ZTcL2TCIUoMu9sQatiG9L8SoVJXtIBXFy5O9pjCn4QpduLUYMnlwXm9SQTIg6gWJMrS4mkBZK68gbfJ8725fO+y75Wg8vhwlbZ+KNx122nlbfJ9iu3DC6e68vPemWt9nnrRZetNA4tfurpRcYh+Hf4MYiw3t5qrAg/8AlNA/cyWAwZr/2BLZQwrOffFOZjHgY0aZROT1UP1NNKUwYOBSIWHwCrA9RDuyxs16FN+icn2Sf1TYJKWUgKvCmrY9DQJr2dvA8DeI2pUi/a6zhGcpojgwYYtJ6M1nWQOBTI6glijUw5ozbyJjnFx90uuvJiSUHa0ySTCoHUHkJmiM1e+7+h0G0XnHfT5evXXP/FO5bO7VcU+Lax6qgyY+biJZ+y7KnddcOCU66Kdgd8gxBak+iYMfAgvAAd8JO71p43r9xznA/pYX1sDruF+xD0FpGMlq5qHRktntMy6BUoPapZZFRe0OZyxpjQNYoCYyrwtKkEJKUiczz0nEeZpihSFB/SpiljkXA/jyo7KS/D9I40LntnNNlLYxlFT0w7mSPB8D7HkzUxVEV0dBhPxRJ1iUyaTgYDkFQfoGoe503UkYKVFUaMd2VjwlhjTMjGu8Azb4eMZ4TukYJaGOGb4xzKKA2KbMHwhDEB/RPDC7qNZw7Rlxp3jxTQrAEup41JBkpKEGOTbuReGvk3gLE5aBnOHj9KvUzJay3C4V4vbqfcykzkS4cfqQ+0d0WJ+oSyV7IShguSPxiLJ6f3E+SjOCVfgmI2CMQPG5AYQGo+pL2gJMVgUhGDJTxOWxVryQHBArCw8K9KryL8azhcW6D4PN7agvBt3/xmQbAav33jDYg89tbbby8QrG8Yv4XIG7Uj8OVvigF4tbsdXm1pMWa0dxszogGjv6UFJgI7L7/ceNx4HPJPw+CDT0Ou9vTOnTtrcVjz0NNC19MPwpra05f/EhlBeTkmUV7Oz5qScd4MZfRNEk5IvyFUtJjRIeXbRneIqCL8FLeUT9uBz1UFJqkS5el7eOyHUanEobaAT2/N6G2kLw7GTQnPkwUR2ooIYYEUDh9SU1W1LI4fRXVESUckibpp5v8lmq8F0WA7owoFZelQ7J0H8em6i0/agXAFjqXzSaVrlEkbHRkZFfHUwFNLgc5GpnJ/NsrTdLMkO49rkZ9n7snPpbiFVTAoNRWmp6r1mLKBOpJGWYgqKAttFl8YF13v6FE8+1r91q5EksP+MArKPoryYslGweG4UM7jiwjZYQF9WNwFFNdSWvCKp8AKEbA+dcUVTxlHjN8aR55S1j/087d//tB6cwffVGH6OlH/yE14JDiO3YU7Yyf8wlhvHFyPfoTnyHFVGLKdRfiqoFlQzBqPJ6O1HKQ0vPcjy87yxWzAJ8UFdmgXoGWsMV4MwVXiZvIoE3eYZZBjfGxBrepnn25UQPooy1Xp66ZwqS+NkRXCd6GqWx1ZXg6woRebwbWutaq1yrqAnDX9GRmlRLUyjQItNi2M30QllDjjNYeZjkV1HKhPOFbI+flHgYbRQZePIZHfki+ioeEiHEcj3BMnKUJjjyQcYWgwuGGY5MYkFVJDqVQ+hYAPDQuKIKVgGV0X+F3r8qlUyGB4T6gpb1ynuci+0qC5kNHyOUrunUhr6aS0nkDWYB28drx7K4FXLT/g0nLjer/woTZjnFX6Z+QIpI7hPj8FUSUrCltXKt07bToXvoIb9Ssz9LHcycXmCOitwqLPJiL8HICS9+8zCVATxUBMFFRpRijUZbvsib/NLyEaFAQQrE5kW5cN7wedtR7Ht4YFzrAcRkJz2Hy2kO1vcLIroydm5nK8MDALuRjNVHrzc3M4EkPRKMyjmmR/Rh8s48gMjHtOwfMTmX5qE9MxTtCFKF7rruqWOO1lct96bz8ep6v69AHay9zO5wfxOFfVi7NpL+tzcUwq4/H8qm5fQPupBTvtY+XQi6Mifhr7v3X8tzivnuTn5Gwn4wmm1TyhiNo8TjDfrKkSjhDRAjJeHcJAV8mBn+w9r8YabBwVvszLV8a4StYdx0Q8KgNaU9UYN5qeRalvLwtT1g89SpDWkFtSs+Jp+taQaT+plhIiX2q1uGTynw5Fa0HJDVL5x0XpsDFgLY56LWtYyEYwTrIB96UDcKy0Caxu8q6A/1QN5avfv/bnDyWPVTYtI3WreO33v2ooKvznFesfEsRjZU3GTF0+NvcYu7Qx+wjP0tdpiJ9IQ0+dhn1EQyR6Eioiyhjzt3Tw/LxHcxBZFQj5eGb+71ElUp3871O2VVA/jjjDXOjj6ZvGxproS3Jb1ZOtRLiVjvQ6+irdETrsjqHZrdM+vYn2XqQ9SuqixbOVdC/dmk7it3rTdNhLCbT0FIf6SLuQQ5plSEsrlWCXTGFDyKNbXUP/m8yi1Jif0mQfxzQe56AS/AOsm8pjmXV+Bv12Jk2wNl7T6SMpwSjJU6VgIF33dbxhwqzehg82AexYvXobRllpUcT2CEeM05S9Toun2yzipgk+2Fz+rhj1J1CuJhwlwhUg1BB0AIGGtIh+P1tEzEghra1R1vc0AM/hS6AF+qHlYjhiSJcYf0EE/ZeL/wBXnfmT155dCtca9zz8m8t+MmKpo+ldHBZZGBzedPXVlxpWw7rpqqs3wWHjnmUrVpwJ18DVj5yzrPaOefMhoQGbmHWKF9RN0om8yLEyIyFBDjhMDuQzeoGAXvd0xVORu5QhvtxlJ7O5g6FwMjWDyomaxVORPN6hBp25bNDGCYOgG41RGnjqGlLeEqVLSpAuERt64l6g0mGPSe+OH33z3k1XIlnG3e9uS66zsnWTMw7t6i8a/a4QXSDC/7wNrucM2fGjC2DChZdNqi+4d+CcZfS91+l7tRW7DrmM/mJt/70DRP+ftxrbiCewESaK/bsOMbO2Iagch7agxRQIvTvA5qBWg7LBrWIZbSLfGOMiO/6c31Ov7fAcCz7D64Cph6hieXIcN2JZnRznm8lxBLHHnfN7GrlRwnQtaLFmsNsYZWcIxQWz2YqbK7PbhWqp+DvIUfKitu5Mcp/JdXoAIT/hPs0t6zLKKEaP3kY3jxaUMf6lwFDPoNzKiCYqQryHMthBH+UOMeTT2hXUUab3U7OK4KA1hEKyDh6tfkK0zb9mVMhMx8jdIgHJkQIQsGCTrO7VyIPRACENwlpHWYjcHI/i1BoTxmvl5g+OW9x5wm20NmjnIhjTfBlxLnozEf8g1kKjv9wPr8Pr++GXtX379lpuNp6svQVLjb1CEBYLwdrb3H+ZcQv1AbhYL8aD7owmHdRcVc0l6y1mRgvZpLdQBt9iB+QFxRsCLptXcQAP8KkHRCB/S9YDf4+iBbHwDid8OI6qZtXf4Fu0KeRheQwm4YxdiM0ZFCBYAn8Sn0geIAlo0ITy+LhQPsygauQkCmdyUBVYDpBbhpqrCpcaVajmcgYO5Wq87sFlY1wax39u57lzBorDUoIS6RR9VAzcxidJMMnCzdggrNhgnElb/Oa4qBrlST57XCB+rdZG23rMiE/Gp0Y5ShNRjhzcN2AE5iR9FymwkzjwJJ44iACTLdTiJSCYqPEQr6YSikY5rucytiIjfCxBnV22jO4KI6ZDAGfn4aM/owV4Ggr/kW73owibyNmNq2KuD6XDESamzPxXPW4RFd6mEMsL6VQCTxB6hhDZ5J3A+kE1Y5d34UmY9y/GYzdf9xnjxcf+G16GO2DkjS8Yj33yAFrPHxt3QIDfJ47A2n8xfmQs+vO3If+Zz9wsXARrv/CWsde41hh47ydwA8yHtgObOT1+pOcPtgHkO6U9zEhV5n1g7UhELEMZe5xlMVWCYQgEIYCK0YhYRdoTakTMuOyqNcIHQw89NFv465qrHvvwD8Kd3FzX/9QXtlt+ft7Checd6dv+AuzjYyYOhHq2g/O2nhsLoIUosBFG/rwXcTH5LdCKGS1zkDBuCeU6l0Es5unqtXFv1NuFy9g+pNnIZDvb/MHuWN/MPG9AI1c9c5YXtZiXBYKBbKmYT1O9wGJDQoKUm02UUB3ilNGm/Ffc1nBQKnxpxmnO2Eu3PXhNanMqmVzz1i3PGM+MGM/DA8m1b97yDAyPQMG40rxn55bUaOrHfJ0srDT9pj1XpVKp0eTaiye+W3vB3AMfvzqZguvrHXm8H4z3fKWpspKiYgEVyj3ViofXlT1+BCitVEZqFJDMxrQu3otGxvCYCbTzoJ/XkdzIkIo1lCI/5lP01m5qzkPv1ZGkEbuit0Qpld3qIWMI3BiS0QtEG8upmEubq4eivLNMIQlBQE2tdVfuvhKtmIo7OjM+JCgilslh3H7gwO2CuvzKK5fXw89njbl0JjC6UlN/QJjFxOAq3CcRznPhig8wLWBa+mBTzdpn4jI07rpPJpIsraYlqwMsn4QGLdVIIYNaR1Nrlxubjc3LH6s3AU6hp7dfXW6Mwo7laJveP0AXTR+5gXyk9Tdk2sjoBKFH2KD+BsYpFLFE1XGBbaAeOHKFdpqv2UcYaepKtdaVfyplRP1gxxoE7ewDZn6g3kV6bEs5KBH/v0Xl2lh/JiWLLBnd2ojV0FhbyAzSF6bsP02Y5tLbyJHYzCyT3WxipFQqPYGsnWPqQUmqkuHDJhm1JFLSapKCOMKMK4SynVn/Hz7Ry1HjLYzSLShc+PQubuG6MVCVSUZjWa0TPbLZDic1J/aPpSRN+YybgDLZSEa2Kp4WSkDFyUt3RbppPXUxiFfsbn87T9wqYw6Xz2xM8+JqEFAu5ochGwGfC+Kphno66tdWwLVXGn+B+9XxVfc/cf8q2kzf8vCWLQ/DnsYVsSzsGja60ZWxzfVbVq2CIbppi6FOXWuKPWy8G+oTZN+pz9HN89UdGZ4W7Gqkpu1ZElI/UthKVp66PnSZSriCDbGHFcnVRYnoc7fgoZXhYIcXjyx1lQPqujupOSU3JPLGUeo7bjalwtQ4zvhkltRhYq1677GJ/hvZige4pLTyXq5QThuikgBl2uM5bV6VcsjljDY9p51S1VK8cyfDe5ZdOSSb+mSLpoY2JymQ+DFB6UokgtQQU4lScgKPZMoL6XMpAzGnOuZwDy+gG+bIpBz1JIQ+ZxBZkc0NmRnoWB2LcQnt8ccKPQ3PKHxk72lCZd7mTu3jEJqoEpBRUxxuNf2ta8Jq66COboDnJ4h/R1DlEcFNPspvh9Rxu1/w3WRTgsKsRSEuohxyJ8swst6oKN5sReQGXHRQ97mI2JbLDVo2MtbVeoOQhzJ+ZqU1SO6JmiFyRCSSpu4YtdkO3P7F8zMHrtp1KBisVw8EdBzhntsPbLjkxkO7hheYjd1kS9GL2Cy8P5c6i9Op/Hwzpe9zgwvSCP4pY/1TWLLkrZGJJRDB/ZJXRowh2A1sN/X8QpSuToy8tWSJ8duRV0feWiwsMobEl4+y3TyoBMpIWymcspHts3E6RdPc1Et7DTvTyMWKZg62kXnltg5etb5j/T9oCkNTvauOjInGqC1Vs3JkHqMwI81No/Gt1fCO4V0Nq6nbe/Uqw2t4V8FqtNteeFVS+bNQ6EsQw2+lcfCd1ca3yLbB6tXiOL+XvsZz/WWJ5k8RIUUx1O8M42jna+MWRKdlfsTvI39Qpvs4YqYvChgTlY2yiPi2hpHRuFGeqj+LOEn0iwqr4Akus5hBBSc2YJQomo3fgNYdp/k37kMrQMbdbBFvYHuryl+F8PA6KsWoCDTtZtWAp1s4Sj2CcxSYWQ4kYZTpxKpK7Lj3J06Wufw+cb8iR2fmeBd8RYnNIsW1ZCq+RJ7GrNWKP1mgMXum0t47SGOOaqVj2hCNtWYqXf08u9lWrYRnUHYTyHiwgxht8PcvxGpFcrr4EY/YKr72LjrzViuBUIQf8TpFJWGajJ5qJUUZzSxVLWbieH5wbpYnNSvF2cN4pJ9Sf0fjWCLyo4nJf+RcYOrf/xHU41/qqLH/2TkXCYHXf3ithmzwfF6rQc3v5Oi6/h5IV1OJU2nk1amtsCPDXUkHZZp8QydUt+IpanVpuA2B7RgVzDIX1SPNN1W4ryDnTuPU2bQDRkU22VxLMucnoS6n2K0ca8erhECd1YozRabLaUfsacIRXq6ttHlpuM1NtizN+83dWXopoS1LbU5OM/Bsr2rtMtUiExlKvulRJ/WbWSXBrEBqFnSHzMkVXQM61dro/QUzI41xJAJR9AExf0/heJITU2Uy87UKjPeIVLWZ+HrpzMJ4oHiU8XcvuGpMsWFXIy3EcxKM5/apztTBFvG3dDw5CtL8KM0hXqsz62lSC9U/KlaJGGAFR19FstIhRsJ9BHw8LbzjvtOU0JiP2RBppRgtG1EQq+/JyRi/+tVR9ivjV3yN+MaivmE8MsP4b2ibARfAJtOPk08y9xzvYdxp+phuXK2VrJKiTpdIRuvINbxN5KPeBlcodhAXgq9CIoa+tiVFWCSSQuAVjSUoEhCVSidPlPxdV0TZgriV7zASHZWkj3glesfFUEdhFDi+RUCF1j4abfZRPDtJG5OeYz4zTv3CUU5IBNUjW4lEeWaXExJBQrSobJJIfQxm+0IkisQEGZ+/DoGPnT2VWbk/PXHmfLoE/QzTs3501qakUU2ynm9xoEW+jnsuK0f+qBz87bNKaxvNu1Um1nunXt1pLpjJHBNXZDfdKLc6+ii84bWwiuD0ULaK92VQjtlCg3ZzsBVwUDEVxEaLUFIc5OsofUzTUimSwBUQUsY6PKj9QjCxD3Dxf11I0vGjtV807JKZh7MwJ2tDSapTYuco12n6Y1fT9OtvQLWYhFjMd49a7PzdI01StFacLT8VhzSnYjaV0MskSVNccmnySICeTeSMFtjzz3MtwBFV4Gmb5+v4xdRFBa3l6Yzwtp/arUkLpVyTtcTYQ+IWx1sdc0r0VlQ7z2M7TfTtbEfRCHQMHTOaSk9cogYOP9qQIiHHVL5E2TzqDaCEXKE8abZxiOhjJl8smEbzCFkSlaxF6b4S721iu20bbBswTi3S+qOdzFYJD7urvFIqHtRmVrWZsp6n1lteFdVnilRSt9pbp80g25dXxuREG29DCXn2Kf72ru4enr3IokLuC7NYopfehdKKyhhY27vo0O3ZJznbZG/QjIVKKOCldMlaLImlIGK7UlAMBJNBavO3BW1Jyea1pal3w5b2ptLWhn/Y/abd/uZsmJWZ67/ruYXywufuDgzmYNZsPmy81D8/gMMO+8Ln7vIP5oyXhBRHa8IfGoNzMye7mR5ivDS7/mwcF5x1kCce9+4jX03z7cfQlNeDRvQQNN9+pJULYmC4j95+VHycKyE3cU+yMY//hDcgvT6Wy5ZA8kKRNyWe8CZkFvontn6udtqimnBgkTExse2EdyKzE8bEIuHA5yFXO+3GbRPQf8K8L2ekxxgluXmUhDTYGr0hddzaxT1EK++6FrIVp417TXIJTpkch82MDTsoUOQ02tDv6S4vtaIputtD4aCfe0Lz3VNqX/VTYUiu4+dEfU92yIKqMkkYse7b9/GdRDVSinMs7PDzTVEia+6jICzYxRp5ATOBZDE5fywvwN9LoDCAmcEQQcsjZn6ETeUaIsfnJxqPqzYlKkh/zKxCvc6KWs3nIPF+N1v9S3UsS9/wmllXJMH8vyawbfqucOy7IlmAqe8CfwvTfKvVfI2yxp9Qf8+SNb9nyRrvWYrAX3qyN7DZKfX3nP730Bk0obNjTUiTvPeYGFOHKYTA6MJhE55Z2eGpmpXI/T3N0cRnN7FKF83xf4jQbE0I7W/AswSK5F7BKlm6udadFJl5G8gsVv89OTJrvO+qmlQePY5y4aPQrIbrbHBPYDZlHW5GZ1Rzonhp/KTxUo5qT+P0O1k2YzA8tfO3N3GeNMovmzjDUua1K4HXrvi4nU2W8SpYyvW6lkDxo2LBQfp8oLL/D/oHFeoAeNpjYGRgYGBi8vVdNXdGPL/NVwZ5DgYQOPt29zlkmoOBA0IxgSgAVvoK5QB42mNgZGDgYPh/A0QyMPz/DySBIiiAFQBj/AP1eNpNTrENgDAMc0IHdsQ//MADnGKJRzrDQxzCxEScFolUtWIncYIHGX4AdgMjHAYQdDiNtkO8BZ2qmPAMXpNd8aPHEjX9f+mdM72D6T7L3+gbpBCrKuoapE6poQR6c2S/SFlte9qm71pdV5YXStwa2gAAAAAAAAAAAAgAbAC4ATIBeAGGAbwB1AJIApgC9APCBJQE5AVCBZYGhgdmB9AIZAkgCeYKHAp4CqgK8guODBQMQAxsDJYNCg06DbQOUA8WDzwPmhAKEKwRMhGwEdIR9BJ+EpwS1hMCEy4TWBPAFAYUgBT+FUIVVhWCFZwVxhZIFqoXYhekF9YX+BgeGDYYShhgGHQYihioGWwZvBo+GpQa/BtUG7gcBBxUHOodRh2uHdId8B4OHiweOh6MHwwfIh8wHz4fTAAAAAEAAABiAGkAEAAAAAAAAgABAAIAFgAAAQAAuAAAAAB42o1Ru04CQRQ9s6AJMbEwxMJqEym0YFnUNbpWFGiCSohG6UzALIuRfQgr4C/4ZfoDln6EpZVnZodIWAoymZlzzz33NQNgA+/IQeQLAL65UyxQpJViA5v40TgHV8w0eZSEq/EapuJB43XyXxoXsCN+Nd5CyShq/IFt40TjT9hGExdo4QomxvAwxAhPiBDSPuCOyJjo0H7jPSBKlCqrnhAl6BP1FJMQeZjikWdMa6bboybhiuGiwjVRy4JP7ytvWdEnP2CEjA1Zw+OukI3Jlpm/gxcqZZ6AzC7OdcV6pt4+p5M5ZK8yX6Ty3dD2WU3OM+ScFmyuU5zhDpdoo0m0LK68ELlMYy5o7jOv+l+thVsy0ppn+1QmOt+Y/qryWXBwTG/ArM/MKTU9svKdujre4l3FIU9npf4b5D3VVY3egPxIvXa40mRtWt253077vNZzNqhL5z1SMzr8b5u9udTZirdlr3+3BnfZAAB42m3Rx1JVQRSF4fNfA+Ys5ixGxNO7d3PBhAmMmCPGcubEma/pKxm4P4zsqlNrdL5aq3Y36Jbf719ddP973/5+dAMGrGEt61jPGBvYyCY2s4WtbGM7O9jJLnazh72Ms4/9HOAghzjMEY5yjOOc4CSnOM0EZzjLOc5zgYtMcokpLtNTCCpJY5ohM8xyhatc4zo3mOMmt7jNHe4yzwL3uM8DHvKIxyzyhKc84zkveMkrXvOGt7zjPUt84COf+MwXvo79/PF9vu/7f7lQVrOYYVYzzWZOm0NzxpxdztALvdALvdALvdALvdCLFa/oFb2iV/SKXtErI6/ao9qj2qPao9qj2qP2K/8NzVGP1Emd1Emd1Emd1EmdXHVGe9I96Z50T7on3ZPuSfdk0St6RS90Qid0Qid0Qid0Qid0qr2qXtWrelWv6lW9qlf1ql7qpV7qpV7qpV7qpV7qpV7Ta3pNr+m1kde8V/NezXu1vv4BRRflZLgB/4WwAY0AS7AIUFixAQGOWbFGBitYIbAQWUuwFFJYIbCAWR2wBitcWFmwFCsAAAABUcgLTgAA) format('woff'),
-            url('genericons-regular-webfont.ttf') format('truetype'),
-            url('genericons-regular-webfont.svg#genericonsregular') format('svg');
-       font-weight: normal;
-       font-style: normal;
-}
-
-
-/**
- * All Genericons.
- */
-[class*="genericon"] {
-       display: inline-block;
-       width: 16px;
-       height: 16px;
-       -webkit-font-smoothing: antialiased;
-       font-size: 16px;
-       line-height: 1;
-       font-family: 'Genericons';
-       text-decoration: inherit;
-       font-weight: normal;
-       font-style: normal;
-       vertical-align: top;
-}
-
-/* IE7 */
-[class*="genericon"] {
-       *overflow: auto;
-       *zoom: 1;
-       *display: inline;
-}
-
-/**
- * Individual icons.
- */
-
-/* Post formats */
-.genericon-standard:before {       content: '\f100'; }
-.genericon-aside:before {          content: '\f101'; }
-.genericon-image:before {          content: '\f102'; }
-.genericon-gallery:before {        content: '\f103'; }
-.genericon-video:before {          content: '\f104'; }
-.genericon-status:before {         content: '\f105'; }
-.genericon-quote:before {          content: '\f106'; }
-.genericon-link:before {           content: '\f107'; }
-.genericon-chat:before {           content: '\f108'; }
-.genericon-audio:before {          content: '\f109'; }
-
-/* Social icons */
-.genericon-github:before {         content: '\f200'; }
-.genericon-dribbble:before {       content: '\f201'; }
-.genericon-twitter:before {        content: '\f202'; }
-.genericon-facebook:before {       content: '\f203'; }
-.genericon-facebook-alt:before {   content: '\f204'; }
-.genericon-wordpress:before {      content: '\f205'; }
-.genericon-googleplus:before {     content: '\f206'; }
-.genericon-linkedin:before {       content: '\f207'; }
-.genericon-linkedin-alt:before {   content: '\f208'; }
-.genericon-pinterest:before {      content: '\f209'; }
-.genericon-pinterest-alt:before {  content: '\f210'; }
-.genericon-flickr:before {         content: '\f211'; }
-.genericon-vimeo:before {          content: '\f212'; }
-.genericon-youtube:before {        content: '\f213'; }
-.genericon-tumblr:before {         content: '\f214'; }
-.genericon-instagram:before {      content: '\f215'; }
-.genericon-codepen:before {        content: '\f216'; }
-
-/* Meta icons */
-.genericon-comment:before {        content: '\f300'; }
-.genericon-category:before {       content: '\f301'; }
-.genericon-tag:before {            content: '\f302'; }
-.genericon-time:before {           content: '\f303'; }
-.genericon-user:before {           content: '\f304'; }
-.genericon-day:before {            content: '\f305'; }
-.genericon-week:before {           content: '\f306'; }
-.genericon-month:before {          content: '\f307'; }
-.genericon-pinned:before {         content: '\f308'; }
-
-/* Other icons */
-.genericon-search:before {         content: '\f400'; }
-.genericon-unzoom:before {         content: '\f401'; }
-.genericon-zoom:before {           content: '\f402'; }
-.genericon-show:before {           content: '\f403'; }
-.genericon-hide:before {           content: '\f404'; }
-.genericon-close:before {          content: '\f405'; }
-.genericon-close-alt:before {      content: '\f406'; }
-.genericon-trash:before {          content: '\f407'; }
-.genericon-star:before {           content: '\f408'; }
-.genericon-home:before {           content: '\f409'; }
-.genericon-mail:before {           content: '\f410'; }
-.genericon-edit:before {           content: '\f411'; }
-.genericon-reply:before {          content: '\f412'; }
-.genericon-feed:before {           content: '\f413'; }
-.genericon-warning:before {        content: '\f414'; }
-.genericon-share:before {          content: '\f415'; }
-.genericon-attachment:before {     content: '\f416'; }
-.genericon-location:before {       content: '\f417'; }
-.genericon-checkmark:before {      content: '\f418'; }
-.genericon-menu:before {           content: '\f419'; }
-.genericon-top:before {            content: '\f420'; }
-.genericon-minimize:before {       content: '\f421'; }
-.genericon-maximize:before {       content: '\f422'; }
-.genericon-404:before {            content: '\f423'; }
-.genericon-spam:before {           content: '\f424'; }
-.genericon-summary:before {        content: '\f425'; }
-.genericon-cloud:before {          content: '\f426'; }
-.genericon-key:before {            content: '\f427'; }
-.genericon-dot:before {            content: '\f428'; }
-.genericon-next:before {           content: '\f429'; }
-.genericon-previous:before {       content: '\f430'; }
-.genericon-expand:before {         content: '\f431'; }
-.genericon-collapse:before {       content: '\f432'; }
-.genericon-dropdown:before {       content: '\f433'; }
-.genericon-dropdown-left:before {  content: '\f434'; }
-.genericon-top:before {            content: '\f435'; }
-.genericon-draggable:before {      content: '\f436'; }
-.genericon-phone:before {          content: '\f437'; }
-.genericon-send-to-phone:before {  content: '\f438'; }
-.genericon-plugin:before {         content: '\f439'; }
-.genericon-cloud-download:before { content: '\f440'; }
-.genericon-cloud-upload:before {   content: '\f441'; }
-.genericon-external:before {       content: '\f442'; }
-.genericon-document:before {       content: '\f443'; }
-.genericon-book:before {           content: '\f444'; }
-.genericon-cog:before {            content: '\f445'; }
-.genericon-unapprove:before {      content: '\f446'; }
-.genericon-cart:before {           content: '\f447'; }
-.genericon-pause:before {          content: '\f448'; }
-.genericon-stop:before {           content: '\f449'; }
-.genericon-skip-back:before {      content: '\f450'; }
-.genericon-skip-ahead:before {     content: '\f451'; }
-.genericon-play:before {           content: '\f452'; }
-.genericon-tablet:before {         content: '\f453'; }
-.genericon-send-to-tablet:before { content: '\f454'; }
-
-/* Generic shapes */
-.genericon-uparrow:before {        content: '\f500'; }
-.genericon-rightarrow:before {     content: '\f501'; }
-.genericon-downarrow:before {      content: '\f502'; }
-.genericon-leftarrow:before {      content: '\f503'; }
index 2cfd20fe4b9a974589316d2e1b09ed1d43ab6b33..5474d07d3ab738f70bf0e2ba0a97bf76141573ea 100644 (file)
@@ -72,7 +72,7 @@ function twentythirteen_setup() {
         * This theme styles the visual editor to resemble the theme style,
         * specifically font, colors, icons, and column width.
         */
         * This theme styles the visual editor to resemble the theme style,
         * specifically font, colors, icons, and column width.
         */
-       add_editor_style( array( 'css/editor-style.css', 'fonts/genericons.css', twentythirteen_fonts_url() ) );
+       add_editor_style( array( 'css/editor-style.css', 'genericons/genericons.css', twentythirteen_fonts_url() ) );
 
        // Adds RSS feed links to <head> for posts and comments.
        add_theme_support( 'automatic-feed-links' );
 
        // Adds RSS feed links to <head> for posts and comments.
        add_theme_support( 'automatic-feed-links' );
@@ -170,13 +170,13 @@ function twentythirteen_scripts_styles() {
                wp_enqueue_script( 'jquery-masonry' );
 
        // Loads JavaScript file with functionality specific to Twenty Thirteen.
                wp_enqueue_script( 'jquery-masonry' );
 
        // Loads JavaScript file with functionality specific to Twenty Thirteen.
-       wp_enqueue_script( 'twentythirteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '2014-03-18', true );
+       wp_enqueue_script( 'twentythirteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '2014-06-08', true );
 
        // Add Source Sans Pro and Bitter fonts, used in the main stylesheet.
        wp_enqueue_style( 'twentythirteen-fonts', twentythirteen_fonts_url(), array(), null );
 
        // Add Genericons font, used in the main stylesheet.
 
        // Add Source Sans Pro and Bitter fonts, used in the main stylesheet.
        wp_enqueue_style( 'twentythirteen-fonts', twentythirteen_fonts_url(), array(), null );
 
        // Add Genericons font, used in the main stylesheet.
-       wp_enqueue_style( 'genericons', get_template_directory_uri() . '/fonts/genericons.css', array(), '2.09' );
+       wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.03' );
 
        // Loads our main stylesheet.
        wp_enqueue_style( 'twentythirteen-style', get_stylesheet_uri(), array(), '2013-07-18' );
 
        // Loads our main stylesheet.
        wp_enqueue_style( 'twentythirteen-style', get_stylesheet_uri(), array(), '2013-07-18' );
@@ -214,7 +214,7 @@ function twentythirteen_wp_title( $title, $sep ) {
                $title = "$title $sep $site_description";
 
        // Add a page number if necessary.
                $title = "$title $sep $site_description";
 
        // Add a page number if necessary.
-       if ( $paged >= 2 || $page >= 2 )
+       if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() )
                $title = "$title $sep " . sprintf( __( 'Page %s', 'twentythirteen' ), max( $paged, $page ) );
 
        return $title;
                $title = "$title $sep " . sprintf( __( 'Page %s', 'twentythirteen' ), max( $paged, $page ) );
 
        return $title;
diff --git a/wp-content/themes/twentythirteen/genericons/Genericons-Regular.otf b/wp-content/themes/twentythirteen/genericons/Genericons-Regular.otf
new file mode 100644 (file)
index 0000000..5cd41e8
Binary files /dev/null and b/wp-content/themes/twentythirteen/genericons/Genericons-Regular.otf differ
diff --git a/wp-content/themes/twentythirteen/genericons/README.txt b/wp-content/themes/twentythirteen/genericons/README.txt
new file mode 100644 (file)
index 0000000..7a0a92e
--- /dev/null
@@ -0,0 +1,123 @@
+  ___  ____  __ _  ____  ____  __  ___  __   __ _  ____ 
+ / __)(  __)(  ( \(  __)(  _ \(  )/ __)/  \ (  ( \/ ___)
+( (_ \ ) _) /    / ) _)  )   / )(( (__(  O )/    /\___ \
+ \___/(____)\_)__)(____)(__\_)(__)\___)\__/ \_)__)(____/
+
+
+Genericons are vector icons embedded in a webfont designed to be clean and simple keeping with a generic aesthetic.
+
+Use genericons for instant HiDPI, to change icon colors on the fly, or even with CSS effects such as drop-shadows or gradients!
+
+
+_  _ ____ ____ ____ ____ 
+|  | [__  |__| | __ |___ 
+|__| ___] |  | |__] |___ 
+
+
+To use it, place the font folder in your stylesheet directory and paste this in your CSS file:
+
+/* =Genericons, thanks to FontSquirrel.com for conversion!
+-------------------------------------------------------------- */
+@font-face {
+    font-family: 'Genericons';
+    src: url('font/genericons-regular-webfont.eot');
+    src: url('font/genericons-regular-webfont.eot?#iefix') format('embedded-opentype'),
+         url('font/genericons-regular-webfont.woff') format('woff'),
+         url('font/genericons-regular-webfont.ttf') format('truetype'),
+         url('font/genericons-regular-webfont.svg#genericonsregular') format('svg');
+    font-weight: normal;
+    font-style: normal;
+
+}
+
+Note: the above only works if you don't use a CDN. If you do, or don't know what that is, you should use the syntax that's embedded in genericons.css.
+
+From then on, you can create an icon like this:
+
+.my-icon:before {
+       content: '\f101';
+       display: inline-block;
+       -webkit-font-smoothing: antialiased;
+       font: normal 16px/1 'Genericons';
+       vertical-align: top;
+}
+
+This will output a comment icon before every element with the class "my-icon". The "content: '\f101';" part of this CSS is easily copied from the helper tool at http://genericons.com/
+
+You can also use the bundled example.css if you'd rather insert the icons using HTML tags.
+
+
+_  _ ____ ___ ____ ____ 
+|\ | |  |  |  |___ [__  
+| \| |__|  |  |___ ___]
+
+
+Photoshop mockups:
+
+Genericons-Regular.otf found in the root directory of this zip has not been web-font-ified. So you can drop it in your system fonts folder and use the font in Photoshop if you like.
+
+For those of you using Genericons in your Photoshop mockup, remember to delete the old version of the font from Font Book, and grab the new one from the zip file. This also affects using it in your webdesigns: if you have an old version of the font installed locally, that's the font that'll be used in your website as well, so if you're missing icons, check for old versions of the font on your system.
+
+Pixel grid:
+
+Note that Genericons has been designed for a 16x16 pixel grid. That means it'll look sharp at font-size: 16px exactly. It'll also be crisp at multiples thereof, such as 32px or 64px. It'll also look reasonably crisp at in-between font sizes such as 24px or 48px, but not quite as crisp as 16 or 32. Please don't set the font-size to 17px, though, that'll just look terrible.
+
+Also note the CSS property "-webkit-font-smoothing: antialiased". That makes the icons look great in WebKit browsers. Please see http://noscope.com/2012/font-smoothing for more info.
+
+Updates:
+
+We don't often update icons, but do very carefully when we get good feedback suggesting improvements. Please be mindful if you upgrade, and check that the updated icons behave as you intended.
+
+
+
+____ _  _ ____ _  _ ____ ____ _    ____ ____ 
+|    |__| |__| |\ | | __ |___ |    |  | | __ 
+|___ |  | |  | | \| |__] |___ |___ |__| |__] 
+
+V3.0.3:
+Bunch of updates mostly.
+- Two new icons, Dropbox and Fullscreen.
+- Updates to all icons containing an exclamation mark.
+- Updates to Image and Quote.
+- Nicer "Share" icon.
+- Bigger default Linkedin icon.
+
+V3.0.2: 
+A slew of new stuff and updates.
+- Social icons: Skype, Digg, Reddit, Stumbleupon, Pocket.
+- New generic icons: heart, lock and print.
+- New editing icons: code, bold, italic, image
+- New interaction icons: subscribe, unsubscribe, subscribed, reply all, reply, flag.
+- The hyperlink icon has been updated to be clearer, chunkier.
+- The "home" icon has been updated for style, size and clarity.
+- The email icon has been updated for style and clarity, and to fit with the new subscribe icons.
+- The document icon has been updated for style.
+- The "pin" icon has been updated for style and clarity.
+- The Twitter icon has been scaled down to fit with the other social icons.
+
+V3.0.1: 
+Mostly maintenance. 
+- Fixed an issue with the example page that showed an old "top" icon instead of the actual NEW "refresh" icon.
+- Added inverse Google+ and Path.
+- Replaced tabs with spaces in the helper CSS.
+- Changed the Genericons.com copy/paste tool to serve span's instead of div's for casual icon insertion. It's being converted to "inline-block" anyway.
+
+V3.0:
+Mainly maintenance and a few new icons.
+- Fast forward, rewind, PollDaddy, Notice, Info, Help, Portfolio
+- Updated the feed icon. It's a bit smaller now for consistency, the previous one was rather big.
+- So, the previous version numbering, 2.09, wasn't very PHP version compare friendly. So from now on it'll be 3.0, 3.1 etc. Props Ipstenu.
+- Genericons.com now has a mini release blog.
+- The CSS has prettier formatting, props Konstantin Obenland.
+
+V2.09:
+Updated Facebook icon to new version. Updated Instagram logo to use new one-color version. Updated Google+ icon to use same radius as Instagram and Facebook. Added a bunch of new icons, cog, unapprove, cart, media player buttons, tablet, send to tablet.                                            
+
+V2.06:
+Included Base64 encoded version. This is necessary for Genericons to work with CDNs in Firefox. Firefox blocks fonts linked from a different domain. A CDN (typically s.example.com) usually puts the font on a subdomain, and is hence blocked in Firefox.
+
+V2.05:
+Added a bunch of new icons, including upload to cloud, download to cloud, many more.
+
+V2:
+Initial public release
\ No newline at end of file
diff --git a/wp-content/themes/twentythirteen/genericons/example.html b/wp-content/themes/twentythirteen/genericons/example.html
new file mode 100644 (file)
index 0000000..cdc7d04
--- /dev/null
@@ -0,0 +1,464 @@
+<!DOCTYPE html>
+<html dir="ltr" lang="en">
+<head>
+<title>Genericons</title>
+<link rel="stylesheet" href="genericons.css">
+<style type="text/css">
+body {
+       font-family: sans-serif;
+       line-height: 1.5;
+       width: 800px;
+       margin: 50px auto;
+       color: #777;
+       background: white;
+}
+.icons {
+       overflow: hidden;
+       padding: 10px 0;
+}
+.icons div {
+       cursor: pointer;
+       float: left;
+       margin: 0 30px 30px 0;
+}
+.icons:hover div {
+       background: #f7f7f7;
+}
+.code {
+        display: block;
+        font: 14px/1.5 monospace;
+        width: 740px;
+        white-space: pre;
+        border: 1px solid #ccc;
+        padding: 10px;
+        color: #777;
+        overflow: auto;
+}
+.my-icon:before {
+       content: '\f408';
+        display: inline-block;
+        -webkit-font-smoothing: antialiased;
+        font: normal 32px/1 'Genericons';
+        vertical-align: middle;
+}
+/* For the Examples */
+.my-checklist {
+       list-style-type: none;
+       text-indent: -16px;
+}
+.my-checklist li:before {
+       padding-right: 16px;
+       content: '\f418';
+        display: inline-block;
+        -webkit-font-smoothing: antialiased;
+        font: normal 16px/1 'Genericons';
+        vertical-align: text-top;
+}
+.my-blockquote {
+       background: #eee;
+       border-left: 32px solid #ddd;
+       padding: 10px;
+}
+.my-blockquote:before {
+       margin-left: -42px;
+       padding-right: 10px;
+        content: '\f106';
+        display: inline-block;
+        -webkit-font-smoothing: antialiased;
+        font: normal 32px/20px 'Genericons';
+        vertical-align: bottom;
+}
+.my-button {
+       font-family: Helvetica, sans-serif;
+       font-size: 14px;
+       background: #e05d22; /* Old browsers */
+       background: -webkit-linear-gradient(top, #e05d22 0%, #d94412 100%); /* Chrome10+,Safari5.1+ */
+       background: -moz-linear-gradient(   top, #e05d22 0%, #d94412 100%); /* FF3.6+ */
+       background: -ms-linear-gradient(    top, #e05d22 0%, #d94412 100%); /* IE10+ */
+       background: -o-linear-gradient(     top, #e05d22 0%, #d94412 100%); /* Opera 11.10+ */
+       background: linear-gradient(  to bottom, #e05d22 0%, #d94412 100%); /* W3C */
+       filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e05d22', endColorstr='#d94412', GradientType=0); /* IE6-9 */
+       display: inline-block;
+       padding: 10px 16px 4px 16px;
+       color: #fff;
+       text-decoration: none;
+       border: none;
+       border-bottom: 3px solid #b93207;
+       border-radius: 2px;
+}
+.my-button:hover,
+.my-button:focus {
+       background: #ed6a31; /* Old browsers */
+       background: -webkit-linear-gradient(top, #ed6a31 0%, #e55627 100%); /* Chrome10+,Safari5.1+ */
+       background: -moz-linear-gradient(   top, #ed6a31 0%, #e55627 100%); /* FF3.6+ */
+       background: -ms-linear-gradient(    top, #ed6a31 0%, #e55627 100%); /* IE10+ */
+       background: -o-linear-gradient(     top, #ed6a31 0%, #e55627 100%); /* Opera 11.10+ */
+       background: linear-gradient(  to bottom, #ed6a31 0%, #e55627 100%); /* W3C */
+       filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ed6a31', endColorstr='#e55627', GradientType=0); /* IE6-9 */
+       outline: none;
+}
+.my-button:active {
+       background: #d94412; /* Old browsers */
+       background: -webkit-linear-gradient(top, #d94412 0%, #e05d22 100%); /* Chrome10+,Safari5.1+ */
+       background: -moz-linear-gradient(   top, #d94412 0%, #e05d22 100%); /* FF3.6+ */
+       background: -ms-linear-gradient(    top, #d94412 0%, #e05d22 100%); /* IE10+ */
+       background: -o-linear-gradient(     top, #d94412 0%, #e05d22 100%); /* Opera 11.10+ */
+       background: linear-gradient(  to bottom, #d94412 0%, #e05d22 100%); /* W3C */
+       filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d94412', endColorstr='#e05d22', GradientType=0); /* IE6-9 */
+       border: none;
+       border-top: 3px solid #b93207;
+       padding: 6px 16px 7px 16px;
+}
+</style>
+</head>
+<body>
+
+<div class="section">
+
+       <h1>Genericons Usage</h1>
+
+       <p>Copy the <strong>font</strong> folder and the <strong>genericons.css</strong> file together into your project. Link the CSS in your HTML:</p>
+
+       <p><code>&lt;link href="path/to/genericons.css" rel="stylesheet"&gt;</code></p>
+
+       <p>Drop in the following HTML with the name of the icon you want to display:</p>
+
+       <p><code>&lt;div class="genericon genericon-standard"&gt;&lt;/div&gt;</code></p>
+
+       <div class="icons">
+       
+               <!-- post formats -->
+               <div alt="f100" class="genericon genericon-standard"></div>
+               <div alt="f101" class="genericon genericon-aside"></div>
+               <div alt="f102" class="genericon genericon-image"></div>
+               <div alt="f103" class="genericon genericon-gallery"></div>
+               <div alt="f104" class="genericon genericon-video"></div>
+               <div alt="f105" class="genericon genericon-status"></div>
+               <div alt="f106" class="genericon genericon-quote"></div>
+               <div alt="f107" class="genericon genericon-link"></div>
+               <div alt="f108" class="genericon genericon-chat"></div>
+               <div alt="f109" class="genericon genericon-audio"></div>
+
+               <!-- social icons -->
+               <div alt="f200" class="genericon genericon-github"></div>
+               <div alt="f201" class="genericon genericon-dribbble"></div>
+               <div alt="f202" class="genericon genericon-twitter"></div>
+               <div alt="f203" class="genericon genericon-facebook"></div>
+               <div alt="f204" class="genericon genericon-facebook-alt"></div>
+               <div alt="f205" class="genericon genericon-wordpress"></div>
+               <div alt="f206" class="genericon genericon-googleplus"></div>
+               <div alt="f207" class="genericon genericon-linkedin"></div>
+               <div alt="f208" class="genericon genericon-linkedin-alt"></div>
+               <div alt="f209" class="genericon genericon-pinterest"></div>
+               <div alt="f210" class="genericon genericon-pinterest-alt"></div>
+               <div alt="f211" class="genericon genericon-flickr"></div>
+               <div alt="f212" class="genericon genericon-vimeo"></div>
+               <div alt="f213" class="genericon genericon-youtube"></div>
+               <div alt="f214" class="genericon genericon-tumblr"></div>
+               <div alt="f215" class="genericon genericon-instagram"></div>
+               <div alt="f216" class="genericon genericon-codepen"></div>
+               <div alt="f217" class="genericon genericon-polldaddy"></div>
+               <div alt="f218" class="genericon genericon-googleplus-alt"></div>
+               <div alt="f219" class="genericon genericon-path"></div>
+               <div alt="f220" class="genericon genericon-skype"></div>
+               <div alt="f221" class="genericon genericon-digg"></div>
+               <div alt="f222" class="genericon genericon-reddit"></div>
+               <div alt="f223" class="genericon genericon-stumbleupon"></div>
+               <div alt="f224" class="genericon genericon-pocket"></div>
+               <div alt="f225" class="genericon genericon-dropbox"></div>
+
+               <!-- meta icons -->
+               <div alt="f300" class="genericon genericon-comment"></div>
+               <div alt="f301" class="genericon genericon-category"></div>
+               <div alt="f302" class="genericon genericon-tag"></div>
+               <div alt="f303" class="genericon genericon-time"></div>
+               <div alt="f304" class="genericon genericon-user"></div>
+               <div alt="f305" class="genericon genericon-day"></div>
+               <div alt="f306" class="genericon genericon-week"></div>
+               <div alt="f307" class="genericon genericon-month"></div>
+               <div alt="f308" class="genericon genericon-pinned"></div>
+
+               <!-- other icons -->
+               <div alt="f400" class="genericon genericon-search"></div>
+               <div alt="f401" class="genericon genericon-unzoom"></div>
+               <div alt="f402" class="genericon genericon-zoom"></div>
+               <div alt="f403" class="genericon genericon-show"></div>
+               <div alt="f404" class="genericon genericon-hide"></div>
+               <div alt="f405" class="genericon genericon-close"></div>
+               <div alt="f406" class="genericon genericon-close-alt"></div>
+               <div alt="f407" class="genericon genericon-trash"></div>
+               <div alt="f408" class="genericon genericon-star"></div>
+               <div alt="f409" class="genericon genericon-home"></div>
+               <div alt="f410" class="genericon genericon-mail"></div>
+               <div alt="f411" class="genericon genericon-edit"></div>
+               <div alt="f412" class="genericon genericon-reply"></div>
+               <div alt="f413" class="genericon genericon-feed"></div>
+               <div alt="f414" class="genericon genericon-warning"></div>
+               <div alt="f415" class="genericon genericon-share"></div>
+               <div alt="f416" class="genericon genericon-attachment"></div>
+               <div alt="f417" class="genericon genericon-location"></div>
+               <div alt="f418" class="genericon genericon-checkmark"></div>
+               <div alt="f419" class="genericon genericon-menu"></div>
+               <div alt="f420" class="genericon genericon-refresh"></div>
+               <div alt="f421" class="genericon genericon-minimize"></div>
+               <div alt="f422" class="genericon genericon-maximize"></div>
+               <div alt="f423" class="genericon genericon-404"></div>
+               <div alt="f424" class="genericon genericon-spam"></div>
+               <div alt="f425" class="genericon genericon-summary"></div>
+               <div alt="f426" class="genericon genericon-cloud"></div>
+               <div alt="f427" class="genericon genericon-key"></div>
+               <div alt="f428" class="genericon genericon-dot"></div>
+               <div alt="f429" class="genericon genericon-next"></div>
+               <div alt="f430" class="genericon genericon-previous"></div>
+               <div alt="f431" class="genericon genericon-expand"></div>
+               <div alt="f432" class="genericon genericon-collapse"></div>
+               <div alt="f433" class="genericon genericon-dropdown"></div>
+               <div alt="f434" class="genericon genericon-dropdown-left"></div>
+               <div alt="f435" class="genericon genericon-top"></div>
+               <div alt="f436" class="genericon genericon-draggable"></div>
+               <div alt="f437" class="genericon genericon-phone"></div>
+               <div alt="f438" class="genericon genericon-send-to-phone"></div>
+               <div alt="f439" class="genericon genericon-plugin"></div>
+               <div alt="f440" class="genericon genericon-cloud-download"></div>
+               <div alt="f441" class="genericon genericon-cloud-upload"></div>
+               <div alt="f442" class="genericon genericon-external"></div>
+               <div alt="f443" class="genericon genericon-document"></div>
+               <div alt="f444" class="genericon genericon-book"></div>
+               <div alt="f445" class="genericon genericon-cog"></div>
+               <div alt="f446" class="genericon genericon-unapprove"></div>
+               <div alt="f447" class="genericon genericon-cart"></div>
+               <div alt="f448" class="genericon genericon-pause"></div>
+               <div alt="f449" class="genericon genericon-stop"></div>
+               <div alt="f450" class="genericon genericon-skip-back"></div>
+               <div alt="f451" class="genericon genericon-skip-ahead"></div>
+               <div alt="f452" class="genericon genericon-play"></div>
+               <div alt="f453" class="genericon genericon-tablet"></div>
+               <div alt="f454" class="genericon genericon-send-to-tablet"></div>
+               <div alt="f455" class="genericon genericon-info"></div>
+               <div alt="f456" class="genericon genericon-notice"></div>
+               <div alt="f457" class="genericon genericon-help"></div>
+               <div alt="f458" class="genericon genericon-fastforward"></div>
+               <div alt="f459" class="genericon genericon-rewind"></div>
+               <div alt="f460" class="genericon genericon-portfolio"></div>
+               <div alt="f461" class="genericon genericon-heart"></div>
+               <div alt="f462" class="genericon genericon-code"></div>
+               <div alt="f463" class="genericon genericon-subscribe"></div>
+               <div alt="f464" class="genericon genericon-unsubscribe"></div>
+               <div alt="f465" class="genericon genericon-subscribed"></div>
+               <div alt="f466" class="genericon genericon-reply-alt"></div>
+               <div alt="f467" class="genericon genericon-reply-single"></div>
+               <div alt="f468" class="genericon genericon-flag"></div>
+               <div alt="f469" class="genericon genericon-print"></div>
+               <div alt="f470" class="genericon genericon-lock"></div>
+               <div alt="f471" class="genericon genericon-bold"></div>
+               <div alt="f472" class="genericon genericon-italic"></div>
+               <div alt="f473" class="genericon genericon-picture"></div>
+               <div alt="f474" class="genericon genericon-fullscreen"></div>
+
+               <!-- generic shapes -->
+               <div alt="f500" class="genericon genericon-uparrow"></div>
+               <div alt="f501" class="genericon genericon-rightarrow"></div>
+               <div alt="f502" class="genericon genericon-downarrow"></div>
+               <div alt="f503" class="genericon genericon-leftarrow"></div>
+
+       </div>
+
+       <p>If you want to insert an icon manually using the <code>:before</code> selector, you can setup CSS rules like the following example. <strong>Make sure to set the size to a multiple of 16px</strong> or the icons could end up looking fuzzy:</p>
+
+<p><textarea class="code" style="min-height: 150px;" onclick="select();">.my-icon:before {
+       content: '\f408';
+        display: inline-block;
+        -webkit-font-smoothing: antialiased;
+        font: normal 32px/1 'Genericons';
+        vertical-align: middle;
+}</textarea></p>
+
+       <p>Add a matching class to your HTML:</p>
+
+       <p><code>&lt;div class="my-icon"&gt;You're a Star!&lt;/div&gt;</code></p>
+
+       <p>Here's the result: <span class="my-icon">You're a Star!</span></p>
+
+       <h2>Examples</h2>
+
+       <p>Turn every icon a <span style="color: #fa8072;">Salmon</span> color:</p>
+
+<p><textarea class="code" style="min-height: 70px" onclick="select();">
+.genericon {
+       color: #fa8072;
+}</textarea></p>
+
+       <p>Or turn the stars <span style="color: #ffd700;">Gold</span>:</p>
+
+<p><textarea class="code" style="min-height: 70px" onclick="select();">
+.genericon-star {
+       color: #fa8072;
+}</textarea></p>
+
+       <p>Use icons for bulleted lists:</p>
+
+       <ul class="my-checklist">
+               <li>One</li>
+               <li>Two</li>
+               <li>Three</li>
+               <li>Four</li>
+       </ul>
+
+<p><textarea class="code" style="min-height: 130px" onclick="select();">
+<ul class="my-checklist">
+       <li>One</li>
+       <li>Two</li>
+       <li>Three</li>
+       <li>Four</li>
+</ul></textarea></p>
+
+<p><textarea class="code" style="min-height: 260px;" onclick="select();">
+.my-checklist {
+       list-style-type: none;
+       text-indent: -16px;
+}
+.my-checklist li:before {
+       padding-right: 16px;
+       content: '\f418';
+        display: inline-block;
+        -webkit-font-smoothing: antialiased;
+        font: normal 16px/1 'Genericons';
+        vertical-align: text-top;
+}</textarea></p>
+
+       <p>Use icons to style blockquotes:</p>
+
+       <blockquote class="my-blockquote">Sometimes I've believed as many as six impossible things before breakfast. &mdash;<em>Lewis Carroll</em></blockquote>
+       <blockquote class="my-blockquote">`Twas brillig, and the slithy toves Did gyre and gimble in the wabe: All mimsy were the borogoves, And the mome raths outgrabe. "Beware the Jabberwock, my son!  The jaws that bite, the claws that catch!  Beware the Jubjub bird, and shun The frumious Bandersnatch!"</blockquote>
+
+<p><textarea class="code" style="min-height: 40px;" onclick="select();"><blockquote class="my-blockquote">Sometimes I've believed as many as six impossible things before breakfast. &mdash;<em>Lewis Carroll</em></blockquote></textarea></p>
+
+<p><textarea class="code" style="min-height: 300px;" onclick="select();">
+.my-blockquote {
+       background: #eee;
+       border-left: 32px solid #ddd;
+       padding: 10px;
+}
+.my-blockquote:before {
+       margin-left: -42px;
+       padding-right: 10px;
+        content: '\f106';
+        display: inline-block;
+        -webkit-font-smoothing: antialiased;
+        font: normal 32px/20px 'Genericons';
+        vertical-align: bottom;
+} </textarea></p>
+
+       <p>Use icons to style buttons:</p>
+
+       <a class="my-button" href="javascript:void()"><i class="genericon genericon-show"></i> View</a>
+       <a class="my-button" href="javascript:void()"><i class="genericon genericon-audio"></i> Listen</a>
+
+<p><textarea class="code" style="min-height: 40px;" onclick="select();"><a class="my-button" href="#"><i class="genericon genericon-show"></i> View</a>
+<a class="my-button" href="#"><i class="genericon genericon-audio"></i> Listen</a></textarea></p>
+
+<p><textarea class="code" style="min-height: 300px;" onclick="select();">
+.my-button {
+       font-family: Helvetica, sans-serif;
+       background: #e05d22; /* Old browsers */
+       background: -webkit-linear-gradient(top, #e05d22 0%, #d94412 100%); /* Chrome10+,Safari5.1+ */
+       background: -moz-linear-gradient(   top, #e05d22 0%, #d94412 100%); /* FF3.6+ */
+       background: -ms-linear-gradient(    top, #e05d22 0%, #d94412 100%); /* IE10+ */
+       background: -o-linear-gradient(     top, #e05d22 0%, #d94412 100%); /* Opera 11.10+ */
+       background: linear-gradient(  to bottom, #e05d22 0%, #d94412 100%); /* W3C */
+       filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#e05d22', endColorstr='#d94412', GradientType=0); /* IE6-9 */
+       display: inline-block;
+       padding: 10px 16px 6px 16px;
+       color: #fff;
+       text-decoration: none;
+       border: none;
+       border-bottom: 3px solid #b93207;
+       border-radius: 2px;
+}
+
+.my-button:hover,
+.my-button:focus {
+       background: #ed6a31; /* Old browsers */
+       background: -webkit-linear-gradient(top, #ed6a31 0%, #e55627 100%); /* Chrome10+,Safari5.1+ */
+       background: -moz-linear-gradient(   top, #ed6a31 0%, #e55627 100%); /* FF3.6+ */
+       background: -ms-linear-gradient(    top, #ed6a31 0%, #e55627 100%); /* IE10+ */
+       background: -o-linear-gradient(     top, #ed6a31 0%, #e55627 100%); /* Opera 11.10+ */
+       background: linear-gradient(  to bottom, #ed6a31 0%, #e55627 100%); /* W3C */
+       filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ed6a31', endColorstr='#e55627', GradientType=0); /* IE6-9 */
+       outline: none;
+}
+
+.my-button:active {
+       background: #d94412; /* Old browsers */
+       background: -webkit-linear-gradient(top, #d94412 0%, #e05d22 100%); /* Chrome10+,Safari5.1+ */
+       background: -moz-linear-gradient(   top, #d94412 0%, #e05d22 100%); /* FF3.6+ */
+       background: -ms-linear-gradient(    top, #d94412 0%, #e05d22 100%); /* IE10+ */
+       background: -o-linear-gradient(     top, #d94412 0%, #e05d22 100%); /* Opera 11.10+ */
+       background: linear-gradient(  to bottom, #d94412 0%, #e05d22 100%); /* W3C */
+       filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d94412', endColorstr='#e05d22', GradientType=0); /* IE6-9 */
+       border: none;
+       border-top: 3px solid #b93207;
+       padding: 6px 16px 10px 16px;
+}</textarea>/</p>
+
+       <h2>CSS Preprocessors</h2>
+
+       <p>Preprocessing extensions such as Sass (SCSS Syntax) or LESS</a> can make it easier to manage CSS for a lot of things at once using things like variables and mixins.</p>
+
+       <p>This example will seup the basic genericon rules and sets a color you can use for all icons using Sass:</p>
+
+<p><textarea class="code" style="min-height: 360px;" onclick="select();">$icon-color: "#fa8072";
+
+.genericon {
+        color: $icon-color;
+}
+
+@mixin genericon-rules {
+        display: inline-block;
+        -webkit-font-smoothing: antialiased;
+        font: normal 16px/1 'Genericons';
+        vertical-align: middle;
+}
+
+.my-icon:before {
+       content: '\f408';
+        @include genericon-rules;
+}</textarea></p>
+
+       <p>Here is a similar example for LESS:</p>
+
+<p><textarea class="code" style="min-height: 360px;" onclick="select();">@icon-color: "#fa8072";
+
+.genericon {
+        color: @icon-color;
+}
+
+.genericon-rules {
+        display: inline-block;
+        -webkit-font-smoothing: antialiased;
+        font: normal 16px/1 'Genericons';
+        vertical-align: middle;
+}
+
+.my-icon:before {
+       content: '\f408';
+        .genericon-rules;
+}</textarea></p>
+
+       <h2>Fallback images for IE7 and below</h2>
+
+       <p>Genericons <strong>does not come with fallback icons by default</strong> -- therefore you have to create them yourself. If you are using HTML similar to this example:
+
+       <p><code>&lt;span class="genericon genericon-warning"&gt;&lt;/span&gt;</code></p>
+
+       <p>You can use the asterisk hack to serve a different icon to IE7 once you have saved the fallback icons to your project:</p>
+
+<textarea class="code" style="min-height: 85px;" onclick="select();">.genericon-warning {
+        *background: url(fallback-icon.png) no-repeat center center;
+        *text-indent: 100%;
+}</textarea>
+
+</div>
+
+</body>
+</html>
diff --git a/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.eot b/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.eot
new file mode 100644 (file)
index 0000000..4657469
Binary files /dev/null and b/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.eot differ
similarity index 56%
rename from wp-content/themes/twentythirteen/fonts/genericons-regular-webfont.svg
rename to wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.svg
index 32ff53b007cd277113910e2a2736ac55fd1c78e4..ef236c102009d26108dcd62f72d24750cea80275 100644 (file)
@@ -6,34 +6,43 @@
 <font id="genericonsregular" horiz-adv-x="2048" >
 <font-face units-per-em="2048" ascent="1638" descent="-410" />
 <missing-glyph horiz-adv-x="500" />
 <font id="genericonsregular" horiz-adv-x="2048" >
 <font-face units-per-em="2048" ascent="1638" descent="-410" />
 <missing-glyph horiz-adv-x="500" />
-<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
 <glyph unicode="&#xf100;" d="M512 512v128h768v-128h-768zM512 768v128h256v-128h-256zM512 1024v128h640v-128h-640zM512 1280v128h1024v-128h-1024zM896 768v128h640v-128h-640zM1280 1024v128h256v-128h-256z" />
 <glyph unicode="&#xf101;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM768 1024q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
 <glyph unicode="&#xf100;" d="M512 512v128h768v-128h-768zM512 768v128h256v-128h-256zM512 1024v128h640v-128h-640zM512 1280v128h1024v-128h-1024zM896 768v128h640v-128h-640zM1280 1024v128h256v-128h-256z" />
 <glyph unicode="&#xf101;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM768 1024q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
-<glyph unicode="&#xf102;" d="M128 384v896l512 128l128 256h512l128 -256h512v-1024h-1792zM256 1440v160h256v-96zM576 960q0 -185 131.5 -316.5t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM704 960q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5z" />
+<glyph unicode="&#xf102;" d="M128 384v896l512 128l128 256h512l128 -256l512 -128v-896h-1792zM256 1440v160h256v-96zM576 960q0 -185 131.5 -316.5t316.5 -131.5q186 0 317 131.5t131 316.5q0 186 -131 317t-317 131q-185 0 -316.5 -131t-131.5 -317zM704 960q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5q0 -132 -93.5 -226t-226.5 -94t-226.5 94t-93.5 226z" />
 <glyph unicode="&#xf103;" d="M128 512v384h384v-384h-384zM128 1024v384h896v-384h-896zM640 512v384h384v-384h-384zM1152 512v896h896v-896h-896z" />
 <glyph unicode="&#xf104;" d="M512 384v1280l1152 -640z" />
 <glyph unicode="&#xf105;" d="M640 1408q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5q0 -124 -71.5 -222t-184.5 -138v-536l-256 -128v664q-113 40 -184.5 138t-71.5 222z" />
 <glyph unicode="&#xf103;" d="M128 512v384h384v-384h-384zM128 1024v384h896v-384h-896zM640 512v384h384v-384h-384zM1152 512v896h896v-896h-896z" />
 <glyph unicode="&#xf104;" d="M512 384v1280l1152 -640z" />
 <glyph unicode="&#xf105;" d="M640 1408q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5q0 -124 -71.5 -222t-184.5 -138v-536l-256 -128v664q-113 40 -184.5 138t-71.5 222z" />
-<glyph unicode="&#xf106;" d="M384 640l128 768h512l-256 -768h-384zM1152 640l128 768h512l-256 -768h-384z" />
-<glyph unicode="&#xf107;" d="M387 862q0 106 75 181l136 135l91 -90l-136 -136q-38 -37 -38 -90t38 -91l90 -90q38 -38 91 -38t90 38l136 135l91 -90l-136 -136q-75 -75 -181 -75t-181 75l-91 91q-75 75 -75 181zM734 952l362 362l90 -90l-362 -362zM870 1450l135 136q75 75 181 75t181 -75l91 -91 q75 -75 75 -181t-75 -181l-136 -136l-90 91l135 136q38 37 38 90t-38 91l-90 90q-38 38 -91 38t-90 -38l-136 -135z" />
+<glyph unicode="&#xf106;" d="M256 896v640h640v-640q0 -212 -150 -362t-362 -150v256q106 0 181 75t75 181h-384zM1152 896v640h640v-640q0 -212 -150 -362t-362 -150v256q106 0 181 75t75 181h-384z" />
+<glyph unicode="&#xf107;" d="M512 704v384q0 97 53 176.5t139 116.5v-151q-64 -57 -64 -142v-384q0 -80 56 -136t136 -56t136 56t56 136v384q0 85 -64 142v151q86 -37 139 -116.5t53 -176.5v-384q0 -133 -93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5zM768 1088v384q0 133 93.5 226.5 t226.5 93.5t226.5 -93.5t93.5 -226.5v-384q0 -97 -53 -176.5t-139 -116.5v151q64 57 64 142v384q0 80 -56 136t-136 56t-136 -56t-56 -136v-384q0 -85 64 -142v-151q-86 37 -139 116.5t-53 176.5z" />
 <glyph unicode="&#xf108;" d="M0 1152v384q0 96 80 176t176 80h1024q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-448l-448 -448v448h-128q-96 0 -176 80t-80 176zM768 640l128 128h384q168 0 276 108t108 276v384q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-128v-448l-448 448 h-320z" />
 <glyph unicode="&#xf108;" d="M0 1152v384q0 96 80 176t176 80h1024q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-448l-448 -448v448h-128q-96 0 -176 80t-80 176zM768 640l128 128h384q168 0 276 108t108 276v384q96 0 176 -80t80 -176v-384q0 -96 -80 -176t-176 -80h-128v-448l-448 448 h-320z" />
-<glyph unicode="&#xf109;" d="M256 768v512h384l384 384v-1280l-384 384h-384zM1205 843q75 75 75 181t-75 181l91 91q53 -54 82.5 -124t29.5 -148t-29.5 -148t-82.5 -124zM1386 662q71 71 110.5 164.5t39.5 197.5t-39.5 197.5t-110.5 164.5l91 91q88 -89 137.5 -206t49.5 -247q0 -87 -23 -170 t-64.5 -153.5t-99.5 -129.5z" />
+<glyph unicode="&#xf109;" d="M256 768v512h384l384 384v-1280l-384 384h-384zM1205 843q75 75 75 181t-75 181l91 91q26 -27 46.5 -57.5t35 -65t22.5 -72.5t8 -77q0 -78 -29.5 -148t-82.5 -124zM1386 662q71 71 110.5 164.5t39.5 197.5t-39.5 197.5t-110.5 164.5l91 91q88 -89 137.5 -206t49.5 -247 q0 -87 -23 -170t-64.5 -153.5t-99.5 -129.5z" />
 <glyph unicode="&#xf200;" d="M0 1024q0 208 81 398t218.5 327t327 218t397.5 81q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5q0 -335 -195.5 -601.5t-504.5 -369.5q-36 -7 -53 8.5t-17 40.5q0 4 0.5 102t0.5 179q0 130 -69 189q77 9 137.5 24.5t124.5 51.5t107 89t70.5 140t27.5 201 q0 161 -105 274q6 15 11 35t9 56t-3.5 83.5t-26.5 96.5q-4 1 -10.5 2t-32 -1t-55.5 -11t-79.5 -33.5t-104.5 -61.5q-118 33 -256 35q-138 -2 -256 -35q-55 37 -104 61.5t-80 33t-54.5 11.5t-33.5 1l-10 -2q-58 -146 -10 -271q-105 -115 -105 -274q0 -114 27.5 -201 t70.5 -140t107 -89t124.5 -52t136.5 -24q-53 -47 -65 -137q-28 -13 -59.5 -20t-75.5 -6.5t-87.5 28.5t-75.5 83q-2 4 -6.5 10.5t-19 24t-31.5 31t-44 25.5t-56 14h-10t-18.5 -3.5t-17 -9t4 -18.5t34.5 -31q3 -1 7.5 -4t19 -14.5t27.5 -27t30 -43.5t30 -61q1 -3 2.5 -7t8 -17 t15.5 -25.5t24.5 -28t33.5 -28t45 -23.5t57.5 -16t71.5 -3.5t87 11.5q0 -50 0.5 -110t0.5 -64q0 -24 -17 -40t-53 -10q-309 103 -504.5 370t-195.5 602z" />
 <glyph unicode="&#xf201;" d="M0 1024q0 206 82 395.5t219.5 327t327 219.5t395.5 82t395.5 -82t327 -219.5t219.5 -327t82 -395.5t-82 -395.5t-219.5 -327t-327 -219.5t-395.5 -82t-395.5 82t-327 219.5t-219.5 327t-82 395.5zM128 1024q0 -167 58 -319.5t166 -272.5q125 205 339 360t445 232 q-16 48 -80 176q-282 -86 -481.5 -111t-446.5 -1v-64zM160 1232q194 -22 444 14t388 82q-141 282 -320 528q-194 -85 -329.5 -247.5t-182.5 -376.5zM480 320q216 -192 544 -192q181 0 368 80q-33 300 -208 688q-222 -74 -410 -225.5t-294 -350.5zM832 1904 q102 -166 304 -512q6 2 86 31t118.5 45t108 47t122 64t93.5 69q-126 126 -290.5 199t-349.5 73q-32 0 -96 -8t-96 -8zM1200 1248q22 -29 36.5 -54.5t34 -67.5t25.5 -54q170 33 336 30t288 -30q-26 285 -160 464q-71 -57 -162 -104.5t-214.5 -100.5t-183.5 -83zM1344 928 q14 -27 43 -103t74.5 -231t74.5 -306q156 108 258 278t126 362q-276 46 -576 0z" />
 <glyph unicode="&#xf200;" d="M0 1024q0 208 81 398t218.5 327t327 218t397.5 81q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5q0 -335 -195.5 -601.5t-504.5 -369.5q-36 -7 -53 8.5t-17 40.5q0 4 0.5 102t0.5 179q0 130 -69 189q77 9 137.5 24.5t124.5 51.5t107 89t70.5 140t27.5 201 q0 161 -105 274q6 15 11 35t9 56t-3.5 83.5t-26.5 96.5q-4 1 -10.5 2t-32 -1t-55.5 -11t-79.5 -33.5t-104.5 -61.5q-118 33 -256 35q-138 -2 -256 -35q-55 37 -104 61.5t-80 33t-54.5 11.5t-33.5 1l-10 -2q-58 -146 -10 -271q-105 -115 -105 -274q0 -114 27.5 -201 t70.5 -140t107 -89t124.5 -52t136.5 -24q-53 -47 -65 -137q-28 -13 -59.5 -20t-75.5 -6.5t-87.5 28.5t-75.5 83q-2 4 -6.5 10.5t-19 24t-31.5 31t-44 25.5t-56 14h-10t-18.5 -3.5t-17 -9t4 -18.5t34.5 -31q3 -1 7.5 -4t19 -14.5t27.5 -27t30 -43.5t30 -61q1 -3 2.5 -7t8 -17 t15.5 -25.5t24.5 -28t33.5 -28t45 -23.5t57.5 -16t71.5 -3.5t87 11.5q0 -50 0.5 -110t0.5 -64q0 -24 -17 -40t-53 -10q-309 103 -504.5 370t-195.5 602z" />
 <glyph unicode="&#xf201;" d="M0 1024q0 206 82 395.5t219.5 327t327 219.5t395.5 82t395.5 -82t327 -219.5t219.5 -327t82 -395.5t-82 -395.5t-219.5 -327t-327 -219.5t-395.5 -82t-395.5 82t-327 219.5t-219.5 327t-82 395.5zM128 1024q0 -167 58 -319.5t166 -272.5q125 205 339 360t445 232 q-16 48 -80 176q-282 -86 -481.5 -111t-446.5 -1v-64zM160 1232q194 -22 444 14t388 82q-141 282 -320 528q-194 -85 -329.5 -247.5t-182.5 -376.5zM480 320q216 -192 544 -192q181 0 368 80q-33 300 -208 688q-222 -74 -410 -225.5t-294 -350.5zM832 1904 q102 -166 304 -512q6 2 86 31t118.5 45t108 47t122 64t93.5 69q-126 126 -290.5 199t-349.5 73q-32 0 -96 -8t-96 -8zM1200 1248q22 -29 36.5 -54.5t34 -67.5t25.5 -54q170 33 336 30t288 -30q-26 285 -160 464q-71 -57 -162 -104.5t-214.5 -100.5t-183.5 -83zM1344 928 q14 -27 43 -103t74.5 -231t74.5 -306q156 108 258 278t126 362q-276 46 -576 0z" />
-<glyph unicode="&#xf202;" d="M0 381q50 -6 100 -6q293 0 522 180q-137 2 -244.5 83t-147.5 208q44 -7 79 -7q57 0 110 15q-145 29 -241 144.5t-96 267.5v5q86 -48 191 -53q-86 58 -136.5 150t-50.5 200q0 113 57 211q158 -194 383 -310t483 -129q-11 49 -11 96q0 174 123 297t297 123q89 0 168.5 -35 t138.5 -97q142 27 266 102q-47 -150 -184 -233q124 15 241 66q-84 -127 -210 -217q2 -36 2 -55q0 -168 -49 -337t-150 -323.5t-241 -273.5t-336 -190t-420 -71q-351 0 -644 189z" />
+<glyph unicode="&#xf202;" d="M128 465q48 -5 88 -5q256 0 456 157q-119 2 -213 73.5t-130 182.5q39 -7 69 -7q47 0 97 13q-127 26 -211 127t-84 233v5q80 -43 167 -46q-76 50 -120 131t-44 175q0 101 50 185q138 -170 335 -271.5t423 -112.5q-10 39 -10 84q0 152 108 259.5t260 107.5q160 0 268 -116 q128 26 233 89q-42 -132 -161 -203q109 13 211 58q-73 -111 -183 -191q0 -7 0.5 -23t0.5 -24q0 -122 -31 -246t-89.5 -241t-149.5 -218.5t-204 -177.5t-260.5 -119.5t-311.5 -43.5q-305 0 -564 165z" />
 <glyph unicode="&#xf203;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-282v711h270l12 260h-282v192v12q0 60 21.5 87.5t87.5 27.5l166 -1l6 242q-78 10 -183 10q-94 0 -167 -27.5t-117 -74.5t-66 -105.5t-22 -126.5v-236h-254v-260h254v-711 h-724q-106 0 -181 75t-75 181z" />
 <glyph unicode="&#xf203;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-282v711h270l12 260h-282v192v12q0 60 21.5 87.5t87.5 27.5l166 -1l6 242q-78 10 -183 10q-94 0 -167 -27.5t-117 -74.5t-66 -105.5t-22 -126.5v-236h-254v-260h254v-711 h-724q-106 0 -181 75t-75 181z" />
-<glyph unicode="&#xf204;" d="M640 969v303h222v258q0 78 26 147t77 124t136.5 87t194.5 32q55 0 108 -3t79 -6l26 -3l-7 -282h-193q-76 0 -101.5 -32t-25.5 -101v-3v-2v-9v-207h329l-14 -303h-315v-841h-320v841h-222z" />
-<glyph unicode="&#xf205;" d="M128 1024q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM218 1024q0 -236 125 -430.5t329 -294.5l-384 1053q-70 -156 -70 -328zM351 1466h52q37 0 91 2.5t89 4.5 l34 3q21 1 30.5 -14.5t2.5 -32.5t-27 -20q-44 -5 -93 -7l294 -873l176 529l-125 344l-85 7q-20 2 -27.5 19t2.5 33t30 15q133 -10 212 -10q38 0 91.5 2.5t88.5 4.5l35 3q16 1 25.5 -8.5t10 -22t-7 -23.5t-23.5 -13q-43 -5 -92 -7l291 -866l80 268q25 79 33.5 107.5 t18.5 74.5t10 79q0 46 -11.5 90.5t-23.5 71t-32 60.5q-2 4 -11.5 19t-12 20t-10.5 18.5t-11 19t-9 17.5t-8.5 19t-6.5 18t-5.5 19.5t-3 18.5t-1.5 20q0 57 39 100t96 43q3 0 11 -1q-110 101 -249.5 156.5t-294.5 55.5q-208 0 -385.5 -98t-287.5 -266zM796 251 q112 -33 228 -33q138 0 267 46q-3 6 -5 11l-248 679zM1429 328q183 106 291.5 291.5t108.5 404.5q0 207 -98 386q5 -40 5 -82q0 -135 -61 -289z" />
+<glyph unicode="&#xf204;" d="M640 969v303h222v258q0 78 26 147t77 124t136.5 87t194.5 32q55 0 108 -3t79 -6l26 -3l-7 -282h-193q-76 0 -101.5 -32t-25.5 -101v-14v-207h329l-14 -303h-315v-841h-320v841h-222z" />
+<glyph unicode="&#xf205;" d="M128 1024q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM218 1024q0 -236 125 -430.5t330 -294.5l-385 1053q-70 -156 -70 -328zM351 1466h52q37 0 91 2.5t89 4.5 l34 3q21 1 30.5 -14.5t2.5 -32.5t-27 -20q-44 -5 -93 -7l294 -873l176 529l-125 344l-85 7q-20 2 -27.5 19t2.5 33t30 15q133 -10 212 -10q38 0 91.5 2.5t88.5 4.5l35 3q16 1 25.5 -8.5t10 -22t-7 -23.5t-23.5 -13q-43 -5 -92 -7l291 -866l81 268q24 79 32.5 107.5 t18.5 74.5t10 79q0 46 -11.5 90.5t-23.5 71t-32 60.5q-2 4 -11.5 19t-12 20t-10.5 18.5t-11 19t-9 17.5t-8.5 19t-6.5 18t-5.5 19.5t-3 18.5t-1.5 20q0 57 39 100t97 43l10 -1q-110 101 -249.5 156.5t-294.5 55.5q-207 0 -385 -98t-288 -266zM796 251q112 -33 228 -33 q138 0 268 46q-4 6 -6 11l-248 679zM1429 328q183 106 292 291.5t109 404.5q0 207 -99 386q5 -40 5 -82q0 -135 -61 -289z" />
 <glyph unicode="&#xf206;" d="M128 486v485q125 -127 330 -127q30 0 59 3q-32 -61 -32 -118q0 -33 13 -63t28.5 -48.5t45.5 -47.5q-18 0 -54.5 -0.5t-55.5 -0.5q-183 0 -334 -83zM128 1599v65q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-128h-256v256h-128v-256h-256v-128h256v-256h128v256h256 v-1024q0 -106 -75 -181t-181 -75h-507q5 28 5 50q0 143 -46.5 230t-189.5 194q-3 2 -20.5 15t-25 19t-25.5 20t-27.5 22.5t-24 22t-23 23.5t-17 22t-12.5 22.5t-4 20.5q0 52 23 87t99 94q180 141 180 324q0 113 -45 204.5t-128 139.5h160l135 142h-607q-127 0 -241.5 -49 t-194.5 -132zM139 309q57 85 166 137.5t237 51.5q84 -1 158 -26q19 -13 62 -42.5t61 -42t48 -37t44.5 -41.5t29 -41.5t21.5 -49.5q7 -29 7 -66q0 -16 -1 -24h-588q-85 0 -153 50.5t-92 130.5zM228 1307q-21 161 50.5 269.5t194.5 104.5q121 -4 215.5 -118.5t116.5 -277.5 q21 -160 -43 -256t-187 -92q-125 4 -225.5 108t-121.5 262z" />
 <glyph unicode="&#xf206;" d="M128 486v485q125 -127 330 -127q30 0 59 3q-32 -61 -32 -118q0 -33 13 -63t28.5 -48.5t45.5 -47.5q-18 0 -54.5 -0.5t-55.5 -0.5q-183 0 -334 -83zM128 1599v65q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-128h-256v256h-128v-256h-256v-128h256v-256h128v256h256 v-1024q0 -106 -75 -181t-181 -75h-507q5 28 5 50q0 143 -46.5 230t-189.5 194q-3 2 -20.5 15t-25 19t-25.5 20t-27.5 22.5t-24 22t-23 23.5t-17 22t-12.5 22.5t-4 20.5q0 52 23 87t99 94q180 141 180 324q0 113 -45 204.5t-128 139.5h160l135 142h-607q-127 0 -241.5 -49 t-194.5 -132zM139 309q57 85 166 137.5t237 51.5q84 -1 158 -26q19 -13 62 -42.5t61 -42t48 -37t44.5 -41.5t29 -41.5t21.5 -49.5q7 -29 7 -66q0 -16 -1 -24h-588q-85 0 -153 50.5t-92 130.5zM228 1307q-21 161 50.5 269.5t194.5 104.5q121 -4 215.5 -118.5t116.5 -277.5 q21 -160 -43 -256t-187 -92q-125 4 -225.5 108t-121.5 262z" />
-<glyph unicode="&#xf207;" d="M384 1422q0 -58 40.5 -97.5t105.5 -39.5h1q67 0 108.5 39.5t41.5 97.5q-2 60 -42 98.5t-106 38.5q-67 0 -108 -39t-41 -98zM400 384h263v793h-263v-793zM809 384h264v443q0 45 8 64q16 40 50.5 68t85.5 28q133 0 133 -179v-424h264v455q0 175 -83.5 266t-220.5 91 q-50 0 -90.5 -12t-68.5 -34t-45 -41t-33 -44v112h-264v-793z" />
+<glyph unicode="&#xf207;" d="M256 1553q0 -73 50.5 -122t131.5 -49h2q84 0 135 49t51 122q-1 75 -51 123t-133 48t-134.5 -48.5t-51.5 -122.5zM275 256h330v991h-330v-991zM787 256h329v553q0 54 11 81q20 50 63 85t106 35q58 0 96 -29t54.5 -77.5t16.5 -117.5v-530h329v568q0 112 -28.5 198 t-80 139.5t-120 81t-150.5 27.5q-36 0 -69 -5.5t-58.5 -15t-49 -23t-40 -27t-32.5 -31t-26.5 -31.5t-21.5 -31v141h-329q1 -26 1.5 -138t0.5 -252.5t-0.5 -277.5t-1.5 -230v-93z" />
 <glyph unicode="&#xf208;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM384 1422q0 -58 40.5 -97.5t105.5 -39.5h1q67 0 108.5 39.5t41.5 97.5q-2 60 -42 98.5t-106 38.5q-67 0 -108 -39t-41 -98zM400 384h263 v793h-263v-793zM809 384h264v443q0 45 8 64q16 40 50.5 68t85.5 28q133 0 133 -179v-424h264v455q0 175 -83.5 266t-220.5 91q-50 0 -90.5 -12t-68.5 -34t-45 -41t-33 -44v112h-264v-793z" />
 <glyph unicode="&#xf209;" d="M171 1260q0 109 35.5 219t110 213t179 182t254 126.5t323.5 47.5q176 0 327.5 -60.5t253.5 -161t160 -231t58 -270.5q0 -246 -85 -443t-241 -309.5t-355 -112.5q-99 0 -186.5 46.5t-121.5 110.5q-73 -290 -89 -347q-34 -123 -127 -270l-149 54q-7 167 22 290l162 688 q-40 81 -40 200q0 139 70.5 232.5t172.5 93.5q83 0 127 -53.5t44 -135.5q0 -51 -18.5 -124t-49 -170t-44.5 -154q-23 -99 37.5 -171t161.5 -72q117 0 209.5 92t142 244.5t49.5 334.5q0 214 -139 349t-387 135q-139 0 -257.5 -49.5t-197 -133t-122.5 -193t-44 -229.5 q0 -147 83 -247q18 -21 21.5 -34t-3.5 -37q-16 -61 -25 -101q-7 -24 -24.5 -32t-39.5 1q-127 51 -192.5 181.5t-65.5 300.5z" />
 <glyph unicode="&#xf210;" d="M0 1024q0 208 81 398t218.5 327t327 218t397.5 81q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5t-81 -398.5t-218 -326.5t-326.5 -218t-398.5 -81q-147 0 -290 42q74 116 103 219l72 282q28 -53 99 -90.5t151 -37.5q162 0 288.5 91.5t195.5 251t69 359.5 q0 114 -47 220t-130 187.5t-206.5 130.5t-265.5 49q-141 0 -262 -38.5t-205.5 -103t-145.5 -147.5t-89.5 -172.5t-28.5 -178.5q0 -138 53 -243.5t156 -147.5q18 -8 32.5 -1t18.5 26q2 9 10 41t11 41q5 19 2.5 30t-16.5 28q-68 78 -68 200q0 97 35.5 186t99.5 156.5t160 108 t209 40.5q201 0 313.5 -109.5t112.5 -283.5q0 -148 -40 -271.5t-115 -198t-169 -74.5q-82 0 -131.5 58.5t-30.5 138.5q11 46 35.5 125t39.5 138t15 101q0 66 -35.5 109.5t-102.5 43.5q-82 0 -139.5 -76t-57.5 -189q0 -43 8 -83.5t16 -59.5l9 -19q-113 -475 -132 -558 q-24 -97 -18 -235q-275 120 -444 374t-169 564z" />
 <glyph unicode="&#xf211;" d="M160 1024q0 -172 122 -294t294 -122t294 122t122 294t-122 294t-294 122t-294 -122t-122 -294zM1056 1024q0 -172 122 -294t294 -122t294 122t122 294t-122 294t-294 122t-294 -122t-122 -294z" />
 <glyph unicode="&#xf208;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM384 1422q0 -58 40.5 -97.5t105.5 -39.5h1q67 0 108.5 39.5t41.5 97.5q-2 60 -42 98.5t-106 38.5q-67 0 -108 -39t-41 -98zM400 384h263 v793h-263v-793zM809 384h264v443q0 45 8 64q16 40 50.5 68t85.5 28q133 0 133 -179v-424h264v455q0 175 -83.5 266t-220.5 91q-50 0 -90.5 -12t-68.5 -34t-45 -41t-33 -44v112h-264v-793z" />
 <glyph unicode="&#xf209;" d="M171 1260q0 109 35.5 219t110 213t179 182t254 126.5t323.5 47.5q176 0 327.5 -60.5t253.5 -161t160 -231t58 -270.5q0 -246 -85 -443t-241 -309.5t-355 -112.5q-99 0 -186.5 46.5t-121.5 110.5q-73 -290 -89 -347q-34 -123 -127 -270l-149 54q-7 167 22 290l162 688 q-40 81 -40 200q0 139 70.5 232.5t172.5 93.5q83 0 127 -53.5t44 -135.5q0 -51 -18.5 -124t-49 -170t-44.5 -154q-23 -99 37.5 -171t161.5 -72q117 0 209.5 92t142 244.5t49.5 334.5q0 214 -139 349t-387 135q-139 0 -257.5 -49.5t-197 -133t-122.5 -193t-44 -229.5 q0 -147 83 -247q18 -21 21.5 -34t-3.5 -37q-16 -61 -25 -101q-7 -24 -24.5 -32t-39.5 1q-127 51 -192.5 181.5t-65.5 300.5z" />
 <glyph unicode="&#xf210;" d="M0 1024q0 208 81 398t218.5 327t327 218t397.5 81q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5t-81 -398.5t-218 -326.5t-326.5 -218t-398.5 -81q-147 0 -290 42q74 116 103 219l72 282q28 -53 99 -90.5t151 -37.5q162 0 288.5 91.5t195.5 251t69 359.5 q0 114 -47 220t-130 187.5t-206.5 130.5t-265.5 49q-141 0 -262 -38.5t-205.5 -103t-145.5 -147.5t-89.5 -172.5t-28.5 -178.5q0 -138 53 -243.5t156 -147.5q18 -8 32.5 -1t18.5 26q2 9 10 41t11 41q5 19 2.5 30t-16.5 28q-68 78 -68 200q0 97 35.5 186t99.5 156.5t160 108 t209 40.5q201 0 313.5 -109.5t112.5 -283.5q0 -148 -40 -271.5t-115 -198t-169 -74.5q-82 0 -131.5 58.5t-30.5 138.5q11 46 35.5 125t39.5 138t15 101q0 66 -35.5 109.5t-102.5 43.5q-82 0 -139.5 -76t-57.5 -189q0 -43 8 -83.5t16 -59.5l9 -19q-113 -475 -132 -558 q-24 -97 -18 -235q-275 120 -444 374t-169 564z" />
 <glyph unicode="&#xf211;" d="M160 1024q0 -172 122 -294t294 -122t294 122t122 294t-122 294t-294 122t-294 -122t-122 -294zM1056 1024q0 -172 122 -294t294 -122t294 122t122 294t-122 294t-294 122t-294 -122t-122 -294z" />
-<glyph unicode="&#xf212;" d="M128 1379l84 -108q121 84 141 84q92 0 173 -287q20 -73 46 -167.5t52 -190t46 -167.5q108 -287 265 -287q253 0 619 471q353 451 365 710q16 347 -260 355q-373 12 -505 -417q69 29 133 29q136 0 120 -152q-8 -92 -120 -268q-113 -176 -169 -176q-73 0 -133 271 q-20 78 -72 407q-49 303 -258 284q-89 -8 -265 -160q-126 -113 -262 -231z" />
-<glyph unicode="&#xf213;" d="M128 768v512q0 159 112.5 271.5t271.5 112.5h1024q159 0 271.5 -112.5t112.5 -271.5v-512q0 -104 -51.5 -192.5t-140 -140t-192.5 -51.5h-1024q-104 0 -192.5 51.5t-140 140t-51.5 192.5zM768 640l640 384l-640 384v-768z" />
+<glyph unicode="&#xf212;" d="M128 1379l84 -108q121 84 141 84q92 0 173 -287l144 -525q108 -287 265 -287q253 0 619 471q353 451 365 710q16 347 -260 355q-373 12 -505 -417q69 29 133 29q136 0 120 -152q-8 -92 -120 -268q-113 -176 -169 -176q-73 0 -133 271q-20 79 -72 407q-49 303 -258 284 q-89 -8 -265 -160q-127 -113 -262 -231z" />
+<glyph unicode="&#xf213;" d="M128 768v512q0 159 112.5 271.5t271.5 112.5h1024q159 0 271.5 -112.5t112.5 -271.5v-512q0 -159 -112.5 -271.5t-271.5 -112.5h-1024q-159 0 -271.5 112.5t-112.5 271.5zM768 640l640 384l-640 384v-768z" />
 <glyph unicode="&#xf214;" d="M472 1186h198v-629q0 -121 26 -187q26 -65 92 -122t161 -89q93 -31 218 -31q110 0 201 22q88 20 208 76v282q-134 -88 -271 -88q-76 0 -136 36q-44 25 -61 70q-17 46 -17 200v460h426v281h-426v453h-255q-17 -139 -62 -228q-48 -93 -121 -154q-74 -64 -181 -99v-253z" />
 <glyph unicode="&#xf215;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM256 384q0 -53 37.5 -90.5t90.5 -37.5h1280q53 0 90.5 37.5t37.5 90.5v768h-272q16 -66 16 -128q0 -212 -150 -362t-362 -150t-362 150 t-150 362q0 62 16 128h-272v-768zM640 1024q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM1408 1536q0 -53 37.5 -90.5t90.5 -37.5h128q53 0 90.5 37.5t37.5 90.5v128q0 53 -37.5 90.5t-90.5 37.5 h-128q-53 0 -90.5 -37.5t-37.5 -90.5v-128z" />
 <glyph unicode="&#xf216;" d="M256 790v467q0 31 29 55l702 467q17 11 37 11t37 -11l702 -467q29 -24 29 -55v-467q0 -32 -29 -54l-702 -468q-17 -11 -37 -11q-18 0 -37 11l-702 468q-29 22 -29 54zM388 914l165 110l-165 110v-220zM441 790l517 -344v308l-286 191zM441 1257l231 -154l286 191v307z M791 1024l233 -156l234 156l-234 156zM1090 446l517 344l-231 155l-286 -191v-308zM1090 1294l286 -191l231 154l-517 344v-307zM1495 1024l165 -110v220z" />
 <glyph unicode="&#xf214;" d="M472 1186h198v-629q0 -121 26 -187q26 -65 92 -122t161 -89q93 -31 218 -31q110 0 201 22q88 20 208 76v282q-134 -88 -271 -88q-76 0 -136 36q-44 25 -61 70q-17 46 -17 200v460h426v281h-426v453h-255q-17 -139 -62 -228q-48 -93 -121 -154q-74 -64 -181 -99v-253z" />
 <glyph unicode="&#xf215;" d="M128 384v1280q0 106 75 181t181 75h1280q106 0 181 -75t75 -181v-1280q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM256 384q0 -53 37.5 -90.5t90.5 -37.5h1280q53 0 90.5 37.5t37.5 90.5v768h-272q16 -66 16 -128q0 -212 -150 -362t-362 -150t-362 150 t-150 362q0 62 16 128h-272v-768zM640 1024q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM1408 1536q0 -53 37.5 -90.5t90.5 -37.5h128q53 0 90.5 37.5t37.5 90.5v128q0 53 -37.5 90.5t-90.5 37.5 h-128q-53 0 -90.5 -37.5t-37.5 -90.5v-128z" />
 <glyph unicode="&#xf216;" d="M256 790v467q0 31 29 55l702 467q17 11 37 11t37 -11l702 -467q29 -24 29 -55v-467q0 -32 -29 -54l-702 -468q-17 -11 -37 -11q-18 0 -37 11l-702 468q-29 22 -29 54zM388 914l165 110l-165 110v-220zM441 790l517 -344v308l-286 191zM441 1257l231 -154l286 191v307z M791 1024l233 -156l234 156l-234 156zM1090 446l517 344l-231 155l-286 -191v-308zM1090 1294l286 -191l231 154l-517 344v-307zM1495 1024l165 -110v220z" />
+<glyph unicode="&#xf217;" d="M128 1024q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM208 1024q0 -221 109.5 -409t297.5 -297.5t409 -109.5q236 0 432 123.5t298 327.5q59 136 59 266 q0 117 -43.5 221.5t-118.5 182.5t-175.5 131t-215.5 73q116 -48 204 -145t127 -218q54 -151 17.5 -320t-150.5 -289q-111 -123 -276 -179t-332 -27q-168 27 -307 138t-210 270q-74 156 -67.5 338.5t93.5 335.5q88 155 238.5 260t328.5 135q2 0 35 6q-208 -16 -380.5 -128 t-272.5 -293.5t-100 -392.5zM359 998q17 -148 100 -275.5t207 -200.5q120 -71 264 -78.5t267 49.5q-76 -21 -148 -21q-149 0 -275.5 74t-200.5 201t-74 276q0 214 146 373l3 3l14 14l1 1q98 114 235 178t293 64q163 0 306 -70t241 -193q-36 57 -70 96q-104 126 -250 200.5 t-305 80.5q-157 7 -306.5 -51.5t-258.5 -169.5q-109 -107 -159 -254.5t-30 -296.5zM612 1025q8 -119 85 -217t186 -128q110 -33 221.5 8.5t170.5 134.5q61 91 50 204t-86 187q-70 77 -179.5 87t-188.5 -50q-85 -62 -105 -157q-21 -98 30 -182q50 -84 142 -108q92 -23 172 26 q38 23 64 58.5t34 76.5q17 88 -34 159q-52 72 -136 77q-83 6 -142 -54q-57 -55 -45 -138q6 -37 27.5 -68.5t52.5 -47.5q40 -21 87 -16q-46 1 -82 29t-49 71l-2 3q-14 30 -9.5 67t25.5 66q22 30 56.5 46.5t72.5 14.5t73.5 -23.5t54.5 -55.5q46 -76 8 -158 q-18 -39 -53.5 -66.5t-78.5 -35.5q-43 -9 -88.5 3.5t-78.5 43.5q-74 68 -68 169q2 65 45 118.5t109.5 77t132.5 5.5q68 -16 118.5 -70.5t65 -124.5t-9.5 -144q-37 -107 -150 -158.5t-224 -8.5q-114 43 -170 158q-55 117 -17 238q35 121 152 191t246 47q131 -19 223 -128 t95 -246q6 -142 -81 -257q-86 -115 -225 -157q-114 -35 -234 -7q83 -34 174 -34q195 0 333.5 138.5t138.5 333.5v2q-10 107 -63.5 202.5t-137.5 157.5q-102 77 -236 87t-243 -49q-116 -62 -177 -167q-61 -107 -52 -231z" />
+<glyph unicode="&#xf218;" d="M128 464q0 -66 32 -125.5t92.5 -107t159 -75.5t222.5 -28q117 0 218.5 25t174 68t124 99.5t76.5 120.5t25 131q0 40 -6.5 74.5t-22.5 65t-30.5 53t-41.5 50t-45 43t-51 44.5l-85 66q-19 15 -28.5 24.5t-21 31t-11.5 45.5t12 47.5t21.5 34.5t32.5 33q37 29 59 48t52 52 t46 64t28 75.5t12 94.5q0 43 -8 82t-23.5 70.5t-30.5 55.5t-38 47.5t-35 34.5t-32 27h146l151 85h-485q-264 0 -421 -129q-73 -64 -111.5 -147.5t-38.5 -167.5q0 -56 16 -109.5t49.5 -100.5t79.5 -82.5t109 -56.5t136 -21q19 0 75 5q0 -2 -4 -10.5t-4.5 -10.5t-3.5 -9.5 t-4 -11l-3 -10.5t-2.5 -12.5t-1 -13t-0.5 -14.5q0 -26 5 -48t18.5 -45t20.5 -32.5t26 -34.5q-61 -4 -98 -7.5t-107 -14.5t-131.5 -32.5t-112.5 -53.5q-50 -29 -86.5 -66.5t-56.5 -76.5t-29 -74.5t-9 -69.5zM335 514q0 47 17 87.5t38.5 64.5t54 45t50.5 28.5t42 16.5 q35 11 76.5 19.5t77.5 12t58.5 5t34.5 1.5q35 0 54 -3q51 -36 82 -59t63.5 -50.5t50.5 -48.5t33.5 -46t21.5 -50.5t6 -55.5q0 -113 -91 -183.5t-255 -70.5q-187 0 -300.5 80t-113.5 207zM453 1591q0 110 51 174q28 35 73.5 56t91.5 21q56 0 105.5 -28.5t83.5 -74.5 t59 -103.5t36.5 -115.5t11.5 -110q0 -113 -59 -172q-18 -19 -44 -33.5t-56.5 -23.5t-58.5 -9q-58 0 -108 28.5t-83.5 73.5t-57.5 101.5t-34.5 111.5t-10.5 104zM1408 1024v128h256v256h128v-256h256v-128h-256v-256h-128v256h-256z" />
+<glyph unicode="&#xf219;" d="M134.5 1267.5q5.5 80.5 41 179.5t102.5 191q70 78 153.5 135t167 86.5t172 45.5t169 15t156.5 -8t137.5 -21t107.5 -26.5t72 -22.5l25 -9q12 -5 32 -14.5t74.5 -45.5t101 -78.5t97 -114.5t78 -153t27.5 -194.5t-40 -238.5q-43 -89 -97 -157.5t-109.5 -110t-115.5 -69 t-115.5 -37t-107.5 -12t-95.5 4t-76 13t-49.5 13.5l-18 6v-277q-1 -3 -2 -9t-6.5 -23t-14 -34t-24.5 -39.5t-36 -42t-51.5 -39.5t-68.5 -33q-52 -19 -107 -20t-97 11.5t-76.5 27.5t-53.5 27l-18 13v280q33 -34 67 -55.5t67.5 -28.5t61.5 11t44 63v946h312v-538l65 -13 q206 -32 329 60q105 78 128 243q2 76 -15.5 141t-49 110.5t-72.5 82.5t-86.5 59.5t-91.5 39t-87.5 24t-73.5 11.5t-52 5h-19l-66 -2q-217 -16 -359 -141q-57 -50 -97 -115q-27 -45 -39.5 -93t-11 -88t10 -78.5t22 -67.5t25.5 -51t21 -33l9 -12l-225 -201q-7 9 -18.5 25 t-40.5 68.5t-49.5 107.5t-34.5 137.5t-8.5 163z" />
+<glyph unicode="&#xf220;" d="M141 1431q0 133 65.5 245.5t178 178t245.5 65.5q141 0 260 -75q69 12 144 12q171 0 327 -66.5t269 -179.5t179.5 -269t66.5 -327q0 -96 -19 -181q51 -106 50 -217q0 -133 -65.5 -245.5t-178 -178t-244.5 -65.5q-123 0 -231 58q-79 -14 -155 -14q-171 0 -327 67t-269 180 t-179.5 269t-66.5 327q0 86 17 169q-67 116 -67 247zM537 775q0 -75 54 -153q52 -76 139 -123q119 -63 302 -63q150 0 263 46q111 46 171 130q59 85 59 188q0 88 -34 149q-35 62 -96 100q-58 39 -143 66q-77 25 -187 49q-89 20 -116 28q-35 9 -68 27q-33 15 -50 38 q-17 20 -17 49q0 46 52 80q54 36 146 36q97 0 141 -32q43 -32 75 -94q30 -48 51 -67q25 -22 72 -22q53 0 87 36q34 35 34 81t-25 96q-24 47 -82 92q-57 45 -139 70q-86 26 -197 26q-139 0 -247 -40q-107 -39 -164 -113q-57 -73 -57 -170q0 -102 55 -170q52 -65 144 -105 q95 -40 221 -66q93 -20 154 -38q57 -19 90 -50q33 -30 33 -80q0 -64 -62 -105q-65 -44 -170 -44q-78 0 -123 22q-47 22 -70 54q-27 34 -49 86q-21 49 -49 72q-32 26 -75 26q-52 0 -87 -33q-36 -33 -36 -79z" />
+<glyph unicode="&#xf221;" d="M384 384v640h192q49 0 104 47t103.5 127.5t80.5 204.5t32 261q0 5 0.5 13.5t4 31t9.5 39t19 30.5t31 14q33 0 77.5 -42t79.5 -119t35 -159q0 -85 -8 -165t-16 -117l-8 -38h416q53 0 90.5 -37.5t37.5 -90.5q0 -41 -24 -74t-62 -46q22 -33 22 -72q0 -41 -24 -74t-62 -46 q22 -33 22 -72q0 -53 -37.5 -90.5t-90.5 -37.5h-64q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-448q-65 0 -123 20t-93.5 44t-80.5 44t-87 20h-128z" />
+<glyph unicode="&#xf222;" d="M205 1168q0 83 59 142t142 59q100 0 160 -83q183 97 412 106l92 457q5 22 23 33q18 12 39 7l313 -72q24 41 65.5 65.5t89.5 24.5q74 0 126.5 -52.5t52.5 -126.5t-52.5 -126.5t-126.5 -52.5q-71 0 -122 48.5t-56 119.5l-262 60l-77 -386q222 -12 397 -108q60 86 163 86 q83 0 141.5 -59t58.5 -142q0 -55 -28 -100.5t-74 -72.5q14 -50 14 -99q0 -135 -98.5 -250t-267.5 -181.5t-368 -66.5t-368.5 66.5t-268 181t-98.5 249.5q0 50 16 104q-44 27 -70.5 71.5t-26.5 97.5zM307 1168q0 -47 40 -75q47 75 132 137q-29 36 -73 36q-41 0 -70 -28.5 t-29 -69.5zM388 896q0 -107 85 -198t230.5 -144t317.5 -53q171 0 316.5 53t230.5 143.5t85 197.5q0 108 -85 199t-230.5 144t-316.5 53q-172 0 -317.5 -53t-230.5 -144t-85 -198zM672 982q0 46 32.5 79t78.5 33q47 0 79.5 -33t32.5 -79t-33 -79t-79 -33t-78.5 33t-32.5 79z M737 739.5q0 21.5 15 36.5t36 15t36 -15q56 -56 199 -56q145 0 201 56q15 15 36 15t36 -15t15 -36.5t-15 -36.5q-86 -86 -271 -86q-187 0 -273 86q-15 15 -15 36.5zM1153 982q0 46 32.5 79t79.5 33t79.5 -33t32.5 -79t-33 -79t-79 -33t-79 33t-33 79zM1523 1728 q0 -32 22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5t-54.5 -22.5t-22.5 -54.5zM1567 1227q83 -61 131 -138q43 31 43 79q0 40 -28.5 69t-69.5 29q-45 0 -76 -39z" />
+<glyph unicode="&#xf223;" d="M256 849v209h263v-206q0 -33 23.5 -56.5t57.5 -23.5t57.5 23.5t23.5 56.5v487q5 136 104.5 230.5t238.5 94.5t238.5 -95.5t104.5 -231.5v-107l-157 -45l-105 48v92q0 34 -23.5 57t-57.5 23t-57.5 -23t-23.5 -57l-1 -481q-1 -138 -101.5 -235t-241.5 -97q-142 0 -242.5 99 t-100.5 238zM1105 846v210l105 -48l157 46v-212q0 -33 23.5 -56.5t57.5 -23.5t57.5 23.5t23.5 56.5v216h263v-209q0 -139 -100.5 -238t-242.5 -99t-242 97.5t-102 236.5z" />
+<glyph unicode="&#xf224;" d="M256 1152v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-384q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 1281q0 -53 38 -91l362 -362l4 4q37 -64 108 -64t108 64l5 -4l362 362q37 38 37 91t-37 90t-91 37 q-53 0 -90 -37l-294 -294l-293 294q-37 37 -91 37t-90 -37q-38 -37 -38 -90z" />
+<glyph unicode="&#xf225;" d="M128 930l365 291l531 -328l-369 -308zM128 1513l527 345l369 -308l-531 -329zM497 508v115l158 -103l370 307l370 -307l158 103v-115l-528 -317zM1024 893l532 328l364 -291l-527 -345zM1024 1550l369 308l527 -345l-364 -292z" />
 <glyph unicode="&#xf300;" d="M256 896v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-384q0 -106 -75 -181t-181 -75h-448l-448 -448v448h-128q-106 0 -181 75t-75 181z" />
 <glyph unicode="&#xf301;" d="M384 512v1024h384l64 -128h448v-128h-640l-128 -256h128l64 128h960l-256 -640h-1024z" />
 <glyph unicode="&#xf302;" d="M256 768l768 768h512v-512l-768 -768zM1152 1280q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
 <glyph unicode="&#xf300;" d="M256 896v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-384q0 -106 -75 -181t-181 -75h-448l-448 -448v448h-128q-106 0 -181 75t-75 181z" />
 <glyph unicode="&#xf301;" d="M384 512v1024h384l64 -128h448v-128h-640l-128 -256h128l64 128h960l-256 -640h-1024z" />
 <glyph unicode="&#xf302;" d="M256 768l768 768h512v-512l-768 -768zM1152 1280q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
@@ -42,7 +51,7 @@
 <glyph unicode="&#xf305;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM768 1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45 v-512q0 -26 -19 -45t-45 -19t-45 19t-19 45v448h-64q-26 0 -45 19t-19 45z" />
 <glyph unicode="&#xf306;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM768 1216q0 26 19 45t45 19h256h2h1h3 q22 -2 38.5 -18t19.5 -39v-2v-2v-1v-2q0 -5 -2 -15l-128 -512q-6 -26 -28.5 -40t-48.5 -7q-26 6 -40 28.5t-7 48.5l108 433h-174q-26 0 -45 19t-19 45z" />
 <glyph unicode="&#xf307;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM512 640v128h128v-128h-128zM512 896v128h128v-128 h-128zM768 640v128h128v-128h-128zM768 896v128h128v-128h-128zM768 1152v128h128v-128h-128zM1024 640v128h128v-128h-128zM1024 896v128h128v-128h-128zM1024 1152v128h128v-128h-128zM1280 896v128h128v-128h-128zM1280 1152v128h128v-128h-128z" />
 <glyph unicode="&#xf305;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM768 1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45 v-512q0 -26 -19 -45t-45 -19t-45 19t-19 45v448h-64q-26 0 -45 19t-19 45z" />
 <glyph unicode="&#xf306;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM768 1216q0 26 19 45t45 19h256h2h1h3 q22 -2 38.5 -18t19.5 -39v-2v-2v-1v-2q0 -5 -2 -15l-128 -512q-6 -26 -28.5 -40t-48.5 -7q-26 6 -40 28.5t-7 48.5l108 433h-174q-26 0 -45 19t-19 45z" />
 <glyph unicode="&#xf307;" d="M256 384v1280h256v128h128v-128h640v128h128v-128h256v-1280h-1408zM384 640q0 -53 37.5 -90.5t90.5 -37.5h896q53 0 90.5 37.5t37.5 90.5v640q0 53 -37.5 90.5t-90.5 37.5h-896q-53 0 -90.5 -37.5t-37.5 -90.5v-640zM512 640v128h128v-128h-128zM512 896v128h128v-128 h-128zM768 640v128h128v-128h-128zM768 896v128h128v-128h-128zM768 1152v128h128v-128h-128zM1024 640v128h128v-128h-128zM1024 896v128h128v-128h-128zM1024 1152v128h128v-128h-128zM1280 896v128h128v-128h-128zM1280 1152v128h128v-128h-128z" />
-<glyph unicode="&#xf308;" d="M256 384l512 512l128 -128l-512 -512zM576 1216v128h384l320 320v256h128l512 -512v-128h-256l-320 -320v-384h-128z" />
+<glyph unicode="&#xf308;" d="M342 342q12 45 22 71t38 66.5t76 88.5l395 395l-227 227l181 181q37 -37 90.5 -37t91.5 37l181 181q38 38 38 91t-38 90l181 181l543 -543l-181 -181q-37 38 -90 38t-91 -38l-181 -181q-37 -37 -37 -90t37 -91l-181 -181l-227 226l-395 -395q-68 -68 -113.5 -93 t-112.5 -43z" />
 <glyph unicode="&#xf400;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5z" />
 <glyph unicode="&#xf401;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM512 1152v128h640v-128h-640z" />
 <glyph unicode="&#xf402;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM512 1152v128h256v256h128v-256h256v-128h-256v-256h-128v256h-256z" />
 <glyph unicode="&#xf400;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5z" />
 <glyph unicode="&#xf401;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM512 1152v128h640v-128h-640z" />
 <glyph unicode="&#xf402;" d="M256 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5q0 -184 -111 -337l495 -495l-128 -128l-495 495q-153 -111 -337 -111q-117 0 -223.5 45.5t-184 123t-123 184t-45.5 223.5zM384 1216q0 -185 131.5 -316.5 t316.5 -131.5q186 0 317 131.5t131 316.5t-131 316.5t-317 131.5q-185 0 -316.5 -131.5t-131.5 -316.5zM512 1152v128h256v256h128v-256h256v-128h-256v-256h-128v256h-256z" />
 <glyph unicode="&#xf405;" d="M640 768l320 320l-320 320l128 128l320 -320l320 320l128 -128l-320 -320l320 -320l-128 -128l-320 320l-320 -320z" />
 <glyph unicode="&#xf406;" d="M128 256l832 832l-832 832l128 128l832 -832l832 832l128 -128l-832 -832l832 -832l-128 -128l-832 832l-832 -832z" />
 <glyph unicode="&#xf407;" d="M384 1280v128l256 128q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5l256 -128v-128h-1152zM512 512v704h128v-704h128v704h128v-704h128v704h128v-704h128v704h128v-704q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM768 1472 q0 -26 19 -45t45 -19h256q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45z" />
 <glyph unicode="&#xf405;" d="M640 768l320 320l-320 320l128 128l320 -320l320 320l128 -128l-320 -320l320 -320l-128 -128l-320 320l-320 -320z" />
 <glyph unicode="&#xf406;" d="M128 256l832 832l-832 832l128 128l832 -832l832 832l128 -128l-832 -832l832 -832l-128 -128l-832 832l-832 -832z" />
 <glyph unicode="&#xf407;" d="M384 1280v128l256 128q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5l256 -128v-128h-1152zM512 512v704h128v-704h128v704h128v-704h128v704h128v-704h128v704h128v-704q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM768 1472 q0 -26 19 -45t45 -19h256q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45z" />
-<glyph unicode="&#xf408;" d="M256 1151l476 -330l-183 -535l475 332l475 -332l-183 535l476 329h-587l-181 535l-180 -534h-588z" />
-<glyph unicode="&#xf409;" d="M384 1024l640 640l640 -640l-128 -128l-512 512l-512 -512zM640 512v384l384 384l384 -384v-384h-256v384h-256v-384h-256z" />
-<glyph unicode="&#xf410;" d="M256 512v51l576 384l192 -128l192 128l576 -384v-51h-1536zM256 717v614l461 -307zM256 1485v51h1536v-51l-768 -512zM1331 1024l461 307v-614z" />
+<glyph unicode="&#xf408;" d="M256 1151l476 -330l-183 -535l475 332l475 -332l-183 535l476 330l-587 -1l-181 535l-180 -535z" />
+<glyph unicode="&#xf409;" d="M384 1152l640 512l640 -512l-128 -128v-512h-1024v512zM896 576h256v448h-256v-448z" />
+<glyph unicode="&#xf410;" d="M256 512v704l768 -384l768 384v-704h-1536zM256 1408v128h1536v-128l-768 -384z" />
 <glyph unicode="&#xf411;" d="M384 384v448l896 896l448 -448l-896 -896h-448zM512 768l256 -256l128 128l-256 256zM685 941l96 -96l595 595l-96 96zM845 781l96 -96l595 595l-96 96z" />
 <glyph unicode="&#xf412;" d="M256 640v704l384 384v-704h640v448l640 -640l-640 -640v448h-1024z" />
 <glyph unicode="&#xf411;" d="M384 384v448l896 896l448 -448l-896 -896h-448zM512 768l256 -256l128 128l-256 256zM685 941l96 -96l595 595l-96 96zM845 781l96 -96l595 595l-96 96z" />
 <glyph unicode="&#xf412;" d="M256 640v704l384 384v-704h640v448l640 -640l-640 -640v448h-1024z" />
-<glyph unicode="&#xf413;" d="M128 384q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM128 971v345q240 0 459 -94t377.5 -253.5t252.5 -379.5t94 -461h-345q0 170 -63.5 324t-181.5 273q-119 119 -272 182.5t-321 63.5zM129 1582v345q243 0 475 -64.5t428.5 -181 t362 -282.5t281 -363.5t180 -430.5t64.5 -477h-345q0 197 -52 385.5t-145.5 348t-227 294t-292 228t-346 146t-383.5 52.5z" />
-<glyph unicode="&#xf414;" d="M21 230q-57 102 31 244l760 1237q57 93 134.5 126.5t155 0t135.5 -126.5l759 -1237q88 -142 31 -244t-224 -102h-1557q-168 0 -225 102zM896 512q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM896 896 q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-384z" />
-<glyph unicode="&#xf415;" d="M128 1024h400q45 0 79.5 27.5t44.5 69.5q33 125 136.5 206t235.5 81q154 0 270 -114q38 -38 90.5 -38t90.5 38q37 38 37 91t-37 90q-88 89 -204.5 139t-246.5 50q-194 0 -353 -106t-234 -278h-309v-256zM536 663q0 -53 37 -90q89 -89 205 -139t246 -50q194 0 353 106 t234 278h309v256h-400q-45 0 -79.5 -27.5t-44.5 -69.5q-33 -125 -136.5 -206t-235.5 -81q-156 0 -269 115q-38 37 -91 37t-91 -38q-37 -38 -37 -91zM768 1024q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
+<glyph unicode="&#xf413;" d="M256 448q0 -80 56 -136t136 -56t136 56t56 136t-56 136t-136 56t-136 -56t-56 -136zM256 1024v256q209 0 398.5 -81t326.5 -218t218 -326.5t81 -398.5h-256q0 209 -103 385.5t-279.5 279.5t-385.5 103zM256 1536v256q209 0 408 -55t367.5 -154t310.5 -241t241 -310.5 t154 -367.5t55 -408h-256q0 260 -101.5 497t-273 408.5t-408.5 273t-497 101.5z" />
+<glyph unicode="&#xf414;" d="M21 358q-57 102 31 244l760 1237q57 93 134.5 126.5t155 0t135.5 -126.5l759 -1237q88 -142 31 -244t-224 -102h-1557q-168 0 -225 102zM883 1536l51 -640h179l52 640h-282zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5z" />
+<glyph unicode="&#xf415;" d="M128 1024v256h310q75 172 233.5 278t352.5 106q130 0 246.5 -50t204.5 -139q37 -37 37 -90t-37 -91t-90 -38t-91 38q-116 114 -270 114q-159 0 -271.5 -112.5t-112.5 -271.5h-512zM536 665q0 53 38 90t91 37t90 -37q113 -115 269 -115q159 0 271.5 112.5t112.5 271.5h512 v-256h-310q-75 -172 -233.5 -278t-352.5 -106q-130 0 -246 50t-205 139l1 1q-38 38 -38 91zM832 1024q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136z" />
 <glyph unicode="&#xf416;" d="M512 832v320h128v-320q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5v640q0 80 -56 136t-136 56t-136 -56t-56 -136v-512q0 -26 19 -45t45 -19t45 19t19 45v452h128v-452q0 -80 -56 -136t-136 -56t-136 56t-56 136v512q0 133 93.5 226.5t226.5 93.5t226.5 -93.5 t93.5 -226.5v-640q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5z" />
 <glyph unicode="&#xf417;" d="M384 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5t-44.5 -222.5t-124.5 -185.5l-407 -406l-407 406q-80 80 -124.5 185.5t-44.5 222.5zM640 1216q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5t-93.5 226.5 t-226.5 93.5t-226.5 -93.5t-93.5 -226.5z" />
 <glyph unicode="&#xf418;" d="M608 1056l128 128l224 -192l448 512l128 -96l-512 -768h-128z" />
 <glyph unicode="&#xf419;" d="M0 256v256h2048v-256h-2048zM0 896v256h2048v-256h-2048zM0 1536v256h2048v-256h-2048z" />
 <glyph unicode="&#xf416;" d="M512 832v320h128v-320q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5v640q0 80 -56 136t-136 56t-136 -56t-56 -136v-512q0 -26 19 -45t45 -19t45 19t19 45v452h128v-452q0 -80 -56 -136t-136 -56t-136 56t-56 136v512q0 133 93.5 226.5t226.5 93.5t226.5 -93.5 t93.5 -226.5v-640q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5z" />
 <glyph unicode="&#xf417;" d="M384 1216q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5t-44.5 -222.5t-124.5 -185.5l-407 -406l-407 406q-80 80 -124.5 185.5t-44.5 222.5zM640 1216q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5t-93.5 226.5 t-226.5 93.5t-226.5 -93.5t-93.5 -226.5z" />
 <glyph unicode="&#xf418;" d="M608 1056l128 128l224 -192l448 512l128 -96l-512 -768h-128z" />
 <glyph unicode="&#xf419;" d="M0 256v256h2048v-256h-2048zM0 896v256h2048v-256h-2048zM0 1536v256h2048v-256h-2048z" />
+<glyph unicode="&#xf420;" d="M256 1024q0 155 60 294.5t167 246.5l-227 227h640v-640l-232 232q-72 -71 -112 -163.5t-40 -196.5q0 -176 108.5 -313.5t275.5 -180.5v-262q-180 30 -326 137t-230 269.5t-84 349.5zM1152 256v640l19 -19l213 -213q71 71 111.5 164t40.5 196q0 176 -108.5 313.5 t-275.5 180.5v263q180 -31 326 -137.5t230 -269.5t84 -350q0 -155 -60 -294.5t-167 -246.5l227 -227h-640z" />
 <glyph unicode="&#xf421;" d="M384 896v256h1152v-256h-1152z" />
 <glyph unicode="&#xf422;" d="M384 512v1024h1152v-1024h-1152zM512 640h896v640h-896v-640z" />
 <glyph unicode="&#xf423;" d="M83 832l373 671l112 -62l-267 -481h403v-384h-128v256h-493zM768 1024q0 87 43 160.5t116.5 116.5t160.5 43t160.5 -43t116.5 -116.5t43 -160.5t-43 -160.5t-116.5 -116.5t-160.5 -43t-160.5 43t-116.5 116.5t-43 160.5zM896 1024q0 -79 56.5 -135.5t135.5 -56.5 t135.5 56.5t56.5 135.5t-56.5 135.5t-135.5 56.5t-135.5 -56.5t-56.5 -135.5zM1427 832l373 671l112 -62l-267 -481h403v-384h-128v256h-493z" />
 <glyph unicode="&#xf421;" d="M384 896v256h1152v-256h-1152z" />
 <glyph unicode="&#xf422;" d="M384 512v1024h1152v-1024h-1152zM512 640h896v640h-896v-640z" />
 <glyph unicode="&#xf423;" d="M83 832l373 671l112 -62l-267 -481h403v-384h-128v256h-493zM768 1024q0 87 43 160.5t116.5 116.5t160.5 43t160.5 -43t116.5 -116.5t43 -160.5t-43 -160.5t-116.5 -116.5t-160.5 -43t-160.5 43t-116.5 116.5t-43 160.5zM896 1024q0 -79 56.5 -135.5t135.5 -56.5 t135.5 56.5t56.5 135.5t-56.5 135.5t-135.5 56.5t-135.5 -56.5t-56.5 -135.5zM1427 832l373 671l112 -62l-267 -481h403v-384h-128v256h-493z" />
-<glyph unicode="&#xf424;" d="M256 640v768l384 384h768l384 -384v-768l-384 -384h-768zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM896 1024q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v384q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5v-384z" />
+<glyph unicode="&#xf424;" d="M256 640v768l384 384h768l384 -384v-768l-384 -384h-768zM883 1536l51 -640h179l52 640h-282zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
 <glyph unicode="&#xf425;" d="M384 384v1280h256q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5h256v-1280h-1152zM512 512h896v1024h-128v-128h-640v128h-128v-1024zM640 704q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM640 960q0 26 19 45t45 19t45 -19t19 -45 t-19 -45t-45 -19t-45 19t-19 45zM640 1216q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM768 1600q0 -26 19 -45t45 -19h256q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45zM896 640v128h384v-128h-384zM896 896v128h384v-128h-384z M896 1152v128h384v-128h-384z" />
 <glyph unicode="&#xf426;" d="M128 768q0 106 75 181t181 75h7q-7 29 -7 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-1280q-106 0 -181 75t-75 181z" />
 <glyph unicode="&#xf427;" d="M384 384v288l455 455l-1 1q-74 74 -74 180t74 181l233 233q75 74 181 74t180 -74l286 -286q74 -75 74 -180.5t-74 -180.5l-233 -233q-74 -73 -178.5 -74t-179.5 71l-455 -455h-288zM1088 1360l256 -256l160 160l-256 256z" />
 <glyph unicode="&#xf425;" d="M384 384v1280h256q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5h256v-1280h-1152zM512 512h896v1024h-128v-128h-640v128h-128v-1024zM640 704q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM640 960q0 26 19 45t45 19t45 -19t19 -45 t-19 -45t-45 -19t-45 19t-19 45zM640 1216q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM768 1600q0 -26 19 -45t45 -19h256q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45zM896 640v128h384v-128h-384zM896 896v128h384v-128h-384z M896 1152v128h384v-128h-384z" />
 <glyph unicode="&#xf426;" d="M128 768q0 106 75 181t181 75h7q-7 29 -7 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-1280q-106 0 -181 75t-75 181z" />
 <glyph unicode="&#xf427;" d="M384 384v288l455 455l-1 1q-74 74 -74 180t74 181l233 233q75 74 181 74t180 -74l286 -286q74 -75 74 -180.5t-74 -180.5l-233 -233q-74 -73 -178.5 -74t-179.5 71l-455 -455h-288zM1088 1360l256 -256l160 160l-256 256z" />
@@ -85,7 +95,7 @@
 <glyph unicode="&#xf440;" d="M128 768q0 106 75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-384v256h-512v-256h-384q-106 0 -181 75t-75 181 zM640 384h256v256h256v-256h256l-384 -384z" />
 <glyph unicode="&#xf441;" d="M128 768q0 106 75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-512v256h256l-384 384l-384 -384h256v-256h-512 q-106 0 -181 75t-75 181z" />
 <glyph unicode="&#xf442;" d="M512 512v896h512l-128 -128h-256v-640h640v256l128 128v-512h-896zM896 987l550 549h-422v128h640v-640h-128v422l-550 -550z" />
 <glyph unicode="&#xf440;" d="M128 768q0 106 75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-384v256h-512v-256h-384q-106 0 -181 75t-75 181 zM640 384h256v256h256v-256h256l-384 -384z" />
 <glyph unicode="&#xf441;" d="M128 768q0 106 75 181t181 75h6q-6 32 -6 64q0 133 93.5 226.5t226.5 93.5q134 0 228 -96q47 101 140.5 162.5t207.5 61.5q159 0 271.5 -112.5t112.5 -271.5q0 -62 -23 -128h23q106 0 181 -75t75 -181t-75 -181t-181 -75h-512v256h256l-384 384l-384 -384h256v-256h-512 q-106 0 -181 75t-75 181z" />
 <glyph unicode="&#xf442;" d="M512 512v896h512l-128 -128h-256v-640h640v256l128 128v-512h-896zM896 987l550 549h-422v128h640v-640h-128v422l-550 -550z" />
-<glyph unicode="&#xf443;" d="M512 384v1280h640l384 -384v-896h-1024zM640 512h768v640h-384v384h-384v-1024zM1152 1280h203l-203 203v-203z" />
+<glyph unicode="&#xf443;" d="M512 384v1280h640l384 -384v-896h-1024zM640 512h768v640h-384v384h-384v-1024z" />
 <glyph unicode="&#xf444;" d="M384 512v1024q0 106 75 181t181 75h1024v-1152h-64q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5h64v-128h-1024q-106 0 -181 75t-75 181zM512 512q0 -53 37.5 -90.5t90.5 -37.5h818q-50 55 -50 128t50 128h-818q-53 0 -90.5 -37.5t-37.5 -90.5z" />
 <glyph unicode="&#xf445;" d="M160 747l232 201q-8 67 -8 76q0 8 8 75l-232 201l58 139l305 -21q47 60 107 107l-21 305l139 58l201 -232q67 8 75 8t75 -8l201 232l140 -58l-22 -305q56 -44 107 -107l305 22l58 -139l-232 -201q8 -67 8 -76q0 -8 -8 -75l232 -201l-58 -140l-305 22q-44 -56 -107 -107 l22 -305l-139 -58l-201 232q-67 -8 -76 -8q-8 0 -75 8l-201 -232l-139 58l21 305q-56 44 -107 107l-305 -22zM768 1024q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
 <glyph unicode="&#xf446;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 1024q0 -212 150 -362t362 -150q135 0 259 72l-699 699q-72 -126 -72 -259zM765 1464l699 -699 q72 123 72 259q0 212 -150 362t-362 150q-136 0 -259 -72z" />
 <glyph unicode="&#xf444;" d="M384 512v1024q0 106 75 181t181 75h1024v-1152h-64q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5h64v-128h-1024q-106 0 -181 75t-75 181zM512 512q0 -53 37.5 -90.5t90.5 -37.5h818q-50 55 -50 128t50 128h-818q-53 0 -90.5 -37.5t-37.5 -90.5z" />
 <glyph unicode="&#xf445;" d="M160 747l232 201q-8 67 -8 76q0 8 8 75l-232 201l58 139l305 -21q47 60 107 107l-21 305l139 58l201 -232q67 8 75 8t75 -8l201 232l140 -58l-22 -305q56 -44 107 -107l305 22l58 -139l-232 -201q8 -67 8 -76q0 -8 -8 -75l232 -201l-58 -140l-305 22q-44 -56 -107 -107 l22 -305l-139 -58l-201 232q-67 -8 -76 -8q-8 0 -75 8l-201 -232l-139 58l21 305q-56 44 -107 107l-305 -22zM768 1024q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
 <glyph unicode="&#xf446;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 1024q0 -212 150 -362t362 -150q135 0 259 72l-699 699q-72 -126 -72 -259zM765 1464l699 -699 q72 123 72 259q0 212 -150 362t-362 150q-136 0 -259 -72z" />
 <glyph unicode="&#xf452;" d="M512 384v1280l1024 -640z" />
 <glyph unicode="&#xf453;" d="M256 256v1536q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181zM512 512h1024v1280h-1024v-1280zM896 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5z" />
 <glyph unicode="&#xf454;" d="M128 1024v256h512v128l384 -256l-384 -256v128h-512zM256 256v640h256v-384h1024v1280h-1024v-384h-256v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181zM896 256q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
 <glyph unicode="&#xf452;" d="M512 384v1280l1024 -640z" />
 <glyph unicode="&#xf453;" d="M256 256v1536q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181zM512 512h1024v1280h-1024v-1280zM896 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5z" />
 <glyph unicode="&#xf454;" d="M128 1024v256h512v128l384 -256l-384 -256v128h-512zM256 256v640h256v-384h1024v1280h-1024v-384h-256v384q0 106 75 181t181 75h1024q106 0 181 -75t75 -181v-1536q0 -106 -75 -181t-181 -75h-1024q-106 0 -181 75t-75 181zM896 256q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf455;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM896 1408q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5zM928 512h192v640h-192v-640z" />
+<glyph unicode="&#xf456;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM883 1536l51 -640h179l52 640h-282zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5 t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf457;" d="M256 1024q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM720 1442l92 -180q134 71 234 71q38 0 65 -16q26 -17 26 -44q0 -35 -24 -63q-24 -27 -77 -61 q-68 -42 -95 -87q-26 -44 -26 -109v-57h204v34q0 29 17 49q18 21 87 66q83 53 120 111t37 139q0 111 -84 176q-85 65 -232 65q-180 0 -344 -94zM896 640q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf458;" d="M128 384v1280l768 -480v480l1024 -640l-1024 -640v480z" />
+<glyph unicode="&#xf459;" d="M128 1024l1024 -640v480l768 -480v1280l-768 -480v480z" />
+<glyph unicode="&#xf460;" d="M256 1280h128l86 256h340l86 -256l-256 -768h-128zM533 1280h214l-43 128h-128zM768 512l256 768h128l86 256h340l86 -256h128l-256 -768h-768zM1301 1280h214l-43 128h-128z" />
+<glyph unicode="&#xf461;" d="M256 1261q8 -158 120 -264l648 -613l648 613q112 106 120 264t-93 276t-251.5 126.5t-262.5 -97.5l-161 -153l-161 153q-112 106 -262.5 97.5t-251.5 -126.5t-93 -276z" />
+<glyph unicode="&#xf462;" d="M102 1024l304 -455l213 142l-209 313l209 313l-213 142zM772 543l248 -62l256 1024l-248 62zM1430 711l213 -142l303 455l-303 455l-213 -142l208 -313z" />
+<glyph unicode="&#xf463;" d="M0 512v704l768 -384l256 128v-448h-1024zM0 1408v128h1536v-128l-768 -384zM1152 384v640q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM1280 640h256v-256h128v256h256v128h-256 v256h-128v-256h-256v-128z" />
+<glyph unicode="&#xf464;" d="M0 512v704l768 -384l256 128v-448h-1024zM0 1408v128h1536v-128l-768 -384zM1152 384v640q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM1280 640h640v128h-640v-128z" />
+<glyph unicode="&#xf465;" d="M0 512v704l768 -384l256 128v-448h-1024zM0 1408v128h1536v-128l-768 -384zM1152 384v640q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5zM1260 656l272 -272l452 453l-90 90 l-362 -362l-181 181z" />
+<glyph unicode="&#xf466;" d="M0 1024l640 640v-320l-320 -320l320 -320v-320zM512 1024l640 640v-384h256q212 0 362 -150t150 -362v-300l-150 150q-74 74 -168 112t-194 38h-256v-384z" />
+<glyph unicode="&#xf467;" d="M384 1024l640 640v-384h256q212 0 362 -150t150 -362v-300l-150 150q-74 74 -168 112t-194 38h-256v-384z" />
+<glyph unicode="&#xf468;" d="M256 256v1536h256v-1536h-256zM640 896v768q35 0 63.5 13t54 32t56.5 38t85 32t125 13q70 0 125.5 -13t93 -32l75 -38t93 -32t125.5 -13h256v-768h-256q-70 0 -125.5 13t-93 32l-75 38t-93 32t-125.5 13q-71 0 -125 -13t-85 -32t-56.5 -38t-54 -32t-63.5 -13z" />
+<glyph unicode="&#xf469;" d="M256 512v768h1536v-768h-256v384h-1024v-384h-256zM640 640v128h768v-128q0 -158 113 -271l112 -113h-768l-112 113q-113 113 -113 271zM640 1408h768v256h-768v-256z" />
+<glyph unicode="&#xf470;" d="M384 384v640q0 53 37.5 90.5t90.5 37.5v128q0 212 150 362t362 150t362 -150t150 -362v-128q53 0 90.5 -37.5t37.5 -90.5v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-1024q-53 0 -90.5 37.5t-37.5 90.5zM768 1152h512v128q0 106 -75 181t-181 75t-181 -75t-75 -181v-128z" />
+<glyph unicode="&#xf471;" d="M512 512v1024h512q106 0 181 -75t75 -181q0 -87 -57 -159q83 -39 134 -117t51 -172q0 -133 -93.5 -226.5t-226.5 -93.5h-576zM768 640h192q80 0 136 56t56 136t-56 136t-136 56h-192v-384zM768 1152h128q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5h-128v-256z" />
+<glyph unicode="&#xf472;" d="M640 512l40 128h128l240 768h-128l40 128h448l-40 -128h-128l-240 -768h128l-40 -128h-448z" />
+<glyph unicode="&#xf473;" d="M384 384v1280h1280v-1280h-1280zM512 512h1024v576l-128 192l-448 -672l-192 288zM640 1280q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
+<glyph unicode="&#xf474;" d="M128 256v384l154 -154l230 154l-154 -230l154 -154h-384zM128 1408v384h384l-154 -154l154 -230l-230 154zM640 768v512h768v-512h-768zM1536 256l154 154l-154 230l230 -154l154 154v-384h-384zM1536 1408l154 230l-154 154h384v-384l-154 154z" />
 <glyph unicode="&#xf500;" d="M128 0l960 960l960 -960h-1920z" />
 <glyph unicode="&#xf501;" d="M0 128l960 960l-960 960v-1920z" />
 <glyph unicode="&#xf502;" d="M128 2048l960 -960l960 960h-1920z" />
 <glyph unicode="&#xf500;" d="M128 0l960 960l960 -960h-1920z" />
 <glyph unicode="&#xf501;" d="M0 128l960 960l-960 960v-1920z" />
 <glyph unicode="&#xf502;" d="M128 2048l960 -960l960 960h-1920z" />
diff --git a/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.ttf b/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.ttf
new file mode 100644 (file)
index 0000000..b6f125e
Binary files /dev/null and b/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.ttf differ
diff --git a/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.woff b/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.woff
new file mode 100644 (file)
index 0000000..da8be38
Binary files /dev/null and b/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.woff differ
diff --git a/wp-content/themes/twentythirteen/genericons/genericons.css b/wp-content/themes/twentythirteen/genericons/genericons.css
new file mode 100644 (file)
index 0000000..b10b86f
--- /dev/null
@@ -0,0 +1,197 @@
+/**
+
+       Genericons Helper CSS
+
+*/
+
+
+/**
+ * The font was graciously generated by Font Squirrel (http://www.fontsquirrel.com). We love those guys.
+ */
+
+@font-face {
+    font-family: 'Genericons';
+    src: url('font/genericons-regular-webfont.eot');
+}
+
+@font-face {
+    font-family: 'Genericons';
+    src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAENIABEAAAAAatQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABgAAAABwAAAAcaii0EkdERUYAAAGcAAAAHQAAACAArQAET1MvMgAAAbwAAABCAAAAYJdbaIVjbWFwAAACAAAAAJgAAAGyqWnWY2N2dCAAAAKYAAAADgAAAA4BYgHJZnBnbQAAAqgAAAGxAAACZVO0L6dnYXNwAAAEXAAAAAgAAAAIAAAAEGdseWYAAARkAAA5fgAAWkD4H3YjaGVhZAAAPeQAAAArAAAANgUfUT9oaGVhAAA+EAAAABwAAAAkEAMH3WhtdHgAAD4sAAAAiAAAAQpVkUB7bG9jYQAAPrQAAAECAAABAoDMauhtYXhwAAA/uAAAACAAAAAgAagCQm5hbWUAAD/YAAABYgAAAthC114IcG9zdAAAQTwAAAHUAAAFCuMEJONwcmVwAABDEAAAAC4AAAAusPIrFHdlYmYAAENAAAAABgAAAAbRQFLPAAAAAQAAAADMPaLPAAAAAM71j4QAAAAAzvWBvnjaY2BkYGDgA2IJBhBgYmAEwnogZgHzGAAJvwCyAAAAeNpjYGb/zDiBgZWBhdWY5QwDA8NMCM10hsEIzAdKYQeh3uF+DA6qf74ys6X9S2Ng4GBg0AAKMyIpUWBgBACOigvWAAB42mNgYGBmgGAZBkYGEFgD5DGC+SwME4C0AhCyMDCo/vnI+Ynzk+Qn1c8cXzi/SH7R/GL5xfNL5JfMLyVfmf//B6tg+MTwSeCTwmeGLwxfBL4ofDH44vAl4EvCl4KvDP//32LnZ+Hj4+PgY+LV4DHk0eZR5ZHnkeQR5uHlYeeugdqOFzCyMcCVMTIBCSZ0BQzDHgAA5FwqMwAAAQkARQBBAGYAfwC3AAB42l1Ru05bQRDdDQ8DgcTYIDnaFLOZkMZ7oQUJxNWNYmQ7heUIaTdykYtxAR9AgUQN2q8ZoKGkSJsGIRdIfEI+IRIza4iiNDs7s3POmTNLypGqd+lrz1PnJJDC3QbNNv1OSLWzAPek6+uNjLSDB1psZvTKdfv+Cwab0ZQ7agDlPW8pDxlNO4FatKf+0fwKhvv8H/M7GLQ00/TUOgnpIQTmm3FLg+8ZzbrLD/qC1eFiMDCkmKbiLj+mUv63NOdqy7C1kdG8gzMR+ck0QFNrbQSa/tQh1fNxFEuQy6axNpiYsv4kE8GFyXRVU7XM+NrBXbKz6GCDKs2BB9jDVnkMHg4PJhTStyTKLA0R9mKrxAgRkxwKOeXcyf6kQPlIEsa8SUo744a1BsaR18CgNk+z/zybTW1vHcL4WRzBd78ZSzr4yIbaGBFiO2IpgAlEQkZV+YYaz70sBuRS+89AlIDl8Y9/nQi07thEPJe1dQ4xVgh6ftvc8suKu1a5zotCd2+qaqjSKc37Xs6+xwOeHgvDQWPBm8/7/kqB+jwsrjRoDgRDejd6/6K16oirvBc+sifTv7FaAAAAAAEAAf//AA942q18C3xU1bnvWnvveSaZmT3PZJKZzHtCJpkJ88hkIIQhCAECCAQCCCooggTkjS9q3Vqpioo9tqJVK2hbsdpj90xA2mJrjtVaW0fLFbmt1h6xp1ptPcfe9rSKmc39vrVnQhBsz/39bmBm7732npm1vvU9/t9jLaIh8Ef/yj1DeKIlBlJLzIRMFP1i2Mbb/DXUZeNdIv2r0vPEE166+An4u/MJ7pnyBZeS0+R0+XVymi6HE+X4aaoQSsb9TSREyxEOvlQjwXfrSA18s424yJVEJgmZlmQhIVtSsqYki0lZn5DtKdlQkh1JuTYh15WoXJ+QhRNFoq9NJpOyrlTUCcbYcF7HG/C9xhCTdZaCncZkV6lgsiaTRbsL79sthlihgcZIx0Sa8TvO9+KgO2Xo7GnCSWVJIGWJk07DNUckiY57KZUj4Sjc1cE/GION9BLZmJDNJdkGHYR+2mEwJ6DHcp2lIEJ/dKWCg8YKYp1oHRYMRj7kypGCzQxXVKsjcNUxkVisIZ9gtXCCL0TszmRnOhKg5BW6mj5KV7/yirJfuUTZT5P7ju/bd5xPjG985RXuIWzdhyQWiEQlnaSVGHVdxE+uZ7SFvvkSciMQMyHzpWEj79DH5JqSrIfeBlhva0tyraVQD731lGSPpWCFM22pEIR+11LRWtAbczm5XpS5nOyBUfAOM/RbtoqyBsbS6IOxaKm1FtscYoHT5GBMNuAYv00jIoVtdpJKkkyaBAPEle70OR12rS8iAYHZ/0+ArHmq+8EPqVY59cMfKJ9IR6nx6FHlb0epxCPNTxNpVBJ8B1aV34a7Y0/uPnp09y3PPIPj5oh+PF9Nx3EX9LWpFDKWIYm8BYxVl6SyJSGTE7KQBErIvKWgp4wU2qRcY4GxxoBYOGsEB+AXaeWVghfQVoHuKHCEA0fwUn1XiHprVALRwSYtzgEHFyJcCvABDTAV3sNTCfimjqQJlU2sK9AvTWnYoCEwKcYS8pKhVDAD5Y1EtALFCxoDHPkccnCFdjpRI8bh207SnpN3bz1Ntt6tkfafPLn/C8+3lP8gcfe3PM94FH5JS4iROMhKImsTspgCZpStSeSJGkaZWiCIk/WCUUP9/aKRR8kxakGmgEI1QBRTSTZZZAdyUNFhwrsOEeTKpcoVEMdOgmKyM+M/cwryIynHjw/t46onQDSQr+PKcUr2DY07JRzSjNGlgaTIPoKiDnMSS8he4NA065++VNQT/GG9AN3SWwpu6Fa8VIy7sTE+ERrjlkIdNDpKxToHNtZBF2WHpRCFRn+pGPVjYzQE/c4Add164GtjfS5XqIsD/9a4PDHg30LUAc3e1hzwdawGJVYMTWQySsV0Z9ahdYgonxkxHc14KVwAH+MdmBY412XwTiSAT7kcMENkaDC/5cCW/OAQ42aCfD3WxI1QafX+8H25JYq0YMuWBVRakrsvvH+1IgFjcxqKh91K5RHKHlHUR0DWgbvIiA5pZiVB0kZkf0K2pXCKgMFrU0wThRJy/QmQ6EIY5qkgWICNGmAkDcBGKX+S9Tjop2IwEKFZPw5KbYsB2x5YJZBVBw6sUvJKXlp1gEfN8vivsEVS8sjR7Ca8K3k6ckBZJf3qcSqdaSGEp1U50EAPfWRmRctT7Kj+BOoks6XghKlpKhUCMB9mmI9ho9VWj1rEKRYafDgHFGTgsNZgdjibKrMAHabhznQ06+VRElw9NB2BC+qwm6gOf5TJZaa/f4V7gscyOXNR34UX9q1Ydnl8YBJPkNE+hVd///H+FY1TZsyNzr+z86K+o7882rdi+Qc3L33srslo/uCV1oNGIevIBiJfkZAvKcmtqEGofCXjxs6S3GkpNFKU2MJ66H0n9LPYP29BDvRko/i0xuLovmDJZUzVX3IFcJTlMrjRKuZrjDYPaWlL52cPXooD1VgPBULhjiQbnJi2klAqKRCrw0I02kgm3ZlJR3sEfOMi0Tg1cbpIVKuL82aqdWkddi/v0upMNE6jcSHaSk3U6fIKLq+uM2tHNRENkUepje765TG6i1ofVa5TfhEK0BnzrpMGs+u1Rr3ZJtSlui/PXr1nz9XZy3oSRuOkjvXZQem6uZnapqnLlvo4gyfQ6RFqGwyimzd43IE6ytdZm0OdUxbFaSCk/EK5TiC/pF+AL39U+U9l9zGlUP7jOl1zg/D8wpsnG5pnDT217ZGt5pZZl06knGCdGPZznD88UdRy3D03bN+/7amhWT594qI6E+3KCnXBxnpOV+O2wtiau/y83t3Q3OAEXZS8Vqj3addxTrRxOnxjc2MmjYzzJ5E+soDsIMU6QmJypITao7kkd6nztZDZNwuIhaVwIcxXbxLV6yKYsgtBHvJ1mto6wdnUHGppz0yexearPgLtRgOxtfZMzfcumIvT1Cwe0tMmz2Q877IW/YkLcmjj6ilMmA/mywJqHkw3b7e6Okk2Eq2l0awzlOWiWkKd/mSW47XE5rT1CNlIKBjQUi/n6hRcXNTE2bwUPmPNhr6FM0UfgpftW99SPlR2K2vg9WFox8Yb6Hffs+SVd5Wtf/c9R/+6567h55Q/U/FXdNbho/7v/Va57W9rf649MO+O9RO+qBz5gU+iC5yeqPYJOvd695f7nv77YtOkFZ6HXq5X/sQnz/3+b8HvcrMPKq9eW6Kd8zqkwWT9V5yz4tT9tyXK0U8fGFlA2+gtc5RjmvWPKY9xk3w9vaEv3mMpb/GkFtf6tY3UM5y7dEh5tPF+5ef3baSLR+JMfiTaBjjkN6DNYdgpXxY41JlKwmEKsGicZtJZp+BC/k4lXZ1ZrQ5fyLImXgj6pI4WSn52zTOhqDeRvPHxBUvnLkvuoXveMf7q/gMbpfWt11y1dvYm2rPz6XeUX39LeZUe03yDu3uzrs7981s0MT756CVXLH7iFzXR9vv/9w731Fv66to3L9D59Nd//MEv7l+KfSOAkXQSiZILCKpIUJYBMG9JWUzIvpTsLMlulXVaAHeeQDAKMNRgAVwpuwBLpQoTgHlcgOZkd47BhPHaVPTb/FNQv7qykWDAxHloEMFDICLtG9KQoX37hpR3qalWeTfW+5h2/vpL7lnWpijltqF9iBHw9qfwzr1IhZHa7iz9P8bsJTsv+JMyWs4hwAOLTyTNe9D3BjKf6VMHs+K2ZJFQNG7EBRYPUIVetexupv+5JHZdTBZd9fiMy2GIFesZNq4nYAsbKzY8JaZ7uFTS2Ux54FAP5+fRmHPSb9Nrn7wqO+R26/5tborONikvKCP8SzRBufl7NuW1PK+8m59helU5NnqEn01A21fpawbcsRiQx1qyl8h1CXlpSW5OFMJpwGSNpcKEOKD4RSqh142T0W6Q0QuT8ppSsXsN9rG7H4a0xlJYBe0guFcC7btRcA0ouDbnkuUXM6FtXorCTPUGYrcFsn0rL161BmW1UTzkjM3qR0UsL7IWWjpQaq0WaydIrROkVgtSG0GppVpbKtk5lXY6tTqtjtp40LadLqfa5qVqYw+XSaOuNSDjulCSBYpsHYnytNMKWho4WCft/YjOpRvp3I/27v1IOaR8TTn0UfpUSblx5u50eGMw4LCZ7G0TaUS+YYndbLfvvjCyIRi02KjZEptIgwvrATnU2zmbxqKt1eh5fv4k4ybl/QdfVR6iF27ZsedmgfuY3nrkjcs1U/g5n/kVOOO4Pym71gieh6hJw/G0OcBruNH7OJEu03EBHzVio63ByUHrw7T2wtxKf3x5JiB4jY019SanaDfmBukVm58/9XV/XKvhDpb3DtHtb7463NJ66wOqfzE2tzPIcnIFeYjISxNyS0qeXUK+AxA5HRyNlGwvFafbcfqme2H6GoAX16pzjJ4bOmpg8WV3Ug6Btk4WAyF8NNAF3LgO5lcHHscwb5q5AmctIOaNmhrvhFhv/+LB1WyuZ8NcF0lsJqjgAm+Cc128C+3udPEItfiDockrL2Pm1Cbi5KCZpK6ANhjgM6qkeqhfDIp+hwrrUWrBzIJ51cP9LDtNZf0BLd9DXWBPNS6cVZBgW6TTBd/k1AJrSDeUvB6fu9lrnW07cp8q2uCknGaqDyCtotFcfDcfNIdsHlHUx+ceumjgwK3lR278/YzcG9LiObbBULfHo9PR8qElt01z3L3ruh85HdKuG16i79Lf38hPyfm7wx4qaKehRlD9H/zqUfiVJufdT23g3LVNYqO93mFMz5x815GtRzr2Xnbqm0vWU9pQN7lhYmBigyds0V8hdD7ya0H4/TcPjAjCL4mKycCAap8Br94CunkWQ9owB3wCcEwVaasT5IEJ8pYYUtYBtinUmYDCHrEghhCWhepF6yGLua09rqIyu3MyBQAZp6A6bKA3gMLpbA9NJREjw3mcA2Wo0WX8XmrhAKVdsZBbvJauGRhYZ6NzlKcBls2usQ9OnTTXT2fn1t2+KNSbSvh9jhrlCIU/rTj7sstm969aferb/L+P+rkJnY3JmZNWzyj/J9e15bsbsjW2xsZgk3iX+23lPeU/Lz6LT5sAe2bJDUwDARL2x0DtdDBn0Oc7IcqdKdkG/pdFdsP4u9j4wQO2MCfYy/wG2a9yawwcEkuhTVVDOSCL18NMgOwXC/UuIE7AKmdyckwsdHQiiXxwu9CSUV3h8SYC0PbnkosRixkOoNWYyUCbQMnCaXT6ALegd/oiC9WBF/x1qtdbZqR2U/3B25MLuwIW5ePxRmSfcO2kCy+c1D1v/qdH+IbR9+jRdltL17CyjL74vafr2yINW4AZngRAtQCw1DTyXVJ0In4yJ+QJJaSQFgjSywiSKckZS6EJRg52MmAptDOXuTAdDp3uH/bUfDSHOGJGk9wAVBwp2OkncmRk2GqP2GJFePft8e0JakFMc+SQ1d7gjsTxj447l/NuWmjKgCC7clNQkANiUevswLN2a8E8AanZMQF9NNLco0o2mCoEyk6rw84J4L9EOVDQ0UjWpmIKJ3MGtKi+rSzqYOIcdhBeHaLlaIR7su/eYzT2lEwTL+94QvnZi5d/LzDbErj4Xp3n0Za71g4sC08xua67YucPLlc++PiOD7+xbMCq01kMuqDzxi8Jf7rqN688fOl1Lymf3vk35eqTF+eV3+Z2fbXz4C5OXnjNHUc3LErd81zu8q98n058+gQ1XX7wzWu/usbhrp/SUm8xpKgaXhvDsINkNymakO4AO2Yn5C60kcwmLmWkD5fksKWQAkrPLclzLYWZcDa5JE9W3V/wPZYBI85NAW1iiYHFqC9nikdMGltz1zTLArycbC04pyIBnSb0QhYDTWeDF2IwEps7PCE1eeqCz3geiGSDgWhnFoCpSj4mu+BrOV3OTmDSbGckClRmWAHJDNTPomEErgVVC/ABpsJ1tuOh+gZfvXuOZ1bT3gWPlvdc8tjf9971f75zfW5ondUjcBZeozFd0CeNbH3p5IJ9lyy63FYz0ds3fdF2i96w1VavBbT61Fl+hnIJvP7z0dYd66g703+ETv3ZtuPfvGzeTY8NL9/zWqveZDPkDTanOP/61cVbF7751Nf+fu/OBfGHr27tXXr/1thCm00JD6zecy0dZX70AW6VbpXmAChGM2khTBeyOIlJDRZRNUJjKRiA4nXV4JDV4vR1WiI+oXI88Fe67K9/VR7n7qycCN9VHv9r5ZwdK7iY6G4EF8ZPMgRjnPUl2ZqQTSwOh9E28D7ADZa1GFsrEo0FZcBkHa5r8vhUxncBdzdSaypJic0aDvFwCUyNxi3CowxopcXX2Vcu/MrGb5TpJrq61qL8Sbnjlhn52yz6LVu7Znfb0xOPLZdv1Fy+cbFysvwX5ST93/QnlKcr9LXKgOf+lbJMzRfSWTRh09+/lTD6VGOKZvDjrYRimJMgWsNgKzlXuYUNVDq5XyAYjxqFd45FfdD1xhYF35vRSUd60F8RSdsCejoAnpxsSMC3UjmYkJtOYLTSmSyEkCQWjH/VoZlJiXZmgsGsd2ZFGHUUeVFEoBpEiAYg7Vc/dbtvufTiGzatWHbtl2+f290mivQJZfC02N4xe84G4dHyHdf1Ttvma3bau6h7WaihPf4AfZk20BfuWH7xlHzwLNsRJDEymdzMbAdYCW9CjpbkhoQcSMkJFp4SSrJgAaGlcneFKAhhfcAoquCCp4ADabRgpExOMddzCkhs2AcjCuTkCeKw19PGvMpGjM2QQkMUZLnRF27BtoRYCE04nwEB9z7FAjZ+EEEwcOBP+UMVTgyrxgWckEiMgkieZUWk/oyGZPqVjyzKcWWZctyifERZFPGk8hzX3J+RMv3s7SxDMoSNPOntwXhd2/Ge3mbluZP4oerT/RlQZ4AtKGALhdiJCzzzZqBeFOgXB9+cyglGHowfWjAYL3sZ9GuB9zFz0gF0aXDA6J31Tcjsckg8pNUgnnOhHRgOhFvbEP6xSFyWdiZdFOmho8gGNDKVRm1UDPOusMi7snAe1YiarIG6MpR4uB+LLSL3Y4+n3CvarbZyr+eWb387w2mUd957j3oPvv/BB72c5j3lHep9r/wpvffbvJO+1lxPX6upUdrrm5V2n1Npq6mhx50PbdqkPK48TtPP0q4HnqWp8rMPPfRQOUCXPfgs1/TsA3RZ+dlNvzmLhzJkKXmGPMZ4yF6SexLy90rynETV9fnRONcHsYUaWLoHzq4pydeoxAKm+TGGmNqAaZbm5HvEQ88sX9d7AOlyjbVYJ1yNWqJBzNtqNXZvoCPZ3TNn3qVbbv/6Y/9aHGaAuccOtjUyaTIC5jnguD5N9RZv97zvY7xTswjudSRTuc/xjIRUMoSgOM5FUfJAxwjRSCgasWY7Q1lA1wLHJFLIwjSgYz+V70RD4oqwpwSdltPg/U40G3E0wFoA1U5mR1B44RJvZ+PgUEbQvOCVDo033AS74vJyzGTjBWWP4ldgMIFMwbhXJMSU3nl8rp436bVv/Ynetnby0n0vbd8hRztnb9usPH3wceWDvjl1S5fR9iLn/6Vy8Gf3iY994Vrq2zV31r3lr93Dm+hl1PrQN6n3slDgSuU3+7+hvH7VVWuoqH/gqk3/PnmKs3/mmxcusTtSyZUrF0TSejGVXjwwOVerjTW3JOKz6jiTweGcMbfPFo9Y+2KxFf45Wm5wd+8FV3jqw+9s3taVjQQ/uOlL3+e1Swfv2HbtwIqfUIdxw+K1yl+v2jHlc1y6t5Tb3vz7y7fdvPPYQ0P2jueuu0956tpdWzyNv93/EL3q6w/+L6/W8rZy74dfOz27z5xzfE2598R+GMU26c5duegX79Xqdm7eoPz6+mue9/oHLl7xzpx59u6eSy9bvLjeNdHVN2FZ3yyNtjs7EJ5qcWhoV4z3zvF4/UIsMHdRNKs3NDRfcMW0DQmr5ao752xYF4tt33nddXe6bG/cvnf79tZgU4A6fsJteLZnnn1yz/oNpOoj6gnw/nxyJbmR3EFvIrImIa8tyVJCvjUl31SSdyeL0k3o8kl7DLHiTRKe3vQlcBRvssjXIyoHxBlNyJtSciuIyJ0JOXFCXl8avnB9Qh+TSQkDHxeW5PWWQp6l+2SXRc6W5GwCTgo7oMlXGr7ct0PNcfkshT3QdHNSvr0k35Is3r4Hf+32W+GH99yOp3skcDvvUrGsYevIsIplZ1nkmSOFQe4TednID4UdIy1qc59FnjFSWMp/Ii8fKcyaqYeG4Zl9M2yxQt8MPXxouG/WTFtMHrQMLx1cBq2Dy/TyUsvwsqXLbTFyZMbMvlmDS5ctj1f+6DktDArn14NIZjSbUKxdYnHl2utRcH07QDeK7ihahsKeGtAFE0C0pbXQSgDRoTa4SSw6XUzKo9dDszuxfoeKGuxeQGs94P/GhQSNc2mQPowqxwX0dH0gYBhKBqNqN6G3zLlMvM7EZ9M9fLYHmsEHdoDdAQ+44tMBGNSZABXGeZphTrQDHWopf90LX9j5i39Zl6zzeTpD/iU2m6ve5gq3dfvqLc3eeL39nvuURuXjb8ye55u+8ouzbV16quUESo2NJtuUOXfuSiVnt1hfDcSmheqDA7Paa4O2VM+0UHPt0986+rurU00r4l2XX5B0TbampzRNWjO9w8EfZYAKnGP6y95rLu1KDm6VprfMmNKebfb0mm2xjoTT6Yn09ixPxuZPhQvLkpvyBxd3bbikr1XDiYJZZ6ox69xtcVuDoHPGfJ7++X2WxMKOVrOhRtTxfCiebU2mvFvvOiAc2pQPtuZWbt+R3jrZ5rHmLtq6qXzqjF+uYvovg87vAr6/CP3qvgTLrq5A9V5IA3cBgzYni+ksslw6AbyetSAUAJtQWAnKPU1hzi9cMohznhULgb4cWjorThTv5ZupVwMk16CWFE1qyB/OvBygIL/YAfoT9GtcGw12MBBkovgRXZy/qaZv+syDBwuP3L9rpbuhtuWqi6/ItsQ2br5285VLp4lWytWIvpap4fSmxTNsVv8F07sstGvaK7vWu7jg1EUrVg7k7bbeX+/NtTQ28GJjvcFwUueaNEH45iM/XTl/22QfZ2pqMBo0tllLvvLo725YfvtA1qapq9NplT/ytYFAe7SlzsY1eGvraH0gZgq188Xyu3W+lfO/PffmFXPa/WY95Sw3JKe1r1owb1JbTe1LBt/6TYg37wI6bgc6+sm14JUi3mopFRtakHANDiDchoR8eUlekmApwSXVlCCVr0vI3hPyCnBRS8WAl0WU1oGUewN46iXwyRWWQpyB+GK8jmUNe0D0rwfqB7wgTr5cIb4CjKPgaGjRz9uJAlUnymYQspYGuA1Sd/kGkCpzPMDuLRGH67ykE0/1iNiZV0oxnl1xTHVOHXOPoiA6oQh4SFlw/NH4MfSKmZ3I+H9wH6PhzuoTldvBAE6pw67ewH/wzRXkW71/15dO7r7rmhn9T9Kud3bbUvRLJ2/ZtfHCuU8qP3tntzid3tmZXnrNkX1bN3dPDgSnTFoyb9PyxqDfLwKoXLm6LebzOhoSmUCgoX5SbtHg5js2bsjlsumVl37x4ik5v79n2vr57QlXo9PR5IulgyHNfbtPfqm/dvc7ys+eXLVkaDNcTTJ9+R3a9eTgwI7yX/rnz01MjccXL1m3bEpPJNrYUG/XG6xml90TD4R8vp4OmzMUXJlMtLc3uFuic2avXnvBtJYWN4CyZm8yP6HN6fQF0hNdbr+f+QcgY1rMcSbJCiK3If4uRttYGrcOpzyVkHUnZLFUFHXYKLZiLYjYwN697D0IHKATWaEIBrvTWIihg9l0wLRGEVARllQE7QgThMoOE4laM0Wwbdfqxt5iNOlk2Bu8YSqNTNy0Ok91tW6rf/lMi15PD2T6OyJO+N+fySMeVvLTdvRd1ErB97nkkY9v14jt/qbFDyxaciAc6c9M6K3zR9kbPDrU39LRwsIBJbpXl9JtJxPJJDKbLCJryEayg9xAryaYe5xaki9LyMtLxeWXwWjI8kHg55Usgr4hJc8rFdPrrsG6mK6E/IUUxmEBYTsS8paSvEP1qr6YkNtPyN2l4WR3+5gVTZbkbkuhH2RiQUleYCmshbOhkjxkYcGdSEnehtbYVhq+LjJdj8Gwwo2VoM9P/rJLtYg6i6wfKbiFT+SGkR/++eC/PYLNBXeDHsNB9SOFWrhTN0Ke1ulr6+ob3FXL95lrZve620VrIZEGDdgvDvOaLiZbC6zF1oGlqBbXisNT+5azUP6QdXjCiktYAnW6mDdYHE3eq7Zs3/kFbIhYC6FrMOKxaDlMb3dOnicejrQnQpOnq8m7w+A4kZ3X4QUvFjVNffjdDmtB2wh2c8cW6ILNynyuSnLKBrLq0qBkO5kRjIZ5p0uNMamsgUAZhDdOs3Z4HMMgTrsTYTOGkjFH4GQhKbs2YE+D18KEGy6ZEIfSnexOtegHv5qFUkpXD6zpPvL7lRqr1UFz9QMdc9avn9O3VqOcmvfb73WvG9jZFTe9oDylbFP+9QVLW2ZtS2KJp23CpIVP0OB3n6TBJ55Q3nryu8pb26bFE9N6V3pbzV13/0uXudVrHvzB0UH6L9MugVba0Z5vb8/TgY5YbkK78JWBqwdWG+hLzppazawJE9d/bf3qvm7li7WrBq8eyK5oTE689d3du39/a7KzcXkm0dTfE8q9cuLpoaHDGzbC+ycre3tX9t4f85q7uszemHlw8H3Wwl+PP9Fe/vGUec0dLZMI1qVwGIOWiAd8wzuI3JiQ21KytlTUNqKYaikwdgtj3tpS1XE8U6pTX5Lr1cismKyk7QJqhUer6kLqeZj1RlasVJNjir1Q247soG0EC9sQCrPpFp82mC31zT4/skGtVTbm1PIwtbajh/qcLocummGlHDyLcYUzriy7PYX6WfUS+Lu6xAUJzYvU+aLmG+vhlNKX7tr7Er9w/TfwQveS8h8/4xcee8WfSPjpe7f96NnbNrR3rAzE4wGlec9zP73tf3XEj+O9Xx2746c/qdbr6DCvHSJTmL/oLMkeFm1ATzHMKCGWZFEtPACvMALjbRQxOF+LI/Q4mRVTS1Uq4QKsKOOI3UWzzmTWRTuRt3QGGgnoME0hgHtfLSSjJEKHhPDesIYOhed0ZsLKG8qb4Y0hLPZgeUvpGJab0dX01qGIsk/I5wU6FBmaA8/RSDiMGAhzf8+C39vL6rDU6j5iM2htGZeBZh2UN2glehVnU+4u/5kz063lD4WH6Ta67eHyR5Sz043lPyt3062cWfka/ygNKt9XXuYP0OXKy8qRcnb7OppSSuu2Kz/hfkxnKW8pB/kXaFo5qPwG7QTWwmCtk5U4yLgCGFuiEqSi4rklL5Xxw8iwxgXLk6oDHdqHNSz70P5wwKlarPMLsnyroYR1VMCOHHx7bQLrjUjBgHVaOrU4xQVYmAdQjaZLgi8pS5KU50dOA9ODZwRoUSpX6ge12F+B1JJ6ghWOWBkDU25EZi+YWKcN1C/SM+WAGEIrY+3KEFgNHi4VuBQyeNU/Vm/D+KeZhMnFjIMcjIOQfSIs0KCyDwaogiU5OBZeAPkp+ICRhusEuwf9i4agaD1c69A0hcIsguBxwDVmV/3hasHiWYECK3gNYELTcS5gophLxlKczT+iGvDnNT/avPlHyqfKO8qnPxJXPPj6B68/uEI90G9LtPUivvCZh+CMM5x5Cg7KQ/QNZYVyYgVRa8W0qD+A7MTLZkUoYe4ea0StCbkGa4sKts9MO6koWo6c3E/J/pNlwoopEWBgWPI04fepZZRn6FhDGkkbuapaQRnDqpJirBmVVCwKSqo+AVxQ0BiSrJRQl6RyOxNRtZaSA8qqcWMMAoZKxQmY5CQTPPDJkKWgZYSXDRbsKYa/4tVSukzKwV4irQb5QGb9oIeEdOdkqrJwIJIBFkYuAoABQ/iU9Gd4FogbZcG7iFtyRyLpCFhVCYQS/j6FZ/E+x566KB2JuBUCz7jH1WpVxtxJ7quOOZOQ0ykspjl3rNnzjvWcYXVV8ELDR19CYCCn4yY5NVJo03wit4+QYlt7CtHAMBzTYzhAqwFma4pEWya0MubLmEG+Erl/Sp2UfzLnpS4Pb9eBzo6CQbb9YyKBKaK8089zkrbd7W7SbXzq8+nF+VwcRzmNEcjWpIPnaYHUnkW3asQzQVIkSyaTqWQ6OVKlZFOiEOpIpVgx3kSgoi9RbEl3p6DFD6yRmYLYrS1R6MpDS3upkJsG1+cS/YJxRG8CmeV8cK+5VBACeLRguLzQ0gbn0VKhFQssohZmFNNdcJ4qFTon4ZEVWRS0eTifWiroe/E4NmEz/ikf2qCVh1f1+Hnnn0d56Tx/5yc7Kk+qas1zirDHtzP/mw7SQd31uusBVxDaw2WxAis5lWKlINVFAmaqtbt0UQrqabDW3tVB7/jd4fCGyOFI5DDXfDg8FDkcDh/+nbLzghV0sD29UL0fPhwZCh8un8Sn8JF34H6SjKv/tsGvzWcWx4VzzDStl2laNdbtVvVrM9abYmxbI5gsCDkMiE5IwYUlmaac3CQOU1JjUFVruodLejnw8iiLbcep1YLV0xaCzFxRiZvpf0mK+PXv73z9wfCZwmmhv6I1d37/64oo0f/avOJBjlf2Ysk02FlWOsef1Xc/WVvtvZdVzVXGEDh3DMHKGA7jGLy+84zCKw4TR00Dq5ezygYcVpG67Syy/I9GxWMd/j8e2a2c9M8Gp6iMcPb4JpDhceMLM10WTBa9TIt7W8A5bGaRgmY/qOXK2FvHjb0Fo4koTnIgWYyyGEQ0DJ9qieJpCxa3RMcoFEPpAwrJQk6OikVXE0vfua0FDdZO/P8j1ljE7Z8RrRoe+x+Q7qxYlgAS1KYn2uOkjtVYxpBLahKytYTJuWjFFrIFGUAvcMs9J8YlvMBLbMcclwd4pUbk670sgzNBPGQUrM0BptGjCC90JkeTH9c/YM2Ex4cDFymiCgCLCCqiPOCCZGcW0Cr4VDrO0ulzWrQ+axUQnbqC1tA2WrOGfqpor1D+Wzmu/PeaP9Jt81741fNz6U7lroff3vhCv1DJbu1nsEkg9NS67dvXKhpFs24bYMpTyl3zBwbm0R10+yOL5pc/VB8+yVVhFWDaKi0QzzYCLVIkzzxyoIBBpUA6gXUypNDcCi6GpUnMsenOG4nO7HJ7wpF2LO+VBWtRa7XlquME51LHBkZdZuqiUcr8TRqxZbFsAdUXkiEYsFEni76y8e77t2/fvW4LDEu586PbwhdpyEWj7Sf3t3UqbSY33sCB//k2ei0jyL5/u5QeN8FtddSX3h1fNB8/9yZ+rjyw/6RJaessH7k7juP/863KbUgTehk93tm2/yRR6w05ieHUGkIMHGbTDBS8B06ieWUE3mheUkbYmzLCk7Ov2TNErbdktQ416AvQsS+R+PzoCLzxeWl0hL2NjgDIPeuaPYMyLVUwXw1orHZyC8EqCUR5rmSyaGbCbDaBWIqOBjSkrNC8YAwzm8pkOg4uQbXm3AI8aivJtupqIcwa1LNEbSEBfGsBtFHkAkEMo7vsWMMzQV37YgDGbcPFMJwhx9zFcAVcahyIeMf/U7O0RDWczGwi0OzPUAQeZJRUrB5aOGxAJIJY7DRxoxlkWVWpTLiRcn78C9oFcxpxHbN3hHrB57kXcDAxgGtFeaqpwdbfHKFv0jeP0N+UDx8+JNyoPF1+n85VDnEuOodyrvL7aL9Uv0aCqTWSVpaf0QGVQMQ11fovdLaFEq6IKegxYEYxHm3gdLggBiuWJOQNaRTr7UF1CPCFoEUUcFHU8v8xPx+1iQFXwhgoWwpE0ZHhySm4AyOEMeJ6mnKeB3IoqL8FNtcj2hH4nJ7VqeFnhSzNoozgSwJHbWQUGQ01VvsqbmCVMg/f4ZMjvKTkR+EbMCmg3ivX4XvFR4Rvhm/1MVTGw4gNTNeDx2VE+eWJqEZyKVv0gz0m6kBxSRgu1ygzl64ssSGOszU6tsahF6tHCqbGFKsf0TN30YZpX7bogZ4o6G3AkipSNldX1bDCqka2BgIoPBYIEtkyAH+aC8EpAE03dfgtHAlRsuXAFvivVtacJuC+HztG99KFtOmnm06TXyjfUSKchT2CU6OW3hyjq18Bv4ls+qnyH8r3lG3HqEDfoEt/gWMgYHt1f9Q9xWhdX/FG7Uy7m6HjDQk0b5iLiGRpD3W6qBM9aFvKVu3q/G3LuI9zDz44ifv7sm0HP/kjd0NqOK38helbSl7eK7x+8fTpF38a2/uyhi2tGz1c1a38WG2JlURInFxKEHg0lIoNGLMnDU4wryDoTSU5jnHI1lJloaAZhbpo1uBD5loMBCcScssJuU0NAbW1YJi+IaBhtqapGUQ22qaWUfhR7zpd6AlGWcESVwnJsaVLWlZKlq36ihLt7KdTnrv5/WXhOUORHQ/sP3nl3KHw1of2nwQu/3m/8pPnbv7Dcko5NiGgY8l3j69ZHh6aG9l2cr+yZmhOeDs6lthI6TY2I6SyPoytdYpiVWIEC+2wUNtaKlrZUiYr5jhgCnxqBfpY9KuJrU1DBXZGbemZI88K0s1NoLY07gjaHrtYqG3G5CFYnAYW8NKLhRq2nqbWigqM5tSot2h3+s6sWGKxr1TFvawsaQKu5ghbjgfdB80jwQGvlE8QPvB5VPK4TIlTlyepLuXzSjdecQTvlCW2ZI/VEgFH3qNFeTERJ8w3Lj1D7ewaVwRhV7EUKOSC3YJDEmpzLBdWAUV2LYavquVXVKogoOULlPXK+gUHKwsHxxDPB68tUIbovgW0pPztKN5U7doqtGuat1E9oWJx0SC3SnqbjqB7IfikEY6sKiN/wqTqsb/qukLvuJWqmoqAj4WBcF3VmQWDevIxUV+0srL0zPs4/0EkIfAfqsE9ISkbS0UjW+ZmBHsma6BBNU6+khxKFut9rGy/CW5Zkyz8x9YI8rmCrx6OQXWNoDUb9YtRTOpaXWIkxFGxGSQ3k+aiolPAikmdi5JrN/yOk/4wa8GvDx5SfvM4L9le71sI5zT0ONwRyIPUteF3ZekPfT+4UlY+jCmnvCfojPJRDp/74TqZ2mJU1/y68sOjDyrvb/idmqvhgaYCrsF0VOmEQS0hUdCMLROkkoDqG4lAqnYIJwHp21KN5ejUaJhepQmWWOE3oJY2jH1RmNkgAQwQLrvE4NooOptobQa4vJ5o/h2+0cbQ680Ew0IupjyaWG6kOYlrHUHu/EkMP9eqS+W04wv9zpQqqTIXUIFtuFqkVCtaMeVeCCBaaPI2I48WeBfc0Zsd9erSg2GDyd6gJuCBwxCwd6Z7aNJL7SYaiFRxrKFyb4Du3KL8N/2qNDL41ae+OohvrVsf3rr1Yfpo9Q6f5/b3KM1gMcn6yiODgzSHD21VpLF7Z9klXKGcJEhTdYWykfEtx9Yp47pkdSlyQUMA7uiNcCZUlAPFhXb+RnpG0aMx5NlS1zL5yxkdz401KtLZGt6g4rbKOmnVk6hGRu5ns13L1mm5U3IOy/2wii6Qkqew7FU+Ibem5GklOcJW5iRY700p6Dqu5+1UNcf4gAgMZpgTm0IhVxJtiA8DIXBmwRhUoRujHZNLwwZzTy8+MFldK6oGPAqTu2DgWAOlclcF1zEuCzr8maC1Gj38zNE6DuHZxq8qPwvtAbbBSEaEQbdx/y8ah/suomxhMb4wFoIQ8FNQRYAGRx9jj9PIWYc32GF0XDBErS8FzIXx6kaSIGhVeLY4iGeGhTdgRpQ3ob1sYhoXjUgJK/3RvGN0sbIiiyW7wPtMVXKe0r4hne7o7i9fkji6bf9Jl6tSGcjtO77PE9x9dNUVu07u7+lVF6Gjjsc8hqBG/4GHopH0VLVcz26mJhoFRwKj4y/SOXPe7z8+h3rhOOdYv5KjByg5cBoRpQ/vHu9/f84c5Z3+1/rfn83NUnL8L0+TA8xBpYggNeia6VAn69g4eVVlVMp1q7qiast5Nd5bjfKqueXXNB9q/hVUtHtsbaohoSJBXHYqa9SkELosUabelO8spR8qtqV0Ka5KXzqo2BTbIF0K9sRGX9NK7LuA6bPUD5+KQuOHS5XvoH6iS5fyI+xZ/BjLK+S12H/0LtEjghbAlGB/yiMCAOE8O2PPoZ3K43OAvQ3sgxz4V3klzxMuXwYva0TJj9WU89BJsNciKcIFTDOgUYGRATxOXl2gTkFDQzc/5zmQeVTQ6lL2qp+gkdi2DVZWG43+ri6ByAP9ARa6YQj5U+gjR9RSX2RGC15oJC05a6+H80VJv4/UL1p8HSm2Wr8o+iei4AqJoj2UxjbAeo5wBtv0iWJ9Sxe2GQAkTshhW22i2NTGIql1paKnHSOpFJUHOVEU1L0i+FJRazSxM+b9Fe31TXhlKxWdbi87YzmRYkhVGcFSMYLR0yRmSABQFtNd3UkWQC12TuqBs8K0yn4SZ4Kenw2C/k+uOSL94z9OOnsDijL5f7tmLMGxXBPLC6EOnsryQiD5jVgXUN2zomlc+bJYjeGDFkX470Gbh1Ere+6cTFoggstXqgaCw3X9akoNa43VXTVUG0HUVBuuYNpHh3gyOj5vpfZPC7IcIV8i2JlACZExgqEIA0N6QDwqpGCl2MU6G1vgb0ZdFlXXkyN2kuuSiJSM6qYFLFeMdcahBAbyCj4jrivTaDm1ulgWwGQTIxN0meKlXIdYSo1+G2gGADLYAL8jmDl7yKExe6hu/wC+Jg5VGj/4SpoOvQK4f5qwPSKYaIyRYX/VDWLxDbXOBXNaDVg/ZgSPIIUOokNdx2ms5u60NZhrKWq0SAANNcSKWg3Lm2OBE4AXK9xvKFVXdfrtBD32CMFpwxH4K0c0Mspbb50mbylvsTlib4L0nvJIu/IXWtdOL6XrKAtFoE1Sj5X1AES1Mc0wW4tJMYKrV7zgtqWq1sb7WWsDM+Q/ARPBZiHkB1tbE0G85I0AePL5Q+ih8GKxkQVd/qEpwlL/gIYdKNBbq/2MVcK9OBRpiA5RhrsBFIG29/nG2yi1YBDe1PGcsZkBXA/sYwPxgngki16Gtr1sIF6E4z6LOkRco6AuTfD6YDAuwvpfoM5/2ntM6TJ7em7PWXcRvimqZf1sr1VOw/xnJXZjAI18NbNcGuaR4HYemAUt1rLitloLkt42tsXI+OScheHaosWMD1rAg0a3i+XdipzRipEvtuYC49UCNurVRtwKRhZVAdHhJGRFA9o6DEVjtyT0cDAIFFEugpPyG5yKfShj/ze5MJ4/Vn6D8dFYHlcgRtJVHYdRtcM1n+l2JRKFPZQ56JVRI46JKmXOgOhHg0PBcPEqHZHB4Uri1LUm3JiMiaAFZxIMIjhwmTRKlzY1TguCX6BlmsRWGjZqcVeWehYNMTKoVDCCp1VwNuTOKEMxGNDiogsH6IZORISRdBYjflhfwKrB8qPq0gsebMfoKxlVGX6KGkJCLZC9J8vWIZEDulW6VeAXd+K8Rlh5VqcahckCxDkhd5TkDgurJnWzzGqhg8e0vEZfO6EddVpaHLaE6tjSEbf1sOiob2oOshhIEgTtsIf4Qy24x4ncKQ5TTT1uqCGbrYe1xjqLzaX6KVmsZIpmNZ1ZPusCzJZ18U5X2IV1TjqXLqzV2XRYzhjVRW2RqKaq9w/8Qa//wyQ6MdHtuOOl6ZbpL93p7ErRiZNYs/Jq21QnNBv001+6w9GVUl7lIgyFcX+sNnYnzvcwfony6qTKd0M7Z6yAN/6s/ZfYbKo7MLnHrNnYnkYudQcmnDkXOG2HcQcm0c6o4jYj9bQ6YnWcswsT27EoS7U22skWEJ6zG1OSth2/9QvlGbPK3NFZyvHjt52zL1PyuHJ8Fnf0izRVnrHrtuO07Zx+byIon+D9mJn3Y8QobKW+pIJHm5jmr2Wrprlk0cjKHI2o6o0WNAg65vagodYn2Rh16MKZbKCQRLFgBqll7ipu08SwLC41dWDyyFLBxdUCNNQvAsjvKGK/is0+zA5azLOi/yKQU79gJqu/arjOyDBivCZS9dnVgJWgUv6Mz872E2ABY9XJQcj4qRqPIWNxAO/ZsYPq15XGBRFQflSPX40zs32OJLZfGa5P01U+VMGo+AmbGsmFIai/qwLWcZ/lznyWRw0w9lnKdoFSd9ZSt3Eqs2+o7PNExu/zRKr7PPGUbVSir2KuaZW9Sf7/oS46DnWdKWQaZeuEkTAV+IHICm+cUmGXhpzKjIu9Vvqo4q4bSLEJ+/j/iLx045DX58CuELDkIU6jFZqZ1J0XcdmqiMtf+Xd+xFXdb0tSR3n6rJFzn4VcZdx4ipkBtbDr1HjUdbYsukgH0yF2dY+PsRmqT7C949REkA7tvFkEg5T7nD3b+JQYPHfftiLrV2xk5LMqgn+PdWYU+nlWf8xj/bGx/piYZR/fH5Or2p/a8/VnfHj+3P58+0zs5rM9EpLj4zfj+4R5zytZnxIlrLv2sB2R1OwnatumUrGJ7UHSZMNUugWjkyj+uIFAE+CGw7yxtq6NmamI+LRBMLfGO1JqbVmqOpbW847Fxcriseod/3loCivlqxX0wYD1c8fJrfzymkiju74+c0Gj+2XROmMgHF685KuHas87dP74oT6L2Bhsagy0trdNywU8dkd7ZtKkhZunTTuTsmBreNWcBagrm8jyWgA5VKEDXvPRt1mC6O1znsWkEjwrsN0GcZdB+rbiUz/B8l7VfBnm5KzECTKJ1HawiJcJdD83tilbTRJj5hgXRtWQsvltNGhLRYM2dp6iPJzDbw/SxYMgBo4TMWmkcgmC8Ue41LCYdBmVAOKlsYtKXlHViaCy3Jir7bRGQmYajQgfW7Zwt3G3bbH8XHltyyOPbFFe09yhPD9UfpC7Yoh2/0kc+vrXh0Tmz5C19KTuAW0zKHgD7h9po1nepmbvMPlrW0s7Xj927HW66WNKPqb3vE4TyrHXfykQJbeX5mhu7+iyHoH0jD6+l75IX9yrvFipSQBtVcknNpAw2U5QNtwsWNhUwhC6L1XZqC6IMUJW82hEzizogkkgYBMjoAYVGior/GiTutGFP6lmhDGn35zAckhAB00YDMWwaDAMZzyXY1un0TBLYxrO4wenRBUL+3m2V4dWrdYcq2XK9Et0rNBCzXxKSiXxiVJXfaqfZir7iJw+z7g96B2q4/aoK8e9bJRw7VYLg21qvVGjG/dt1KGf5XZVh2LyIMQ38Ll/NpjM5w+CZUP/Yfel8/S7mZB/8HsYYYt+3i9upBb6/EXKvsP/8FdnKB/RF/AptjdeRe40oNu9LP6vHxfx1luBCryWVGoxUIR5MD1J4hCjcRrEXY9YGQOmawC37ZvzzJrTiDlYXQP+Q/yg4KaGyvF9c+YqUiWeWJUbN8uhYozdlMBELylwtZWlJoazfoee5yfO/tpxuSIeaJgmiIlslV1SixqhGgVgOsFXRT5+/E2NwPYnqSAgMclWt/ApdEDjPG7pwAr0grlUz8a+mZv7+zfPRI5Tz/o29qRyiB5OEQzvY5AaX+Wxs7G9ZHCvUZE4SD/zqNT6aFoqaulYUIIf22NSrSwQ1FwOAPOCoAPDoDfWmK02dT2GbMqNA4tZrMhvpv5ohDn80J3TmObhydYtZbJlK88qCFiUCcgGfw9vhT/+YUrO8vccIDPziGrRCzXOJMv56FXBEU7IzlJRcGJnBeysU/UYakrFGrZFVg0AHSZOLmdVnCpoDNwCH/HQ8ZhMXS+AzEvb6OO0jVU8Eqw15TD8TBm/SjDdMMWV4o9+PsOwCcbpOMLipXWsx0sYDjaxPVvVdQCc2mWgo4m5CyZ1m1bAXm7MjmtUsddYWTE6KThMIq5rkJ0iXMqeSjhbZAubdGyVUzCcQssZo5nKEbswtC83sPbobmVkBFO4I2oxCoLbfUNLZ0UfumT3UUwBS8waYn2Q2ucapHANm38OQ7cFXp9Sly2o2VGsAZ7i/NP7rAaYi8v6uMxZCgbtJ7iTJ6/9hB/meL2hUgGMFM6mbMGsXxfkUzpOapE+klroCDtwhEXRykSq1gVJDPtj5Kx3XDU4VavBAZnUlHBr10oG0QYkqqFqjZ5GLBhMqB9FARFIbS43lluMUp6r4grE+5iJUfIjFVTNPACJy4+UV1EfPYMNNGx/D+Q5DUNxDsD+VlLdv7gpUUm12ERXVufCGIorymQzG3VlRcqyttID7z7wAALWBx54l66FkcIRrh94AFrQMuMlrsiAw+i7WHOjEPUTgsSeY/VWGN8fOW98P4V1VyP4bzSv5gzgUs80JuBvbGW3Vewi5FndFsfqtli7nozm4S4V8pWaLg7zHaIAjfj6WCL/F8P1u2sAAHjaY2BkYGBgZjjy6Mpmh3h+m68M8hwMIHDua+N+ZJqDgQNCMYEoAHf+C1gAeNpjYGRg4GD4fwNEMjD8/w8kgSIogBUAY/wD9XjaNU+7FcJADJNNCvq87MMOvEdNxRyq0mWH1GEWegZhACz54nvnj+yTzvGDLQ8gKr8iEQDBRDKqgmqZMMq7/y5kd/UdCLFiC+ITZiivaz6fR0er6d054SksUgzmU3qFEXdFzV2Ez8Ywlc/m5Pilsr2VWitP/bGJ4wvDWi96P3Not+n2B3lgIYIAAAAmACYAJgAuAJIA3gFaAaABrgHkAjoC1AMkA4IEUAUiBXAFzgYgBw4H7ghiCPYJsgp4Cq4LCAs2C4AMHAyiDiAPnBBAEUYRvBMwE7wUHhRaFIYUshTcFVAVgBX6FpYXXBeSF/AYYBkCGYgaBhooGkoa1BryGyQbQBtsG5Yb+Bw2HLAdLh1yHYYdsh4cHjYeYB7iHyYf3iAgIFIgdCCaILIgxiDcIPAhBiEkIegiOCK6IxAjeCPQJDQkbCS8JVIlriYWJjomWCZ2JpQmoib0J3QnvCgGKJAopii8KQApIilMKcgqJCpiKpwqyCsUK2QrvCwWLFYsnizgLPYtBC0SLSAAAAABAAAAgAC9ABAAAAAAAAIAAQACABYAAAEAAYEAAAAAeNqNkr1OAkEUhc8CmmBhRSysNtFCTfiXqFBZiIkaQzRqZ7KaBYz8CStg4/PpC1j6EJZWfjMMwSCFmczOuWfOPffOzEpa0avi8hJJSZ/MCfaUIprgmFb15XBcZW+qSWjTKzu8pLF36/Ay/IfDSa173w6/aS2WcvhdudiOjlXTmXwNFaqvgR7UVYe4wOzC+AqIX1hboMiq/qpHoEhNUN0yESjUWPd8e0RT3RaaiNFTWVnGyI6MGuw+s5qKDfgWGSa3Q42QmYXtwabxD/SE0vi0YTZUdRWP/tTb5nTGw/Rq/LrW74K4QTVznr6KeOUYRVV0pVPd6By0KC89l7lI489prufu6Xe1mi5hJtGMbaKMnN+Q/bzdy2iPb4UTB3rE02jqsOae7nirjEp27uNR0MG/+j+BD21Xh+y24Qf2tjvcQYjr7CUnPVStm09eYLPycKb/Em9Zoq755u2fk2Pd/QGe+3ARAAB42m3S1XIUURRG4VmDBHd3d5k+Z5/uBIdAcHd3CRI0OBRPyCshmRWu6Kqp/6brm9qrutVujTy/frZS63/Pjz8/Wm3ajGEs4xhPDxOYyCQmM4WpTGM6M5jJLGYzh7nMYz4LWMgiFrOEpSxjOStYySpWs4a1rGM9G9jIJjazha1sYzsdKhKZoFDT0EsfO9jJLnazh73sYz8H6OcghxjgMEc4yjGOc4KTnOI0ZzjLOc5zgYtc4jJXuMo1rnODm9ziNne4yz3u84CHPOIxTxjkKc94zguGeMkrXvOGt7xjmPd84COf+MwXvvKN7z3DQ4OpDPT/3YGq03ErN7nZDbe4tdu4vW7fyCa9pJf0kl7SS3pJL+klvTTqVXqVXqVX6VV6lV6lV+lVepVe0kt6SS/pJb3U9bL3ZO/J3pO9J3tP7oy+X7uN2/3/0Amd0Amd0Amd0Amd+Od07wi7hF3CLmGXsEvYJewSdgm7hF3CLmGXsEvYJewSdomkl/SSXtLLelkv62W9rJf1sl7Wy3pZL/RCL/RCL/RCL/RCL/RCr+gVvaJX9Ipe0St6Ra/oFb1ar9ar9Wq9Wq/Wq/VqvVqv1mv0Gr1Gr9Frul7xuyp+V8XvqnTyb1UoNRm4Af+FsAGNAEuwCFBYsQEBjlmxRgYrWCGwEFlLsBRSWCGwgFkdsAYrXFhZsBQrAAAAAVLP0T8AAA==) format('woff'),
+         url('font/genericons-regular-webfont.ttf') format('truetype'),
+         url('font/genericons-regular-webfont.svg#genericonsregular') format('svg');
+    font-weight: normal;
+    font-style: normal;
+}
+
+
+/**
+ * All Genericons
+ */
+
+.genericon {
+       display: inline-block;
+       width: 16px;
+       height: 16px;
+       -webkit-font-smoothing: antialiased;
+       -moz-osx-font-smoothing: grayscale;
+       font-size: 16px;
+       line-height: 1;
+       font-family: 'Genericons';
+       text-decoration: inherit;
+       font-weight: normal;
+       font-style: normal;
+       vertical-align: top;
+}
+
+/**
+ * IE7 and IE6 hacks
+ */
+
+.genericon {
+       *overflow: auto;
+       *zoom: 1;
+       *display: inline;
+}
+
+/**
+ * Individual icons
+ */
+
+/* Post formats */
+.genericon-standard:before {        content: '\f100'; }
+.genericon-aside:before {           content: '\f101'; }
+.genericon-image:before {           content: '\f102'; }
+.genericon-gallery:before {         content: '\f103'; }
+.genericon-video:before {           content: '\f104'; }
+.genericon-status:before {          content: '\f105'; }
+.genericon-quote:before {           content: '\f106'; }
+.genericon-link:before {            content: '\f107'; }
+.genericon-chat:before {            content: '\f108'; }
+.genericon-audio:before {           content: '\f109'; }
+
+/* Social icons */
+.genericon-github:before {          content: '\f200'; }
+.genericon-dribbble:before {        content: '\f201'; }
+.genericon-twitter:before {         content: '\f202'; }
+.genericon-facebook:before {        content: '\f203'; }
+.genericon-facebook-alt:before {    content: '\f204'; }
+.genericon-wordpress:before {       content: '\f205'; }
+.genericon-googleplus:before {      content: '\f206'; }
+.genericon-linkedin:before {        content: '\f207'; }
+.genericon-linkedin-alt:before {    content: '\f208'; }
+.genericon-pinterest:before {       content: '\f209'; }
+.genericon-pinterest-alt:before {   content: '\f210'; }
+.genericon-flickr:before {          content: '\f211'; }
+.genericon-vimeo:before {           content: '\f212'; }
+.genericon-youtube:before {         content: '\f213'; }
+.genericon-tumblr:before {          content: '\f214'; }
+.genericon-instagram:before {       content: '\f215'; }
+.genericon-codepen:before {         content: '\f216'; }
+.genericon-polldaddy:before {       content: '\f217'; }
+.genericon-googleplus-alt:before {  content: '\f218'; }
+.genericon-path:before {            content: '\f219'; }
+.genericon-skype:before {           content: '\f220'; }
+.genericon-digg:before {            content: '\f221'; }
+.genericon-reddit:before {          content: '\f222'; }
+.genericon-stumbleupon:before {     content: '\f223'; }
+.genericon-pocket:before {          content: '\f224'; }
+.genericon-dropbox:before {         content: '\f225'; }
+
+/* Meta icons */
+.genericon-comment:before {         content: '\f300'; }
+.genericon-category:before {        content: '\f301'; }
+.genericon-tag:before {             content: '\f302'; }
+.genericon-time:before {            content: '\f303'; }
+.genericon-user:before {            content: '\f304'; }
+.genericon-day:before {             content: '\f305'; }
+.genericon-week:before {            content: '\f306'; }
+.genericon-month:before {           content: '\f307'; }
+.genericon-pinned:before {          content: '\f308'; }
+
+/* Other icons */
+.genericon-search:before {          content: '\f400'; }
+.genericon-unzoom:before {          content: '\f401'; }
+.genericon-zoom:before {            content: '\f402'; }
+.genericon-show:before {            content: '\f403'; }
+.genericon-hide:before {            content: '\f404'; }
+.genericon-close:before {           content: '\f405'; }
+.genericon-close-alt:before {       content: '\f406'; }
+.genericon-trash:before {           content: '\f407'; }
+.genericon-star:before {            content: '\f408'; }
+.genericon-home:before {            content: '\f409'; }
+.genericon-mail:before {            content: '\f410'; }
+.genericon-edit:before {            content: '\f411'; }
+.genericon-reply:before {           content: '\f412'; }
+.genericon-feed:before {            content: '\f413'; }
+.genericon-warning:before {         content: '\f414'; }
+.genericon-share:before {           content: '\f415'; }
+.genericon-attachment:before {      content: '\f416'; }
+.genericon-location:before {        content: '\f417'; }
+.genericon-checkmark:before {       content: '\f418'; }
+.genericon-menu:before {            content: '\f419'; }
+.genericon-refresh:before {         content: '\f420'; }
+.genericon-minimize:before {        content: '\f421'; }
+.genericon-maximize:before {        content: '\f422'; }
+.genericon-404:before {             content: '\f423'; }
+.genericon-spam:before {            content: '\f424'; }
+.genericon-summary:before {         content: '\f425'; }
+.genericon-cloud:before {           content: '\f426'; }
+.genericon-key:before {             content: '\f427'; }
+.genericon-dot:before {             content: '\f428'; }
+.genericon-next:before {            content: '\f429'; }
+.genericon-previous:before {        content: '\f430'; }
+.genericon-expand:before {          content: '\f431'; }
+.genericon-collapse:before {        content: '\f432'; }
+.genericon-dropdown:before {        content: '\f433'; }
+.genericon-dropdown-left:before {   content: '\f434'; }
+.genericon-top:before {             content: '\f435'; }
+.genericon-draggable:before {       content: '\f436'; }
+.genericon-phone:before {           content: '\f437'; }
+.genericon-send-to-phone:before {   content: '\f438'; }
+.genericon-plugin:before {          content: '\f439'; }
+.genericon-cloud-download:before {  content: '\f440'; }
+.genericon-cloud-upload:before {    content: '\f441'; }
+.genericon-external:before {        content: '\f442'; }
+.genericon-document:before {        content: '\f443'; }
+.genericon-book:before {            content: '\f444'; }
+.genericon-cog:before {             content: '\f445'; }
+.genericon-unapprove:before {       content: '\f446'; }
+.genericon-cart:before {            content: '\f447'; }
+.genericon-pause:before {           content: '\f448'; }
+.genericon-stop:before {            content: '\f449'; }
+.genericon-skip-back:before {       content: '\f450'; }
+.genericon-skip-ahead:before {      content: '\f451'; }
+.genericon-play:before {            content: '\f452'; }
+.genericon-tablet:before {          content: '\f453'; }
+.genericon-send-to-tablet:before {  content: '\f454'; }
+.genericon-info:before {            content: '\f455'; }
+.genericon-notice:before {          content: '\f456'; }
+.genericon-help:before {            content: '\f457'; }
+.genericon-fastforward:before {     content: '\f458'; }
+.genericon-rewind:before {          content: '\f459'; }
+.genericon-portfolio:before {       content: '\f460'; }
+.genericon-heart:before {           content: '\f461'; }
+.genericon-code:before {            content: '\f462'; }
+.genericon-subscribe:before {       content: '\f463'; }
+.genericon-unsubscribe:before {     content: '\f464'; }
+.genericon-subscribed:before {      content: '\f465'; }
+.genericon-reply-alt:before {       content: '\f466'; }
+.genericon-reply-single:before {    content: '\f467'; }
+.genericon-flag:before {            content: '\f468'; }
+.genericon-print:before {           content: '\f469'; }
+.genericon-lock:before {            content: '\f470'; }
+.genericon-bold:before {            content: '\f471'; }
+.genericon-italic:before {          content: '\f472'; }
+.genericon-picture:before {         content: '\f473'; }
+.genericon-fullscreen:before {      content: '\f474'; }
+
+/* Generic shapes */
+.genericon-uparrow:before {         content: '\f500'; }
+.genericon-rightarrow:before {      content: '\f501'; }
+.genericon-downarrow:before {       content: '\f502'; }
+.genericon-leftarrow:before {       content: '\f503'; }
+
+
+
+
+
index e19703c792247aa2149112cb54e4a27d33a51a96..f61c28f0f8a2e204675a2990b730de321adee8cc 100644 (file)
@@ -15,7 +15,7 @@
 <!--[if IE 8]>
 <html class="ie ie8" <?php language_attributes(); ?>>
 <![endif]-->
 <!--[if IE 8]>
 <html class="ie ie8" <?php language_attributes(); ?>>
 <![endif]-->
-<!--[if !(IE 7) | !(IE 8)  ]><!-->
+<!--[if !(IE 7) & !(IE 8)]><!-->
 <html <?php language_attributes(); ?>>
 <!--<![endif]-->
 <head>
 <html <?php language_attributes(); ?>>
 <!--<![endif]-->
 <head>
@@ -40,7 +40,7 @@
 
                        <div id="navbar" class="navbar">
                                <nav id="site-navigation" class="navigation main-navigation" role="navigation">
 
                        <div id="navbar" class="navbar">
                                <nav id="site-navigation" class="navigation main-navigation" role="navigation">
-                                       <h3 class="menu-toggle"><?php _e( 'Menu', 'twentythirteen' ); ?></h3>
+                                       <button class="menu-toggle"><?php _e( 'Menu', 'twentythirteen' ); ?></button>
                                        <a class="screen-reader-text skip-link" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentythirteen' ); ?>"><?php _e( 'Skip to content', 'twentythirteen' ); ?></a>
                                        <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
                                        <?php get_search_form(); ?>
                                        <a class="screen-reader-text skip-link" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentythirteen' ); ?>"><?php _e( 'Skip to content', 'twentythirteen' ); ?></a>
                                        <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
                                        <?php get_search_form(); ?>
index 2fabe5bcb1d0ad7261e122a104480bf82126266b..58b6c559d3b70857e566294571382058ce5dac2c 100644 (file)
@@ -72,7 +72,7 @@ function twentythirteen_custom_header_fonts() {
        wp_enqueue_style( 'twentythirteen-fonts', twentythirteen_fonts_url(), array(), null );
 
        // Add Genericons font.
        wp_enqueue_style( 'twentythirteen-fonts', twentythirteen_fonts_url(), array(), null );
 
        // Add Genericons font.
-       wp_enqueue_style( 'genericons', get_template_directory_uri() . '/fonts/genericons.css', array(), '2.09' );
+       wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.03' );
 }
 add_action( 'admin_print_styles-appearance_page_custom-header', 'twentythirteen_custom_header_fonts' );
 
 }
 add_action( 'admin_print_styles-appearance_page_custom-header', 'twentythirteen_custom_header_fonts' );
 
@@ -101,6 +101,16 @@ function twentythirteen_header_style() {
                        background: url(<?php header_image(); ?>) no-repeat scroll top;
                        background-size: 1600px auto;
                }
                        background: url(<?php header_image(); ?>) no-repeat scroll top;
                        background-size: 1600px auto;
                }
+               @media (max-width: 767px) {
+                       .site-header {
+                               background-size: 768px auto;
+                       }
+               }
+               @media (max-width: 359px) {
+                       .site-header {
+                               background-size: 360px auto;
+                       }
+               }
        <?php
                endif;
 
        <?php
                endif;
 
index 78c8c848c85ccf86f7b81e745b7f798e5d1d4432..526c15d6b3f913cee09decc1581bdf96207b8461 100644 (file)
                        nav.toggleClass( 'toggled-on' );
                } );
 
                        nav.toggleClass( 'toggled-on' );
                } );
 
+               // Fix sub-menus for touch devices.
+               if ( 'ontouchstart' in window ) {
+                       menu.find( '.menu-item-has-children > a' ).on( 'touchstart.twentythirteen', function( e ) {
+                               var el = $( this ).parent( 'li' );
+
+                               if ( ! el.hasClass( 'focus' ) ) {
+                                       e.preventDefault();
+                                       el.toggleClass( 'focus' );
+                                       el.siblings( '.focus' ).removeClass( 'focus' );
+                               }
+                       } );
+               }
+
                // Better focus for hidden submenu items for accessibility.
                menu.find( 'a' ).on( 'focus.twentythirteen blur.twentythirteen', function() {
                        $( this ).parents( '.menu-item, .page_item' ).toggleClass( 'focus' );
                // Better focus for hidden submenu items for accessibility.
                menu.find( 'a' ).on( 'focus.twentythirteen blur.twentythirteen', function() {
                        $( this ).parents( '.menu-item, .page_item' ).toggleClass( 'focus' );
index 4feb1d5db3a86ae916997888c9ed4297b595c334..238133dcf2ce92c570b0650555678a1c9b2332a7 100644 (file)
@@ -2,9 +2,9 @@
 # This file is distributed under the GNU General Public License v2 or later.
 msgid ""
 msgstr ""
 # This file is distributed under the GNU General Public License v2 or later.
 msgid ""
 msgstr ""
-"Project-Id-Version: Twenty Thirteen 1.2\n"
+"Project-Id-Version: Twenty Thirteen 1.3\n"
 "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentythirteen\n"
 "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentythirteen\n"
-"POT-Creation-Date: 2014-04-16 18:28:45+00:00\n"
+"POT-Creation-Date: 2014-09-03 00:45:47+00:00\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -145,7 +145,7 @@ msgid ""
 "searching can help."
 msgstr ""
 
 "searching can help."
 msgstr ""
 
-#. #-#-#-#-#  twentythirteen.pot (Twenty Thirteen 1.1)  #-#-#-#-#
+#. #-#-#-#-#  twentythirteen.pot (Twenty Thirteen 1.3)  #-#-#-#-#
 #. Author URI of the plugin/theme
 #: footer.php:19
 msgid "http://wordpress.org/"
 #. Author URI of the plugin/theme
 #: footer.php:19
 msgid "http://wordpress.org/"
index 28df9208b1b1e8c3689fef3774bcee8ac2cc270a..1c5ad6ef3fec757dc8518d3a1ed4f499ac752c01 100644 (file)
@@ -4,10 +4,10 @@ Theme URI: http://wordpress.org/themes/twentythirteen
 Author: the WordPress team
 Author URI: http://wordpress.org/
 Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small.
 Author: the WordPress team
 Author URI: http://wordpress.org/
 Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small.
-Version: 1.2
+Version: 1.3
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
-Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, fluid-layout, responsive-layout, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready
+Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, fluid-layout, responsive-layout, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready, accessibility-ready
 Text Domain: twentythirteen
 
 This theme, like WordPress, is licensed under the GPL.
 Text Domain: twentythirteen
 
 This theme, like WordPress, is licensed under the GPL.
@@ -971,7 +971,7 @@ ul.nav-menu .focus > ul,
        position: relative;
        -webkit-transition: width 400ms ease, background 400ms ease;
        transition:         width 400ms ease, background 400ms ease;
        position: relative;
        -webkit-transition: width 400ms ease, background 400ms ease;
        transition:         width 400ms ease, background 400ms ease;
-       width: 0;
+       width: 1px;
 }
 
 .site-header .search-field:focus {
 }
 
 .site-header .search-field:focus {
@@ -2788,6 +2788,13 @@ footer.entry-meta {
 
 /* Collapse oversized image and pulled images after iPad breakpoint. */
 @media (max-width: 767px) {
 
 /* Collapse oversized image and pulled images after iPad breakpoint. */
 @media (max-width: 767px) {
+       .site-header .home-link {
+               min-height: 0;
+       }
+       .site-title {
+               font-size: 36px;
+               padding: 8px 0 10px;
+       }
        .entry-content img.alignleft,
        .entry-content .wp-caption.alignleft {
                margin-left: 0;
        .entry-content img.alignleft,
        .entry-content .wp-caption.alignleft {
                margin-left: 0;
@@ -2846,9 +2853,22 @@ footer.entry-meta {
                display: inline-block;
                font: bold 16px/1.3 "Source Sans Pro", Helvetica, sans-serif;
                margin: 0;
                display: inline-block;
                font: bold 16px/1.3 "Source Sans Pro", Helvetica, sans-serif;
                margin: 0;
+       }
+
+       .menu-toggle,
+       .menu-toggle:hover,
+       .menu-toggle:focus,
+       .menu-toggle:active {
+               background: none;
+               border: none;
+               color: #141412;
                padding: 12px 0 12px 20px;
        }
 
                padding: 12px 0 12px 20px;
        }
 
+       .menu-toggle:focus {
+               outline: thin dotted;
+       }
+
        .menu-toggle:after {
                content: "\f502";
                font-size: 12px;
        .menu-toggle:after {
                content: "\f502";
                font-size: 12px;
@@ -2895,12 +2915,18 @@ footer.entry-meta {
                color: #141412;
        }
 
                color: #141412;
        }
 
-       .toggled-on .nav-menu li a:hover,
-       .toggled-on .nav-menu ul a:hover {
+       .toggled-on .nav-menu li a:hover,
+       .toggled-on .nav-menu ul a:hover {
                background-color: #db572f;
                color: #fff;
        }
 
                background-color: #db572f;
                color: #fff;
        }
 
+       .toggled-on .nav-menu > li a:focus,
+       .toggled-on .nav-menu > ul a:focus {
+               background-color: #220e10;
+               color: #fff;
+       }
+
        ul.nav-menu,
        div.nav-menu > ul {
                display: none;
        ul.nav-menu,
        div.nav-menu > ul {
                display: none;
@@ -2985,6 +3011,13 @@ footer.entry-meta {
 
 /* Mobile devices */
 @media (max-width: 359px) {
 
 /* Mobile devices */
 @media (max-width: 359px) {
+       .site-title {
+               font-weight: normal;
+       }
+       .site-description {
+           clip: rect(1px, 1px, 1px, 1px);
+           position: absolute;
+       }
        .gallery {
                margin-left: 0;
        }
        .gallery {
                margin-left: 0;
        }
@@ -3176,4 +3209,4 @@ footer.entry-meta {
        .comment-reply-login {
                color: #333;
        }
        .comment-reply-login {
                color: #333;
        }
-}
\ No newline at end of file
+}
index c4055ba058550f32c6d1d502dc253e16d113adf6..38ea36ec7422f6357574db2845c36cf4007a035c 100644 (file)
@@ -140,7 +140,7 @@ function twentytwelve_scripts_styles() {
                wp_enqueue_script( 'comment-reply' );
 
        // Adds JavaScript for handling the navigation menu hide-and-show behavior.
                wp_enqueue_script( 'comment-reply' );
 
        // Adds JavaScript for handling the navigation menu hide-and-show behavior.
-       wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array( 'jquery' ), '20140318', true );
+       wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array( 'jquery' ), '20140711', true );
 
        $font_url = twentytwelve_get_font_url();
        if ( ! empty( $font_url ) )
 
        $font_url = twentytwelve_get_font_url();
        if ( ! empty( $font_url ) )
@@ -209,7 +209,7 @@ function twentytwelve_wp_title( $title, $sep ) {
                $title = "$title $sep $site_description";
 
        // Add a page number if necessary.
                $title = "$title $sep $site_description";
 
        // Add a page number if necessary.
-       if ( $paged >= 2 || $page >= 2 )
+       if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() )
                $title = "$title $sep " . sprintf( __( 'Page %s', 'twentytwelve' ), max( $paged, $page ) );
 
        return $title;
                $title = "$title $sep " . sprintf( __( 'Page %s', 'twentytwelve' ), max( $paged, $page ) );
 
        return $title;
index eb64b68d56a3cc632ef0b08a13a80af7de8cfa77..8dcd9a99eddeacf3311f6769ff3f213def8665e3 100644 (file)
@@ -15,7 +15,7 @@
 <!--[if IE 8]>
 <html class="ie ie8" <?php language_attributes(); ?>>
 <![endif]-->
 <!--[if IE 8]>
 <html class="ie ie8" <?php language_attributes(); ?>>
 <![endif]-->
-<!--[if !(IE 7) | !(IE 8)  ]><!-->
+<!--[if !(IE 7) & !(IE 8)]><!-->
 <html <?php language_attributes(); ?>>
 <!--<![endif]-->
 <head>
 <html <?php language_attributes(); ?>>
 <!--<![endif]-->
 <head>
@@ -40,7 +40,7 @@
                </hgroup>
 
                <nav id="site-navigation" class="main-navigation" role="navigation">
                </hgroup>
 
                <nav id="site-navigation" class="main-navigation" role="navigation">
-                       <h3 class="menu-toggle"><?php _e( 'Menu', 'twentytwelve' ); ?></h3>
+                       <button class="menu-toggle"><?php _e( 'Menu', 'twentytwelve' ); ?></button>
                        <a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentytwelve' ); ?>"><?php _e( 'Skip to content', 'twentytwelve' ); ?></a>
                        <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
                </nav><!-- #site-navigation -->
                        <a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentytwelve' ); ?>"><?php _e( 'Skip to content', 'twentytwelve' ); ?></a>
                        <?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
                </nav><!-- #site-navigation -->
index 285e453c71017e097931b8abac93f17576546d1b..1dc2aa931294a18a5fc2711087a08ae83f17c22f 100644 (file)
@@ -58,9 +58,9 @@ foreach ( $attachments as $k => $attachment ) :
                break;
 endforeach;
 
                break;
 endforeach;
 
-$k++;
 // If there is more than 1 attachment in a gallery
 if ( count( $attachments ) > 1 ) :
 // If there is more than 1 attachment in a gallery
 if ( count( $attachments ) > 1 ) :
+       $k++;
        if ( isset( $attachments[ $k ] ) ) :
                // get the URL of the next image attachment
                $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID );
        if ( isset( $attachments[ $k ] ) ) :
                // get the URL of the next image attachment
                $next_attachment_url = get_attachment_link( $attachments[ $k ]->ID );
index 2c3214108e8d4ac5e5beb109be18081a73970a9e..34a640246e817c2f61d9605e6ba6366a11dba62a 100644 (file)
@@ -8,7 +8,7 @@
                return;
        }
 
                return;
        }
 
-       button = nav.getElementsByTagName( 'h3' )[0];
+       button = nav.getElementsByTagName( 'button' )[0];
        menu   = nav.getElementsByTagName( 'ul' )[0];
        if ( ! button ) {
                return;
        menu   = nav.getElementsByTagName( 'ul' )[0];
        if ( ! button ) {
                return;
        $( '.main-navigation' ).find( 'a' ).on( 'focus.twentytwelve blur.twentytwelve', function() {
                $( this ).parents( '.menu-item, .page_item' ).toggleClass( 'focus' );
        } );
        $( '.main-navigation' ).find( 'a' ).on( 'focus.twentytwelve blur.twentytwelve', function() {
                $( this ).parents( '.menu-item, .page_item' ).toggleClass( 'focus' );
        } );
+
+  if ( 'ontouchstart' in window ) {
+    $( '.menu-item-has-children > a' ).on( 'touchstart.twentytwelve', function( e ) {
+      var el = $( this ).parent( 'li' );
+
+      if ( ! el.hasClass( 'focus' ) ) {
+        e.preventDefault();
+        el.toggleClass( 'focus' );
+        el.siblings( '.focus').removeClass( 'focus' );
+      }
+    } );
+  }
 } )( jQuery );
 } )( jQuery );
index 5df8a29a99267b699adbe5b57e664e0c9f1762c4..083e0081a5e07e1ae6bdd34418357518f222e5b1 100644 (file)
@@ -2,9 +2,9 @@
 # This file is distributed under the GNU General Public License v2 or later.
 msgid ""
 msgstr ""
 # This file is distributed under the GNU General Public License v2 or later.
 msgid ""
 msgstr ""
-"Project-Id-Version: Twenty Twelve 1.4\n"
+"Project-Id-Version: Twenty Twelve 1.5\n"
 "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n"
 "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n"
-"POT-Creation-Date: 2014-04-16 18:27:55+00:00\n"
+"POT-Creation-Date: 2014-09-03 00:45:46+00:00\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -139,7 +139,7 @@ msgstr ""
 msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
 msgstr ""
 
 msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
 msgstr ""
 
-#. #-#-#-#-#  twentytwelve.pot (Twenty Twelve 1.3)  #-#-#-#-#
+#. #-#-#-#-#  twentytwelve.pot (Twenty Twelve 1.5)  #-#-#-#-#
 #. Author URI of the plugin/theme
 #: footer.php:16
 msgid "http://wordpress.org/"
 #. Author URI of the plugin/theme
 #: footer.php:16
 msgid "http://wordpress.org/"
index 110332867f9e22fc5375a2a83e2d98d3500a731a..5b2d8721c5378e869165b0db26283b2281885231 100644 (file)
@@ -4,7 +4,7 @@ Theme URI: http://wordpress.org/themes/twentytwelve
 Author: the WordPress team
 Author URI: http://wordpress.org/
 Description: The 2012 theme for WordPress is a fully responsive theme that looks great on any device. Features include a front page template with its own widgets, an optional display font, styling for post formats on both index and single views, and an optional no-sidebar page template. Make it yours with a custom menu, header image, and background.
 Author: the WordPress team
 Author URI: http://wordpress.org/
 Description: The 2012 theme for WordPress is a fully responsive theme that looks great on any device. Features include a front page template with its own widgets, an optional display font, styling for post formats on both index and single views, and an optional no-sidebar page template. Make it yours with a custom menu, header image, and background.
-Version: 1.4
+Version: 1.5
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Tags: light, gray, white, one-column, two-columns, right-sidebar, fluid-layout, responsive-layout, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Tags: light, gray, white, one-column, two-columns, right-sidebar, fluid-layout, responsive-layout, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready
@@ -272,6 +272,7 @@ input[disabled] {
        cursor: default;
 }
 .menu-toggle:hover,
        cursor: default;
 }
 .menu-toggle:hover,
+.menu-toggle:focus,
 button:hover,
 input[type="submit"]:hover,
 input[type="button"]:hover,
 button:hover,
 input[type="submit"]:hover,
 input[type="button"]:hover,
index da2838cbda05d49272fc37415a76891f9dadefe6..2b965ddf5b0b561d7e2853877246864820c9eb10 100644 (file)
@@ -32,8 +32,10 @@ function _get_cron_lock() {
 
        $value = 0;
        if ( wp_using_ext_object_cache() ) {
 
        $value = 0;
        if ( wp_using_ext_object_cache() ) {
-               // Skip local cache and force refetch of doing_cron transient in case
-               // another processs updated the cache
+               /*
+                * Skip local cache and force re-fetch of doing_cron transient
+                * in case another process updated the cache.
+                */
                $value = wp_cache_get( 'doing_cron', 'transient', true );
        } else {
                $row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", '_transient_doing_cron' ) );
                $value = wp_cache_get( 'doing_cron', 'transient', true );
        } else {
                $row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", '_transient_doing_cron' ) );
@@ -92,10 +94,11 @@ foreach ( $crons as $timestamp => $cronhooks ) {
                        /**
                         * Fires scheduled events.
                         *
                        /**
                         * Fires scheduled events.
                         *
+                        * @internal
                         * @since 2.1.0
                         *
                         * @param string $hook Name of the hook that was scheduled to be fired.
                         * @since 2.1.0
                         *
                         * @param string $hook Name of the hook that was scheduled to be fired.
-                        * @param array $v['args'] The arguments to be passed to the hook.
+                        * @param array  $args The arguments to be passed to the hook.
                         */
                        do_action_ref_array( $hook, $v['args'] );
 
                         */
                        do_action_ref_array( $hook, $v['args'] );
 
index 2a5c3b1f84539d382fbee72337875d1cfed72e66..cd1bb82a5535a5a187e344ec3d2d739b9b467828 100644 (file)
@@ -493,11 +493,23 @@ function wp_admin_bar_edit_menu( $wp_admin_bar ) {
                        && ( $post_type_object->public )
                        && ( $post_type_object->show_in_admin_bar ) )
                {
                        && ( $post_type_object->public )
                        && ( $post_type_object->show_in_admin_bar ) )
                {
-                       $wp_admin_bar->add_menu( array(
-                               'id' => 'view',
-                               'title' => $post_type_object->labels->view_item,
-                               'href' => get_permalink( $post->ID )
-                       ) );
+                       if( 'draft' == $post->post_status ) {
+                               $preview_link = set_url_scheme( get_permalink( $post->ID ) );
+                               /** This filter is documented in wp-admin/includes/meta-boxes.php */
+                               $preview_link = apply_filters( 'preview_post_link', add_query_arg( 'preview', 'true', $preview_link ), $post );
+                               $wp_admin_bar->add_menu( array(
+                                       'id' => 'preview',
+                                       'title' => $post_type_object->labels->view_item,
+                                       'href' => esc_url( $preview_link ),
+                                       'meta' => array( 'target' => 'wp-preview-' . $post->ID ),
+                               ) );
+                       } else {
+                               $wp_admin_bar->add_menu( array(
+                                       'id' => 'view',
+                                       'title' => $post_type_object->labels->view_item,
+                                       'href' => get_permalink( $post->ID )
+                               ) );
+                       }
                } elseif ( 'edit-tags' == $current_screen->base
                        && isset( $tag ) && is_object( $tag )
                        && ( $tax = get_taxonomy( $tag->taxonomy ) )
                } elseif ( 'edit-tags' == $current_screen->base
                        && isset( $tag ) && is_object( $tag )
                        && ( $tax = get_taxonomy( $tag->taxonomy ) )
@@ -648,17 +660,19 @@ function wp_admin_bar_appearance_menu( $wp_admin_bar ) {
        if ( ! current_user_can( 'edit_theme_options' ) )
                return;
 
        if ( ! current_user_can( 'edit_theme_options' ) )
                return;
 
-       $current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
-       $wp_admin_bar->add_menu( array(
-               'parent' => 'appearance',
-               'id'     => 'customize',
-               'title'  => __('Customize'),
-               'href'   => add_query_arg( 'url', urlencode( $current_url ), wp_customize_url() ),
-               'meta'   => array(
-                       'class' => 'hide-if-no-customize',
-               ),
-       ) );
-       add_action( 'wp_before_admin_bar_render', 'wp_customize_support_script' );
+       if ( current_user_can( 'customize' ) ) {
+               $current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
+               $wp_admin_bar->add_menu( array(
+                       'parent' => 'appearance',
+                       'id'     => 'customize',
+                       'title'  => __('Customize'),
+                       'href'   => add_query_arg( 'url', urlencode( $current_url ), wp_customize_url() ),
+                       'meta'   => array(
+                               'class' => 'hide-if-no-customize',
+                       ),
+               ) );
+               add_action( 'wp_before_admin_bar_render', 'wp_customize_support_script' );
+       }
 
        if ( current_theme_supports( 'widgets' )  )
                $wp_admin_bar->add_menu( array( 'parent' => 'appearance', 'id' => 'widgets', 'title' => __('Widgets'), 'href' => admin_url('widgets.php') ) );
 
        if ( current_theme_supports( 'widgets' )  )
                $wp_admin_bar->add_menu( array( 'parent' => 'appearance', 'id' => 'widgets', 'title' => __('Widgets'), 'href' => admin_url('widgets.php') ) );
index dd225c0b6d821d7e23587ee3008c585389d6f82c..1ec236abee1cd2c29811e64bbd46c872534120ab 100644 (file)
@@ -206,7 +206,11 @@ function the_author_link() {
  * @return int The number of posts by the author.
  */
 function get_the_author_posts() {
  * @return int The number of posts by the author.
  */
 function get_the_author_posts() {
-       return count_user_posts( get_post()->post_author );
+       $post = get_post();
+       if ( ! $post ) {
+               return 0;
+       }
+       return count_user_posts( $post->post_author );
 }
 
 /**
 }
 
 /**
@@ -300,32 +304,37 @@ function get_author_posts_url($author_id, $author_nicename = '') {
 /**
  * List all the authors of the blog, with several options available.
  *
 /**
  * List all the authors of the blog, with several options available.
  *
- * <ul>
- * <li>optioncount (boolean) (false): Show the count in parenthesis next to the
- * author's name.</li>
- * <li>exclude_admin (boolean) (true): Exclude the 'admin' user that is
- * installed by default.</li>
- * <li>show_fullname (boolean) (false): Show their full names.</li>
- * <li>hide_empty (boolean) (true): Don't show authors without any posts.</li>
- * <li>feed (string) (''): If isn't empty, show links to author's feeds.</li>
- * <li>feed_image (string) (''): If isn't empty, use this image to link to
- * feeds.</li>
- * <li>echo (boolean) (true): Set to false to return the output, instead of
- * echoing.</li>
- * <li>style (string) ('list'): Whether to display list of authors in list form
- * or as a string.</li>
- * <li>html (bool) (true): Whether to list the items in html form or plaintext.
- * </li>
- * <li>exclude (array): Array of user IDs to explicitly exclude.</li>
- * <li>include (array): Array of user IDs to explicitly include.</li>
- * </ul>
- *
  * @link http://codex.wordpress.org/Template_Tags/wp_list_authors
  * @link http://codex.wordpress.org/Template_Tags/wp_list_authors
+ *
  * @since 1.2.0
  * @since 1.2.0
- * @param array $args The argument array.
- * @return null|string The output, if echo is set to false.
+ *
+ * @param string|array $args {
+ *     Optional. Array or string of default arguments.
+ *
+ *     @type string $orderby       How to sort the authors. Accepts 'nicename', 'email', 'url', 'registered',
+ *                                 'user_nicename', 'user_email', 'user_url', 'user_registered', 'name',
+ *                                 'display_name', 'post_count', 'ID', 'meta_value', 'user_login'. Default 'name'.
+ *     @type string $order         Sorting direction for $orderby. Accepts 'ASC', 'DESC'. Default 'ASC'.
+ *     @type int    $number        Maximum authors to return or display. Default empty (all authors).
+ *     @type bool   $optioncount   Show the count in parenthesis next to the author's name. Default false.
+ *     @type bool   $exclude_admin Whether to exclude the 'admin' account, if it exists. Default false.
+ *     @type bool   $show_fullname Whether to show the author's full name. Default false.
+ *     @type bool   $hide_empty    Whether to hide any authors with no posts. Default true.
+ *     @type string $feed          If not empty, show a link to the author's feed and use this text as the alt
+ *                                 parameter of the link. Default empty.
+ *     @type string $feed_image    If not empty, show a link to the author's feed and use this image URL as
+ *                                 clickable anchor. Default empty.
+ *     @type string $feed_type     The feed type to link to, such as 'rss2'. Defaults to default feed type.
+ *     @type bool   $echo          Whether to output the result or instead return it. Default true.
+ *     @type string $style         If 'list', each author is wrapped in an `<li>` element, otherwise the authors
+ *                                 will be separated by commas.
+ *     @type bool   $html          Whether to list the items in HTML form or plaintext. Default true.
+ *     @type string $exclude       An array, comma-, or space-separated list of author IDs to exclude. Default empty.
+ *     @type string $exclude       An array, comma-, or space-separated list of author IDs to include. Default empty.
+ * }
+ * @return null|string The output, if echo is set to false. Otherwise null.
  */
  */
-function wp_list_authors($args = '') {
+function wp_list_authors( $args = '' ) {
        global $wpdb;
 
        $defaults = array(
        global $wpdb;
 
        $defaults = array(
@@ -337,7 +346,6 @@ function wp_list_authors($args = '') {
        );
 
        $args = wp_parse_args( $args, $defaults );
        );
 
        $args = wp_parse_args( $args, $defaults );
-       extract( $args, EXTR_SKIP );
 
        $return = '';
 
 
        $return = '';
 
@@ -346,78 +354,82 @@ function wp_list_authors($args = '') {
        $authors = get_users( $query_args );
 
        $author_count = array();
        $authors = get_users( $query_args );
 
        $author_count = array();
-       foreach ( (array) $wpdb->get_results("SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE post_type = 'post' AND " . get_private_posts_cap_sql( 'post' ) . " GROUP BY post_author") as $row )
+       foreach ( (array) $wpdb->get_results( "SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE post_type = 'post' AND " . get_private_posts_cap_sql( 'post' ) . " GROUP BY post_author" ) as $row ) {
                $author_count[$row->post_author] = $row->count;
                $author_count[$row->post_author] = $row->count;
-
+       }
        foreach ( $authors as $author_id ) {
                $author = get_userdata( $author_id );
 
        foreach ( $authors as $author_id ) {
                $author = get_userdata( $author_id );
 
-               if ( $exclude_admin && 'admin' == $author->display_name )
+               if ( $args['exclude_admin'] && 'admin' == $author->display_name ) {
                        continue;
                        continue;
+               }
 
                $posts = isset( $author_count[$author->ID] ) ? $author_count[$author->ID] : 0;
 
 
                $posts = isset( $author_count[$author->ID] ) ? $author_count[$author->ID] : 0;
 
-               if ( !$posts && $hide_empty )
+               if ( ! $posts && $args['hide_empty'] ) {
                        continue;
                        continue;
+               }
 
 
-               $link = '';
-
-               if ( $show_fullname && $author->first_name && $author->last_name )
+               if ( $args['show_fullname'] && $author->first_name && $author->last_name ) {
                        $name = "$author->first_name $author->last_name";
                        $name = "$author->first_name $author->last_name";
-               else
+               } else {
                        $name = $author->display_name;
                        $name = $author->display_name;
+               }
 
 
-               if ( !$html ) {
+               if ( ! $args['html'] ) {
                        $return .= $name . ', ';
 
                        continue; // No need to go further to process HTML.
                }
 
                        $return .= $name . ', ';
 
                        continue; // No need to go further to process HTML.
                }
 
-               if ( 'list' == $style ) {
+               if ( 'list' == $args['style'] ) {
                        $return .= '<li>';
                }
 
                $link = '<a href="' . get_author_posts_url( $author->ID, $author->user_nicename ) . '" title="' . esc_attr( sprintf(__("Posts by %s"), $author->display_name) ) . '">' . $name . '</a>';
 
                        $return .= '<li>';
                }
 
                $link = '<a href="' . get_author_posts_url( $author->ID, $author->user_nicename ) . '" title="' . esc_attr( sprintf(__("Posts by %s"), $author->display_name) ) . '">' . $name . '</a>';
 
-               if ( !empty( $feed_image ) || !empty( $feed ) ) {
+               if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) {
                        $link .= ' ';
                        $link .= ' ';
-                       if ( empty( $feed_image ) ) {
+                       if ( empty( $args['feed_image'] ) ) {
                                $link .= '(';
                        }
 
                                $link .= '(';
                        }
 
-                       $link .= '<a href="' . get_author_feed_link( $author->ID, $feed_type ) . '"';
+                       $link .= '<a href="' . get_author_feed_link( $author->ID, $args['feed_type'] ) . '"';
 
                        $alt = '';
 
                        $alt = '';
-                       if ( !empty( $feed ) ) {
-                               $alt = ' alt="' . esc_attr( $feed ) . '"';
-                               $name = $feed;
+                       if ( ! empty( $args['feed'] ) ) {
+                               $alt = ' alt="' . esc_attr( $args['feed'] ) . '"';
+                               $name = $args['feed'];
                        }
 
                        $link .= '>';
 
                        }
 
                        $link .= '>';
 
-                       if ( !empty( $feed_image ) )
-                               $link .= '<img src="' . esc_url( $feed_image ) . '" style="border: none;"' . $alt . ' />';
-                       else
+                       if ( ! empty( $args['feed_image'] ) ) {
+                               $link .= '<img src="' . esc_url( $args['feed_image'] ) . '" style="border: none;"' . $alt . ' />';
+                       } else {
                                $link .= $name;
                                $link .= $name;
+                       }
 
                        $link .= '</a>';
 
 
                        $link .= '</a>';
 
-                       if ( empty( $feed_image ) )
+                       if ( empty( $args['feed_image'] ) ) {
                                $link .= ')';
                                $link .= ')';
+                       }
                }
 
                }
 
-               if ( $optioncount )
+               if ( $args['optioncount'] ) {
                        $link .= ' ('. $posts . ')';
                        $link .= ' ('. $posts . ')';
+               }
 
                $return .= $link;
 
                $return .= $link;
-               $return .= ( 'list' == $style ) ? '</li>' : ', ';
+               $return .= ( 'list' == $args['style'] ) ? '</li>' : ', ';
        }
 
        }
 
-       $return = rtrim($return, ', ');
+       $return = rtrim( $return, ', ' );
 
 
-       if ( !$echo )
+       if ( ! $args['echo'] ) {
                return $return;
                return $return;
-
+       }
        echo $return;
 }
 
        echo $return;
 }
 
index 1724590f3cbada67ebbad39e728e30c08fdd1acb..a4561900b80d51d217f709bdd175af3c445a0499 100644 (file)
  * This function is used internally by wp_list_bookmarks() and should not be
  * used by themes.
  *
  * This function is used internally by wp_list_bookmarks() and should not be
  * used by themes.
  *
- * The defaults for overwriting are:
- * 'show_updated' - Default is 0 (integer). Will show the time of when the
- *             bookmark was last updated.
- * 'show_description' - Default is 0 (integer). Whether to show the description
- *             of the bookmark.
- * 'show_images' - Default is 1 (integer). Whether to show link image if
- *             available.
- * 'show_name' - Default is 0 (integer). Whether to show link name if
- *             available.
- * 'before' - Default is '<li>' (string). The html or text to prepend to each
- *             bookmarks.
- * 'after' - Default is '</li>' (string). The html or text to append to each
- *             bookmarks.
- * 'link_before' - Default is '' (string). The html or text to prepend to each
- *             bookmarks inside the <a> tag.
- * 'link_after' - Default is '' (string). The html or text to append to each
- *             bookmarks inside the <a> tag.
- * 'between' - Default is '\n' (string). The string for use in between the link,
- *             description, and image.
- * 'show_rating' - Default is 0 (integer). Whether to show the link rating.
- *
  * @since 2.1.0
  * @access private
  *
  * @since 2.1.0
  * @access private
  *
- * @param array $bookmarks List of bookmarks to traverse
- * @param string|array $args Optional. Overwrite the defaults.
+ * @param array $bookmarks List of bookmarks to traverse.
+ * @param string|array $args {
+ *     Optional. Bookmarks arguments.
+ *
+ *     @type int|bool $show_updated     Whether to show the time the bookmark was last updated.
+ *                                      Accepts 1|true or 0|false. Default 0|false.
+ *     @type int|bool $show_description Whether to show the bookmakr description. Accepts 1|true,
+ *                                      Accepts 1|true or 0|false. Default 0|false.
+ *     @type int|bool $show_images      Whether to show the link image if available. Accepts 1|true
+ *                                      or 0|false. Default 1|true.
+ *     @type int|bool $show_name        Whether to show link name if available. Accepts 1|true or
+ *                                      0|false. Default 0|false.
+ *     @type string   $before           The HTML or text to prepend to each bookmark. Default '<li>'.
+ *     @type string   $after            The HTML or text to append to each bookmark. Default '</li>'.
+ *     @type string   $link_before      The HTML or text to prepend to each bookmark inside the anchor
+ *                                      tags. Default empty.
+ *     @type string   $link_after       The HTML or text to append to each bookmark inside the anchor
+ *                                      tags. Default empty.
+ *     @type string   $between          The string for use in between the link, description, and image.
+ *                                      Default "\n".
+ *     @type int|bool $show_rating      Whether to show the link rating. Accepts 1|true or 0|false.
+ *                                      Default 0|false.
+ *
+ * }
  * @return string Formatted output in HTML
  */
  * @return string Formatted output in HTML
  */
-function _walk_bookmarks($bookmarks, $args = '' ) {
+function _walk_bookmarks( $bookmarks, $args = '' ) {
        $defaults = array(
                'show_updated' => 0, 'show_description' => 0,
                'show_images' => 1, 'show_name' => 0,
        $defaults = array(
                'show_updated' => 0, 'show_description' => 0,
                'show_images' => 1, 'show_name' => 0,
@@ -56,75 +57,89 @@ function _walk_bookmarks($bookmarks, $args = '' ) {
        );
 
        $r = wp_parse_args( $args, $defaults );
        );
 
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
 
        $output = ''; // Blank string to start with.
 
        foreach ( (array) $bookmarks as $bookmark ) {
 
        $output = ''; // Blank string to start with.
 
        foreach ( (array) $bookmarks as $bookmark ) {
-               if ( !isset($bookmark->recently_updated) )
+               if ( ! isset( $bookmark->recently_updated ) ) {
                        $bookmark->recently_updated = false;
                        $bookmark->recently_updated = false;
-               $output .= $before;
-               if ( $show_updated && $bookmark->recently_updated )
+               }
+               $output .= $r['before'];
+               if ( $r['show_updated'] && $bookmark->recently_updated ) {
                        $output .= '<em>';
                        $output .= '<em>';
-
+               }
                $the_link = '#';
                $the_link = '#';
-               if ( !empty($bookmark->link_url) )
-                       $the_link = esc_url($bookmark->link_url);
-
-               $desc = esc_attr(sanitize_bookmark_field('link_description', $bookmark->link_description, $bookmark->link_id, 'display'));
-               $name = esc_attr(sanitize_bookmark_field('link_name', $bookmark->link_name, $bookmark->link_id, 'display'));
+               if ( ! empty( $bookmark->link_url ) ) {
+                       $the_link = esc_url( $bookmark->link_url );
+               }
+               $desc = esc_attr( sanitize_bookmark_field( 'link_description', $bookmark->link_description, $bookmark->link_id, 'display' ) );
+               $name = esc_attr( sanitize_bookmark_field( 'link_name', $bookmark->link_name, $bookmark->link_id, 'display' ) );
                $title = $desc;
 
                $title = $desc;
 
-               if ( $show_updated )
-                       if ( '00' != substr($bookmark->link_updated_f, 0, 2) ) {
+               if ( $r['show_updated'] ) {
+                       if ( '00' != substr( $bookmark->link_updated_f, 0, 2 ) ) {
                                $title .= ' (';
                                $title .= ' (';
-                               $title .= sprintf(__('Last updated: %s'), date(get_option('links_updated_date_format'), $bookmark->link_updated_f + (get_option('gmt_offset') * HOUR_IN_SECONDS)));
+                               $title .= sprintf(
+                                       __('Last updated: %s'),
+                                       date(
+                                               get_option( 'links_updated_date_format' ),
+                                               $bookmark->link_updated_f + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS )
+                                       )
+                               );
                                $title .= ')';
                        }
                                $title .= ')';
                        }
+               }
+               $alt = ' alt="' . $name . ( $r['show_description'] ? ' ' . $title : '' ) . '"';
 
 
-               $alt = ' alt="' . $name . ( $show_description ? ' ' . $title : '' ) . '"';
-
-               if ( '' != $title )
+               if ( '' != $title ) {
                        $title = ' title="' . $title . '"';
                        $title = ' title="' . $title . '"';
-
+               }
                $rel = $bookmark->link_rel;
                $rel = $bookmark->link_rel;
-               if ( '' != $rel )
+               if ( '' != $rel ) {
                        $rel = ' rel="' . esc_attr($rel) . '"';
                        $rel = ' rel="' . esc_attr($rel) . '"';
-
+               }
                $target = $bookmark->link_target;
                $target = $bookmark->link_target;
-               if ( '' != $target )
+               if ( '' != $target ) {
                        $target = ' target="' . $target . '"';
                        $target = ' target="' . $target . '"';
-
+               }
                $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
 
                $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
 
-               $output .= $link_before;
+               $output .= $r['link_before'];
 
 
-               if ( $bookmark->link_image != null && $show_images ) {
-                       if ( strpos($bookmark->link_image, 'http') === 0 )
+               if ( $bookmark->link_image != null && $r['show_images'] ) {
+                       if ( strpos( $bookmark->link_image, 'http' ) === 0 ) {
                                $output .= "<img src=\"$bookmark->link_image\" $alt $title />";
                                $output .= "<img src=\"$bookmark->link_image\" $alt $title />";
-                       else // If it's a relative path
+                       } else { // If it's a relative path
                                $output .= "<img src=\"" . get_option('siteurl') . "$bookmark->link_image\" $alt $title />";
                                $output .= "<img src=\"" . get_option('siteurl') . "$bookmark->link_image\" $alt $title />";
-
-                       if ( $show_name )
+                       }
+                       if ( $r['show_name'] ) {
                                $output .= " $name";
                                $output .= " $name";
+                       }
                } else {
                        $output .= $name;
                }
 
                } else {
                        $output .= $name;
                }
 
-               $output .= $link_after;
+               $output .= $r['link_after'];
 
                $output .= '</a>';
 
 
                $output .= '</a>';
 
-               if ( $show_updated && $bookmark->recently_updated )
+               if ( $r['show_updated'] && $bookmark->recently_updated ) {
                        $output .= '</em>';
                        $output .= '</em>';
+               }
 
 
-               if ( $show_description && '' != $desc )
-                       $output .= $between . $desc;
-
-               if ( $show_rating )
-                       $output .= $between . sanitize_bookmark_field('link_rating', $bookmark->link_rating, $bookmark->link_id, 'display');
+               if ( $r['show_description'] && '' != $desc ) {
+                       $output .= $r['between'] . $desc;
+               }
 
 
-               $output .= "$after\n";
+               if ( $r['show_rating'] ) {
+                       $output .= $r['between'] . sanitize_bookmark_field(
+                               'link_rating',
+                               $bookmark->link_rating,
+                               $bookmark->link_id,
+                               'display'
+                       );
+               }
+               $output .= $r['after'] . "\n";
        } // end while
 
        return $output;
        } // end while
 
        return $output;
@@ -134,69 +149,55 @@ function _walk_bookmarks($bookmarks, $args = '' ) {
  * Retrieve or echo all of the bookmarks.
  *
  * List of default arguments are as follows:
  * Retrieve or echo all of the bookmarks.
  *
  * List of default arguments are as follows:
- * 'orderby' - Default is 'name' (string). How to order the links by. String is
- *             based off of the bookmark scheme.
- * 'order' - Default is 'ASC' (string). Either 'ASC' or 'DESC'. Orders in either
- *             ascending or descending order.
- * 'limit' - Default is -1 (integer) or show all. The amount of bookmarks to
- *             display.
- * 'category' - Default is empty string (string). Include the links in what
- *             category ID(s).
- * 'category_name' - Default is empty string (string). Get links by category
- *             name.
- * 'hide_invisible' - Default is 1 (integer). Whether to show (default) or hide
- *             links marked as 'invisible'.
- * 'show_updated' - Default is 0 (integer). Will show the time of when the
- *             bookmark was last updated.
- * 'echo' - Default is 1 (integer). Whether to echo (default) or return the
- *             formatted bookmarks.
- * 'categorize' - Default is 1 (integer). Whether to show links listed by
- *             category (default) or show links in one column.
- * 'show_description' - Default is 0 (integer). Whether to show the description
- *             of the bookmark.
  *
  * These options define how the Category name will appear before the category
  * links are displayed, if 'categorize' is 1. If 'categorize' is 0, then it will
  * display for only the 'title_li' string and only if 'title_li' is not empty.
  *
  * These options define how the Category name will appear before the category
  * links are displayed, if 'categorize' is 1. If 'categorize' is 0, then it will
  * display for only the 'title_li' string and only if 'title_li' is not empty.
- * 'title_li' - Default is 'Bookmarks' (translatable string). What to show
- *             before the links appear.
- * 'title_before' - Default is '<h2>' (string). The HTML or text to show before
- *             the 'title_li' string.
- * 'title_after' - Default is '</h2>' (string). The HTML or text to show after
- *             the 'title_li' string.
- * 'class' - Default is 'linkcat' (string). The CSS class to use for the
- *             'title_li'.
- *
- * 'category_before' - Default is '<li id="%id" class="%class">'. String must
- *             contain '%id' and '%class' to get
- * the id of the category and the 'class' argument. These are used for
- *             formatting in themes.
- * Argument will be displayed before the 'title_before' argument.
- * 'category_after' - Default is '</li>' (string). The HTML or text that will
- *             appear after the list of links.
  *
  *
- * These are only used if 'categorize' is set to 1 or true.
- * 'category_orderby' - Default is 'name'. How to order the bookmark category
- *             based on term scheme.
- * 'category_order' - Default is 'ASC'. Set the order by either ASC (ascending)
- *             or DESC (descending).
+ * @since 2.1.0
  *
  *
- * @see _walk_bookmarks() For other arguments that can be set in this function
- *             and passed to _walk_bookmarks().
- * @see get_bookmarks() For other arguments that can be set in this function and
- *             passed to get_bookmarks().
- * @link http://codex.wordpress.org/Template_Tags/wp_list_bookmarks
+ * @see _walk_bookmarks()
  *
  *
- * @since 2.1.0
- * @uses _walk_bookmarks() Used to iterate over all of the bookmarks and return
- *             the html
- * @uses get_terms() Gets all of the categories that are for links.
+ * @param string|array $args {
+ *     Optional. String or array of arguments to list bookmarks.
  *
  *
- * @param string|array $args Optional. Overwrite the defaults of the function
- * @return string|null Will only return if echo option is set to not echo.
- *             Default is not return anything.
+ *     @type string   $orderby          How to order the links by. Accepts post fields. Default 'name'.
+ *     @type string   $order            Whether to order bookmarks in ascending or descending order.
+ *                                      Accepts 'ASC' (ascending) or 'DESC' (descending). Default 'ASC'.
+ *     @type int      $limit            Amount of bookmarks to display. Accepts 1+ or -1 for all.
+ *                                      Default -1.
+ *     @type string   $category         Comma-separated list of category ids to include links from.
+ *                                      Default empty.
+ *     @type string   $category_name    Category to retrieve links for by name. Default empty.
+ *     @type int|bool $hide_invisible   Whether to show or hide links marked as 'invisible'. Accepts
+ *                                      1|true or 0|false. Default 1|true.
+ *     @type int|bool $show_updated     Whether to display the time the bookmark was last updated.
+ *                                      Accepts 1|true or 0|false. Default 0|false.
+ *     @type int|bool $echo             Whether to echo or return the formatted bookmarks. Accepts
+ *                                      1|true (echo) or 0|false (return). Default 1|true.
+ *     @type int|bool $categorize       Whether to show links listed by category or in a single column.
+ *                                      Accepts 1|true (by category) or 0|false (one column). Default 1|true.
+ *     @type int|bool $show_description Whether to show the bookmark descriptions. Accepts 1|true or 0|false.
+ *                                      Default 0|false.
+ *     @type string   $title_li         What to show before the links appear. Default 'Bookmarks'.
+ *     @type string   $title_before     The HTML or text to prepend to the $title_li string. Default '<h2>'.
+ *     @type string   $title_after      The HTML or text to append to the $title_li string. Default '</h2>'.
+ *     @type string   $class            The CSS class to use for the $title_li. Default 'linkcat'.
+ *     @type string   $category_before  The HTML or text to prepend to $title_before if $categorize is true.
+ *                                      String must contain '%id' and '%class' to inherit the category ID and
+ *                                      the $class argument used for formatting in themes.
+ *                                      Default '<li id="%id" class="%class">'.
+ *     @type string   $category_after   The HTML or text to append to $title_after if $categorize is true.
+ *                                      Default '</li>'.
+ *     @type string   $category_orderby How to order the bookmark category based on term scheme if $categorize
+ *                                      is true. Default 'name'.
+ *     @type string   $category_order   Whether to order categories in ascending or descending order if
+ *                                      $categorize is true. Accepts 'ASC' (ascending) or 'DESC' (descending).
+ *                                      Default 'ASC'.
+ * }
+ * @return string|null Will only return if echo option is set to not echo. Default is not return anything.
  */
  */
-function wp_list_bookmarks($args = '') {
+function wp_list_bookmarks( $args = '' ) {
        $defaults = array(
                'orderby' => 'name', 'order' => 'ASC',
                'limit' => -1, 'category' => '', 'exclude_category' => '',
        $defaults = array(
                'orderby' => 'name', 'order' => 'ASC',
                'limit' => -1, 'category' => '', 'exclude_category' => '',
@@ -210,24 +211,36 @@ function wp_list_bookmarks($args = '') {
        );
 
        $r = wp_parse_args( $args, $defaults );
        );
 
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
 
        $output = '';
 
 
        $output = '';
 
-       if ( $categorize ) {
-               $cats = get_terms( 'link_category', array( 'name__like' => $category_name, 'include' => $category, 'exclude' => $exclude_category, 'orderby' => $category_orderby, 'order' => $category_order, 'hierarchical' => 0 ) );
-               if ( empty( $cats ) )
-                       $categorize = false;
+       if ( $r['categorize'] ) {
+               $cats = get_terms( 'link_category', array(
+                       'name__like' => $r['category_name'],
+                       'include' => $r['category'],
+                       'exclude' => $r['exclude_category'],
+                       'orderby' => $r['category_orderby'],
+                       'order' => $r['category_order'],
+                       'hierarchical' => 0
+               ) );
+               if ( empty( $cats ) ) {
+                       $r['categorize'] = false;
+               }
        }
 
        }
 
-       if ( $categorize ) {
+       if ( $r['categorize'] ) {
                // Split the bookmarks into ul's for each category
                foreach ( (array) $cats as $cat ) {
                // Split the bookmarks into ul's for each category
                foreach ( (array) $cats as $cat ) {
-                       $params = array_merge($r, array('category'=>$cat->term_id));
-                       $bookmarks = get_bookmarks($params);
-                       if ( empty($bookmarks) )
+                       $params = array_merge( $r, array( 'category' => $cat->term_id ) );
+                       $bookmarks = get_bookmarks( $params );
+                       if ( empty( $bookmarks ) ) {
                                continue;
                                continue;
-                       $output .= str_replace(array('%id', '%class'), array("linkcat-$cat->term_id", $class), $category_before);
+                       }
+                       $output .= str_replace(
+                               array( '%id', '%class' ),
+                               array( "linkcat-$cat->term_id", $r['class'] ),
+                               $r['category_before']
+                       );
                        /**
                         * Filter the bookmarks category name.
                         *
                        /**
                         * Filter the bookmarks category name.
                         *
@@ -237,22 +250,34 @@ function wp_list_bookmarks($args = '') {
                         */
                        $catname = apply_filters( 'link_category', $cat->name );
 
                         */
                        $catname = apply_filters( 'link_category', $cat->name );
 
-                       $output .= "$title_before$catname$title_after\n\t<ul class='xoxo blogroll'>\n";
-                       $output .= _walk_bookmarks($bookmarks, $r);
-                       $output .= "\n\t</ul>\n$category_after\n";
+                       $output .= $r['title_before'];
+                       $output .= $catname;
+                       $output .= $r['title_after'];
+                       $output .= "\n\t<ul class='xoxo blogroll'>\n";
+                       $output .= _walk_bookmarks( $bookmarks, $r );
+                       $output .= "\n\t</ul>\n";
+                       $output .= $r['category_after'] . "\n";
                }
        } else {
                //output one single list using title_li for the title
                }
        } else {
                //output one single list using title_li for the title
-               $bookmarks = get_bookmarks($r);
+               $bookmarks = get_bookmarks( $r );
 
 
-               if ( !empty($bookmarks) ) {
-                       if ( !empty( $title_li ) ){
-                               $output .= str_replace(array('%id', '%class'), array("linkcat-$category", $class), $category_before);
-                               $output .= "$title_before$title_li$title_after\n\t<ul class='xoxo blogroll'>\n";
-                               $output .= _walk_bookmarks($bookmarks, $r);
-                               $output .= "\n\t</ul>\n$category_after\n";
+               if ( ! empty( $bookmarks ) ) {
+                       if ( ! empty( $r['title_li'] ) ) {
+                               $output .= str_replace(
+                                       array( '%id', '%class' ),
+                                       array( "linkcat-" . $r['category'], $r['class'] ),
+                                       $r['category_before']
+                               );
+                               $output .= $r['title_before'];
+                               $output .= $r['title_li'];
+                               $output .= $r['title_after'];
+                               $output .= "\n\t<ul class='xoxo blogroll'>\n";
+                               $output .= _walk_bookmarks( $bookmarks, $r );
+                               $output .= "\n\t</ul>\n";
+                               $output .= $r['category_after'] . "\n";
                        } else {
                        } else {
-                               $output .= _walk_bookmarks($bookmarks, $r);
+                               $output .= _walk_bookmarks( $bookmarks, $r );
                        }
                }
        }
                        }
                }
        }
@@ -262,11 +287,12 @@ function wp_list_bookmarks($args = '') {
         *
         * @since 2.5.0
         *
         *
         * @since 2.5.0
         *
-        * @param string $output The HTML list of bookmarks.
+        * @param string $html The HTML list of bookmarks.
         */
         */
-       $output = apply_filters( 'wp_list_bookmarks', $output );
+       $html = apply_filters( 'wp_list_bookmarks', $output );
 
 
-       if ( !$echo )
-               return $output;
-       echo $output;
+       if ( ! $r['echo'] ) {
+               return $html;
+       }
+       echo $html;
 }
 }
index 86ea3d22ae6fe406157e10421e3a388ad769805e..ec2f0b21021a6ab5a01657ddd7319f995f3bbbe6 100644 (file)
@@ -91,34 +91,31 @@ function get_bookmark_field( $field, $bookmark, $context = 'display' ) {
  * that fails, then the query will be built from the arguments and executed. The
  * results will be stored to the cache.
  *
  * that fails, then the query will be built from the arguments and executed. The
  * results will be stored to the cache.
  *
- * List of default arguments are as follows:
- * 'orderby' - Default is 'name' (string). How to order the links by. String is
- *             based off of the bookmark scheme.
- * 'order' - Default is 'ASC' (string). Either 'ASC' or 'DESC'. Orders in either
- *             ascending or descending order.
- * 'limit' - Default is -1 (integer) or show all. The amount of bookmarks to
- *             display.
- * 'category' - Default is empty string (string). Include the links in what
- *             category ID(s).
- * 'category_name' - Default is empty string (string). Get links by category
- *             name.
- * 'hide_invisible' - Default is 1 (integer). Whether to show (default) or hide
- *             links marked as 'invisible'.
- * 'show_updated' - Default is 0 (integer). Will show the time of when the
- *             bookmark was last updated.
- * 'include' - Default is empty string (string). Include bookmark ID(s)
- *             separated by commas.
- * 'exclude' - Default is empty string (string). Exclude bookmark ID(s)
- *             separated by commas.
- *
  * @since 2.1.0
  * @since 2.1.0
- * @uses $wpdb Database Object
- * @link http://codex.wordpress.org/Template_Tags/get_bookmarks
  *
  *
- * @param string|array $args List of arguments to overwrite the defaults
- * @return array List of bookmark row objects
+ * @global wpdb $wpdb WordPress database access abstraction object.
+ *
+ * @param string|array $args {
+ *     Optional. String or array of arguments to retrieve bookmarks.
+ *
+ *     @type string   $orderby        How to order the links by. Accepts post fields. Default 'name'.
+ *     @type string   $order          Whether to order bookmarks in ascending or descending order.
+ *                                    Accepts 'ASC' (ascending) or 'DESC' (descending). Default 'ASC'.
+ *     @type int      $limit          Amount of bookmarks to display. Accepts 1+ or -1 for all.
+ *                                    Default -1.
+ *     @type string   $category       Comma-separated list of category ids to include links from.
+ *                                    Default empty.
+ *     @type string   $category_name  Category to retrieve links for by name. Default empty.
+ *     @type int|bool $hide_invisible Whether to show or hide links marked as 'invisible'. Accepts
+ *                                    1|true or 0|false. Default 1|true.
+ *     @type int|bool $show_updated   Whether to display the time the bookmark was last updated.
+ *                                    Accepts 1|true or 0|false. Default 0|false.
+ *     @type string   $include        Comma-separated list of bookmark IDs to include. Default empty.
+ *     @type string   $exclude        Comma-separated list of bookmark IDs to exclude. Default empty.
+ * }
+ * @return array List of bookmark row objects.
  */
  */
-function get_bookmarks($args = '') {
+function get_bookmarks( $args = '' ) {
        global $wpdb;
 
        $defaults = array(
        global $wpdb;
 
        $defaults = array(
@@ -130,12 +127,10 @@ function get_bookmarks($args = '') {
        );
 
        $r = wp_parse_args( $args, $defaults );
        );
 
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
 
 
-       $cache = array();
        $key = md5( serialize( $r ) );
        if ( $cache = wp_cache_get( 'get_bookmarks', 'bookmark' ) ) {
        $key = md5( serialize( $r ) );
        if ( $cache = wp_cache_get( 'get_bookmarks', 'bookmark' ) ) {
-               if ( is_array($cache) && isset( $cache[ $key ] ) ) {
+               if ( is_array( $cache ) && isset( $cache[ $key ] ) ) {
                        $bookmarks = $cache[ $key ];
                        /**
                         * Filter the returned list of bookmarks.
                        $bookmarks = $cache[ $key ];
                        /**
                         * Filter the returned list of bookmarks.
@@ -156,45 +151,50 @@ function get_bookmarks($args = '') {
                }
        }
 
                }
        }
 
-       if ( !is_array($cache) )
+       if ( ! is_array( $cache ) ) {
                $cache = array();
                $cache = array();
+       }
 
        $inclusions = '';
 
        $inclusions = '';
-       if ( !empty($include) ) {
-               $exclude = '';  //ignore exclude, category, and category_name params if using include
-               $category = '';
-               $category_name = '';
-               $inclinks = preg_split('/[\s,]+/',$include);
-               if ( count($inclinks) ) {
+       if ( ! empty( $r['include'] ) ) {
+               $r['exclude'] = '';  //ignore exclude, category, and category_name params if using include
+               $r['category'] = '';
+               $r['category_name'] = '';
+               $inclinks = preg_split( '/[\s,]+/', $r['include'] );
+               if ( count( $inclinks ) ) {
                        foreach ( $inclinks as $inclink ) {
                        foreach ( $inclinks as $inclink ) {
-                               if (empty($inclusions))
-                                       $inclusions = ' AND ( link_id = ' . intval($inclink) . ' ';
-                               else
-                                       $inclusions .= ' OR link_id = ' . intval($inclink) . ' ';
+                               if ( empty( $inclusions ) ) {
+                                       $inclusions = ' AND ( link_id = ' . intval( $inclink ) . ' ';
+                               } else {
+                                       $inclusions .= ' OR link_id = ' . intval( $inclink ) . ' ';
+                               }
                        }
                }
        }
                        }
                }
        }
-       if (!empty($inclusions))
+       if (! empty( $inclusions ) ) {
                $inclusions .= ')';
                $inclusions .= ')';
+       }
 
        $exclusions = '';
 
        $exclusions = '';
-       if ( !empty($exclude) ) {
-               $exlinks = preg_split('/[\s,]+/',$exclude);
-               if ( count($exlinks) ) {
+       if ( ! empty( $r['exclude'] ) ) {
+               $exlinks = preg_split( '/[\s,]+/', $r['exclude'] );
+               if ( count( $exlinks ) ) {
                        foreach ( $exlinks as $exlink ) {
                        foreach ( $exlinks as $exlink ) {
-                               if (empty($exclusions))
-                                       $exclusions = ' AND ( link_id <> ' . intval($exlink) . ' ';
-                               else
-                                       $exclusions .= ' AND link_id <> ' . intval($exlink) . ' ';
+                               if ( empty( $exclusions ) ) {
+                                       $exclusions = ' AND ( link_id <> ' . intval( $exlink ) . ' ';
+                               } else {
+                                       $exclusions .= ' AND link_id <> ' . intval( $exlink ) . ' ';
+                               }
                        }
                }
        }
                        }
                }
        }
-       if (!empty($exclusions))
+       if ( ! empty( $exclusions ) ) {
                $exclusions .= ')';
                $exclusions .= ')';
+       }
 
 
-       if ( !empty($category_name) ) {
-               if ( $category = get_term_by('name', $category_name, 'link_category') ) {
-                       $category = $category->term_id;
+       if ( ! empty( $r['category_name'] ) ) {
+               if ( $r['category'] = get_term_by('name', $r['category_name'], 'link_category') ) {
+                       $r['category'] = $r['category']->term_id;
                } else {
                        $cache[ $key ] = array();
                        wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );
                } else {
                        $cache[ $key ] = array();
                        wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );
@@ -203,38 +203,40 @@ function get_bookmarks($args = '') {
                }
        }
 
                }
        }
 
-       if ( ! empty($search) ) {
-               $search = esc_sql( like_escape( $search ) );
-               $search = " AND ( (link_url LIKE '%$search%') OR (link_name LIKE '%$search%') OR (link_description LIKE '%$search%') ) ";
+       $search = '';
+       if ( ! empty( $r['search'] ) ) {
+               $like = '%' . $wpdb->esc_like( $r['search'] ) . '%';
+               $search = $wpdb->prepare(" AND ( (link_url LIKE %s) OR (link_name LIKE %s) OR (link_description LIKE %s) ) ", $like, $like, $like );
        }
 
        $category_query = '';
        $join = '';
        }
 
        $category_query = '';
        $join = '';
-       if ( !empty($category) ) {
-               $incategories = preg_split('/[\s,]+/',$category);
+       if ( ! empty( $r['category'] ) ) {
+               $incategories = preg_split( '/[\s,]+/', $r['category'] );
                if ( count($incategories) ) {
                        foreach ( $incategories as $incat ) {
                if ( count($incategories) ) {
                        foreach ( $incategories as $incat ) {
-                               if (empty($category_query))
-                                       $category_query = ' AND ( tt.term_id = ' . intval($incat) . ' ';
-                               else
-                                       $category_query .= ' OR tt.term_id = ' . intval($incat) . ' ';
+                               if ( empty( $category_query ) ) {
+                                       $category_query = ' AND ( tt.term_id = ' . intval( $incat ) . ' ';
+                               } else {
+                                       $category_query .= ' OR tt.term_id = ' . intval( $incat ) . ' ';
+                               }
                        }
                }
        }
                        }
                }
        }
-       if (!empty($category_query)) {
+       if ( ! empty( $category_query ) ) {
                $category_query .= ") AND taxonomy = 'link_category'";
                $join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id";
        }
 
                $category_query .= ") AND taxonomy = 'link_category'";
                $join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id";
        }
 
-       if ( $show_updated ) {
+       if ( $r['show_updated'] ) {
                $recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL 120 MINUTE) >= NOW(), 1,0) as recently_updated ";
        } else {
                $recently_updated_test = '';
        }
 
                $recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL 120 MINUTE) >= NOW(), 1,0) as recently_updated ";
        } else {
                $recently_updated_test = '';
        }
 
-       $get_updated = ( $show_updated ) ? ', UNIX_TIMESTAMP(link_updated) AS link_updated_f ' : '';
+       $get_updated = ( $r['show_updated'] ) ? ', UNIX_TIMESTAMP(link_updated) AS link_updated_f ' : '';
 
 
-       $orderby = strtolower($orderby);
+       $orderby = strtolower( $r['orderby'] );
        $length = '';
        switch ( $orderby ) {
                case 'length':
        $length = '';
        switch ( $orderby ) {
                case 'length':
@@ -248,35 +250,41 @@ function get_bookmarks($args = '') {
                        break;
                default:
                        $orderparams = array();
                        break;
                default:
                        $orderparams = array();
-                       foreach ( explode(',', $orderby) as $ordparam ) {
-                               $ordparam = trim($ordparam);
-                               $keys = array( 'link_id', 'link_name', 'link_url', 'link_visible', 'link_rating', 'link_owner', 'link_updated', 'link_notes' );
-                               if ( in_array( 'link_' . $ordparam, $keys ) )
+                       $keys = array( 'link_id', 'link_name', 'link_url', 'link_visible', 'link_rating', 'link_owner', 'link_updated', 'link_notes' );
+                       foreach ( explode( ',', $orderby ) as $ordparam ) {
+                               $ordparam = trim( $ordparam );
+
+                               if ( in_array( 'link_' . $ordparam, $keys ) ) {
                                        $orderparams[] = 'link_' . $ordparam;
                                        $orderparams[] = 'link_' . $ordparam;
-                               elseif ( in_array( $ordparam, $keys ) )
+                               } elseif ( in_array( $ordparam, $keys ) ) {
                                        $orderparams[] = $ordparam;
                                        $orderparams[] = $ordparam;
+                               }
                        }
                        }
-                       $orderby = implode(',', $orderparams);
+                       $orderby = implode( ',', $orderparams );
        }
 
        }
 
-       if ( empty( $orderby ) )
+       if ( empty( $orderby ) ) {
                $orderby = 'link_name';
                $orderby = 'link_name';
+       }
 
 
-       $order = strtoupper( $order );
-       if ( '' !== $order && !in_array( $order, array( 'ASC', 'DESC' ) ) )
+       $order = strtoupper( $r['order'] );
+       if ( '' !== $order && ! in_array( $order, array( 'ASC', 'DESC' ) ) ) {
                $order = 'ASC';
                $order = 'ASC';
+       }
 
        $visible = '';
 
        $visible = '';
-       if ( $hide_invisible )
+       if ( $r['hide_invisible'] ) {
                $visible = "AND link_visible = 'Y'";
                $visible = "AND link_visible = 'Y'";
+       }
 
        $query = "SELECT * $length $recently_updated_test $get_updated FROM $wpdb->links $join WHERE 1=1 $visible $category_query";
        $query .= " $exclusions $inclusions $search";
        $query .= " ORDER BY $orderby $order";
 
        $query = "SELECT * $length $recently_updated_test $get_updated FROM $wpdb->links $join WHERE 1=1 $visible $category_query";
        $query .= " $exclusions $inclusions $search";
        $query .= " ORDER BY $orderby $order";
-       if ($limit != -1)
-               $query .= " LIMIT $limit";
+       if ( $r['limit'] != -1 ) {
+               $query .= ' LIMIT ' . $r['limit'];
+       }
 
 
-       $results = $wpdb->get_results($query);
+       $results = $wpdb->get_results( $query );
 
        $cache[ $key ] = $results;
        wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );
 
        $cache[ $key ] = $results;
        wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );
@@ -356,7 +364,7 @@ function sanitize_bookmark_field($field, $value, $bookmark_id, $context) {
                // We return here so that the categories aren't filtered.
                // The 'link_category' filter is for the name of a link category, not an array of a link's link categories
                return $value;
                // We return here so that the categories aren't filtered.
                // The 'link_category' filter is for the name of a link category, not an array of a link's link categories
                return $value;
-               break;
+
        case 'link_visible' : // bool stored as Y|N
                $value = preg_replace('/[^YNyn]/', '', $value);
                break;
        case 'link_visible' : // bool stored as Y|N
                $value = preg_replace('/[^YNyn]/', '', $value);
                break;
index bcc9aca0e7503fe656b875e2ebc55c3fa45270a9..5264fe2144b799855f8ee1a43ae48c358f37ec9e 100644 (file)
@@ -268,7 +268,7 @@ class WP_Object_Cache {
         * @access private
         * @since 2.0.0
         */
         * @access private
         * @since 2.0.0
         */
-       var $cache = array ();
+       private $cache = array();
 
        /**
         * The amount of times the cache data was already stored in the cache.
 
        /**
         * The amount of times the cache data was already stored in the cache.
@@ -277,7 +277,7 @@ class WP_Object_Cache {
         * @access private
         * @var int
         */
         * @access private
         * @var int
         */
-       var $cache_hits = 0;
+       private $cache_hits = 0;
 
        /**
         * Amount of times the cache did not have the request in cache
 
        /**
         * Amount of times the cache did not have the request in cache
@@ -286,7 +286,7 @@ class WP_Object_Cache {
         * @access public
         * @since 2.0.0
         */
         * @access public
         * @since 2.0.0
         */
-       var $cache_misses = 0;
+       public $cache_misses = 0;
 
        /**
         * List of global groups
 
        /**
         * List of global groups
@@ -295,7 +295,7 @@ class WP_Object_Cache {
         * @access protected
         * @since 3.0.0
         */
         * @access protected
         * @since 3.0.0
         */
-       var $global_groups = array();
+       protected $global_groups = array();
 
        /**
         * The blog prefix to prepend to keys in non-global groups.
 
        /**
         * The blog prefix to prepend to keys in non-global groups.
@@ -304,7 +304,59 @@ class WP_Object_Cache {
         * @access private
         * @since 3.5.0
         */
         * @access private
         * @since 3.5.0
         */
-       var $blog_prefix;
+       private $blog_prefix;
+
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
 
        /**
         * Adds data to the cache if it doesn't already exist.
 
        /**
         * Adds data to the cache if it doesn't already exist.
@@ -321,7 +373,7 @@ class WP_Object_Cache {
         * @param int $expire When to expire the cache contents
         * @return bool False if cache key and group already exist, true on success
         */
         * @param int $expire When to expire the cache contents
         * @return bool False if cache key and group already exist, true on success
         */
-       function add( $key, $data, $group = 'default', $expire = 0 ) {
+       public function add( $key, $data, $group = 'default', $expire = 0 ) {
                if ( wp_suspend_cache_addition() )
                        return false;
 
                if ( wp_suspend_cache_addition() )
                        return false;
 
@@ -345,7 +397,7 @@ class WP_Object_Cache {
         *
         * @param array $groups List of groups that are global.
         */
         *
         * @param array $groups List of groups that are global.
         */
-       function add_global_groups( $groups ) {
+       public function add_global_groups( $groups ) {
                $groups = (array) $groups;
 
                $groups = array_fill_keys( $groups, true );
                $groups = (array) $groups;
 
                $groups = array_fill_keys( $groups, true );
@@ -362,7 +414,7 @@ class WP_Object_Cache {
         * @param string $group The group the key is in.
         * @return false|int False on failure, the item's new value on success.
         */
         * @param string $group The group the key is in.
         * @return false|int False on failure, the item's new value on success.
         */
-       function decr( $key, $offset = 1, $group = 'default' ) {
+       public function decr( $key, $offset = 1, $group = 'default' ) {
                if ( empty( $group ) )
                        $group = 'default';
 
                if ( empty( $group ) )
                        $group = 'default';
 
@@ -398,7 +450,7 @@ class WP_Object_Cache {
         *
         * @return bool False if the contents weren't deleted and true on success
         */
         *
         * @return bool False if the contents weren't deleted and true on success
         */
-       function delete( $key, $group = 'default', $deprecated = false ) {
+       public function delete( $key, $group = 'default', $deprecated = false ) {
                if ( empty( $group ) )
                        $group = 'default';
 
                if ( empty( $group ) )
                        $group = 'default';
 
@@ -419,7 +471,7 @@ class WP_Object_Cache {
         *
         * @return bool Always returns true
         */
         *
         * @return bool Always returns true
         */
-       function flush() {
+       public function flush() {
                $this->cache = array ();
 
                return true;
                $this->cache = array ();
 
                return true;
@@ -442,7 +494,7 @@ class WP_Object_Cache {
         * @return bool|mixed False on failure to retrieve contents or the cache
         *              contents on success
         */
         * @return bool|mixed False on failure to retrieve contents or the cache
         *              contents on success
         */
-       function get( $key, $group = 'default', $force = false, &$found = null ) {
+       public function get( $key, $group = 'default', $force = false, &$found = null ) {
                if ( empty( $group ) )
                        $group = 'default';
 
                if ( empty( $group ) )
                        $group = 'default';
 
@@ -473,7 +525,7 @@ class WP_Object_Cache {
         * @param string $group The group the key is in.
         * @return false|int False on failure, the item's new value on success.
         */
         * @param string $group The group the key is in.
         * @return false|int False on failure, the item's new value on success.
         */
-       function incr( $key, $offset = 1, $group = 'default' ) {
+       public function incr( $key, $offset = 1, $group = 'default' ) {
                if ( empty( $group ) )
                        $group = 'default';
 
                if ( empty( $group ) )
                        $group = 'default';
 
@@ -508,7 +560,7 @@ class WP_Object_Cache {
         * @param int $expire When to expire the cache contents
         * @return bool False if not exists, true if contents were replaced
         */
         * @param int $expire When to expire the cache contents
         * @return bool False if not exists, true if contents were replaced
         */
-       function replace( $key, $data, $group = 'default', $expire = 0 ) {
+       public function replace( $key, $data, $group = 'default', $expire = 0 ) {
                if ( empty( $group ) )
                        $group = 'default';
 
                if ( empty( $group ) )
                        $group = 'default';
 
@@ -528,7 +580,7 @@ class WP_Object_Cache {
         * @since 3.0.0
         * @deprecated 3.5.0
         */
         * @since 3.0.0
         * @deprecated 3.5.0
         */
-       function reset() {
+       public function reset() {
                _deprecated_function( __FUNCTION__, '3.5', 'switch_to_blog()' );
 
                // Clear out non-global caches since the blog ID has changed.
                _deprecated_function( __FUNCTION__, '3.5', 'switch_to_blog()' );
 
                // Clear out non-global caches since the blog ID has changed.
@@ -558,7 +610,7 @@ class WP_Object_Cache {
         * @param int $expire Not Used
         * @return bool Always returns true
         */
         * @param int $expire Not Used
         * @return bool Always returns true
         */
-       function set( $key, $data, $group = 'default', $expire = 0 ) {
+       public function set( $key, $data, $group = 'default', $expire = 0 ) {
                if ( empty( $group ) )
                        $group = 'default';
 
                if ( empty( $group ) )
                        $group = 'default';
 
@@ -580,7 +632,7 @@ class WP_Object_Cache {
         *
         * @since 2.0.0
         */
         *
         * @since 2.0.0
         */
-       function stats() {
+       public function stats() {
                echo "<p>";
                echo "<strong>Cache Hits:</strong> {$this->cache_hits}<br />";
                echo "<strong>Cache Misses:</strong> {$this->cache_misses}<br />";
                echo "<p>";
                echo "<strong>Cache Hits:</strong> {$this->cache_hits}<br />";
                echo "<strong>Cache Misses:</strong> {$this->cache_misses}<br />";
@@ -601,7 +653,7 @@ class WP_Object_Cache {
         *
         * @param int $blog_id Blog ID
         */
         *
         * @param int $blog_id Blog ID
         */
-       function switch_to_blog( $blog_id ) {
+       public function switch_to_blog( $blog_id ) {
                $blog_id = (int) $blog_id;
                $this->blog_prefix = $this->multisite ? $blog_id . ':' : '';
        }
                $blog_id = (int) $blog_id;
                $this->blog_prefix = $this->multisite ? $blog_id . ':' : '';
        }
@@ -623,7 +675,7 @@ class WP_Object_Cache {
         * @since 2.0.8
         * @return null|WP_Object_Cache If cache is disabled, returns null.
         */
         * @since 2.0.8
         * @return null|WP_Object_Cache If cache is disabled, returns null.
         */
-       function __construct() {
+       public function __construct() {
                global $blog_id;
 
                $this->multisite = is_multisite();
                global $blog_id;
 
                $this->multisite = is_multisite();
@@ -646,7 +698,7 @@ class WP_Object_Cache {
         *
         * @return bool True value. Won't be used by PHP
         */
         *
         * @return bool True value. Won't be used by PHP
         */
-       function __destruct() {
+       public function __destruct() {
                return true;
        }
 }
                return true;
        }
 }
index 5aefe2ba09e460b68b153505393d999b5b9b0bbf..c1b90251cf2fd211e9b0caabffad6f50630465e8 100644 (file)
 function redirect_canonical( $requested_url = null, $do_redirect = true ) {
        global $wp_rewrite, $is_IIS, $wp_query, $wpdb;
 
 function redirect_canonical( $requested_url = null, $do_redirect = true ) {
        global $wp_rewrite, $is_IIS, $wp_query, $wpdb;
 
-       if ( is_trackback() || is_search() || is_comments_popup() || is_admin() || !empty($_POST) || is_preview() || is_robots() || ( $is_IIS && !iis7_supports_permalinks() ) )
+       if ( isset( $_SERVER['REQUEST_METHOD'] ) && ! in_array( strtoupper( $_SERVER['REQUEST_METHOD'] ), array( 'GET', 'HEAD' ) ) ) {
                return;
                return;
+       }
+
+       // If we're not in wp-admin and the post has been published and preview nonce
+       // is non-existent or invalid then no need for preview in query
+       if ( is_preview() && get_query_var( 'p' ) && 'publish' == get_post_status( get_query_var( 'p' ) ) ) {
+               if ( ! isset( $_GET['preview_id'] )
+                       || ! isset( $_GET['preview_nonce'] )
+                       || ! wp_verify_nonce( $_GET['preview_nonce'], 'post_preview_' . (int) $_GET['preview_id'] ) ) {
+                       $wp_query->is_preview = false;
+               }
+       }
+
+       if ( is_trackback() || is_search() || is_comments_popup() || is_admin() || is_preview() || is_robots() || ( $is_IIS && !iis7_supports_permalinks() ) ) {
+               return;
+       }
 
        if ( !$requested_url ) {
                // build the URL in the address bar
 
        if ( !$requested_url ) {
                // build the URL in the address bar
@@ -68,6 +83,11 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
        if ( !isset($redirect['query']) )
                $redirect['query'] = '';
 
        if ( !isset($redirect['query']) )
                $redirect['query'] = '';
 
+       // It's not a preview, so remove it from URL
+       if ( get_query_var( 'preview' ) ) {
+               $redirect['query'] = remove_query_arg( 'preview', $redirect['query'] );
+       }
+
        if ( is_feed() && ( $id = get_query_var( 'p' ) ) ) {
                if ( $redirect_url = get_post_comments_feed_link( $id, get_query_var( 'feed' ) ) ) {
                        $redirect['query'] = _remove_qs_args_if_not_in_url( $redirect['query'], array( 'p', 'page_id', 'attachment_id', 'pagename', 'name', 'post_type', 'feed'), $redirect_url );
        if ( is_feed() && ( $id = get_query_var( 'p' ) ) ) {
                if ( $redirect_url = get_post_comments_feed_link( $id, get_query_var( 'feed' ) ) ) {
                        $redirect['query'] = _remove_qs_args_if_not_in_url( $redirect['query'], array( 'p', 'page_id', 'attachment_id', 'pagename', 'name', 'post_type', 'feed'), $redirect_url );
@@ -295,11 +315,13 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
                }
 
                if ( 'wp-register.php' == basename( $redirect['path'] ) ) {
                }
 
                if ( 'wp-register.php' == basename( $redirect['path'] ) ) {
-                       if ( is_multisite() )
+                       if ( is_multisite() ) {
                                /** This filter is documented in wp-login.php */
                                $redirect_url = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) );
                                /** This filter is documented in wp-login.php */
                                $redirect_url = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) );
-                       else
+                       } else {
                                $redirect_url = site_url( 'wp-login.php?action=register' );
                                $redirect_url = site_url( 'wp-login.php?action=register' );
+                       }
+
                        wp_redirect( $redirect_url, 301 );
                        die();
                }
                        wp_redirect( $redirect_url, 301 );
                        die();
                }
@@ -338,6 +360,10 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
        else
                unset($redirect['port']);
 
        else
                unset($redirect['port']);
 
+       if ( ! empty( $user_home['scheme'] ) && $user_home['scheme'] === 'https' ) {
+               $redirect['scheme'] = 'https';
+       }
+
        // trailing /index.php
        $redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path']);
 
        // trailing /index.php
        $redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path']);
 
@@ -395,7 +421,7 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
                ( strtolower($original['host']) != 'www.' . strtolower($redirect['host']) && 'www.' . strtolower($original['host']) != strtolower($redirect['host']) ) )
                $redirect['host'] = $original['host'];
 
                ( strtolower($original['host']) != 'www.' . strtolower($redirect['host']) && 'www.' . strtolower($original['host']) != strtolower($redirect['host']) ) )
                $redirect['host'] = $original['host'];
 
-       $compare_original = array($original['host'], $original['path']);
+       $compare_original = array( $original['scheme'], $original['host'], $original['path'] );
 
        if ( !empty( $original['port'] ) )
                $compare_original[] = $original['port'];
 
        if ( !empty( $original['port'] ) )
                $compare_original[] = $original['port'];
@@ -403,7 +429,7 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
        if ( !empty( $original['query'] ) )
                $compare_original[] = $original['query'];
 
        if ( !empty( $original['query'] ) )
                $compare_original[] = $original['query'];
 
-       $compare_redirect = array($redirect['host'], $redirect['path']);
+       $compare_redirect = array( $redirect['scheme'], $redirect['host'], $redirect['path'] );
 
        if ( !empty( $redirect['port'] ) )
                $compare_redirect[] = $redirect['port'];
 
        if ( !empty( $redirect['port'] ) )
                $compare_redirect[] = $redirect['port'];
@@ -498,7 +524,7 @@ function redirect_guess_404_permalink() {
        global $wpdb, $wp_rewrite;
 
        if ( get_query_var('name') ) {
        global $wpdb, $wp_rewrite;
 
        if ( get_query_var('name') ) {
-               $where = $wpdb->prepare("post_name LIKE %s", like_escape( get_query_var('name') ) . '%');
+               $where = $wpdb->prepare("post_name LIKE %s", $wpdb->esc_like( get_query_var('name') ) . '%');
 
                // if any of post_type, year, monthnum, or day are set, use them to refine the query
                if ( get_query_var('post_type') )
 
                // if any of post_type, year, monthnum, or day are set, use them to refine the query
                if ( get_query_var('post_type') )
index 89e854b7a156ed5c4776f1bc3fcbef04264bf33b..30c38b2cbcbc8118d5e787813ba2803489565a15 100644 (file)
@@ -34,7 +34,7 @@ class WP_Roles {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $roles;
+       public $roles;
 
        /**
         * List of the role objects.
 
        /**
         * List of the role objects.
@@ -43,7 +43,7 @@ class WP_Roles {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $role_objects = array();
+       public $role_objects = array();
 
        /**
         * List of role names.
 
        /**
         * List of role names.
@@ -52,7 +52,7 @@ class WP_Roles {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $role_names = array();
+       public $role_names = array();
 
        /**
         * Option name for storing role list.
 
        /**
         * Option name for storing role list.
@@ -61,7 +61,7 @@ class WP_Roles {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $role_key;
+       public $role_key;
 
        /**
         * Whether to use the database for retrieval and storage.
 
        /**
         * Whether to use the database for retrieval and storage.
@@ -70,17 +70,31 @@ class WP_Roles {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $use_db = true;
+       public $use_db = true;
 
        /**
         * Constructor
         *
         * @since 2.0.0
         */
 
        /**
         * Constructor
         *
         * @since 2.0.0
         */
-       function __construct() {
+       public function __construct() {
                $this->_init();
        }
 
                $this->_init();
        }
 
+       /**
+        * Make private/protected methods readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param callable $name      Method to call.
+        * @param array    $arguments Arguments to pass when calling.
+        * @return mixed|bool Return value of the callback, false otherwise.
+        */
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this, $name ), $arguments );
+       }
+
        /**
         * Set up the object properties.
         *
        /**
         * Set up the object properties.
         *
@@ -93,7 +107,7 @@ class WP_Roles {
         * @uses $wpdb Used to get the database prefix.
         * @global array $wp_user_roles Used to set the 'roles' property value.
         */
         * @uses $wpdb Used to get the database prefix.
         * @global array $wp_user_roles Used to set the 'roles' property value.
         */
-       function _init () {
+       protected function _init() {
                global $wpdb, $wp_user_roles;
                $this->role_key = $wpdb->get_blog_prefix() . 'user_roles';
                if ( ! empty( $wp_user_roles ) ) {
                global $wpdb, $wp_user_roles;
                $this->role_key = $wpdb->get_blog_prefix() . 'user_roles';
                if ( ! empty( $wp_user_roles ) ) {
@@ -123,12 +137,12 @@ class WP_Roles {
         * @since 3.5.0
         * @access public
         */
         * @since 3.5.0
         * @access public
         */
-       function reinit() {
+       public function reinit() {
                // There is no need to reinit if using the wp_user_roles global.
                if ( ! $this->use_db )
                        return;
 
                // There is no need to reinit if using the wp_user_roles global.
                if ( ! $this->use_db )
                        return;
 
-               global $wpdb, $wp_user_roles;
+               global $wpdb;
 
                // Duplicated from _init() to avoid an extra function call.
                $this->role_key = $wpdb->get_blog_prefix() . 'user_roles';
 
                // Duplicated from _init() to avoid an extra function call.
                $this->role_key = $wpdb->get_blog_prefix() . 'user_roles';
@@ -160,7 +174,7 @@ class WP_Roles {
         * @param array $capabilities List of role capabilities in the above format.
         * @return WP_Role|null WP_Role object if role is added, null if already exists.
         */
         * @param array $capabilities List of role capabilities in the above format.
         * @return WP_Role|null WP_Role object if role is added, null if already exists.
         */
-       function add_role( $role, $display_name, $capabilities = array() ) {
+       public function add_role( $role, $display_name, $capabilities = array() ) {
                if ( isset( $this->roles[$role] ) )
                        return;
 
                if ( isset( $this->roles[$role] ) )
                        return;
 
@@ -183,7 +197,7 @@ class WP_Roles {
         *
         * @param string $role Role name.
         */
         *
         * @param string $role Role name.
         */
-       function remove_role( $role ) {
+       public function remove_role( $role ) {
                if ( ! isset( $this->role_objects[$role] ) )
                        return;
 
                if ( ! isset( $this->role_objects[$role] ) )
                        return;
 
@@ -208,7 +222,7 @@ class WP_Roles {
         * @param string $cap Capability name.
         * @param bool $grant Optional, default is true. Whether role is capable of performing capability.
         */
         * @param string $cap Capability name.
         * @param bool $grant Optional, default is true. Whether role is capable of performing capability.
         */
-       function add_cap( $role, $cap, $grant = true ) {
+       public function add_cap( $role, $cap, $grant = true ) {
                if ( ! isset( $this->roles[$role] ) )
                        return;
 
                if ( ! isset( $this->roles[$role] ) )
                        return;
 
@@ -226,7 +240,7 @@ class WP_Roles {
         * @param string $role Role name.
         * @param string $cap Capability name.
         */
         * @param string $role Role name.
         * @param string $cap Capability name.
         */
-       function remove_cap( $role, $cap ) {
+       public function remove_cap( $role, $cap ) {
                if ( ! isset( $this->roles[$role] ) )
                        return;
 
                if ( ! isset( $this->roles[$role] ) )
                        return;
 
@@ -244,7 +258,7 @@ class WP_Roles {
         * @param string $role Role name.
         * @return WP_Role|null WP_Role object if found, null if the role does not exist.
         */
         * @param string $role Role name.
         * @return WP_Role|null WP_Role object if found, null if the role does not exist.
         */
-       function get_role( $role ) {
+       public function get_role( $role ) {
                if ( isset( $this->role_objects[$role] ) )
                        return $this->role_objects[$role];
                else
                if ( isset( $this->role_objects[$role] ) )
                        return $this->role_objects[$role];
                else
@@ -259,7 +273,7 @@ class WP_Roles {
         *
         * @return array List of role names.
         */
         *
         * @return array List of role names.
         */
-       function get_names() {
+       public function get_names() {
                return $this->role_names;
        }
 
                return $this->role_names;
        }
 
@@ -272,7 +286,7 @@ class WP_Roles {
         * @param string $role Role name to look up.
         * @return bool
         */
         * @param string $role Role name to look up.
         * @return bool
         */
-       function is_role( $role ) {
+       public function is_role( $role ) {
                return isset( $this->role_names[$role] );
        }
 }
                return isset( $this->role_names[$role] );
        }
 }
@@ -292,7 +306,7 @@ class WP_Role {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $name;
+       public $name;
 
        /**
         * List of capabilities the role contains.
 
        /**
         * List of capabilities the role contains.
@@ -301,7 +315,7 @@ class WP_Role {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $capabilities;
+       public $capabilities;
 
        /**
         * Constructor - Set up object properties.
 
        /**
         * Constructor - Set up object properties.
@@ -315,7 +329,7 @@ class WP_Role {
         * @param string $role Role name.
         * @param array $capabilities List of capabilities.
         */
         * @param string $role Role name.
         * @param array $capabilities List of capabilities.
         */
-       function __construct( $role, $capabilities ) {
+       public function __construct( $role, $capabilities ) {
                $this->name = $role;
                $this->capabilities = $capabilities;
        }
                $this->name = $role;
                $this->capabilities = $capabilities;
        }
@@ -330,7 +344,7 @@ class WP_Role {
         * @param string $cap Capability name.
         * @param bool $grant Whether role has capability privilege.
         */
         * @param string $cap Capability name.
         * @param bool $grant Whether role has capability privilege.
         */
-       function add_cap( $cap, $grant = true ) {
+       public function add_cap( $cap, $grant = true ) {
                global $wp_roles;
 
                if ( ! isset( $wp_roles ) )
                global $wp_roles;
 
                if ( ! isset( $wp_roles ) )
@@ -353,7 +367,7 @@ class WP_Role {
         *
         * @param string $cap Capability name.
         */
         *
         * @param string $cap Capability name.
         */
-       function remove_cap( $cap ) {
+       public function remove_cap( $cap ) {
                global $wp_roles;
 
                if ( ! isset( $wp_roles ) )
                global $wp_roles;
 
                if ( ! isset( $wp_roles ) )
@@ -377,7 +391,7 @@ class WP_Role {
         * @param string $cap Capability name.
         * @return bool True, if user has capability. False, if doesn't have capability.
         */
         * @param string $cap Capability name.
         * @return bool True, if user has capability. False, if doesn't have capability.
         */
-       function has_cap( $cap ) {
+       public function has_cap( $cap ) {
                /**
                 * Filter which capabilities a role has.
                 *
                /**
                 * Filter which capabilities a role has.
                 *
@@ -420,7 +434,7 @@ class WP_User {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $ID = 0;
+       public $ID = 0;
 
        /**
         * The individual capabilities the user has been given.
 
        /**
         * The individual capabilities the user has been given.
@@ -429,7 +443,7 @@ class WP_User {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $caps = array();
+       public $caps = array();
 
        /**
         * User metadata option name.
 
        /**
         * User metadata option name.
@@ -438,7 +452,7 @@ class WP_User {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $cap_key;
+       public $cap_key;
 
        /**
         * The roles the user is part of.
 
        /**
         * The roles the user is part of.
@@ -447,7 +461,7 @@ class WP_User {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $roles = array();
+       public $roles = array();
 
        /**
         * All capabilities the user has, including individual and role based.
 
        /**
         * All capabilities the user has, including individual and role based.
@@ -456,7 +470,7 @@ class WP_User {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $allcaps = array();
+       public $allcaps = array();
 
        /**
         * The filter context applied to user data fields.
 
        /**
         * The filter context applied to user data fields.
@@ -482,7 +496,7 @@ class WP_User {
         * @param int $blog_id Optional Blog ID, defaults to current blog.
         * @return WP_User
         */
         * @param int $blog_id Optional Blog ID, defaults to current blog.
         * @return WP_User
         */
-       function __construct( $id = 0, $name = '', $blog_id = '' ) {
+       public function __construct( $id = 0, $name = '', $blog_id = '' ) {
                if ( ! isset( self::$back_compat_keys ) ) {
                        $prefix = $GLOBALS['wpdb']->prefix;
                        self::$back_compat_keys = array(
                if ( ! isset( self::$back_compat_keys ) ) {
                        $prefix = $GLOBALS['wpdb']->prefix;
                        self::$back_compat_keys = array(
@@ -523,7 +537,7 @@ class WP_User {
         * @param object $data User DB row object
         * @param int $blog_id Optional. The blog id to initialize for
         */
         * @param object $data User DB row object
         * @param int $blog_id Optional. The blog id to initialize for
         */
-       function init( $data, $blog_id = '' ) {
+       public function init( $data, $blog_id = '' ) {
                $this->data = $data;
                $this->ID = (int) $data->ID;
 
                $this->data = $data;
                $this->ID = (int) $data->ID;
 
@@ -539,7 +553,7 @@ class WP_User {
         * @param string|int $value The field value
         * @return object Raw user object
         */
         * @param string|int $value The field value
         * @return object Raw user object
         */
-       static function get_data_by( $field, $value ) {
+       public static function get_data_by( $field, $value ) {
                global $wpdb;
 
                if ( 'id' == $field ) {
                global $wpdb;
 
                if ( 'id' == $field ) {
@@ -599,7 +613,7 @@ class WP_User {
         *
         * @since 3.3.0
         */
         *
         * @since 3.3.0
         */
-       function __isset( $key ) {
+       public function __isset( $key ) {
                if ( 'id' == $key ) {
                        _deprecated_argument( 'WP_User->id', '2.1', __( 'Use <code>WP_User->ID</code> instead.' ) );
                        $key = 'ID';
                if ( 'id' == $key ) {
                        _deprecated_argument( 'WP_User->id', '2.1', __( 'Use <code>WP_User->ID</code> instead.' ) );
                        $key = 'ID';
@@ -619,7 +633,7 @@ class WP_User {
         *
         * @since 3.3.0
         */
         *
         * @since 3.3.0
         */
-       function __get( $key ) {
+       public function __get( $key ) {
                if ( 'id' == $key ) {
                        _deprecated_argument( 'WP_User->id', '2.1', __( 'Use <code>WP_User->ID</code> instead.' ) );
                        return $this->ID;
                if ( 'id' == $key ) {
                        _deprecated_argument( 'WP_User->id', '2.1', __( 'Use <code>WP_User->ID</code> instead.' ) );
                        return $this->ID;
@@ -645,7 +659,7 @@ class WP_User {
         *
         * @since 3.3.0
         */
         *
         * @since 3.3.0
         */
-       function __set( $key, $value ) {
+       public function __set( $key, $value ) {
                if ( 'id' == $key ) {
                        _deprecated_argument( 'WP_User->id', '2.1', __( 'Use <code>WP_User->ID</code> instead.' ) );
                        $this->ID = $value;
                if ( 'id' == $key ) {
                        _deprecated_argument( 'WP_User->id', '2.1', __( 'Use <code>WP_User->ID</code> instead.' ) );
                        $this->ID = $value;
@@ -663,7 +677,7 @@ class WP_User {
         *
         * @return bool True if user exists in the database, false if not.
         */
         *
         * @return bool True if user exists in the database, false if not.
         */
-       function exists() {
+       public function exists() {
                return ! empty( $this->ID );
        }
 
                return ! empty( $this->ID );
        }
 
@@ -676,7 +690,7 @@ class WP_User {
         *
         * @param string $key Property
         */
         *
         * @param string $key Property
         */
-       function get( $key ) {
+       public function get( $key ) {
                return $this->__get( $key );
        }
 
                return $this->__get( $key );
        }
 
@@ -689,7 +703,7 @@ class WP_User {
         *
         * @param string $key Property
         */
         *
         * @param string $key Property
         */
-       function has_prop( $key ) {
+       public function has_prop( $key ) {
                return $this->__isset( $key );
        }
 
                return $this->__isset( $key );
        }
 
@@ -700,7 +714,7 @@ class WP_User {
         *
         * @return array Array representation.
         */
         *
         * @return array Array representation.
         */
-       function to_array() {
+       public function to_array() {
                return get_object_vars( $this->data );
        }
 
                return get_object_vars( $this->data );
        }
 
@@ -747,7 +761,7 @@ class WP_User {
         *
         * @return array List of all capabilities for the user.
         */
         *
         * @return array List of all capabilities for the user.
         */
-       function get_role_caps() {
+       public function get_role_caps() {
                global $wp_roles;
 
                if ( ! isset( $wp_roles ) )
                global $wp_roles;
 
                if ( ! isset( $wp_roles ) )
@@ -778,7 +792,7 @@ class WP_User {
         *
         * @param string $role Role name.
         */
         *
         * @param string $role Role name.
         */
-       function add_role( $role ) {
+       public function add_role( $role ) {
                $this->caps[$role] = true;
                update_user_meta( $this->ID, $this->cap_key, $this->caps );
                $this->get_role_caps();
                $this->caps[$role] = true;
                update_user_meta( $this->ID, $this->cap_key, $this->caps );
                $this->get_role_caps();
@@ -793,7 +807,7 @@ class WP_User {
         *
         * @param string $role Role name.
         */
         *
         * @param string $role Role name.
         */
-       function remove_role( $role ) {
+       public function remove_role( $role ) {
                if ( !in_array($role, $this->roles) )
                        return;
                unset( $this->caps[$role] );
                if ( !in_array($role, $this->roles) )
                        return;
                unset( $this->caps[$role] );
@@ -814,7 +828,7 @@ class WP_User {
         *
         * @param string $role Role name.
         */
         *
         * @param string $role Role name.
         */
-       function set_role( $role ) {
+       public function set_role( $role ) {
                if ( 1 == count( $this->roles ) && $role == current( $this->roles ) )
                        return;
 
                if ( 1 == count( $this->roles ) && $role == current( $this->roles ) )
                        return;
 
@@ -864,7 +878,7 @@ class WP_User {
         * @param string $item Level capability name.
         * @return int Max Level.
         */
         * @param string $item Level capability name.
         * @return int Max Level.
         */
-       function level_reduction( $max, $item ) {
+       public function level_reduction( $max, $item ) {
                if ( preg_match( '/^level_(10|[0-9])$/i', $item, $matches ) ) {
                        $level = intval( $matches[1] );
                        return max( $max, $level );
                if ( preg_match( '/^level_(10|[0-9])$/i', $item, $matches ) ) {
                        $level = intval( $matches[1] );
                        return max( $max, $level );
@@ -883,7 +897,7 @@ class WP_User {
         * @since 2.0.0
         * @access public
         */
         * @since 2.0.0
         * @access public
         */
-       function update_user_level_from_caps() {
+       public function update_user_level_from_caps() {
                global $wpdb;
                $this->user_level = array_reduce( array_keys( $this->allcaps ), array( $this, 'level_reduction' ), 0 );
                update_user_meta( $this->ID, $wpdb->get_blog_prefix() . 'user_level', $this->user_level );
                global $wpdb;
                $this->user_level = array_reduce( array_keys( $this->allcaps ), array( $this, 'level_reduction' ), 0 );
                update_user_meta( $this->ID, $wpdb->get_blog_prefix() . 'user_level', $this->user_level );
@@ -898,7 +912,7 @@ class WP_User {
         * @param string $cap Capability name.
         * @param bool $grant Whether to grant capability to user.
         */
         * @param string $cap Capability name.
         * @param bool $grant Whether to grant capability to user.
         */
-       function add_cap( $cap, $grant = true ) {
+       public function add_cap( $cap, $grant = true ) {
                $this->caps[$cap] = $grant;
                update_user_meta( $this->ID, $this->cap_key, $this->caps );
        }
                $this->caps[$cap] = $grant;
                update_user_meta( $this->ID, $this->cap_key, $this->caps );
        }
@@ -911,7 +925,7 @@ class WP_User {
         *
         * @param string $cap Capability name.
         */
         *
         * @param string $cap Capability name.
         */
-       function remove_cap( $cap ) {
+       public function remove_cap( $cap ) {
                if ( ! isset( $this->caps[$cap] ) )
                        return;
                unset( $this->caps[$cap] );
                if ( ! isset( $this->caps[$cap] ) )
                        return;
                unset( $this->caps[$cap] );
@@ -924,7 +938,7 @@ class WP_User {
         * @since 2.1.0
         * @access public
         */
         * @since 2.1.0
         * @access public
         */
-       function remove_all_caps() {
+       public function remove_all_caps() {
                global $wpdb;
                $this->caps = array();
                delete_user_meta( $this->ID, $this->cap_key );
                global $wpdb;
                $this->caps = array();
                delete_user_meta( $this->ID, $this->cap_key );
@@ -945,7 +959,7 @@ class WP_User {
         * @param string|int $cap Capability or role name to search.
         * @return bool True, if user has capability; false, if user does not have capability.
         */
         * @param string|int $cap Capability or role name to search.
         * @return bool True, if user has capability; false, if user does not have capability.
         */
-       function has_cap( $cap ) {
+       public function has_cap( $cap ) {
                if ( is_numeric( $cap ) ) {
                        _deprecated_argument( __FUNCTION__, '2.0', __('Usage of user levels by plugins and themes is deprecated. Use roles and capabilities instead.') );
                        $cap = $this->translate_level_to_cap( $cap );
                if ( is_numeric( $cap ) ) {
                        _deprecated_argument( __FUNCTION__, '2.0', __('Usage of user levels by plugins and themes is deprecated. Use roles and capabilities instead.') );
                        $cap = $this->translate_level_to_cap( $cap );
@@ -995,7 +1009,7 @@ class WP_User {
         * @param int $level Level number, 1 to 10.
         * @return string
         */
         * @param int $level Level number, 1 to 10.
         * @return string
         */
-       function translate_level_to_cap( $level ) {
+       public function translate_level_to_cap( $level ) {
                return 'level_' . $level;
        }
 
                return 'level_' . $level;
        }
 
@@ -1006,7 +1020,7 @@ class WP_User {
         *
         * @param int $blog_id Optional Blog ID, defaults to current blog.
         */
         *
         * @param int $blog_id Optional Blog ID, defaults to current blog.
         */
-       function for_blog( $blog_id = '' ) {
+       public function for_blog( $blog_id = '' ) {
                global $wpdb;
                if ( ! empty( $blog_id ) )
                        $cap_key = $wpdb->get_blog_prefix( $blog_id ) . 'capabilities';
                global $wpdb;
                if ( ! empty( $blog_id ) )
                        $cap_key = $wpdb->get_blog_prefix( $blog_id ) . 'capabilities';
@@ -1248,18 +1262,25 @@ function map_meta_cap( $cap, $user_id ) {
        case 'update_plugins':
        case 'delete_plugins':
        case 'install_plugins':
        case 'update_plugins':
        case 'delete_plugins':
        case 'install_plugins':
+       case 'upload_plugins':
        case 'update_themes':
        case 'delete_themes':
        case 'install_themes':
        case 'update_themes':
        case 'delete_themes':
        case 'install_themes':
+       case 'upload_themes':
        case 'update_core':
                // Disallow anything that creates, deletes, or updates core, plugin, or theme files.
                // Files in uploads are excepted.
        case 'update_core':
                // Disallow anything that creates, deletes, or updates core, plugin, or theme files.
                // Files in uploads are excepted.
-               if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS )
+               if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) {
                        $caps[] = 'do_not_allow';
                        $caps[] = 'do_not_allow';
-               elseif ( is_multisite() && ! is_super_admin( $user_id ) )
+               } elseif ( is_multisite() && ! is_super_admin( $user_id ) ) {
                        $caps[] = 'do_not_allow';
                        $caps[] = 'do_not_allow';
-               else
+               } elseif ( 'upload_themes' === $cap ) {
+                       $caps[] = 'install_themes';
+               } elseif ( 'upload_plugins' === $cap ) {
+                       $caps[] = 'install_plugins';
+               } else {
                        $caps[] = $cap;
                        $caps[] = $cap;
+               }
                break;
        case 'activate_plugins':
                $caps[] = $cap;
                break;
        case 'activate_plugins':
                $caps[] = $cap;
@@ -1292,6 +1313,9 @@ function map_meta_cap( $cap, $user_id ) {
                else
                        $caps[] = 'do_not_allow';
                break;
                else
                        $caps[] = 'do_not_allow';
                break;
+       case 'customize' :
+               $caps[] = 'edit_theme_options';
+               break;
        default:
                // Handle meta capabilities for custom post types.
                $post_type_meta_caps = _post_type_meta_capabilities();
        default:
                // Handle meta capabilities for custom post types.
                $post_type_meta_caps = _post_type_meta_capabilities();
index e627bdc35a036be98ecf9ad7f577275992650714..7369fda9090b11e905b90c7a176a9dc162b7b9ae 100644 (file)
@@ -56,7 +56,7 @@ function get_category_parents( $id, $link = false, $separator = '/', $nicename =
        }
 
        if ( $link )
        }
 
        if ( $link )
-               $chain .= '<a href="' . esc_url( get_category_link( $parent->term_id ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $parent->name ) ) . '">'.$name.'</a>' . $separator;
+               $chain .= '<a href="' . esc_url( get_category_link( $parent->term_id ) ) . '">'.$name.'</a>' . $separator;
        else
                $chain .= $name.$separator;
        return $chain;
        else
                $chain .= $name.$separator;
        return $chain;
@@ -183,17 +183,17 @@ function get_the_category_list( $separator = '', $parents='', $post_id = false )
                                case 'multiple':
                                        if ( $category->parent )
                                                $thelist .= get_category_parents( $category->parent, true, $separator );
                                case 'multiple':
                                        if ( $category->parent )
                                                $thelist .= get_category_parents( $category->parent, true, $separator );
-                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '" ' . $rel . '>' . $category->name.'</a></li>';
+                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name.'</a></li>';
                                        break;
                                case 'single':
                                        break;
                                case 'single':
-                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '" ' . $rel . '>';
+                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '"  ' . $rel . '>';
                                        if ( $category->parent )
                                                $thelist .= get_category_parents( $category->parent, false, $separator );
                                        $thelist .= $category->name.'</a></li>';
                                        break;
                                case '':
                                default:
                                        if ( $category->parent )
                                                $thelist .= get_category_parents( $category->parent, false, $separator );
                                        $thelist .= $category->name.'</a></li>';
                                        break;
                                case '':
                                default:
-                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '" ' . $rel . '>' . $category->name.'</a></li>';
+                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name.'</a></li>';
                        }
                }
                $thelist .= '</ul>';
                        }
                }
                $thelist .= '</ul>';
@@ -206,17 +206,17 @@ function get_the_category_list( $separator = '', $parents='', $post_id = false )
                                case 'multiple':
                                        if ( $category->parent )
                                                $thelist .= get_category_parents( $category->parent, true, $separator );
                                case 'multiple':
                                        if ( $category->parent )
                                                $thelist .= get_category_parents( $category->parent, true, $separator );
-                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '" ' . $rel . '>' . $category->name.'</a>';
+                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name.'</a>';
                                        break;
                                case 'single':
                                        break;
                                case 'single':
-                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '" ' . $rel . '>';
+                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>';
                                        if ( $category->parent )
                                                $thelist .= get_category_parents( $category->parent, false, $separator );
                                        $thelist .= "$category->name</a>";
                                        break;
                                case '':
                                default:
                                        if ( $category->parent )
                                                $thelist .= get_category_parents( $category->parent, false, $separator );
                                        $thelist .= "$category->name</a>";
                                        break;
                                case '':
                                default:
-                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '" ' . $rel . '>' . $category->name.'</a>';
+                                       $thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name.'</a>';
                        }
                        ++$i;
                }
                        }
                        ++$i;
                }
@@ -292,6 +292,7 @@ function category_description( $category = 0 ) {
  * The list of arguments is below:
  *     'show_option_all' (string) - Text to display for showing all categories.
  *     'show_option_none' (string) - Text to display for showing no categories.
  * The list of arguments is below:
  *     'show_option_all' (string) - Text to display for showing all categories.
  *     'show_option_none' (string) - Text to display for showing no categories.
+ *     'option_none_value' (mixed) - Value to use when no category is selected.
  *     'orderby' (string) default is 'ID' - What column to use for ordering the
  * categories.
  *     'order' (string) default is 'ASC' - What direction to order categories.
  *     'orderby' (string) default is 'ID' - What column to use for ordering the
  * categories.
  *     'order' (string) default is 'ASC' - What direction to order categories.
@@ -331,7 +332,7 @@ function wp_dropdown_categories( $args = '' ) {
                'name' => 'cat', 'id' => '',
                'class' => 'postform', 'depth' => 0,
                'tab_index' => 0, 'taxonomy' => 'category',
                'name' => 'cat', 'id' => '',
                'class' => 'postform', 'depth' => 0,
                'tab_index' => 0, 'taxonomy' => 'category',
-               'hide_if_empty' => false
+               'hide_if_empty' => false, 'option_none_value' => -1
        );
 
        $defaults['selected'] = ( is_category() ) ? get_query_var( 'cat' ) : 0;
        );
 
        $defaults['selected'] = ( is_category() ) ? get_query_var( 'cat' ) : 0;
@@ -343,28 +344,29 @@ function wp_dropdown_categories( $args = '' ) {
        }
 
        $r = wp_parse_args( $args, $defaults );
        }
 
        $r = wp_parse_args( $args, $defaults );
+       $option_none_value = $r['option_none_value'];
 
 
-       if ( !isset( $r['pad_counts'] ) && $r['show_count'] && $r['hierarchical'] ) {
+       if ( ! isset( $r['pad_counts'] ) && $r['show_count'] && $r['hierarchical'] ) {
                $r['pad_counts'] = true;
        }
 
                $r['pad_counts'] = true;
        }
 
-       extract( $r );
+       $tab_index = $r['tab_index'];
 
        $tab_index_attribute = '';
 
        $tab_index_attribute = '';
-       if ( (int) $tab_index > 0 )
+       if ( (int) $tab_index > 0 ) {
                $tab_index_attribute = " tabindex=\"$tab_index\"";
                $tab_index_attribute = " tabindex=\"$tab_index\"";
+       }
+       $categories = get_terms( $r['taxonomy'], $r );
+       $name = esc_attr( $r['name'] );
+       $class = esc_attr( $r['class'] );
+       $id = $r['id'] ? esc_attr( $r['id'] ) : $name;
 
 
-       $categories = get_terms( $taxonomy, $r );
-       $name = esc_attr( $name );
-       $class = esc_attr( $class );
-       $id = $id ? esc_attr( $id ) : $name;
-
-       if ( ! $r['hide_if_empty'] || ! empty($categories) )
+       if ( ! $r['hide_if_empty'] || ! empty( $categories ) ) {
                $output = "<select name='$name' id='$id' class='$class' $tab_index_attribute>\n";
                $output = "<select name='$name' id='$id' class='$class' $tab_index_attribute>\n";
-       else
+       } else {
                $output = '';
                $output = '';
-
-       if ( empty($categories) && ! $r['hide_if_empty'] && !empty($show_option_none) ) {
+       }
+       if ( empty( $categories ) && ! $r['hide_if_empty'] && ! empty( $r['show_option_none'] ) ) {
 
                /**
                 * Filter a taxonomy drop-down display element.
 
                /**
                 * Filter a taxonomy drop-down display element.
@@ -380,39 +382,39 @@ function wp_dropdown_categories( $args = '' ) {
                 *
                 * @param string $element Taxonomy element to list.
                 */
                 *
                 * @param string $element Taxonomy element to list.
                 */
-               $show_option_none = apply_filters( 'list_cats', $show_option_none );
-               $output .= "\t<option value='-1' selected='selected'>$show_option_none</option>\n";
+               $show_option_none = apply_filters( 'list_cats', $r['show_option_none'] );
+               $output .= "\t<option value='" . esc_attr( $option_none_value ) . "' selected='selected'>$show_option_none</option>\n";
        }
 
        if ( ! empty( $categories ) ) {
 
        }
 
        if ( ! empty( $categories ) ) {
 
-               if ( $show_option_all ) {
+               if ( $r['show_option_all'] ) {
 
                        /** This filter is documented in wp-includes/category-template.php */
 
                        /** This filter is documented in wp-includes/category-template.php */
-                       $show_option_all = apply_filters( 'list_cats', $show_option_all );
+                       $show_option_all = apply_filters( 'list_cats', $r['show_option_all'] );
                        $selected = ( '0' === strval($r['selected']) ) ? " selected='selected'" : '';
                        $output .= "\t<option value='0'$selected>$show_option_all</option>\n";
                }
 
                        $selected = ( '0' === strval($r['selected']) ) ? " selected='selected'" : '';
                        $output .= "\t<option value='0'$selected>$show_option_all</option>\n";
                }
 
-               if ( $show_option_none ) {
+               if ( $r['show_option_none'] ) {
 
                        /** This filter is documented in wp-includes/category-template.php */
 
                        /** This filter is documented in wp-includes/category-template.php */
-                       $show_option_none = apply_filters( 'list_cats', $show_option_none );
-                       $selected = ( '-1' === strval($r['selected']) ) ? " selected='selected'" : '';
-                       $output .= "\t<option value='-1'$selected>$show_option_none</option>\n";
+                       $show_option_none = apply_filters( 'list_cats', $r['show_option_none'] );
+                       $selected = selected( $option_none_value, $r['selected'], false );
+                       $output .= "\t<option value='" . esc_attr( $option_none_value ) . "'$selected>$show_option_none</option>\n";
                }
 
                }
 
-               if ( $hierarchical )
+               if ( $r['hierarchical'] ) {
                        $depth = $r['depth'];  // Walk the full depth.
                        $depth = $r['depth'];  // Walk the full depth.
-               else
+               } else {
                        $depth = -1; // Flat.
                        $depth = -1; // Flat.
-
+               }
                $output .= walk_category_dropdown_tree( $categories, $depth, $r );
        }
 
                $output .= walk_category_dropdown_tree( $categories, $depth, $r );
        }
 
-       if ( ! $r['hide_if_empty'] || ! empty($categories) )
+       if ( ! $r['hide_if_empty'] || ! empty( $categories ) ) {
                $output .= "</select>\n";
                $output .= "</select>\n";
-
+       }
        /**
         * Filter the taxonomy drop-down output.
         *
        /**
         * Filter the taxonomy drop-down output.
         *
@@ -423,9 +425,9 @@ function wp_dropdown_categories( $args = '' ) {
         */
        $output = apply_filters( 'wp_dropdown_cats', $output, $r );
 
         */
        $output = apply_filters( 'wp_dropdown_cats', $output, $r );
 
-       if ( $echo )
+       if ( $r['echo'] ) {
                echo $output;
                echo $output;
-
+       }
        return $output;
 }
 
        return $output;
 }
 
@@ -442,7 +444,7 @@ function wp_dropdown_categories( $args = '' ) {
  *     'hide_empty' (bool|int) default is 1 - Whether to hide categories that
  * don't have any posts attached to them.
  *     'use_desc_for_title' (bool|int) default is 1 - Whether to use the
  *     'hide_empty' (bool|int) default is 1 - Whether to hide categories that
  * don't have any posts attached to them.
  *     'use_desc_for_title' (bool|int) default is 1 - Whether to use the
- * description instead of the category title.
+ * category description as the title attribute.
  *     'feed' - See {@link get_categories()}.
  *     'feed_type' - See {@link get_categories()}.
  *     'feed_image' - See {@link get_categories()}.
  *     'feed' - See {@link get_categories()}.
  *     'feed_type' - See {@link get_categories()}.
  *     'feed_image' - See {@link get_categories()}.
@@ -485,52 +487,57 @@ function wp_list_categories( $args = '' ) {
                $r['exclude'] = '';
        }
 
                $r['exclude'] = '';
        }
 
-       if ( !isset( $r['class'] ) )
+       if ( ! isset( $r['class'] ) )
                $r['class'] = ( 'category' == $r['taxonomy'] ) ? 'categories' : $r['taxonomy'];
 
                $r['class'] = ( 'category' == $r['taxonomy'] ) ? 'categories' : $r['taxonomy'];
 
-       extract( $r );
-
-       if ( !taxonomy_exists($taxonomy) )
+       if ( ! taxonomy_exists( $r['taxonomy'] ) ) {
                return false;
                return false;
+       }
+
+       $show_option_all = $r['show_option_all'];
+       $show_option_none = $r['show_option_none'];
 
        $categories = get_categories( $r );
 
        $output = '';
 
        $categories = get_categories( $r );
 
        $output = '';
-       if ( $title_li && 'list' == $style )
-                       $output = '<li class="' . esc_attr( $class ) . '">' . $title_li . '<ul>';
-
+       if ( $r['title_li'] && 'list' == $r['style'] ) {
+               $output = '<li class="' . esc_attr( $r['class'] ) . '">' . $r['title_li'] . '<ul>';
+       }
        if ( empty( $categories ) ) {
                if ( ! empty( $show_option_none ) ) {
        if ( empty( $categories ) ) {
                if ( ! empty( $show_option_none ) ) {
-                       if ( 'list' == $style )
+                       if ( 'list' == $r['style'] ) {
                                $output .= '<li class="cat-item-none">' . $show_option_none . '</li>';
                                $output .= '<li class="cat-item-none">' . $show_option_none . '</li>';
-                       else
+                       } else {
                                $output .= $show_option_none;
                                $output .= $show_option_none;
+                       }
                }
        } else {
                if ( ! empty( $show_option_all ) ) {
                        $posts_page = ( 'page' == get_option( 'show_on_front' ) && get_option( 'page_for_posts' ) ) ? get_permalink( get_option( 'page_for_posts' ) ) : home_url( '/' );
                        $posts_page = esc_url( $posts_page );
                }
        } else {
                if ( ! empty( $show_option_all ) ) {
                        $posts_page = ( 'page' == get_option( 'show_on_front' ) && get_option( 'page_for_posts' ) ) ? get_permalink( get_option( 'page_for_posts' ) ) : home_url( '/' );
                        $posts_page = esc_url( $posts_page );
-                       if ( 'list' == $style )
+                       if ( 'list' == $r['style'] ) {
                                $output .= "<li class='cat-item-all'><a href='$posts_page'>$show_option_all</a></li>";
                                $output .= "<li class='cat-item-all'><a href='$posts_page'>$show_option_all</a></li>";
-                       else
+                       } else {
                                $output .= "<a href='$posts_page'>$show_option_all</a>";
                                $output .= "<a href='$posts_page'>$show_option_all</a>";
+                       }
                }
 
                if ( empty( $r['current_category'] ) && ( is_category() || is_tax() || is_tag() ) ) {
                        $current_term_object = get_queried_object();
                }
 
                if ( empty( $r['current_category'] ) && ( is_category() || is_tax() || is_tag() ) ) {
                        $current_term_object = get_queried_object();
-                       if ( $current_term_object && $r['taxonomy'] === $current_term_object->taxonomy )
+                       if ( $current_term_object && $r['taxonomy'] === $current_term_object->taxonomy ) {
                                $r['current_category'] = get_queried_object_id();
                                $r['current_category'] = get_queried_object_id();
+                       }
                }
 
                }
 
-               if ( $hierarchical )
+               if ( $r['hierarchical'] ) {
                        $depth = $r['depth'];
                        $depth = $r['depth'];
-               else
+               } else {
                        $depth = -1; // Flat.
                        $depth = -1; // Flat.
-
+               }
                $output .= walk_category_tree( $categories, $depth, $r );
        }
 
                $output .= walk_category_tree( $categories, $depth, $r );
        }
 
-       if ( $title_li && 'list' == $style )
+       if ( $r['title_li'] && 'list' == $r['style'] )
                $output .= '</ul></li>';
 
        /**
                $output .= '</ul></li>';
 
        /**
@@ -541,12 +548,13 @@ function wp_list_categories( $args = '' ) {
         * @param string $output HTML output.
         * @param array  $args   An array of taxonomy-listing arguments.
         */
         * @param string $output HTML output.
         * @param array  $args   An array of taxonomy-listing arguments.
         */
-       $output = apply_filters( 'wp_list_categories', $output, $args );
+       $html = apply_filters( 'wp_list_categories', $output, $args );
 
 
-       if ( $echo )
-               echo $output;
-       else
-               return $output;
+       if ( $r['echo'] ) {
+               echo $html;
+       } else {
+               return $html;
+       }
 }
 
 /**
 }
 
 /**
@@ -679,9 +687,8 @@ function wp_generate_tag_cloud( $tags, $args = '' ) {
        );
 
        $args = wp_parse_args( $args, $defaults );
        );
 
        $args = wp_parse_args( $args, $defaults );
-       extract( $args, EXTR_SKIP );
 
 
-       $return = ( 'array' === $format ) ? array() : '';
+       $return = ( 'array' === $args['format'] ) ? array() : '';
 
        if ( empty( $tags ) ) {
                return $return;
 
        if ( empty( $tags ) ) {
                return $return;
@@ -723,37 +730,37 @@ function wp_generate_tag_cloud( $tags, $args = '' ) {
                $tags = $tags_sorted;
                unset( $tags_sorted );
        } else {
                $tags = $tags_sorted;
                unset( $tags_sorted );
        } else {
-               if ( 'RAND' === $order ) {
+               if ( 'RAND' === $args['order'] ) {
                        shuffle( $tags );
                } else {
                        // SQL cannot save you; this is a second (potentially different) sort on a subset of data.
                        shuffle( $tags );
                } else {
                        // SQL cannot save you; this is a second (potentially different) sort on a subset of data.
-                       if ( 'name' === $orderby ) {
+                       if ( 'name' === $args['orderby'] ) {
                                uasort( $tags, '_wp_object_name_sort_cb' );
                        } else {
                                uasort( $tags, '_wp_object_count_sort_cb' );
                        }
 
                                uasort( $tags, '_wp_object_name_sort_cb' );
                        } else {
                                uasort( $tags, '_wp_object_count_sort_cb' );
                        }
 
-                       if ( 'DESC' === $order ) {
+                       if ( 'DESC' === $args['order'] ) {
                                $tags = array_reverse( $tags, true );
                        }
                }
        }
 
                                $tags = array_reverse( $tags, true );
                        }
                }
        }
 
-       if ( $number > 0 )
-               $tags = array_slice($tags, 0, $number);
+       if ( $args['number'] > 0 )
+               $tags = array_slice( $tags, 0, $args['number'] );
 
        $counts = array();
        $real_counts = array(); // For the alt tag
        foreach ( (array) $tags as $key => $tag ) {
                $real_counts[ $key ] = $tag->count;
 
        $counts = array();
        $real_counts = array(); // For the alt tag
        foreach ( (array) $tags as $key => $tag ) {
                $real_counts[ $key ] = $tag->count;
-               $counts[ $key ] = $topic_count_scale_callback($tag->count);
+               $counts[ $key ] = call_user_func( $args['topic_count_scale_callback'], $tag->count );
        }
 
        $min_count = min( $counts );
        $spread = max( $counts ) - $min_count;
        if ( $spread <= 0 )
                $spread = 1;
        }
 
        $min_count = min( $counts );
        $spread = max( $counts ) - $min_count;
        if ( $spread <= 0 )
                $spread = 1;
-       $font_spread = $largest - $smallest;
+       $font_spread = $args['largest'] - $args['smallest'];
        if ( $font_spread < 0 )
                $font_spread = 1;
        $font_step = $font_spread / $spread;
        if ( $font_spread < 0 )
                $font_spread = 1;
        $font_step = $font_spread / $spread;
@@ -770,29 +777,29 @@ function wp_generate_tag_cloud( $tags, $args = '' ) {
                if ( $translate_nooped_plural ) {
                        $title_attribute = sprintf( translate_nooped_plural( $translate_nooped_plural, $real_count ), number_format_i18n( $real_count ) );
                } else {
                if ( $translate_nooped_plural ) {
                        $title_attribute = sprintf( translate_nooped_plural( $translate_nooped_plural, $real_count ), number_format_i18n( $real_count ) );
                } else {
-                       $title_attribute = call_user_func( $topic_count_text_callback, $real_count, $tag, $args );
+                       $title_attribute = call_user_func( $args['topic_count_text_callback'], $real_count, $tag, $args );
                }
 
                $a[] = "<a href='$tag_link' class='tag-link-$tag_id' title='" . esc_attr( $title_attribute ) . "' style='font-size: " .
                }
 
                $a[] = "<a href='$tag_link' class='tag-link-$tag_id' title='" . esc_attr( $title_attribute ) . "' style='font-size: " .
-                       str_replace( ',', '.', ( $smallest + ( ( $count - $min_count ) * $font_step ) ) )
-                       . "$unit;'>$tag_name</a>";
+                       str_replace( ',', '.', ( $args['smallest'] + ( ( $count - $min_count ) * $font_step ) ) )
+                       . $args['unit'] . ";'>$tag_name</a>";
+       }
+
+       switch ( $args['format'] ) {
+               case 'array' :
+                       $return =& $a;
+                       break;
+               case 'list' :
+                       $return = "<ul class='wp-tag-cloud'>\n\t<li>";
+                       $return .= join( "</li>\n\t<li>", $a );
+                       $return .= "</li>\n</ul>\n";
+                       break;
+               default :
+                       $return = join( $args['separator'], $a );
+                       break;
        }
 
        }
 
-       switch ( $format ) :
-       case 'array' :
-               $return =& $a;
-               break;
-       case 'list' :
-               $return = "<ul class='wp-tag-cloud'>\n\t<li>";
-               $return .= join( "</li>\n\t<li>", $a );
-               $return .= "</li>\n</ul>\n";
-               break;
-       default :
-               $return = join( $separator, $a );
-               break;
-       endswitch;
-
-       if ( $filter ) {
+       if ( $args['filter'] ) {
                /**
                 * Filter the generated output of a tag cloud.
                 *
                /**
                 * Filter the generated output of a tag cloud.
                 *
@@ -891,7 +898,7 @@ class Walker_Category extends Walker {
         * @since 2.1.0
         * @var string
         */
         * @since 2.1.0
         * @var string
         */
-       var $tree_type = 'category';
+       public $tree_type = 'category';
 
        /**
         * Database fields to use.
 
        /**
         * Database fields to use.
@@ -901,7 +908,7 @@ class Walker_Category extends Walker {
         * @todo Decouple this
         * @var array
         */
         * @todo Decouple this
         * @var array
         */
-       var $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
+       public $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
 
        /**
         * Starts the list before the elements are added.
 
        /**
         * Starts the list before the elements are added.
@@ -915,7 +922,7 @@ class Walker_Category extends Walker {
         * @param array  $args   An array of arguments. Will only append content if style argument value is 'list'.
         *                       @see wp_list_categories()
         */
         * @param array  $args   An array of arguments. Will only append content if style argument value is 'list'.
         *                       @see wp_list_categories()
         */
-       function start_lvl( &$output, $depth = 0, $args = array() ) {
+       public function start_lvl( &$output, $depth = 0, $args = array() ) {
                if ( 'list' != $args['style'] )
                        return;
 
                if ( 'list' != $args['style'] )
                        return;
 
@@ -935,7 +942,7 @@ class Walker_Category extends Walker {
         * @param array  $args   An array of arguments. Will only append content if style argument value is 'list'.
         *                       @wsee wp_list_categories()
         */
         * @param array  $args   An array of arguments. Will only append content if style argument value is 'list'.
         *                       @wsee wp_list_categories()
         */
-       function end_lvl( &$output, $depth = 0, $args = array() ) {
+       public function end_lvl( &$output, $depth = 0, $args = array() ) {
                if ( 'list' != $args['style'] )
                        return;
 
                if ( 'list' != $args['style'] )
                        return;
 
@@ -956,18 +963,16 @@ class Walker_Category extends Walker {
         * @param array  $args     An array of arguments. @see wp_list_categories()
         * @param int    $id       ID of the current category.
         */
         * @param array  $args     An array of arguments. @see wp_list_categories()
         * @param int    $id       ID of the current category.
         */
-       function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {
-               extract($args);
-
-               $cat_name = esc_attr( $category->name );
-
+       public function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {
                /** This filter is documented in wp-includes/category-template.php */
                /** This filter is documented in wp-includes/category-template.php */
-               $cat_name = apply_filters( 'list_cats', $cat_name, $category );
-
-               $link = '<a href="' . esc_url( get_term_link($category) ) . '" ';
-               if ( $use_desc_for_title == 0 || empty($category->description) ) {
-                       $link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s' ), $cat_name) ) . '"';
-               } else {
+               $cat_name = apply_filters(
+                       'list_cats',
+                       esc_attr( $category->name ),
+                       $category
+               );
+
+               $link = '<a href="' . esc_url( get_term_link( $category ) ) . '" ';
+               if ( $args['use_desc_for_title'] && ! empty( $category->description ) ) {
                        /**
                         * Filter the category description for display.
                         *
                        /**
                         * Filter the category description for display.
                         *
@@ -982,48 +987,50 @@ class Walker_Category extends Walker {
                $link .= '>';
                $link .= $cat_name . '</a>';
 
                $link .= '>';
                $link .= $cat_name . '</a>';
 
-               if ( !empty($feed_image) || !empty($feed) ) {
+               if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) {
                        $link .= ' ';
 
                        $link .= ' ';
 
-                       if ( empty($feed_image) )
+                       if ( empty( $args['feed_image'] ) ) {
                                $link .= '(';
                                $link .= '(';
+                       }
 
 
-                       $link .= '<a href="' . esc_url( get_term_feed_link( $category->term_id, $category->taxonomy, $feed_type ) ) . '"';
+                       $link .= '<a href="' . esc_url( get_term_feed_link( $category->term_id, $category->taxonomy, $args['feed_type'] ) ) . '"';
 
 
-                       if ( empty($feed) ) {
+                       if ( empty( $args['feed'] ) ) {
                                $alt = ' alt="' . sprintf(__( 'Feed for all posts filed under %s' ), $cat_name ) . '"';
                        } else {
                                $alt = ' alt="' . sprintf(__( 'Feed for all posts filed under %s' ), $cat_name ) . '"';
                        } else {
-                               $title = ' title="' . $feed . '"';
-                               $alt = ' alt="' . $feed . '"';
-                               $name = $feed;
-                               $link .= $title;
+                               $alt = ' alt="' . $args['feed'] . '"';
+                               $name = $args['feed'];
+                               $link .= empty( $args['title'] ) ? '' : $args['title'];
                        }
 
                        $link .= '>';
 
                        }
 
                        $link .= '>';
 
-                       if ( empty($feed_image) )
+                       if ( empty( $args['feed_image'] ) ) {
                                $link .= $name;
                                $link .= $name;
-                       else
-                               $link .= "<img src='$feed_image'$alt$title" . ' />';
-
+                       } else {
+                               $link .= "<img src='" . $args['feed_image'] . "'$alt" . ' />';
+                       }
                        $link .= '</a>';
 
                        $link .= '</a>';
 
-                       if ( empty($feed_image) )
+                       if ( empty( $args['feed_image'] ) ) {
                                $link .= ')';
                                $link .= ')';
+                       }
                }
 
                }
 
-               if ( !empty($show_count) )
+               if ( ! empty( $args['show_count'] ) ) {
                        $link .= ' (' . number_format_i18n( $category->count ) . ')';
                        $link .= ' (' . number_format_i18n( $category->count ) . ')';
-
+               }
                if ( 'list' == $args['style'] ) {
                        $output .= "\t<li";
                        $class = 'cat-item cat-item-' . $category->term_id;
                if ( 'list' == $args['style'] ) {
                        $output .= "\t<li";
                        $class = 'cat-item cat-item-' . $category->term_id;
-                       if ( !empty($current_category) ) {
-                               $_current_category = get_term( $current_category, $category->taxonomy );
-                               if ( $category->term_id == $current_category )
+                       if ( ! empty( $args['current_category'] ) ) {
+                               $_current_category = get_term( $args['current_category'], $category->taxonomy );
+                               if ( $category->term_id == $args['current_category'] ) {
                                        $class .=  ' current-cat';
                                        $class .=  ' current-cat';
-                               elseif ( $category->term_id == $_current_category->parent )
+                               } elseif ( $category->term_id == $_current_category->parent ) {
                                        $class .=  ' current-cat-parent';
                                        $class .=  ' current-cat-parent';
+                               }
                        }
                        $output .=  ' class="' . $class . '"';
                        $output .= ">$link\n";
                        }
                        $output .=  ' class="' . $class . '"';
                        $output .= ">$link\n";
@@ -1044,7 +1051,7 @@ class Walker_Category extends Walker {
         * @param int    $depth  Depth of category. Not used.
         * @param array  $args   An array of arguments. Only uses 'list' for whether should append to output. @see wp_list_categories()
         */
         * @param int    $depth  Depth of category. Not used.
         * @param array  $args   An array of arguments. Only uses 'list' for whether should append to output. @see wp_list_categories()
         */
-       function end_el( &$output, $page, $depth = 0, $args = array() ) {
+       public function end_el( &$output, $page, $depth = 0, $args = array() ) {
                if ( 'list' != $args['style'] )
                        return;
 
                if ( 'list' != $args['style'] )
                        return;
 
@@ -1066,7 +1073,7 @@ class Walker_CategoryDropdown extends Walker {
         * @since 2.1.0
         * @var string
         */
         * @since 2.1.0
         * @var string
         */
-       var $tree_type = 'category';
+       public $tree_type = 'category';
 
        /**
         * @see Walker::$db_fields
 
        /**
         * @see Walker::$db_fields
@@ -1074,7 +1081,7 @@ class Walker_CategoryDropdown extends Walker {
         * @todo Decouple this
         * @var array
         */
         * @todo Decouple this
         * @var array
         */
-       var $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
+       public $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
 
        /**
         * Start the element output.
 
        /**
         * Start the element output.
@@ -1087,7 +1094,7 @@ class Walker_CategoryDropdown extends Walker {
         * @param int    $depth    Depth of category. Used for padding.
         * @param array  $args     Uses 'selected' and 'show_count' keys, if they exist. @see wp_dropdown_categories()
         */
         * @param int    $depth    Depth of category. Used for padding.
         * @param array  $args     Uses 'selected' and 'show_count' keys, if they exist. @see wp_dropdown_categories()
         */
-       function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {
+       public function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) {
                $pad = str_repeat('&nbsp;', $depth * 3);
 
                /** This filter is documented in wp-includes/category-template.php */
                $pad = str_repeat('&nbsp;', $depth * 3);
 
                /** This filter is documented in wp-includes/category-template.php */
@@ -1160,7 +1167,7 @@ function get_the_tags( $id = 0 ) {
  * @param string $sep Optional. Between tags.
  * @param string $after Optional. After tags.
  * @param int $id Optional. Post ID. Defaults to the current post.
  * @param string $sep Optional. Between tags.
  * @param string $after Optional. After tags.
  * @param int $id Optional. Post ID. Defaults to the current post.
- * @return string|bool|WP_Error A list of tags on success, false or WP_Error on failure.
+ * @return string|bool|WP_Error A list of tags on success, false if there are no terms, WP_Error on failure.
  */
 function get_the_tag_list( $before = '', $sep = '', $after = '', $id = 0 ) {
 
  */
 function get_the_tag_list( $before = '', $sep = '', $after = '', $id = 0 ) {
 
@@ -1233,7 +1240,8 @@ function term_description( $term = 0, $taxonomy = 'post_tag' ) {
  *
  * @param int|object $post Post ID or object.
  * @param string $taxonomy Taxonomy name.
  *
  * @param int|object $post Post ID or object.
  * @param string $taxonomy Taxonomy name.
- * @return array|bool|WP_Error Array of term objects on success, false or WP_Error on failure.
+ * @return array|bool|WP_Error Array of term objects on success, false if there are no terms
+ *                             or the post does not exist, WP_Error on failure.
  */
 function get_the_terms( $post, $taxonomy ) {
        if ( ! $post = get_post( $post ) )
  */
 function get_the_terms( $post, $taxonomy ) {
        if ( ! $post = get_post( $post ) )
@@ -1250,9 +1258,9 @@ function get_the_terms( $post, $taxonomy ) {
         *
         * @since 3.1.0
         *
         *
         * @since 3.1.0
         *
-        * @param array  $terms    List of attached terms.
-        * @param int    $post_id  Post ID.
-        * @param string $taxonomy Name of the taxonomy.
+        * @param array|WP_Error $terms    List of attached terms, or WP_Error on failure.
+        * @param int            $post_id  Post ID.
+        * @param string         $taxonomy Name of the taxonomy.
         */
        $terms = apply_filters( 'get_the_terms', $terms, $post->ID, $taxonomy );
 
         */
        $terms = apply_filters( 'get_the_terms', $terms, $post->ID, $taxonomy );
 
@@ -1272,7 +1280,7 @@ function get_the_terms( $post, $taxonomy ) {
  * @param string $before Optional. Before list.
  * @param string $sep Optional. Separate items using this.
  * @param string $after Optional. After list.
  * @param string $before Optional. Before list.
  * @param string $sep Optional. Separate items using this.
  * @param string $after Optional. After list.
- * @return string|bool|WP_Error A list of terms on success, false or WP_Error on failure.
+ * @return string|bool|WP_Error A list of terms on success, false if there are no terms, WP_Error on failure.
  */
 function get_the_term_list( $id, $taxonomy, $before = '', $sep = '', $after = '' ) {
        $terms = get_the_terms( $id, $taxonomy );
  */
 function get_the_term_list( $id, $taxonomy, $before = '', $sep = '', $after = '' ) {
        $terms = get_the_terms( $id, $taxonomy );
index 24cf6e8ad3faa1e95f762fcc3d5c13ae7a5a71cb..fddaa6f66d43b9b7bef57666b071260c3eda5d88 100644 (file)
@@ -5,23 +5,6 @@
  * @package WordPress
  */
 
  * @package WordPress
  */
 
-/**
- * Retrieves all category IDs.
- *
- * @since 2.0.0
- * @link http://codex.wordpress.org/Function_Reference/get_all_category_ids
- *
- * @return object List of all of the category IDs.
- */
-function get_all_category_ids() {
-       if ( ! $cat_ids = wp_cache_get( 'all_category_ids', 'category' ) ) {
-               $cat_ids = get_terms( 'category', array('fields' => 'ids', 'get' => 'all') );
-               wp_cache_add( 'all_category_ids', $cat_ids, 'category' );
-       }
-
-       return $cat_ids;
-}
-
 /**
  * Retrieve list of category objects.
  *
 /**
  * Retrieve list of category objects.
  *
index f576719c87c52dcaa8cd80483f6ed22ea8d12603..b0a0f28d998b582786ec0cf19a4c5a513c50037f 100644 (file)
@@ -358,7 +358,7 @@ class IXR_Message
                     $this->_arraystructs[count($this->_arraystructs)-1][] = $value;
                 }
             } else {
                     $this->_arraystructs[count($this->_arraystructs)-1][] = $value;
                 }
             } else {
-                // Just add as a paramater
+                // Just add as a parameter
                 $this->params[] = $value;
             }
         }
                 $this->params[] = $value;
             }
         }
@@ -451,7 +451,7 @@ EOD;
 
         // Perform the callback and send the response
         if (count($args) == 1) {
 
         // Perform the callback and send the response
         if (count($args) == 1) {
-            // If only one paramater just send that instead of the whole array
+            // If only one parameter just send that instead of the whole array
             $args = $args[0];
         }
 
             $args = $args[0];
         }
 
index c33b30247e047ffb41dc8d7249ecdf2a469af699..9aa144a52b91ce2dd0108be8ac57a3b751574054 100644 (file)
@@ -10,17 +10,17 @@ class WP_Feed_Cache extends SimplePie_Cache {
         * @static
         * @access public
         */
         * @static
         * @access public
         */
-       function create($location, $filename, $extension) {
+       public function create($location, $filename, $extension) {
                return new WP_Feed_Cache_Transient($location, $filename, $extension);
        }
 }
 
 class WP_Feed_Cache_Transient {
                return new WP_Feed_Cache_Transient($location, $filename, $extension);
        }
 }
 
 class WP_Feed_Cache_Transient {
-       var $name;
-       var $mod_name;
-       var $lifetime = 43200; //Default lifetime in cache of 12 hours
+       public $name;
+       public $mod_name;
+       public $lifetime = 43200; //Default lifetime in cache of 12 hours
 
 
-       function __construct($location, $filename, $extension) {
+       public function __construct($location, $filename, $extension) {
                $this->name = 'feed_' . $filename;
                $this->mod_name = 'feed_mod_' . $filename;
 
                $this->name = 'feed_' . $filename;
                $this->mod_name = 'feed_mod_' . $filename;
 
@@ -36,7 +36,7 @@ class WP_Feed_Cache_Transient {
                $this->lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', $lifetime, $filename);
        }
 
                $this->lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', $lifetime, $filename);
        }
 
-       function save($data) {
+       public function save($data) {
                if ( is_a($data, 'SimplePie') )
                        $data = $data->data;
 
                if ( is_a($data, 'SimplePie') )
                        $data = $data->data;
 
@@ -45,19 +45,19 @@ class WP_Feed_Cache_Transient {
                return true;
        }
 
                return true;
        }
 
-       function load() {
+       public function load() {
                return get_transient($this->name);
        }
 
                return get_transient($this->name);
        }
 
-       function mtime() {
+       public function mtime() {
                return get_transient($this->mod_name);
        }
 
                return get_transient($this->mod_name);
        }
 
-       function touch() {
+       public function touch() {
                return set_transient($this->mod_name, time(), $this->lifetime);
        }
 
                return set_transient($this->mod_name, time(), $this->lifetime);
        }
 
-       function unlink() {
+       public function unlink() {
                delete_transient($this->name);
                delete_transient($this->mod_name);
                return true;
                delete_transient($this->name);
                delete_transient($this->mod_name);
                return true;
@@ -66,7 +66,7 @@ class WP_Feed_Cache_Transient {
 
 class WP_SimplePie_File extends SimplePie_File {
 
 
 class WP_SimplePie_File extends SimplePie_File {
 
-       function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) {
+       public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) {
                $this->url = $url;
                $this->timeout = $timeout;
                $this->redirects = $redirects;
                $this->url = $url;
                $this->timeout = $timeout;
                $this->redirects = $redirects;
index 13cf1442fe929bbac6890b096eb4154834fcdfa5..8a23836385e7f9d69d509c0b9a40bcad1d812433 100644 (file)
 class WP_Http {
 
        /**
 class WP_Http {
 
        /**
-        * Send a HTTP request to a URI.
+        * Send an HTTP request to a URI.
         *
         *
-        * The body and headers are part of the arguments. The 'body' argument is for the body and will
-        * accept either a string or an array. The 'headers' argument should be an array, but a string
-        * is acceptable. If the 'body' argument is an array, then it will automatically be escaped
-        * using http_build_query().
-        *
-        * The only URI that are supported in the HTTP Transport implementation are the HTTP and HTTPS
-        * protocols.
-        *
-        * The defaults are 'method', 'timeout', 'redirection', 'httpversion', 'blocking' and
-        * 'user-agent'.
-        *
-        * Accepted 'method' values are 'GET', 'POST', and 'HEAD', some transports technically allow
-        * others, but should not be assumed. The 'timeout' is used to sent how long the connection
-        * should stay open before failing when no response. 'redirection' is used to track how many
-        * redirects were taken and used to sent the amount for other transports, but not all transports
-        * accept setting that value.
-        *
-        * The 'httpversion' option is used to sent the HTTP version and accepted values are '1.0', and
-        * '1.1' and should be a string. The 'user-agent' option is the user-agent and is used to
-        * replace the default user-agent, which is 'WordPress/WP_Version', where WP_Version is the
-        * value from $wp_version.
-        *
-        * The 'blocking' parameter can be used to specify if the calling code requires the result of
-        * the HTTP request. If set to false, the request will be sent to the remote server, and
-        * processing returned to the calling code immediately, the caller will know if the request
-        * suceeded or failed, but will not receive any response from the remote server.
+        * Please note: The only URI that are supported in the HTTP Transport implementation
+        * are the HTTP and HTTPS protocols.
         *
         * @access public
         * @since 2.7.0
         *
         *
         * @access public
         * @since 2.7.0
         *
-        * @param string $url URI resource.
-        * @param str|array $args Optional. Override the defaults.
-        * @return array|object Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
+        * @param string       $url  The request URL.
+        * @param string|array $args {
+        *     Optional. Array or string of HTTP request arguments.
+        *
+        *     @type string       $method              Request method. Accepts 'GET', 'POST', 'HEAD', or 'PUT'.
+        *                                             Some transports technically allow others, but should not be
+        *                                             assumed. Default 'GET'.
+        *     @type int          $timeout             How long the connection should stay open in seconds. Default 5.
+        *     @type int          $redirection         Number of allowed redirects. Not supported by all transports
+        *                                             Default 5.
+        *     @type string       $httpversion         Version of the HTTP protocol to use. Accepts '1.0' and '1.1'.
+        *                                             Default '1.0'.
+        *     @type string       $user-agent          User-agent value sent.
+        *                                             Default WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ).
+        *     @type bool         $reject_unsafe_urls  Whether to pass URLs through {@see wp_http_validate_url()}.
+        *                                             Default false.
+        *     @type bool         $blocking            Whether the calling code requires the result of the request.
+        *                                             If set to false, the request will be sent to the remote server,
+        *                                             and processing returned to the calling code immediately, the caller
+        *                                             will know if the request succeeded or failed, but will not receive
+        *                                             any response from the remote server. Default true.
+        *     @type string|array $headers             Array or string of headers to send with the request.
+        *                                             Default empty array.
+        *     @type array        $cookies             List of cookies to send with the request. Default empty array.
+        *     @type string|array $body                Body to send with the request. Default null.
+        *     @type bool         $compress            Whether to compress the $body when sending the request.
+        *                                             Default false.
+        *     @type bool         $decompress          Whether to decompress a compressed response. If set to false and
+        *                                             compressed content is returned in the response anyway, it will
+        *                                             need to be separately decompressed. Default true.
+        *     @type bool         $sslverify           Whether to verify SSL for the request. Default true.
+        *     @type string       sslcertificates      Absolute path to an SSL certificate .crt file.
+        *                                             Default ABSPATH . WPINC . '/certificates/ca-bundle.crt'.
+        *     @type bool         $stream              Whether to stream to a file. If set to true and no filename was
+        *                                             given, it will be droped it in the WP temp dir and its name will
+        *                                             be set using the basename of the URL. Default false.
+        *     @type string       $filename            Filename of the file to write to when streaming. $stream must be
+        *                                             set to true. Default null.
+        *     @type int          $limit_response_size Size in bytes to limit the response to. Default null.
+        *
+        * }
+        * @return array|WP_Error Array containing 'headers', 'body', 'response', 'cookies', 'filename'.
+        *                        A WP_Error instance upon error.
         */
         */
-       function request( $url, $args = array() ) {
+       public function request( $url, $args = array() ) {
                global $wp_version;
 
                $defaults = array(
                global $wp_version;
 
                $defaults = array(
@@ -139,7 +155,7 @@ class WP_Http {
                 * @since 2.7.0
                 *
                 * @param array  $r   An array of HTTP request arguments.
                 * @since 2.7.0
                 *
                 * @param array  $r   An array of HTTP request arguments.
-                * @param string $url The request URI resource.
+                * @param string $url The request URL.
                 */
                $r = apply_filters( 'http_request_args', $r, $url );
 
                 */
                $r = apply_filters( 'http_request_args', $r, $url );
 
@@ -157,7 +173,7 @@ class WP_Http {
                 *
                 * @param bool   $preempt Whether to preempt an HTTP request return. Default false.
                 * @param array  $r       HTTP request arguments.
                 *
                 * @param bool   $preempt Whether to preempt an HTTP request return. Default false.
                 * @param array  $r       HTTP request arguments.
-                * @param string $url     The request URI resource.
+                * @param string $url     The request URL.
                 */
                $pre = apply_filters( 'pre_http_request', false, $r, $url );
                if ( false !== $pre )
                 */
                $pre = apply_filters( 'pre_http_request', false, $r, $url );
                if ( false !== $pre )
@@ -177,21 +193,28 @@ class WP_Http {
                if ( $this->block_request( $url ) )
                        return new WP_Error( 'http_request_failed', __( 'User has blocked requests through HTTP.' ) );
 
                if ( $this->block_request( $url ) )
                        return new WP_Error( 'http_request_failed', __( 'User has blocked requests through HTTP.' ) );
 
-               // Determine if this is a https call and pass that on to the transport functions
-               // so that we can blacklist the transports that do not support ssl verification
+               /*
+                * Determine if this is a https call and pass that on to the transport functions
+                * so that we can blacklist the transports that do not support ssl verification
+                */
                $r['ssl'] = $arrURL['scheme'] == 'https' || $arrURL['scheme'] == 'ssl';
 
                $r['ssl'] = $arrURL['scheme'] == 'https' || $arrURL['scheme'] == 'ssl';
 
-               // Determine if this request is to OUR install of WordPress
+               // Determine if this request is to OUR install of WordPress.
                $homeURL = parse_url( get_bloginfo( 'url' ) );
                $homeURL = parse_url( get_bloginfo( 'url' ) );
-               $r['local'] = $homeURL['host'] == $arrURL['host'] || 'localhost' == $arrURL['host'];
+               $r['local'] = 'localhost' == $arrURL['host'] || ( isset( $homeURL['host'] ) && $homeURL['host'] == $arrURL['host'] );
                unset( $homeURL );
 
                unset( $homeURL );
 
-               // If we are streaming to a file but no filename was given drop it in the WP temp dir
-               // and pick its name using the basename of the $url
+               /*
+                * If we are streaming to a file but no filename was given drop it in the WP temp dir
+                * and pick its name using the basename of the $url.
+                */
                if ( $r['stream']  && empty( $r['filename'] ) )
                        $r['filename'] = get_temp_dir() . basename( $url );
 
                if ( $r['stream']  && empty( $r['filename'] ) )
                        $r['filename'] = get_temp_dir() . basename( $url );
 
-               // Force some settings if we are streaming to a file and check for existence and perms of destination directory
+               /*
+                * Force some settings if we are streaming to a file and check for existence and perms
+                * of destination directory.
+                */
                if ( $r['stream'] ) {
                        $r['blocking'] = true;
                        if ( ! wp_is_writable( dirname( $r['filename'] ) ) )
                if ( $r['stream'] ) {
                        $r['blocking'] = true;
                        if ( ! wp_is_writable( dirname( $r['filename'] ) ) )
@@ -220,10 +243,10 @@ class WP_Http {
                        $r['headers']['connection'] = 'close';
                }
 
                        $r['headers']['connection'] = 'close';
                }
 
-               // Construct Cookie: header if any cookies are set
+               // Construct Cookie: header if any cookies are set.
                WP_Http::buildCookieHeader( $r );
 
                WP_Http::buildCookieHeader( $r );
 
-               // Avoid issues where mbstring.func_overload is enabled
+               // Avoid issues where mbstring.func_overload is enabled.
                mbstring_binary_safe_encoding();
 
                if ( ! isset( $r['headers']['Accept-Encoding'] ) ) {
                mbstring_binary_safe_encoding();
 
                if ( ! isset( $r['headers']['Accept-Encoding'] ) ) {
@@ -290,11 +313,11 @@ class WP_Http {
                 */
                $request_order = apply_filters( 'http_api_transports', array( 'curl', 'streams' ), $args, $url );
 
                 */
                $request_order = apply_filters( 'http_api_transports', array( 'curl', 'streams' ), $args, $url );
 
-               // Loop over each transport on each HTTP request looking for one which will serve this request's needs
+               // Loop over each transport on each HTTP request looking for one which will serve this request's needs.
                foreach ( $request_order as $transport ) {
                        $class = 'WP_HTTP_' . $transport;
 
                foreach ( $request_order as $transport ) {
                        $class = 'WP_HTTP_' . $transport;
 
-                       // Check to see if this transport is a possibility, calls the transport statically
+                       // Check to see if this transport is a possibility, calls the transport statically.
                        if ( !call_user_func( array( $class, 'test' ), $args, $url ) )
                                continue;
 
                        if ( !call_user_func( array( $class, 'test' ), $args, $url ) )
                                continue;
 
@@ -317,7 +340,7 @@ class WP_Http {
         *
         * @param string $url URL to Request
         * @param array $args Request arguments
         *
         * @param string $url URL to Request
         * @param array $args Request arguments
-        * @return array|object Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
+        * @return array|WP_Error Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
         */
        private function _dispatch_request( $url, $args ) {
                static $transports = array();
         */
        private function _dispatch_request( $url, $args ) {
                static $transports = array();
@@ -337,11 +360,11 @@ class WP_Http {
                 *
                 * @since 2.8.0
                 *
                 *
                 * @since 2.8.0
                 *
-                * @param mixed  $response HTTP Response or WP_Error object.
-                * @param string $context  Context under which the hook is fired.
-                * @param string $class    HTTP transport used.
-                * @param array  $args     HTTP request arguments.
-                * @param string $url      The request URL.
+                * @param array|WP_Error $response HTTP response or WP_Error object.
+                * @param string         $context  Context under which the hook is fired.
+                * @param string         $class    HTTP transport used.
+                * @param array          $args     HTTP request arguments.
+                * @param string         $url      The request URL.
                 */
                do_action( 'http_api_debug', $response, 'response', $class, $args, $url );
 
                 */
                do_action( 'http_api_debug', $response, 'response', $class, $args, $url );
 
@@ -353,9 +376,9 @@ class WP_Http {
                 *
                 * @since 2.9.0
                 *
                 *
                 * @since 2.9.0
                 *
-                * @param array|obj $response HTTP Response.
-                * @param array     $args     HTTP request arguments.
-                * @param string    $url      The request URL.
+                * @param array  $response HTTP response.
+                * @param array  $args     HTTP request arguments.
+                * @param string $url      The request URL.
                 */
                return apply_filters( 'http_response', $response, $args, $url );
        }
                 */
                return apply_filters( 'http_response', $response, $args, $url );
        }
@@ -368,11 +391,11 @@ class WP_Http {
         * @access public
         * @since 2.7.0
         *
         * @access public
         * @since 2.7.0
         *
-        * @param string       $url  URI resource.
+        * @param string       $url  The request URL.
         * @param string|array $args Optional. Override the defaults.
         * @param string|array $args Optional. Override the defaults.
-        * @return array|object Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
+        * @return array|WP_Error Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
         */
         */
-       function post($url, $args = array()) {
+       public function post($url, $args = array()) {
                $defaults = array('method' => 'POST');
                $r = wp_parse_args( $args, $defaults );
                return $this->request($url, $r);
                $defaults = array('method' => 'POST');
                $r = wp_parse_args( $args, $defaults );
                return $this->request($url, $r);
@@ -386,11 +409,11 @@ class WP_Http {
         * @access public
         * @since 2.7.0
         *
         * @access public
         * @since 2.7.0
         *
-        * @param string $url URI resource.
-        * @param str|array $args Optional. Override the defaults.
-        * @return array|object Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
+        * @param string $url The request URL.
+        * @param string|array $args Optional. Override the defaults.
+        * @return array|WP_Error Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
         */
         */
-       function get($url, $args = array()) {
+       public function get($url, $args = array()) {
                $defaults = array('method' => 'GET');
                $r = wp_parse_args( $args, $defaults );
                return $this->request($url, $r);
                $defaults = array('method' => 'GET');
                $r = wp_parse_args( $args, $defaults );
                return $this->request($url, $r);
@@ -404,11 +427,11 @@ class WP_Http {
         * @access public
         * @since 2.7.0
         *
         * @access public
         * @since 2.7.0
         *
-        * @param string $url URI resource.
-        * @param str|array $args Optional. Override the defaults.
-        * @return array|object Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
+        * @param string $url The request URL.
+        * @param string|array $args Optional. Override the defaults.
+        * @return array|WP_Error Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
         */
         */
-       function head($url, $args = array()) {
+       public function head($url, $args = array()) {
                $defaults = array('method' => 'HEAD');
                $r = wp_parse_args( $args, $defaults );
                return $this->request($url, $r);
                $defaults = array('method' => 'HEAD');
                $r = wp_parse_args( $args, $defaults );
                return $this->request($url, $r);
@@ -446,20 +469,25 @@ class WP_Http {
         *                                      Then a numbered array is returned as the value of that header-key.
         */
        public static function processHeaders( $headers, $url = '' ) {
         *                                      Then a numbered array is returned as the value of that header-key.
         */
        public static function processHeaders( $headers, $url = '' ) {
-               // split headers, one per array element
+               // Split headers, one per array element.
                if ( is_string($headers) ) {
                if ( is_string($headers) ) {
-                       // tolerate line terminator: CRLF = LF (RFC 2616 19.3)
+                       // Tolerate line terminator: CRLF = LF (RFC 2616 19.3).
                        $headers = str_replace("\r\n", "\n", $headers);
                        $headers = str_replace("\r\n", "\n", $headers);
-                       // unfold folded header fields. LWS = [CRLF] 1*( SP | HT ) <US-ASCII SP, space (32)>, <US-ASCII HT, horizontal-tab (9)> (RFC 2616 2.2)
+                       /*
+                        * Unfold folded header fields. LWS = [CRLF] 1*( SP | HT ) <US-ASCII SP, space (32)>,
+                        * <US-ASCII HT, horizontal-tab (9)> (RFC 2616 2.2).
+                        */
                        $headers = preg_replace('/\n[ \t]/', ' ', $headers);
                        $headers = preg_replace('/\n[ \t]/', ' ', $headers);
-                       // create the headers array
+                       // Create the headers array.
                        $headers = explode("\n", $headers);
                }
 
                $response = array('code' => 0, 'message' => '');
 
                        $headers = explode("\n", $headers);
                }
 
                $response = array('code' => 0, 'message' => '');
 
-               // If a redirection has taken place, The headers for each page request may have been passed.
-               // In this case, determine the final HTTP header and parse from there.
+               /*
+                * If a redirection has taken place, The headers for each page request may have been passed.
+                * In this case, determine the final HTTP header and parse from there.
+                */
                for ( $i = count($headers)-1; $i >= 0; $i-- ) {
                        if ( !empty($headers[$i]) && false === strpos($headers[$i], ':') ) {
                                $headers = array_splice($headers, $i);
                for ( $i = count($headers)-1; $i >= 0; $i-- ) {
                        if ( !empty($headers[$i]) && false === strpos($headers[$i], ':') ) {
                                $headers = array_splice($headers, $i);
@@ -514,7 +542,7 @@ class WP_Http {
         */
        public static function buildCookieHeader( &$r ) {
                if ( ! empty($r['cookies']) ) {
         */
        public static function buildCookieHeader( &$r ) {
                if ( ! empty($r['cookies']) ) {
-                       // Upgrade any name => value cookie pairs to WP_HTTP_Cookie instances
+                       // Upgrade any name => value cookie pairs to WP_HTTP_Cookie instances.
                        foreach ( $r['cookies'] as $name => $value ) {
                                if ( ! is_object( $value ) )
                                        $r['cookies'][ $name ] = new WP_HTTP_Cookie( array( 'name' => $name, 'value' => $value ) );
                        foreach ( $r['cookies'] as $name => $value ) {
                                if ( ! is_object( $value ) )
                                        $r['cookies'][ $name ] = new WP_HTTP_Cookie( array( 'name' => $name, 'value' => $value ) );
@@ -550,7 +578,9 @@ class WP_Http {
                        return $body;
 
                $parsed_body = '';
                        return $body;
 
                $parsed_body = '';
-               $body_original = $body; // We'll be altering $body, so need a backup in case of error
+
+               // We'll be altering $body, so need a backup in case of error.
+               $body_original = $body;
 
                while ( true ) {
                        $has_chunk = (bool) preg_match( '/^([0-9a-f]+)[^\r\n]*\r\n/i', $body, $match );
 
                while ( true ) {
                        $has_chunk = (bool) preg_match( '/^([0-9a-f]+)[^\r\n]*\r\n/i', $body, $match );
@@ -560,13 +590,13 @@ class WP_Http {
                        $length = hexdec( $match[1] );
                        $chunk_length = strlen( $match[0] );
 
                        $length = hexdec( $match[1] );
                        $chunk_length = strlen( $match[0] );
 
-                       // Parse out the chunk of data
+                       // Parse out the chunk of data.
                        $parsed_body .= substr( $body, $chunk_length, $length );
 
                        $parsed_body .= substr( $body, $chunk_length, $length );
 
-                       // Remove the chunk from the raw data
+                       // Remove the chunk from the raw data.
                        $body = substr( $body, $length + $chunk_length );
 
                        $body = substr( $body, $length + $chunk_length );
 
-                       // End of document
+                       // End of the document.
                        if ( '0' === trim( $body ) )
                                return $parsed_body;
                }
                        if ( '0' === trim( $body ) )
                                return $parsed_body;
                }
@@ -591,7 +621,7 @@ class WP_Http {
         * @param string $uri URI of url.
         * @return bool True to block, false to allow.
         */
         * @param string $uri URI of url.
         * @return bool True to block, false to allow.
         */
-       function block_request($uri) {
+       public function block_request($uri) {
                // We don't need to block requests, because nothing is blocked.
                if ( ! defined( 'WP_HTTP_BLOCK_EXTERNAL' ) || ! WP_HTTP_BLOCK_EXTERNAL )
                        return false;
                // We don't need to block requests, because nothing is blocked.
                if ( ! defined( 'WP_HTTP_BLOCK_EXTERNAL' ) || ! WP_HTTP_BLOCK_EXTERNAL )
                        return false;
@@ -602,8 +632,8 @@ class WP_Http {
 
                $home = parse_url( get_option('siteurl') );
 
 
                $home = parse_url( get_option('siteurl') );
 
-               // Don't block requests back to ourselves by default
-               if ( $check['host'] == 'localhost' || $check['host'] == $home['host'] ) {
+               // Don't block requests back to ourselves by default.
+               if ( 'localhost' == $check['host'] || ( isset( $home['host'] ) && $home['host'] == $check['host'] ) ) {
                        /**
                         * Filter whether to block local requests through the proxy.
                         *
                        /**
                         * Filter whether to block local requests through the proxy.
                         *
@@ -638,11 +668,11 @@ class WP_Http {
 
        }
 
 
        }
 
-       static function make_absolute_url( $maybe_relative_path, $url ) {
+       public static function make_absolute_url( $maybe_relative_path, $url ) {
                if ( empty( $url ) )
                        return $maybe_relative_path;
 
                if ( empty( $url ) )
                        return $maybe_relative_path;
 
-               // Check for a scheme
+               // Check for a scheme.
                if ( false !== strpos( $maybe_relative_path, '://' ) )
                        return $maybe_relative_path;
 
                if ( false !== strpos( $maybe_relative_path, '://' ) )
                        return $maybe_relative_path;
 
@@ -656,31 +686,31 @@ class WP_Http {
                if ( isset( $url_parts['port'] ) )
                        $absolute_path .= ':' . $url_parts['port'];
 
                if ( isset( $url_parts['port'] ) )
                        $absolute_path .= ':' . $url_parts['port'];
 
-               // Start off with the Absolute URL path
+               // Start off with the Absolute URL path.
                $path = ! empty( $url_parts['path'] ) ? $url_parts['path'] : '/';
 
                $path = ! empty( $url_parts['path'] ) ? $url_parts['path'] : '/';
 
-               // If it's a root-relative path, then great
+               // If it's a root-relative path, then great.
                if ( ! empty( $relative_url_parts['path'] ) && '/' == $relative_url_parts['path'][0] ) {
                        $path = $relative_url_parts['path'];
 
                if ( ! empty( $relative_url_parts['path'] ) && '/' == $relative_url_parts['path'][0] ) {
                        $path = $relative_url_parts['path'];
 
-               // Else it's a relative path
+               // Else it's a relative path.
                } elseif ( ! empty( $relative_url_parts['path'] ) ) {
                } elseif ( ! empty( $relative_url_parts['path'] ) ) {
-                       // Strip off any file components from the absolute path
+                       // Strip off any file components from the absolute path.
                        $path = substr( $path, 0, strrpos( $path, '/' ) + 1 );
 
                        $path = substr( $path, 0, strrpos( $path, '/' ) + 1 );
 
-                       // Build the new path
+                       // Build the new path.
                        $path .= $relative_url_parts['path'];
 
                        $path .= $relative_url_parts['path'];
 
-                       // Strip all /path/../ out of the path
+                       // Strip all /path/../ out of the path.
                        while ( strpos( $path, '../' ) > 1 ) {
                                $path = preg_replace( '![^/]+/\.\./!', '', $path );
                        }
 
                        while ( strpos( $path, '../' ) > 1 ) {
                                $path = preg_replace( '![^/]+/\.\./!', '', $path );
                        }
 
-                       // Strip any final leading ../ from the path
+                       // Strip any final leading ../ from the path.
                        $path = preg_replace( '!^/(\.\./)+!', '', $path );
                }
 
                        $path = preg_replace( '!^/(\.\./)+!', '', $path );
                }
 
-               // Add the Query string
+               // Add the Query string.
                if ( ! empty( $relative_url_parts['query'] ) )
                        $path .= '?' . $relative_url_parts['query'];
 
                if ( ! empty( $relative_url_parts['query'] ) )
                        $path .= '?' . $relative_url_parts['query'];
 
@@ -693,38 +723,38 @@ class WP_Http {
         * @since 3.7.0
         *
         * @param string $url The URL which was requested.
         * @since 3.7.0
         *
         * @param string $url The URL which was requested.
-        * @param array $args The Arguements which were used to make the request.
+        * @param array $args The Arguments which were used to make the request.
         * @param array $response The Response of the HTTP request.
         * @return false|object False if no redirect is present, a WP_HTTP or WP_Error result otherwise.
         */
         * @param array $response The Response of the HTTP request.
         * @return false|object False if no redirect is present, a WP_HTTP or WP_Error result otherwise.
         */
-       static function handle_redirects( $url, $args, $response ) {
+       public static function handle_redirects( $url, $args, $response ) {
                // If no redirects are present, or, redirects were not requested, perform no action.
                if ( ! isset( $response['headers']['location'] ) || 0 === $args['_redirection'] )
                        return false;
 
                // If no redirects are present, or, redirects were not requested, perform no action.
                if ( ! isset( $response['headers']['location'] ) || 0 === $args['_redirection'] )
                        return false;
 
-               // Only perform redirections on redirection http codes
+               // Only perform redirections on redirection http codes.
                if ( $response['response']['code'] > 399 || $response['response']['code'] < 300 )
                        return false;
 
                if ( $response['response']['code'] > 399 || $response['response']['code'] < 300 )
                        return false;
 
-               // Don't redirect if we've run out of redirects
+               // Don't redirect if we've run out of redirects.
                if ( $args['redirection']-- <= 0 )
                        return new WP_Error( 'http_request_failed', __('Too many redirects.') );
 
                $redirect_location = $response['headers']['location'];
 
                if ( $args['redirection']-- <= 0 )
                        return new WP_Error( 'http_request_failed', __('Too many redirects.') );
 
                $redirect_location = $response['headers']['location'];
 
-               // If there were multiple Location headers, use the last header specified
+               // If there were multiple Location headers, use the last header specified.
                if ( is_array( $redirect_location ) )
                        $redirect_location = array_pop( $redirect_location );
 
                $redirect_location = WP_HTTP::make_absolute_url( $redirect_location, $url );
 
                if ( is_array( $redirect_location ) )
                        $redirect_location = array_pop( $redirect_location );
 
                $redirect_location = WP_HTTP::make_absolute_url( $redirect_location, $url );
 
-               // POST requests should not POST to a redirected location
+               // POST requests should not POST to a redirected location.
                if ( 'POST' == $args['method'] ) {
                        if ( in_array( $response['response']['code'], array( 302, 303 ) ) )
                                $args['method'] = 'GET';
                }
 
                if ( 'POST' == $args['method'] ) {
                        if ( in_array( $response['response']['code'], array( 302, 303 ) ) )
                                $args['method'] = 'GET';
                }
 
-               // Include valid cookies in the redirect process
+               // Include valid cookies in the redirect process.
                if ( ! empty( $response['cookies'] ) ) {
                        foreach ( $response['cookies'] as $cookie ) {
                                if ( $cookie->test( $redirect_location ) )
                if ( ! empty( $response['cookies'] ) ) {
                        foreach ( $response['cookies'] as $cookie ) {
                                if ( $cookie->test( $redirect_location ) )
@@ -751,7 +781,7 @@ class WP_Http {
         * @param string $maybe_ip A suspected IP address
         * @return integer|bool Upon success, '4' or '6' to represent a IPv4 or IPv6 address, false upon failure
         */
         * @param string $maybe_ip A suspected IP address
         * @return integer|bool Upon success, '4' or '6' to represent a IPv4 or IPv6 address, false upon failure
         */
-       static function is_ip_address( $maybe_ip ) {
+       public static function is_ip_address( $maybe_ip ) {
                if ( preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $maybe_ip ) )
                        return 4;
 
                if ( preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $maybe_ip ) )
                        return 4;
 
@@ -779,11 +809,11 @@ class WP_Http_Streams {
         * @since 3.7.0 Combined with the fsockopen transport and switched to stream_socket_client().
         *
         * @access public
         * @since 3.7.0 Combined with the fsockopen transport and switched to stream_socket_client().
         *
         * @access public
-        * @param string $url URI resource.
+        * @param string $url The request URL.
         * @param string|array $args Optional. Override the defaults.
         * @param string|array $args Optional. Override the defaults.
-        * @return array 'headers', 'body', 'response', 'cookies' and 'filename' keys.
+        * @return array|WP_Error Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
         */
         */
-       function request($url, $args = array()) {
+       public function request($url, $args = array()) {
                $defaults = array(
                        'method' => 'GET', 'timeout' => 5,
                        'redirection' => 5, 'httpversion' => '1.0',
                $defaults = array(
                        'method' => 'GET', 'timeout' => 5,
                        'redirection' => 5, 'httpversion' => '1.0',
@@ -801,7 +831,7 @@ class WP_Http_Streams {
                        unset($r['headers']['user-agent']);
                }
 
                        unset($r['headers']['user-agent']);
                }
 
-               // Construct Cookie: header if any cookies are set
+               // Construct Cookie: header if any cookies are set.
                WP_Http::buildCookieHeader( $r );
 
                $arrURL = parse_url($url);
                WP_Http::buildCookieHeader( $r );
 
                $arrURL = parse_url($url);
@@ -826,8 +856,11 @@ class WP_Http_Streams {
                        unset( $r['headers']['Host'], $r['headers']['host'] );
                }
 
                        unset( $r['headers']['Host'], $r['headers']['host'] );
                }
 
-               // Certain versions of PHP have issues with 'localhost' and IPv6, It attempts to connect to ::1,
-               // which fails when the server is not set up for it. For compatibility, always connect to the IPv4 address.
+               /*
+                * Certain versions of PHP have issues with 'localhost' and IPv6, It attempts to connect
+                * to ::1, which fails when the server is not set up for it. For compatibility, always
+                * connect to the IPv4 address.
+                */
                if ( 'localhost' == strtolower( $connect_host ) )
                        $connect_host = '127.0.0.1';
 
                if ( 'localhost' == strtolower( $connect_host ) )
                        $connect_host = '127.0.0.1';
 
@@ -872,11 +905,14 @@ class WP_Http_Streams {
                $utimeout = $timeout == $r['timeout'] ? 0 : 1000000 * $r['timeout'] % 1000000;
                $connect_timeout = max( $timeout, 1 );
 
                $utimeout = $timeout == $r['timeout'] ? 0 : 1000000 * $r['timeout'] % 1000000;
                $connect_timeout = max( $timeout, 1 );
 
-               $connection_error = null; // Store error number
-               $connection_error_str = null; // Store error string
+               // Store error number.
+               $connection_error = null;
+
+               // Store error string.
+               $connection_error_str = null;
 
                if ( !WP_DEBUG ) {
 
                if ( !WP_DEBUG ) {
-                       // In the event that the SSL connection fails, silence the many PHP Warnings
+                       // In the event that the SSL connection fails, silence the many PHP Warnings.
                        if ( $secure_transport )
                                $error_reporting = error_reporting(0);
 
                        if ( $secure_transport )
                                $error_reporting = error_reporting(0);
 
@@ -896,14 +932,14 @@ class WP_Http_Streams {
                }
 
                if ( false === $handle ) {
                }
 
                if ( false === $handle ) {
-                       // SSL connection failed due to expired/invalid cert, or, OpenSSL configuration is broken
+                       // SSL connection failed due to expired/invalid cert, or, OpenSSL configuration is broken.
                        if ( $secure_transport && 0 === $connection_error && '' === $connection_error_str )
                                return new WP_Error( 'http_request_failed', __( 'The SSL certificate for the host could not be verified.' ) );
 
                        return new WP_Error('http_request_failed', $connection_error . ': ' . $connection_error_str );
                }
 
                        if ( $secure_transport && 0 === $connection_error && '' === $connection_error_str )
                                return new WP_Error( 'http_request_failed', __( 'The SSL certificate for the host could not be verified.' ) );
 
                        return new WP_Error('http_request_failed', $connection_error . ': ' . $connection_error_str );
                }
 
-               // Verify that the SSL certificate is valid for this request
+               // Verify that the SSL certificate is valid for this request.
                if ( $secure_transport && $ssl_verify && ! $proxy->is_enabled() ) {
                        if ( ! self::verify_ssl_certificate( $handle, $arrURL['host'] ) )
                                return new WP_Error( 'http_request_failed', __( 'The SSL certificate for the host could not be verified.' ) );
                if ( $secure_transport && $ssl_verify && ! $proxy->is_enabled() ) {
                        if ( ! self::verify_ssl_certificate( $handle, $arrURL['host'] ) )
                                return new WP_Error( 'http_request_failed', __( 'The SSL certificate for the host could not be verified.' ) );
@@ -959,7 +995,7 @@ class WP_Http_Streams {
                if ( isset( $r['limit_response_size'] ) )
                        $block_size = min( $block_size, $r['limit_response_size'] );
 
                if ( isset( $r['limit_response_size'] ) )
                        $block_size = min( $block_size, $r['limit_response_size'] );
 
-               // If streaming to a file setup the file handle
+               // If streaming to a file setup the file handle.
                if ( $r['stream'] ) {
                        if ( ! WP_DEBUG )
                                $stream_handle = @fopen( $r['filename'], 'w+' );
                if ( $r['stream'] ) {
                        if ( ! WP_DEBUG )
                                $stream_handle = @fopen( $r['filename'], 'w+' );
@@ -1025,13 +1061,14 @@ class WP_Http_Streams {
 
                $response = array(
                        'headers' => $arrHeaders['headers'],
 
                $response = array(
                        'headers' => $arrHeaders['headers'],
-                       'body' => null, // Not yet processed
+                       // Not yet processed.
+                       'body' => null,
                        'response' => $arrHeaders['response'],
                        'cookies' => $arrHeaders['cookies'],
                        'filename' => $r['filename']
                );
 
                        'response' => $arrHeaders['response'],
                        'cookies' => $arrHeaders['cookies'],
                        'filename' => $r['filename']
                );
 
-               // Handle redirects
+               // Handle redirects.
                if ( false !== ( $redirect_response = WP_HTTP::handle_redirects( $url, $r, $response ) ) )
                        return $redirect_response;
 
                if ( false !== ( $redirect_response = WP_HTTP::handle_redirects( $url, $r, $response ) ) )
                        return $redirect_response;
 
@@ -1067,7 +1104,7 @@ class WP_Http_Streams {
         * @param string $host The hostname being requested
         * @return bool If the cerficiate presented in $stream is valid for $host
         */
         * @param string $host The hostname being requested
         * @return bool If the cerficiate presented in $stream is valid for $host
         */
-       static function verify_ssl_certificate( $stream, $host ) {
+       public static function verify_ssl_certificate( $stream, $host ) {
                $context_options = stream_context_get_options( $stream );
 
                if ( empty( $context_options['ssl']['peer_certificate'] ) )
                $context_options = stream_context_get_options( $stream );
 
                if ( empty( $context_options['ssl']['peer_certificate'] ) )
@@ -1077,7 +1114,10 @@ class WP_Http_Streams {
                if ( ! $cert )
                        return false;
 
                if ( ! $cert )
                        return false;
 
-               // If the request is being made to an IP address, we'll validate against IP fields in the cert (if they exist)
+               /*
+                * If the request is being made to an IP address, we'll validate against IP fields
+                * in the cert (if they exist)
+                */
                $host_type = ( WP_HTTP::is_ip_address( $host ) ? 'ip' : 'dns' );
 
                $certificate_hostnames = array();
                $host_type = ( WP_HTTP::is_ip_address( $host ) ? 'ip' : 'dns' );
 
                $certificate_hostnames = array();
@@ -1089,23 +1129,23 @@ class WP_Http_Streams {
                                        $certificate_hostnames[] = strtolower( trim( $match_host ) );
                        }
                } elseif ( !empty( $cert['subject']['CN'] ) ) {
                                        $certificate_hostnames[] = strtolower( trim( $match_host ) );
                        }
                } elseif ( !empty( $cert['subject']['CN'] ) ) {
-                       // Only use the CN when the certificate includes no subjectAltName extension
+                       // Only use the CN when the certificate includes no subjectAltName extension.
                        $certificate_hostnames[] = strtolower( $cert['subject']['CN'] );
                }
 
                        $certificate_hostnames[] = strtolower( $cert['subject']['CN'] );
                }
 
-               // Exact hostname/IP matches
+               // Exact hostname/IP matches.
                if ( in_array( strtolower( $host ), $certificate_hostnames ) )
                        return true;
 
                if ( in_array( strtolower( $host ), $certificate_hostnames ) )
                        return true;
 
-               // IP's can't be wildcards, Stop processing
+               // IP's can't be wildcards, Stop processing.
                if ( 'ip' == $host_type )
                        return false;
 
                if ( 'ip' == $host_type )
                        return false;
 
-               // Test to see if the domain is at least 2 deep for wildcard support
+               // Test to see if the domain is at least 2 deep for wildcard support.
                if ( substr_count( $host, '.' ) < 2 )
                        return false;
 
                if ( substr_count( $host, '.' ) < 2 )
                        return false;
 
-               // Wildcard subdomains certs (*.example.com) are valid for a.example.com but not a.b.example.com
+               // Wildcard subdomains certs (*.example.com) are valid for a.example.com but not a.b.example.com.
                $wildcard_host = preg_replace( '/^[^.]+\./', '*.', $host );
 
                return in_array( strtolower( $wildcard_host ), $certificate_hostnames );
                $wildcard_host = preg_replace( '/^[^.]+\./', '*.', $host );
 
                return in_array( strtolower( $wildcard_host ), $certificate_hostnames );
@@ -1158,7 +1198,7 @@ class WP_Http_Streams {
  * @deprecated 3.7.0 Please use WP_HTTP::request() directly
  */
 class WP_HTTP_Fsockopen extends WP_HTTP_Streams {
  * @deprecated 3.7.0 Please use WP_HTTP::request() directly
  */
 class WP_HTTP_Fsockopen extends WP_HTTP_Streams {
-       // For backwards compatibility for users who are using the class directly
+       // For backwards compatibility for users who are using the class directly.
 }
 
 /**
 }
 
 /**
@@ -1214,11 +1254,11 @@ class WP_Http_Curl {
         * @access public
         * @since 2.7.0
         *
         * @access public
         * @since 2.7.0
         *
-        * @param string $url
-        * @param str|array $args Optional. Override the defaults.
-        * @return array 'headers', 'body', 'response', 'cookies' and 'filename' keys.
+        * @param string $url The request URL.
+        * @param string|array $args Optional. Override the defaults.
+        * @return array|WP_Error Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
         */
         */
-       function request($url, $args = array()) {
+       public function request($url, $args = array()) {
                $defaults = array(
                        'method' => 'GET', 'timeout' => 5,
                        'redirection' => 5, 'httpversion' => '1.0',
                $defaults = array(
                        'method' => 'GET', 'timeout' => 5,
                        'redirection' => 5, 'httpversion' => '1.0',
@@ -1266,8 +1306,10 @@ class WP_Http_Curl {
                        $ssl_verify = apply_filters( 'https_ssl_verify', $ssl_verify );
                }
 
                        $ssl_verify = apply_filters( 'https_ssl_verify', $ssl_verify );
                }
 
-               // CURLOPT_TIMEOUT and CURLOPT_CONNECTTIMEOUT expect integers. Have to use ceil since
-               // a value of 0 will allow an unlimited timeout.
+               /*
+                * CURLOPT_TIMEOUT and CURLOPT_CONNECTTIMEOUT expect integers. Have to use ceil since.
+                * a value of 0 will allow an unlimited timeout.
+                */
                $timeout = (int) ceil( $r['timeout'] );
                curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, $timeout );
                curl_setopt( $handle, CURLOPT_TIMEOUT, $timeout );
                $timeout = (int) ceil( $r['timeout'] );
                curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, $timeout );
                curl_setopt( $handle, CURLOPT_TIMEOUT, $timeout );
@@ -1278,8 +1320,11 @@ class WP_Http_Curl {
                curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, $ssl_verify );
                curl_setopt( $handle, CURLOPT_CAINFO, $r['sslcertificates'] );
                curl_setopt( $handle, CURLOPT_USERAGENT, $r['user-agent'] );
                curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, $ssl_verify );
                curl_setopt( $handle, CURLOPT_CAINFO, $r['sslcertificates'] );
                curl_setopt( $handle, CURLOPT_USERAGENT, $r['user-agent'] );
-               // The option doesn't work with safe mode or when open_basedir is set, and there's a
-               // bug #17490 with redirected POST requests, so handle redirections outside Curl.
+
+               /*
+                * The option doesn't work with safe mode or when open_basedir is set, and there's
+                * a bug #17490 with redirected POST requests, so handle redirections outside Curl.
+                */
                curl_setopt( $handle, CURLOPT_FOLLOWLOCATION, false );
                if ( defined( 'CURLOPT_PROTOCOLS' ) ) // PHP 5.2.10 / cURL 7.19.4
                        curl_setopt( $handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS );
                curl_setopt( $handle, CURLOPT_FOLLOWLOCATION, false );
                if ( defined( 'CURLOPT_PROTOCOLS' ) ) // PHP 5.2.10 / cURL 7.19.4
                        curl_setopt( $handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS );
@@ -1315,7 +1360,7 @@ class WP_Http_Curl {
                else
                        $this->max_body_length = false;
 
                else
                        $this->max_body_length = false;
 
-               // If streaming to a file open a file handle, and setup our curl streaming handler
+               // If streaming to a file open a file handle, and setup our curl streaming handler.
                if ( $r['stream'] ) {
                        if ( ! WP_DEBUG )
                                $this->stream_handle = @fopen( $r['filename'], 'w+' );
                if ( $r['stream'] ) {
                        if ( ! WP_DEBUG )
                                $this->stream_handle = @fopen( $r['filename'], 'w+' );
@@ -1328,7 +1373,7 @@ class WP_Http_Curl {
                }
 
                if ( !empty( $r['headers'] ) ) {
                }
 
                if ( !empty( $r['headers'] ) ) {
-                       // cURL expects full header strings in each element
+                       // cURL expects full header strings in each element.
                        $headers = array();
                        foreach ( $r['headers'] as $name => $value ) {
                                $headers[] = "{$name}: $value";
                        $headers = array();
                        foreach ( $r['headers'] as $name => $value ) {
                                $headers[] = "{$name}: $value";
@@ -1351,7 +1396,7 @@ class WP_Http_Curl {
                 *
                 * @param resource &$handle The cURL handle returned by curl_init().
                 * @param array    $r       The HTTP request arguments.
                 *
                 * @param resource &$handle The cURL handle returned by curl_init().
                 * @param array    $r       The HTTP request arguments.
-                * @param string   $url     The destination URL.
+                * @param string   $url     The request URL.
                 */
                do_action_ref_array( 'http_api_curl', array( &$handle, $r, $url ) );
 
                 */
                do_action_ref_array( 'http_api_curl', array( &$handle, $r, $url ) );
 
@@ -1372,7 +1417,7 @@ class WP_Http_Curl {
                        return array( 'headers' => array(), 'body' => '', 'response' => array('code' => false, 'message' => false), 'cookies' => array() );
                }
 
                        return array( 'headers' => array(), 'body' => '', 'response' => array('code' => false, 'message' => false), 'cookies' => array() );
                }
 
-               $theResponse = curl_exec( $handle );
+               curl_exec( $handle );
                $theHeaders = WP_Http::processHeaders( $this->headers, $url );
                $theBody = $this->body;
 
                $theHeaders = WP_Http::processHeaders( $this->headers, $url );
                $theBody = $this->body;
 
@@ -1381,7 +1426,7 @@ class WP_Http_Curl {
 
                $curl_error = curl_errno( $handle );
 
 
                $curl_error = curl_errno( $handle );
 
-               // If an error occured, or, no response
+               // If an error occurred, or, no response.
                if ( $curl_error || ( 0 == strlen( $theBody ) && empty( $theHeaders['headers'] ) ) ) {
                        if ( CURLE_WRITE_ERROR /* 23 */ == $curl_error &&  $r['stream'] ) {
                                fclose( $this->stream_handle );
                if ( $curl_error || ( 0 == strlen( $theBody ) && empty( $theHeaders['headers'] ) ) ) {
                        if ( CURLE_WRITE_ERROR /* 23 */ == $curl_error &&  $r['stream'] ) {
                                fclose( $this->stream_handle );
@@ -1414,7 +1459,7 @@ class WP_Http_Curl {
                        'filename' => $r['filename']
                );
 
                        'filename' => $r['filename']
                );
 
-               // Handle redirects
+               // Handle redirects.
                if ( false !== ( $redirect_response = WP_HTTP::handle_redirects( $url, $r, $response ) ) )
                        return $redirect_response;
 
                if ( false !== ( $redirect_response = WP_HTTP::handle_redirects( $url, $r, $response ) ) )
                        return $redirect_response;
 
@@ -1463,7 +1508,7 @@ class WP_Http_Curl {
                        $bytes_written = $data_length;
                }
 
                        $bytes_written = $data_length;
                }
 
-               // Upon event of this function returning less than strlen( $data ) curl will error with CURLE_WRITE_ERROR
+               // Upon event of this function returning less than strlen( $data ) curl will error with CURLE_WRITE_ERROR.
                return $bytes_written;
        }
 
                return $bytes_written;
        }
 
@@ -1483,7 +1528,8 @@ class WP_Http_Curl {
 
                if ( $is_ssl ) {
                        $curl_version = curl_version();
 
                if ( $is_ssl ) {
                        $curl_version = curl_version();
-                       if ( ! (CURL_VERSION_SSL & $curl_version['features']) ) // Does this cURL version support SSL requests?
+                       // Check whether this cURL version support SSL requests.
+                       if ( ! (CURL_VERSION_SSL & $curl_version['features']) )
                                return false;
                }
 
                                return false;
                }
 
@@ -1543,7 +1589,7 @@ class WP_HTTP_Proxy {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_enabled() {
+       public function is_enabled() {
                return defined('WP_PROXY_HOST') && defined('WP_PROXY_PORT');
        }
 
                return defined('WP_PROXY_HOST') && defined('WP_PROXY_PORT');
        }
 
@@ -1557,7 +1603,7 @@ class WP_HTTP_Proxy {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function use_authentication() {
+       public function use_authentication() {
                return defined('WP_PROXY_USERNAME') && defined('WP_PROXY_PASSWORD');
        }
 
                return defined('WP_PROXY_USERNAME') && defined('WP_PROXY_PASSWORD');
        }
 
@@ -1568,7 +1614,7 @@ class WP_HTTP_Proxy {
         *
         * @return string
         */
         *
         * @return string
         */
-       function host() {
+       public function host() {
                if ( defined('WP_PROXY_HOST') )
                        return WP_PROXY_HOST;
 
                if ( defined('WP_PROXY_HOST') )
                        return WP_PROXY_HOST;
 
@@ -1582,7 +1628,7 @@ class WP_HTTP_Proxy {
         *
         * @return string
         */
         *
         * @return string
         */
-       function port() {
+       public function port() {
                if ( defined('WP_PROXY_PORT') )
                        return WP_PROXY_PORT;
 
                if ( defined('WP_PROXY_PORT') )
                        return WP_PROXY_PORT;
 
@@ -1596,7 +1642,7 @@ class WP_HTTP_Proxy {
         *
         * @return string
         */
         *
         * @return string
         */
-       function username() {
+       public function username() {
                if ( defined('WP_PROXY_USERNAME') )
                        return WP_PROXY_USERNAME;
 
                if ( defined('WP_PROXY_USERNAME') )
                        return WP_PROXY_USERNAME;
 
@@ -1610,7 +1656,7 @@ class WP_HTTP_Proxy {
         *
         * @return string
         */
         *
         * @return string
         */
-       function password() {
+       public function password() {
                if ( defined('WP_PROXY_PASSWORD') )
                        return WP_PROXY_PASSWORD;
 
                if ( defined('WP_PROXY_PASSWORD') )
                        return WP_PROXY_PASSWORD;
 
@@ -1624,7 +1670,7 @@ class WP_HTTP_Proxy {
         *
         * @return string
         */
         *
         * @return string
         */
-       function authentication() {
+       public function authentication() {
                return $this->username() . ':' . $this->password();
        }
 
                return $this->username() . ':' . $this->password();
        }
 
@@ -1635,7 +1681,7 @@ class WP_HTTP_Proxy {
         *
         * @return string
         */
         *
         * @return string
         */
-       function authentication_header() {
+       public function authentication_header() {
                return 'Proxy-Authorization: Basic ' . base64_encode( $this->authentication() );
        }
 
                return 'Proxy-Authorization: Basic ' . base64_encode( $this->authentication() );
        }
 
@@ -1652,9 +1698,11 @@ class WP_HTTP_Proxy {
         * @param string $uri URI to check.
         * @return bool True, to send through the proxy and false if, the proxy should not be used.
         */
         * @param string $uri URI to check.
         * @return bool True, to send through the proxy and false if, the proxy should not be used.
         */
-       function send_through_proxy( $uri ) {
-               // parse_url() only handles http, https type URLs, and will emit E_WARNING on failure.
-               // This will be displayed on blogs, which is not reasonable.
+       public function send_through_proxy( $uri ) {
+               /*
+                * parse_url() only handles http, https type URLs, and will emit E_WARNING on failure.
+                * This will be displayed on blogs, which is not reasonable.
+                */
                $check = @parse_url($uri);
 
                // Malformed URL, can not process, but this could mean ssl, so let through anyway.
                $check = @parse_url($uri);
 
                // Malformed URL, can not process, but this could mean ssl, so let through anyway.
@@ -1680,7 +1728,7 @@ class WP_HTTP_Proxy {
                if ( ! is_null( $result ) )
                        return $result;
 
                if ( ! is_null( $result ) )
                        return $result;
 
-               if ( $check['host'] == 'localhost' || $check['host'] == $home['host'] )
+               if ( 'localhost' == $check['host'] || ( isset( $home['host'] ) && $home['host'] == $check['host'] ) )
                        return false;
 
                if ( !defined('WP_PROXY_BYPASS_HOSTS') )
                        return false;
 
                if ( !defined('WP_PROXY_BYPASS_HOSTS') )
@@ -1726,7 +1774,7 @@ class WP_Http_Cookie {
         * @since 2.8.0
         * @var string
         */
         * @since 2.8.0
         * @var string
         */
-       var $name;
+       public $name;
 
        /**
         * Cookie value.
 
        /**
         * Cookie value.
@@ -1734,7 +1782,7 @@ class WP_Http_Cookie {
         * @since 2.8.0
         * @var string
         */
         * @since 2.8.0
         * @var string
         */
-       var $value;
+       public $value;
 
        /**
         * When the cookie expires.
 
        /**
         * When the cookie expires.
@@ -1742,7 +1790,7 @@ class WP_Http_Cookie {
         * @since 2.8.0
         * @var string
         */
         * @since 2.8.0
         * @var string
         */
-       var $expires;
+       public $expires;
 
        /**
         * Cookie URL path.
 
        /**
         * Cookie URL path.
@@ -1750,7 +1798,7 @@ class WP_Http_Cookie {
         * @since 2.8.0
         * @var string
         */
         * @since 2.8.0
         * @var string
         */
-       var $path;
+       public $path;
 
        /**
         * Cookie Domain.
 
        /**
         * Cookie Domain.
@@ -1758,7 +1806,7 @@ class WP_Http_Cookie {
         * @since 2.8.0
         * @var string
         */
         * @since 2.8.0
         * @var string
         */
-       var $domain;
+       public $domain;
 
        /**
         * Sets up this cookie object.
 
        /**
         * Sets up this cookie object.
@@ -1766,23 +1814,23 @@ class WP_Http_Cookie {
         * The parameter $data should be either an associative array containing the indices names below
         * or a header string detailing it.
         *
         * The parameter $data should be either an associative array containing the indices names below
         * or a header string detailing it.
         *
-        * If it's an array, it should include the following elements:
-        * <ol>
-        * <li>Name</li>
-        * <li>Value - should NOT be urlencoded already.</li>
-        * <li>Expires - (optional) String or int (UNIX timestamp).</li>
-        * <li>Path (optional)</li>
-        * <li>Domain (optional)</li>
-        * <li>Port (optional)</li>
-        * </ol>
-        *
-        * @access public
         * @since 2.8.0
         * @since 2.8.0
+        * @access public
         *
         *
-        * @param string|array $data Raw cookie data.
-        * @param string $requested_url The URL which the cookie was set on, used for default 'domain' and 'port' values
+        * @param string|array $data {
+        *     Raw cookie data as header string or data array.
+        *
+        *     @type string     $name    Cookie name.
+        *     @type mixed      $value   Value. Should NOT already be urlencoded.
+        *     @type string|int $expires Optional. Unix timestamp or formatted date. Default null.
+        *     @type string     $path    Optional. Path. Default '/'.
+        *     @type string     $domain  Optional. Domain. Default host of parsed $requested_url.
+        *     @type int        $port    Optional. Port. Default null.
+        * }
+        * @param string       $requested_url The URL which the cookie was set on, used for default $domain
+        *                                    and $port values.
         */
         */
-       function __construct( $data, $requested_url = '' ) {
+       public function __construct( $data, $requested_url = '' ) {
                if ( $requested_url )
                        $arrURL = @parse_url( $requested_url );
                if ( isset( $arrURL['host'] ) )
                if ( $requested_url )
                        $arrURL = @parse_url( $requested_url );
                if ( isset( $arrURL['host'] ) )
@@ -1792,20 +1840,24 @@ class WP_Http_Cookie {
                        $this->path = dirname( $this->path ) . '/';
 
                if ( is_string( $data ) ) {
                        $this->path = dirname( $this->path ) . '/';
 
                if ( is_string( $data ) ) {
-                       // Assume it's a header string direct from a previous request
+                       // Assume it's a header string direct from a previous request.
                        $pairs = explode( ';', $data );
 
                        $pairs = explode( ';', $data );
 
-                       // Special handling for first pair; name=value. Also be careful of "=" in value
+                       // Special handling for first pair; name=value. Also be careful of "=" in value.
                        $name  = trim( substr( $pairs[0], 0, strpos( $pairs[0], '=' ) ) );
                        $value = substr( $pairs[0], strpos( $pairs[0], '=' ) + 1 );
                        $this->name  = $name;
                        $this->value = urldecode( $value );
                        $name  = trim( substr( $pairs[0], 0, strpos( $pairs[0], '=' ) ) );
                        $value = substr( $pairs[0], strpos( $pairs[0], '=' ) + 1 );
                        $this->name  = $name;
                        $this->value = urldecode( $value );
-                       array_shift( $pairs ); //Removes name=value from items.
 
 
-                       // Set everything else as a property
+                       // Removes name=value from items.
+                       array_shift( $pairs );
+
+                       // Set everything else as a property.
                        foreach ( $pairs as $pair ) {
                                $pair = rtrim($pair);
                        foreach ( $pairs as $pair ) {
                                $pair = rtrim($pair);
-                               if ( empty($pair) ) //Handles the cookie ending in ; which results in a empty final pair
+
+                               // Handle the cookie ending in ; which results in a empty final pair.
+                               if ( empty($pair) )
                                        continue;
 
                                list( $key, $val ) = strpos( $pair, '=' ) ? explode( '=', $pair ) : array( $pair, '' );
                                        continue;
 
                                list( $key, $val ) = strpos( $pair, '=' ) ? explode( '=', $pair ) : array( $pair, '' );
@@ -1818,7 +1870,7 @@ class WP_Http_Cookie {
                        if ( !isset( $data['name'] ) )
                                return false;
 
                        if ( !isset( $data['name'] ) )
                                return false;
 
-                       // Set properties based directly on parameters
+                       // Set properties based directly on parameters.
                        foreach ( array( 'name', 'value', 'path', 'domain', 'port' ) as $field ) {
                                if ( isset( $data[ $field ] ) )
                                        $this->$field = $data[ $field ];
                        foreach ( array( 'name', 'value', 'path', 'domain', 'port' ) as $field ) {
                                if ( isset( $data[ $field ] ) )
                                        $this->$field = $data[ $field ];
@@ -1842,36 +1894,36 @@ class WP_Http_Cookie {
         * @param string $url URL you intend to send this cookie to
         * @return boolean true if allowed, false otherwise.
         */
         * @param string $url URL you intend to send this cookie to
         * @return boolean true if allowed, false otherwise.
         */
-       function test( $url ) {
+       public function test( $url ) {
                if ( is_null( $this->name ) )
                        return false;
 
                if ( is_null( $this->name ) )
                        return false;
 
-               // Expires - if expired then nothing else matters
+               // Expires - if expired then nothing else matters.
                if ( isset( $this->expires ) && time() > $this->expires )
                        return false;
 
                if ( isset( $this->expires ) && time() > $this->expires )
                        return false;
 
-               // Get details on the URL we're thinking about sending to
+               // Get details on the URL we're thinking about sending to.
                $url = parse_url( $url );
                $url['port'] = isset( $url['port'] ) ? $url['port'] : ( 'https' == $url['scheme'] ? 443 : 80 );
                $url['path'] = isset( $url['path'] ) ? $url['path'] : '/';
 
                $url = parse_url( $url );
                $url['port'] = isset( $url['port'] ) ? $url['port'] : ( 'https' == $url['scheme'] ? 443 : 80 );
                $url['path'] = isset( $url['path'] ) ? $url['path'] : '/';
 
-               // Values to use for comparison against the URL
+               // Values to use for comparison against the URL.
                $path   = isset( $this->path )   ? $this->path   : '/';
                $port   = isset( $this->port )   ? $this->port   : null;
                $domain = isset( $this->domain ) ? strtolower( $this->domain ) : strtolower( $url['host'] );
                if ( false === stripos( $domain, '.' ) )
                        $domain .= '.local';
 
                $path   = isset( $this->path )   ? $this->path   : '/';
                $port   = isset( $this->port )   ? $this->port   : null;
                $domain = isset( $this->domain ) ? strtolower( $this->domain ) : strtolower( $url['host'] );
                if ( false === stripos( $domain, '.' ) )
                        $domain .= '.local';
 
-               // Host - very basic check that the request URL ends with the domain restriction (minus leading dot)
+               // Host - very basic check that the request URL ends with the domain restriction (minus leading dot).
                $domain = substr( $domain, 0, 1 ) == '.' ? substr( $domain, 1 ) : $domain;
                if ( substr( $url['host'], -strlen( $domain ) ) != $domain )
                        return false;
 
                $domain = substr( $domain, 0, 1 ) == '.' ? substr( $domain, 1 ) : $domain;
                if ( substr( $url['host'], -strlen( $domain ) ) != $domain )
                        return false;
 
-               // Port - supports "port-lists" in the format: "80,8000,8080"
+               // Port - supports "port-lists" in the format: "80,8000,8080".
                if ( !empty( $port ) && !in_array( $url['port'], explode( ',', $port) ) )
                        return false;
 
                if ( !empty( $port ) && !in_array( $url['port'], explode( ',', $port) ) )
                        return false;
 
-               // Path - request path must start with path restriction
+               // Path - request path must start with path restriction.
                if ( substr( $url['path'], 0, strlen( $path ) ) != $path )
                        return false;
 
                if ( substr( $url['path'], 0, strlen( $path ) ) != $path )
                        return false;
 
@@ -1886,7 +1938,7 @@ class WP_Http_Cookie {
         *
         * @return string Header encoded cookie name and value.
         */
         *
         * @return string Header encoded cookie name and value.
         */
-       function getHeaderValue() {
+       public function getHeaderValue() {
                if ( ! isset( $this->name ) || ! isset( $this->value ) )
                        return '';
 
                if ( ! isset( $this->name ) || ! isset( $this->value ) )
                        return '';
 
@@ -1909,7 +1961,7 @@ class WP_Http_Cookie {
         *
         * @return string
         */
         *
         * @return string
         */
-       function getFullHeader() {
+       public function getFullHeader() {
                return 'Cookie: ' . $this->getHeaderValue();
        }
 }
                return 'Cookie: ' . $this->getHeaderValue();
        }
 }
@@ -2001,7 +2053,7 @@ class WP_Http_Encoding {
         */
        public static function compatible_gzinflate($gzData) {
 
         */
        public static function compatible_gzinflate($gzData) {
 
-               // Compressed data might contain a full header, if so strip it for gzinflate()
+               // Compressed data might contain a full header, if so strip it for gzinflate().
                if ( substr($gzData, 0, 3) == "\x1f\x8b\x08" ) {
                        $i = 10;
                        $flg = ord( substr($gzData, 3, 1) );
                if ( substr($gzData, 0, 3) == "\x1f\x8b\x08" ) {
                        $i = 10;
                        $flg = ord( substr($gzData, 3, 1) );
@@ -2041,11 +2093,11 @@ class WP_Http_Encoding {
                $type = array();
                $compression_enabled = WP_Http_Encoding::is_available();
 
                $type = array();
                $compression_enabled = WP_Http_Encoding::is_available();
 
-               if ( ! $args['decompress'] ) // decompression specifically disabled
+               if ( ! $args['decompress'] ) // Decompression specifically disabled.
                        $compression_enabled = false;
                        $compression_enabled = false;
-               elseif ( $args['stream'] ) // disable when streaming to file
+               elseif ( $args['stream'] ) // Disable when streaming to file.
                        $compression_enabled = false;
                        $compression_enabled = false;
-               elseif ( isset( $args['limit_response_size'] ) ) // If only partial content is being requested, we won't be able to decompress it
+               elseif ( isset( $args['limit_response_size'] ) ) // If only partial content is being requested, we won't be able to decompress it.
                        $compression_enabled = false;
 
                if ( $compression_enabled ) {
                        $compression_enabled = false;
 
                if ( $compression_enabled ) {
index 353837ff22770801b8a2c31ecdc32bbc842db13e..b6bfeb75db74b2504f9d040c291b05dcf8c9eb85 100644 (file)
  * @since 2.9.0
  */
 class WP_oEmbed {
  * @since 2.9.0
  */
 class WP_oEmbed {
-       var $providers = array();
+       public $providers = array();
+       public static $early_providers = array();
 
        /**
         * Constructor
         *
 
        /**
         * Constructor
         *
-        * @uses apply_filters() Filters a list of pre-defined oEmbed providers.
+        * @since 2.9.0
         */
         */
-       function __construct() {
+       public function __construct() {
                $providers = array(
                        '#http://(www\.)?youtube\.com/watch.*#i'              => array( 'http://www.youtube.com/oembed',                      true  ),
                        '#https://(www\.)?youtube\.com/watch.*#i'             => array( 'http://www.youtube.com/oembed?scheme=https',         true  ),
                $providers = array(
                        '#http://(www\.)?youtube\.com/watch.*#i'              => array( 'http://www.youtube.com/oembed',                      true  ),
                        '#https://(www\.)?youtube\.com/watch.*#i'             => array( 'http://www.youtube.com/oembed?scheme=https',         true  ),
+                       '#http://(www\.)?youtube\.com/playlist.*#i'           => array( 'http://www.youtube.com/oembed',                      true  ),
+                       '#https://(www\.)?youtube\.com/playlist.*#i'          => array( 'http://www.youtube.com/oembed?scheme=https',         true  ),
                        '#http://youtu\.be/.*#i'                              => array( 'http://www.youtube.com/oembed',                      true  ),
                        '#https://youtu\.be/.*#i'                             => array( 'http://www.youtube.com/oembed?scheme=https',         true  ),
                        'http://blip.tv/*'                                    => array( 'http://blip.tv/oembed/',                             false ),
                        '#https?://(.+\.)?vimeo\.com/.*#i'                    => array( 'http://vimeo.com/api/oembed.{format}',               true  ),
                        '#https?://(www\.)?dailymotion\.com/.*#i'             => array( 'http://www.dailymotion.com/services/oembed',         true  ),
                        'http://dai.ly/*'                                     => array( 'http://www.dailymotion.com/services/oembed',         false ),
                        '#http://youtu\.be/.*#i'                              => array( 'http://www.youtube.com/oembed',                      true  ),
                        '#https://youtu\.be/.*#i'                             => array( 'http://www.youtube.com/oembed?scheme=https',         true  ),
                        'http://blip.tv/*'                                    => array( 'http://blip.tv/oembed/',                             false ),
                        '#https?://(.+\.)?vimeo\.com/.*#i'                    => array( 'http://vimeo.com/api/oembed.{format}',               true  ),
                        '#https?://(www\.)?dailymotion\.com/.*#i'             => array( 'http://www.dailymotion.com/services/oembed',         true  ),
                        'http://dai.ly/*'                                     => array( 'http://www.dailymotion.com/services/oembed',         false ),
-                       '#https?://(www\.)?flickr\.com/.*#i'                  => array( 'http://www.flickr.com/services/oembed/',             true  ),
-                       'http://flic.kr/*'                                    => array( 'http://www.flickr.com/services/oembed/',             false ),
+                       '#https?://(www\.)?flickr\.com/.*#i'                  => array( 'https://www.flickr.com/services/oembed/',            true  ),
+                       '#https?://flic\.kr/.*#i'                             => array( 'https://www.flickr.com/services/oembed/',            true  ),
                        '#https?://(.+\.)?smugmug\.com/.*#i'                  => array( 'http://api.smugmug.com/services/oembed/',            true  ),
                        '#https?://(www\.)?hulu\.com/watch/.*#i'              => array( 'http://www.hulu.com/api/oembed.{format}',            true  ),
                        '#https?://(.+\.)?smugmug\.com/.*#i'                  => array( 'http://api.smugmug.com/services/oembed/',            true  ),
                        '#https?://(www\.)?hulu\.com/watch/.*#i'              => array( 'http://www.hulu.com/api/oembed.{format}',            true  ),
-                       '#https?://(www\.)?viddler\.com/.*#i'                 => array( 'http://lab.viddler.com/services/oembed/',            true  ),
                        'http://revision3.com/*'                              => array( 'http://revision3.com/api/oembed/',                   false ),
                        'http://i*.photobucket.com/albums/*'                  => array( 'http://photobucket.com/oembed',                      false ),
                        'http://gi*.photobucket.com/groups/*'                 => array( 'http://photobucket.com/oembed',                      false ),
                        'http://revision3.com/*'                              => array( 'http://revision3.com/api/oembed/',                   false ),
                        'http://i*.photobucket.com/albums/*'                  => array( 'http://photobucket.com/oembed',                      false ),
                        'http://gi*.photobucket.com/groups/*'                 => array( 'http://photobucket.com/oembed',                      false ),
-                       '#https?://(www\.)?scribd\.com/.*#i'                  => array( 'http://www.scribd.com/services/oembed',              true  ),
-                       'http://wordpress.tv/*'                               => array( 'http://wordpress.tv/oembed/',                        false ),
-                       '#https?://(.+\.)?polldaddy\.com/.*#i'                => array( 'http://polldaddy.com/oembed/',                       true  ),
+                       '#https?://(www\.)?scribd\.com/doc/.*#i'              => array( 'http://www.scribd.com/services/oembed',              true  ),
+                       '#https?://wordpress.tv/.*#i'                         => array( 'http://wordpress.tv/oembed/',                        true ),
+                       '#https?://(.+\.)?polldaddy\.com/.*#i'                => array( 'https://polldaddy.com/oembed/',                      true  ),
+                       '#https?://poll\.fm/.*#i'                             => array( 'https://polldaddy.com/oembed/',                      true  ),
                        '#https?://(www\.)?funnyordie\.com/videos/.*#i'       => array( 'http://www.funnyordie.com/oembed',                   true  ),
                        '#https?://(www\.)?twitter\.com/.+?/status(es)?/.*#i' => array( 'https://api.twitter.com/1/statuses/oembed.{format}', true  ),
                        '#https?://(www\.)?soundcloud\.com/.*#i'              => array( 'http://soundcloud.com/oembed',                       true  ),
                        '#https?://(www\.)?funnyordie\.com/videos/.*#i'       => array( 'http://www.funnyordie.com/oembed',                   true  ),
                        '#https?://(www\.)?twitter\.com/.+?/status(es)?/.*#i' => array( 'https://api.twitter.com/1/statuses/oembed.{format}', true  ),
                        '#https?://(www\.)?soundcloud\.com/.*#i'              => array( 'http://soundcloud.com/oembed',                       true  ),
-                       '#https?://(www\.)?slideshare\.net/*#'                => array( 'http://www.slideshare.net/api/oembed/2',             true  ),
+                       '#https?://(www\.)?slideshare\.net/.*#i'              => array( 'https://www.slideshare.net/api/oembed/2',            true  ),
                        '#http://instagr(\.am|am\.com)/p/.*#i'                => array( 'http://api.instagram.com/oembed',                    true  ),
                        '#https?://(www\.)?rdio\.com/.*#i'                    => array( 'http://www.rdio.com/api/oembed/',                    true  ),
                        '#https?://rd\.io/x/.*#i'                             => array( 'http://www.rdio.com/api/oembed/',                    true  ),
                        '#https?://(open|play)\.spotify\.com/.*#i'            => array( 'https://embed.spotify.com/oembed/',                  true  ),
                        '#https?://(.+\.)?imgur\.com/.*#i'                    => array( 'http://api.imgur.com/oembed',                        true  ),
                        '#https?://(www\.)?meetu(\.ps|p\.com)/.*#i'           => array( 'http://api.meetup.com/oembed',                       true  ),
                        '#http://instagr(\.am|am\.com)/p/.*#i'                => array( 'http://api.instagram.com/oembed',                    true  ),
                        '#https?://(www\.)?rdio\.com/.*#i'                    => array( 'http://www.rdio.com/api/oembed/',                    true  ),
                        '#https?://rd\.io/x/.*#i'                             => array( 'http://www.rdio.com/api/oembed/',                    true  ),
                        '#https?://(open|play)\.spotify\.com/.*#i'            => array( 'https://embed.spotify.com/oembed/',                  true  ),
                        '#https?://(.+\.)?imgur\.com/.*#i'                    => array( 'http://api.imgur.com/oembed',                        true  ),
                        '#https?://(www\.)?meetu(\.ps|p\.com)/.*#i'           => array( 'http://api.meetup.com/oembed',                       true  ),
+                       '#https?://(www\.)?issuu\.com/.+/docs/.+#i'           => array( 'http://issuu.com/oembed_wp',                         true  ),
+                       '#https?://(www\.)?collegehumor\.com/video/.*#i'      => array( 'http://www.collegehumor.com/oembed.{format}',        true  ),
+                       '#https?://(www\.)?mixcloud\.com/.*#i'                => array( 'http://www.mixcloud.com/oembed',                     true  ),
+                       '#https?://(www\.|embed\.)?ted\.com/talks/.*#i'       => array( 'http://www.ted.com/talks/oembed.{format}',           true  ),
+                       '#https?://(www\.)?(animoto|video214)\.com/play/.*#i' => array( 'http://animoto.com/oembeds/create',                  true  ),
                );
 
                );
 
+               if ( ! empty( self::$early_providers['add'] ) ) {
+                       foreach ( self::$early_providers['add'] as $format => $data ) {
+                               $providers[ $format ] = $data;
+                       }
+               }
+
+               if ( ! empty( self::$early_providers['remove'] ) ) {
+                       foreach ( self::$early_providers['remove'] as $format ) {
+                               unset( $providers[ $format ] );
+                       }
+               }
+
+               self::$early_providers = array();
+
                /**
                 * Filter the list of oEmbed providers.
                 *
                 * Discovery is disabled for users lacking the unfiltered_html capability.
                 * Only providers in this array will be used for those users.
                 *
                /**
                 * Filter the list of oEmbed providers.
                 *
                 * Discovery is disabled for users lacking the unfiltered_html capability.
                 * Only providers in this array will be used for those users.
                 *
+                * Supported providers:
+                *
+                * | ------------ | -------------------- | ----- | --------- |
+                * |   Provider   |        Flavor        |  SSL  |   Since   |
+                * | ------------ | -------------------- | ----- | --------- |
+                * | Blip         | blip.tv              |       | 2.9.0     |
+                * | Dailymotion  | dailymotion.com      |  Yes  | 2.9.0     |
+                * | Flickr       | flickr.com           |  Yes  | 2.9.0     |
+                * | Hulu         | hulu.com             |  Yes  | 2.9.0     |
+                * | Photobucket  | photobucket.com      |       | 2.9.0     |
+                * | Revision3    | revision3.com        |       | 2.9.0     |
+                * | Scribd       | scribd.com           |  Yes  | 2.9.0     |
+                * | Vimeo        | vimeo.com            |  Yes  | 2.9.0     |
+                * | WordPress.tv | wordpress.tv         |  Yes  | 2.9.0     |
+                * | YouTube      | youtube.com/watch    |  Yes  | 2.9.0     |
+                * | ------------ | -------------------- | ----- | --------- |
+                * | Funny or Die | funnyordie.com       |  Yes  | 3.0.0     |
+                * | Polldaddy    | polldaddy.com        |  Yes  | 3.0.0     |
+                * | SmugMug      | smugmug.com          |  Yes  | 3.0.0     |
+                * | YouTube      | youtu.be             |  Yes  | 3.0.0     |
+                * | ------------ | -------------------- | ----- | --------- |
+                * | Twitter      | twitter.com          |  Yes  | 3.4.0     |
+                * | ------------ | -------------------- | ----- | --------- |
+                * | Instagram    | instagram.com        |       | 3.5.0     |
+                * | Instagram    | instagr.am           |       | 3.5.0     |
+                * | Slideshare   | slideshare.net       |  Yes  | 3.5.0     |
+                * | SoundCloud   | soundcloud.com       |  Yes  | 3.5.0     |
+                * | ------------ | -------------------- | ----- | --------- |
+                * | Dailymotion  | dai.ly               |       | 3.6.0     |
+                * | Flickr       | flic.kr              |  Yes  | 3.6.0     |
+                * | Rdio         | rdio.com             |  Yes  | 3.6.0     |
+                * | Rdio         | rd.io                |  Yes  | 3.6.0     |
+                * | Spotify      | spotify.com          |  Yes  | 3.6.0     |
+                * | ------------ | -------------------- | ----- | --------- |
+                * | Imgur        | imgur.com            |  Yes  | 3.9.0     |
+                * | Meetup.com   | meetup.com           |  Yes  | 3.9.0     |
+                * | Meetup.com   | meetu.ps             |  Yes  | 3.9.0     |
+                * | ------------ | -------------------- | ----- | --------- |
+                * | Animoto      | animoto.com          |  Yes  | 4.0.0     |
+                * | Animoto      | video214.com         |  Yes  | 4.0.0     |
+                * | CollegeHumor | collegehumor.com     |  Yes  | 4.0.0     |
+                * | Issuu        | issuu.com            |  Yes  | 4.0.0     |
+                * | Mixcloud     | mixcloud.com         |  Yes  | 4.0.0     |
+                * | Polldaddy    | poll.fm              |  Yes  | 4.0.0     |
+                * | TED          | ted.com              |  Yes  | 4.0.0     |
+                * | YouTube      | youtube.com/playlist |  Yes  | 4.0.0     |
+                * | ------------ | -------------------- | ----- | --------- |
+                *
+                * No longer supported providers:
+                *
+                * | ------------ | -------------------- | ----- | --------- | --------- |
+                * |   Provider   |        Flavor        |  SSL  |   Since   |  Removed  |
+                * | ------------ | -------------------- | ----- | --------- | --------- |
+                * | Qik          | qik.com              |  Yes  | 2.9.0     | 3.9.0     |
+                * | ------------ | -------------------- | ----- | --------- | --------- |
+                * | Viddler      | viddler.com          |  Yes  | 2.9.0     | 4.0.0     |
+                * | ------------ | -------------------- | ----- | --------- | --------- |
+                *
                 * @see wp_oembed_add_provider()
                 *
                 * @since 2.9.0
                 * @see wp_oembed_add_provider()
                 *
                 * @since 2.9.0
@@ -77,17 +157,33 @@ class WP_oEmbed {
        }
 
        /**
        }
 
        /**
-        * The do-it-all function that takes a URL and attempts to return the HTML.
+        * Make private/protected methods readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param callable $name      Method to call.
+        * @param array    $arguments Arguments to pass when calling.
+        * @return mixed|bool Return value of the callback, false otherwise.
+        */
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this, $name ), $arguments );
+       }
+
+       /**
+        * Takes a URL and returns the corresponding oEmbed provider's URL, if there is one.
+        *
+        * @since 4.0.0
+        * @access public
         *
         * @see WP_oEmbed::discover()
         *
         * @see WP_oEmbed::discover()
-        * @see WP_oEmbed::fetch()
-        * @see WP_oEmbed::data2html()
         *
         *
-        * @param string $url The URL to the content that should be attempted to be embedded.
-        * @param array $args Optional arguments. Usually passed from a shortcode.
-        * @return bool|string False on failure, otherwise the UNSANITIZED (and potentially unsafe) HTML that should be used to embed.
+        * @param string        $url  The URL to the content.
+        * @param string|array  $args Optional provider arguments.
+        * @return bool|string False on failure, otherwise the oEmbed provider URL.
         */
         */
-       function get_html( $url, $args = '' ) {
+       public function get_provider( $url, $args = '' ) {
+
                $provider = false;
 
                if ( !isset($args['discover']) )
                $provider = false;
 
                if ( !isset($args['discover']) )
@@ -111,6 +207,71 @@ class WP_oEmbed {
                if ( !$provider && $args['discover'] )
                        $provider = $this->discover( $url );
 
                if ( !$provider && $args['discover'] )
                        $provider = $this->discover( $url );
 
+               return $provider;
+       }
+
+       /**
+        * Add an oEmbed provider just-in-time when wp_oembed_add_provider() is called
+        * before the 'plugins_loaded' hook.
+        *
+        * The just-in-time addition is for the benefit of the 'oembed_providers' filter.
+        *
+        * @since 4.0.0
+        * @access public
+        * @static
+        *
+        * @see wp_oembed_add_provider()
+        *
+        * @param string $format   Format of URL that this provider can handle. You can use
+        *                         asterisks as wildcards.
+        * @param string $provider The URL to the oEmbed provider..
+        * @param bool   $regex    Optional. Whether the $format parameter is in a regex format.
+        *                         Default false.
+        */
+       public static function _add_provider_early( $format, $provider, $regex = false ) {
+               if ( empty( self::$early_providers['add'] ) ) {
+                       self::$early_providers['add'] = array();
+               }
+
+               self::$early_providers['add'][ $format ] = array( $provider, $regex );
+       }
+
+       /**
+        * Remove an oEmbed provider just-in-time when wp_oembed_remove_provider() is called
+        * before the 'plugins_loaded' hook.
+        *
+        * The just-in-time removal is for the benefit of the 'oembed_providers' filter.
+        *
+        * @since 4.0.0
+        * @access public
+        * @static
+        *
+        * @see wp_oembed_remove_provider()
+        *
+        * @param string $format The format of URL that this provider can handle. You can use
+        *                       asterisks as wildcards.
+        */
+       public static function _remove_provider_early( $format ) {
+               if ( empty( self::$early_providers['remove'] ) ) {
+                       self::$early_providers['remove'] = array();
+               }
+
+               self::$early_providers['remove'][] = $format;
+       }
+
+       /**
+        * The do-it-all function that takes a URL and attempts to return the HTML.
+        *
+        * @see WP_oEmbed::fetch()
+        * @see WP_oEmbed::data2html()
+        *
+        * @param string $url The URL to the content that should be attempted to be embedded.
+        * @param array $args Optional arguments. Usually passed from a shortcode.
+        * @return bool|string False on failure, otherwise the UNSANITIZED (and potentially unsafe) HTML that should be used to embed.
+        */
+       function get_html( $url, $args = '' ) {
+               $provider = $this->get_provider( $url, $args );
+
                if ( !$provider || false === $data = $this->fetch( $provider, $url, $args ) )
                        return false;
 
                if ( !$provider || false === $data = $this->fetch( $provider, $url, $args ) )
                        return false;
 
@@ -132,11 +293,23 @@ class WP_oEmbed {
         * @param string $url The URL that should be inspected for discovery <link> tags.
         * @return bool|string False on failure, otherwise the oEmbed provider URL.
         */
         * @param string $url The URL that should be inspected for discovery <link> tags.
         * @return bool|string False on failure, otherwise the oEmbed provider URL.
         */
-       function discover( $url ) {
+       public function discover( $url ) {
                $providers = array();
 
                $providers = array();
 
+               /**
+                * Filter oEmbed remote get arguments.
+                *
+                * @since 4.0.0
+                *
+                * @see WP_Http::request()
+                *
+                * @param array  $args oEmbed remote get arguments.
+                * @param string $url  URL to be inspected.
+                */
+               $args = apply_filters( 'oembed_remote_get_args', array(), $url );
+
                // Fetch URL content
                // Fetch URL content
-               $request = wp_safe_remote_get( $url );
+               $request = wp_safe_remote_get( $url, $args );
                if ( $html = wp_remote_retrieve_body( $request ) ) {
 
                        /**
                if ( $html = wp_remote_retrieve_body( $request ) ) {
 
                        /**
@@ -198,8 +371,8 @@ class WP_oEmbed {
         * @param array $args Optional arguments. Usually passed from a shortcode.
         * @return bool|object False on failure, otherwise the result in the form of an object.
         */
         * @param array $args Optional arguments. Usually passed from a shortcode.
         * @return bool|object False on failure, otherwise the result in the form of an object.
         */
-       function fetch( $provider, $url, $args = '' ) {
-               $args = wp_parse_args( $args, wp_embed_defaults() );
+       public function fetch( $provider, $url, $args = '' ) {
+               $args = wp_parse_args( $args, wp_embed_defaults( $url ) );
 
                $provider = add_query_arg( 'maxwidth', (int) $args['width'], $provider );
                $provider = add_query_arg( 'maxheight', (int) $args['height'], $provider );
 
                $provider = add_query_arg( 'maxwidth', (int) $args['width'], $provider );
                $provider = add_query_arg( 'maxheight', (int) $args['height'], $provider );
@@ -234,9 +407,13 @@ class WP_oEmbed {
         * @param string $format Format to use
         * @return bool|object False on failure, otherwise the result in the form of an object.
         */
         * @param string $format Format to use
         * @return bool|object False on failure, otherwise the result in the form of an object.
         */
-       function _fetch_with_format( $provider_url_with_args, $format ) {
+       private function _fetch_with_format( $provider_url_with_args, $format ) {
                $provider_url_with_args = add_query_arg( 'format', $format, $provider_url_with_args );
                $provider_url_with_args = add_query_arg( 'format', $format, $provider_url_with_args );
-               $response = wp_safe_remote_get( $provider_url_with_args );
+
+               /** This filter is documented in wp-includes/class-oembed.php */
+               $args = apply_filters( 'oembed_remote_get_args', array(), $provider_url_with_args );
+
+               $response = wp_safe_remote_get( $provider_url_with_args, $args );
                if ( 501 == wp_remote_retrieve_response_code( $response ) )
                        return new WP_Error( 'not-implemented' );
                if ( ! $body = wp_remote_retrieve_body( $response ) )
                if ( 501 == wp_remote_retrieve_response_code( $response ) )
                        return new WP_Error( 'not-implemented' );
                if ( ! $body = wp_remote_retrieve_body( $response ) )
@@ -251,7 +428,7 @@ class WP_oEmbed {
         * @since 3.0.0
         * @access private
         */
         * @since 3.0.0
         * @access private
         */
-       function _parse_json( $response_body ) {
+       private function _parse_json( $response_body ) {
                return ( ( $data = json_decode( trim( $response_body ) ) ) && is_object( $data ) ) ? $data : false;
        }
 
                return ( ( $data = json_decode( trim( $response_body ) ) ) && is_object( $data ) ) ? $data : false;
        }
 
@@ -261,7 +438,7 @@ class WP_oEmbed {
         * @since 3.0.0
         * @access private
         */
         * @since 3.0.0
         * @access private
         */
-       function _parse_xml( $response_body ) {
+       private function _parse_xml( $response_body ) {
                if ( ! function_exists( 'libxml_disable_entity_loader' ) )
                        return false;
 
                if ( ! function_exists( 'libxml_disable_entity_loader' ) )
                        return false;
 
@@ -318,7 +495,7 @@ class WP_oEmbed {
         * @param string $url The URL to the content that is desired to be embedded.
         * @return bool|string False on error, otherwise the HTML needed to embed.
         */
         * @param string $url The URL to the content that is desired to be embedded.
         * @return bool|string False on error, otherwise the HTML needed to embed.
         */
-       function data2html( $data, $url ) {
+       public function data2html( $data, $url ) {
                if ( ! is_object( $data ) || empty( $data->type ) )
                        return false;
 
                if ( ! is_object( $data ) || empty( $data->type ) )
                        return false;
 
@@ -373,7 +550,7 @@ class WP_oEmbed {
         * @param string $url The original URL passed to oEmbed.
         * @return string Possibly modified $html
         */
         * @param string $url The original URL passed to oEmbed.
         * @return string Possibly modified $html
         */
-       function _strip_newlines( $html, $data, $url ) {
+       private function _strip_newlines( $html, $data, $url ) {
                if ( false !== strpos( $html, "\n" ) )
                        $html = str_replace( array( "\r\n", "\n" ), '', $html );
 
                if ( false !== strpos( $html, "\n" ) )
                        $html = str_replace( array( "\r\n", "\n" ), '', $html );
 
index ba6f28dba0a5f98d31d023885fc25a7908db2e04..64f9fa9be4fcdf63f46d9798326424145a4bd9b6 100644 (file)
@@ -26,7 +26,7 @@ function wp_simplepie_autoload( $class ) {
                return;
 
        $file = ABSPATH . WPINC . '/' . str_replace( '_', '/', $class ) . '.php';
                return;
 
        $file = ABSPATH . WPINC . '/' . str_replace( '_', '/', $class ) . '.php';
-       include $file;
+       include( $file );
 }
 
 if ( function_exists( 'spl_autoload_register' ) ) {
 }
 
 if ( function_exists( 'spl_autoload_register' ) ) {
@@ -1612,7 +1612,7 @@ class SimplePie
        }
 
        /**
        }
 
        /**
-        * Get the error message for the occured error
+        * Get the error message for the occurred error.
         *
         * @return string|array Error message, or array of messages for multifeeds
         */
         *
         * @return string|array Error message, or array of messages for multifeeds
         */
index 050b0f1c0e06647666683829a3bff0e0dc204346..749e48de7599ff92579f9545e02ace1f7e48f840 100644 (file)
@@ -16,11 +16,10 @@ class WP_Admin_Bar {
                switch ( $name ) {
                        case 'proto' :
                                return is_ssl() ? 'https://' : 'http://';
                switch ( $name ) {
                        case 'proto' :
                                return is_ssl() ? 'https://' : 'http://';
-                               break;
+
                        case 'menu' :
                                _deprecated_argument( 'WP_Admin_Bar', '3.3', 'Modify admin bar nodes with WP_Admin_Bar::get_node(), WP_Admin_Bar::add_node(), and WP_Admin_Bar::remove_node(), not the <code>menu</code> property.' );
                                return array(); // Sorry, folks.
                        case 'menu' :
                                _deprecated_argument( 'WP_Admin_Bar', '3.3', 'Modify admin bar nodes with WP_Admin_Bar::get_node(), WP_Admin_Bar::add_node(), and WP_Admin_Bar::remove_node(), not the <code>menu</code> property.' );
                                return array(); // Sorry, folks.
-                               break;
                }
        }
 
                }
        }
 
index 24eb687f123f1e697d64678c8f9aae8178a539b8..7bed81c7bc0628e8fe116680b0e68115983a4b88 100644 (file)
@@ -13,7 +13,7 @@ class WP_Ajax_Response {
         * @var array
         * @access private
         */
         * @var array
         * @access private
         */
-       var $responses = array();
+       private $responses = array();
 
        /**
         * Constructor - Passes args to {@link WP_Ajax_Response::add()}.
 
        /**
         * Constructor - Passes args to {@link WP_Ajax_Response::add()}.
@@ -24,11 +24,63 @@ class WP_Ajax_Response {
         * @param string|array $args Optional. Will be passed to add() method.
         * @return WP_Ajax_Response
         */
         * @param string|array $args Optional. Will be passed to add() method.
         * @return WP_Ajax_Response
         */
-       function __construct( $args = '' ) {
+       public function __construct( $args = '' ) {
                if ( !empty($args) )
                        $this->add($args);
        }
 
                if ( !empty($args) )
                        $this->add($args);
        }
 
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
        /**
         * Append to XML response based on given arguments.
         *
        /**
         * Append to XML response based on given arguments.
         *
@@ -52,7 +104,7 @@ class WP_Ajax_Response {
         * @param string|array $args Override defaults.
         * @return string XML response.
         */
         * @param string|array $args Override defaults.
         * @return string XML response.
         */
-       function add( $args = '' ) {
+       public function add( $args = '' ) {
                $defaults = array(
                        'what' => 'object', 'action' => false,
                        'id' => '0', 'old_id' => false,
                $defaults = array(
                        'what' => 'object', 'action' => false,
                        'id' => '0', 'old_id' => false,
@@ -61,33 +113,40 @@ class WP_Ajax_Response {
                );
 
                $r = wp_parse_args( $args, $defaults );
                );
 
                $r = wp_parse_args( $args, $defaults );
-               extract( $r, EXTR_SKIP );
-               $position = preg_replace( '/[^a-z0-9:_-]/i', '', $position );
 
 
-               if ( is_wp_error($id) ) {
+               $position = preg_replace( '/[^a-z0-9:_-]/i', '', $r['position'] );
+               $id = $r['id'];
+               $what = $r['what'];
+               $action = $r['action'];
+               $old_id = $r['old_id'];
+               $data = $r['data'];
+
+               if ( is_wp_error( $id ) ) {
                        $data = $id;
                        $id = 0;
                }
 
                $response = '';
                        $data = $id;
                        $id = 0;
                }
 
                $response = '';
-               if ( is_wp_error($data) ) {
+               if ( is_wp_error( $data ) ) {
                        foreach ( (array) $data->get_error_codes() as $code ) {
                        foreach ( (array) $data->get_error_codes() as $code ) {
-                               $response .= "<wp_error code='$code'><![CDATA[" . $data->get_error_message($code) . "]]></wp_error>";
-                               if ( !$error_data = $data->get_error_data($code) )
+                               $response .= "<wp_error code='$code'><![CDATA[" . $data->get_error_message( $code ) . "]]></wp_error>";
+                               if ( ! $error_data = $data->get_error_data( $code ) ) {
                                        continue;
                                        continue;
+                               }
                                $class = '';
                                $class = '';
-                               if ( is_object($error_data) ) {
-                                       $class = ' class="' . get_class($error_data) . '"';
-                                       $error_data = get_object_vars($error_data);
+                               if ( is_object( $error_data ) ) {
+                                       $class = ' class="' . get_class( $error_data ) . '"';
+                                       $error_data = get_object_vars( $error_data );
                                }
 
                                $response .= "<wp_error_data code='$code'$class>";
 
                                }
 
                                $response .= "<wp_error_data code='$code'$class>";
 
-                               if ( is_scalar($error_data) ) {
+                               if ( is_scalar( $error_data ) ) {
                                        $response .= "<![CDATA[$error_data]]>";
                                        $response .= "<![CDATA[$error_data]]>";
-                               } elseif ( is_array($error_data) ) {
-                                       foreach ( $error_data as $k => $v )
+                               } elseif ( is_array( $error_data ) ) {
+                                       foreach ( $error_data as $k => $v ) {
                                                $response .= "<$k><![CDATA[$v]]></$k>";
                                                $response .= "<$k><![CDATA[$v]]></$k>";
+                                       }
                                }
 
                                $response .= "</wp_error_data>";
                                }
 
                                $response .= "</wp_error_data>";
@@ -97,15 +156,16 @@ class WP_Ajax_Response {
                }
 
                $s = '';
                }
 
                $s = '';
-               if ( is_array($supplemental) ) {
-                       foreach ( $supplemental as $k => $v )
+               if ( is_array( $r['supplemental'] ) ) {
+                       foreach ( $r['supplemental'] as $k => $v ) {
                                $s .= "<$k><![CDATA[$v]]></$k>";
                                $s .= "<$k><![CDATA[$v]]></$k>";
+                       }
                        $s = "<supplemental>$s</supplemental>";
                }
 
                        $s = "<supplemental>$s</supplemental>";
                }
 
-               if ( false === $action )
+               if ( false === $action ) {
                        $action = $_POST['action'];
                        $action = $_POST['action'];
-
+               }
                $x = '';
                $x .= "<response action='{$action}_$id'>"; // The action attribute in the xml output is formatted like a nonce action
                $x .=   "<$what id='$id' " . ( false === $old_id ? '' : "old_id='$old_id' " ) . "position='$position'>";
                $x = '';
                $x .= "<response action='{$action}_$id'>"; // The action attribute in the xml output is formatted like a nonce action
                $x .=   "<$what id='$id' " . ( false === $old_id ? '' : "old_id='$old_id' " ) . "position='$position'>";
@@ -125,7 +185,7 @@ class WP_Ajax_Response {
         *
         * @since 2.1.0
         */
         *
         * @since 2.1.0
         */
-       function send() {
+       public function send() {
                header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ) );
                echo "<?xml version='1.0' encoding='" . get_option( 'blog_charset' ) . "' standalone='yes'?><wp_ajax>";
                foreach ( (array) $this->responses as $response )
                header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ) );
                echo "<?xml version='1.0' encoding='" . get_option( 'blog_charset' ) . "' standalone='yes'?><wp_ajax>";
                foreach ( (array) $this->responses as $response )
index df440744bda37b4df7de6c9486d8762f95179d82..216ceafbf6290e43fe8ce993e2cf979bbfbbb544 100644 (file)
@@ -53,6 +53,12 @@ class WP_Customize_Control {
         */
        public $label = '';
 
         */
        public $label = '';
 
+       /**
+        * @access public
+        * @var string
+        */
+       public $description = '';
+
        /**
         * @todo: Remove choices
         *
        /**
         * @todo: Remove choices
         *
@@ -61,6 +67,12 @@ class WP_Customize_Control {
         */
        public $choices = array();
 
         */
        public $choices = array();
 
+       /**
+        * @access public
+        * @var array
+        */
+       public $input_attrs = array();
+
        /**
         * @access public
         * @var array
        /**
         * @access public
         * @var array
@@ -73,6 +85,20 @@ class WP_Customize_Control {
         */
        public $type = 'text';
 
         */
        public $type = 'text';
 
+       /**
+        * Callback.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @see WP_Customize_Control::active()
+        *
+        * @var callable Callback is called with one argument, the instance of
+        *               WP_Customize_Control, and returns bool to indicate whether
+        *               the control is active (such as it relates to the URL
+        *               currently being previewed).
+        */
+       public $active_callback = '';
 
        /**
         * Constructor.
 
        /**
         * Constructor.
@@ -87,19 +113,24 @@ class WP_Customize_Control {
         * @param string $id
         * @param array $args
         */
         * @param string $id
         * @param array $args
         */
-       function __construct( $manager, $id, $args = array() ) {
+       public function __construct( $manager, $id, $args = array() ) {
                $keys = array_keys( get_object_vars( $this ) );
                foreach ( $keys as $key ) {
                $keys = array_keys( get_object_vars( $this ) );
                foreach ( $keys as $key ) {
-                       if ( isset( $args[ $key ] ) )
+                       if ( isset( $args[ $key ] ) ) {
                                $this->$key = $args[ $key ];
                                $this->$key = $args[ $key ];
+                       }
                }
 
                $this->manager = $manager;
                $this->id = $id;
                }
 
                $this->manager = $manager;
                $this->id = $id;
+               if ( empty( $this->active_callback ) ) {
+                       $this->active_callback = array( $this, 'active_callback' );
+               }
 
                // Process settings.
 
                // Process settings.
-               if ( empty( $this->settings ) )
+               if ( empty( $this->settings ) ) {
                        $this->settings = $id;
                        $this->settings = $id;
+               }
 
                $settings = array();
                if ( is_array( $this->settings ) ) {
 
                $settings = array();
                if ( is_array( $this->settings ) ) {
@@ -120,6 +151,45 @@ class WP_Customize_Control {
         */
        public function enqueue() {}
 
         */
        public function enqueue() {}
 
+       /**
+        * Check whether control is active to current customizer preview.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @return bool Whether the control is active to the current preview.
+        */
+       public final function active() {
+               $control = $this;
+               $active = call_user_func( $this->active_callback, $this );
+
+               /**
+                * Filter response of WP_Customize_Control::active().
+                *
+                * @since 4.0.0
+                *
+                * @param bool                 $active  Whether the Customizer control is active.
+                * @param WP_Customize_Control $control WP_Customize_Control instance.
+                */
+               $active = apply_filters( 'customize_control_active', $active, $control );
+
+               return $active;
+       }
+
+       /**
+        * Default callback used when invoking WP_Customize_Control::active().
+        *
+        * Subclasses can override this with their specific logic, or they may
+        * provide an 'active_callback' argument to the constructor.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @return bool Always true.
+        */
+       public function active_callback() {
+               return true;
+       }
 
        /**
         * Fetch a setting's value.
 
        /**
         * Fetch a setting's value.
@@ -131,8 +201,9 @@ class WP_Customize_Control {
         * @return mixed The requested setting's value, if the setting exists.
         */
        public final function value( $setting_key = 'default' ) {
         * @return mixed The requested setting's value, if the setting exists.
         */
        public final function value( $setting_key = 'default' ) {
-               if ( isset( $this->settings[ $setting_key ] ) )
+               if ( isset( $this->settings[ $setting_key ] ) ) {
                        return $this->settings[ $setting_key ]->value();
                        return $this->settings[ $setting_key ]->value();
+               }
        }
 
        /**
        }
 
        /**
@@ -147,6 +218,7 @@ class WP_Customize_Control {
                }
 
                $this->json['type'] = $this->type;
                }
 
                $this->json['type'] = $this->type;
+               $this->json['active'] = $this->active();
        }
 
        /**
        }
 
        /**
@@ -244,30 +316,38 @@ class WP_Customize_Control {
                echo $this->get_link( $setting_key );
        }
 
                echo $this->get_link( $setting_key );
        }
 
+       /**
+        * Render the custom attributes for the control's input element.
+        *
+        * @since 4.0.0
+        * @access public
+        */
+       public function input_attrs() {
+               foreach( $this->input_attrs as $attr => $value ) {
+                       echo $attr . '="' . esc_attr( $value ) . '" ';
+               }
+       }
+
        /**
         * Render the control's content.
         *
         * Allows the content to be overriden without having to rewrite the wrapper in $this->render().
         *
        /**
         * Render the control's content.
         *
         * Allows the content to be overriden without having to rewrite the wrapper in $this->render().
         *
-        * Supports basic input types `text`, `checkbox`, `radio`, `select` and `dropdown-pages`.
+        * Supports basic input types `text`, `checkbox`, `textarea`, `radio`, `select` and `dropdown-pages`.
+        * Additional input types such as `email`, `url`, `number`, `hidden` and `date` are supported implicitly.
         *
         * @since 3.4.0
         */
        protected function render_content() {
                switch( $this->type ) {
         *
         * @since 3.4.0
         */
        protected function render_content() {
                switch( $this->type ) {
-                       case 'text':
-                               ?>
-                               <label>
-                                       <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
-                                       <input type="text" value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); ?> />
-                               </label>
-                               <?php
-                               break;
                        case 'checkbox':
                                ?>
                                <label>
                                        <input type="checkbox" value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); checked( $this->value() ); ?> />
                                        <?php echo esc_html( $this->label ); ?>
                        case 'checkbox':
                                ?>
                                <label>
                                        <input type="checkbox" value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); checked( $this->value() ); ?> />
                                        <?php echo esc_html( $this->label ); ?>
+                                       <?php if ( ! empty( $this->description ) ) : ?>
+                                               <span class="description customize-control-description"><?php echo $this->description; ?></span>
+                                       <?php endif; ?>
                                </label>
                                <?php
                                break;
                                </label>
                                <?php
                                break;
@@ -277,9 +357,13 @@ class WP_Customize_Control {
 
                                $name = '_customize-radio-' . $this->id;
 
 
                                $name = '_customize-radio-' . $this->id;
 
-                               ?>
-                               <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
-                               <?php
+                               if ( ! empty( $this->label ) ) : ?>
+                                       <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                               <?php endif;
+                               if ( ! empty( $this->description ) ) : ?>
+                                       <span class="description customize-control-description"><?php echo $this->description ; ?></span>
+                               <?php endif;
+
                                foreach ( $this->choices as $value => $label ) :
                                        ?>
                                        <label>
                                foreach ( $this->choices as $value => $label ) :
                                        ?>
                                        <label>
@@ -295,7 +379,13 @@ class WP_Customize_Control {
 
                                ?>
                                <label>
 
                                ?>
                                <label>
-                                       <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                                       <?php if ( ! empty( $this->label ) ) : ?>
+                                               <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                                       <?php endif;
+                                       if ( ! empty( $this->description ) ) : ?>
+                                               <span class="description customize-control-description"><?php echo $this->description; ?></span>
+                                       <?php endif; ?>
+
                                        <select <?php $this->link(); ?>>
                                                <?php
                                                foreach ( $this->choices as $value => $label )
                                        <select <?php $this->link(); ?>>
                                                <?php
                                                foreach ( $this->choices as $value => $label )
@@ -305,6 +395,19 @@ class WP_Customize_Control {
                                </label>
                                <?php
                                break;
                                </label>
                                <?php
                                break;
+                       case 'textarea':
+                               ?>
+                               <label>
+                                       <?php if ( ! empty( $this->label ) ) : ?>
+                                               <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                                       <?php endif;
+                                       if ( ! empty( $this->description ) ) : ?>
+                                               <span class="description customize-control-description"><?php echo $this->description; ?></span>
+                                       <?php endif; ?>
+                                       <textarea rows="5" <?php $this->link(); ?>><?php echo esc_textarea( $this->value() ); ?></textarea>
+                               </label>
+                               <?php
+                               break;
                        case 'dropdown-pages':
                                $dropdown = wp_dropdown_pages(
                                        array(
                        case 'dropdown-pages':
                                $dropdown = wp_dropdown_pages(
                                        array(
@@ -325,6 +428,19 @@ class WP_Customize_Control {
                                        $dropdown
                                );
                                break;
                                        $dropdown
                                );
                                break;
+                       default:
+                               ?>
+                               <label>
+                                       <?php if ( ! empty( $this->label ) ) : ?>
+                                               <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                                       <?php endif;
+                                       if ( ! empty( $this->description ) ) : ?>
+                                               <span class="description customize-control-description"><?php echo $this->description; ?></span>
+                                       <?php endif; ?>
+                                       <input type="<?php echo esc_attr( $this->type ); ?>" <?php $this->input_attrs(); ?> value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); ?> />
+                               </label>
+                               <?php
+                               break;
                }
        }
 }
                }
        }
 }
@@ -401,7 +517,13 @@ class WP_Customize_Color_Control extends WP_Customize_Control {
                // The input's value gets set by JS. Don't fill it.
                ?>
                <label>
                // The input's value gets set by JS. Don't fill it.
                ?>
                <label>
-                       <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                       <?php if ( ! empty( $this->label ) ) : ?>
+                               <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                       <?php endif;
+                       if ( ! empty( $this->description ) ) : ?>
+                               <span class="description customize-control-description"><?php echo $this->description; ?></span>
+                       <?php endif; ?>
+
                        <div class="customize-control-content">
                                <input class="color-picker-hex" type="text" maxlength="7" placeholder="<?php esc_attr_e( 'Hex Value' ); ?>"<?php echo $default_attr; ?> />
                        </div>
                        <div class="customize-control-content">
                                <input class="color-picker-hex" type="text" maxlength="7" placeholder="<?php esc_attr_e( 'Hex Value' ); ?>"<?php echo $default_attr; ?> />
                        </div>
@@ -458,7 +580,12 @@ class WP_Customize_Upload_Control extends WP_Customize_Control {
        public function render_content() {
                ?>
                <label>
        public function render_content() {
                ?>
                <label>
-                       <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                       <?php if ( ! empty( $this->label ) ) : ?>
+                               <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                       <?php endif;
+                       if ( ! empty( $this->description ) ) : ?>
+                               <span class="description customize-control-description"><?php echo $this->description; ?></span>
+                       <?php endif; ?>
                        <div>
                                <a href="#" class="button-secondary upload"><?php _e( 'Upload' ); ?></a>
                                <a href="#" class="remove"><?php _e( 'Remove' ); ?></a>
                        <div>
                                <a href="#" class="button-secondary upload"><?php _e( 'Upload' ); ?></a>
                                <a href="#" class="remove"><?php _e( 'Remove' ); ?></a>
@@ -540,7 +667,12 @@ class WP_Customize_Image_Control extends WP_Customize_Upload_Control {
 
                ?>
                <div class="customize-image-picker">
 
                ?>
                <div class="customize-image-picker">
-                       <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                       <?php if ( ! empty( $this->label ) ) : ?>
+                               <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
+                       <?php endif;
+                       if ( ! empty( $this->description ) ) : ?>
+                               <span class="description customize-control-description"><?php echo $this->description; ?></span>
+                       <?php endif; ?>
 
                        <div class="customize-control-content">
                                <div class="dropdown preview-thumbnail" tabindex="0">
 
                        <div class="customize-control-content">
                                <div class="dropdown preview-thumbnail" tabindex="0">
@@ -610,7 +742,7 @@ class WP_Customize_Image_Control extends WP_Customize_Upload_Control {
         */
        public function tab_upload_new() {
                if ( ! _device_can_upload() ) {
         */
        public function tab_upload_new() {
                if ( ! _device_can_upload() ) {
-                       echo '<p>' . sprintf( __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://wordpress.org/mobile/' ) . '</p>';
+                       echo '<p>' . sprintf( __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://apps.wordpress.org/' ) . '</p>';
                } else {
                        ?>
                        <div class="upload-dropzone">
                } else {
                        ?>
                        <div class="upload-dropzone">
@@ -853,11 +985,11 @@ class WP_Customize_Header_Image_Control extends WP_Customize_Image_Control {
                        <p class="customizer-section-intro">
                                <?php
                                if ( $width && $height ) {
                        <p class="customizer-section-intro">
                                <?php
                                if ( $width && $height ) {
-                                       printf( __( 'While you can crop images to your liking after clicking <strong>Add new</strong>, your theme recommends a header size of <strong>%s &times; %s</strong> pixels.' ), $width, $height );
+                                       printf( __( 'While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header size of <strong>%s &times; %s</strong> pixels.' ), $width, $height );
                                } elseif ( $width ) {
                                } elseif ( $width ) {
-                                       printf( __( 'While you can crop images to your liking after clicking <strong>Add new</strong>, your theme recommends a header width of <strong>%s</strong> pixels.' ), $width );
+                                       printf( __( 'While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header width of <strong>%s</strong> pixels.' ), $width );
                                } else {
                                } else {
-                                       printf( __( 'While you can crop images to your liking after clicking <strong>Add new</strong>, your theme recommends a header height of <strong>%s</strong> pixels.' ), $height );
+                                       printf( __( 'While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header height of <strong>%s</strong> pixels.' ), $height );
                                }
                                ?>
                        </p>
                                }
                                ?>
                        </p>
@@ -924,6 +1056,18 @@ class WP_Widget_Area_Customize_Control extends WP_Customize_Control {
                </span>
                <?php
        }
                </span>
                <?php
        }
+
+       /**
+        * Whether the current sidebar is rendered on the page.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @return bool Whether sidebar is rendered.
+        */
+       public function active_callback() {
+               return $this->manager->widgets->is_sidebar_rendered( $this->sidebar_id );
+       }
 }
 
 /**
 }
 
 /**
@@ -964,5 +1108,17 @@ class WP_Widget_Form_Customize_Control extends WP_Customize_Control {
                $args = wp_list_widget_controls_dynamic_sidebar( array( 0 => $args, 1 => $widget['params'][0] ) );
                echo $this->manager->widgets->get_widget_control( $args );
        }
                $args = wp_list_widget_controls_dynamic_sidebar( array( 0 => $args, 1 => $widget['params'][0] ) );
                echo $this->manager->widgets->get_widget_control( $args );
        }
+
+       /**
+        * Whether the current widget is rendered on the page.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @return bool Whether the widget is rendered.
+        */
+       function active_callback() {
+               return $this->manager->widgets->is_widget_rendered( $this->widget_id );
+       }
 }
 
 }
 
index 8ed4e699a5b5da4072108dccde2c6e73aceb2125..4465a80545c5bfcef01059d320dd6300b2b43921 100644 (file)
@@ -16,7 +16,7 @@
  */
 final class WP_Customize_Manager {
        /**
  */
 final class WP_Customize_Manager {
        /**
-        * An instance of the theme that is being customized.
+        * An instance of the theme being previewed.
         *
         * @var WP_Theme
         */
         *
         * @var WP_Theme
         */
@@ -30,8 +30,7 @@ final class WP_Customize_Manager {
        protected $original_stylesheet;
 
        /**
        protected $original_stylesheet;
 
        /**
-        * Whether filters have been set to change the active theme to the theme being
-        * customized.
+        * Whether this is a Customizer pageload.
         *
         * @var boolean
         */
         *
         * @var boolean
         */
@@ -44,9 +43,11 @@ final class WP_Customize_Manager {
         */
        public $widgets;
 
         */
        public $widgets;
 
-       protected $settings = array();
-       protected $sections = array();
-       protected $controls = array();
+       protected $settings   = array();
+       protected $containers = array();
+       protected $panels     = array();
+       protected $sections   = array();
+       protected $controls   = array();
 
        protected $nonce_tick;
 
 
        protected $nonce_tick;
 
@@ -66,6 +67,7 @@ final class WP_Customize_Manager {
         */
        public function __construct() {
                require( ABSPATH . WPINC . '/class-wp-customize-setting.php' );
         */
        public function __construct() {
                require( ABSPATH . WPINC . '/class-wp-customize-setting.php' );
+               require( ABSPATH . WPINC . '/class-wp-customize-panel.php' );
                require( ABSPATH . WPINC . '/class-wp-customize-section.php' );
                require( ABSPATH . WPINC . '/class-wp-customize-control.php' );
                require( ABSPATH . WPINC . '/class-wp-customize-widgets.php' );
                require( ABSPATH . WPINC . '/class-wp-customize-section.php' );
                require( ABSPATH . WPINC . '/class-wp-customize-control.php' );
                require( ABSPATH . WPINC . '/class-wp-customize-widgets.php' );
@@ -156,8 +158,9 @@ final class WP_Customize_Manager {
 
                show_admin_bar( false );
 
 
                show_admin_bar( false );
 
-               if ( ! current_user_can( 'edit_theme_options' ) )
+               if ( ! current_user_can( 'customize' ) ) {
                        $this->wp_die( -1 );
                        $this->wp_die( -1 );
+               }
 
                $this->original_stylesheet = get_stylesheet();
 
 
                $this->original_stylesheet = get_stylesheet();
 
@@ -181,7 +184,6 @@ final class WP_Customize_Manager {
                                $this->wp_die( -1 );
                }
 
                                $this->wp_die( -1 );
                }
 
-               // All good, let's do some internal business to preview the theme.
                $this->start_previewing_theme();
        }
 
                $this->start_previewing_theme();
        }
 
@@ -190,7 +192,7 @@ final class WP_Customize_Manager {
         *
         * @since 3.4.0
         */
         *
         * @since 3.4.0
         */
-       function after_setup_theme() {
+       public function after_setup_theme() {
                if ( ! $this->doing_ajax() && ! validate_current_theme() ) {
                        wp_redirect( 'themes.php?broken=true' );
                        exit;
                if ( ! $this->doing_ajax() && ! validate_current_theme() ) {
                        wp_redirect( 'themes.php?broken=true' );
                        exit;
@@ -198,7 +200,8 @@ final class WP_Customize_Manager {
        }
 
        /**
        }
 
        /**
-        * Start previewing the selected theme by adding filters to change the current theme.
+        * If the theme to be previewed isn't the active theme, add filter callbacks
+        * to swap it out at runtime.
         *
         * @since 3.4.0
         */
         *
         * @since 3.4.0
         */
@@ -303,6 +306,17 @@ final class WP_Customize_Manager {
                return $this->controls;
        }
 
                return $this->controls;
        }
 
+       /**
+        * Get the registered containers.
+        *
+        * @since 4.0.0
+        *
+        * @return array
+        */
+       public function containers() {
+               return $this->containers;
+       }
+
        /**
         * Get the registered sections.
         *
        /**
         * Get the registered sections.
         *
@@ -314,6 +328,18 @@ final class WP_Customize_Manager {
                return $this->sections;
        }
 
                return $this->sections;
        }
 
+       /**
+        * Get the registered panels.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @return array Panels.
+        */
+       public function panels() {
+               return $this->panels;
+       }
+
        /**
         * Checks if the current theme is active.
         *
        /**
         * Checks if the current theme is active.
         *
@@ -394,6 +420,7 @@ final class WP_Customize_Manager {
                $this->prepare_controls();
 
                wp_enqueue_script( 'customize-preview' );
                $this->prepare_controls();
 
                wp_enqueue_script( 'customize-preview' );
+               add_action( 'wp', array( $this, 'customize_preview_override_404_status' ) );
                add_action( 'wp_head', array( $this, 'customize_preview_base' ) );
                add_action( 'wp_head', array( $this, 'customize_preview_html5' ) );
                add_action( 'wp_footer', array( $this, 'customize_preview_settings' ), 20 );
                add_action( 'wp_head', array( $this, 'customize_preview_base' ) );
                add_action( 'wp_head', array( $this, 'customize_preview_html5' ) );
                add_action( 'wp_footer', array( $this, 'customize_preview_settings' ), 20 );
@@ -415,6 +442,19 @@ final class WP_Customize_Manager {
                do_action( 'customize_preview_init', $this );
        }
 
                do_action( 'customize_preview_init', $this );
        }
 
+       /**
+        * Prevent sending a 404 status when returning the response for the customize
+        * preview, since it causes the jQuery AJAX to fail. Send 200 instead.
+        *
+        * @since 4.0.0
+        * @access public
+        */
+       public function customize_preview_override_404_status() {
+               if ( is_404() ) {
+                       status_header( 200 );
+               }
+       }
+
        /**
         * Print base element for preview frame.
         *
        /**
         * Print base element for preview frame.
         *
@@ -450,7 +490,8 @@ final class WP_Customize_Manager {
        public function customize_preview_settings() {
                $settings = array(
                        'values'  => array(),
        public function customize_preview_settings() {
                $settings = array(
                        'values'  => array(),
-                       'channel' => esc_js( $_POST['customize_messenger_channel'] ),
+                       'channel' => wp_unslash( $_POST['customize_messenger_channel'] ),
+                       'activeControls' => array(),
                );
 
                if ( 2 == $this->nonce_tick ) {
                );
 
                if ( 2 == $this->nonce_tick ) {
@@ -463,6 +504,9 @@ final class WP_Customize_Manager {
                foreach ( $this->settings as $id => $setting ) {
                        $settings['values'][ $id ] = $setting->js_value();
                }
                foreach ( $this->settings as $id => $setting ) {
                        $settings['values'][ $id ] = $setting->js_value();
                }
+               foreach ( $this->controls as $id => $control ) {
+                       $settings['activeControls'][ $id ] = $control->active();
+               }
 
                ?>
                <script type="text/javascript">
 
                ?>
                <script type="text/javascript">
@@ -647,6 +691,53 @@ final class WP_Customize_Manager {
                unset( $this->settings[ $id ] );
        }
 
                unset( $this->settings[ $id ] );
        }
 
+       /**
+        * Add a customize panel.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param WP_Customize_Panel|string $id   Customize Panel object, or Panel ID.
+        * @param array                     $args Optional. Panel arguments. Default empty array.
+        */
+       public function add_panel( $id, $args = array() ) {
+               if ( is_a( $id, 'WP_Customize_Panel' ) ) {
+                       $panel = $id;
+               }
+               else {
+                       $panel = new WP_Customize_Panel( $this, $id, $args );
+               }
+
+               $this->panels[ $panel->id ] = $panel;
+       }
+
+       /**
+        * Retrieve a customize panel.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $id Panel ID to get.
+        * @return WP_Customize_Panel Requested panel instance.
+        */
+       public function get_panel( $id ) {
+               if ( isset( $this->panels[ $id ] ) ) {
+                       return $this->panels[ $id ];
+               }
+       }
+
+       /**
+        * Remove a customize panel.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $id Panel ID to remove.
+        */
+       public function remove_panel( $id ) {
+               unset( $this->panels[ $id ] );
+       }
+
        /**
         * Add a customize section.
         *
        /**
         * Add a customize section.
         *
@@ -749,7 +840,7 @@ final class WP_Customize_Manager {
        }
 
        /**
        }
 
        /**
-        * Prepare settings and sections.
+        * Prepare panels, sections, and controls.
         *
         * For each, check if required related components exist,
         * whether the user has the necessary capabilities,
         *
         * For each, check if required related components exist,
         * whether the user has the necessary capabilities,
@@ -763,8 +854,9 @@ final class WP_Customize_Manager {
                $controls = array();
 
                foreach ( $this->controls as $id => $control ) {
                $controls = array();
 
                foreach ( $this->controls as $id => $control ) {
-                       if ( ! isset( $this->sections[ $control->section ] ) || ! $control->check_capabilities() )
+                       if ( ! isset( $this->sections[ $control->section ] ) || ! $control->check_capabilities() ) {
                                continue;
                                continue;
+                       }
 
                        $this->sections[ $control->section ]->controls[] = $control;
                        $controls[ $id ] = $control;
 
                        $this->sections[ $control->section ]->controls[] = $control;
                        $controls[ $id ] = $control;
@@ -778,13 +870,43 @@ final class WP_Customize_Manager {
                $sections = array();
 
                foreach ( $this->sections as $section ) {
                $sections = array();
 
                foreach ( $this->sections as $section ) {
-                       if ( ! $section->check_capabilities() || ! $section->controls )
+                       if ( ! $section->check_capabilities() || ! $section->controls ) {
                                continue;
                                continue;
+                       }
 
                        usort( $section->controls, array( $this, '_cmp_priority' ) );
 
                        usort( $section->controls, array( $this, '_cmp_priority' ) );
-                       $sections[] = $section;
+
+                       if ( ! $section->panel ) {
+                               // Top-level section.
+                               $sections[] = $section;
+                       } else {
+                               // This section belongs to a panel.
+                               if ( isset( $this->panels [ $section->panel ] ) ) {
+                                       $this->panels[ $section->panel ]->sections[] = $section;
+                               }
+                       }
                }
                $this->sections = $sections;
                }
                $this->sections = $sections;
+
+               // Prepare panels.
+               // Reversing makes uasort sort by time added when conflicts occur.
+               $this->panels = array_reverse( $this->panels );
+               uasort( $this->panels, array( $this, '_cmp_priority' ) );
+               $panels = array();
+
+               foreach ( $this->panels as $panel ) {
+                       if ( ! $panel->check_capabilities() || ! $panel->sections ) {
+                               continue;
+                       }
+
+                       usort( $panel->sections, array( $this, '_cmp_priority' ) );
+                       $panels[] = $panel;
+               }
+               $this->panels = $panels;
+
+               // Sort panels and top-level sections together.
+               $this->containers = array_merge( $this->panels, $this->sections );
+               uasort( $this->containers, array( $this, '_cmp_priority' ) );
        }
 
        /**
        }
 
        /**
@@ -919,7 +1041,7 @@ final class WP_Customize_Manager {
                $this->add_control( new WP_Customize_Background_Image_Control( $this ) );
 
                $this->add_setting( 'background_repeat', array(
                $this->add_control( new WP_Customize_Background_Image_Control( $this ) );
 
                $this->add_setting( 'background_repeat', array(
-                       'default'        => 'repeat',
+                       'default'        => get_theme_support( 'custom-background', 'default-repeat' ),
                        'theme_supports' => 'custom-background',
                ) );
 
                        'theme_supports' => 'custom-background',
                ) );
 
@@ -936,7 +1058,7 @@ final class WP_Customize_Manager {
                ) );
 
                $this->add_setting( 'background_position_x', array(
                ) );
 
                $this->add_setting( 'background_position_x', array(
-                       'default'        => 'left',
+                       'default'        => get_theme_support( 'custom-background', 'default-position-x' ),
                        'theme_supports' => 'custom-background',
                ) );
 
                        'theme_supports' => 'custom-background',
                ) );
 
@@ -952,7 +1074,7 @@ final class WP_Customize_Manager {
                ) );
 
                $this->add_setting( 'background_attachment', array(
                ) );
 
                $this->add_setting( 'background_attachment', array(
-                       'default'        => 'fixed',
+                       'default'        => get_theme_support( 'custom-background', 'default-attachment' ),
                        'theme_supports' => 'custom-background',
                ) );
 
                        'theme_supports' => 'custom-background',
                ) );
 
@@ -961,8 +1083,8 @@ final class WP_Customize_Manager {
                        'section'    => 'background_image',
                        'type'       => 'radio',
                        'choices'    => array(
                        'section'    => 'background_image',
                        'type'       => 'radio',
                        'choices'    => array(
-                               'fixed'      => __('Fixed'),
                                'scroll'     => __('Scroll'),
                                'scroll'     => __('Scroll'),
+                               'fixed'      => __('Fixed'),
                        ),
                ) );
 
                        ),
                ) );
 
@@ -978,7 +1100,6 @@ final class WP_Customize_Manager {
 
                $locations      = get_registered_nav_menus();
                $menus          = wp_get_nav_menus();
 
                $locations      = get_registered_nav_menus();
                $menus          = wp_get_nav_menus();
-               $menu_locations = get_nav_menu_locations();
                $num_locations  = count( array_keys( $locations ) );
 
                $this->add_section( 'nav', array(
                $num_locations  = count( array_keys( $locations ) );
 
                $this->add_section( 'nav', array(
@@ -1084,7 +1205,7 @@ final class WP_Customize_Manager {
 
                return $color;
        }
 
                return $color;
        }
-};
+}
 
 /**
  * Sanitizes a hex color.
 
 /**
  * Sanitizes a hex color.
diff --git a/wp-includes/class-wp-customize-panel.php b/wp-includes/class-wp-customize-panel.php
new file mode 100644 (file)
index 0000000..8f85049
--- /dev/null
@@ -0,0 +1,200 @@
+<?php
+/**
+ * Customize Panel Class.
+ *
+ * A UI container for sections, managed by the WP_Customize_Manager.
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 4.0.0
+ */
+class WP_Customize_Panel {
+
+       /**
+        * WP_Customize_Manager instance.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var WP_Customize_Manager
+        */
+       public $manager;
+
+       /**
+        * Unique identifier.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var string
+        */
+       public $id;
+
+       /**
+        * Priority of the panel, defining the display order of panels and sections.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var integer
+        */
+       public $priority = 160;
+
+       /**
+        * Capability required for the panel.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var string
+        */
+       public $capability = 'edit_theme_options';
+
+       /**
+        * Theme feature support for the panel.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var string|array
+        */
+       public $theme_supports = '';
+
+       /**
+        * Title of the panel to show in UI.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var string
+        */
+       public $title = '';
+
+       /**
+        * Description to show in the UI.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var string
+        */
+       public $description = '';
+
+       /**
+        * Customizer sections for this panel.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var array
+        */
+       public $sections;
+
+       /**
+        * Constructor.
+        *
+        * Any supplied $args override class property defaults.
+        *
+        * @since 4.0.0
+        *
+        * @param WP_Customize_Manager $manager Customizer bootstrap instance.
+        * @param string               $id      An specific ID for the panel.
+        * @param array                $args    Panel arguments.
+        */
+       public function __construct( $manager, $id, $args = array() ) {
+               $keys = array_keys( get_object_vars( $this ) );
+               foreach ( $keys as $key ) {
+                       if ( isset( $args[ $key ] ) ) {
+                               $this->$key = $args[ $key ];
+                       }
+               }
+
+               $this->manager = $manager;
+               $this->id = $id;
+
+               $this->sections = array(); // Users cannot customize the $sections array.
+
+               return $this;
+       }
+
+       /**
+        * Checks required user capabilities and whether the theme has the
+        * feature support required by the panel.
+        *
+        * @since 4.0.0
+        *
+        * @return bool False if theme doesn't support the panel or the user doesn't have the capability.
+        */
+       public final function check_capabilities() {
+               if ( $this->capability && ! call_user_func_array( 'current_user_can', (array) $this->capability ) ) {
+                       return false;
+               }
+
+               if ( $this->theme_supports && ! call_user_func_array( 'current_theme_supports', (array) $this->theme_supports ) ) {
+                       return false;
+               }
+
+               return true;
+       }
+
+       /**
+        * Check capabilities and render the panel.
+        *
+        * @since 4.0.0
+        */
+       public final function maybe_render() {
+               if ( ! $this->check_capabilities() ) {
+                       return;
+               }
+
+               /**
+                * Fires before rendering a Customizer panel.
+                *
+                * @since 4.0.0
+                *
+                * @param WP_Customize_Panel $this WP_Customize_Panel instance.
+                */
+               do_action( 'customize_render_panel', $this );
+
+               /**
+                * Fires before rendering a specific Customizer panel.
+                *
+                * The dynamic portion of the hook name, $this->id, refers to the ID
+                * of the specific Customizer panel to be rendered.
+                *
+                * @since 4.0.0
+                */
+               do_action( "customize_render_panel_{$this->id}" );
+
+               $this->render();
+       }
+
+       /**
+        * Render the panel, and the sections that have been added to it.
+        *
+        * @since 4.0.0
+        * @access protected
+        */
+       protected function render() {
+               ?>
+               <li id="accordion-panel-<?php echo esc_attr( $this->id ); ?>" class="control-section control-panel accordion-section">
+                       <h3 class="accordion-section-title" tabindex="0">
+                               <?php echo esc_html( $this->title ); ?>
+                               <span class="screen-reader-text"><?php _e( 'Press return or enter to open this panel' ); ?></span>
+                       </h3>
+                       <ul class="accordion-sub-container control-panel-content">
+                               <li class="accordion-section control-section<?php if ( empty( $this->description ) ) echo ' cannot-expand'; ?>">
+                                       <div class="accordion-section-title" tabindex="0">
+                                               <span class="preview-notice"><?php
+                                                       /* translators: %s is the site/panel title in the Customizer */
+                                                       echo sprintf( __( 'You are customizing %s' ), '<strong class="panel-title">' . esc_html( $this->title ) . '</strong>' );
+                                               ?></span>
+                                       </div>
+                                       <?php if ( ! empty( $this->description ) ) : ?>
+                                               <div class="accordion-section-content description">
+                                                       <?php echo $this->description; ?>
+                                               </div>
+                                       <?php endif; ?>
+                               </li>
+                               <?php
+                               foreach ( $this->sections as $section ) {
+                                       $section->maybe_render();
+                               }
+                               ?>
+                       </ul>
+               </li>
+               <?php
+       }
+}
\ No newline at end of file
index e96f3865e7971907a013b7872472412136f02be6..d740ddba625c74c3bbfd39525d3e31e396359bdc 100644 (file)
@@ -35,7 +35,16 @@ class WP_Customize_Section {
         * @access public
         * @var integer
         */
         * @access public
         * @var integer
         */
-       public $priority = 10;
+       public $priority = 160;
+
+       /**
+        * Panel in which to show the section, making it a sub-section.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var string
+        */
+       public $panel = '';
 
        /**
         * Capability required for the section.
 
        /**
         * Capability required for the section.
@@ -93,8 +102,8 @@ class WP_Customize_Section {
         * @param string               $id      An specific ID of the section.
         * @param array                $args    Section arguments.
         */
         * @param string               $id      An specific ID of the section.
         * @param array                $args    Section arguments.
         */
-       function __construct( $manager, $id, $args = array() ) {
-               $keys = array_keys( get_class_vars( __CLASS__ ) );
+       public function __construct( $manager, $id, $args = array() ) {
+               $keys = array_keys( get_object_vars( $this ) );
                foreach ( $keys as $key ) {
                        if ( isset( $args[ $key ] ) )
                                $this->$key = $args[ $key ];
                foreach ( $keys as $key ) {
                        if ( isset( $args[ $key ] ) )
                                $this->$key = $args[ $key ];
@@ -162,12 +171,19 @@ class WP_Customize_Section {
         * @since 3.4.0
         */
        protected function render() {
         * @since 3.4.0
         */
        protected function render() {
+               $classes = 'control-section accordion-section';
+               if ( $this->panel ) {
+                       $classes .= ' control-subsection';
+               }
                ?>
                ?>
-               <li id="accordion-section-<?php echo esc_attr( $this->id ); ?>" class="control-section accordion-section">
-                       <h3 class="accordion-section-title" tabindex="0"><?php echo esc_html( $this->title ); ?></h3>
+               <li id="accordion-section-<?php echo esc_attr( $this->id ); ?>" class="<?php echo esc_attr( $classes ); ?>">
+                       <h3 class="accordion-section-title" tabindex="0">
+                               <?php echo esc_html( $this->title ); ?>
+                               <span class="screen-reader-text"><?php _e( 'Press return or enter to expand' ); ?></span>
+                       </h3>
                        <ul class="accordion-section-content">
                                <?php if ( ! empty( $this->description ) ) : ?>
                        <ul class="accordion-section-content">
                                <?php if ( ! empty( $this->description ) ) : ?>
-                               <li><p class="description"><?php echo $this->description; ?></p></li>
+                               <li><p class="description customize-section-description"><?php echo $this->description; ?></p></li>
                                <?php endif; ?>
                                <?php
                                foreach ( $this->controls as $control )
                                <?php endif; ?>
                                <?php
                                foreach ( $this->controls as $control )
index bf75426a138d71925dbb416d1e00008784539791..a516b218645bde37cd280c6f2f145a6fe8672466 100644 (file)
@@ -75,8 +75,8 @@ class WP_Customize_Setting {
         * @param array                $args    Setting arguments.
         * @return WP_Customize_Setting $setting
         */
         * @param array                $args    Setting arguments.
         * @return WP_Customize_Setting $setting
         */
-       function __construct( $manager, $id, $args = array() ) {
-               $keys = array_keys( get_class_vars( __CLASS__ ) );
+       public function __construct( $manager, $id, $args = array() ) {
+               $keys = array_keys( get_object_vars( $this ) );
                foreach ( $keys as $key ) {
                        if ( isset( $args[ $key ] ) )
                                $this->$key = $args[ $key ];
                foreach ( $keys as $key ) {
                        if ( isset( $args[ $key ] ) )
                                $this->$key = $args[ $key ];
@@ -130,8 +130,10 @@ class WP_Customize_Setting {
                                 * The dynamic portion of the hook name, $this->id, refers to the setting ID.
                                 *
                                 * @since 3.4.0
                                 * The dynamic portion of the hook name, $this->id, refers to the setting ID.
                                 *
                                 * @since 3.4.0
+                                *
+                                * @param WP_Customize_Setting $this WP_Customize_Setting instance.
                                 */
                                 */
-                               do_action( 'customize_preview_' . $this->id );
+                               do_action( 'customize_preview_' . $this->id, $this );
                }
        }
 
                }
        }
 
@@ -163,15 +165,16 @@ class WP_Customize_Setting {
                        return false;
 
                /**
                        return false;
 
                /**
-                * Fires when the WP_Customize_Setting::save() method is called for settings
-                * not handled as theme_mods or options.
+                * Fires when the WP_Customize_Setting::save() method is called.
                 *
                 * The dynamic portion of the hook name, $this->id_data['base'] refers to
                 * the base slug of the setting name.
                 *
                 * @since 3.4.0
                 *
                 * The dynamic portion of the hook name, $this->id_data['base'] refers to
                 * the base slug of the setting name.
                 *
                 * @since 3.4.0
+                *
+                * @param WP_Customize_Setting $this WP_Customize_Setting instance.
                 */
                 */
-               do_action( 'customize_save_' . $this->id_data[ 'base' ] );
+               do_action( 'customize_save_' . $this->id_data[ 'base' ], $this );
 
                $this->update( $value );
        }
 
                $this->update( $value );
        }
@@ -232,10 +235,10 @@ class WP_Customize_Setting {
                switch( $this->type ) {
                        case 'theme_mod' :
                                return $this->_update_theme_mod( $value );
                switch( $this->type ) {
                        case 'theme_mod' :
                                return $this->_update_theme_mod( $value );
-                               break;
+
                        case 'option' :
                                return $this->_update_option( $value );
                        case 'option' :
                                return $this->_update_option( $value );
-                               break;
+
                        default :
 
                                /**
                        default :
 
                                /**
@@ -246,9 +249,10 @@ class WP_Customize_Setting {
                                 *
                                 * @since 3.4.0
                                 *
                                 *
                                 * @since 3.4.0
                                 *
-                                * @param mixed $value Value of the setting.
+                                * @param mixed                $value Value of the setting.
+                                * @param WP_Customize_Setting $this  WP_Customize_Setting instance.
                                 */
                                 */
-                               return do_action( 'customize_update_' . $this->type, $value );
+                               return do_action( 'customize_update_' . $this->type, $value, $this );
                }
        }
 
                }
        }
 
index 40663f29379c575ae1d489098bb1a7045d66ca49..4413ee6b9de531a00621ac9d5a581cc3e793fa3e 100644 (file)
@@ -433,6 +433,12 @@ final class WP_Customize_Widgets {
                        $this->manager->add_setting( $setting_id, $setting_args );
                }
 
                        $this->manager->add_setting( $setting_id, $setting_args );
                }
 
+               $this->manager->add_panel( 'widgets', array(
+                       'title'       => __( 'Widgets' ),
+                       'description' => __( 'Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars).' ),
+                       'priority'    => 110,
+               ) );
+
                foreach ( $sidebars_widgets as $sidebar_id => $sidebar_widget_ids ) {
                        if ( empty( $sidebar_widget_ids ) ) {
                                $sidebar_widget_ids = array();
                foreach ( $sidebars_widgets as $sidebar_id => $sidebar_widget_ids ) {
                        if ( empty( $sidebar_widget_ids ) ) {
                                $sidebar_widget_ids = array();
@@ -458,10 +464,10 @@ final class WP_Customize_Widgets {
                                if ( $is_active_sidebar ) {
 
                                        $section_args = array(
                                if ( $is_active_sidebar ) {
 
                                        $section_args = array(
-                                               /* translators: %s: sidebar name */
-                                               'title' => sprintf( __( 'Widgets: %s' ), $GLOBALS['wp_registered_sidebars'][$sidebar_id]['name'] ),
-                                               'description' => $GLOBALS['wp_registered_sidebars'][$sidebar_id]['description'],
-                                               'priority' => 1000 + array_search( $sidebar_id, array_keys( $wp_registered_sidebars ) ),
+                                               'title' => $GLOBALS['wp_registered_sidebars'][ $sidebar_id ]['name'],
+                                               'description' => $GLOBALS['wp_registered_sidebars'][ $sidebar_id ]['description'],
+                                               'priority' => array_search( $sidebar_id, array_keys( $wp_registered_sidebars ) ),
+                                               'panel' => 'widgets',
                                        );
 
                                        /**
                                        );
 
                                        /**
@@ -1063,7 +1069,33 @@ final class WP_Customize_Widgets {
         * @param array $widget Rendered widget to tally.
         */
        public function tally_rendered_widgets( $widget ) {
         * @param array $widget Rendered widget to tally.
         */
        public function tally_rendered_widgets( $widget ) {
-               $this->rendered_widgets[$widget['id']] = true;
+               $this->rendered_widgets[ $widget['id'] ] = true;
+       }
+
+       /**
+        * Determine if a widget is rendered on the page.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $widget_id Widget ID to check.
+        * @return bool Whether the widget is rendered.
+        */
+       public function is_widget_rendered( $widget_id ) {
+               return in_array( $widget_id, $this->rendered_widgets );
+       }
+
+       /**
+        * Determine if a sidebar is rendered on the page.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $sidebar_id Sidebar ID to check.
+        * @return bool Whether the sidebar is rendered.
+        */
+       public function is_sidebar_rendered( $sidebar_id ) {
+               return in_array( $sidebar_id, $this->rendered_sidebars );
        }
 
        /**
        }
 
        /**
@@ -1077,8 +1109,8 @@ final class WP_Customize_Widgets {
         * @since 3.9.0
         * @access public
         *
         * @since 3.9.0
         * @access public
         *
-        * @param bool    $is_active  Whether the sidebar is active.
-        * @pasram string $sidebar_id Sidebar ID.
+        * @param bool   $is_active  Whether the sidebar is active.
+        * @param string $sidebar_id Sidebar ID.
         */
        public function tally_sidebars_via_is_active_sidebar_calls( $is_active, $sidebar_id ) {
                if ( isset( $GLOBALS['wp_registered_sidebars'][$sidebar_id] ) ) {
         */
        public function tally_sidebars_via_is_active_sidebar_calls( $is_active, $sidebar_id ) {
                if ( isset( $GLOBALS['wp_registered_sidebars'][$sidebar_id] ) ) {
index b74e76276e67aecf07cb1bdbe5ae657ac96e485d..200031bbdcbce014a4d5c6e2c33daf97a1bc1a0b 100644 (file)
@@ -62,7 +62,20 @@ final class _WP_Editors {
         * @return array Parsed arguments array.
         */
        public static function parse_settings( $editor_id, $settings ) {
         * @return array Parsed arguments array.
         */
        public static function parse_settings( $editor_id, $settings ) {
-               $set = wp_parse_args( $settings,  array(
+
+               /**
+                * Filter the wp_editor() settings.
+                *
+                * @since 4.0.0
+                *
+                * @see _WP_Editors()::parse_settings()
+                *
+                * @param array  $settings  Array of editor arguments.
+                * @param string $editor_id ID for the current editor instance.
+                */
+               $settings = apply_filters( 'wp_editor_settings', $settings, $editor_id );
+
+               $set = wp_parse_args( $settings, array(
                        'wpautop'           => true,
                        'media_buttons'     => true,
                        'default_editor'    => '',
                        'wpautop'           => true,
                        'media_buttons'     => true,
                        'default_editor'    => '',
@@ -99,7 +112,7 @@ final class _WP_Editors {
                if ( empty( $set['editor_height'] ) )
                        return $set;
 
                if ( empty( $set['editor_height'] ) )
                        return $set;
 
-               if ( 'content' === $editor_id ) {
+               if ( 'content' === $editor_id && empty( $set['tinymce']['wp_autoresize_on'] ) ) {
                        // A cookie (set when a user resizes the editor) overrides the height.
                        $cookie = (int) get_user_setting( 'ed_size' );
 
                        // A cookie (set when a user resizes the editor) overrides the height.
                        $cookie = (int) get_user_setting( 'ed_size' );
 
@@ -303,7 +316,7 @@ final class _WP_Editors {
                                         * @param array  $plugins   An array of teenyMCE plugins.
                                         * @param string $editor_id Unique editor identifier, e.g. 'content'.
                                         */
                                         * @param array  $plugins   An array of teenyMCE plugins.
                                         * @param string $editor_id Unique editor identifier, e.g. 'content'.
                                         */
-                                       self::$plugins = $plugins = apply_filters( 'teeny_mce_plugins', array( 'fullscreen', 'image', 'wordpress', 'wpeditimage', 'wplink' ), $editor_id );
+                                       self::$plugins = $plugins = apply_filters( 'teeny_mce_plugins', array( 'colorpicker', 'lists', 'fullscreen', 'image', 'wordpress', 'wpeditimage', 'wplink' ), $editor_id );
                                } else {
 
                                        /**
                                } else {
 
                                        /**
@@ -327,13 +340,16 @@ final class _WP_Editors {
 
                                        $plugins = array(
                                                'charmap',
 
                                        $plugins = array(
                                                'charmap',
+                                               'colorpicker',
                                                'hr',
                                                'hr',
+                                               'lists',
                                                'media',
                                                'paste',
                                                'tabfocus',
                                                'textcolor',
                                                'fullscreen',
                                                'wordpress',
                                                'media',
                                                'paste',
                                                'tabfocus',
                                                'textcolor',
                                                'fullscreen',
                                                'wordpress',
+                                               'wpautoresize',
                                                'wpeditimage',
                                                'wpgallery',
                                                'wplink',
                                                'wpeditimage',
                                                'wpgallery',
                                                'wplink',
@@ -473,7 +489,6 @@ final class _WP_Editors {
                                        'entities' => '38,amp,60,lt,62,gt',
                                        'entity_encoding' => 'raw',
                                        'keep_styles' => false,
                                        'entities' => '38,amp,60,lt,62,gt',
                                        'entity_encoding' => 'raw',
                                        'keep_styles' => false,
-                                       'paste_webkit_styles' => 'font-weight font-style color',
 
                                        // Limit the preview styles in the menu/toolbar
                                        'preview_styles' => 'font-family font-size font-weight font-style text-decoration text-transform',
 
                                        // Limit the preview styles in the menu/toolbar
                                        'preview_styles' => 'font-family font-size font-weight font-style text-decoration text-transform',
@@ -490,47 +505,17 @@ final class _WP_Editors {
                                $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
                                $version = 'ver=' . $GLOBALS['wp_version'];
                                $dashicons = includes_url( "css/dashicons$suffix.css?$version" );
                                $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
                                $version = 'ver=' . $GLOBALS['wp_version'];
                                $dashicons = includes_url( "css/dashicons$suffix.css?$version" );
-                               $mediaelement = includes_url( "js/mediaelement/mediaelementplayer.min.css?$version" );
-                               $wpmediaelement = includes_url( "js/mediaelement/wp-mediaelement.css?$version" );
 
                                // WordPress default stylesheet and dashicons
                                $mce_css = array(
                                        $dashicons,
 
                                // WordPress default stylesheet and dashicons
                                $mce_css = array(
                                        $dashicons,
-                                       $mediaelement,
-                                       $wpmediaelement,
                                        self::$baseurl . '/skins/wordpress/wp-content.css?' . $version
                                );
 
                                        self::$baseurl . '/skins/wordpress/wp-content.css?' . $version
                                );
 
-                               // load editor_style.css if the current theme supports it
-                               if ( ! empty( $GLOBALS['editor_styles'] ) && is_array( $GLOBALS['editor_styles'] ) ) {
-                                       $editor_styles = $GLOBALS['editor_styles'];
-
-                                       $editor_styles = array_unique( array_filter( $editor_styles ) );
-                                       $style_uri = get_stylesheet_directory_uri();
-                                       $style_dir = get_stylesheet_directory();
-
-                                       // Support externally referenced styles (like, say, fonts).
-                                       foreach ( $editor_styles as $key => $file ) {
-                                               if ( preg_match( '~^(https?:)?//~', $file ) ) {
-                                                       $mce_css[] = esc_url_raw( $file );
-                                                       unset( $editor_styles[ $key ] );
-                                               }
-                                       }
-
-                                       // Look in a parent theme first, that way child theme CSS overrides.
-                                       if ( is_child_theme() ) {
-                                               $template_uri = get_template_directory_uri();
-                                               $template_dir = get_template_directory();
-
-                                               foreach ( $editor_styles as $key => $file ) {
-                                                       if ( $file && file_exists( "$template_dir/$file" ) )
-                                                               $mce_css[] = "$template_uri/$file";
-                                               }
-                                       }
-
-                                       foreach ( $editor_styles as $file ) {
-                                               if ( $file && file_exists( "$style_dir/$file" ) )
-                                                       $mce_css[] = "$style_uri/$file";
+                               $editor_styles = get_editor_stylesheets();
+                               if ( ! empty( $editor_styles ) ) {
+                                       foreach ( $editor_styles as $style ) {
+                                               $mce_css[] = $style;
                                        }
                                }
 
                                        }
                                }
 
@@ -944,7 +929,7 @@ final class _WP_Editors {
                        'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.' => __( 'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.' ) . "\n\n" . __( 'If you&#8217;re looking to paste rich content from Microsoft Word, try turning this option off. The editor will clean up text pasted from Word automatically.' ),
                        'Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help' => __( 'Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help' ),
                        'You have unsaved changes are you sure you want to navigate away?' => __( 'The changes you made will be lost if you navigate away from this page.' ),
                        'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.' => __( 'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.' ) . "\n\n" . __( 'If you&#8217;re looking to paste rich content from Microsoft Word, try turning this option off. The editor will clean up text pasted from Word automatically.' ),
                        'Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help' => __( 'Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help' ),
                        'You have unsaved changes are you sure you want to navigate away?' => __( 'The changes you made will be lost if you navigate away from this page.' ),
-                       'Your browser doesn\'t support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.' => __( 'Your browser does not support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.' ),
+                       'Your browser doesn\'t support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.' => __( 'Your browser does not support direct access to the clipboard. Please use keyboard shortcuts or your browser&#8217;s edit menu instead.' ),
 
                        // TinyMCE menus
                        'Insert' => _x( 'Insert', 'TinyMCE menu' ),
 
                        // TinyMCE menus
                        'Insert' => _x( 'Insert', 'TinyMCE menu' ),
@@ -959,6 +944,7 @@ final class _WP_Editors {
                        'Keyboard Shortcuts' => __( 'Keyboard Shortcuts' ),
                        'Toolbar Toggle' => __( 'Toolbar Toggle' ),
                        'Insert Read More tag' => __( 'Insert Read More tag' ),
                        'Keyboard Shortcuts' => __( 'Keyboard Shortcuts' ),
                        'Toolbar Toggle' => __( 'Toolbar Toggle' ),
                        'Insert Read More tag' => __( 'Insert Read More tag' ),
+                       'Read more...' => __( 'Read more...' ), // Title on the placeholder inside the editor
                        'Distraction Free Writing' => __( 'Distraction Free Writing' ),
                );
 
                        'Distraction Free Writing' => __( 'Distraction Free Writing' ),
                );
 
@@ -1390,7 +1376,7 @@ final class _WP_Editors {
                <?php wp_nonce_field( 'internal-linking', '_ajax_linking_nonce', false ); ?>
                <div id="link-modal-title">
                        <?php _e( 'Insert/edit link' ) ?>
                <?php wp_nonce_field( 'internal-linking', '_ajax_linking_nonce', false ); ?>
                <div id="link-modal-title">
                        <?php _e( 'Insert/edit link' ) ?>
-                       <div id="wp-link-close" tabindex="0"></div>
+                       <button type="button" id="wp-link-close"><span class="screen-reader-text"><?php _e( 'Close' ); ?></span></button>
                </div>
                <div id="link-selector">
                        <div id="link-options">
                </div>
                <div id="link-selector">
                        <div id="link-options">
@@ -1405,7 +1391,7 @@ final class _WP_Editors {
                                        <label><span>&nbsp;</span><input type="checkbox" id="link-target-checkbox" /> <?php _e( 'Open link in a new window/tab' ); ?></label>
                                </div>
                        </div>
                                        <label><span>&nbsp;</span><input type="checkbox" id="link-target-checkbox" /> <?php _e( 'Open link in a new window/tab' ); ?></label>
                                </div>
                        </div>
-                       <p class="howto" id="wp-link-search-toggle"><?php _e( 'Or link to existing content' ); ?></p>
+                       <p class="howto"><a href="#" id="wp-link-search-toggle"><?php _e( 'Or link to existing content' ); ?></a></p>
                        <div id="search-panel">
                                <div class="link-search-wrapper">
                                        <label>
                        <div id="search-panel">
                                <div class="link-search-wrapper">
                                        <label>
@@ -1414,14 +1400,17 @@ final class _WP_Editors {
                                                <span class="spinner"></span>
                                        </label>
                                </div>
                                                <span class="spinner"></span>
                                        </label>
                                </div>
-                               <div id="search-results" class="query-results">
+                               <div id="search-results" class="query-results" tabindex="0">
                                        <ul></ul>
                                        <div class="river-waiting">
                                                <span class="spinner"></span>
                                        </div>
                                </div>
                                        <ul></ul>
                                        <div class="river-waiting">
                                                <span class="spinner"></span>
                                        </div>
                                </div>
-                               <div id="most-recent-results" class="query-results">
-                                       <div class="query-notice"><em><?php _e( 'No search term specified. Showing recent items.' ); ?></em></div>
+                               <div id="most-recent-results" class="query-results" tabindex="0">
+                                       <div class="query-notice" id="query-notice-message">
+                                               <em class="query-notice-default"><?php _e( 'No search term specified. Showing recent items.' ); ?></em>
+                                               <em class="query-notice-hint screen-reader-text"><?php _e( 'Search or use up and down arrow keys to select an item.' ); ?></em>
+                                       </div>
                                        <ul></ul>
                                        <div class="river-waiting">
                                                <span class="spinner"></span>
                                        <ul></ul>
                                        <div class="river-waiting">
                                                <span class="spinner"></span>
@@ -1430,12 +1419,12 @@ final class _WP_Editors {
                        </div>
                </div>
                <div class="submitbox">
                        </div>
                </div>
                <div class="submitbox">
-                       <div id="wp-link-update">
-                               <input type="submit" value="<?php esc_attr_e( 'Add Link' ); ?>" class="button button-primary" id="wp-link-submit" name="wp-link-submit">
-                       </div>
                        <div id="wp-link-cancel">
                                <a class="submitdelete deletion" href="#"><?php _e( 'Cancel' ); ?></a>
                        </div>
                        <div id="wp-link-cancel">
                                <a class="submitdelete deletion" href="#"><?php _e( 'Cancel' ); ?></a>
                        </div>
+                       <div id="wp-link-update">
+                               <input type="submit" value="<?php esc_attr_e( 'Add Link' ); ?>" class="button button-primary" id="wp-link-submit" name="wp-link-submit">
+                       </div>
                </div>
                </form>
                </div>
                </div>
                </form>
                </div>
index 66b2820f3f24a28d39b2071c6727e0e94ce8ee30..6b5a51a715b4354dd6f23eb839c2d84538531364 100644 (file)
@@ -7,15 +7,21 @@
  * @since 2.9.0
  */
 class WP_Embed {
  * @since 2.9.0
  */
 class WP_Embed {
-       var $handlers = array();
-       var $post_ID;
-       var $usecache = true;
-       var $linkifunknown = true;
+       public $handlers = array();
+       public $post_ID;
+       public $usecache = true;
+       public $linkifunknown = true;
+
+       /**
+        * When an URL cannot be embedded, return false instead of returning a link
+        * or the URL. Bypasses the 'embed_maybe_make_link' filter.
+        */
+       public $return_false_on_fail = false;
 
        /**
         * Constructor
         */
 
        /**
         * Constructor
         */
-       function __construct() {
+       public function __construct() {
                // Hack to get the [embed] shortcode to run before wpautop()
                add_filter( 'the_content', array( $this, 'run_shortcode' ), 8 );
 
                // Hack to get the [embed] shortcode to run before wpautop()
                add_filter( 'the_content', array( $this, 'run_shortcode' ), 8 );
 
@@ -25,9 +31,6 @@ class WP_Embed {
                // Attempts to embed all URLs in a post
                add_filter( 'the_content', array( $this, 'autoembed' ), 8 );
 
                // Attempts to embed all URLs in a post
                add_filter( 'the_content', array( $this, 'autoembed' ), 8 );
 
-               // When a post is saved, invalidate the oEmbed cache
-               add_action( 'pre_post_update', array( $this, 'delete_oembed_caches' ) );
-
                // After a post is saved, cache oEmbed items via AJAX
                add_action( 'edit_form_advanced', array( $this, 'maybe_run_ajax_cache' ) );
        }
                // After a post is saved, cache oEmbed items via AJAX
                add_action( 'edit_form_advanced', array( $this, 'maybe_run_ajax_cache' ) );
        }
@@ -47,7 +50,7 @@ class WP_Embed {
         * @param string $content Content to parse
         * @return string Content with shortcode parsed
         */
         * @param string $content Content to parse
         * @return string Content with shortcode parsed
         */
-       function run_shortcode( $content ) {
+       public function run_shortcode( $content ) {
                global $shortcode_tags;
 
                // Back up current registered shortcodes and clear them all out
                global $shortcode_tags;
 
                // Back up current registered shortcodes and clear them all out
@@ -69,10 +72,10 @@ class WP_Embed {
         * If a post/page was saved, then output JavaScript to make
         * an AJAX request that will call WP_Embed::cache_oembed().
         */
         * If a post/page was saved, then output JavaScript to make
         * an AJAX request that will call WP_Embed::cache_oembed().
         */
-       function maybe_run_ajax_cache() {
+       public function maybe_run_ajax_cache() {
                $post = get_post();
 
                $post = get_post();
 
-               if ( ! $post || empty($_GET['message']) || 1 != $_GET['message'] )
+               if ( ! $post || empty( $_GET['message'] ) )
                        return;
 
 ?>
                        return;
 
 ?>
@@ -95,7 +98,7 @@ class WP_Embed {
         * @param callback $callback The callback function that will be called if the regex is matched.
         * @param int $priority Optional. Used to specify the order in which the registered handlers will be tested (default: 10). Lower numbers correspond with earlier testing, and handlers with the same priority are tested in the order in which they were added to the action.
         */
         * @param callback $callback The callback function that will be called if the regex is matched.
         * @param int $priority Optional. Used to specify the order in which the registered handlers will be tested (default: 10). Lower numbers correspond with earlier testing, and handlers with the same priority are tested in the order in which they were added to the action.
         */
-       function register_handler( $id, $regex, $callback, $priority = 10 ) {
+       public function register_handler( $id, $regex, $callback, $priority = 10 ) {
                $this->handlers[$priority][$id] = array(
                        'regex'    => $regex,
                        'callback' => $callback,
                $this->handlers[$priority][$id] = array(
                        'regex'    => $regex,
                        'callback' => $callback,
@@ -108,7 +111,7 @@ class WP_Embed {
         * @param string $id The handler ID that should be removed.
         * @param int $priority Optional. The priority of the handler to be removed (default: 10).
         */
         * @param string $id The handler ID that should be removed.
         * @param int $priority Optional. The priority of the handler to be removed (default: 10).
         */
-       function unregister_handler( $id, $priority = 10 ) {
+       public function unregister_handler( $id, $priority = 10 ) {
                if ( isset($this->handlers[$priority][$id]) )
                        unset($this->handlers[$priority][$id]);
        }
                if ( isset($this->handlers[$priority][$id]) )
                        unset($this->handlers[$priority][$id]);
        }
@@ -139,14 +142,18 @@ class WP_Embed {
         * @param string $url The URL attempting to be embedded.
         * @return string The embed HTML on success, otherwise the original URL.
         */
         * @param string $url The URL attempting to be embedded.
         * @return string The embed HTML on success, otherwise the original URL.
         */
-       function shortcode( $attr, $url = '' ) {
+       public function shortcode( $attr, $url = '' ) {
                $post = get_post();
 
                $post = get_post();
 
+               if ( empty( $url ) && ! empty( $attr['src'] ) ) {
+                       $url = $attr['src'];
+               }
+
                if ( empty( $url ) )
                        return '';
 
                $rawattr = $attr;
                if ( empty( $url ) )
                        return '';
 
                $rawattr = $attr;
-               $attr = wp_parse_args( $attr, wp_embed_defaults() );
+               $attr = wp_parse_args( $attr, wp_embed_defaults( $url ) );
 
                // kses converts & into &amp; and we need to undo this
                // See http://core.trac.wordpress.org/ticket/11311
 
                // kses converts & into &amp; and we need to undo this
                // See http://core.trac.wordpress.org/ticket/11311
@@ -182,15 +189,37 @@ class WP_Embed {
                if ( $post_ID ) {
 
                        // Check for a cached result (stored in the post meta)
                if ( $post_ID ) {
 
                        // Check for a cached result (stored in the post meta)
-                       $cachekey = '_oembed_' . md5( $url . serialize( $attr ) );
-                       if ( $this->usecache ) {
-                               $cache = get_post_meta( $post_ID, $cachekey, true );
+                       $key_suffix = md5( $url . serialize( $attr ) );
+                       $cachekey = '_oembed_' . $key_suffix;
+                       $cachekey_time = '_oembed_time_' . $key_suffix;
+
+                       /**
+                        * Filter the oEmbed TTL value (time to live).
+                        *
+                        * @since 4.0.0
+                        *
+                        * @param int    $time    Time to live (in seconds).
+                        * @param string $url     The attempted embed URL.
+                        * @param array  $attr    An array of shortcode attributes.
+                        * @param int    $post_ID Post ID.
+                        */
+                       $ttl = apply_filters( 'oembed_ttl', DAY_IN_SECONDS, $url, $attr, $post_ID );
 
 
-                               // Failures are cached
+                       $cache = get_post_meta( $post_ID, $cachekey, true );
+                       $cache_time = get_post_meta( $post_ID, $cachekey_time, true );
+
+                       if ( ! $cache_time ) {
+                               $cache_time = 0;
+                       }
+
+                       $cached_recently = ( time() - $cache_time ) < $ttl;
+
+                       if ( $this->usecache || $cached_recently ) {
+                               // Failures are cached. Serve one if we're using the cache.
                                if ( '{{unknown}}' === $cache )
                                        return $this->maybe_make_link( $url );
 
                                if ( '{{unknown}}' === $cache )
                                        return $this->maybe_make_link( $url );
 
-                               if ( ! empty( $cache ) )
+                               if ( ! empty( $cache ) ) {
                                        /**
                                         * Filter the cached oEmbed HTML.
                                         *
                                        /**
                                         * Filter the cached oEmbed HTML.
                                         *
@@ -204,6 +233,7 @@ class WP_Embed {
                                         * @param int    $post_ID Post ID.
                                         */
                                        return apply_filters( 'embed_oembed_html', $cache, $url, $attr, $post_ID );
                                         * @param int    $post_ID Post ID.
                                         */
                                        return apply_filters( 'embed_oembed_html', $cache, $url, $attr, $post_ID );
+                               }
                        }
 
                        /**
                        }
 
                        /**
@@ -213,16 +243,20 @@ class WP_Embed {
                         *
                         * @see WP_oEmbed::discover()
                         *
                         *
                         * @see WP_oEmbed::discover()
                         *
-                        * @param bool false Whether to enable <link> tag discovery. Default false.
+                        * @param bool $enable Whether to enable <link> tag discovery. Default false.
                         */
                        $attr['discover'] = ( apply_filters( 'embed_oembed_discover', false ) && author_can( $post_ID, 'unfiltered_html' ) );
 
                        // Use oEmbed to get the HTML
                        $html = wp_oembed_get( $url, $attr );
 
                         */
                        $attr['discover'] = ( apply_filters( 'embed_oembed_discover', false ) && author_can( $post_ID, 'unfiltered_html' ) );
 
                        // Use oEmbed to get the HTML
                        $html = wp_oembed_get( $url, $attr );
 
-                       // Cache the result
-                       $cache = ( $html ) ? $html : '{{unknown}}';
-                       update_post_meta( $post_ID, $cachekey, $cache );
+                       // Maybe cache the result
+                       if ( $html ) {
+                               update_post_meta( $post_ID, $cachekey, $html );
+                               update_post_meta( $post_ID, $cachekey_time, time() );
+                       } elseif ( ! $cache ) {
+                               update_post_meta( $post_ID, $cachekey, '{{unknown}}' );
+                       }
 
                        // If there was a result, return it
                        if ( $html ) {
 
                        // If there was a result, return it
                        if ( $html ) {
@@ -236,11 +270,11 @@ class WP_Embed {
        }
 
        /**
        }
 
        /**
-        * Delete all oEmbed caches.
+        * Delete all oEmbed caches. Unused by core as of 4.0.0.
         *
         * @param int $post_ID Post ID to delete the caches for.
         */
         *
         * @param int $post_ID Post ID to delete the caches for.
         */
-       function delete_oembed_caches( $post_ID ) {
+       public function delete_oembed_caches( $post_ID ) {
                $post_metas = get_post_custom_keys( $post_ID );
                if ( empty($post_metas) )
                        return;
                $post_metas = get_post_custom_keys( $post_ID );
                if ( empty($post_metas) )
                        return;
@@ -256,22 +290,23 @@ class WP_Embed {
         *
         * @param int $post_ID Post ID to do the caching for.
         */
         *
         * @param int $post_ID Post ID to do the caching for.
         */
-       function cache_oembed( $post_ID ) {
+       public function cache_oembed( $post_ID ) {
                $post = get_post( $post_ID );
 
                $post = get_post( $post_ID );
 
-               $post_types = array( 'post', 'page' );
+               $post_types = get_post_types( array( 'show_ui' => true ) );
                /**
                 * Filter the array of post types to cache oEmbed results for.
                 *
                 * @since 2.9.0
                 *
                /**
                 * Filter the array of post types to cache oEmbed results for.
                 *
                 * @since 2.9.0
                 *
-                * @param array $post_types Array of post types to cache oEmbed results for. Default 'post', 'page'.
+                * @param array $post_types Array of post types to cache oEmbed results for. Defaults to post types with `show_ui` set to true.
                 */
                 */
-               if ( empty($post->ID) || !in_array( $post->post_type, apply_filters( 'embed_cache_oembed_types', $post_types ) ) )
+               if ( empty( $post->ID ) || ! in_array( $post->post_type, apply_filters( 'embed_cache_oembed_types', $post_types ) ) ){
                        return;
                        return;
+               }
 
                // Trigger a caching
 
                // Trigger a caching
-               if ( !empty($post->post_content) ) {
+               if ( ! empty( $post->post_content ) ) {
                        $this->post_ID = $post->ID;
                        $this->usecache = false;
 
                        $this->post_ID = $post->ID;
                        $this->usecache = false;
 
@@ -290,7 +325,7 @@ class WP_Embed {
         * @param string $content The content to be searched.
         * @return string Potentially modified $content.
         */
         * @param string $content The content to be searched.
         * @return string Potentially modified $content.
         */
-       function autoembed( $content ) {
+       public function autoembed( $content ) {
                return preg_replace_callback( '|^\s*(https?://[^\s"]+)\s*$|im', array( $this, 'autoembed_callback' ), $content );
        }
 
                return preg_replace_callback( '|^\s*(https?://[^\s"]+)\s*$|im', array( $this, 'autoembed_callback' ), $content );
        }
 
@@ -302,7 +337,7 @@ class WP_Embed {
         * @param array $match A regex match array.
         * @return string The embed HTML on success, otherwise the original URL.
         */
         * @param array $match A regex match array.
         * @return string The embed HTML on success, otherwise the original URL.
         */
-       function autoembed_callback( $match ) {
+       public function autoembed_callback( $match ) {
                $oldval = $this->linkifunknown;
                $this->linkifunknown = false;
                $return = $this->shortcode( array(), $match[1] );
                $oldval = $this->linkifunknown;
                $this->linkifunknown = false;
                $return = $this->shortcode( array(), $match[1] );
@@ -317,7 +352,11 @@ class WP_Embed {
         * @param string $url URL to potentially be linked.
         * @return string Linked URL or the original URL.
         */
         * @param string $url URL to potentially be linked.
         * @return string Linked URL or the original URL.
         */
-       function maybe_make_link( $url ) {
+       public function maybe_make_link( $url ) {
+               if ( $this->return_false_on_fail ) {
+                       return false;
+               }
+
                $output = ( $this->linkifunknown ) ? '<a href="' . esc_url($url) . '">' . esc_html($url) . '</a>' : $url;
 
                /**
                $output = ( $this->linkifunknown ) ? '<a href="' . esc_url($url) . '">' . esc_html($url) . '</a>' : $url;
 
                /**
index bbfcebc444b960dc1cb0d6eda450b51c4a202379..971a4c7a955e64db961c758ca61f1a89957aad3c 100644 (file)
@@ -26,7 +26,7 @@ class WP_Error {
         * @var array
         * @access private
         */
         * @var array
         * @access private
         */
-       var $errors = array();
+       private $errors = array();
 
        /**
         * Stores the list of data for error codes.
 
        /**
         * Stores the list of data for error codes.
@@ -35,17 +35,18 @@ class WP_Error {
         * @var array
         * @access private
         */
         * @var array
         * @access private
         */
-       var $error_data = array();
+       private $error_data = array();
 
        /**
 
        /**
-        * Constructor - Sets up error message.
+        * Initialize the error.
         *
         *
-        * If code parameter is empty then nothing will be done. It is possible to
-        * add multiple messages to the same code, but with other methods in the
-        * class.
+        * If `$code` is empty, the other parameters will be ignored.
+        * When `$code` is not empty, `$message` will be used even if
+        * it is empty. The `$data` parameter will be used only if it
+        * is not empty.
         *
         *
-        * All parameters are optional, but if the code parameter is set, then the
-        * data parameter is optional.
+        * Though the class is constructed with a single error code and
+        * message, multiple codes can be added using the `add()` method.
         *
         * @since 2.1.0
         *
         *
         * @since 2.1.0
         *
@@ -54,7 +55,7 @@ class WP_Error {
         * @param mixed $data Optional. Error data.
         * @return WP_Error
         */
         * @param mixed $data Optional. Error data.
         * @return WP_Error
         */
-       function __construct($code = '', $message = '', $data = '') {
+       public function __construct( $code = '', $message = '', $data = '' ) {
                if ( empty($code) )
                        return;
 
                if ( empty($code) )
                        return;
 
@@ -64,6 +65,58 @@ class WP_Error {
                        $this->error_data[$code] = $data;
        }
 
                        $this->error_data[$code] = $data;
        }
 
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
        /**
         * Retrieve all error codes.
         *
        /**
         * Retrieve all error codes.
         *
@@ -72,7 +125,7 @@ class WP_Error {
         *
         * @return array List of error codes, if available.
         */
         *
         * @return array List of error codes, if available.
         */
-       function get_error_codes() {
+       public function get_error_codes() {
                if ( empty($this->errors) )
                        return array();
 
                if ( empty($this->errors) )
                        return array();
 
@@ -87,7 +140,7 @@ class WP_Error {
         *
         * @return string|int Empty string, if no error codes.
         */
         *
         * @return string|int Empty string, if no error codes.
         */
-       function get_error_code() {
+       public function get_error_code() {
                $codes = $this->get_error_codes();
 
                if ( empty($codes) )
                $codes = $this->get_error_codes();
 
                if ( empty($codes) )
@@ -104,7 +157,7 @@ class WP_Error {
         * @param string|int $code Optional. Retrieve messages matching code, if exists.
         * @return array Error strings on success, or empty array on failure (if using code parameter).
         */
         * @param string|int $code Optional. Retrieve messages matching code, if exists.
         * @return array Error strings on success, or empty array on failure (if using code parameter).
         */
-       function get_error_messages($code = '') {
+       public function get_error_messages($code = '') {
                // Return all messages if no code specified.
                if ( empty($code) ) {
                        $all_messages = array();
                // Return all messages if no code specified.
                if ( empty($code) ) {
                        $all_messages = array();
@@ -131,7 +184,7 @@ class WP_Error {
         * @param string|int $code Optional. Error code to retrieve message.
         * @return string
         */
         * @param string|int $code Optional. Error code to retrieve message.
         * @return string
         */
-       function get_error_message($code = '') {
+       public function get_error_message($code = '') {
                if ( empty($code) )
                        $code = $this->get_error_code();
                $messages = $this->get_error_messages($code);
                if ( empty($code) )
                        $code = $this->get_error_code();
                $messages = $this->get_error_messages($code);
@@ -148,7 +201,7 @@ class WP_Error {
         * @param string|int $code Optional. Error code.
         * @return mixed Null, if no errors.
         */
         * @param string|int $code Optional. Error code.
         * @return mixed Null, if no errors.
         */
-       function get_error_data($code = '') {
+       public function get_error_data($code = '') {
                if ( empty($code) )
                        $code = $this->get_error_code();
 
                if ( empty($code) )
                        $code = $this->get_error_code();
 
@@ -158,7 +211,7 @@ class WP_Error {
        }
 
        /**
        }
 
        /**
-        * Append more error messages to list of error messages.
+        * Add an error or append additional message to an existing error.
         *
         * @since 2.1.0
         * @access public
         *
         * @since 2.1.0
         * @access public
@@ -167,7 +220,7 @@ class WP_Error {
         * @param string $message Error message.
         * @param mixed $data Optional. Error data.
         */
         * @param string $message Error message.
         * @param mixed $data Optional. Error data.
         */
-       function add($code, $message, $data = '') {
+       public function add($code, $message, $data = '') {
                $this->errors[$code][] = $message;
                if ( ! empty($data) )
                        $this->error_data[$code] = $data;
                $this->errors[$code][] = $message;
                if ( ! empty($data) )
                        $this->error_data[$code] = $data;
@@ -183,7 +236,7 @@ class WP_Error {
         * @param mixed $data Error data.
         * @param string|int $code Error code.
         */
         * @param mixed $data Error data.
         * @param string|int $code Error code.
         */
-       function add_data($data, $code = '') {
+       public function add_data($data, $code = '') {
                if ( empty($code) )
                        $code = $this->get_error_code();
 
                if ( empty($code) )
                        $code = $this->get_error_code();
 
index b412e2a2f8a8c6712a5ecb0ffce4307ad710d234..2a18716c46c653eb6823da6f19cc16c928de8cb3 100644 (file)
@@ -8,7 +8,7 @@
  */
 class WP_HTTP_IXR_Client extends IXR_Client {
 
  */
 class WP_HTTP_IXR_Client extends IXR_Client {
 
-       function __construct($server, $path = false, $port = false, $timeout = 15) {
+       public function __construct($server, $path = false, $port = false, $timeout = 15) {
                if ( ! $path ) {
                        // Assume we have been given a URL instead
                        $bits = parse_url($server);
                if ( ! $path ) {
                        // Assume we have been given a URL instead
                        $bits = parse_url($server);
@@ -21,7 +21,7 @@ class WP_HTTP_IXR_Client extends IXR_Client {
                        if ( ! $this->path ) {
                                $this->path = '/';
                        }
                        if ( ! $this->path ) {
                                $this->path = '/';
                        }
-                               
+
                        if ( ! empty( $bits['query'] ) ) {
                                $this->path .= '?' . $bits['query'];
                        }
                        if ( ! empty( $bits['query'] ) ) {
                                $this->path .= '?' . $bits['query'];
                        }
@@ -35,7 +35,7 @@ class WP_HTTP_IXR_Client extends IXR_Client {
                $this->timeout = $timeout;
        }
 
                $this->timeout = $timeout;
        }
 
-       function query() {
+       public function query() {
                $args = func_get_args();
                $method = array_shift($args);
                $request = new IXR_Request($method, $args);
                $args = func_get_args();
                $method = array_shift($args);
                $request = new IXR_Request($method, $args);
index 303f5004c0d96813aff91b92694ca2dea3cee0ea..ef804571c6a6191969b65afb2316bc69ebdc9eac 100644 (file)
@@ -18,7 +18,7 @@ class WP_Image_Editor_GD extends WP_Image_Editor {
 
        protected $image = false; // GD Resource
 
 
        protected $image = false; // GD Resource
 
-       function __destruct() {
+       public function __destruct() {
                if ( $this->image ) {
                        // we don't need the original in memory anymore
                        imagedestroy( $this->image );
                if ( $this->image ) {
                        // we don't need the original in memory anymore
                        imagedestroy( $this->image );
@@ -114,7 +114,7 @@ class WP_Image_Editor_GD extends WP_Image_Editor {
                $this->update_size( $size[0], $size[1] );
                $this->mime_type = $size['mime'];
 
                $this->update_size( $size[0], $size[1] );
                $this->mime_type = $size['mime'];
 
-               return $this->set_quality( $this->quality );
+               return true;
        }
 
        /**
        }
 
        /**
@@ -387,7 +387,7 @@ class WP_Image_Editor_GD extends WP_Image_Editor {
                                return new WP_Error( 'image_save_error', __('Image Editor Save Failed') );
                }
                elseif ( 'image/jpeg' == $mime_type ) {
                                return new WP_Error( 'image_save_error', __('Image Editor Save Failed') );
                }
                elseif ( 'image/jpeg' == $mime_type ) {
-                       if ( ! $this->make_image( $filename, 'imagejpeg', array( $image, $filename, $this->quality ) ) )
+                       if ( ! $this->make_image( $filename, 'imagejpeg', array( $image, $filename, $this->get_quality() ) ) )
                                return new WP_Error( 'image_save_error', __('Image Editor Save Failed') );
                }
                else {
                                return new WP_Error( 'image_save_error', __('Image Editor Save Failed') );
                }
                else {
@@ -435,7 +435,7 @@ class WP_Image_Editor_GD extends WP_Image_Editor {
                                return imagegif( $this->image );
                        default:
                                header( 'Content-Type: image/jpeg' );
                                return imagegif( $this->image );
                        default:
                                header( 'Content-Type: image/jpeg' );
-                               return imagejpeg( $this->image, null, $this->quality );
+                               return imagejpeg( $this->image, null, $this->get_quality() );
                }
        }
 
                }
        }
 
index 4ebed4bae76d8870c6b847e30de6b46bbe955052..8bd6e38861c2ceba374bef8417462fc8ddc83e4c 100644 (file)
@@ -18,7 +18,7 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor {
 
        protected $image = null; // Imagick Object
 
 
        protected $image = null; // Imagick Object
 
-       function __destruct() {
+       public function __destruct() {
                if ( $this->image instanceof Imagick ) {
                        // we don't need the original in memory anymore
                        $this->image->clear();
                if ( $this->image instanceof Imagick ) {
                        // we don't need the original in memory anymore
                        $this->image->clear();
@@ -143,7 +143,7 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor {
                if ( is_wp_error( $updated_size ) )
                                return $updated_size;
 
                if ( is_wp_error( $updated_size ) )
                                return $updated_size;
 
-               return $this->set_quality( $this->quality );
+               return true;
        }
 
        /**
        }
 
        /**
@@ -160,7 +160,7 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor {
                if ( is_wp_error( $quality_result ) ) {
                        return $quality_result;
                } else {
                if ( is_wp_error( $quality_result ) ) {
                        return $quality_result;
                } else {
-                       $quality = $this->quality;
+                       $quality = $this->get_quality();
                }
 
                try {
                }
 
                try {
index 5affba48c7f78ae677d7ce4af9cdc5480b7f0ee9..5792df31623a1f17220bffc0b2b5d1fe17650db3 100644 (file)
@@ -16,7 +16,8 @@ abstract class WP_Image_Editor {
        protected $size = null;
        protected $mime_type = null;
        protected $default_mime_type = 'image/jpeg';
        protected $size = null;
        protected $mime_type = null;
        protected $default_mime_type = 'image/jpeg';
-       protected $quality = 90;
+       protected $quality = false;
+       protected $default_quality = 90;
 
        /**
         * Each instance handles a single file.
 
        /**
         * Each instance handles a single file.
@@ -203,50 +204,64 @@ abstract class WP_Image_Editor {
        }
 
        /**
        }
 
        /**
-        * Sets Image Compression quality on a 1-100% scale.
+        * Gets the Image Compression quality on a 1-100% scale.
         *
         *
-        * @since 3.5.0
+        * @since 4.0.0
         * @access public
         *
         * @access public
         *
-        * @param int $quality Compression Quality. Range: [1,100]
-        * @return boolean|WP_Error True if set successfully; WP_Error on failure.
+        * @return int $quality Compression Quality. Range: [1,100]
         */
         */
-       public function set_quality( $quality = null ) {
-               if ( $quality == null ) {
-                       $quality = $this->quality;
-               }
-
-               /**
-                * Filter the default image compression quality setting.
-                *
-                * @since 3.5.0
-                *
-                * @param int    $quality   Quality level between 1 (low) and 100 (high).
-                * @param string $mime_type Image mime type.
-                */
-               $quality = apply_filters( 'wp_editor_set_quality', $quality, $this->mime_type );
-
-               if ( 'image/jpeg' == $this->mime_type ) {
+       public function get_quality() {
+               if ( ! $this->quality ) {
                        /**
                        /**
-                        * Filter the JPEG compression quality for backward-compatibility.
-                        *
-                        * The filter is evaluated under two contexts: 'image_resize', and 'edit_image',
-                        * (when a JPEG image is saved to file).
+                        * Filter the default image compression quality setting.
                         *
                         *
-                        * @since 2.5.0
+                        * @since 3.5.0
                         *
                         *
-                        * @param int    $quality Quality level between 0 (low) and 100 (high) of the JPEG.
-                        * @param string $context Context of the filter.
+                        * @param int    $quality   Quality level between 1 (low) and 100 (high).
+                        * @param string $mime_type Image mime type.
                         */
                         */
-                       $quality = apply_filters( 'jpeg_quality', $quality, 'image_resize' );
-
-                       // Allow 0, but squash to 1 due to identical images in GD, and for backwards compatibility.
-                       if ( $quality == 0 ) {
-                               $quality = 1;
+                       $quality = apply_filters( 'wp_editor_set_quality', $this->default_quality, $this->mime_type );
+
+                       if ( 'image/jpeg' == $this->mime_type ) {
+                               /**
+                                * Filter the JPEG compression quality for backward-compatibility.
+                                *
+                                * The filter is evaluated under two contexts: 'image_resize', and 'edit_image',
+                                * (when a JPEG image is saved to file).
+                                *
+                                * @since 2.5.0
+                                *
+                                * @param int    $quality Quality level between 0 (low) and 100 (high) of the JPEG.
+                                * @param string $context Context of the filter.
+                                */
+                               $quality = apply_filters( 'jpeg_quality', $quality, 'image_resize' );
+
+                               if ( ! $this->set_quality( $quality ) ) {
+                                       $this->quality = $this->default_quality;
+                               }
                        }
                }
 
                        }
                }
 
-               if ( ( $quality >= 1 ) && ( $quality <= 100 ) ){
+               return $this->quality;
+       }
+
+       /**
+        * Sets Image Compression quality on a 1-100% scale.
+        *
+        * @since 3.5.0
+        * @access public
+        *
+        * @param int $quality Compression Quality. Range: [1,100]
+        * @return boolean|WP_Error True if set successfully; WP_Error on failure.
+        */
+       public function set_quality( $quality = null ) {
+               // Allow 0, but squash to 1 due to identical images in GD, and for backwards compatibility.
+               if ( $quality == 0 ) {
+                       $quality = 1;
+               }
+
+               if ( ( $quality >= 1 ) && ( $quality <= 100 ) ) {
                        $this->quality = $quality;
                        return true;
                } else {
                        $this->quality = $quality;
                        return true;
                } else {
@@ -270,8 +285,7 @@ abstract class WP_Image_Editor {
         * @return array { filename|null, extension, mime-type }
         */
        protected function get_output_format( $filename = null, $mime_type = null ) {
         * @return array { filename|null, extension, mime-type }
         */
        protected function get_output_format( $filename = null, $mime_type = null ) {
-               $new_ext = $file_ext = null;
-               $file_mime = null;
+               $new_ext = null;
 
                // By default, assume specified type takes priority
                if ( $mime_type ) {
 
                // By default, assume specified type takes priority
                if ( $mime_type ) {
index 6af098fe3b749e7e7658c6b650b78d29babb096a..eaf244b78e7d5b3989cee0023b3b7311854e1560 100644 (file)
@@ -662,10 +662,7 @@ final class WP_Theme implements ArrayAccess {
                                break;
                        case 'Author' :
                                if ( $this->get('AuthorURI') ) {
                                break;
                        case 'Author' :
                                if ( $this->get('AuthorURI') ) {
-                                       static $attr = null;
-                                       if ( ! isset( $attr ) )
-                                               $attr = esc_attr__( 'Visit author homepage' );
-                                       $value = sprintf( '<a href="%1$s" title="%2$s">%3$s</a>', $this->display( 'AuthorURI', true, $translate ), $attr, $value );
+                                       $value = sprintf( '<a href="%1$s">%2$s</a>', $this->display( 'AuthorURI', true, $translate ), $value );
                                } elseif ( ! $value ) {
                                        $value = __( 'Anonymous' );
                                }
                                } elseif ( ! $value ) {
                                        $value = __( 'Anonymous' );
                                }
@@ -726,7 +723,7 @@ final class WP_Theme implements ArrayAccess {
                                }
 
                                return $value;
                                }
 
                                return $value;
-                               break;
+
                        default :
                                $value = translate( $value, $this->get('TextDomain') );
                }
                        default :
                                $value = translate( $value, $this->get('TextDomain') );
                }
index 547defee81c7d4fcf3a959f7afc47e3114261350..25191641c0cfd9ae3eeaab8108b6470f16d805ee 100644 (file)
@@ -16,28 +16,91 @@ class Walker {
         * What the class handles.
         *
         * @since 2.1.0
         * What the class handles.
         *
         * @since 2.1.0
-        * @var string
         * @access public
         * @access public
+        * @var string
         */
         */
-       var $tree_type;
+       public $tree_type;
 
        /**
         * DB fields to use.
         *
         * @since 2.1.0
 
        /**
         * DB fields to use.
         *
         * @since 2.1.0
-        * @var array
         * @access protected
         * @access protected
+        * @var array
         */
         */
-       var $db_fields;
+       protected $db_fields;
 
        /**
         * Max number of pages walked by the paged walker
         *
         * @since 2.7.0
 
        /**
         * Max number of pages walked by the paged walker
         *
         * @since 2.7.0
+        * @access protected
         * @var int
         * @var int
+        */
+       protected $max_pages = 1;
+
+       /**
+        * Whether the current element has children or not.
+        *
+        * To be used in start_el().
+        *
+        * @since 4.0.0
         * @access protected
         * @access protected
+        * @var bool
+        */
+       protected $has_children;
+
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
         */
         */
-       var $max_pages = 1;
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
 
        /**
         * Starts the list before the elements are added.
 
        /**
         * Starts the list before the elements are added.
@@ -52,7 +115,7 @@ class Walker {
         * @param int    $depth  Depth of the item.
         * @param array  $args   An array of additional arguments.
         */
         * @param int    $depth  Depth of the item.
         * @param array  $args   An array of additional arguments.
         */
-       function start_lvl( &$output, $depth = 0, $args = array() ) {}
+       public function start_lvl( &$output, $depth = 0, $args = array() ) {}
 
        /**
         * Ends the list of after the elements are added.
 
        /**
         * Ends the list of after the elements are added.
@@ -67,7 +130,7 @@ class Walker {
         * @param int    $depth  Depth of the item.
         * @param array  $args   An array of additional arguments.
         */
         * @param int    $depth  Depth of the item.
         * @param array  $args   An array of additional arguments.
         */
-       function end_lvl( &$output, $depth = 0, $args = array() ) {}
+       public function end_lvl( &$output, $depth = 0, $args = array() ) {}
 
        /**
         * Start the element output.
 
        /**
         * Start the element output.
@@ -84,7 +147,7 @@ class Walker {
         * @param array  $args              An array of additional arguments.
         * @param int    $current_object_id ID of the current item.
         */
         * @param array  $args              An array of additional arguments.
         * @param int    $current_object_id ID of the current item.
         */
-       function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {}
+       public function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {}
 
        /**
         * Ends the element output, if needed.
 
        /**
         * Ends the element output, if needed.
@@ -99,7 +162,7 @@ class Walker {
         * @param int    $depth  Depth of the item.
         * @param array  $args   An array of additional arguments.
         */
         * @param int    $depth  Depth of the item.
         * @param array  $args   An array of additional arguments.
         */
-       function end_el( &$output, $object, $depth = 0, $args = array() ) {}
+       public function end_el( &$output, $object, $depth = 0, $args = array() ) {}
 
        /**
         * Traverse elements to create list from elements.
 
        /**
         * Traverse elements to create list from elements.
@@ -121,21 +184,23 @@ class Walker {
         * @param string $output            Passed by reference. Used to append additional content.
         * @return null Null on failure with no changes to parameters.
         */
         * @param string $output            Passed by reference. Used to append additional content.
         * @return null Null on failure with no changes to parameters.
         */
-       function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) {
+       public function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) {
 
                if ( !$element )
                        return;
 
                $id_field = $this->db_fields['id'];
 
                if ( !$element )
                        return;
 
                $id_field = $this->db_fields['id'];
+               $id       = $element->$id_field;
 
                //display this element
 
                //display this element
-               if ( isset( $args[0] ) && is_array( $args[0] ) )
-                       $args[0]['has_children'] = ! empty( $children_elements[$element->$id_field] );
+               $this->has_children = ! empty( $children_elements[ $id ] );
+               if ( isset( $args[0] ) && is_array( $args[0] ) ) {
+                       $args[0]['has_children'] = $this->has_children; // Backwards compatibility.
+               }
+
                $cb_args = array_merge( array(&$output, $element, $depth), $args);
                call_user_func_array(array($this, 'start_el'), $cb_args);
 
                $cb_args = array_merge( array(&$output, $element, $depth), $args);
                call_user_func_array(array($this, 'start_el'), $cb_args);
 
-               $id = $element->$id_field;
-
                // descend only when the depth is right and there are childrens for this element
                if ( ($max_depth == 0 || $max_depth > $depth+1 ) && isset( $children_elements[$id]) ) {
 
                // descend only when the depth is right and there are childrens for this element
                if ( ($max_depth == 0 || $max_depth > $depth+1 ) && isset( $children_elements[$id]) ) {
 
@@ -178,7 +243,7 @@ class Walker {
         * @param int   $max_depth The maximum hierarchical depth.
         * @return string The hierarchical item output.
         */
         * @param int   $max_depth The maximum hierarchical depth.
         * @return string The hierarchical item output.
         */
-       function walk( $elements, $max_depth) {
+       public function walk( $elements, $max_depth) {
 
                $args = array_slice(func_get_args(), 2);
                $output = '';
 
                $args = array_slice(func_get_args(), 2);
                $output = '';
@@ -189,7 +254,6 @@ class Walker {
                if (empty($elements)) //nothing to walk
                        return $output;
 
                if (empty($elements)) //nothing to walk
                        return $output;
 
-               $id_field = $this->db_fields['id'];
                $parent_field = $this->db_fields['parent'];
 
                // flat display
                $parent_field = $this->db_fields['parent'];
 
                // flat display
@@ -267,7 +331,7 @@ class Walker {
         * @param int $page_num  The specific page number, beginning with 1.
         * @return string XHTML of the specified page of elements
         */
         * @param int $page_num  The specific page number, beginning with 1.
         * @return string XHTML of the specified page of elements
         */
-       function paged_walk( $elements, $max_depth, $page_num, $per_page ) {
+       public function paged_walk( $elements, $max_depth, $page_num, $per_page ) {
 
                /* sanity check */
                if ( empty($elements) || $max_depth < -1 )
 
                /* sanity check */
                if ( empty($elements) || $max_depth < -1 )
@@ -276,7 +340,6 @@ class Walker {
                $args = array_slice( func_get_args(), 4 );
                $output = '';
 
                $args = array_slice( func_get_args(), 4 );
                $output = '';
 
-               $id_field = $this->db_fields['id'];
                $parent_field = $this->db_fields['parent'];
 
                $count = -1;
                $parent_field = $this->db_fields['parent'];
 
                $count = -1;
@@ -375,7 +438,7 @@ class Walker {
                return $output;
        }
 
                return $output;
        }
 
-       function get_number_of_root_elements( $elements ){
+       public function get_number_of_root_elements( $elements ){
 
                $num = 0;
                $parent_field = $this->db_fields['parent'];
 
                $num = 0;
                $parent_field = $this->db_fields['parent'];
@@ -388,7 +451,7 @@ class Walker {
        }
 
        // Unset all the children for a given top level element.
        }
 
        // Unset all the children for a given top level element.
-       function unset_children( $e, &$children_elements ){
+       public function unset_children( $e, &$children_elements ){
 
                if ( !$e || !$children_elements )
                        return;
 
                if ( !$e || !$children_elements )
                        return;
index 0f617dbf99b4399490f89801ae66f6069caf3351..4ea5df60f8d94282e976c38b2db69c5409aae335 100644 (file)
@@ -33,7 +33,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *
         * @return wp_xmlrpc_server
         */
         *
         * @return wp_xmlrpc_server
         */
-       function __construct() {
+       public function __construct() {
                $this->methods = array(
                        // WordPress API
                        'wp.getUsersBlogs'              => 'this:wp_getUsersBlogs',
                $this->methods = array(
                        // WordPress API
                        'wp.getUsersBlogs'              => 'this:wp_getUsersBlogs',
@@ -66,6 +66,7 @@ class wp_xmlrpc_server extends IXR_Server {
                        'wp.deleteCategory'             => 'this:wp_deleteCategory',
                        'wp.suggestCategories'  => 'this:wp_suggestCategories',
                        'wp.uploadFile'                 => 'this:mw_newMediaObject',    // Alias
                        'wp.deleteCategory'             => 'this:wp_deleteCategory',
                        'wp.suggestCategories'  => 'this:wp_suggestCategories',
                        'wp.uploadFile'                 => 'this:mw_newMediaObject',    // Alias
+                       'wp.deleteFile'                 => 'this:wp_deletePost',                // Alias
                        'wp.getCommentCount'    => 'this:wp_getCommentCount',
                        'wp.getPostStatusList'  => 'this:wp_getPostStatusList',
                        'wp.getPageStatusList'  => 'this:wp_getPageStatusList',
                        'wp.getCommentCount'    => 'this:wp_getCommentCount',
                        'wp.getPostStatusList'  => 'this:wp_getPostStatusList',
                        'wp.getPageStatusList'  => 'this:wp_getPageStatusList',
@@ -140,7 +141,21 @@ class wp_xmlrpc_server extends IXR_Server {
                $this->methods = apply_filters( 'xmlrpc_methods', $this->methods );
        }
 
                $this->methods = apply_filters( 'xmlrpc_methods', $this->methods );
        }
 
-       function serve_request() {
+       /**
+        * Make private/protected methods readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param callable $name      Method to call.
+        * @param array    $arguments Arguments to pass when calling.
+        * @return mixed|bool Return value of the callback, false otherwise.
+        */
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this, $name ), $arguments );
+       }
+
+       public function serve_request() {
                $this->IXR_Server($this->methods);
        }
 
                $this->IXR_Server($this->methods);
        }
 
@@ -152,7 +167,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method Parameters.
         * @return string
         */
         * @param array $args Method Parameters.
         * @return string
         */
-       function sayHello($args) {
+       public function sayHello($args) {
                return 'Hello!';
        }
 
                return 'Hello!';
        }
 
@@ -164,7 +179,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method Parameters.
         * @return int
         */
         * @param array $args Method Parameters.
         * @return int
         */
-       function addTwoNumbers($args) {
+       public function addTwoNumbers($args) {
                $number1 = $args[0];
                $number2 = $args[1];
                return $number1 + $number2;
                $number1 = $args[0];
                $number2 = $args[1];
                return $number1 + $number2;
@@ -179,7 +194,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param string $password User's password.
         * @return mixed WP_User object if authentication passed, false otherwise
         */
         * @param string $password User's password.
         * @return mixed WP_User object if authentication passed, false otherwise
         */
-       function login( $username, $password ) {
+       public function login( $username, $password ) {
                /*
                 * Respect old get_option() filters left for back-compat when the 'enable_xmlrpc'
                 * option was deprecated in 3.5.0. Use the 'xmlrpc_enabled' hook instead.
                /*
                 * Respect old get_option() filters left for back-compat when the 'enable_xmlrpc'
                 * option was deprecated in 3.5.0. Use the 'xmlrpc_enabled' hook instead.
@@ -238,7 +253,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param string $password User's password.
         * @return bool Whether authentication passed.
         */
         * @param string $password User's password.
         * @return bool Whether authentication passed.
         */
-       function login_pass_ok( $username, $password ) {
+       public function login_pass_ok( $username, $password ) {
                return (bool) $this->login( $username, $password );
        }
 
                return (bool) $this->login( $username, $password );
        }
 
@@ -250,7 +265,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param string|array $data Escape single string or array of strings.
         * @return string|array Type matches $data and sanitized for the database.
         */
         * @param string|array $data Escape single string or array of strings.
         * @return string|array Type matches $data and sanitized for the database.
         */
-       function escape( &$data ) {
+       public function escape( &$data ) {
                if ( ! is_array( $data ) )
                        return wp_slash( $data );
 
                if ( ! is_array( $data ) )
                        return wp_slash( $data );
 
@@ -270,7 +285,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param int $post_id Post ID.
         * @return array Custom fields, if exist.
         */
         * @param int $post_id Post ID.
         * @return array Custom fields, if exist.
         */
-       function get_custom_fields($post_id) {
+       public function get_custom_fields($post_id) {
                $post_id = (int) $post_id;
 
                $custom_fields = array();
                $post_id = (int) $post_id;
 
                $custom_fields = array();
@@ -298,7 +313,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param int $post_id Post ID.
         * @param array $fields Custom fields.
         */
         * @param int $post_id Post ID.
         * @param array $fields Custom fields.
         */
-       function set_custom_fields($post_id, $fields) {
+       public function set_custom_fields($post_id, $fields) {
                $post_id = (int) $post_id;
 
                foreach ( (array) $fields as $meta ) {
                $post_id = (int) $post_id;
 
                foreach ( (array) $fields as $meta ) {
@@ -328,7 +343,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *
         * @since 2.6.0
         */
         *
         * @since 2.6.0
         */
-       function initialise_blog_option_info() {
+       public function initialise_blog_option_info() {
                global $wp_version;
 
                $this->blog_options = array(
                global $wp_version;
 
                $this->blog_options = array(
@@ -497,7 +512,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - 'blogName'
         *  - 'xmlrpc' - url of xmlrpc endpoint
         */
         *  - 'blogName'
         *  - 'xmlrpc' - url of xmlrpc endpoint
         */
-       function wp_getUsersBlogs( $args ) {
+       public function wp_getUsersBlogs( $args ) {
                // If this isn't on WPMU then just use blogger_getUsersBlogs
                if ( !is_multisite() ) {
                        array_unshift( $args, 1 );
                // If this isn't on WPMU then just use blogger_getUsersBlogs
                if ( !is_multisite() ) {
                        array_unshift( $args, 1 );
@@ -1075,7 +1090,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *      - any other fields supported by wp_insert_post()
         * @return string post_id
         */
         *      - any other fields supported by wp_insert_post()
         * @return string post_id
         */
-       function wp_newPost( $args ) {
+       public function wp_newPost( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -1089,6 +1104,21 @@ class wp_xmlrpc_server extends IXR_Server {
                if ( ! $user = $this->login( $username, $password ) )
                        return $this->error;
 
                if ( ! $user = $this->login( $username, $password ) )
                        return $this->error;
 
+               // convert the date field back to IXR form
+               if ( isset( $content_struct['post_date'] ) && ! is_a( $content_struct['post_date'], 'IXR_Date' ) ) {
+                       $content_struct['post_date'] = $this->_convert_date( $content_struct['post_date'] );
+               }
+
+               // ignore the existing GMT date if it is empty or a non-GMT date was supplied in $content_struct,
+               // since _insert_post will ignore the non-GMT date if the GMT date is set
+               if ( isset( $content_struct['post_date_gmt'] ) && ! is_a( $content_struct['post_date_gmt'], 'IXR_Date' ) ) {
+                       if ( $content_struct['post_date_gmt'] == '0000-00-00 00:00:00' || isset( $content_struct['post_date'] ) ) {
+                               unset( $content_struct['post_date_gmt'] );
+                       } else {
+                               $content_struct['post_date_gmt'] = $this->_convert_date( $content_struct['post_date_gmt'] );
+                       }
+               }
+
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
                do_action( 'xmlrpc_call', 'wp.newPost' );
 
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
                do_action( 'xmlrpc_call', 'wp.newPost' );
 
@@ -1369,7 +1399,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - array   $content_struct
         * @return true on success
         */
         *  - array   $content_struct
         * @return true on success
         */
-       function wp_editPost( $args ) {
+       public function wp_editPost( $args ) {
                if ( ! $this->minimum_args( $args, 5 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 5 ) )
                        return $this->error;
 
@@ -1432,7 +1462,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - int     $post_id
         * @return true on success
         */
         *  - int     $post_id
         * @return true on success
         */
-       function wp_deletePost( $args ) {
+       public function wp_deletePost( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -1508,7 +1538,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - 'tags'
         *  - 'enclosure'
         */
         *  - 'tags'
         *  - 'enclosure'
         */
-       function wp_getPost( $args ) {
+       public function wp_getPost( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -1574,7 +1604,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - array   $fields optional
         * @return array contains a collection of posts.
         */
         *  - array   $fields optional
         * @return array contains a collection of posts.
         */
-       function wp_getPosts( $args ) {
+       public function wp_getPosts( $args ) {
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
@@ -1671,7 +1701,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *      - 'slug'
         * @return string term_id
         */
         *      - 'slug'
         * @return string term_id
         */
-       function wp_newTerm( $args ) {
+       public function wp_newTerm( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -1759,7 +1789,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *      - 'slug'
         * @return bool True, on success.
         */
         *      - 'slug'
         * @return bool True, on success.
         */
-       function wp_editTerm( $args ) {
+       public function wp_editTerm( $args ) {
                if ( ! $this->minimum_args( $args, 5 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 5 ) )
                        return $this->error;
 
@@ -1852,7 +1882,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - string     $term_id
         * @return boolean|IXR_Error If it suceeded true else a reason why not
         */
         *  - string     $term_id
         * @return boolean|IXR_Error If it suceeded true else a reason why not
         */
-       function wp_deleteTerm( $args ) {
+       public function wp_deleteTerm( $args ) {
                if ( ! $this->minimum_args( $args, 5 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 5 ) )
                        return $this->error;
 
@@ -1920,7 +1950,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - 'parent'
         *  - 'count'
         */
         *  - 'parent'
         *  - 'count'
         */
-       function wp_getTerm( $args ) {
+       public function wp_getTerm( $args ) {
                if ( ! $this->minimum_args( $args, 5 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 5 ) )
                        return $this->error;
 
@@ -1974,7 +2004,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - array   $filter optional
         * @return array terms
         */
         *  - array   $filter optional
         * @return array terms
         */
-       function wp_getTerms( $args ) {
+       public function wp_getTerms( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -2050,7 +2080,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - string  $taxonomy
         * @return array (@see get_taxonomy())
         */
         *  - string  $taxonomy
         * @return array (@see get_taxonomy())
         */
-       function wp_getTaxonomy( $args ) {
+       public function wp_getTaxonomy( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -2104,7 +2134,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - string  $password
         * @return array taxonomies
         */
         *  - string  $password
         * @return array taxonomies
         */
-       function wp_getTaxonomies( $args ) {
+       public function wp_getTaxonomies( $args ) {
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
@@ -2176,7 +2206,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - 'display_name'
         *  - 'roles'
         */
         *  - 'display_name'
         *  - 'roles'
         */
-       function wp_getUser( $args ) {
+       public function wp_getUser( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -2239,7 +2269,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - array   $fields optional
         * @return array users data
         */
         *  - array   $fields optional
         * @return array users data
         */
-       function wp_getUsers( $args ) {
+       public function wp_getUsers( $args ) {
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
@@ -2310,7 +2340,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - array   $fields optional
         * @return array (@see wp_getUser)
         */
         *  - array   $fields optional
         * @return array (@see wp_getUser)
         */
-       function wp_getProfile( $args ) {
+       public function wp_getProfile( $args ) {
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
@@ -2360,7 +2390,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *      - 'bio'
         * @return bool True, on success.
         */
         *      - 'bio'
         * @return bool True, on success.
         */
-       function wp_editProfile( $args ) {
+       public function wp_editProfile( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -2429,7 +2459,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - password
         * @return array
         */
         *  - password
         * @return array
         */
-       function wp_getPage($args) {
+       public function wp_getPage($args) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -2457,7 +2487,7 @@ class wp_xmlrpc_server extends IXR_Server {
                }
                // If the page doesn't exist indicate that.
                else {
                }
                // If the page doesn't exist indicate that.
                else {
-                       return(new IXR_Error(404, __('Sorry, no such page.')));
+                       return new IXR_Error( 404, __( 'Sorry, no such page.' ) );
                }
        }
 
                }
        }
 
@@ -2473,7 +2503,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - num_pages
         * @return array
         */
         *  - num_pages
         * @return array
         */
-       function wp_getPages($args) {
+       public function wp_getPages($args) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -2518,7 +2548,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters. See {@link wp_xmlrpc_server::mw_newPost()}
         * @return unknown
         */
         * @param array $args Method parameters. See {@link wp_xmlrpc_server::mw_newPost()}
         * @return unknown
         */
-       function wp_newPage($args) {
+       public function wp_newPage($args) {
                // Items not escaped here will be escaped in newPost.
                $username       = $this->escape($args[1]);
                $password       = $this->escape($args[2]);
                // Items not escaped here will be escaped in newPost.
                $username       = $this->escape($args[1]);
                $password       = $this->escape($args[2]);
@@ -2546,7 +2576,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return bool True, if success.
         */
         * @param array $args Method parameters.
         * @return bool True, if success.
         */
-       function wp_deletePage($args) {
+       public function wp_deletePage($args) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -2596,7 +2626,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return unknown
         */
         * @param array $args Method parameters.
         * @return unknown
         */
-       function wp_editPage($args) {
+       public function wp_editPage($args) {
                // Items not escaped here will be escaped in editPost.
                $blog_id        = (int) $args[0];
                $page_id        = (int) $this->escape($args[1]);
                // Items not escaped here will be escaped in editPost.
                $blog_id        = (int) $args[0];
                $page_id        = (int) $this->escape($args[1]);
@@ -2644,7 +2674,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return unknown
         */
         * @param array $args Method parameters.
         * @return unknown
         */
-       function wp_getPageList($args) {
+       public function wp_getPageList($args) {
                global $wpdb;
 
                $this->escape($args);
                global $wpdb;
 
                $this->escape($args);
@@ -2697,7 +2727,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_getAuthors($args) {
+       public function wp_getAuthors($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -2734,7 +2764,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_getTags( $args ) {
+       public function wp_getTags( $args ) {
                $this->escape( $args );
 
                $blog_id                = (int) $args[0];
                $this->escape( $args );
 
                $blog_id                = (int) $args[0];
@@ -2776,7 +2806,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return int Category ID.
         */
         * @param array $args Method parameters.
         * @return int Category ID.
         */
-       function wp_newCategory($args) {
+       public function wp_newCategory($args) {
                $this->escape($args);
 
                $blog_id                                = (int) $args[0];
                $this->escape($args);
 
                $blog_id                                = (int) $args[0];
@@ -2846,7 +2876,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return mixed See {@link wp_delete_term()} for return info.
         */
         * @param array $args Method parameters.
         * @return mixed See {@link wp_delete_term()} for return info.
         */
-       function wp_deleteCategory($args) {
+       public function wp_deleteCategory($args) {
                $this->escape($args);
 
                $blog_id                = (int) $args[0];
                $this->escape($args);
 
                $blog_id                = (int) $args[0];
@@ -2888,7 +2918,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_suggestCategories($args) {
+       public function wp_suggestCategories($args) {
                $this->escape($args);
 
                $blog_id                                = (int) $args[0];
                $this->escape($args);
 
                $blog_id                                = (int) $args[0];
@@ -2926,7 +2956,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_getComment($args) {
+       public function wp_getComment($args) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -2968,7 +2998,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array. Contains a collection of comments. See {@link wp_xmlrpc_server::wp_getComment()} for a description of each item contents
         */
         * @param array $args Method parameters.
         * @return array. Contains a collection of comments. See {@link wp_xmlrpc_server::wp_getComment()} for a description of each item contents
         */
-       function wp_getComments($args) {
+       public function wp_getComments($args) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -3029,7 +3059,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - comment_id
         * @return mixed {@link wp_delete_comment()}
         */
         *  - comment_id
         * @return mixed {@link wp_delete_comment()}
         */
-       function wp_deleteComment($args) {
+       public function wp_deleteComment($args) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -3093,7 +3123,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - content_struct
         * @return bool True, on success.
         */
         *  - content_struct
         * @return bool True, on success.
         */
-       function wp_editComment($args) {
+       public function wp_editComment($args) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -3177,9 +3207,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return mixed {@link wp_new_comment()}
         */
         * @param array $args Method parameters.
         * @return mixed {@link wp_new_comment()}
         */
-       function wp_newComment($args) {
-               global $wpdb;
-
+       public function wp_newComment($args) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -3281,7 +3309,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_getCommentStatusList($args) {
+       public function wp_getCommentStatusList($args) {
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
@@ -3308,7 +3336,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_getCommentCount( $args ) {
+       public function wp_getCommentCount( $args ) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -3342,7 +3370,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_getPostStatusList( $args ) {
+       public function wp_getPostStatusList( $args ) {
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
@@ -3369,7 +3397,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_getPageStatusList( $args ) {
+       public function wp_getPageStatusList( $args ) {
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
@@ -3396,7 +3424,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_getPageTemplates( $args ) {
+       public function wp_getPageTemplates( $args ) {
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
@@ -3423,7 +3451,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function wp_getOptions( $args ) {
+       public function wp_getOptions( $args ) {
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
@@ -3449,7 +3477,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $options Options to retrieve.
         * @return array
         */
         * @param array $options Options to retrieve.
         * @return array
         */
-       function _getOptions($options) {
+       public function _getOptions($options) {
                $data = array();
                $can_manage = current_user_can( 'manage_options' );
                foreach ( $options as $option ) {
                $data = array();
                $can_manage = current_user_can( 'manage_options' );
                foreach ( $options as $option ) {
@@ -3477,7 +3505,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return unknown
         */
         * @param array $args Method parameters.
         * @return unknown
         */
-       function wp_setOptions( $args ) {
+       public function wp_setOptions( $args ) {
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
                $this->escape( $args );
 
                $blog_id        = (int) $args[0];
@@ -3526,7 +3554,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - 'description'
         *  - 'metadata'
         */
         *  - 'description'
         *  - 'metadata'
         */
-       function wp_getMediaItem($args) {
+       public function wp_getMediaItem($args) {
                $this->escape($args);
 
                $blog_id                = (int) $args[0];
                $this->escape($args);
 
                $blog_id                = (int) $args[0];
@@ -3572,7 +3600,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - filter
         * @return array. Contains a collection of media items. See {@link wp_xmlrpc_server::wp_getMediaItem()} for a description of each item contents
         */
         *  - filter
         * @return array. Contains a collection of media items. See {@link wp_xmlrpc_server::wp_getMediaItem()} for a description of each item contents
         */
-       function wp_getMediaLibrary($args) {
+       public function wp_getMediaLibrary($args) {
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
                $this->escape($args);
 
                $blog_id        = (int) $args[0];
@@ -3615,7 +3643,7 @@ class wp_xmlrpc_server extends IXR_Server {
          *  - password
          * @return array
          */
          *  - password
          * @return array
          */
-       function wp_getPostFormats( $args ) {
+       public function wp_getPostFormats( $args ) {
                $this->escape( $args );
 
                $blog_id = (int) $args[0];
                $this->escape( $args );
 
                $blog_id = (int) $args[0];
@@ -3673,7 +3701,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - 'taxonomies'
         *  - 'supports'
         */
         *  - 'taxonomies'
         *  - 'supports'
         */
-       function wp_getPostType( $args ) {
+       public function wp_getPostType( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -3729,7 +3757,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - array   $fields
         * @return array
         */
         *  - array   $fields
         * @return array
         */
-       function wp_getPostTypes( $args ) {
+       public function wp_getPostTypes( $args ) {
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
@@ -3786,7 +3814,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - array   $fields
         * @return array contains a collection of posts.
         */
         *  - array   $fields
         * @return array contains a collection of posts.
         */
-       function wp_getRevisions( $args ) {
+       public function wp_getRevisions( $args ) {
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 4 ) )
                        return $this->error;
 
@@ -3862,7 +3890,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - int     $post_id
         * @return bool false if there was an error restoring, true if success.
         */
         *  - int     $post_id
         * @return bool false if there was an error restoring, true if success.
         */
-       function wp_restoreRevision( $args ) {
+       public function wp_restoreRevision( $args ) {
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
                if ( ! $this->minimum_args( $args, 3 ) )
                        return $this->error;
 
@@ -3914,7 +3942,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function blogger_getUsersBlogs($args) {
+       public function blogger_getUsersBlogs($args) {
                if ( is_multisite() )
                        return $this->_multisite_getUsersBlogs($args);
 
                if ( is_multisite() )
                        return $this->_multisite_getUsersBlogs($args);
 
@@ -3947,7 +3975,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *
         * @access protected
         */
         *
         * @access protected
         */
-       function _multisite_getUsersBlogs($args) {
+       protected function _multisite_getUsersBlogs($args) {
                $current_blog = get_blog_details();
 
                $domain = $current_blog->domain;
                $current_blog = get_blog_details();
 
                $domain = $current_blog->domain;
@@ -3981,7 +4009,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function blogger_getUserInfo($args) {
+       public function blogger_getUserInfo($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -4016,7 +4044,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function blogger_getPost($args) {
+       public function blogger_getPost($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -4061,7 +4089,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function blogger_getRecentPosts($args) {
+       public function blogger_getRecentPosts($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -4124,7 +4152,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @since 1.5.0
         * @deprecated 3.5.0
         */
         * @since 1.5.0
         * @deprecated 3.5.0
         */
-       function blogger_getTemplate($args) {
+       public function blogger_getTemplate($args) {
                return new IXR_Error( 403, __('Sorry, that file cannot be edited.' ) );
        }
 
                return new IXR_Error( 403, __('Sorry, that file cannot be edited.' ) );
        }
 
@@ -4134,7 +4162,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @since 1.5.0
         * @deprecated 3.5.0
         */
         * @since 1.5.0
         * @deprecated 3.5.0
         */
-       function blogger_setTemplate($args) {
+       public function blogger_setTemplate($args) {
                return new IXR_Error( 403, __('Sorry, that file cannot be edited.' ) );
        }
 
                return new IXR_Error( 403, __('Sorry, that file cannot be edited.' ) );
        }
 
@@ -4146,7 +4174,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return int
         */
         * @param array $args Method parameters.
         * @return int
         */
-       function blogger_newPost($args) {
+       public function blogger_newPost($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -4209,7 +4237,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return bool true when done.
         */
         * @param array $args Method parameters.
         * @return bool true when done.
         */
-       function blogger_editPost($args) {
+       public function blogger_editPost( $args ) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -4219,39 +4247,42 @@ class wp_xmlrpc_server extends IXR_Server {
                $content     = $args[4];
                $publish     = $args[5];
 
                $content     = $args[4];
                $publish     = $args[5];
 
-               if ( !$user = $this->login($username, $password) )
+               if ( ! $user = $this->login( $username, $password ) ) {
                        return $this->error;
                        return $this->error;
+               }
 
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
                do_action( 'xmlrpc_call', 'blogger.editPost' );
 
 
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
                do_action( 'xmlrpc_call', 'blogger.editPost' );
 
-               $actual_post = get_post($post_ID,ARRAY_A);
+               $actual_post = get_post( $post_ID, ARRAY_A );
 
 
-               if ( !$actual_post || $actual_post['post_type'] != 'post' )
-                       return new IXR_Error(404, __('Sorry, no such post.'));
+               if ( ! $actual_post || $actual_post['post_type'] != 'post' ) {
+                       return new IXR_Error( 404, __( 'Sorry, no such post.' ) );
+               }
 
                $this->escape($actual_post);
 
 
                $this->escape($actual_post);
 
-               if ( !current_user_can('edit_post', $post_ID) )
+               if ( ! current_user_can( 'edit_post', $post_ID ) ) {
                        return new IXR_Error(401, __('Sorry, you do not have the right to edit this post.'));
                        return new IXR_Error(401, __('Sorry, you do not have the right to edit this post.'));
+               }
+               if ( 'publish' == $actual_post['post_status'] && ! current_user_can( 'publish_posts' ) ) {
+                       return new IXR_Error( 401, __( 'Sorry, you do not have the right to publish this post.' ) );
+               }
 
 
-               extract($actual_post, EXTR_SKIP);
-
-               if ( ('publish' == $post_status) && !current_user_can('publish_posts') )
-                       return new IXR_Error(401, __('Sorry, you do not have the right to publish this post.'));
-
-               $post_title = xmlrpc_getposttitle($content);
-               $post_category = xmlrpc_getpostcategory($content);
-               $post_content = xmlrpc_removepostdata($content);
-
-               $postdata = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt');
+               $postdata = array();
+               $postdata['ID'] = $actual_post['ID'];
+               $postdata['post_content'] = xmlrpc_removepostdata( $content );
+               $postdata['post_title'] = xmlrpc_getposttitle( $content );
+               $postdata['post_category'] = xmlrpc_getpostcategory( $content );
+               $postdata['post_status'] = $actual_post['post_status'];
+               $postdata['post_excerpt'] = $actual_post['post_excerpt'];
 
 
-               $result = wp_update_post($postdata);
+               $result = wp_update_post( $postdata );
 
 
-               if ( !$result )
+               if ( ! $result ) {
                        return new IXR_Error(500, __('For some strange yet very annoying reason, this post could not be edited.'));
                        return new IXR_Error(500, __('For some strange yet very annoying reason, this post could not be edited.'));
-
-               $this->attach_uploads( $ID, $post_content );
+               }
+               $this->attach_uploads( $actual_post['ID'], $postdata['post_content'] );
 
                /**
                 * Fires after a post has been successfully updated via the XML-RPC Blogger API.
 
                /**
                 * Fires after a post has been successfully updated via the XML-RPC Blogger API.
@@ -4274,7 +4305,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return bool True when post is deleted.
         */
         * @param array $args Method parameters.
         * @return bool True when post is deleted.
         */
-       function blogger_deletePost($args) {
+       public function blogger_deletePost($args) {
                $this->escape($args);
 
                $post_ID     = (int) $args[1];
                $this->escape($args);
 
                $post_ID     = (int) $args[1];
@@ -4353,7 +4384,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *  - publish
         * @return int
         */
         *  - publish
         * @return int
         */
-       function mw_newPost($args) {
+       public function mw_newPost($args) {
                $this->escape($args);
 
                $blog_ID     = (int) $args[0];
                $this->escape($args);
 
                $blog_ID     = (int) $args[0];
@@ -4633,7 +4664,7 @@ class wp_xmlrpc_server extends IXR_Server {
                return strval($post_ID);
        }
 
                return strval($post_ID);
        }
 
-       function add_enclosure_if_new( $post_ID, $enclosure ) {
+       public function add_enclosure_if_new( $post_ID, $enclosure ) {
                if ( is_array( $enclosure ) && isset( $enclosure['url'] ) && isset( $enclosure['length'] ) && isset( $enclosure['type'] ) ) {
                        $encstring = $enclosure['url'] . "\n" . $enclosure['length'] . "\n" . $enclosure['type'] . "\n";
                        $found = false;
                if ( is_array( $enclosure ) && isset( $enclosure['url'] ) && isset( $enclosure['length'] ) && isset( $enclosure['type'] ) ) {
                        $encstring = $enclosure['url'] . "\n" . $enclosure['length'] . "\n" . $enclosure['type'] . "\n";
                        $found = false;
@@ -4659,7 +4690,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param int $post_ID Post ID.
         * @param string $post_content Post Content for attachment.
         */
         * @param int $post_ID Post ID.
         * @param string $post_content Post Content for attachment.
         */
-       function attach_uploads( $post_ID, $post_content ) {
+       public function attach_uploads( $post_ID, $post_content ) {
                global $wpdb;
 
                // find any unattached files
                global $wpdb;
 
                // find any unattached files
@@ -4680,7 +4711,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return bool True on success.
         */
         * @param array $args Method parameters.
         * @return bool True on success.
         */
-       function mw_editPost($args) {
+       public function mw_editPost($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -4724,7 +4755,15 @@ class wp_xmlrpc_server extends IXR_Server {
                }
 
                $this->escape($postdata);
                }
 
                $this->escape($postdata);
-               extract($postdata, EXTR_SKIP);
+
+               $ID = $postdata['ID'];
+               $post_content = $postdata['post_content'];
+               $post_title = $postdata['post_title'];
+               $post_excerpt = $postdata['post_excerpt'];
+               $post_password = $postdata['post_password'];
+               $post_parent = $postdata['post_parent'];
+               $post_type = $postdata['post_type'];
+               $menu_order = $postdata['menu_order'];
 
                // Let WordPress manage slug if none was provided.
                $post_name = "";
 
                // Let WordPress manage slug if none was provided.
                $post_name = "";
@@ -4744,6 +4783,7 @@ class wp_xmlrpc_server extends IXR_Server {
                if ( isset($content_struct['wp_page_order']) )
                        $menu_order = $content_struct['wp_page_order'];
 
                if ( isset($content_struct['wp_page_order']) )
                        $menu_order = $content_struct['wp_page_order'];
 
+               $page_template = null;
                if ( ! empty( $content_struct['wp_page_template'] ) && 'page' == $post_type )
                        $page_template = $content_struct['wp_page_template'];
 
                if ( ! empty( $content_struct['wp_page_template'] ) && 'page' == $post_type )
                        $page_template = $content_struct['wp_page_template'];
 
@@ -4958,7 +4998,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function mw_getPost($args) {
+       public function mw_getPost($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -5083,7 +5123,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function mw_getRecentPosts($args) {
+       public function mw_getRecentPosts($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -5203,7 +5243,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function mw_getCategories($args) {
+       public function mw_getCategories($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -5251,7 +5291,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function mw_newMediaObject($args) {
+       public function mw_newMediaObject($args) {
                global $wpdb;
 
                $blog_ID     = (int) $args[0];
                global $wpdb;
 
                $blog_ID     = (int) $args[0];
@@ -5365,7 +5405,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function mt_getRecentPostTitles($args) {
+       public function mt_getRecentPostTitles($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -5426,7 +5466,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function mt_getCategoryList($args) {
+       public function mt_getCategoryList($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -5465,7 +5505,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function mt_getPostCategories($args) {
+       public function mt_getPostCategories($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -5509,7 +5549,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return bool True on success.
         */
         * @param array $args Method parameters.
         * @return bool True on success.
         */
-       function mt_setPostCategories($args) {
+       public function mt_setPostCategories($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -5548,7 +5588,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function mt_supportedMethods($args) {
+       public function mt_supportedMethods($args) {
 
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
                do_action( 'xmlrpc_call', 'mt.supportedMethods' );
 
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
                do_action( 'xmlrpc_call', 'mt.supportedMethods' );
@@ -5568,7 +5608,7 @@ class wp_xmlrpc_server extends IXR_Server {
         *
         * @param array $args Method parameters.
         */
         *
         * @param array $args Method parameters.
         */
-       function mt_supportedTextFilters($args) {
+       public function mt_supportedTextFilters($args) {
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
                do_action( 'xmlrpc_call', 'mt.supportedTextFilters' );
 
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
                do_action( 'xmlrpc_call', 'mt.supportedTextFilters' );
 
@@ -5590,7 +5630,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return mixed
         */
         * @param array $args Method parameters.
         * @return mixed
         */
-       function mt_getTrackbackPings($args) {
+       public function mt_getTrackbackPings($args) {
 
                global $wpdb;
 
 
                global $wpdb;
 
@@ -5633,7 +5673,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return int
         */
         * @param array $args Method parameters.
         * @return int
         */
-       function mt_publishPost($args) {
+       public function mt_publishPost($args) {
 
                $this->escape($args);
 
 
                $this->escape($args);
 
@@ -5678,7 +5718,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function pingback_ping($args) {
+       public function pingback_ping($args) {
                global $wpdb;
 
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
                global $wpdb;
 
                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
@@ -5719,7 +5759,7 @@ class wp_xmlrpc_server extends IXR_Server {
                $urltest = parse_url($pagelinkedto);
                if ( $post_ID = url_to_postid($pagelinkedto) ) {
                        $way = 'url_to_postid()';
                $urltest = parse_url($pagelinkedto);
                if ( $post_ID = url_to_postid($pagelinkedto) ) {
                        $way = 'url_to_postid()';
-               } elseif ( preg_match('#p/[0-9]{1,}#', $urltest['path'], $match) ) {
+               } elseif ( isset( $urltest['path'] ) && preg_match('#p/[0-9]{1,}#', $urltest['path'], $match) ) {
                        // the path defines the post_ID (archives/p/XXXX)
                        $blah = explode('/', $match[0]);
                        $post_ID = (int) $blah[1];
                        // the path defines the post_ID (archives/p/XXXX)
                        $blah = explode('/', $match[0]);
                        $post_ID = (int) $blah[1];
@@ -5742,7 +5782,7 @@ class wp_xmlrpc_server extends IXR_Server {
                        } elseif ( is_string($urltest['fragment']) ) {
                                // ...or a string #title, a little more complicated
                                $title = preg_replace('/[^a-z0-9]/i', '.', $urltest['fragment']);
                        } elseif ( is_string($urltest['fragment']) ) {
                                // ...or a string #title, a little more complicated
                                $title = preg_replace('/[^a-z0-9]/i', '.', $urltest['fragment']);
-                               $sql = $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_title RLIKE %s", like_escape( $title ) );
+                               $sql = $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_title RLIKE %s", $title );
                                if (! ($post_ID = $wpdb->get_var($sql)) ) {
                                        // returning unknown error '0' is better than die()ing
                                        return $this->pingback_error( 0, '' );
                                if (! ($post_ID = $wpdb->get_var($sql)) ) {
                                        // returning unknown error '0' is better than die()ing
                                        return $this->pingback_error( 0, '' );
@@ -5891,7 +5931,7 @@ class wp_xmlrpc_server extends IXR_Server {
         * @param array $args Method parameters.
         * @return array
         */
         * @param array $args Method parameters.
         * @return array
         */
-       function pingback_extensions_getPingbacks($args) {
+       public function pingback_extensions_getPingbacks($args) {
 
                global $wpdb;
 
 
                global $wpdb;
 
index 033aa16d6a7e853a602875b91a523cff12532c26..4edcaf7307c749603364ca4844a1bb9d5ccf200a 100644 (file)
@@ -15,7 +15,7 @@ class WP {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $public_query_vars = array('m', 'p', 'posts', 'w', 'cat', 'withcomments', 'withoutcomments', 's', 'search', 'exact', 'sentence', 'calendar', 'page', 'paged', 'more', 'tb', 'pb', 'author', 'order', 'orderby', 'year', 'monthnum', 'day', 'hour', 'minute', 'second', 'name', 'category_name', 'tag', 'feed', 'author_name', 'static', 'pagename', 'page_id', 'error', 'comments_popup', 'attachment', 'attachment_id', 'subpost', 'subpost_id', 'preview', 'robots', 'taxonomy', 'term', 'cpage', 'post_type');
+       public $public_query_vars = array('m', 'p', 'posts', 'w', 'cat', 'withcomments', 'withoutcomments', 's', 'search', 'exact', 'sentence', 'calendar', 'page', 'paged', 'more', 'tb', 'pb', 'author', 'order', 'orderby', 'year', 'monthnum', 'day', 'hour', 'minute', 'second', 'name', 'category_name', 'tag', 'feed', 'author_name', 'static', 'pagename', 'page_id', 'error', 'comments_popup', 'attachment', 'attachment_id', 'subpost', 'subpost_id', 'preview', 'robots', 'taxonomy', 'term', 'cpage', 'post_type');
 
        /**
         * Private query variables.
 
        /**
         * Private query variables.
@@ -25,7 +25,7 @@ class WP {
         * @since 2.0.0
         * @var array
         */
         * @since 2.0.0
         * @var array
         */
-       var $private_query_vars = array( 'offset', 'posts_per_page', 'posts_per_archive_page', 'showposts', 'nopaging', 'post_type', 'post_status', 'category__in', 'category__not_in', 'category__and', 'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and', 'tag_id', 'post_mime_type', 'perm', 'comments_per_page', 'post__in', 'post__not_in', 'post_parent', 'post_parent__in', 'post_parent__not_in' );
+       public $private_query_vars = array( 'offset', 'posts_per_page', 'posts_per_archive_page', 'showposts', 'nopaging', 'post_type', 'post_status', 'category__in', 'category__not_in', 'category__and', 'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and', 'tag_id', 'post_mime_type', 'perm', 'comments_per_page', 'post__in', 'post__not_in', 'post_parent', 'post_parent__in', 'post_parent__not_in' );
 
        /**
         * Extra query variables set by the user.
 
        /**
         * Extra query variables set by the user.
@@ -33,7 +33,7 @@ class WP {
         * @since 2.1.0
         * @var array
         */
         * @since 2.1.0
         * @var array
         */
-       var $extra_query_vars = array();
+       public $extra_query_vars = array();
 
        /**
         * Query variables for setting up the WordPress Query Loop.
 
        /**
         * Query variables for setting up the WordPress Query Loop.
@@ -41,7 +41,7 @@ class WP {
         * @since 2.0.0
         * @var array
         */
         * @since 2.0.0
         * @var array
         */
-       var $query_vars;
+       public $query_vars;
 
        /**
         * String parsed to set the query variables.
 
        /**
         * String parsed to set the query variables.
@@ -49,7 +49,7 @@ class WP {
         * @since 2.0.0
         * @var string
         */
         * @since 2.0.0
         * @var string
         */
-       var $query_string;
+       public $query_string;
 
        /**
         * Permalink or requested URI.
 
        /**
         * Permalink or requested URI.
@@ -57,7 +57,7 @@ class WP {
         * @since 2.0.0
         * @var string
         */
         * @since 2.0.0
         * @var string
         */
-       var $request;
+       public $request;
 
        /**
         * Rewrite rule the request matched.
 
        /**
         * Rewrite rule the request matched.
@@ -65,7 +65,7 @@ class WP {
         * @since 2.0.0
         * @var string
         */
         * @since 2.0.0
         * @var string
         */
-       var $matched_rule;
+       public $matched_rule;
 
        /**
         * Rewrite query the request matched.
 
        /**
         * Rewrite query the request matched.
@@ -73,7 +73,7 @@ class WP {
         * @since 2.0.0
         * @var string
         */
         * @since 2.0.0
         * @var string
         */
-       var $matched_query;
+       public $matched_query;
 
        /**
         * Whether already did the permalink.
 
        /**
         * Whether already did the permalink.
@@ -81,7 +81,7 @@ class WP {
         * @since 2.0.0
         * @var bool
         */
         * @since 2.0.0
         * @var bool
         */
-       var $did_permalink = false;
+       public $did_permalink = false;
 
        /**
         * Add name to list of public query variables.
 
        /**
         * Add name to list of public query variables.
@@ -90,7 +90,7 @@ class WP {
         *
         * @param string $qv Query variable name.
         */
         *
         * @param string $qv Query variable name.
         */
-       function add_query_var($qv) {
+       public function add_query_var($qv) {
                if ( !in_array($qv, $this->public_query_vars) )
                        $this->public_query_vars[] = $qv;
        }
                if ( !in_array($qv, $this->public_query_vars) )
                        $this->public_query_vars[] = $qv;
        }
@@ -103,7 +103,7 @@ class WP {
         * @param string $key Query variable name.
         * @param mixed $value Query variable value.
         */
         * @param string $key Query variable name.
         * @param mixed $value Query variable value.
         */
-       function set_query_var($key, $value) {
+       public function set_query_var($key, $value) {
                $this->query_vars[$key] = $value;
        }
 
                $this->query_vars[$key] = $value;
        }
 
@@ -117,7 +117,7 @@ class WP {
         *
         * @param array|string $extra_query_vars Set the extra query variables.
         */
         *
         * @param array|string $extra_query_vars Set the extra query variables.
         */
-       function parse_request($extra_query_vars = '') {
+       public function parse_request($extra_query_vars = '') {
                global $wp_rewrite;
 
                /**
                global $wp_rewrite;
 
                /**
@@ -341,7 +341,7 @@ class WP {
         *
         * @since 2.0.0
         */
         *
         * @since 2.0.0
         */
-       function send_headers() {
+       public function send_headers() {
                $headers = array('X-Pingback' => get_bloginfo('pingback_url'));
                $status = null;
                $exit_required = false;
                $headers = array('X-Pingback' => get_bloginfo('pingback_url'));
                $status = null;
                $exit_required = false;
@@ -456,7 +456,7 @@ class WP {
         *
         * @since 2.0.0
         */
         *
         * @since 2.0.0
         */
-       function build_query_string() {
+       public function build_query_string() {
                $this->query_string = '';
                foreach ( (array) array_keys($this->query_vars) as $wpvar) {
                        if ( '' != $this->query_vars[$wpvar] ) {
                $this->query_string = '';
                foreach ( (array) array_keys($this->query_vars) as $wpvar) {
                        if ( '' != $this->query_vars[$wpvar] ) {
@@ -498,7 +498,7 @@ class WP {
         *
         * @since 2.0.0
         */
         *
         * @since 2.0.0
         */
-       function register_globals() {
+       public function register_globals() {
                global $wp_query;
 
                // Extract updated query vars back into global namespace.
                global $wp_query;
 
                // Extract updated query vars back into global namespace.
@@ -525,7 +525,7 @@ class WP {
         *
         * @since 2.0.0
         */
         *
         * @since 2.0.0
         */
-       function init() {
+       public function init() {
                wp_get_current_user();
        }
 
                wp_get_current_user();
        }
 
@@ -535,7 +535,7 @@ class WP {
         * @uses WP::$query_vars
         * @since 2.0.0
         */
         * @uses WP::$query_vars
         * @since 2.0.0
         */
-       function query_posts() {
+       public function query_posts() {
                global $wp_the_query;
                $this->build_query_string();
                $wp_the_query->query($this->query_vars);
                global $wp_the_query;
                $this->build_query_string();
                $wp_the_query->query($this->query_vars);
@@ -552,7 +552,7 @@ class WP {
         *
         * @since 2.0.0
         */
         *
         * @since 2.0.0
         */
-       function handle_404() {
+       public function handle_404() {
                global $wp_query;
 
                // If we've already issued a 404, bail.
                global $wp_query;
 
                // If we've already issued a 404, bail.
@@ -582,7 +582,7 @@ class WP {
                        }
 
                        // Don't 404 for these queries either.
                        }
 
                        // Don't 404 for these queries either.
-                       if ( is_home() || is_search() ) {
+                       if ( is_home() || is_search() || is_feed() ) {
                                status_header( 200 );
                                return;
                        }
                                status_header( 200 );
                                return;
                        }
@@ -605,7 +605,7 @@ class WP {
         *
         * @param string|array $query_args Passed to {@link parse_request()}
         */
         *
         * @param string|array $query_args Passed to {@link parse_request()}
         */
-       function main($query_args = '') {
+       public function main($query_args = '') {
                $this->init();
                $this->parse_request($query_args);
                $this->send_headers();
                $this->init();
                $this->parse_request($query_args);
                $this->send_headers();
@@ -637,7 +637,7 @@ class WP_MatchesMapRegex {
         * @access private
         * @var array
         */
         * @access private
         * @var array
         */
-       var $_matches;
+       private $_matches;
 
        /**
         * store for mapping result
 
        /**
         * store for mapping result
@@ -645,7 +645,7 @@ class WP_MatchesMapRegex {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $output;
+       public $output;
 
        /**
         * subject to perform mapping on (query string containing $matches[] references
 
        /**
         * subject to perform mapping on (query string containing $matches[] references
@@ -653,14 +653,80 @@ class WP_MatchesMapRegex {
         * @access private
         * @var string
         */
         * @access private
         * @var string
         */
-       var $_subject;
+       private $_subject;
 
        /**
         * regexp pattern to match $matches[] references
         *
         * @var string
         */
 
        /**
         * regexp pattern to match $matches[] references
         *
         * @var string
         */
-       var $_pattern = '(\$matches\[[1-9]+[0-9]*\])'; // magic number
+       public $_pattern = '(\$matches\[[1-9]+[0-9]*\])'; // magic number
+
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
+       /**
+        * Make private/protected methods readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param callable $name      Method to call.
+        * @param array    $arguments Arguments to pass when calling.
+        * @return mixed|bool Return value of the callback, false otherwise.
+        */
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this, $name ), $arguments );
+       }
 
        /**
         * constructor
 
        /**
         * constructor
@@ -669,7 +735,7 @@ class WP_MatchesMapRegex {
         * @param array  $matches data to use in map
         * @return self
         */
         * @param array  $matches data to use in map
         * @return self
         */
-       function WP_MatchesMapRegex($subject, $matches) {
+       public function WP_MatchesMapRegex($subject, $matches) {
                $this->_subject = $subject;
                $this->_matches = $matches;
                $this->output = $this->_map();
                $this->_subject = $subject;
                $this->_matches = $matches;
                $this->output = $this->_map();
@@ -696,7 +762,7 @@ class WP_MatchesMapRegex {
         * @access private
         * @return string
         */
         * @access private
         * @return string
         */
-       function _map() {
+       private function _map() {
                $callback = array($this, 'callback');
                return preg_replace_callback($this->_pattern, $callback, $this->_subject);
        }
                $callback = array($this, 'callback');
                return preg_replace_callback($this->_pattern, $callback, $this->_subject);
        }
@@ -708,7 +774,7 @@ class WP_MatchesMapRegex {
         * @param  array $matches preg_replace regexp matches
         * @return string
         */
         * @param  array $matches preg_replace regexp matches
         * @return string
         */
-       function callback($matches) {
+       public function callback($matches) {
                $index = intval(substr($matches[0], 9, -1));
                return ( isset( $this->_matches[$index] ) ? urlencode($this->_matches[$index]) : '' );
        }
                $index = intval(substr($matches[0], 9, -1));
                return ( isset( $this->_matches[$index] ) ? urlencode($this->_matches[$index]) : '' );
        }
index 158d3e03e79ff3dd1badbffba42dfc2b63d75da7..c1bac65ba18ed720cabd5eaaef079ef0281e3131 100644 (file)
@@ -18,7 +18,7 @@ class WP_Dependencies {
         * @since 2.6.8
         * @var array
         */
         * @since 2.6.8
         * @var array
         */
-       var $registered = array();
+       public $registered = array();
 
        /**
         * An array of queued _WP_Dependency handle objects.
 
        /**
         * An array of queued _WP_Dependency handle objects.
@@ -27,7 +27,7 @@ class WP_Dependencies {
         * @since 2.6.8
         * @var array
         */
         * @since 2.6.8
         * @var array
         */
-       var $queue = array();
+       public $queue = array();
 
        /**
         * An array of _WP_Dependency handle objects to queue.
 
        /**
         * An array of _WP_Dependency handle objects to queue.
@@ -36,7 +36,7 @@ class WP_Dependencies {
         * @since 2.6.0
         * @var array
         */
         * @since 2.6.0
         * @var array
         */
-       var $to_do = array();
+       public $to_do = array();
 
        /**
         * An array of _WP_Dependency handle objects already queued.
 
        /**
         * An array of _WP_Dependency handle objects already queued.
@@ -45,7 +45,7 @@ class WP_Dependencies {
         * @since 2.6.0
         * @var array
         */
         * @since 2.6.0
         * @var array
         */
-       var $done = array();
+       public $done = array();
 
        /**
         * An array of additional arguments passed when a handle is registered.
 
        /**
         * An array of additional arguments passed when a handle is registered.
@@ -56,7 +56,7 @@ class WP_Dependencies {
         * @since 2.6.0
         * @var array
         */
         * @since 2.6.0
         * @var array
         */
-       var $args = array();
+       public $args = array();
 
        /**
         * An array of handle groups to enqueue.
 
        /**
         * An array of handle groups to enqueue.
@@ -65,7 +65,7 @@ class WP_Dependencies {
         * @since 2.8.0
         * @var array
         */
         * @since 2.8.0
         * @var array
         */
-       var $groups = array();
+       public $groups = array();
 
        /**
         * A handle group to enqueue.
 
        /**
         * A handle group to enqueue.
@@ -74,7 +74,7 @@ class WP_Dependencies {
         * @since 2.8.0
         * @var int
         */
         * @since 2.8.0
         * @var int
         */
-       var $group = 0;
+       public $group = 0;
 
        /**
         * Process the items and dependencies.
 
        /**
         * Process the items and dependencies.
@@ -324,6 +324,31 @@ class WP_Dependencies {
                }
        }
 
                }
        }
 
+       /**
+        * Recursively search the passed dependency tree for $handle
+        *
+        * @since 4.0.0
+        *
+        * @param array  $queue  An array of queued _WP_Dependency handle objects.
+        * @param string $handle Name of the item. Should be unique.
+        * @return boolean Whether the handle is found after recursively searching the dependency tree.
+        */
+       protected function recurse_deps( $queue, $handle ) {
+               foreach ( $queue as $queued ) {
+                       if ( ! isset( $this->registered[ $queued ] ) ) {
+                               continue;
+                       }
+
+                       if ( in_array( $handle, $this->registered[ $queued ]->deps ) ) {
+                               return true;
+                       } elseif ( $this->recurse_deps( $this->registered[ $queued ]->deps, $handle ) ) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
        /**
         * Query list for an item.
         *
        /**
         * Query list for an item.
         *
@@ -344,7 +369,10 @@ class WP_Dependencies {
 
                        case 'enqueued' :
                        case 'queue' :
 
                        case 'enqueued' :
                        case 'queue' :
-                               return in_array( $handle, $this->queue );
+                               if ( in_array( $handle, $this->queue ) ) {
+                                       return true;
+                               }
+                               return $this->recurse_deps( $this->queue, $handle );
 
                        case 'to_do' :
                        case 'to_print': // back compat
 
                        case 'to_do' :
                        case 'to_print': // back compat
@@ -401,7 +429,7 @@ class _WP_Dependency {
         * @since 2.6.0
         * @var null
         */
         * @since 2.6.0
         * @var null
         */
-       var $handle;
+       public $handle;
 
        /**
         * The handle source.
 
        /**
         * The handle source.
@@ -410,7 +438,7 @@ class _WP_Dependency {
         * @since 2.6.0
         * @var null
         */
         * @since 2.6.0
         * @var null
         */
-       var $src;
+       public $src;
 
        /**
         * An array of handle dependencies.
 
        /**
         * An array of handle dependencies.
@@ -419,7 +447,7 @@ class _WP_Dependency {
         * @since 2.6.0
         * @var array
         */
         * @since 2.6.0
         * @var array
         */
-       var $deps = array();
+       public $deps = array();
 
        /**
         * The handle version.
 
        /**
         * The handle version.
@@ -430,7 +458,7 @@ class _WP_Dependency {
         * @since 2.6.0
         * @var bool|string
         */
         * @since 2.6.0
         * @var bool|string
         */
-       var $ver = false;
+       public $ver = false;
 
        /**
         * Additional arguments for the handle.
 
        /**
         * Additional arguments for the handle.
@@ -439,7 +467,7 @@ class _WP_Dependency {
         * @since 2.6.0
         * @var null
         */
         * @since 2.6.0
         * @var null
         */
-       var $args = null;  // Custom property, such as $in_footer or $media.
+       public $args = null;  // Custom property, such as $in_footer or $media.
 
        /**
         * Extra data to supply to the handle.
 
        /**
         * Extra data to supply to the handle.
@@ -448,14 +476,14 @@ class _WP_Dependency {
         * @since 2.6.0
         * @var array
         */
         * @since 2.6.0
         * @var array
         */
-       var $extra = array();
+       public $extra = array();
 
        /**
         * Setup dependencies.
         *
         * @since 2.6.0
         */
 
        /**
         * Setup dependencies.
         *
         * @since 2.6.0
         */
-       function __construct() {
+       public function __construct() {
                @list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args();
                if ( ! is_array($this->deps) )
                        $this->deps = array();
                @list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args();
                if ( ! is_array($this->deps) )
                        $this->deps = array();
@@ -471,7 +499,7 @@ class _WP_Dependency {
         * @param mixed  $data The data value to add.
         * @return bool False if not scalar, true otherwise.
         */
         * @param mixed  $data The data value to add.
         * @return bool False if not scalar, true otherwise.
         */
-       function add_data( $name, $data ) {
+       public function add_data( $name, $data ) {
                if ( !is_scalar($name) )
                        return false;
                $this->extra[$name] = $data;
                if ( !is_scalar($name) )
                        return false;
                $this->extra[$name] = $data;
index 1ceb51d8836e5f130d1c1fd3b8d92ff419b76454..89a9ec91d4ee0d13f651b614e46f812f0c88f303 100644 (file)
  * @since r16
  */
 class WP_Scripts extends WP_Dependencies {
  * @since r16
  */
 class WP_Scripts extends WP_Dependencies {
-       var $base_url; // Full URL with trailing slash
-       var $content_url;
-       var $default_version;
-       var $in_footer = array();
-       var $concat = '';
-       var $concat_version = '';
-       var $do_concat = false;
-       var $print_html = '';
-       var $print_code = '';
-       var $ext_handles = '';
-       var $ext_version = '';
-       var $default_dirs;
-
-       function __construct() {
+       public $base_url; // Full URL with trailing slash
+       public $content_url;
+       public $default_version;
+       public $in_footer = array();
+       public $concat = '';
+       public $concat_version = '';
+       public $do_concat = false;
+       public $print_html = '';
+       public $print_code = '';
+       public $ext_handles = '';
+       public $ext_version = '';
+       public $default_dirs;
+
+       public function __construct() {
                $this->init();
                add_action( 'init', array( $this, 'init' ), 0 );
        }
 
                $this->init();
                add_action( 'init', array( $this, 'init' ), 0 );
        }
 
-       function init() {
+       public function init() {
                /**
                 * Fires when the WP_Scripts instance is initialized.
                 *
                /**
                 * Fires when the WP_Scripts instance is initialized.
                 *
@@ -55,17 +55,17 @@ class WP_Scripts extends WP_Dependencies {
         * @param int $group (optional) If scripts were queued in groups prints this group number.
         * @return array Scripts that have been printed
         */
         * @param int $group (optional) If scripts were queued in groups prints this group number.
         * @return array Scripts that have been printed
         */
-       function print_scripts( $handles = false, $group = false ) {
+       public function print_scripts( $handles = false, $group = false ) {
                return $this->do_items( $handles, $group );
        }
 
        // Deprecated since 3.3, see print_extra_script()
                return $this->do_items( $handles, $group );
        }
 
        // Deprecated since 3.3, see print_extra_script()
-       function print_scripts_l10n( $handle, $echo = true ) {
+       public function print_scripts_l10n( $handle, $echo = true ) {
                _deprecated_function( __FUNCTION__, '3.3', 'print_extra_script()' );
                return $this->print_extra_script( $handle, $echo );
        }
 
                _deprecated_function( __FUNCTION__, '3.3', 'print_extra_script()' );
                return $this->print_extra_script( $handle, $echo );
        }
 
-       function print_extra_script( $handle, $echo = true ) {
+       public function print_extra_script( $handle, $echo = true ) {
                if ( !$output = $this->get_data( $handle, 'data' ) )
                        return;
 
                if ( !$output = $this->get_data( $handle, 'data' ) )
                        return;
 
@@ -81,7 +81,7 @@ class WP_Scripts extends WP_Dependencies {
                return true;
        }
 
                return true;
        }
 
-       function do_item( $handle, $group = false ) {
+       public function do_item( $handle, $group = false ) {
                if ( !parent::do_item($handle) )
                        return false;
 
                if ( !parent::do_item($handle) )
                        return false;
 
@@ -151,7 +151,7 @@ class WP_Scripts extends WP_Dependencies {
         *
         * Localizes only if the script has already been added
         */
         *
         * Localizes only if the script has already been added
         */
-       function localize( $handle, $object_name, $l10n ) {
+       public function localize( $handle, $object_name, $l10n ) {
                if ( $handle === 'jquery' )
                        $handle = 'jquery-core';
 
                if ( $handle === 'jquery' )
                        $handle = 'jquery-core';
 
@@ -180,7 +180,7 @@ class WP_Scripts extends WP_Dependencies {
                return $this->add_data( $handle, 'data', $script );
        }
 
                return $this->add_data( $handle, 'data', $script );
        }
 
-       function set_group( $handle, $recursion, $group = false ) {
+       public function set_group( $handle, $recursion, $group = false ) {
 
                if ( $this->registered[$handle]->args === 1 )
                        $grp = 1;
 
                if ( $this->registered[$handle]->args === 1 )
                        $grp = 1;
@@ -193,7 +193,7 @@ class WP_Scripts extends WP_Dependencies {
                return parent::set_group( $handle, $recursion, $grp );
        }
 
                return parent::set_group( $handle, $recursion, $grp );
        }
 
-       function all_deps( $handles, $recursion = false, $group = false ) {
+       public function all_deps( $handles, $recursion = false, $group = false ) {
                $r = parent::all_deps( $handles, $recursion );
                if ( ! $recursion ) {
                        /**
                $r = parent::all_deps( $handles, $recursion );
                if ( ! $recursion ) {
                        /**
@@ -208,31 +208,34 @@ class WP_Scripts extends WP_Dependencies {
                return $r;
        }
 
                return $r;
        }
 
-       function do_head_items() {
+       public function do_head_items() {
                $this->do_items(false, 0);
                return $this->done;
        }
 
                $this->do_items(false, 0);
                return $this->done;
        }
 
-       function do_footer_items() {
+       public function do_footer_items() {
                $this->do_items(false, 1);
                return $this->done;
        }
 
                $this->do_items(false, 1);
                return $this->done;
        }
 
-       function in_default_dir($src) {
-               if ( ! $this->default_dirs )
+       public function in_default_dir( $src ) {
+               if ( ! $this->default_dirs ) {
                        return true;
                        return true;
+               }
 
 
-               if ( 0 === strpos( $src, '/wp-includes/js/l10n' ) )
+               if ( 0 === strpos( $src, '/' . WPINC . '/js/l10n' ) ) {
                        return false;
                        return false;
+               }
 
                foreach ( (array) $this->default_dirs as $test ) {
 
                foreach ( (array) $this->default_dirs as $test ) {
-                       if ( 0 === strpos($src, $test) )
+                       if ( 0 === strpos( $src, $test ) ) {
                                return true;
                                return true;
+                       }
                }
                return false;
        }
 
                }
                return false;
        }
 
-       function reset() {
+       public function reset() {
                $this->do_concat = false;
                $this->print_code = '';
                $this->concat = '';
                $this->do_concat = false;
                $this->print_code = '';
                $this->concat = '';
index dbdc82984dc8c94a71df68f2638b7c64acc241e0..1a017ac5a4c2a1c9e0fe7ebdbef4c2ab697be617 100644 (file)
  * @since r74
  */
 class WP_Styles extends WP_Dependencies {
  * @since r74
  */
 class WP_Styles extends WP_Dependencies {
-       var $base_url;
-       var $content_url;
-       var $default_version;
-       var $text_direction = 'ltr';
-       var $concat = '';
-       var $concat_version = '';
-       var $do_concat = false;
-       var $print_html = '';
-       var $print_code = '';
-       var $default_dirs;
-
-       function __construct() {
+       public $base_url;
+       public $content_url;
+       public $default_version;
+       public $text_direction = 'ltr';
+       public $concat = '';
+       public $concat_version = '';
+       public $do_concat = false;
+       public $print_html = '';
+       public $print_code = '';
+       public $default_dirs;
+
+       public function __construct() {
                /**
                 * Fires when the WP_Styles instance is initialized.
                 *
                /**
                 * Fires when the WP_Styles instance is initialized.
                 *
@@ -39,7 +39,7 @@ class WP_Styles extends WP_Dependencies {
                do_action_ref_array( 'wp_default_styles', array(&$this) );
        }
 
                do_action_ref_array( 'wp_default_styles', array(&$this) );
        }
 
-       function do_item( $handle ) {
+       public function do_item( $handle ) {
                if ( !parent::do_item($handle) )
                        return false;
 
                if ( !parent::do_item($handle) )
                        return false;
 
@@ -93,14 +93,7 @@ class WP_Styles extends WP_Dependencies {
                                $rtl_href = $this->_css_href( $obj->extra['rtl'], $ver, "$handle-rtl" );
                        }
 
                                $rtl_href = $this->_css_href( $obj->extra['rtl'], $ver, "$handle-rtl" );
                        }
 
-                       /**
-                        * Filter the right-to-left (RTL) HTML link tag of an enqueued style.
-                        *
-                        * @since 2.6.0
-                        *
-                        * @param string $rtl_style The right to left link tag for the enqueued style.
-                        * @param string $handle    The style's registered handle.
-                        */
+                       /** This filter is documented in wp-includes/class.wp-styles.php */
                        $rtl_tag = apply_filters( 'style_loader_tag', "<link rel='$rel' id='$handle-rtl-css' $title href='$rtl_href' type='text/css' media='$media' />\n", $handle );
 
                        if ( $obj->extra['rtl'] === 'replace' ) {
                        $rtl_tag = apply_filters( 'style_loader_tag', "<link rel='$rel' id='$handle-rtl-css' $title href='$rtl_href' type='text/css' media='$media' />\n", $handle );
 
                        if ( $obj->extra['rtl'] === 'replace' ) {
@@ -126,7 +119,7 @@ class WP_Styles extends WP_Dependencies {
                return true;
        }
 
                return true;
        }
 
-       function add_inline_style( $handle, $code ) {
+       public function add_inline_style( $handle, $code ) {
                if ( !$code )
                        return false;
 
                if ( !$code )
                        return false;
 
@@ -139,7 +132,7 @@ class WP_Styles extends WP_Dependencies {
                return $this->add_data( $handle, 'after', $after );
        }
 
                return $this->add_data( $handle, 'after', $after );
        }
 
-       function print_inline_style( $handle, $echo = true ) {
+       public function print_inline_style( $handle, $echo = true ) {
                $output = $this->get_data( $handle, 'after' );
 
                if ( empty( $output ) )
                $output = $this->get_data( $handle, 'after' );
 
                if ( empty( $output ) )
@@ -157,7 +150,7 @@ class WP_Styles extends WP_Dependencies {
                return true;
        }
 
                return true;
        }
 
-       function all_deps( $handles, $recursion = false, $group = false ) {
+       public function all_deps( $handles, $recursion = false, $group = false ) {
                $r = parent::all_deps( $handles, $recursion );
                if ( !$recursion ) {
                        /**
                $r = parent::all_deps( $handles, $recursion );
                if ( !$recursion ) {
                        /**
@@ -172,7 +165,7 @@ class WP_Styles extends WP_Dependencies {
                return $r;
        }
 
                return $r;
        }
 
-       function _css_href( $src, $ver, $handle ) {
+       public function _css_href( $src, $ver, $handle ) {
                if ( !is_bool($src) && !preg_match('|^(https?:)?//|', $src) && ! ( $this->content_url && 0 === strpos($src, $this->content_url) ) ) {
                        $src = $this->base_url . $src;
                }
                if ( !is_bool($src) && !preg_match('|^(https?:)?//|', $src) && ! ( $this->content_url && 0 === strpos($src, $this->content_url) ) ) {
                        $src = $this->base_url . $src;
                }
@@ -192,7 +185,7 @@ class WP_Styles extends WP_Dependencies {
                return esc_url( $src );
        }
 
                return esc_url( $src );
        }
 
-       function in_default_dir($src) {
+       public function in_default_dir($src) {
                if ( ! $this->default_dirs )
                        return true;
 
                if ( ! $this->default_dirs )
                        return true;
 
@@ -203,12 +196,12 @@ class WP_Styles extends WP_Dependencies {
                return false;
        }
 
                return false;
        }
 
-       function do_footer_items() { // HTML 5 allows styles in the body, grab late enqueued items and output them in the footer.
+       public function do_footer_items() { // HTML 5 allows styles in the body, grab late enqueued items and output them in the footer.
                $this->do_items(false, 1);
                return $this->done;
        }
 
                $this->do_items(false, 1);
                return $this->done;
        }
 
-       function reset() {
+       public function reset() {
                $this->do_concat = false;
                $this->concat = '';
                $this->concat_version = '';
                $this->do_concat = false;
                $this->concat = '';
                $this->concat_version = '';
index 978221f980abb855c2c0061f49a647bedda686e0..0d44376b2a178a9142cab9a864bbb1a21dfe9123 100644 (file)
@@ -641,7 +641,7 @@ function get_comment_link( $comment = null, $args = array() ) {
  *
  * @since 1.5.0
  *
  *
  * @since 1.5.0
  *
- * @param int|WP_Post $post_id Post ID or WP_Post object. Default current post.
+ * @param int|WP_Post $post_id Optional. Post ID or WP_Post object. Default is global $post.
  * @return string The link to the comments.
  */
 function get_comments_link( $post_id = 0 ) {
  * @return string The link to the comments.
  */
 function get_comments_link( $post_id = 0 ) {
@@ -678,28 +678,26 @@ function comments_link( $deprecated = '', $deprecated_2 = '' ) {
  *
  * @since 1.5.0
  *
  *
  * @since 1.5.0
  *
- * @param int|WP_Post $post_id Post ID or WP_Post object. Default current post.
+ * @param int|WP_Post $post_id Optional. Post ID or WP_Post object. Default is global $post.
  * @return int The number of comments a post has.
  */
 function get_comments_number( $post_id = 0 ) {
  * @return int The number of comments a post has.
  */
 function get_comments_number( $post_id = 0 ) {
-       $post_id = absint( $post_id );
-
-       if ( !$post_id )
-               $post_id = get_the_ID();
+       $post = get_post( $post_id );
 
 
-       $post = get_post($post_id);
-       if ( ! isset($post->comment_count) )
+       if ( ! $post ) {
                $count = 0;
                $count = 0;
-       else
+       } else {
                $count = $post->comment_count;
                $count = $post->comment_count;
+               $post_id = $post->ID;
+       }
 
        /**
         * Filter the returned comment count for a post.
         *
         * @since 1.5.0
         *
 
        /**
         * Filter the returned comment count for a post.
         *
         * @since 1.5.0
         *
-        * @param int         $count   Nnumber of comments a post has.
-        * @param int|WP_Post $post_id Post ID or WP_Post object.
+        * @param int $count   Number of comments a post has.
+        * @param int $post_id Post ID.
         */
        return apply_filters( 'get_comments_number', $count, $post_id );
 }
         */
        return apply_filters( 'get_comments_number', $count, $post_id );
 }
@@ -715,18 +713,31 @@ function get_comments_number( $post_id = 0 ) {
  * @param string $deprecated Not used.
  */
 function comments_number( $zero = false, $one = false, $more = false, $deprecated = '' ) {
  * @param string $deprecated Not used.
  */
 function comments_number( $zero = false, $one = false, $more = false, $deprecated = '' ) {
-       if ( !empty( $deprecated ) )
+       if ( ! empty( $deprecated ) ) {
                _deprecated_argument( __FUNCTION__, '1.3' );
                _deprecated_argument( __FUNCTION__, '1.3' );
+       }
+       echo get_comments_number_text( $zero, $one, $more );
+}
 
 
+/**
+ * Display the language string for the number of comments the current post has.
+ *
+ * @since 4.0.0
+ *
+ * @param string $zero Optional. Text for no comments. Default false.
+ * @param string $one  Optional. Text for one comment. Default false.
+ * @param string $more Optional. Text for more than one comment. Default false.
+ */
+function get_comments_number_text( $zero = false, $one = false, $more = false ) {
        $number = get_comments_number();
 
        $number = get_comments_number();
 
-       if ( $number > 1 )
-               $output = str_replace('%', number_format_i18n($number), ( false === $more ) ? __('% Comments') : $more);
-       elseif ( $number == 0 )
-               $output = ( false === $zero ) ? __('No Comments') : $zero;
-       else // must be one
-               $output = ( false === $one ) ? __('1 Comment') : $one;
-
+       if ( $number > 1 ) {
+               $output = str_replace( '%', number_format_i18n( $number ), ( false === $more ) ? __( '% Comments' ) : $more );
+       } elseif ( $number == 0 ) {
+               $output = ( false === $zero ) ? __( 'No Comments' ) : $zero;
+       } else { // must be one
+               $output = ( false === $one ) ? __( '1 Comment' ) : $one;
+       }
        /**
         * Filter the comments count for display.
         *
        /**
         * Filter the comments count for display.
         *
@@ -738,7 +749,7 @@ function comments_number( $zero = false, $one = false, $more = false, $deprecate
         *                       is equal to 0, 1, or 1+.
         * @param int    $number The number of post comments.
         */
         *                       is equal to 0, 1, or 1+.
         * @param int    $number The number of post comments.
         */
-       echo apply_filters( 'comments_number', $output, $number );
+       return apply_filters( 'comments_number', $output, $number );
 }
 
 /**
 }
 
 /**
@@ -1291,7 +1302,7 @@ function comments_popup_link( $zero = false, $one = false, $more = false, $css_c
  *                             Default current post.
  * @return mixed Link to show comment form, if successful. False, if comments are closed.
  */
  *                             Default current post.
  * @return mixed Link to show comment form, if successful. False, if comments are closed.
  */
-function get_comment_reply_link($args = array(), $comment = null, $post = null) {
+function get_comment_reply_link( $args = array(), $comment = null, $post = null ) {
 
        $defaults = array(
                'add_below'  => 'comment',
 
        $defaults = array(
                'add_below'  => 'comment',
@@ -1303,28 +1314,31 @@ function get_comment_reply_link($args = array(), $comment = null, $post = null)
                'after'      => ''
        );
 
                'after'      => ''
        );
 
-       $args = wp_parse_args($args, $defaults);
+       $args = wp_parse_args( $args, $defaults );
 
 
-       if ( 0 == $args['depth'] || $args['max_depth'] <= $args['depth'] )
+       if ( 0 == $args['depth'] || $args['max_depth'] <= $args['depth'] ) {
                return;
                return;
+       }
 
 
-       extract($args, EXTR_SKIP);
+       $add_below = $args['add_below'];
+       $respond_id = $args['respond_id'];
+       $reply_text = $args['reply_text'];
 
 
-       $comment = get_comment($comment);
-       if ( empty($post) )
+       $comment = get_comment( $comment );
+       if ( empty( $post ) ) {
                $post = $comment->comment_post_ID;
                $post = $comment->comment_post_ID;
-       $post = get_post($post);
+       }
+       $post = get_post( $post );
 
 
-       if ( !comments_open($post->ID) )
+       if ( ! comments_open( $post->ID ) ) {
                return false;
                return false;
+       }
 
 
-       $link = '';
-
-       if ( get_option('comment_registration') && ! is_user_logged_in() )
-               $link = '<a rel="nofollow" class="comment-reply-login" href="' . esc_url( wp_login_url( get_permalink() ) ) . '">' . $login_text . '</a>';
-       else
+       if ( get_option( 'comment_registration' ) && ! is_user_logged_in() ) {
+               $link = '<a rel="nofollow" class="comment-reply-login" href="' . esc_url( wp_login_url( get_permalink() ) ) . '">' . $args['login_text'] . '</a>';
+       } else {
                $link = "<a class='comment-reply-link' href='" . esc_url( add_query_arg( 'replytocom', $comment->comment_ID ) ) . "#" . $respond_id . "' onclick='return addComment.moveForm(\"$add_below-$comment->comment_ID\", \"$comment->comment_ID\", \"$respond_id\", \"$post->ID\")'>$reply_text</a>";
                $link = "<a class='comment-reply-link' href='" . esc_url( add_query_arg( 'replytocom', $comment->comment_ID ) ) . "#" . $respond_id . "' onclick='return addComment.moveForm(\"$add_below-$comment->comment_ID\", \"$comment->comment_ID\", \"$respond_id\", \"$post->ID\")'>$reply_text</a>";
-
+       }
        /**
         * Filter the comment reply link.
         *
        /**
         * Filter the comment reply link.
         *
@@ -1335,7 +1349,7 @@ function get_comment_reply_link($args = array(), $comment = null, $post = null)
         * @param object  $comment The object of the comment being replied.
         * @param WP_Post $post    The WP_Post object.
         */
         * @param object  $comment The object of the comment being replied.
         * @param WP_Post $post    The WP_Post object.
         */
-       return apply_filters( 'comment_reply_link', $before . $link . $after, $args, $comment, $post );
+       return apply_filters( 'comment_reply_link', $args['before'] . $link . $args['after'], $args, $comment, $post );
 }
 
 /**
 }
 
 /**
@@ -1389,18 +1403,21 @@ function get_post_reply_link($args = array(), $post = null) {
        );
 
        $args = wp_parse_args($args, $defaults);
        );
 
        $args = wp_parse_args($args, $defaults);
-       extract($args, EXTR_SKIP);
+       $add_below = $args['add_below'];
+       $respond_id = $args['respond_id'];
+       $reply_text = $args['reply_text'];
        $post = get_post($post);
 
        $post = get_post($post);
 
-       if ( !comments_open($post->ID) )
+       if ( ! comments_open( $post->ID ) ) {
                return false;
                return false;
+       }
 
 
-       if ( get_option('comment_registration') && ! is_user_logged_in() )
-               $link = '<a rel="nofollow" href="' . wp_login_url( get_permalink() ) . '">' . $login_text . '</a>';
-       else
+       if ( get_option('comment_registration') && ! is_user_logged_in() ) {
+               $link = '<a rel="nofollow" href="' . wp_login_url( get_permalink() ) . '">' . $args['login_text'] . '</a>';
+       } else {
                $link = "<a rel='nofollow' class='comment-reply-link' href='" . get_permalink($post->ID) . "#$respond_id' onclick='return addComment.moveForm(\"$add_below-$post->ID\", \"0\", \"$respond_id\", \"$post->ID\")'>$reply_text</a>";
                $link = "<a rel='nofollow' class='comment-reply-link' href='" . get_permalink($post->ID) . "#$respond_id' onclick='return addComment.moveForm(\"$add_below-$post->ID\", \"0\", \"$respond_id\", \"$post->ID\")'>$reply_text</a>";
-
-       $formatted_link = $before . $link . $after;
+       }
+       $formatted_link = $args['before'] . $link . $args['after'];
        /**
         * Filter the formatted post comments link HTML.
         *
        /**
         * Filter the formatted post comments link HTML.
         *
@@ -1552,7 +1569,7 @@ class Walker_Comment extends Walker {
         * @since 2.7.0
         * @var string
         */
         * @since 2.7.0
         * @var string
         */
-       var $tree_type = 'comment';
+       public $tree_type = 'comment';
 
        /**
         * DB fields to use.
 
        /**
         * DB fields to use.
@@ -1562,7 +1579,7 @@ class Walker_Comment extends Walker {
         * @since 2.7.0
         * @var array
         */
         * @since 2.7.0
         * @var array
         */
-       var $db_fields = array ('parent' => 'comment_parent', 'id' => 'comment_ID');
+       public $db_fields = array ('parent' => 'comment_parent', 'id' => 'comment_ID');
 
        /**
         * Start the list before the elements are added.
 
        /**
         * Start the list before the elements are added.
@@ -1575,7 +1592,7 @@ class Walker_Comment extends Walker {
         * @param int $depth Depth of comment.
         * @param array $args Uses 'style' argument for type of HTML list.
         */
         * @param int $depth Depth of comment.
         * @param array $args Uses 'style' argument for type of HTML list.
         */
-       function start_lvl( &$output, $depth = 0, $args = array() ) {
+       public function start_lvl( &$output, $depth = 0, $args = array() ) {
                $GLOBALS['comment_depth'] = $depth + 1;
 
                switch ( $args['style'] ) {
                $GLOBALS['comment_depth'] = $depth + 1;
 
                switch ( $args['style'] ) {
@@ -1584,8 +1601,8 @@ class Walker_Comment extends Walker {
                        case 'ol':
                                $output .= '<ol class="children">' . "\n";
                                break;
                        case 'ol':
                                $output .= '<ol class="children">' . "\n";
                                break;
-                       default:
                        case 'ul':
                        case 'ul':
+                       default:
                                $output .= '<ul class="children">' . "\n";
                                break;
                }
                                $output .= '<ul class="children">' . "\n";
                                break;
                }
@@ -1602,7 +1619,7 @@ class Walker_Comment extends Walker {
         * @param int    $depth  Depth of comment.
         * @param array  $args   Will only append content if style argument value is 'ol' or 'ul'.
         */
         * @param int    $depth  Depth of comment.
         * @param array  $args   Will only append content if style argument value is 'ol' or 'ul'.
         */
-       function end_lvl( &$output, $depth = 0, $args = array() ) {
+       public function end_lvl( &$output, $depth = 0, $args = array() ) {
                $GLOBALS['comment_depth'] = $depth + 1;
 
                switch ( $args['style'] ) {
                $GLOBALS['comment_depth'] = $depth + 1;
 
                switch ( $args['style'] ) {
@@ -1611,8 +1628,8 @@ class Walker_Comment extends Walker {
                        case 'ol':
                                $output .= "</ol><!-- .children -->\n";
                                break;
                        case 'ol':
                                $output .= "</ol><!-- .children -->\n";
                                break;
-                       default:
                        case 'ul':
                        case 'ul':
+                       default:
                                $output .= "</ul><!-- .children -->\n";
                                break;
                }
                                $output .= "</ul><!-- .children -->\n";
                                break;
                }
@@ -1650,7 +1667,7 @@ class Walker_Comment extends Walker {
         * @param string $output            Passed by reference. Used to append additional content.
         * @return null Null on failure with no changes to parameters.
         */
         * @param string $output            Passed by reference. Used to append additional content.
         * @return null Null on failure with no changes to parameters.
         */
-       function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) {
+       public function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) {
 
                if ( !$element )
                        return;
 
                if ( !$element )
                        return;
@@ -1684,7 +1701,7 @@ class Walker_Comment extends Walker {
         * @param int    $depth   Depth of comment in reference to parents.
         * @param array  $args    An array of arguments.
         */
         * @param int    $depth   Depth of comment in reference to parents.
         * @param array  $args    An array of arguments.
         */
-       function start_el( &$output, $comment, $depth = 0, $args = array(), $id = 0 ) {
+       public function start_el( &$output, $comment, $depth = 0, $args = array(), $id = 0 ) {
                $depth++;
                $GLOBALS['comment_depth'] = $depth;
                $GLOBALS['comment'] = $comment;
                $depth++;
                $GLOBALS['comment_depth'] = $depth;
                $GLOBALS['comment'] = $comment;
@@ -1724,7 +1741,7 @@ class Walker_Comment extends Walker {
         * @param int    $depth   Depth of comment.
         * @param array  $args    An array of arguments.
         */
         * @param int    $depth   Depth of comment.
         * @param array  $args    An array of arguments.
         */
-       function end_el( &$output, $comment, $depth = 0, $args = array() ) {
+       public function end_el( &$output, $comment, $depth = 0, $args = array() ) {
                if ( !empty( $args['end-callback'] ) ) {
                        ob_start();
                        call_user_func( $args['end-callback'], $comment, $args, $depth );
                if ( !empty( $args['end-callback'] ) ) {
                        ob_start();
                        call_user_func( $args['end-callback'], $comment, $args, $depth );
@@ -1780,7 +1797,7 @@ class Walker_Comment extends Walker {
                        $add_below = 'div-comment';
                }
 ?>
                        $add_below = 'div-comment';
                }
 ?>
-               <<?php echo $tag; ?> <?php comment_class( empty( $args['has_children'] ) ? '' : 'parent' ); ?> id="comment-<?php comment_ID(); ?>">
+               <<?php echo $tag; ?> <?php comment_class( $this->has_children ? 'parent' : '' ); ?> id="comment-<?php comment_ID(); ?>">
                <?php if ( 'div' != $args['style'] ) : ?>
                <div id="div-comment-<?php comment_ID(); ?>" class="comment-body">
                <?php endif; ?>
                <?php if ( 'div' != $args['style'] ) : ?>
                <div id="div-comment-<?php comment_ID(); ?>" class="comment-body">
                <?php endif; ?>
@@ -1826,7 +1843,7 @@ class Walker_Comment extends Walker {
        protected function html5_comment( $comment, $depth, $args ) {
                $tag = ( 'div' === $args['style'] ) ? 'div' : 'li';
 ?>
        protected function html5_comment( $comment, $depth, $args ) {
                $tag = ( 'div' === $args['style'] ) ? 'div' : 'li';
 ?>
-               <<?php echo $tag; ?> id="comment-<?php comment_ID(); ?>" <?php comment_class( empty( $args['has_children'] ) ? '' : 'parent' ); ?>>
+               <<?php echo $tag; ?> id="comment-<?php comment_ID(); ?>" <?php comment_class( $this->has_children ? 'parent' : '' ); ?>>
                        <article id="div-comment-<?php comment_ID(); ?>" class="comment-body">
                                <footer class="comment-meta">
                                        <div class="comment-author vcard">
                        <article id="div-comment-<?php comment_ID(); ?>" class="comment-body">
                                <footer class="comment-meta">
                                        <div class="comment-author vcard">
@@ -1872,7 +1889,7 @@ class Walker_Comment extends Walker {
  * @param string|array $args {
  *     Optional. Formatting options.
  *
  * @param string|array $args {
  *     Optional. Formatting options.
  *
- *     @type string $walker            The Walker class used to list comments. Default null.
+ *     @type object $walker            Instance of a Walker class to list comments. Default null.
  *     @type int    $max_depth         The maximum comments depth. Default empty.
  *     @type string $style             The style of list ordering. Default 'ul'. Accepts 'ul', 'ol'.
  *     @type string $callback          Callback function to use. Default null.
  *     @type int    $max_depth         The maximum comments depth. Default empty.
  *     @type string $style             The style of list ordering. Default 'ul'. Accepts 'ul', 'ol'.
  *     @type string $callback          Callback function to use. Default null.
@@ -1918,6 +1935,17 @@ function wp_list_comments( $args = array(), $comments = null ) {
 
        $r = wp_parse_args( $args, $defaults );
 
 
        $r = wp_parse_args( $args, $defaults );
 
+       /**
+        * Filter the arguments used in retrieving the comment list.
+        *
+        * @since 4.0.0
+        *
+        * @see wp_list_comments()
+        *
+        * @param array $r An array of arguments for displaying comments.
+        */
+       $r = apply_filters( 'wp_list_comments_args', $r );
+
        // Figure out what comments we'll be looping through ($_comments)
        if ( null !== $comments ) {
                $comments = (array) $comments;
        // Figure out what comments we'll be looping through ($_comments)
        if ( null !== $comments ) {
                $comments = (array) $comments;
@@ -1977,20 +2005,22 @@ function wp_list_comments( $args = array(), $comments = null ) {
        if ( null === $r['reverse_top_level'] )
                $r['reverse_top_level'] = ( 'desc' == get_option('comment_order') );
 
        if ( null === $r['reverse_top_level'] )
                $r['reverse_top_level'] = ( 'desc' == get_option('comment_order') );
 
-       extract( $r, EXTR_SKIP );
-
-       if ( empty($walker) )
+       if ( empty( $r['walker'] ) ) {
                $walker = new Walker_Comment;
                $walker = new Walker_Comment;
+       } else {
+               $walker = $r['walker'];
+       }
 
 
-       $output = $walker->paged_walk($_comments, $max_depth, $page, $per_page, $r);
+       $output = $walker->paged_walk( $_comments, $r['max_depth'], $r['page'], $r['per_page'], $r );
        $wp_query->max_num_comment_pages = $walker->max_pages;
 
        $in_comment_loop = false;
 
        $wp_query->max_num_comment_pages = $walker->max_pages;
 
        $in_comment_loop = false;
 
-       if ( $r['echo'] )
+       if ( $r['echo'] ) {
                echo $output;
                echo $output;
-       else
+       } else {
                return $output;
                return $output;
+       }
 }
 
 /**
 }
 
 /**
@@ -2024,6 +2054,7 @@ function wp_list_comments( $args = array(), $comments = null ) {
  *                                        Default 'You may use these HTML tags and attributes ...'.
  *     @type string $id_form              The comment form element id attribute. Default 'commentform'.
  *     @type string $id_submit            The comment submit element id attribute. Default 'submit'.
  *                                        Default 'You may use these HTML tags and attributes ...'.
  *     @type string $id_form              The comment form element id attribute. Default 'commentform'.
  *     @type string $id_submit            The comment submit element id attribute. Default 'submit'.
+ *     @type string $name_submit          The comment submit element name attribute. Default 'submit'.
  *     @type string $title_reply          The translatable 'reply' button label. Default 'Leave a Reply'.
  *     @type string $title_reply_to       The translatable 'reply-to' button label. Default 'Leave a Reply to %s',
  *                                        where %s is the author of the comment being replied to.
  *     @type string $title_reply          The translatable 'reply' button label. Default 'Leave a Reply'.
  *     @type string $title_reply_to       The translatable 'reply-to' button label. Default 'Leave a Reply to %s',
  *                                        where %s is the author of the comment being replied to.
@@ -2036,8 +2067,6 @@ function wp_list_comments( $args = array(), $comments = null ) {
 function comment_form( $args = array(), $post_id = null ) {
        if ( null === $post_id )
                $post_id = get_the_ID();
 function comment_form( $args = array(), $post_id = null ) {
        if ( null === $post_id )
                $post_id = get_the_ID();
-       else
-               $id = $post_id;
 
        $commenter = wp_get_current_commenter();
        $user = wp_get_current_user();
 
        $commenter = wp_get_current_commenter();
        $user = wp_get_current_user();
@@ -2080,6 +2109,7 @@ function comment_form( $args = array(), $post_id = null ) {
                'comment_notes_after'  => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>',
                'id_form'              => 'commentform',
                'id_submit'            => 'submit',
                'comment_notes_after'  => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>',
                'id_form'              => 'commentform',
                'id_submit'            => 'submit',
+               'name_submit'          => 'submit',
                'title_reply'          => __( 'Leave a Reply' ),
                'title_reply_to'       => __( 'Leave a Reply to %s' ),
                'cancel_reply_link'    => __( 'Cancel reply' ),
                'title_reply'          => __( 'Leave a Reply' ),
                'title_reply_to'       => __( 'Leave a Reply to %s' ),
                'cancel_reply_link'    => __( 'Cancel reply' ),
@@ -2200,7 +2230,7 @@ function comment_form( $args = array(), $post_id = null ) {
                                                ?>
                                                <?php echo $args['comment_notes_after']; ?>
                                                <p class="form-submit">
                                                ?>
                                                <?php echo $args['comment_notes_after']; ?>
                                                <p class="form-submit">
-                                                       <input name="submit" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>" value="<?php echo esc_attr( $args['label_submit'] ); ?>" />
+                                                       <input name="<?php echo esc_attr( $args['name_submit'] ); ?>" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>" value="<?php echo esc_attr( $args['label_submit'] ); ?>" />
                                                        <?php comment_id_fields( $post_id ); ?>
                                                </p>
                                                <?php
                                                        <?php comment_id_fields( $post_id ); ?>
                                                </p>
                                                <?php
index f7ddbc478fb43d0c77c32e6877db71fa95ad6822..a4cc7e2b2ca8d6348882873ced4dd3c08cfd26e6 100644 (file)
@@ -209,7 +209,7 @@ class WP_Comment_Query {
         * @access public
         * @var object WP_Meta_Query
         */
         * @access public
         * @var object WP_Meta_Query
         */
-       var $meta_query = false;
+       public $meta_query = false;
 
        /**
         * Date query container
 
        /**
         * Date query container
@@ -218,7 +218,21 @@ class WP_Comment_Query {
         * @access public
         * @var object WP_Date_Query
         */
         * @access public
         * @var object WP_Date_Query
         */
-       var $date_query = false;
+       public $date_query = false;
+
+       /**
+        * Make private/protected methods readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param callable $name      Method to call.
+        * @param array    $arguments Arguments to pass when calling.
+        * @return mixed|bool Return value of the callback, false otherwise.
+        */
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this, $name ), $arguments );
+       }
 
        /**
         * Execute the query
 
        /**
         * Execute the query
@@ -228,11 +242,12 @@ class WP_Comment_Query {
         * @param string|array $query_vars
         * @return int|array
         */
         * @param string|array $query_vars
         * @return int|array
         */
-       function query( $query_vars ) {
+       public function query( $query_vars ) {
                global $wpdb;
 
                $defaults = array(
                        'author_email' => '',
                global $wpdb;
 
                $defaults = array(
                        'author_email' => '',
+                       'fields' => '',
                        'ID' => '',
                        'karma' => '',
                        'number' => '',
                        'ID' => '',
                        'karma' => '',
                        'number' => '',
@@ -274,10 +289,9 @@ class WP_Comment_Query {
                 * @param WP_Comment_Query &$this Current instance of WP_Comment_Query, passed by reference.
                 */
                do_action_ref_array( 'pre_get_comments', array( &$this ) );
                 * @param WP_Comment_Query &$this Current instance of WP_Comment_Query, passed by reference.
                 */
                do_action_ref_array( 'pre_get_comments', array( &$this ) );
-               extract( $this->query_vars, EXTR_SKIP );
 
                // $args can be whatever, only use the args defined in defaults to compute the key
 
                // $args can be whatever, only use the args defined in defaults to compute the key
-               $key = md5( serialize( compact(array_keys($defaults)) )  );
+               $key = md5( serialize( wp_array_slice_assoc( $this->query_vars, array_keys( $defaults ) ) )  );
                $last_changed = wp_cache_get( 'last_changed', 'comment' );
                if ( ! $last_changed ) {
                        $last_changed = microtime();
                $last_changed = wp_cache_get( 'last_changed', 'comment' );
                if ( ! $last_changed ) {
                        $last_changed = microtime();
@@ -285,24 +299,27 @@ class WP_Comment_Query {
                }
                $cache_key = "get_comments:$key:$last_changed";
 
                }
                $cache_key = "get_comments:$key:$last_changed";
 
-               if ( $cache = wp_cache_get( $cache_key, 'comment' ) )
+               if ( $cache = wp_cache_get( $cache_key, 'comment' ) ) {
                        return $cache;
                        return $cache;
+               }
 
 
-               $post_id = absint($post_id);
-
-               if ( 'hold' == $status )
+               $status = $this->query_vars['status'];
+               if ( 'hold' == $status ) {
                        $approved = "comment_approved = '0'";
                        $approved = "comment_approved = '0'";
-               elseif ( 'approve' == $status )
+               } elseif ( 'approve' == $status ) {
                        $approved = "comment_approved = '1'";
                        $approved = "comment_approved = '1'";
-               elseif ( ! empty( $status ) && 'all' != $status )
+               } elseif ( ! empty( $status ) && 'all' != $status ) {
                        $approved = $wpdb->prepare( "comment_approved = %s", $status );
                        $approved = $wpdb->prepare( "comment_approved = %s", $status );
-               else
+               } else {
                        $approved = "( comment_approved = '0' OR comment_approved = '1' )";
                        $approved = "( comment_approved = '0' OR comment_approved = '1' )";
+               }
+               $order = ( 'ASC' == strtoupper( $this->query_vars['order'] ) ) ? 'ASC' : 'DESC';
 
 
-               $order = ( 'ASC' == strtoupper($order) ) ? 'ASC' : 'DESC';
+               if ( ! empty( $this->query_vars['orderby'] ) ) {
+                       $ordersby = is_array( $this->query_vars['orderby'] ) ?
+                               $this->query_vars['orderby'] :
+                               preg_split( '/[,\s]/', $this->query_vars['orderby'] );
 
 
-               if ( ! empty( $orderby ) ) {
-                       $ordersby = is_array($orderby) ? $orderby : preg_split('/[,\s]/', $orderby);
                        $allowed_keys = array(
                                'comment_agent',
                                'comment_approved',
                        $allowed_keys = array(
                                'comment_agent',
                                'comment_approved',
@@ -338,52 +355,76 @@ class WP_Comment_Query {
                        $orderby = 'comment_date_gmt';
                }
 
                        $orderby = 'comment_date_gmt';
                }
 
-               $number = absint($number);
-               $offset = absint($offset);
+               $number = absint( $this->query_vars['number'] );
+               $offset = absint( $this->query_vars['offset'] );
 
 
-               if ( !empty($number) ) {
-                       if ( $offset )
+               if ( ! empty( $number ) ) {
+                       if ( $offset ) {
                                $limits = 'LIMIT ' . $offset . ',' . $number;
                                $limits = 'LIMIT ' . $offset . ',' . $number;
-                       else
+                       } else {
                                $limits = 'LIMIT ' . $number;
                                $limits = 'LIMIT ' . $number;
+                       }
                } else {
                        $limits = '';
                }
 
                } else {
                        $limits = '';
                }
 
-               if ( $count )
+               if ( $this->query_vars['count'] ) {
                        $fields = 'COUNT(*)';
                        $fields = 'COUNT(*)';
-               else
-                       $fields = '*';
+               } else {
+                       switch ( strtolower( $this->query_vars['fields'] ) ) {
+                               case 'ids':
+                                       $fields = "$wpdb->comments.comment_ID";
+                                       break;
+                               default:
+                                       $fields = "*";
+                                       break;
+                       }
+               }
 
                $join = '';
                $where = $approved;
 
 
                $join = '';
                $where = $approved;
 
-               if ( ! empty($post_id) )
+               $post_id = absint( $this->query_vars['post_id'] );
+               if ( ! empty( $post_id ) ) {
                        $where .= $wpdb->prepare( ' AND comment_post_ID = %d', $post_id );
                        $where .= $wpdb->prepare( ' AND comment_post_ID = %d', $post_id );
-               if ( '' !== $author_email )
-                       $where .= $wpdb->prepare( ' AND comment_author_email = %s', $author_email );
-               if ( '' !== $karma )
-                       $where .= $wpdb->prepare( ' AND comment_karma = %d', $karma );
-               if ( 'comment' == $type ) {
+               }
+
+               if ( '' !== $this->query_vars['author_email'] ) {
+                       $where .= $wpdb->prepare( ' AND comment_author_email = %s', $this->query_vars['author_email'] );
+               }
+
+               if ( '' !== $this->query_vars['karma'] ) {
+                       $where .= $wpdb->prepare( ' AND comment_karma = %d', $this->query_vars['karma'] );
+               }
+
+               if ( 'comment' == $this->query_vars['type'] ) {
                        $where .= " AND comment_type = ''";
                        $where .= " AND comment_type = ''";
-               } elseif( 'pings' == $type ) {
+               } elseif( 'pings' == $this->query_vars['type'] ) {
                        $where .= ' AND comment_type IN ("pingback", "trackback")';
                        $where .= ' AND comment_type IN ("pingback", "trackback")';
-               } elseif ( ! empty( $type ) ) {
-                       $where .= $wpdb->prepare( ' AND comment_type = %s', $type );
+               } elseif ( ! empty( $this->query_vars['type'] ) ) {
+                       $where .= $wpdb->prepare( ' AND comment_type = %s', $this->query_vars['type'] );
+               }
+
+               if ( '' !== $this->query_vars['parent'] ) {
+                       $where .= $wpdb->prepare( ' AND comment_parent = %d', $this->query_vars['parent'] );
                }
                }
-               if ( '' !== $parent )
-                       $where .= $wpdb->prepare( ' AND comment_parent = %d', $parent );
 
 
-               if ( is_array( $user_id ) ) {
-                       $where .= ' AND user_id IN (' . implode( ',', array_map( 'absint', $user_id ) ) . ')';
-               } elseif ( '' !== $user_id ) {
-                       $where .= $wpdb->prepare( ' AND user_id = %d', $user_id );
+               if ( is_array( $this->query_vars['user_id'] ) ) {
+                       $where .= ' AND user_id IN (' . implode( ',', array_map( 'absint', $this->query_vars['user_id'] ) ) . ')';
+               } elseif ( '' !== $this->query_vars['user_id'] ) {
+                       $where .= $wpdb->prepare( ' AND user_id = %d', $this->query_vars['user_id'] );
                }
 
                }
 
-               if ( '' !== $search )
-                       $where .= $this->get_search_sql( $search, array( 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_author_IP', 'comment_content' ) );
+               if ( '' !== $this->query_vars['search'] ) {
+                       $where .= $this->get_search_sql(
+                               $this->query_vars['search'],
+                               array( 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_author_IP', 'comment_content' )
+                       );
+               }
+
+               $plucked = wp_array_slice_assoc( $this->query_vars, array( 'post_author', 'post_name', 'post_parent', 'post_status', 'post_type' ) );
+               $post_fields = array_filter( $plucked );
 
 
-               $post_fields = array_filter( compact( array( 'post_author', 'post_name', 'post_parent', 'post_status', 'post_type', ) ) );
                if ( ! empty( $post_fields ) ) {
                        $join = "JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->comments.comment_post_ID";
                        foreach( $post_fields as $field_name => $field_value )
                if ( ! empty( $post_fields ) ) {
                        $join = "JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->comments.comment_post_ID";
                        foreach( $post_fields as $field_name => $field_value )
@@ -397,6 +438,7 @@ class WP_Comment_Query {
                        $groupby = "{$wpdb->comments}.comment_ID";
                }
 
                        $groupby = "{$wpdb->comments}.comment_ID";
                }
 
+               $date_query = $this->query_vars['date_query'];
                if ( ! empty( $date_query ) && is_array( $date_query ) ) {
                        $date_query_object = new WP_Date_Query( $date_query, 'comment_date' );
                        $where .= $date_query_object->get_sql();
                if ( ! empty( $date_query ) && is_array( $date_query ) ) {
                        $date_query_object = new WP_Date_Query( $date_query, 'comment_date' );
                        $where .= $date_query_object->get_sql();
@@ -412,27 +454,39 @@ class WP_Comment_Query {
                 * @param WP_Comment_Query &$this  Current instance of WP_Comment_Query, passed by reference.
                 */
                $clauses = apply_filters_ref_array( 'comments_clauses', array( compact( $pieces ), &$this ) );
                 * @param WP_Comment_Query &$this  Current instance of WP_Comment_Query, passed by reference.
                 */
                $clauses = apply_filters_ref_array( 'comments_clauses', array( compact( $pieces ), &$this ) );
-               foreach ( $pieces as $piece )
-                       $$piece = isset( $clauses[ $piece ] ) ? $clauses[ $piece ] : '';
 
 
-               if ( $groupby )
-                       $groupby = 'GROUP BY ' . $groupby;
+               $fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
+               $join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
+               $where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
+               $orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
+               $order = isset( $clauses[ 'order' ] ) ? $clauses[ 'order' ] : '';
+               $limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
+               $groupby = isset( $clauses[ 'groupby' ] ) ? $clauses[ 'groupby' ] : '';
 
 
+               if ( $groupby ) {
+                       $groupby = 'GROUP BY ' . $groupby;
+               }
                $query = "SELECT $fields FROM $wpdb->comments $join WHERE $where $groupby ORDER BY $orderby $order $limits";
 
                $query = "SELECT $fields FROM $wpdb->comments $join WHERE $where $groupby ORDER BY $orderby $order $limits";
 
-               if ( $count )
+               if ( $this->query_vars['count'] ) {
                        return $wpdb->get_var( $query );
                        return $wpdb->get_var( $query );
+               }
+
+               if ( 'ids' == $this->query_vars['fields'] ) {
+                       $this->comments = $wpdb->get_col( $query );
+                       return array_map( 'intval', $this->comments );
+               }
 
 
-               $comments = $wpdb->get_results( $query );
+               $results = $wpdb->get_results( $query );
                /**
                 * Filter the comment query results.
                 *
                 * @since 3.1.0
                 *
                /**
                 * Filter the comment query results.
                 *
                 * @since 3.1.0
                 *
-                * @param array            $comments An array of comments.
+                * @param array            $results  An array of comments.
                 * @param WP_Comment_Query &$this    Current instance of WP_Comment_Query, passed by reference.
                 */
                 * @param WP_Comment_Query &$this    Current instance of WP_Comment_Query, passed by reference.
                 */
-               $comments = apply_filters_ref_array( 'the_comments', array( $comments, &$this ) );
+               $comments = apply_filters_ref_array( 'the_comments', array( $results, &$this ) );
 
                wp_cache_add( $cache_key, $comments, 'comment' );
 
 
                wp_cache_add( $cache_key, $comments, 'comment' );
 
@@ -449,12 +503,15 @@ class WP_Comment_Query {
         * @param array $cols
         * @return string
         */
         * @param array $cols
         * @return string
         */
-       function get_search_sql( $string, $cols ) {
-               $string = esc_sql( like_escape( $string ) );
+       protected function get_search_sql( $string, $cols ) {
+               global $wpdb;
+
+               $like = '%' . $wpdb->esc_like( $string ) . '%';
 
                $searches = array();
 
                $searches = array();
-               foreach ( $cols as $col )
-                       $searches[] = "$col LIKE '%$string%'";
+               foreach ( $cols as $col ) {
+                       $searches[] = $wpdb->prepare( "$col LIKE %s", $like );
+               }
 
                return ' AND (' . implode(' OR ', $searches) . ')';
        }
 
                return ' AND (' . implode(' OR ', $searches) . ')';
        }
@@ -678,9 +735,10 @@ function wp_set_comment_cookies($comment, $user) {
         * @param int $seconds Comment cookie lifetime. Default 30000000.
         */
        $comment_cookie_lifetime = apply_filters( 'comment_cookie_lifetime', 30000000 );
         * @param int $seconds Comment cookie lifetime. Default 30000000.
         */
        $comment_cookie_lifetime = apply_filters( 'comment_cookie_lifetime', 30000000 );
-       setcookie('comment_author_' . COOKIEHASH, $comment->comment_author, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
-       setcookie('comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
-       setcookie('comment_author_url_' . COOKIEHASH, esc_url($comment->comment_author_url), time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
+       $secure = ( 'https' === parse_url( home_url(), PHP_URL_SCHEME ) );
+       setcookie( 'comment_author_' . COOKIEHASH, $comment->comment_author, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure );
+       setcookie( 'comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure );
+       setcookie( 'comment_author_url_' . COOKIEHASH, esc_url($comment->comment_author_url), time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure );
 }
 
 /**
 }
 
 /**
@@ -752,17 +810,28 @@ function sanitize_comment_cookies() {
  * @param array $commentdata Contains information on the comment
  * @return mixed Signifies the approval status (0|1|'spam')
  */
  * @param array $commentdata Contains information on the comment
  * @return mixed Signifies the approval status (0|1|'spam')
  */
-function wp_allow_comment($commentdata) {
+function wp_allow_comment( $commentdata ) {
        global $wpdb;
        global $wpdb;
-       extract($commentdata, EXTR_SKIP);
 
        // Simple duplicate check
        // expected_slashed ($comment_post_ID, $comment_author, $comment_author_email, $comment_content)
 
        // Simple duplicate check
        // expected_slashed ($comment_post_ID, $comment_author, $comment_author_email, $comment_content)
-       $dupe = $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_parent = %s AND comment_approved != 'trash' AND ( comment_author = %s ", wp_unslash( $comment_post_ID ), wp_unslash( $comment_parent ), wp_unslash( $comment_author ) );
-       if ( $comment_author_email )
-               $dupe .= $wpdb->prepare( "OR comment_author_email = %s ", wp_unslash( $comment_author_email ) );
-       $dupe .= $wpdb->prepare( ") AND comment_content = %s LIMIT 1", wp_unslash( $comment_content ) );
-       if ( $wpdb->get_var($dupe) ) {
+       $dupe = $wpdb->prepare(
+               "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_parent = %s AND comment_approved != 'trash' AND ( comment_author = %s ",
+               wp_unslash( $commentdata['comment_post_ID'] ),
+               wp_unslash( $commentdata['comment_parent'] ),
+               wp_unslash( $commentdata['comment_author'] )
+       );
+       if ( $commentdata['comment_author_email'] ) {
+               $dupe .= $wpdb->prepare(
+                       "OR comment_author_email = %s ",
+                       wp_unslash( $commentdata['comment_author_email'] )
+               );
+       }
+       $dupe .= $wpdb->prepare(
+               ") AND comment_content = %s LIMIT 1",
+               wp_unslash( $commentdata['comment_content'] )
+       );
+       if ( $wpdb->get_var( $dupe ) ) {
                /**
                 * Fires immediately after a duplicate comment is detected.
                 *
                /**
                 * Fires immediately after a duplicate comment is detected.
                 *
@@ -771,9 +840,9 @@ function wp_allow_comment($commentdata) {
                 * @param array $commentdata Comment data.
                 */
                do_action( 'comment_duplicate_trigger', $commentdata );
                 * @param array $commentdata Comment data.
                 */
                do_action( 'comment_duplicate_trigger', $commentdata );
-               if ( defined('DOING_AJAX') )
+               if ( defined( 'DOING_AJAX' ) ) {
                        die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') );
                        die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') );
-
+               }
                wp_die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') );
        }
 
                wp_die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') );
        }
 
@@ -788,24 +857,50 @@ function wp_allow_comment($commentdata) {
         * @param string $comment_author_email Comment author's email.
         * @param string $comment_date_gmt     GMT date the comment was posted.
         */
         * @param string $comment_author_email Comment author's email.
         * @param string $comment_date_gmt     GMT date the comment was posted.
         */
-       do_action( 'check_comment_flood', $comment_author_IP, $comment_author_email, $comment_date_gmt );
+       do_action(
+               'check_comment_flood',
+               $commentdata['comment_author_IP'],
+               $commentdata['comment_author_email'],
+               $commentdata['comment_date_gmt']
+       );
 
 
-       if ( ! empty( $user_id ) ) {
-               $user = get_userdata( $user_id );
-               $post_author = $wpdb->get_var($wpdb->prepare("SELECT post_author FROM $wpdb->posts WHERE ID = %d LIMIT 1", $comment_post_ID));
+       if ( ! empty( $commentdata['user_id'] ) ) {
+               $user = get_userdata( $commentdata['user_id'] );
+               $post_author = $wpdb->get_var( $wpdb->prepare(
+                       "SELECT post_author FROM $wpdb->posts WHERE ID = %d LIMIT 1",
+                       $commentdata['comment_post_ID']
+               ) );
        }
 
        }
 
-       if ( isset( $user ) && ( $user_id == $post_author || $user->has_cap( 'moderate_comments' ) ) ) {
+       if ( isset( $user ) && ( $commentdata['user_id'] == $post_author || $user->has_cap( 'moderate_comments' ) ) ) {
                // The author and the admins get respect.
                $approved = 1;
        } else {
                // Everyone else's comments will be checked.
                // The author and the admins get respect.
                $approved = 1;
        } else {
                // Everyone else's comments will be checked.
-               if ( check_comment($comment_author, $comment_author_email, $comment_author_url, $comment_content, $comment_author_IP, $comment_agent, $comment_type) )
+               if ( check_comment(
+                       $commentdata['comment_author'],
+                       $commentdata['comment_author_email'],
+                       $commentdata['comment_author_url'],
+                       $commentdata['comment_content'],
+                       $commentdata['comment_author_IP'],
+                       $commentdata['comment_agent'],
+                       $commentdata['comment_type']
+               ) ) {
                        $approved = 1;
                        $approved = 1;
-               else
+               } else {
                        $approved = 0;
                        $approved = 0;
-               if ( wp_blacklist_check($comment_author, $comment_author_email, $comment_author_url, $comment_content, $comment_author_IP, $comment_agent) )
+               }
+
+               if ( wp_blacklist_check(
+                       $commentdata['comment_author'],
+                       $commentdata['comment_author_email'],
+                       $commentdata['comment_author_url'],
+                       $commentdata['comment_content'],
+                       $commentdata['comment_author_IP'],
+                       $commentdata['comment_agent']
+               ) ) {
                        $approved = 'spam';
                        $approved = 'spam';
+               }
        }
 
        /**
        }
 
        /**
@@ -1187,15 +1282,9 @@ function wp_delete_comment($comment_id, $force_delete = false) {
 
        clean_comment_cache($comment_id);
 
 
        clean_comment_cache($comment_id);
 
-       /**
-        * Fires immediately before changing the comment's status to 'delete'.
-        *
-        * @since 1.5.0
-        *
-        * @param int    $comment_id The comment ID.
-        * @param string $status     The new 'delete' comment status.
-        */
+       /** This action is documented in wp-includes/comment.php */
        do_action( 'wp_set_comment_status', $comment_id, 'delete' );
        do_action( 'wp_set_comment_status', $comment_id, 'delete' );
+
        wp_transition_comment_status('delete', $comment->comment_approved, $comment);
        return true;
 }
        wp_transition_comment_status('delete', $comment->comment_approved, $comment);
        return true;
 }
@@ -1520,38 +1609,41 @@ function wp_get_current_commenter() {
  * @uses $wpdb
  *
  * @param array $commentdata Contains information on the comment.
  * @uses $wpdb
  *
  * @param array $commentdata Contains information on the comment.
- * @return int The new comment's ID.
+ * @return int|bool The new comment's ID on success, false on failure.
  */
  */
-function wp_insert_comment($commentdata) {
+function wp_insert_comment( $commentdata ) {
        global $wpdb;
        global $wpdb;
-       extract(wp_unslash($commentdata), EXTR_SKIP);
-
-       if ( ! isset($comment_author_IP) )
-               $comment_author_IP = '';
-       if ( ! isset($comment_date) )
-               $comment_date = current_time('mysql');
-       if ( ! isset($comment_date_gmt) )
-               $comment_date_gmt = get_gmt_from_date($comment_date);
-       if ( ! isset($comment_parent) )
-               $comment_parent = 0;
-       if ( ! isset($comment_approved) )
-               $comment_approved = 1;
-       if ( ! isset($comment_karma) )
-               $comment_karma = 0;
-       if ( ! isset($user_id) )
-               $user_id = 0;
-       if ( ! isset($comment_type) )
-               $comment_type = '';
-
-       $data = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_author_IP', 'comment_date', 'comment_date_gmt', 'comment_content', 'comment_karma', 'comment_approved', 'comment_agent', 'comment_type', 'comment_parent', 'user_id');
-       $wpdb->insert($wpdb->comments, $data);
+       $data = wp_unslash( $commentdata );
 
 
-       $id = (int) $wpdb->insert_id;
+       $comment_author       = ! isset( $data['comment_author'] )       ? '' : $data['comment_author'];
+       $comment_author_email = ! isset( $data['comment_author_email'] ) ? '' : $data['comment_author_email'];
+       $comment_author_url   = ! isset( $data['comment_author_url'] )   ? '' : $data['comment_author_url'];
+       $comment_author_IP    = ! isset( $data['comment_author_IP'] )    ? '' : $data['comment_author_IP'];
+
+       $comment_date     = ! isset( $data['comment_date'] )     ? current_time( 'mysql' )            : $data['comment_date'];
+       $comment_date_gmt = ! isset( $data['comment_date_gmt'] ) ? get_gmt_from_date( $comment_date ) : $data['comment_date_gmt'];
+
+       $comment_post_ID  = ! isset( $data['comment_post_ID'] )  ? '' : $data['comment_post_ID'];
+       $comment_content  = ! isset( $data['comment_content'] )  ? '' : $data['comment_content'];
+       $comment_karma    = ! isset( $data['comment_karma'] )    ? 0  : $data['comment_karma'];
+       $comment_approved = ! isset( $data['comment_approved'] ) ? 1  : $data['comment_approved'];
+       $comment_agent    = ! isset( $data['comment_agent'] )    ? '' : $data['comment_agent'];
+       $comment_type     = ! isset( $data['comment_type'] )     ? '' : $data['comment_type'];
+       $comment_parent   = ! isset( $data['comment_parent'] )   ? 0  : $data['comment_parent'];
+
+       $user_id  = ! isset( $data['user_id'] ) ? 0 : $data['user_id'];
 
 
-       if ( $comment_approved == 1 )
-               wp_update_comment_count($comment_post_ID);
+       $compacted = compact( 'comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_author_IP', 'comment_date', 'comment_date_gmt', 'comment_content', 'comment_karma', 'comment_approved', 'comment_agent', 'comment_type', 'comment_parent', 'user_id' );
+       if ( ! $wpdb->insert( $wpdb->comments, $compacted ) ) {
+               return false;
+       }
 
 
-       $comment = get_comment($id);
+       $id = (int) $wpdb->insert_id;
+
+       if ( $comment_approved == 1 ) {
+               wp_update_comment_count( $comment_post_ID );
+       }
+       $comment = get_comment( $id );
 
        /**
         * Fires immediately after a comment is inserted into the database.
 
        /**
         * Fires immediately after a comment is inserted into the database.
@@ -1664,9 +1756,15 @@ function wp_throttle_comment_flood($block, $time_lastcomment, $time_newcomment)
  *
  * @since 1.5.0
  * @param array $commentdata Contains information on the comment.
  *
  * @since 1.5.0
  * @param array $commentdata Contains information on the comment.
- * @return int The ID of the comment after adding.
+ * @return int|bool The ID of the comment on success, false on failure.
  */
 function wp_new_comment( $commentdata ) {
  */
 function wp_new_comment( $commentdata ) {
+       if ( isset( $commentdata['user_ID'] ) ) {
+               $commentdata['user_id'] = $commentdata['user_ID'] = (int) $commentdata['user_ID'];
+       }
+
+       $prefiltered_user_id = ( isset( $commentdata['user_id'] ) ) ? (int) $commentdata['user_id'] : 0;
+
        /**
         * Filter a comment's data before it is sanitized and inserted into the database.
         *
        /**
         * Filter a comment's data before it is sanitized and inserted into the database.
         *
@@ -1677,10 +1775,11 @@ function wp_new_comment( $commentdata ) {
        $commentdata = apply_filters( 'preprocess_comment', $commentdata );
 
        $commentdata['comment_post_ID'] = (int) $commentdata['comment_post_ID'];
        $commentdata = apply_filters( 'preprocess_comment', $commentdata );
 
        $commentdata['comment_post_ID'] = (int) $commentdata['comment_post_ID'];
-       if ( isset($commentdata['user_ID']) )
+       if ( isset( $commentdata['user_ID'] ) && $prefiltered_user_id !== (int) $commentdata['user_ID'] ) {
                $commentdata['user_id'] = $commentdata['user_ID'] = (int) $commentdata['user_ID'];
                $commentdata['user_id'] = $commentdata['user_ID'] = (int) $commentdata['user_ID'];
-       elseif ( isset($commentdata['user_id']) )
+       } elseif ( isset( $commentdata['user_id'] ) ) {
                $commentdata['user_id'] = (int) $commentdata['user_id'];
                $commentdata['user_id'] = (int) $commentdata['user_id'];
+       }
 
        $commentdata['comment_parent'] = isset($commentdata['comment_parent']) ? absint($commentdata['comment_parent']) : 0;
        $parent_status = ( 0 < $commentdata['comment_parent'] ) ? wp_get_comment_status($commentdata['comment_parent']) : '';
 
        $commentdata['comment_parent'] = isset($commentdata['comment_parent']) ? absint($commentdata['comment_parent']) : 0;
        $parent_status = ( 0 < $commentdata['comment_parent'] ) ? wp_get_comment_status($commentdata['comment_parent']) : '';
@@ -1697,6 +1796,9 @@ function wp_new_comment( $commentdata ) {
        $commentdata['comment_approved'] = wp_allow_comment($commentdata);
 
        $comment_ID = wp_insert_comment($commentdata);
        $commentdata['comment_approved'] = wp_allow_comment($commentdata);
 
        $comment_ID = wp_insert_comment($commentdata);
+       if ( ! $comment_ID ) {
+               return false;
+       }
 
        /**
         * Fires immediately after a comment is inserted into the database.
 
        /**
         * Fires immediately after a comment is inserted into the database.
@@ -1740,7 +1842,6 @@ function wp_new_comment( $commentdata ) {
 function wp_set_comment_status($comment_id, $comment_status, $wp_error = false) {
        global $wpdb;
 
 function wp_set_comment_status($comment_id, $comment_status, $wp_error = false) {
        global $wpdb;
 
-       $status = '0';
        switch ( $comment_status ) {
                case 'hold':
                case '0':
        switch ( $comment_status ) {
                case 'hold':
                case '0':
@@ -1777,17 +1878,17 @@ function wp_set_comment_status($comment_id, $comment_status, $wp_error = false)
        $comment = get_comment($comment_id);
 
        /**
        $comment = get_comment($comment_id);
 
        /**
-        * Fires after a comment status has been updated in the database.
-        *
-        * The hook also fires immediately before comment status transition hooks are fired.
+        * Fires immediately before transitioning a comment's status from one to another
+        * in the database.
         *
         * @since 1.5.0
         *
         *
         * @since 1.5.0
         *
-        * @param int         $comment_id     The comment ID.
-        * @param string|bool $comment_status The comment status. Possible values include 'hold',
-        *                                    'approve', 'spam', 'trash', or false.
+        * @param int         $comment_id     Comment ID.
+        * @param string|bool $comment_status Current comment status. Possible values include
+        *                                    'hold', 'approve', 'spam', 'trash', or false.
         */
        do_action( 'wp_set_comment_status', $comment_id, $comment_status );
         */
        do_action( 'wp_set_comment_status', $comment_id, $comment_status );
+
        wp_transition_comment_status($comment_status, $comment_old->comment_approved, $comment);
 
        wp_update_comment_count($comment->comment_post_ID);
        wp_transition_comment_status($comment_status, $comment_old->comment_approved, $comment);
 
        wp_update_comment_count($comment->comment_post_ID);
@@ -1812,9 +1913,9 @@ function wp_update_comment($commentarr) {
 
        // First, get all of the original fields
        $comment = get_comment($commentarr['comment_ID'], ARRAY_A);
 
        // First, get all of the original fields
        $comment = get_comment($commentarr['comment_ID'], ARRAY_A);
-       if ( empty( $comment ) )
+       if ( empty( $comment ) ) {
                return 0;
                return 0;
-
+       }
        // Escape data pulled from DB.
        $comment = wp_slash($comment);
 
        // Escape data pulled from DB.
        $comment = wp_slash($comment);
 
@@ -1826,7 +1927,7 @@ function wp_update_comment($commentarr) {
        $commentarr = wp_filter_comment( $commentarr );
 
        // Now extract the merged array.
        $commentarr = wp_filter_comment( $commentarr );
 
        // Now extract the merged array.
-       extract(wp_unslash($commentarr), EXTR_SKIP);
+       $data = wp_unslash( $commentarr );
 
        /**
         * Filter the comment content before it is updated in the database.
 
        /**
         * Filter the comment content before it is updated in the database.
@@ -1835,22 +1936,26 @@ function wp_update_comment($commentarr) {
         *
         * @param string $comment_content The comment data.
         */
         *
         * @param string $comment_content The comment data.
         */
-       $comment_content = apply_filters( 'comment_save_pre', $comment_content );
+       $data['comment_content'] = apply_filters( 'comment_save_pre', $data['comment_content'] );
 
 
-       $comment_date_gmt = get_gmt_from_date($comment_date);
+       $data['comment_date_gmt'] = get_gmt_from_date( $data['comment_date'] );
 
 
-       if ( !isset($comment_approved) )
-               $comment_approved = 1;
-       else if ( 'hold' == $comment_approved )
-               $comment_approved = 0;
-       else if ( 'approve' == $comment_approved )
-               $comment_approved = 1;
+       if ( ! isset( $data['comment_approved'] ) ) {
+               $data['comment_approved'] = 1;
+       } else if ( 'hold' == $data['comment_approved'] ) {
+               $data['comment_approved'] = 0;
+       } else if ( 'approve' == $data['comment_approved'] ) {
+               $data['comment_approved'] = 1;
+       }
 
 
-       $data = compact( 'comment_content', 'comment_author', 'comment_author_email', 'comment_approved', 'comment_karma', 'comment_author_url', 'comment_date', 'comment_date_gmt', 'comment_parent' );
+       $comment_ID = $data['comment_ID'];
+       $comment_post_ID = $data['comment_post_ID'];
+       $keys = array( 'comment_content', 'comment_author', 'comment_author_email', 'comment_approved', 'comment_karma', 'comment_author_url', 'comment_date', 'comment_date_gmt', 'comment_parent' );
+       $data = wp_array_slice_assoc( $data, $keys );
        $rval = $wpdb->update( $wpdb->comments, $data, compact( 'comment_ID' ) );
 
        $rval = $wpdb->update( $wpdb->comments, $data, compact( 'comment_ID' ) );
 
-       clean_comment_cache($comment_ID);
-       wp_update_comment_count($comment_post_ID);
+       clean_comment_cache( $comment_ID );
+       wp_update_comment_count( $comment_post_ID );
        /**
         * Fires immediately after a comment is updated in the database.
         *
        /**
         * Fires immediately after a comment is updated in the database.
         *
@@ -2097,10 +2202,10 @@ function do_trackbacks($post_id) {
        }
 
        if ( empty($post->post_excerpt) ) {
        }
 
        if ( empty($post->post_excerpt) ) {
-               /** This filter is documented in wp-admin/post-template.php */
+               /** This filter is documented in wp-includes/post-template.php */
                $excerpt = apply_filters( 'the_content', $post->post_content, $post->ID );
        } else {
                $excerpt = apply_filters( 'the_content', $post->post_content, $post->ID );
        } else {
-               /** This filter is documented in wp-admin/post-template.php */
+               /** This filter is documented in wp-includes/post-template.php */
                $excerpt = apply_filters( 'the_excerpt', $post->post_excerpt );
        }
 
                $excerpt = apply_filters( 'the_excerpt', $post->post_excerpt );
        }
 
@@ -2129,10 +2234,10 @@ function do_trackbacks($post_id) {
  *
  * @since 1.2.0
  *
  *
  * @since 1.2.0
  *
- * @param int $post_id Post ID. Not actually used.
+ * @param int $post_id Post ID.
  * @return int Same as Post ID from parameter
  */
  * @return int Same as Post ID from parameter
  */
-function generic_ping($post_id = 0) {
+function generic_ping( $post_id = 0 ) {
        $services = get_option('ping_sites');
 
        $services = explode("\n", $services);
        $services = get_option('ping_sites');
 
        $services = explode("\n", $services);
index cd39a0899ec6e7503854c5cde8e59e76abf174d3..fc876147cc8ef007e0433713514d310d2ae09b8b 100644 (file)
@@ -100,28 +100,32 @@ function wp_schedule_event( $timestamp, $recurrence, $hook, $args = array()) {
  * @param array $args Optional. Arguments to pass to the hook's callback function.
  * @return bool|null False on failure. Null when event is rescheduled.
  */
  * @param array $args Optional. Arguments to pass to the hook's callback function.
  * @return bool|null False on failure. Null when event is rescheduled.
  */
-function wp_reschedule_event( $timestamp, $recurrence, $hook, $args = array()) {
+function wp_reschedule_event( $timestamp, $recurrence, $hook, $args = array() ) {
        $crons = _get_cron_array();
        $schedules = wp_get_schedules();
        $crons = _get_cron_array();
        $schedules = wp_get_schedules();
-       $key = md5(serialize($args));
+       $key = md5( serialize( $args ) );
        $interval = 0;
 
        // First we try to get it from the schedule
        $interval = 0;
 
        // First we try to get it from the schedule
-       if ( 0 == $interval )
-               $interval = $schedules[$recurrence]['interval'];
+       if ( isset( $schedules[ $recurrence ] ) ) {
+               $interval = $schedules[ $recurrence ]['interval'];
+       }
        // Now we try to get it from the saved interval in case the schedule disappears
        // Now we try to get it from the saved interval in case the schedule disappears
-       if ( 0 == $interval )
-               $interval = $crons[$timestamp][$hook][$key]['interval'];
+       if ( 0 == $interval ) {
+               $interval = $crons[ $timestamp ][ $hook ][ $key ]['interval'];
+       }
        // Now we assume something is wrong and fail to schedule
        // Now we assume something is wrong and fail to schedule
-       if ( 0 == $interval )
+       if ( 0 == $interval ) {
                return false;
                return false;
+       }
 
        $now = time();
 
 
        $now = time();
 
-       if ( $timestamp >= $now )
+       if ( $timestamp >= $now ) {
                $timestamp = $now + $interval;
                $timestamp = $now + $interval;
-       else
-               $timestamp = $now + ($interval - (($now - $timestamp) % $interval));
+       } else {
+               $timestamp = $now + ( $interval - ( ( $now - $timestamp ) % $interval ) );
+       }
 
        wp_schedule_event( $timestamp, $recurrence, $hook, $args );
 }
 
        wp_schedule_event( $timestamp, $recurrence, $hook, $args );
 }
@@ -278,7 +282,7 @@ function spawn_cron( $gmt_time = 0 ) {
         *
         *         @type int  $timeout   The request timeout in seconds. Default .01 seconds.
         *         @type bool $blocking  Whether to set blocking for the request. Default false.
         *
         *         @type int  $timeout   The request timeout in seconds. Default .01 seconds.
         *         @type bool $blocking  Whether to set blocking for the request. Default false.
-        *         @type bool $sslverify Whether to sslverify. Default true.
+        *         @type bool $sslverify Whether SSL should be verified for the request. Default false.
         *     }
         * }
         */
         *     }
         * }
         */
@@ -289,7 +293,7 @@ function spawn_cron( $gmt_time = 0 ) {
                        'timeout'   => 0.01,
                        'blocking'  => false,
                        /** This filter is documented in wp-includes/class-http.php */
                        'timeout'   => 0.01,
                        'blocking'  => false,
                        /** This filter is documented in wp-includes/class-http.php */
-                       'sslverify' => apply_filters( 'https_local_ssl_verify', true )
+                       'sslverify' => apply_filters( 'https_local_ssl_verify', false )
                )
        ) );
 
                )
        ) );
 
index 6a1e827289ee37e5f98e96da67cffc0e42f5e007..9a9c6e60bf34b12964cb9f930f83c7a845f7c4fe 100644 (file)
@@ -65,6 +65,8 @@ html:lang(he-il) .rtl #wpadminbar *  {
 #wpadminbar select,
 #wpadminbar textarea,
 #wpadminbar div {
 #wpadminbar select,
 #wpadminbar textarea,
 #wpadminbar div {
+       -webkit-box-shadow: none;
+       box-shadow: none;
        outline: none;
 }
 
        outline: none;
 }
 
@@ -99,13 +101,6 @@ html:lang(he-il) .rtl #wpadminbar *  {
        margin-left: 0;
 }
 
        margin-left: 0;
 }
 
-/* Prevent a Chrome bug that inadvertantly activates
-   :hover states on an element that touches the extreme
-   top left corner of the viewport. See #18868 */
-#wpadminbar .quicklinks {
-       border-right: 1px solid transparent;
-}
-
 #wpadminbar .quicklinks ul {
        text-align: right;
 }
 #wpadminbar .quicklinks ul {
        text-align: right;
 }
@@ -509,6 +504,10 @@ html:lang(he-il) .rtl #wpadminbar *  {
 }
 
 #wpadminbar #wp-admin-bar-site-name > .ab-item:before {
 }
 
 #wpadminbar #wp-admin-bar-site-name > .ab-item:before {
+       content: "\f226";
+}
+
+.wp-admin #wpadminbar #wp-admin-bar-site-name > .ab-item:before {
        content: "\f102";
 }
 
        content: "\f102";
 }
 
index ef223e9968f428355554839d31003b049734ff63..06290bc215163931a09b774f3210bb375d6cb1f9 100644 (file)
@@ -1 +1 @@
-#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-shadow:none;text-transform:none;letter-spacing:normal;font:400 13px/32px "Open Sans",sans-serif;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:none;transition:none;-webkit-font-smoothing:subpixel-antialiased}.rtl #wpadminbar *{font-family:Tahoma,sans-serif}html:lang(he-il) .rtl #wpadminbar *{font-family:Arial,sans-serif}#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#eee}#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wpadminbar ul li:after,#wpadminbar ul li:before{content:normal}#wpadminbar a,#wpadminbar a img,#wpadminbar a img:hover,#wpadminbar a:hover{outline:0;border:0;text-decoration:none;background:0 0}#wpadminbar a:active,#wpadminbar a:focus,#wpadminbar div,#wpadminbar input[type=email],#wpadminbar input[type=number],#wpadminbar input[type=password],#wpadminbar input[type=search],#wpadminbar input[type=text],#wpadminbar input[type=url],#wpadminbar select,#wpadminbar textarea{outline:0}#wpadminbar{direction:rtl;color:#ccc;font:400 13px/32px "Open Sans",sans-serif;height:32px;position:fixed;top:0;right:0;width:100%;min-width:600px;z-index:99999;background:#222}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0 0;clear:none;list-style:none;margin:0;padding:0;position:relative;text-indent:0;z-index:99999}#wpadminbar ul#wp-admin-bar-root-default>li{margin-left:0}#wpadminbar .quicklinks{border-right:1px solid transparent}#wpadminbar .quicklinks ul{text-align:right}#wpadminbar li{float:right}#wpadminbar .ab-empty-item{outline:0}#wpadminbar .quicklinks .ab-top-secondary>li{float:left}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:32px;display:block;padding:0 10px;margin:0}#wpadminbar .quicklinks>ul>li>a{padding:0 7px 0 8px}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0;padding:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);background:#333;display:none;position:absolute;float:none}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:32px;right:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{left:0;right:auto}#wpadminbar .ab-submenu{padding:6px 0}#wpadminbar .selected .shortlink-input{display:block}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:700}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar .shortlink-input,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item{line-height:26px;height:26px;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar li.hover>.ab-sub-wrapper,#wpadminbar.nojs li:hover>.ab-sub-wrapper{display:block}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-right:100%;margin-top:-32px}#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper{margin-right:0;right:inherit;left:100%}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{background:#333;color:#2ea2cc}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#2ea2cc}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{position:relative;float:right;font:400 20px/1 dashicons;speak:none;padding:4px 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important;margin-left:6px}#wpadminbar #adminbarsearch:before,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before{color:#999;position:relative;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#wpadminbar .ab-label{display:inline-block;height:32px}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#eee}#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#2ea2cc}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before,#wpadminbar .menupop .menupop>.ab-item:before{position:absolute;font:400 17px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar .menupop .menupop>.ab-item{display:block;padding-left:2em}#wpadminbar .menupop .menupop>.ab-item:before{top:1px;left:4px;content:'\f139';color:inherit}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{padding-right:2em;padding-left:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:5px;right:3px;content:'\f141'}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;left:auto;margin:0;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4b4b4b}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus a,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li>a:hover{color:#2ea2cc}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#333;display:inline;padding:2px 5px;font-size:10px;font-weight:700;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:left}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{-webkit-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account>.ab-item:before{content:"\f110";top:2px;float:left;margin-right:6px;margin-left:0}#wp-admin-bar-my-account.with-avatar>.ab-item:before{display:none;content:none}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar #wp-admin-bar-user-actions>li{margin-right:16px;margin-left:16px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:6px 0 12px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-right:88px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0 0}#wp-admin-bar-user-info .avatar{position:absolute;right:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0 0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0 0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{display:block}#wpadminbar #wp-admin-bar-user-info .username{color:#999;font-size:11px}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{width:16px;height:16px;padding:0;border:1px solid #888;background:#eee;line-height:24px;vertical-align:middle;margin:-4px 6px 0 0;float:none;display:inline}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{width:15px;height:20px;margin-left:0;padding:6px 0 5px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0 7px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{content:'\f120';top:2px}#wpadminbar .quicklinks li .blavatar{float:right;font:400 16px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#eee}#wpadminbar .quicklinks li a:hover .blavatar{color:#2ea2cc}#wpadminbar .quicklinks li .blavatar:before{content:'\f120';height:16px;width:16px;display:inline-block;margin:6px -2px 0 8px}#wpadminbar #wp-admin-bar-appearance{margin-top:-12px}#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:'\f112';top:2px}#wpadminbar #wp-admin-bar-edit>.ab-item:before{content:'\f464';top:2px}#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f102"}#wpadminbar #wp-admin-bar-comments .ab-icon{margin-left:6px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{content:'\f101';top:3px}#wpadminbar #wp-admin-bar-comments .count-0{opacity:.5}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{content:'\f132';top:4px}#wpadminbar #wp-admin-bar-updates .ab-icon:before{content:'\f463';top:2px}#wpadminbar #wp-admin-bar-search .ab-item{padding:0;background:0 0}#wpadminbar #adminbarsearch{position:relative;height:32px;padding:0 2px}#wpadminbar #adminbarsearch:before{position:absolute;top:6px;right:5px;z-index:20;font:400 20px/1 dashicons!important;content:'\f179';speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{position:relative;z-index:30;font:13px/24px "Open Sans",sans-serif;height:24px;width:24px;padding:0 24px 0 3px;margin:0;color:#ccc;background-color:rgba(255,255,255,0);border:0;outline:0;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transition-property:width,background;transition-property:width,background;-webkit-transition-timing-function:ease;transition-timing-function:ease}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{z-index:10;color:#000;width:200px;background-color:rgba(255,255,255,.9);cursor:text;border:0}#wpadminbar.ie7>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:3px;width:120px}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:4px;background-color:#464646}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{background-color:#fff}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-button,.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#wpadminbar .screen-reader-text,#wpadminbar .screen-reader-text span{position:absolute;right:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}#wpadminbar .screen-reader-shortcut{position:absolute;top:-1000em}#wpadminbar .screen-reader-shortcut:focus{right:6px;top:7px;height:auto;width:auto;display:block;font-size:14px;font-weight:700;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;z-index:100000;line-height:normal;text-decoration:none;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6)}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:right}* html #wpadminbar .menupop a span{background-image:none}.no-font-face #wpadminbar ul.ab-top-menu>li>a.ab-item{display:block;width:45px;text-align:center;overflow:hidden;margin:0 3px}.no-font-face #wpadminbar #wp-admin-bar-edit>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-my-sites>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:0}.no-font-face #wpadminbar #wp-admin-bar-wp-logo>.ab-item,.no-font-face #wpadminbar .ab-icon,.no-font-face #wpadminbar .ab-icon:before,.no-font-face #wpadminbar a.ab-item:before{display:none!important}.no-font-face #wpadminbar ul.ab-top-menu>li>a>span.ab-label{display:inline}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon{display:inline!important}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon:before{content:"Menu";font:14px/45px sans-serif!important;display:inline-block!important;color:#fff}.no-font-face #wpadminbar #wp-admin-bar-site-name a.ab-item{color:#fff}@media screen and (max-width:782px){html #wpadminbar{right:0!important;z-index:500!important;height:46px;min-width:300px}#wpadminbar *{font:400 14px/32px "Open Sans",sans-serif}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks>ul>li>a{padding:0;height:46px;line-height:46px;width:auto}#wpadminbar .ab-icon{font:40px/1 dashicons!important;margin:0;width:52px;height:46px;text-align:center}#wpadminbar .ab-icon:before{text-align:center}#wpadminbar .ab-submenu{padding:0}#wpadminbar #wp-admin-bar-my-account a.ab-item,#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{text-overflow:clip}#wpadminbar .ab-label{display:none}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-top:-46px}#wpadminbar .ab-top-menu .menupop .ab-sub-wrapper .menupop>.ab-item{padding-left:30px}#wpadminbar .menupop .menupop>.ab-item:before{top:10px;left:6px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 15px 12px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper a:empty{display:none}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{padding:0;width:52px;height:46px;text-align:center;vertical-align:top}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{font:28px/1 dashicons!important;top:-3px}#wpadminbar #wp-admin-bar-edit>.ab-item,#wpadminbar #wp-admin-bar-my-account>.ab-item,#wpadminbar #wp-admin-bar-my-sites>.ab-item,#wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:100%;white-space:nowrap;overflow:hidden;width:52px;padding:0;color:#999;position:relative}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{padding:0;margin-left:0}#wpadminbar #wp-admin-bar-edit>.ab-item:before,#wpadminbar #wp-admin-bar-my-account>.ab-item:before,#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{display:block;text-indent:0;font:400 32px/1 dashicons;speak:none;top:7px;width:52px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar #wp-admin-bar-appearance{margin-top:0}#wpadminbar #wp-admin-bar-search,#wpadminbar .quicklinks li .blavatar:before{display:none}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{top:0;line-height:53px;height:46px!important;text-align:center;width:52px;display:block}#wpadminbar #wp-admin-bar-updates{text-align:center}#wpadminbar #wp-admin-bar-updates .ab-icon:before{top:3px}#wpadminbar #wp-admin-bar-comments .ab-icon{margin:0}#wpadminbar #wp-admin-bar-comments .ab-icon:before{display:block;font-size:34px;height:46px;line-height:47px;top:0}#wpadminbar #wp-admin-bar-my-account>a{position:relative;white-space:nowrap;text-indent:150%;width:28px;padding:0 10px;overflow:hidden}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{position:absolute;top:13px;left:10px;width:26px;height:26px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:0}#wpadminbar #wp-admin-bar-user-actions.ab-submenu img.avatar{display:none}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin:0}#wpadminbar #wp-admin-bar-user-info .display-name{height:auto;font-size:16px;line-height:24px;color:#eee}#wpadminbar #wp-admin-bar-user-info a{padding-top:4px}#wpadminbar #wp-admin-bar-user-info .username{line-height:.8!important;margin-bottom:-2px}#wp-toolbar>ul>li{display:none}#wpadminbar li#wp-admin-bar-comments,#wpadminbar li#wp-admin-bar-edit,#wpadminbar li#wp-admin-bar-menu-toggle,#wpadminbar li#wp-admin-bar-my-account,#wpadminbar li#wp-admin-bar-my-sites,#wpadminbar li#wp-admin-bar-new-content,#wpadminbar li#wp-admin-bar-site-name,#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:block}#wpadminbar li.hover ul li,#wpadminbar li:hover ul li,#wpadminbar li:hover ul li:hover ul li{display:list-item}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}#wpadminbar ul#wp-admin-bar-root-default>li{margin-left:0}#wpadminbar #wp-admin-bar-comments,#wpadminbar #wp-admin-bar-edit,#wpadminbar #wp-admin-bar-my-account,#wpadminbar #wp-admin-bar-my-sites,#wpadminbar #wp-admin-bar-new-content,#wpadminbar #wp-admin-bar-site-name,#wpadminbar #wp-admin-bar-updates,#wpadminbar #wp-admin-bar-wp-logo,#wpadminbar .ab-top-menu,#wpadminbar .ab-top-secondary{position:static}#wpadminbar #wp-admin-bar-my-account{float:left}.network-admin #wpadminbar ul#wp-admin-bar-top-secondary>li#wp-admin-bar-my-account{margin-left:0}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:10px;right:0}}@media screen and (max-width:600px){#wpadminbar{position:absolute}#wp-responsive-overlay{position:fixed;top:0;right:0;width:100%;height:100%;z-index:400}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{position:fixed;width:100%;right:0}#wpadminbar .menupop .menupop>.ab-item:before{display:none}#wpadminbar #wp-admin-bar-wp-logo.menupop .ab-sub-wrapper{margin-right:0}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{margin:0;width:100%;top:auto;right:auto}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 30px 19px 15px}#wpadminbar li:hover ul li ul li{display:list-item}#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:none}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{position:static;-webkit-box-shadow:none;box-shadow:none}}
\ No newline at end of file
+#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-shadow:none;text-transform:none;letter-spacing:normal;font:400 13px/32px "Open Sans",sans-serif;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:none;transition:none;-webkit-font-smoothing:subpixel-antialiased}.rtl #wpadminbar *{font-family:Tahoma,sans-serif}html:lang(he-il) .rtl #wpadminbar *{font-family:Arial,sans-serif}#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#eee}#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wpadminbar ul li:after,#wpadminbar ul li:before{content:normal}#wpadminbar a,#wpadminbar a img,#wpadminbar a img:hover,#wpadminbar a:hover{outline:0;border:none;text-decoration:none;background:0 0}#wpadminbar a:active,#wpadminbar a:focus,#wpadminbar div,#wpadminbar input[type=email],#wpadminbar input[type=number],#wpadminbar input[type=password],#wpadminbar input[type=search],#wpadminbar input[type=text],#wpadminbar input[type=url],#wpadminbar select,#wpadminbar textarea{-webkit-box-shadow:none;box-shadow:none;outline:0}#wpadminbar{direction:rtl;color:#ccc;font:400 13px/32px "Open Sans",sans-serif;height:32px;position:fixed;top:0;right:0;width:100%;min-width:600px;z-index:99999;background:#222}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0 0;clear:none;list-style:none;margin:0;padding:0;position:relative;text-indent:0;z-index:99999}#wpadminbar ul#wp-admin-bar-root-default>li{margin-left:0}#wpadminbar .quicklinks ul{text-align:right}#wpadminbar li{float:right}#wpadminbar .ab-empty-item{outline:0}#wpadminbar .quicklinks .ab-top-secondary>li{float:left}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:32px;display:block;padding:0 10px;margin:0}#wpadminbar .quicklinks>ul>li>a{padding:0 7px 0 8px}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0;padding:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);background:#333;display:none;position:absolute;float:none}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:32px;right:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{left:0;right:auto}#wpadminbar .ab-submenu{padding:6px 0}#wpadminbar .selected .shortlink-input{display:block}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:700}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar .shortlink-input,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item{line-height:26px;height:26px;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar li.hover>.ab-sub-wrapper,#wpadminbar.nojs li:hover>.ab-sub-wrapper{display:block}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-right:100%;margin-top:-32px}#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper{margin-right:0;right:inherit;left:100%}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{background:#333;color:#2ea2cc}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#2ea2cc}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{position:relative;float:right;font:400 20px/1 dashicons;speak:none;padding:4px 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important;margin-left:6px}#wpadminbar #adminbarsearch:before,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before{color:#999;position:relative;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#wpadminbar .ab-label{display:inline-block;height:32px}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#eee}#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#2ea2cc}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before,#wpadminbar .menupop .menupop>.ab-item:before{position:absolute;font:400 17px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar .menupop .menupop>.ab-item{display:block;padding-left:2em}#wpadminbar .menupop .menupop>.ab-item:before{top:1px;left:4px;content:'\f139';color:inherit}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{padding-right:2em;padding-left:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:5px;right:3px;content:'\f141'}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;left:auto;margin:0;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4b4b4b}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus a,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li>a:hover{color:#2ea2cc}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#333;display:inline;padding:2px 5px;font-size:10px;font-weight:700;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:left}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{-webkit-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account>.ab-item:before{content:"\f110";top:2px;float:left;margin-right:6px;margin-left:0}#wp-admin-bar-my-account.with-avatar>.ab-item:before{display:none;content:none}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar #wp-admin-bar-user-actions>li{margin-right:16px;margin-left:16px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:6px 0 12px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-right:88px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0 0}#wp-admin-bar-user-info .avatar{position:absolute;right:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0 0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0 0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{display:block}#wpadminbar #wp-admin-bar-user-info .username{color:#999;font-size:11px}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{width:16px;height:16px;padding:0;border:1px solid #888;background:#eee;line-height:24px;vertical-align:middle;margin:-4px 6px 0 0;float:none;display:inline}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{width:15px;height:20px;margin-left:0;padding:6px 0 5px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0 7px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{content:'\f120';top:2px}#wpadminbar .quicklinks li .blavatar{float:right;font:400 16px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#eee}#wpadminbar .quicklinks li a:hover .blavatar{color:#2ea2cc}#wpadminbar .quicklinks li .blavatar:before{content:'\f120';height:16px;width:16px;display:inline-block;margin:6px -2px 0 8px}#wpadminbar #wp-admin-bar-appearance{margin-top:-12px}#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:'\f112';top:2px}#wpadminbar #wp-admin-bar-edit>.ab-item:before{content:'\f464';top:2px}#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f226"}.wp-admin #wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f102"}#wpadminbar #wp-admin-bar-comments .ab-icon{margin-left:6px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{content:'\f101';top:3px}#wpadminbar #wp-admin-bar-comments .count-0{opacity:.5}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{content:'\f132';top:4px}#wpadminbar #wp-admin-bar-updates .ab-icon:before{content:'\f463';top:2px}#wpadminbar #wp-admin-bar-search .ab-item{padding:0;background:0 0}#wpadminbar #adminbarsearch{position:relative;height:32px;padding:0 2px}#wpadminbar #adminbarsearch:before{position:absolute;top:6px;right:5px;z-index:20;font:400 20px/1 dashicons!important;content:'\f179';speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{position:relative;z-index:30;font:13px/24px "Open Sans",sans-serif;height:24px;width:24px;padding:0 24px 0 3px;margin:0;color:#ccc;background-color:transparent;border:none;outline:0;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transition-property:width,background;transition-property:width,background;-webkit-transition-timing-function:ease;transition-timing-function:ease}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{z-index:10;color:#000;width:200px;background-color:rgba(255,255,255,.9);cursor:text;border:0}#wpadminbar.ie7>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:3px;width:120px}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:4px;background-color:#464646}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{background-color:#fff}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-button,.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#wpadminbar .screen-reader-text,#wpadminbar .screen-reader-text span{position:absolute;right:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}#wpadminbar .screen-reader-shortcut{position:absolute;top:-1000em}#wpadminbar .screen-reader-shortcut:focus{right:6px;top:7px;height:auto;width:auto;display:block;font-size:14px;font-weight:700;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;z-index:100000;line-height:normal;text-decoration:none;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6)}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:right}* html #wpadminbar .menupop a span{background-image:none}.no-font-face #wpadminbar ul.ab-top-menu>li>a.ab-item{display:block;width:45px;text-align:center;overflow:hidden;margin:0 3px}.no-font-face #wpadminbar #wp-admin-bar-edit>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-my-sites>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:0}.no-font-face #wpadminbar #wp-admin-bar-wp-logo>.ab-item,.no-font-face #wpadminbar .ab-icon,.no-font-face #wpadminbar .ab-icon:before,.no-font-face #wpadminbar a.ab-item:before{display:none!important}.no-font-face #wpadminbar ul.ab-top-menu>li>a>span.ab-label{display:inline}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon{display:inline!important}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon:before{content:"Menu";font:14px/45px sans-serif!important;display:inline-block!important;color:#fff}.no-font-face #wpadminbar #wp-admin-bar-site-name a.ab-item{color:#fff}@media screen and (max-width:782px){html #wpadminbar{right:0!important;z-index:500!important;height:46px;min-width:300px}#wpadminbar *{font:400 14px/32px "Open Sans",sans-serif}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks>ul>li>a{padding:0;height:46px;line-height:46px;width:auto}#wpadminbar .ab-icon{font:40px/1 dashicons!important;margin:0;width:52px;height:46px;text-align:center}#wpadminbar .ab-icon:before{text-align:center}#wpadminbar .ab-submenu{padding:0}#wpadminbar #wp-admin-bar-my-account a.ab-item,#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{text-overflow:clip}#wpadminbar .ab-label{display:none}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-top:-46px}#wpadminbar .ab-top-menu .menupop .ab-sub-wrapper .menupop>.ab-item{padding-left:30px}#wpadminbar .menupop .menupop>.ab-item:before{top:10px;left:6px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 15px 12px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper a:empty{display:none}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{padding:0;width:52px;height:46px;text-align:center;vertical-align:top}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{font:28px/1 dashicons!important;top:-3px}#wpadminbar #wp-admin-bar-edit>.ab-item,#wpadminbar #wp-admin-bar-my-account>.ab-item,#wpadminbar #wp-admin-bar-my-sites>.ab-item,#wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:100%;white-space:nowrap;overflow:hidden;width:52px;padding:0;color:#999;position:relative}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{padding:0;margin-left:0}#wpadminbar #wp-admin-bar-edit>.ab-item:before,#wpadminbar #wp-admin-bar-my-account>.ab-item:before,#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{display:block;text-indent:0;font:400 32px/1 dashicons;speak:none;top:7px;width:52px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar #wp-admin-bar-appearance{margin-top:0}#wpadminbar #wp-admin-bar-search,#wpadminbar .quicklinks li .blavatar:before{display:none}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{top:0;line-height:53px;height:46px!important;text-align:center;width:52px;display:block}#wpadminbar #wp-admin-bar-updates{text-align:center}#wpadminbar #wp-admin-bar-updates .ab-icon:before{top:3px}#wpadminbar #wp-admin-bar-comments .ab-icon{margin:0}#wpadminbar #wp-admin-bar-comments .ab-icon:before{display:block;font-size:34px;height:46px;line-height:47px;top:0}#wpadminbar #wp-admin-bar-my-account>a{position:relative;white-space:nowrap;text-indent:150%;width:28px;padding:0 10px;overflow:hidden}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{position:absolute;top:13px;left:10px;width:26px;height:26px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:0}#wpadminbar #wp-admin-bar-user-actions.ab-submenu img.avatar{display:none}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin:0}#wpadminbar #wp-admin-bar-user-info .display-name{height:auto;font-size:16px;line-height:24px;color:#eee}#wpadminbar #wp-admin-bar-user-info a{padding-top:4px}#wpadminbar #wp-admin-bar-user-info .username{line-height:.8!important;margin-bottom:-2px}#wp-toolbar>ul>li{display:none}#wpadminbar li#wp-admin-bar-comments,#wpadminbar li#wp-admin-bar-edit,#wpadminbar li#wp-admin-bar-menu-toggle,#wpadminbar li#wp-admin-bar-my-account,#wpadminbar li#wp-admin-bar-my-sites,#wpadminbar li#wp-admin-bar-new-content,#wpadminbar li#wp-admin-bar-site-name,#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:block}#wpadminbar li.hover ul li,#wpadminbar li:hover ul li,#wpadminbar li:hover ul li:hover ul li{display:list-item}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}#wpadminbar ul#wp-admin-bar-root-default>li{margin-left:0}#wpadminbar #wp-admin-bar-comments,#wpadminbar #wp-admin-bar-edit,#wpadminbar #wp-admin-bar-my-account,#wpadminbar #wp-admin-bar-my-sites,#wpadminbar #wp-admin-bar-new-content,#wpadminbar #wp-admin-bar-site-name,#wpadminbar #wp-admin-bar-updates,#wpadminbar #wp-admin-bar-wp-logo,#wpadminbar .ab-top-menu,#wpadminbar .ab-top-secondary{position:static}#wpadminbar #wp-admin-bar-my-account{float:left}.network-admin #wpadminbar ul#wp-admin-bar-top-secondary>li#wp-admin-bar-my-account{margin-left:0}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:10px;right:0}}@media screen and (max-width:600px){#wpadminbar{position:absolute}#wp-responsive-overlay{position:fixed;top:0;right:0;width:100%;height:100%;z-index:400}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{position:fixed;width:100%;right:0}#wpadminbar .menupop .menupop>.ab-item:before{display:none}#wpadminbar #wp-admin-bar-wp-logo.menupop .ab-sub-wrapper{margin-right:0}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{margin:0;width:100%;top:auto;right:auto}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 30px 19px 15px}#wpadminbar li:hover ul li ul li{display:list-item}#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:none}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{position:static;-webkit-box-shadow:none;box-shadow:none}}
\ No newline at end of file
index e9f0299a134ce8c7f456128b38fc1ca9ef9e5664..4f5343c602f3b3c2081feb4827d6b285979b6591 100644 (file)
@@ -65,6 +65,8 @@ html:lang(he-il) .rtl #wpadminbar *  {
 #wpadminbar select,
 #wpadminbar textarea,
 #wpadminbar div {
 #wpadminbar select,
 #wpadminbar textarea,
 #wpadminbar div {
+       -webkit-box-shadow: none;
+       box-shadow: none;
        outline: none;
 }
 
        outline: none;
 }
 
@@ -99,13 +101,6 @@ html:lang(he-il) .rtl #wpadminbar *  {
        margin-right: 0;
 }
 
        margin-right: 0;
 }
 
-/* Prevent a Chrome bug that inadvertantly activates
-   :hover states on an element that touches the extreme
-   top left corner of the viewport. See #18868 */
-#wpadminbar .quicklinks {
-       border-left: 1px solid transparent;
-}
-
 #wpadminbar .quicklinks ul {
        text-align: left;
 }
 #wpadminbar .quicklinks ul {
        text-align: left;
 }
@@ -509,6 +504,10 @@ html:lang(he-il) .rtl #wpadminbar *  {
 }
 
 #wpadminbar #wp-admin-bar-site-name > .ab-item:before {
 }
 
 #wpadminbar #wp-admin-bar-site-name > .ab-item:before {
+       content: "\f226";
+}
+
+.wp-admin #wpadminbar #wp-admin-bar-site-name > .ab-item:before {
        content: "\f102";
 }
 
        content: "\f102";
 }
 
index e09e520decadbf342e56e5d0d9f0b9152244332a..8907308a64ea887f2e51310cba06371ecc7552ca 100644 (file)
@@ -1 +1 @@
-#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-shadow:none;text-transform:none;letter-spacing:normal;font:400 13px/32px "Open Sans",sans-serif;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:none;transition:none;-webkit-font-smoothing:subpixel-antialiased}.rtl #wpadminbar *{font-family:Tahoma,sans-serif}html:lang(he-il) .rtl #wpadminbar *{font-family:Arial,sans-serif}#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#eee}#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wpadminbar ul li:after,#wpadminbar ul li:before{content:normal}#wpadminbar a,#wpadminbar a img,#wpadminbar a img:hover,#wpadminbar a:hover{outline:0;border:0;text-decoration:none;background:0 0}#wpadminbar a:active,#wpadminbar a:focus,#wpadminbar div,#wpadminbar input[type=email],#wpadminbar input[type=number],#wpadminbar input[type=password],#wpadminbar input[type=search],#wpadminbar input[type=text],#wpadminbar input[type=url],#wpadminbar select,#wpadminbar textarea{outline:0}#wpadminbar{direction:ltr;color:#ccc;font:400 13px/32px "Open Sans",sans-serif;height:32px;position:fixed;top:0;left:0;width:100%;min-width:600px;z-index:99999;background:#222}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0 0;clear:none;list-style:none;margin:0;padding:0;position:relative;text-indent:0;z-index:99999}#wpadminbar ul#wp-admin-bar-root-default>li{margin-right:0}#wpadminbar .quicklinks{border-left:1px solid transparent}#wpadminbar .quicklinks ul{text-align:left}#wpadminbar li{float:left}#wpadminbar .ab-empty-item{outline:0}#wpadminbar .quicklinks .ab-top-secondary>li{float:right}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:32px;display:block;padding:0 10px;margin:0}#wpadminbar .quicklinks>ul>li>a{padding:0 8px 0 7px}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0;padding:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);background:#333;display:none;position:absolute;float:none}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:32px;left:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{right:0;left:auto}#wpadminbar .ab-submenu{padding:6px 0}#wpadminbar .selected .shortlink-input{display:block}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:700}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar .shortlink-input,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item{line-height:26px;height:26px;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar li.hover>.ab-sub-wrapper,#wpadminbar.nojs li:hover>.ab-sub-wrapper{display:block}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-left:100%;margin-top:-32px}#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper{margin-left:0;left:inherit;right:100%}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{background:#333;color:#2ea2cc}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#2ea2cc}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{position:relative;float:left;font:400 20px/1 dashicons;speak:none;padding:4px 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important;margin-right:6px}#wpadminbar #adminbarsearch:before,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before{color:#999;position:relative;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#wpadminbar .ab-label{display:inline-block;height:32px}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#eee}#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#2ea2cc}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before,#wpadminbar .menupop .menupop>.ab-item:before{position:absolute;font:400 17px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar .menupop .menupop>.ab-item{display:block;padding-right:2em}#wpadminbar .menupop .menupop>.ab-item:before{top:1px;right:4px;content:'\f139';color:inherit}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{padding-left:2em;padding-right:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:5px;left:3px;content:'\f141'}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;right:auto;margin:0;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4b4b4b}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus a,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li>a:hover{color:#2ea2cc}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#333;display:inline;padding:2px 5px;font-size:10px;font-weight:700;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:right}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{-webkit-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account>.ab-item:before{content:"\f110";top:2px;float:right;margin-left:6px;margin-right:0}#wp-admin-bar-my-account.with-avatar>.ab-item:before{display:none;content:none}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar #wp-admin-bar-user-actions>li{margin-left:16px;margin-right:16px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:6px 0 12px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-left:88px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0 0}#wp-admin-bar-user-info .avatar{position:absolute;left:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0 0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0 0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{display:block}#wpadminbar #wp-admin-bar-user-info .username{color:#999;font-size:11px}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{width:16px;height:16px;padding:0;border:1px solid #888;background:#eee;line-height:24px;vertical-align:middle;margin:-4px 0 0 6px;float:none;display:inline}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{width:15px;height:20px;margin-right:0;padding:6px 0 5px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0 7px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{content:'\f120';top:2px}#wpadminbar .quicklinks li .blavatar{float:left;font:400 16px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#eee}#wpadminbar .quicklinks li a:hover .blavatar{color:#2ea2cc}#wpadminbar .quicklinks li .blavatar:before{content:'\f120';height:16px;width:16px;display:inline-block;margin:6px 8px 0 -2px}#wpadminbar #wp-admin-bar-appearance{margin-top:-12px}#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:'\f112';top:2px}#wpadminbar #wp-admin-bar-edit>.ab-item:before{content:'\f464';top:2px}#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f102"}#wpadminbar #wp-admin-bar-comments .ab-icon{margin-right:6px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{content:'\f101';top:3px}#wpadminbar #wp-admin-bar-comments .count-0{opacity:.5}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{content:'\f132';top:4px}#wpadminbar #wp-admin-bar-updates .ab-icon:before{content:'\f463';top:2px}#wpadminbar #wp-admin-bar-search .ab-item{padding:0;background:0 0}#wpadminbar #adminbarsearch{position:relative;height:32px;padding:0 2px}#wpadminbar #adminbarsearch:before{position:absolute;top:6px;left:5px;z-index:20;font:400 20px/1 dashicons!important;content:'\f179';speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{position:relative;z-index:30;font:13px/24px "Open Sans",sans-serif;height:24px;width:24px;padding:0 3px 0 24px;margin:0;color:#ccc;background-color:rgba(255,255,255,0);border:0;outline:0;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transition-property:width,background;transition-property:width,background;-webkit-transition-timing-function:ease;transition-timing-function:ease}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{z-index:10;color:#000;width:200px;background-color:rgba(255,255,255,.9);cursor:text;border:0}#wpadminbar.ie7>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:3px;width:120px}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:4px;background-color:#464646}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{background-color:#fff}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-button,.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#wpadminbar .screen-reader-text,#wpadminbar .screen-reader-text span{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}#wpadminbar .screen-reader-shortcut{position:absolute;top:-1000em}#wpadminbar .screen-reader-shortcut:focus{left:6px;top:7px;height:auto;width:auto;display:block;font-size:14px;font-weight:700;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;z-index:100000;line-height:normal;text-decoration:none;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6)}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:left}* html #wpadminbar .menupop a span{background-image:none}.no-font-face #wpadminbar ul.ab-top-menu>li>a.ab-item{display:block;width:45px;text-align:center;overflow:hidden;margin:0 3px}.no-font-face #wpadminbar #wp-admin-bar-edit>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-my-sites>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:0}.no-font-face #wpadminbar #wp-admin-bar-wp-logo>.ab-item,.no-font-face #wpadminbar .ab-icon,.no-font-face #wpadminbar .ab-icon:before,.no-font-face #wpadminbar a.ab-item:before{display:none!important}.no-font-face #wpadminbar ul.ab-top-menu>li>a>span.ab-label{display:inline}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon{display:inline!important}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon:before{content:"Menu";font:14px/45px sans-serif!important;display:inline-block!important;color:#fff}.no-font-face #wpadminbar #wp-admin-bar-site-name a.ab-item{color:#fff}@media screen and (max-width:782px){html #wpadminbar{left:0!important;z-index:500!important;height:46px;min-width:300px}#wpadminbar *{font:400 14px/32px "Open Sans",sans-serif}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks>ul>li>a{padding:0;height:46px;line-height:46px;width:auto}#wpadminbar .ab-icon{font:40px/1 dashicons!important;margin:0;width:52px;height:46px;text-align:center}#wpadminbar .ab-icon:before{text-align:center}#wpadminbar .ab-submenu{padding:0}#wpadminbar #wp-admin-bar-my-account a.ab-item,#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{text-overflow:clip}#wpadminbar .ab-label{display:none}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-top:-46px}#wpadminbar .ab-top-menu .menupop .ab-sub-wrapper .menupop>.ab-item{padding-right:30px}#wpadminbar .menupop .menupop>.ab-item:before{top:10px;right:6px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 15px 12px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper a:empty{display:none}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{padding:0;width:52px;height:46px;text-align:center;vertical-align:top}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{font:28px/1 dashicons!important;top:-3px}#wpadminbar #wp-admin-bar-edit>.ab-item,#wpadminbar #wp-admin-bar-my-account>.ab-item,#wpadminbar #wp-admin-bar-my-sites>.ab-item,#wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:100%;white-space:nowrap;overflow:hidden;width:52px;padding:0;color:#999;position:relative}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{padding:0;margin-right:0}#wpadminbar #wp-admin-bar-edit>.ab-item:before,#wpadminbar #wp-admin-bar-my-account>.ab-item:before,#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{display:block;text-indent:0;font:400 32px/1 dashicons;speak:none;top:7px;width:52px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar #wp-admin-bar-appearance{margin-top:0}#wpadminbar #wp-admin-bar-search,#wpadminbar .quicklinks li .blavatar:before{display:none}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{top:0;line-height:53px;height:46px!important;text-align:center;width:52px;display:block}#wpadminbar #wp-admin-bar-updates{text-align:center}#wpadminbar #wp-admin-bar-updates .ab-icon:before{top:3px}#wpadminbar #wp-admin-bar-comments .ab-icon{margin:0}#wpadminbar #wp-admin-bar-comments .ab-icon:before{display:block;font-size:34px;height:46px;line-height:47px;top:0}#wpadminbar #wp-admin-bar-my-account>a{position:relative;white-space:nowrap;text-indent:150%;width:28px;padding:0 10px;overflow:hidden}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{position:absolute;top:13px;right:10px;width:26px;height:26px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:0}#wpadminbar #wp-admin-bar-user-actions.ab-submenu img.avatar{display:none}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin:0}#wpadminbar #wp-admin-bar-user-info .display-name{height:auto;font-size:16px;line-height:24px;color:#eee}#wpadminbar #wp-admin-bar-user-info a{padding-top:4px}#wpadminbar #wp-admin-bar-user-info .username{line-height:.8!important;margin-bottom:-2px}#wp-toolbar>ul>li{display:none}#wpadminbar li#wp-admin-bar-comments,#wpadminbar li#wp-admin-bar-edit,#wpadminbar li#wp-admin-bar-menu-toggle,#wpadminbar li#wp-admin-bar-my-account,#wpadminbar li#wp-admin-bar-my-sites,#wpadminbar li#wp-admin-bar-new-content,#wpadminbar li#wp-admin-bar-site-name,#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:block}#wpadminbar li.hover ul li,#wpadminbar li:hover ul li,#wpadminbar li:hover ul li:hover ul li{display:list-item}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}#wpadminbar ul#wp-admin-bar-root-default>li{margin-right:0}#wpadminbar #wp-admin-bar-comments,#wpadminbar #wp-admin-bar-edit,#wpadminbar #wp-admin-bar-my-account,#wpadminbar #wp-admin-bar-my-sites,#wpadminbar #wp-admin-bar-new-content,#wpadminbar #wp-admin-bar-site-name,#wpadminbar #wp-admin-bar-updates,#wpadminbar #wp-admin-bar-wp-logo,#wpadminbar .ab-top-menu,#wpadminbar .ab-top-secondary{position:static}#wpadminbar #wp-admin-bar-my-account{float:right}.network-admin #wpadminbar ul#wp-admin-bar-top-secondary>li#wp-admin-bar-my-account{margin-right:0}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:10px;left:0}}@media screen and (max-width:600px){#wpadminbar{position:absolute}#wp-responsive-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:400}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{position:fixed;width:100%;left:0}#wpadminbar .menupop .menupop>.ab-item:before{display:none}#wpadminbar #wp-admin-bar-wp-logo.menupop .ab-sub-wrapper{margin-left:0}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{margin:0;width:100%;top:auto;left:auto}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 15px 19px 30px}#wpadminbar li:hover ul li ul li{display:list-item}#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:none}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{position:static;-webkit-box-shadow:none;box-shadow:none}}
\ No newline at end of file
+#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-shadow:none;text-transform:none;letter-spacing:normal;font:400 13px/32px "Open Sans",sans-serif;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:none;transition:none;-webkit-font-smoothing:subpixel-antialiased}.rtl #wpadminbar *{font-family:Tahoma,sans-serif}html:lang(he-il) .rtl #wpadminbar *{font-family:Arial,sans-serif}#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#eee}#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wpadminbar ul li:after,#wpadminbar ul li:before{content:normal}#wpadminbar a,#wpadminbar a img,#wpadminbar a img:hover,#wpadminbar a:hover{outline:0;border:none;text-decoration:none;background:0 0}#wpadminbar a:active,#wpadminbar a:focus,#wpadminbar div,#wpadminbar input[type=email],#wpadminbar input[type=number],#wpadminbar input[type=password],#wpadminbar input[type=search],#wpadminbar input[type=text],#wpadminbar input[type=url],#wpadminbar select,#wpadminbar textarea{-webkit-box-shadow:none;box-shadow:none;outline:0}#wpadminbar{direction:ltr;color:#ccc;font:400 13px/32px "Open Sans",sans-serif;height:32px;position:fixed;top:0;left:0;width:100%;min-width:600px;z-index:99999;background:#222}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0 0;clear:none;list-style:none;margin:0;padding:0;position:relative;text-indent:0;z-index:99999}#wpadminbar ul#wp-admin-bar-root-default>li{margin-right:0}#wpadminbar .quicklinks ul{text-align:left}#wpadminbar li{float:left}#wpadminbar .ab-empty-item{outline:0}#wpadminbar .quicklinks .ab-top-secondary>li{float:right}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:32px;display:block;padding:0 10px;margin:0}#wpadminbar .quicklinks>ul>li>a{padding:0 8px 0 7px}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0;padding:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);background:#333;display:none;position:absolute;float:none}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:32px;left:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{right:0;left:auto}#wpadminbar .ab-submenu{padding:6px 0}#wpadminbar .selected .shortlink-input{display:block}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:700}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar .shortlink-input,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item{line-height:26px;height:26px;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar li.hover>.ab-sub-wrapper,#wpadminbar.nojs li:hover>.ab-sub-wrapper{display:block}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-left:100%;margin-top:-32px}#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper{margin-left:0;left:inherit;right:100%}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{background:#333;color:#2ea2cc}#wpadminbar>#wp-toolbar a:focus span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label,#wpadminbar>#wp-toolbar li:hover span.ab-label{color:#2ea2cc}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{position:relative;float:left;font:400 20px/1 dashicons;speak:none;padding:4px 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important;margin-right:6px}#wpadminbar #adminbarsearch:before,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before{color:#999;position:relative;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#wpadminbar .ab-label{display:inline-block;height:32px}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#eee}#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#2ea2cc}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before,#wpadminbar .menupop .menupop>.ab-item:before{position:absolute;font:400 17px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar .menupop .menupop>.ab-item{display:block;padding-right:2em}#wpadminbar .menupop .menupop>.ab-item:before{top:1px;right:4px;content:'\f139';color:inherit}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{padding-left:2em;padding-right:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:5px;left:3px;content:'\f141'}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;right:auto;margin:0;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4b4b4b}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus a,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li>a:hover{color:#2ea2cc}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#333;display:inline;padding:2px 5px;font-size:10px;font-weight:700;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:right}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{-webkit-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account>.ab-item:before{content:"\f110";top:2px;float:right;margin-left:6px;margin-right:0}#wp-admin-bar-my-account.with-avatar>.ab-item:before{display:none;content:none}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar #wp-admin-bar-user-actions>li{margin-left:16px;margin-right:16px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:6px 0 12px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-left:88px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0 0}#wp-admin-bar-user-info .avatar{position:absolute;left:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0 0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0 0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{display:block}#wpadminbar #wp-admin-bar-user-info .username{color:#999;font-size:11px}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{width:16px;height:16px;padding:0;border:1px solid #888;background:#eee;line-height:24px;vertical-align:middle;margin:-4px 0 0 6px;float:none;display:inline}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{width:15px;height:20px;margin-right:0;padding:6px 0 5px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0 7px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{content:'\f120';top:2px}#wpadminbar .quicklinks li .blavatar{float:left;font:400 16px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#eee}#wpadminbar .quicklinks li a:hover .blavatar{color:#2ea2cc}#wpadminbar .quicklinks li .blavatar:before{content:'\f120';height:16px;width:16px;display:inline-block;margin:6px 8px 0 -2px}#wpadminbar #wp-admin-bar-appearance{margin-top:-12px}#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:'\f112';top:2px}#wpadminbar #wp-admin-bar-edit>.ab-item:before{content:'\f464';top:2px}#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f226"}.wp-admin #wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f102"}#wpadminbar #wp-admin-bar-comments .ab-icon{margin-right:6px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{content:'\f101';top:3px}#wpadminbar #wp-admin-bar-comments .count-0{opacity:.5}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{content:'\f132';top:4px}#wpadminbar #wp-admin-bar-updates .ab-icon:before{content:'\f463';top:2px}#wpadminbar #wp-admin-bar-search .ab-item{padding:0;background:0 0}#wpadminbar #adminbarsearch{position:relative;height:32px;padding:0 2px}#wpadminbar #adminbarsearch:before{position:absolute;top:6px;left:5px;z-index:20;font:400 20px/1 dashicons!important;content:'\f179';speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{position:relative;z-index:30;font:13px/24px "Open Sans",sans-serif;height:24px;width:24px;padding:0 3px 0 24px;margin:0;color:#ccc;background-color:transparent;border:none;outline:0;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transition-property:width,background;transition-property:width,background;-webkit-transition-timing-function:ease;transition-timing-function:ease}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{z-index:10;color:#000;width:200px;background-color:rgba(255,255,255,.9);cursor:text;border:0}#wpadminbar.ie7>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:3px;width:120px}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:4px;background-color:#464646}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{background-color:#fff}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input::-moz-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-input:-ms-input-placeholder{color:#999}#wpadminbar #adminbarsearch .adminbar-button,.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#wpadminbar .screen-reader-text,#wpadminbar .screen-reader-text span{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}#wpadminbar .screen-reader-shortcut{position:absolute;top:-1000em}#wpadminbar .screen-reader-shortcut:focus{left:6px;top:7px;height:auto;width:auto;display:block;font-size:14px;font-weight:700;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;z-index:100000;line-height:normal;text-decoration:none;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6)}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:left}* html #wpadminbar .menupop a span{background-image:none}.no-font-face #wpadminbar ul.ab-top-menu>li>a.ab-item{display:block;width:45px;text-align:center;overflow:hidden;margin:0 3px}.no-font-face #wpadminbar #wp-admin-bar-edit>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-my-sites>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:0}.no-font-face #wpadminbar #wp-admin-bar-wp-logo>.ab-item,.no-font-face #wpadminbar .ab-icon,.no-font-face #wpadminbar .ab-icon:before,.no-font-face #wpadminbar a.ab-item:before{display:none!important}.no-font-face #wpadminbar ul.ab-top-menu>li>a>span.ab-label{display:inline}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon{display:inline!important}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon:before{content:"Menu";font:14px/45px sans-serif!important;display:inline-block!important;color:#fff}.no-font-face #wpadminbar #wp-admin-bar-site-name a.ab-item{color:#fff}@media screen and (max-width:782px){html #wpadminbar{left:0!important;z-index:500!important;height:46px;min-width:300px}#wpadminbar *{font:400 14px/32px "Open Sans",sans-serif}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks>ul>li>a{padding:0;height:46px;line-height:46px;width:auto}#wpadminbar .ab-icon{font:40px/1 dashicons!important;margin:0;width:52px;height:46px;text-align:center}#wpadminbar .ab-icon:before{text-align:center}#wpadminbar .ab-submenu{padding:0}#wpadminbar #wp-admin-bar-my-account a.ab-item,#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{text-overflow:clip}#wpadminbar .ab-label{display:none}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-top:-46px}#wpadminbar .ab-top-menu .menupop .ab-sub-wrapper .menupop>.ab-item{padding-right:30px}#wpadminbar .menupop .menupop>.ab-item:before{top:10px;right:6px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 15px 12px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper a:empty{display:none}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{padding:0;width:52px;height:46px;text-align:center;vertical-align:top}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{font:28px/1 dashicons!important;top:-3px}#wpadminbar #wp-admin-bar-edit>.ab-item,#wpadminbar #wp-admin-bar-my-account>.ab-item,#wpadminbar #wp-admin-bar-my-sites>.ab-item,#wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:100%;white-space:nowrap;overflow:hidden;width:52px;padding:0;color:#999;position:relative}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{padding:0;margin-right:0}#wpadminbar #wp-admin-bar-edit>.ab-item:before,#wpadminbar #wp-admin-bar-my-account>.ab-item:before,#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{display:block;text-indent:0;font:400 32px/1 dashicons;speak:none;top:7px;width:52px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar #wp-admin-bar-appearance{margin-top:0}#wpadminbar #wp-admin-bar-search,#wpadminbar .quicklinks li .blavatar:before{display:none}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{top:0;line-height:53px;height:46px!important;text-align:center;width:52px;display:block}#wpadminbar #wp-admin-bar-updates{text-align:center}#wpadminbar #wp-admin-bar-updates .ab-icon:before{top:3px}#wpadminbar #wp-admin-bar-comments .ab-icon{margin:0}#wpadminbar #wp-admin-bar-comments .ab-icon:before{display:block;font-size:34px;height:46px;line-height:47px;top:0}#wpadminbar #wp-admin-bar-my-account>a{position:relative;white-space:nowrap;text-indent:150%;width:28px;padding:0 10px;overflow:hidden}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{position:absolute;top:13px;right:10px;width:26px;height:26px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:0}#wpadminbar #wp-admin-bar-user-actions.ab-submenu img.avatar{display:none}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin:0}#wpadminbar #wp-admin-bar-user-info .display-name{height:auto;font-size:16px;line-height:24px;color:#eee}#wpadminbar #wp-admin-bar-user-info a{padding-top:4px}#wpadminbar #wp-admin-bar-user-info .username{line-height:.8!important;margin-bottom:-2px}#wp-toolbar>ul>li{display:none}#wpadminbar li#wp-admin-bar-comments,#wpadminbar li#wp-admin-bar-edit,#wpadminbar li#wp-admin-bar-menu-toggle,#wpadminbar li#wp-admin-bar-my-account,#wpadminbar li#wp-admin-bar-my-sites,#wpadminbar li#wp-admin-bar-new-content,#wpadminbar li#wp-admin-bar-site-name,#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:block}#wpadminbar li.hover ul li,#wpadminbar li:hover ul li,#wpadminbar li:hover ul li:hover ul li{display:list-item}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}#wpadminbar ul#wp-admin-bar-root-default>li{margin-right:0}#wpadminbar #wp-admin-bar-comments,#wpadminbar #wp-admin-bar-edit,#wpadminbar #wp-admin-bar-my-account,#wpadminbar #wp-admin-bar-my-sites,#wpadminbar #wp-admin-bar-new-content,#wpadminbar #wp-admin-bar-site-name,#wpadminbar #wp-admin-bar-updates,#wpadminbar #wp-admin-bar-wp-logo,#wpadminbar .ab-top-menu,#wpadminbar .ab-top-secondary{position:static}#wpadminbar #wp-admin-bar-my-account{float:right}.network-admin #wpadminbar ul#wp-admin-bar-top-secondary>li#wp-admin-bar-my-account{margin-right:0}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:10px;left:0}}@media screen and (max-width:600px){#wpadminbar{position:absolute}#wp-responsive-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:400}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{position:fixed;width:100%;left:0}#wpadminbar .menupop .menupop>.ab-item:before{display:none}#wpadminbar #wp-admin-bar-wp-logo.menupop .ab-sub-wrapper{margin-left:0}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{margin:0;width:100%;top:auto;left:auto}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 15px 19px 30px}#wpadminbar li:hover ul li ul li{display:list-item}#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:none}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{position:static;-webkit-box-shadow:none;box-shadow:none}}
\ No newline at end of file
index c24eade35759a0940ea2c46705e3af5c832946eb..d4e0b53c5de626ad8b53aa7df26a51b28da076f4 100644 (file)
@@ -67,9 +67,8 @@ TABLE OF CONTENTS:
 .wp-core-ui input[type="reset"]::-moz-focus-inner,
 .wp-core-ui input[type="button"]::-moz-focus-inner,
 .wp-core-ui input[type="submit"]::-moz-focus-inner {
 .wp-core-ui input[type="reset"]::-moz-focus-inner,
 .wp-core-ui input[type="button"]::-moz-focus-inner,
 .wp-core-ui input[type="submit"]::-moz-focus-inner {
-       border-width: 1px 0;
-       border-style: solid none;
-       border-color: transparent;
+       border-width: 0;
+       border-style: none;
        padding: 0;
 }
 
        padding: 0;
 }
 
@@ -96,7 +95,8 @@ TABLE OF CONTENTS:
        padding: 0 36px;
 }
 
        padding: 0 36px;
 }
 
-.wp-core-ui .button:active {
+.wp-core-ui .button:active,
+.wp-core-ui .button:focus {
        outline: none;
 }
 
        outline: none;
 }
 
@@ -127,8 +127,8 @@ TABLE OF CONTENTS:
        color: #555;
        border-color: #cccccc;
        background: #f7f7f7;
        color: #555;
        border-color: #cccccc;
        background: #f7f7f7;
-       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
-       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
+       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
+       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
        vertical-align: top;
 }
 
        vertical-align: top;
 }
 
@@ -150,13 +150,16 @@ TABLE OF CONTENTS:
 .wp-core-ui .button.focus,
 .wp-core-ui .button:focus,
 .wp-core-ui .button-secondary:focus {
 .wp-core-ui .button.focus,
 .wp-core-ui .button:focus,
 .wp-core-ui .button-secondary:focus {
-       -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
-       box-shadow: 1px 1px 1px rgba(0,0,0,.2);
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
 }
 
 .wp-core-ui .button.active,
 .wp-core-ui .button.active:hover,
 }
 
 .wp-core-ui .button.active,
 .wp-core-ui .button.active:hover,
-.wp-core-ui .button.active:focus,
 .wp-core-ui .button:active,
 .wp-core-ui .button-secondary:active {
        background: #eee;
 .wp-core-ui .button:active,
 .wp-core-ui .button-secondary:active {
        background: #eee;
@@ -166,6 +169,17 @@ TABLE OF CONTENTS:
        box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 }
 
        box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 }
 
+.wp-core-ui .button.active:focus {
+       -webkit-box-shadow:
+               inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+       box-shadow:
+               inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
 .wp-core-ui .button[disabled],
 .wp-core-ui .button:disabled,
 .wp-core-ui .button.disabled,
 .wp-core-ui .button[disabled],
 .wp-core-ui .button:disabled,
 .wp-core-ui .button.disabled,
@@ -189,8 +203,8 @@ TABLE OF CONTENTS:
 .wp-core-ui .button-primary {
        background: #2ea2cc;
        border-color: #0074a2;
 .wp-core-ui .button-primary {
        background: #2ea2cc;
        border-color: #0074a2;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
+       -webkit-box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5), 0 1px 0 rgba( 0, 0, 0, 0.15 );
+       box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5 ), 0 1px 0 rgba( 0, 0, 0, 0.15 );
        color: #fff;
        text-decoration: none;
 }
        color: #fff;
        text-decoration: none;
 }
@@ -201,16 +215,22 @@ TABLE OF CONTENTS:
 .wp-core-ui .button-primary:focus {
        background: #1e8cbe;
        border-color: #0074a2;
 .wp-core-ui .button-primary:focus {
        background: #1e8cbe;
        border-color: #0074a2;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
+       -webkit-box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.6 );
+       box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.6 );
        color: #fff;
 }
 
 .wp-core-ui .button-primary.focus,
 .wp-core-ui .button-primary:focus {
        border-color: #0e3950;
        color: #fff;
 }
 
 .wp-core-ui .button-primary.focus,
 .wp-core-ui .button-primary:focus {
        border-color: #0e3950;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
+       -webkit-box-shadow:
+               inset 0 1px 0 rgba( 120, 200, 230, 0.6 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+       box-shadow:
+               inset 0 1px 0 rgba( 120, 200, 230, 0.6 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
 }
 
 .wp-core-ui .button-primary.active,
 }
 
 .wp-core-ui .button-primary.active,
@@ -219,9 +239,9 @@ TABLE OF CONTENTS:
 .wp-core-ui .button-primary:active {
        background: #1b7aa6;
        border-color: #005684;
 .wp-core-ui .button-primary:active {
        background: #1b7aa6;
        border-color: #005684;
-       color: rgba(255,255,255,0.95);
-       -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
-       box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
+       color: rgba( 255, 255, 255, 0.95 );
+       -webkit-box-shadow: inset 0 1px 0 rgba( 0, 0, 0, 0.1 );
+       box-shadow: inset 0 1px 0 rgba( 0, 0, 0, 0.1 );
        vertical-align: top;
 }
 
        vertical-align: top;
 }
 
@@ -234,7 +254,7 @@ TABLE OF CONTENTS:
        border-color: #1b607f !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
        border-color: #1b607f !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
-       text-shadow: 0 -1px 0 rgba(0,0,0,0.1) !important;
+       text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.1 ) !important;
        cursor: default;
 }
 
        cursor: default;
 }
 
@@ -276,6 +296,11 @@ TABLE OF CONTENTS:
        border-radius: 3px 0 0 3px;
 }
 
        border-radius: 3px 0 0 3px;
 }
 
+.wp-core-ui .button-group > .button:focus {
+       position: relative;
+       z-index: 1;
+}
+
 /* ----------------------------------------------------------------------------
   5.0 - Responsive Button Styles
 ---------------------------------------------------------------------------- */
 /* ----------------------------------------------------------------------------
   5.0 - Responsive Button Styles
 ---------------------------------------------------------------------------- */
@@ -303,6 +328,10 @@ TABLE OF CONTENTS:
                font-size: 13px;
        }
 
                font-size: 13px;
        }
 
+       .media-frame.mode-grid .bulk-select .button {
+               margin-bottom: 0;
+       }
+
        /* Publish Metabox Options */
        .wp-core-ui .save-post-status.button {
                position: relative;
        /* Publish Metabox Options */
        .wp-core-ui .save-post-status.button {
                position: relative;
index f708de83b60ef13b75c852e23a12b497e4834e87..f37e3712327a02917111a9a91ce5f44d858134a3 100644 (file)
@@ -1 +1 @@
-.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-core-ui button::-moz-focus-inner,.wp-core-ui input[type=button]::-moz-focus-inner,.wp-core-ui input[type=reset]::-moz-focus-inner,.wp-core-ui input[type=submit]::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.wp-core-ui .button-group.button-large .button,.wp-core-ui .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}.wp-core-ui .button-group.button-small .button,.wp-core-ui .button.button-small{height:24px;line-height:22px;padding:0 8px 1px;font-size:11px}.wp-core-ui .button-group.button-hero .button,.wp-core-ui .button.button-hero{font-size:14px;height:46px;line-height:44px;padding:0 36px}.wp-core-ui .button:active{outline:0}.wp-core-ui .button.hidden{display:none}.wp-core-ui input[type=reset],.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:focus,.wp-core-ui input[type=reset]:hover{background:0 0;border:0;-webkit-box-shadow:none;box-shadow:none;padding:0 2px 1px;width:auto}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.wp-core-ui p .button{vertical-align:baseline}.wp-core-ui .button-secondary:focus,.wp-core-ui .button-secondary:hover,.wp-core-ui .button.focus,.wp-core-ui .button.hover,.wp-core-ui .button:focus,.wp-core-ui .button:hover{background:#fafafa;border-color:#999;color:#222}.wp-core-ui .button-secondary:focus,.wp-core-ui .button.focus,.wp-core-ui .button:focus{-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2)}.wp-core-ui .button-secondary:active,.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover,.wp-core-ui .button:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-disabled,.wp-core-ui .button-secondary.disabled,.wp-core-ui .button-secondary:disabled,.wp-core-ui .button-secondary[disabled],.wp-core-ui .button.disabled,.wp-core-ui .button:disabled,.wp-core-ui .button[disabled]{color:#aaa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}.wp-core-ui .button-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary.hover,.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4);box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary:active{background:#1b7aa6;border-color:#005684;color:rgba(255,255,255,.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);vertical-align:top}.wp-core-ui .button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#94cde7!important;background:#298cba!important;border-color:#1b607f!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.wp-core-ui .button-group{position:relative;display:inline-block;white-space:nowrap;font-size:0;vertical-align:middle}.wp-core-ui .button-group>.button{display:inline-block;-webkit-border-radius:0;border-radius:0;margin-left:-1px;z-index:10}.wp-core-ui .button-group>.button-primary{z-index:100}.wp-core-ui .button-group>.button:hover{z-index:20}.wp-core-ui .button-group>.button:first-child{-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.wp-core-ui .button-group>.button:last-child{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}@media screen and (max-width:782px){.wp-core-ui .button,.wp-core-ui .button.button-large,.wp-core-ui .button.button-small,a.preview,input#publish,input#save-post{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}#media-upload.wp-core-ui .button{padding:0 10px 1px;height:24px;line-height:22px;font-size:13px}.wp-core-ui .save-post-status.button{position:relative;margin:0 10px 0 14px}.press-this a.preview,.press-this input#publish,.press-this input#save-post,.press-this.wp-core-ui .button,.wp-core-ui.wp-customizer .button{padding:0 10px 1px;font-size:13px;line-height:26px;height:28px;margin:0;vertical-align:inherit}.interim-login .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}}
\ No newline at end of file
+.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-core-ui button::-moz-focus-inner,.wp-core-ui input[type=button]::-moz-focus-inner,.wp-core-ui input[type=reset]::-moz-focus-inner,.wp-core-ui input[type=submit]::-moz-focus-inner{border-width:0;border-style:none;padding:0}.wp-core-ui .button-group.button-large .button,.wp-core-ui .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}.wp-core-ui .button-group.button-small .button,.wp-core-ui .button.button-small{height:24px;line-height:22px;padding:0 8px 1px;font-size:11px}.wp-core-ui .button-group.button-hero .button,.wp-core-ui .button.button-hero{font-size:14px;height:46px;line-height:44px;padding:0 36px}.wp-core-ui .button:active,.wp-core-ui .button:focus{outline:0}.wp-core-ui .button.hidden{display:none}.wp-core-ui input[type=reset],.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:focus,.wp-core-ui input[type=reset]:hover{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;padding:0 2px 1px;width:auto}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.wp-core-ui p .button{vertical-align:baseline}.wp-core-ui .button-secondary:focus,.wp-core-ui .button-secondary:hover,.wp-core-ui .button.focus,.wp-core-ui .button.hover,.wp-core-ui .button:focus,.wp-core-ui .button:hover{background:#fafafa;border-color:#999;color:#222}.wp-core-ui .button-secondary:focus,.wp-core-ui .button.focus,.wp-core-ui .button:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-secondary:active,.wp-core-ui .button.active,.wp-core-ui .button.active:hover,.wp-core-ui .button:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button.active:focus{-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-disabled,.wp-core-ui .button-secondary.disabled,.wp-core-ui .button-secondary:disabled,.wp-core-ui .button-secondary[disabled],.wp-core-ui .button.disabled,.wp-core-ui .button:disabled,.wp-core-ui .button[disabled]{color:#aaa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}.wp-core-ui .button-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary.hover,.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary:active{background:#1b7aa6;border-color:#005684;color:rgba(255,255,255,.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);vertical-align:top}.wp-core-ui .button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#94cde7!important;background:#298cba!important;border-color:#1b607f!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.wp-core-ui .button-group{position:relative;display:inline-block;white-space:nowrap;font-size:0;vertical-align:middle}.wp-core-ui .button-group>.button{display:inline-block;-webkit-border-radius:0;border-radius:0;margin-left:-1px;z-index:10}.wp-core-ui .button-group>.button-primary{z-index:100}.wp-core-ui .button-group>.button:hover{z-index:20}.wp-core-ui .button-group>.button:first-child{-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.wp-core-ui .button-group>.button:last-child{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.wp-core-ui .button-group>.button:focus{position:relative;z-index:1}@media screen and (max-width:782px){.wp-core-ui .button,.wp-core-ui .button.button-large,.wp-core-ui .button.button-small,a.preview,input#publish,input#save-post{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}#media-upload.wp-core-ui .button{padding:0 10px 1px;height:24px;line-height:22px;font-size:13px}.media-frame.mode-grid .bulk-select .button{margin-bottom:0}.wp-core-ui .save-post-status.button{position:relative;margin:0 10px 0 14px}.press-this a.preview,.press-this input#publish,.press-this input#save-post,.press-this.wp-core-ui .button,.wp-core-ui.wp-customizer .button{padding:0 10px 1px;font-size:13px;line-height:26px;height:28px;margin:0;vertical-align:inherit}.interim-login .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}}
\ No newline at end of file
index 1642491f69e16979217877b99702928b248767b8..e84a0b52adf8e80cbff1dd73324d4f5fe51a1685 100644 (file)
@@ -67,9 +67,8 @@ TABLE OF CONTENTS:
 .wp-core-ui input[type="reset"]::-moz-focus-inner,
 .wp-core-ui input[type="button"]::-moz-focus-inner,
 .wp-core-ui input[type="submit"]::-moz-focus-inner {
 .wp-core-ui input[type="reset"]::-moz-focus-inner,
 .wp-core-ui input[type="button"]::-moz-focus-inner,
 .wp-core-ui input[type="submit"]::-moz-focus-inner {
-       border-width: 1px 0;
-       border-style: solid none;
-       border-color: transparent;
+       border-width: 0;
+       border-style: none;
        padding: 0;
 }
 
        padding: 0;
 }
 
@@ -96,7 +95,8 @@ TABLE OF CONTENTS:
        padding: 0 36px;
 }
 
        padding: 0 36px;
 }
 
-.wp-core-ui .button:active {
+.wp-core-ui .button:active,
+.wp-core-ui .button:focus {
        outline: none;
 }
 
        outline: none;
 }
 
@@ -127,8 +127,8 @@ TABLE OF CONTENTS:
        color: #555;
        border-color: #cccccc;
        background: #f7f7f7;
        color: #555;
        border-color: #cccccc;
        background: #f7f7f7;
-       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
-       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
+       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
+       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
        vertical-align: top;
 }
 
        vertical-align: top;
 }
 
@@ -150,13 +150,16 @@ TABLE OF CONTENTS:
 .wp-core-ui .button.focus,
 .wp-core-ui .button:focus,
 .wp-core-ui .button-secondary:focus {
 .wp-core-ui .button.focus,
 .wp-core-ui .button:focus,
 .wp-core-ui .button-secondary:focus {
-       -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
-       box-shadow: 1px 1px 1px rgba(0,0,0,.2);
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
 }
 
 .wp-core-ui .button.active,
 .wp-core-ui .button.active:hover,
 }
 
 .wp-core-ui .button.active,
 .wp-core-ui .button.active:hover,
-.wp-core-ui .button.active:focus,
 .wp-core-ui .button:active,
 .wp-core-ui .button-secondary:active {
        background: #eee;
 .wp-core-ui .button:active,
 .wp-core-ui .button-secondary:active {
        background: #eee;
@@ -166,6 +169,17 @@ TABLE OF CONTENTS:
        box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 }
 
        box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 }
 
+.wp-core-ui .button.active:focus {
+       -webkit-box-shadow:
+               inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+       box-shadow:
+               inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
 .wp-core-ui .button[disabled],
 .wp-core-ui .button:disabled,
 .wp-core-ui .button.disabled,
 .wp-core-ui .button[disabled],
 .wp-core-ui .button:disabled,
 .wp-core-ui .button.disabled,
@@ -189,8 +203,8 @@ TABLE OF CONTENTS:
 .wp-core-ui .button-primary {
        background: #2ea2cc;
        border-color: #0074a2;
 .wp-core-ui .button-primary {
        background: #2ea2cc;
        border-color: #0074a2;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
+       -webkit-box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5), 0 1px 0 rgba( 0, 0, 0, 0.15 );
+       box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5 ), 0 1px 0 rgba( 0, 0, 0, 0.15 );
        color: #fff;
        text-decoration: none;
 }
        color: #fff;
        text-decoration: none;
 }
@@ -201,16 +215,22 @@ TABLE OF CONTENTS:
 .wp-core-ui .button-primary:focus {
        background: #1e8cbe;
        border-color: #0074a2;
 .wp-core-ui .button-primary:focus {
        background: #1e8cbe;
        border-color: #0074a2;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
+       -webkit-box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.6 );
+       box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.6 );
        color: #fff;
 }
 
 .wp-core-ui .button-primary.focus,
 .wp-core-ui .button-primary:focus {
        border-color: #0e3950;
        color: #fff;
 }
 
 .wp-core-ui .button-primary.focus,
 .wp-core-ui .button-primary:focus {
        border-color: #0e3950;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
+       -webkit-box-shadow:
+               inset 0 1px 0 rgba( 120, 200, 230, 0.6 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+       box-shadow:
+               inset 0 1px 0 rgba( 120, 200, 230, 0.6 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
 }
 
 .wp-core-ui .button-primary.active,
 }
 
 .wp-core-ui .button-primary.active,
@@ -219,9 +239,9 @@ TABLE OF CONTENTS:
 .wp-core-ui .button-primary:active {
        background: #1b7aa6;
        border-color: #005684;
 .wp-core-ui .button-primary:active {
        background: #1b7aa6;
        border-color: #005684;
-       color: rgba(255,255,255,0.95);
-       -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
-       box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
+       color: rgba( 255, 255, 255, 0.95 );
+       -webkit-box-shadow: inset 0 1px 0 rgba( 0, 0, 0, 0.1 );
+       box-shadow: inset 0 1px 0 rgba( 0, 0, 0, 0.1 );
        vertical-align: top;
 }
 
        vertical-align: top;
 }
 
@@ -234,7 +254,7 @@ TABLE OF CONTENTS:
        border-color: #1b607f !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
        border-color: #1b607f !important;
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
-       text-shadow: 0 -1px 0 rgba(0,0,0,0.1) !important;
+       text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.1 ) !important;
        cursor: default;
 }
 
        cursor: default;
 }
 
@@ -276,6 +296,11 @@ TABLE OF CONTENTS:
        border-radius: 0 3px 3px 0;
 }
 
        border-radius: 0 3px 3px 0;
 }
 
+.wp-core-ui .button-group > .button:focus {
+       position: relative;
+       z-index: 1;
+}
+
 /* ----------------------------------------------------------------------------
   5.0 - Responsive Button Styles
 ---------------------------------------------------------------------------- */
 /* ----------------------------------------------------------------------------
   5.0 - Responsive Button Styles
 ---------------------------------------------------------------------------- */
@@ -303,6 +328,10 @@ TABLE OF CONTENTS:
                font-size: 13px;
        }
 
                font-size: 13px;
        }
 
+       .media-frame.mode-grid .bulk-select .button {
+               margin-bottom: 0;
+       }
+
        /* Publish Metabox Options */
        .wp-core-ui .save-post-status.button {
                position: relative;
        /* Publish Metabox Options */
        .wp-core-ui .save-post-status.button {
                position: relative;
index 514460a78ebe0ceaff86cb8c890de6e58e8d68aa..96804805f129648ab6670388b1ebdf0c92d16355 100644 (file)
@@ -1 +1 @@
-.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-core-ui button::-moz-focus-inner,.wp-core-ui input[type=button]::-moz-focus-inner,.wp-core-ui input[type=reset]::-moz-focus-inner,.wp-core-ui input[type=submit]::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.wp-core-ui .button-group.button-large .button,.wp-core-ui .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}.wp-core-ui .button-group.button-small .button,.wp-core-ui .button.button-small{height:24px;line-height:22px;padding:0 8px 1px;font-size:11px}.wp-core-ui .button-group.button-hero .button,.wp-core-ui .button.button-hero{font-size:14px;height:46px;line-height:44px;padding:0 36px}.wp-core-ui .button:active{outline:0}.wp-core-ui .button.hidden{display:none}.wp-core-ui input[type=reset],.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:focus,.wp-core-ui input[type=reset]:hover{background:0 0;border:0;-webkit-box-shadow:none;box-shadow:none;padding:0 2px 1px;width:auto}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.wp-core-ui p .button{vertical-align:baseline}.wp-core-ui .button-secondary:focus,.wp-core-ui .button-secondary:hover,.wp-core-ui .button.focus,.wp-core-ui .button.hover,.wp-core-ui .button:focus,.wp-core-ui .button:hover{background:#fafafa;border-color:#999;color:#222}.wp-core-ui .button-secondary:focus,.wp-core-ui .button.focus,.wp-core-ui .button:focus{-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2)}.wp-core-ui .button-secondary:active,.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover,.wp-core-ui .button:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button-disabled,.wp-core-ui .button-secondary.disabled,.wp-core-ui .button-secondary:disabled,.wp-core-ui .button-secondary[disabled],.wp-core-ui .button.disabled,.wp-core-ui .button:disabled,.wp-core-ui .button[disabled]{color:#aaa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}.wp-core-ui .button-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary.hover,.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4);box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary:active{background:#1b7aa6;border-color:#005684;color:rgba(255,255,255,.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);vertical-align:top}.wp-core-ui .button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#94cde7!important;background:#298cba!important;border-color:#1b607f!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.wp-core-ui .button-group{position:relative;display:inline-block;white-space:nowrap;font-size:0;vertical-align:middle}.wp-core-ui .button-group>.button{display:inline-block;-webkit-border-radius:0;border-radius:0;margin-right:-1px;z-index:10}.wp-core-ui .button-group>.button-primary{z-index:100}.wp-core-ui .button-group>.button:hover{z-index:20}.wp-core-ui .button-group>.button:first-child{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.wp-core-ui .button-group>.button:last-child{-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}@media screen and (max-width:782px){.wp-core-ui .button,.wp-core-ui .button.button-large,.wp-core-ui .button.button-small,a.preview,input#publish,input#save-post{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}#media-upload.wp-core-ui .button{padding:0 10px 1px;height:24px;line-height:22px;font-size:13px}.wp-core-ui .save-post-status.button{position:relative;margin:0 14px 0 10px}.press-this a.preview,.press-this input#publish,.press-this input#save-post,.press-this.wp-core-ui .button,.wp-core-ui.wp-customizer .button{padding:0 10px 1px;font-size:13px;line-height:26px;height:28px;margin:0;vertical-align:inherit}.interim-login .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}}
\ No newline at end of file
+.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-core-ui button::-moz-focus-inner,.wp-core-ui input[type=button]::-moz-focus-inner,.wp-core-ui input[type=reset]::-moz-focus-inner,.wp-core-ui input[type=submit]::-moz-focus-inner{border-width:0;border-style:none;padding:0}.wp-core-ui .button-group.button-large .button,.wp-core-ui .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}.wp-core-ui .button-group.button-small .button,.wp-core-ui .button.button-small{height:24px;line-height:22px;padding:0 8px 1px;font-size:11px}.wp-core-ui .button-group.button-hero .button,.wp-core-ui .button.button-hero{font-size:14px;height:46px;line-height:44px;padding:0 36px}.wp-core-ui .button:active,.wp-core-ui .button:focus{outline:0}.wp-core-ui .button.hidden{display:none}.wp-core-ui input[type=reset],.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:focus,.wp-core-ui input[type=reset]:hover{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;padding:0 2px 1px;width:auto}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.wp-core-ui p .button{vertical-align:baseline}.wp-core-ui .button-secondary:focus,.wp-core-ui .button-secondary:hover,.wp-core-ui .button.focus,.wp-core-ui .button.hover,.wp-core-ui .button:focus,.wp-core-ui .button:hover{background:#fafafa;border-color:#999;color:#222}.wp-core-ui .button-secondary:focus,.wp-core-ui .button.focus,.wp-core-ui .button:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-secondary:active,.wp-core-ui .button.active,.wp-core-ui .button.active:hover,.wp-core-ui .button:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.wp-core-ui .button.active:focus{-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-disabled,.wp-core-ui .button-secondary.disabled,.wp-core-ui .button-secondary:disabled,.wp-core-ui .button-secondary[disabled],.wp-core-ui .button.disabled,.wp-core-ui .button:disabled,.wp-core-ui .button[disabled]{color:#aaa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}.wp-core-ui .button-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary.hover,.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary:active{background:#1b7aa6;border-color:#005684;color:rgba(255,255,255,.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);vertical-align:top}.wp-core-ui .button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#94cde7!important;background:#298cba!important;border-color:#1b607f!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.wp-core-ui .button-group{position:relative;display:inline-block;white-space:nowrap;font-size:0;vertical-align:middle}.wp-core-ui .button-group>.button{display:inline-block;-webkit-border-radius:0;border-radius:0;margin-right:-1px;z-index:10}.wp-core-ui .button-group>.button-primary{z-index:100}.wp-core-ui .button-group>.button:hover{z-index:20}.wp-core-ui .button-group>.button:first-child{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.wp-core-ui .button-group>.button:last-child{-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.wp-core-ui .button-group>.button:focus{position:relative;z-index:1}@media screen and (max-width:782px){.wp-core-ui .button,.wp-core-ui .button.button-large,.wp-core-ui .button.button-small,a.preview,input#publish,input#save-post{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}#media-upload.wp-core-ui .button{padding:0 10px 1px;height:24px;line-height:22px;font-size:13px}.media-frame.mode-grid .bulk-select .button{margin-bottom:0}.wp-core-ui .save-post-status.button{position:relative;margin:0 14px 0 10px}.press-this a.preview,.press-this input#publish,.press-this input#save-post,.press-this.wp-core-ui .button,.wp-core-ui.wp-customizer .button{padding:0 10px 1px;font-size:13px;line-height:26px;height:28px;margin:0;vertical-align:inherit}.interim-login .button.button-large{height:30px;line-height:28px;padding:0 12px 2px}}
\ No newline at end of file
index 4fe64f2daec6e83b6ed17518c58da09157dcebb8..22ed1ee20147eb256259e5332bc1cdcb4151515e 100644 (file)
@@ -5,7 +5,7 @@
 
 @font-face {
        font-family: "dashicons";
 
 @font-face {
        font-family: "dashicons";
-       src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAFc4AA4AAAAAjggAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABRAAAABwAAAAcawcIzEdERUYAAAFgAAAAHgAAACABHAAET1MvMgAAAYAAAABAAAAAYJAJaUVjbWFwAAABwAAAAS4AAAKKV1hH9Wdhc3AAAALwAAAACAAAAAgAAAAQZ2x5ZgAAAvgAAEvGAAB3YGyqygJoZWFkAABOwAAAAC4AAAA2BbfszmhoZWEAAE7wAAAAGgAAACQPogiYaG10eAAATwwAAAEZAAADvOx/y5tsb2NhAABQKAAAAdgAAAHgTh5scG1heHAAAFIAAAAAHwAAACABQgC1bmFtZQAAUiAAAAF1AAADBki4ZWJwb3N0AABTmAAAA5gAAAlhlodeP3dlYmYAAFcwAAAABgAAAAYe1VM/AAAAAQAAAADMPaLPAAAAAM9klqgAAAAAz2TPVHjaY2BkYGDgA2IJBhBgYmAEwndAzALmMQAADoQBIQAAeNpjYGZvZpzAwMrAwirCsoGBgWEahGbaw2DEFAHkA6Wwg1DvcD8GBwWGr+zsF0B8IKkBpBiRlCgwMAIA9nYJQHja3ZA/SwNBFMTf5mIkyd67iH8gYLEgKVIZLMTrzoiYFIoQUaJFooIaRDCVpBACamFn67fwy9hoEVFQLGd3rzJyHolY2Ns48OYxMPyKISKHhjdNInYSl3ESg5wUR/HfpIBGaEpl1KxqFPpIYxx5zKCIEubhYwnLqKCOXbTQwZUWOq3zuqh9HeiySZu8KRrfVG3Vbtm6bdqW7dhrexsmw9EoIlL0zSXkMAmFQsydwwKCmLuCGprYRxtdTdrROa10acAVJmeUKZnAVuz6gLtnT23X3oQUpqLoyen1encPE96Yl/UyXtJz+JP7/MEhWzb8zi/8zI98zzu8zRu8xhUu86J74Z67Z27bPZYn8lAeyKZsyLqsydXsW/Z1uM9fSKToBy4SsSV+F+jf6wtwHn6WAAAAAQAB//8AD3jarb0HfBRl+jg+78zOzG76ZlvabnazLWVTt4WUTYDQQwstFpCy9IBRpEngFCOiUmLDhh0Re1TkLBxnO107chFPDz1sHKfeqXd8PUiyr7/neWc32SDe977/zz/JzPvOOzPvvPXpzxNO5OCHnOIPcgIncRouhUvnuEqtTSvobDqTltiSiVZHTvU+Qh+LPEJ3kOmPRB7hD0abyPXcz7TnZ0KjH3I/Ew/luZ85wiX8VHIcz4W5qPyC1At1+jlOQ4IhYjRZiMkiBIIaIkv6fGLUy2m8LMHJwodIMBAM8cFAFZRXBcV90fpd2eturil9YFpJ3eyWFTXRh6L1T5nNy8zm3FGLjSPsvikV8tgll1ziK/CmNvvyzNPg1jSzsIl/dVdeqt1l2VKWlWdLJSnRh/hXn2J3p5tzA2MzKu2+Sy5ZMlaumOwraNKuHJnL6uQI8XARqVFWc5kwJrYqo0Grl0oI0doLXH6tL0BOCZ0ta9a0RGhKBFJZvaYl2tSyhqaQU2ta+IMta6DbAvdvqONj6SiMZRqrxyRriFtD/F6RwLDiITXeviy6Prp+Gf8j6YpE9/GtfVMEK21Xbbp9GX8NK6ftkTuiD0cf5WfQdHKKpkC9EW6X3CbXcFmci6uDeo0Z6SSNuEkDCfjcroJ0QlwByFs17FqSiaQ3GQMyMUrpRLK6XRkNJERMrLRK+semTbe3fLGMSM3NDQ0NTzdMpE+Yh7Xc9huysP9b3pifX9CaH/0WkzJytwVv0N2/UV6h8xsbG56WDmLJbS3DLESc2AwVNDY20yeWfdFy+6a+WVDB+flW3hL9hqVvkHvYjU2byKJN8IqZzmt4urGB41SwPsLQpzZOx+VyRbhGiNbnKiFum2wvkGD0jV5bVYCrMuqlApdPtGlZGvBWmbQ2GNCBS1FfW/TQ1bT96oeKamuLhJNFtdHGwzfeePhG4QA5BcmNS0y5tAfGVMkLnfzBotpIpLYo2gQv8M9g8WFV34kl+I5IzlB5Kb2fXXD8wJoQYEY5nD7RZrBpvXyrcLJvv2Dtz4qQU6K+97twRNTj/H/DnZC+kk5yauiTA1e9mwRw1YtBIqcRu02WCtwuXwP0NKBR7shEzKcHXyRNORe63Jn9r18gXL226tt5tKPD0+HxeDrqBYk0ZeO9HHpQylMe1bldF7zd3r9hetUIeKhko6eDdM49RffArUy4lUNfhP0X4V6XolI/Z+Bs0HZJ5SY4YkHiygwGHCYNb5Rwo7H1A7tR6lxA/3F59MvxR24ez2/z+RbMIao19C8kh1iKqnt3W6abLRbzdItZ+HmBzxe9bPzNR8bxlstJ5oI51R76F3qC5K/+OZpvNsce5ATiIR5ZLe2B/V/CjVFm124bnFnixaktIQacyHpix9msxYGBrRe/8uOVOf4km3K/rK4t6v0O51rUF9X2Z4UxGzYXmwcy5NQ5yrpU3Zjvm4KTbq5tqd1lMJsNuyDDuzBH708si36COQYeuS7ufnm03AozyhGYRpeEW88kw3CqYCiJO2gM4O5S6Q/wHb+d9MqoCU06329/pCcD9MPAW35i+hEKmyaM0kn3H4hefcCnGzVh1MuTD/xI/xZ4K0BK4YF/ssKmV2C96WG9HYT1lsVVwLcLylTlxBUSvFWwTtJEwQmpmaSp7AVlfDkMToh4VcYLpwY82VpBkKSShkWhxVvL0ohKm1Xi30QyLvvjxnT/g3u+WLjo8yducLsv++BylddVP25cvU4XXL5gQumaR2bL2WOGTxlG/3pgy5EVZ8R0tyXLZCtIST7T/t5mBYaHZTW0x82VQ+/tkgz9lmSDze9yy+6gy23XegNBd9AUCPptBqMpaJKNJi9XFfC5CiS9rP4kJ3jHkTtaF9Oexa139NwRzPrkY9MwKJnRRjysZJjp4/6q093dp7sF6/KZcAce+SQrCHdaF5OihbOhJJAbK5m9kA7vxmdZuyJygTwVYCzMCmfMBCyicguiYHMryzuzKuBnbZAaXho1am47fXPri/TDXbQnLOSOqVw1l/DlKydNWjlJLnuJUvrz3HZ/I302n26LCOR60rBq7qjo8UnVQXgCv0UK5TZYx1rc0aRKZZLLYH1KsldDvIFMh67A4Q5aYI0GgnYNsacJwsk7iHb+o6EXlt31Y8FJej+9/3DWK6T08TvpDwOlZA6Zczhzw4HvpT2b2l9tmfvaLbSddO0jmXf3dsYKSBdt3/TpvbM5hJUR6K+yl7JhNxf9cjdxVpVJUlkd7oCK9dtYRQBS+eGX7ZetbL+sg/0SJC3Et2EDfYc+Qd/ZsIF/cM2eNWv2wPr19G4lHsGKoA0f7s+CszDu7h077objOD60JrovHA5De1K5COztNlgX6QC9TTAH+bBCSmCNBLlargF2+4Rz7Heb1qaDJnljRxyyB6GdTrg35BruqxKu5Tbog4P14VhRba+DgVziUf76VhSbYYdHcMD4VkSY/dGEkoNDnyBdCDZiIET1MRR4IuyHppjZU+Ew4HRPPA83YlnoN+KDsLSH0QiWoVSCLUYluIOwMWCXwFYAiuFkjGKgPZAR9vT2huN/SD/0H4/TD4K1ZU3/Ewm3EZdwMOeH4VsyjHI+4hKdXQe0hIPNbsAnOI0ml71AJbsc9gI5EBRORo1lkYqbhZPCyf7hLbUAxcJ8aXuWr+ggfXn2bPrywUJ/VrtwkhT3HVCtrsWxCLOuRf/wl1uelZ/fvft5+dlbFJwnj5TXADWoRQoGiDREfDag3xCdydLt281m2tK3X1Wy3zIt+lc+e0f05Bi5dTvQWHRq/zDx2H4z6b+Rz9oR/WsPB3Ql/EA/DsNKsXOtsHOXce1QlMGXEYdVlUb4jEwLgZUbIrCGjZkZPC5jF5QGGM3okiV7gTvg8MLGc0kGPVCQRpMRkAbQPCGCgJc94QJAKRnziU5DQio33Oc1xMX7fUSHr8uHFz7/E32fvkDf/+n5hZAnlWQ0qfzp+b7XyUoy8ccdO36kz9Ab6TOYI/X0/aX6NJ3hyuk23Uoy/707iKnNN9tkzBGFqgarlf5ocKnV+nS9fvN0+1K7Qw/Z6e3kOSIKaqNGTprzYe8xsumt/xGKv169cfFiYZTyqYVnNUGcNeSjE1lD+ooEv5r3lpMksveVlQvkCePNwwuL1OKsLXXHW1r4fxC1SuCDPpIs8QLxB4maHo7m8c/L2S0tVwx75I9/ptuEG/tOLiDXfPsMfTu6s9jCibE12wYrSuaS2Y7lcC8SgNhDDo+4rnerqrn/ONA17OBbo/vkttOnxXWwJ3oGD4CJM0iXLMppQFuUQG0+dxngxcygO01lQkgYDDh/WSTMHFv1+Ljs9+57YP6zd6+oysj58pFb580XnjxXKX9084UNroydZPjUr8q37H/3zBV/7G9t3XWuQlxe4gAtqQLKK4XLwD7qgN62EQAk7IAOaogNkFl0X98U4lF1901RdUf3RfcJVoQYclvflOg+8Rh0sB0BAKbkFNbNJ9CpLsSBBZJ5kCvwMhAwAAe0JFauam6Zei3tQU6hhW9tWYMHQoKeMKTiuh3jn6M9xLOmhZzCctoORwoAg4Ey2DIMx+F3NQBvtTDS2ZyZs2K/8GtO+IgoeHU2u+Al8QO2qYYHgrWo9vTpWvJ8JAxgOhwJAz0UPyGQP6XMa23RmZd4KVRUG8bPDh5A157szxI6aTttZ/SP0v8wwiDiDAA5Bl21ujIYJS5q07DLyoUvwL+omlRY+y797N13bxg3sb8jM9J5A8tWS7sjUkNJpO8fcE0K3rXzqyL9nVc8xvJCbaE/gR9IZxzB8HhP9ZI9Dlyhf1wcu/lCsnfgXpVFlQ/7vsrCmz6X0nzjxvnO/BPO4r97t/IHFQR3PxGTDOaympYKBbcVTazx2bMlSZVR3bikffFIb7LcFnvNh1WceQm3g9DLEB/tUee0TGmbPWdkMcOLRfxBz5gZM8YYjSlFiycPhxJDfK1EGF7UMWrxrPZ7Ac9x1kCGyypliMeIyxMKec68g2fiAmq5i95Imr/5hu7/RmoMefoWlDY1laru8oQivd99o9zAb0jwjV0DfJMd9p8XcC4HsNPC69N4gJ1lvC/EZ8ZoMNVZaRzLSrFUyCV3kJo3r/D5rniTvk4X0deVvNzR2trRyuckJlGJJb9nuEVuG7nq4Re+eOHhVSPjmai9lT2Q8BfdzJL2WnwHeOwucorhz2SFm4r/SnsQRyIuBCikj+cY76vwYMo7JnzL7kcWDJgwf9BgN9j9dr8X6AlpD2yu/g5VM6BsQNphUQ94PdzrEDoj7DoSYWPHAd1yGOioQVgIdWrj0BAybj8jmxhElA+frlDgH3AZtEdW4wY5fVraA+viJBIMDIcy2qGd1S9C/VlQf1cirE2s3XlWzbjTACQ18Qeh2q6zqlUq/V/rdJ9Vp6yG1kabZPWvVgnrNLFOpTY4YQ3isf4sfA3Gv0vZ/0gSiuvEdfiWhscrAJTr6Aq6iiP8Qbh3TNWt3BOPYSmCVb41dk8ff0/UYymQZzeR7ezeQfEYsMzsHpBoUIrPR/f9x3uyQgfLNTAG+Yze9DKKk+EzrS3GLSqpwWZAMqme4LIXE/JsHrR2OCsH7ETPmZeIBxYq6YJTf4dC8PEHlZTgaHRF+Fb8kxp7twI6DLW2hsLs3It84tBT7yqhs78jjIKy+IHjCL1fIDnFR9gqNBE7CZrEe7ZE/7qFHtnyrfjInKiJ3LAR+fY/cX+STkunFSwG/MYgTeT3ZToAxwgn7yUFRzo6jtDP6Ev0syMdPWQpuTP6gnR6sKjjCCm490Oy9Ehfm6Cmv+GYPCDCeLl0xjOdTWvxQFrKGmLSEEawFB79zW+O0j8BufInzAm/x7UPWwxwGiKJiMLdJz5CCtlr/V68FRn6+BA8qsF+aYhIBPgWcRKdSHROUUecwknaE91H7roEF0o72R3dR3u+IR/QV2ZRD/XMoq+QD+S26L4JtCq6FGvlbyXvTSDraEkN3R2NfvMNkEThGi4BZ+G32JeAKmT1Ew/fSsPtiPcvoQv41l9Wh+3Ecrb+cO/ZSBEhQBVlIUSCFqbASoY5ZeOJvHEbl6bwhcYMRmniQgwRXYz/NOhNKCwwIndIjOJrWw4d2mJzLgMc+4Jm/9Wzr7rqhaty6SH71ZmCbH3KQppgB/+enjqkXtb3pXjshjujf+68cHZn5+xAJTz0WqZqAzyCQJDsI/ukQqmIwVFFxBjUoHxP92f6CL35PdJGH/mEzCJt79Kb+TXvkRX0YXb5Hr2ZzPyEPsz9r+uBs4ZIRhmxppEM47kWBBlJMk5s2XKC/gDncy6EvuVbTgw8A/wM6YrJ0kywd0uh3d6h2JHJfqxGg6BlA6cl7hCJjaHRJMOmG+BKi8KIDyOAl4nH4S6HPVvudqiaYxK9IpTvEc/eb77Zi4uQ0Vc90aaPMsd5cMN6xmV+NJRmRLrKyTVxE4e2qZ4k0ngIYQZoj5DkhWkGaiMfs0h1AFpirxmkxtdK6utLek+V1LOMmFJS3/udqrlvPznFUCGx8mqzNTBsYlF/R3WLy0gIEVIzbe7agvIJRXki/1K4vqT/CqlRqaO+5DWljvqSvumqZhpheJX2JDmWXLRq2jCk0aFT+fmq9CJXmc2EhEi0AlbrFSX1wLBqEmgqE6MW3AxmIo/OBYEn9yfw6JkxigB5b/6/yDM6E4lIOEcYSSCu69v/43/MhWuLBt+SGhlVUIto6T/lEudqsB+c82wJSLxtMDV8Ql6hdPGj+OkzfedoVmJXJFH5LqKr/uODeY5TeHJsx2Hg/w1c1lAaBpEorANYKCb8KJDPPf3HUd4AQOcg0OEogwYkTLoEK2YxZURfO7sXbQJqB+9ynCIbV3jmJPhSFpeHfAcsRH8BZ7Br4h8VWYKiE/7gqztvO0l/eJpI0nSaAki/U7ACJAVATFOAlj8pHrv29iP0b5/Sx/kve7fSFOEk0EXRJmBHAKv+yvc08EnObqgykljvdCwRkFyrfZU0Eulp+sPJ23b2FmFtWCtDCmH8Gn2cTPuUmI7cTuT+DgSdqm44wzj0d8THUsXG8jDMaTLTlQABTQwKGsez06ZBAZZoI/Jh2gO19yB/2neCP0jv5w8iEqb3w5jNUTVHkFmNIL8aIV3RNeFeRrbE+oRzhTSTUn8M5wPtCN2wawWNABMF77EaqvBNmJWTtB0pPOWDiBfwY8AY56AkD+V2DJ0DjolwR+QkaL+J6WNkJ0B8twt/7VqYoyoUU0gvTp5MvwkGffPnbezcjl1/54UDW68TPnuBLnlhdef2HZs3zp/nD8K3XiGv0KOTJ163Van7dahbHas7EIRfL9ZZIEv4C0hFdGUQAzx94IV3kDLa3tkxf74vGKTfTBY+gw9MnEyKaYiGiCfonzd/4+Yd2ztXv0BuYzwKDH9EXAdwOIOtYL0ka1GYoi1DabvVqGLCJVeBuO7hq8JVVVc9jLA2uo9tBHHddUcLond4wnl5QlnB0esAxmazDcL2hrJH1QMSShtuQgW6M3E+wlGgzogtvjsdsZRvFTrjwD2CGeIpqgU2oL2/o53BO+GYwoYcxFbAcmMJrt/2BFYjxhtFzpJL2s/NRzJJJKrkYulQENC7FUWLghVFBZAMFaHi9urvEKxhhXFuV9IY3YFUkXiMcX8WVG2wb/oCQTwBjxxiGEYvvnv1gXdv6M+64d3uzdKNSyrLqn5/6d5vhK/TXr8G+eWrX9Pm5C25Ubdg3Td7K5SxJdcATfJHgOgmlLhwVs4kwckdEH245NLgU0hjcFZHsIyg+As4dL8vmEZkI/8K30y+uvxymhfdT/Muv1z4H1+h1lrZ1OwPTKA2cpLcuXTUD7tX/J0+/fcVu38YtVT8Iz1y+jQ9QspOn1Z7mlJ4XjXO629ujt76z4MbHi1afc9Df//7Q/esLnp0w0EFjw7SETrGjTb+Uvbrhk0nsum3a70GPAZng2P8sNEqmCyKLgiHa+iIh3EL9gVVOfmeMPx48vtO5Hs8QivyyrA8904MNgEx0BTEHctku7E34cmNQIHSno3weD6+HuVjLDZ/cFVWuB6Jg/pwFtsXRE+IdFA6xHm4atzRmbIiaoz/yjCYkrLBY7+Sw+3KCAYcKiGQ4XZZZSnDZLSqDl3vWipkqwvKQ6p6W6XdYTKqhBEVlVU+n7fS5uFLrVlZ+jvobZvvvXcZySW59kWLFtPPFi1evIgUSGXX0/X3CEYp11qiKrVVItVYWjFCEIwGl73SVic0lFkt+mm+K+8jb967bMKEaM5iYlsMP/QvixcjzEMALO1J4G8HMJQQTzuRe4vuiyiJqhnBBx6KuI+xWbCPgNeBdbxuKJ+scE5eLSICoNbsA5LDU8LJ3u8iAIORFe5RaoFNDSA5HK8UD9KFWwUQujSgV00HuJzP8HmJAjEU9s0LJHSVUbSVwZgQW3zrJnJtqm4EEr3fIbDQ7ty/k15JPBkz5s+gc5EQ7O9AEhCwKf4BnVEUBupx5qWXziwZNow+HCMihzJo6oF1jH3OiMnbbEAZckhFQLOQR1aUziY/bGInQ1SDh6xGkRGKFfs7iAcVVcdR7oc4JX7gTeg3PKdHcqCnAxVfkciaFhQ3AsWDwkcuTpuzeZQUvIVMIDL7+kEC3SGc3EmEFy+GeTt48Ys0Sr+g0RcvvvhFIggnlZKdMOZNO+OlAI7gaY7ZEgz2M1npXXxcZTVrB/5hM5FsxVlktA/w7h7xmNQIuDQPRwWaUxVUcJ4fKXW3yyZoAcQh8LHL3iqDXpZKgOslr7+/dp3Xt2rGotWraHT91hU+75wlu+79k7dq+T5gp78LL3h604TmXE36rssemzQ5GiU2q238lNF/vu+CEoR0hLwDa1oF30Vex068si3oJfagTXz9Q3qyJxSdHTpKsj4M8Q+I6/o7YBF24vrqYvugkfVQxzgOO+pTXSgZ0KNGif+1fJihkzCC+IPnzIp6RaQFpNPZGSafg2/nsLlDua0PYMlibjmTW8kmQOQyUDYGm+C3+4MMr/tRUG5XELsJ8TwbQLxMJwb2KAws3FfuGZjCPP4MsJsut8HoHZgGeMaEfWgddWVhWUomT/KwwRse81anGTRJGWl1drNRm23ILc0yGLJMKamSnJJcvoDsxKeudDobJgULc3V6Q42nIj/fm2XSG4pzLdm5VU1TiktysisLs01XKgNAuhZ7nUmZxfRfkXD08dGqCp8ux2TKs8EhCSkppoAuOSk5JSs9PUObWhmueTVMPy7LzimsyxTlsvysESkpZmt6ulpOHW+02WoLs7IkXpOX1xQGGOwgXdInMG96RkEMKhF4/peKhYEy4dn6kptDhievu37ZizeP1RpfveGK6dME52DhTVD4Chbyey+Z6LelXU4yR73q3f02jW7d/9GE8VdeMjFgPbuQ+xV4epbWBHc7ExR3Kql4TJGyxY//pg5YuMdVzYruBdP/L3VIe4Ak6UQ8GUvPrkP8RR06BaKTmMTTFpMnIvGLZC9qAODoQZ0BTjlyL4qmFCE5I7Lj8rgMzsK5uBpuFPDQrdwclIYAxgy6lHXNSJOgX1IWLFAlAeIV7II36NVph6xdzNhl/8DyFu2wQ6AiMV5SQpiYSqpw2HNc9kkXzBwxvKBgW2frWGuxy3FeaXlFZf8TS44vO7645usjHy+srrbkDa/Ky6sObJwyo8mcb86rp9OeCJg06WoN2bKgscBqzQ8toWlo2RVGVk06mKzWTnU7nWOaLrrl7pzpSRr1sED70rq6KFOZ7CVPR/eVeVrq7PYUlcbu9E5yOE7v1WWWlOn1i3YPL/XlZG8zmcq8WVnRF4DFsoaRA0P6KGYHI7JRNzDaUNY5ZW0R0bpFHbMqMjkFUxEJCmJQy7du/JxeuxEQXNdGeu3n/W/wrX37N5K1n2+k7arujZ+TtRulPXhnI84CXvefYeJd9lrsQQ4wWJwWTsThuQPYNi47bYitAkYLo2x96HHueza/wNaLco1SZ2kPylAj5FTCX9dZxcD4poRxieMFauIAO6YoHHBk4AcYVljAiNUAM7cOlPYoKdJpp5B/ARrbyOUgRkDqgPEYWr1FqAoJfi3bUpFtS5fdEskevuCeyH0LRuTA7jwW/cPOO3dv4+ujz9av3TC7ZtgFl6+tj6KAQTUwRwP7SwedTPxl+HDIsScSbxK2iZwS/8bwTRJKkRBP6Wxum04sOUQXwAY8uJzcX0JfvgU4YRQFee4gJwbtOmCORMAVdrT50TBtZVx7o1jEmaAomGATRwR7Mur7cgn8qY4SCXhr9auMERM6a4vuCPRNCd4Zp51x5MLhwy9FUDESRh1GOIzbmzF0fQa0imr4+z9CMcsoYRwTRKQAm52CqaIDTWxnOuD+0oR2xkR0zl9I89BKSGC6Gq92aCP5q+8cpNLvDAJN1H8clsBg22qK8U5xMTaquKamWGnk36NXMVXGqbhdntQNa8DNbBTMRC8TqaCcd9UTX5AgGkVTyHKCMIgwW9Mq8ZaV9fXRpXVP1F0MGf7Wulkz6ynPbzabj5pLis3RTZiZIYkX183qmVUXXVpfv5Jl6/ld9fV9EXhwuuWoGZ6zTIcHcVy0jM5oZLqpX99fI2P2MAzEahmoje8mlBbLsbx4Vvqf7kmNSGYjbEaqrD8rLJwMh9E6B1IgugfO5yqT1eFwryMcRq1+mBm7nGKZyMDpXGVoH8vwx0qGmRWAnMYm2YagGxggG3BAWj3Aa+wocKEM1AsnDy0Mj7KtmAJ7feeNI8Y/uBcI1c8ffHBc6GZ6I986faVlZHiBuL+t7d2Xrgkt8EYiC6++/QBJvvPOu3bT08/etnlZJBIMh67+3XvL25BGDyfgMJQaIQywcAUKPhRRC2b3o7mtMwE12mMprOl2RI/hCNLiEeFkfwcCGaasAVRnpT1SYzis6PPup/fHwY6ygRjfomZaj7Zf+z7awBEvft+e+H3vgIEF4BkEd8wOKYI6dmQ+ENxBMW4BRNph9q1faQDS4QN4PB3WWD2zpHHYC1QSMAVGlbfKQew47sE4Pi2Q3QlEJWBjISaKYCUF0p6D9NChAS5h5yEygo7enWUcUa/X5+V5W9sbr7px3dgx5tzpwYz0m3J93vK83NzcuUIx6SAjXxxkPF4kK0qqi91VJXk5DqdBN+yK8TU180aUltYXmox2+nZOeVVVTk5FeXZuTGbA75f+JJq4Jm4Sdx43G2hkWFPQZoNC1Npj6N5vN9nddtketPuBXDB5Y7RBOvEqQrEqk+xyK2QGLDpg0onsdePSc0tOgzc+BFCNQXTbDQqxIZUVFtgKR7deNbpWMyczOGzBR9tnL679qmbJ7NlXzV524dNPrQoFc9VXqk2OUOOs2c1IaTimVdg1xEk/1thL+05kLjbwyaoUPo08vdadnWexjKQXPc7/TnhpSZ01X5BlOXV6zuSR7dbyKWWlvb0PPdQbPnOmt8gx0WfXhCrG2J2uqakpybWekeGJxdVkXKBeLEgpSqqtfUBI15UX6zLpaUIIv8+UVVWGY6XwpYqeIg+gSwEX4IZxdQxvoxW4JLsbeMUIXHArNuC8F1VrThI0yTHbb1O6YvodFDWAmnQaIjIj8NKGDx+O24A37xmeX4Y24L2tKDuOMON0ZgV0vHH8dYoJ+PXfjroNDcAbhDMoLkDCEoXkglX6B7MIL8sfviduEN788NEGz+2bEE4p9kSMfoy+Merb6xVj8OvGN97OHp2s1AEboAs+Gusz6WL4OBXoJdTOlEGvQ9xohKIBrY93Oayw4A0ZcZm/6iyJoiZmKzxQEE8HVDjrVMe7B5VW/L8ZYqKPKkj0AuVqApmKth9j2JXqW6VQUUuQrj+T7AfiSrEH6F+FD1n5dkVhwP5oBnkjug9FTDM+Siw+EReZxm0bGDzRIiduB1orBJx6IKhNI2U8kk2eaT0fH6crp333l5/fiYjHeh0oWMkjZjOf23/cri7IVyswoYvxuzGenjATCeVQ7Lrih9QYYRKxSOz7fKu0h+noRcTpWlgaWBZBelf4mtzEJg5V/fBsFyEM1yGtj/pCHhVzFhEAfiAYEoMoA+BVVmMGGgeproeB/e6+bZeo3PpCszPjarP56gynuVDvVl2y7b7oiyTvrbfoV2/J6vvodw/sODNfsGU6zcWGJ+bNe8JQbHZm2oT5Z3Y8QPQX4VNvkbwBuYV0lEsB7hCtL3UJ+sG48oo4taJT1DpFnahfXTfuxsM3jqsLMt6djCBjaVZ0NzMtefRx/gm+xbZ69JIbb1wyerWNXMo4eLru6v6Ot99GGcL2qGuQv0H8jrAe5UElsBKRm2daBCZBhhbYfC4sIpDa0cLArnUMUEbEX1Amwr2uCBA6kb4paN5Fulb3/xgWrJBOQxvQsHDL3tWoz+xa+PC6lSvXPbwwpm3uoT2oOFF1r2mZthp2CJJknmmr10RnYjaMb8OdaF/E5m9s9NtoSlwGDmsqmWnL0GbMxSwk7AY7EmN+ZicWl4UAhaZFfQWak2APTgHlHOndGomI+r4pwlFm/RTu2x/G1vRn8QchK+3p2x+JKIoXwJ2kixlYRaugP4jLgC5JYVlFbo37uJHZ5Flh1cTEwoyOheVG5LMExYK1toimFNXWu8mpIv4mxtfUFvUfZ64d1qJa8RkU/RfXIAaHgUGzDLwV3QdnZmNATsltwBvEuNuhlQOrRXAk0W9H8dlRxJMHFes8tldJMw3BuIdQBhfD9enMk+esupzQ9rY1Lb3f4ZuivmVN3360PVYsfvuz4HwAQZ6iJ4pIR2ENOZmVgAKXgk7JHvNmcbqYvQpyMW7RqJfFgPgIEwxq6PjzOiHXsfkCckCDAkXI0fEaDTlwnmBl1wX2Ewsgs+CEvYC9ApkmKFJkiG9wb7K1m898CVDPYyPKtwC5mvDTJEYKBA1GQUuMivQ96MaWEFntLerNJXsNsDPErtIRQGIvqm0NZeeJRdvpb7GUPFBYkZVLX5LuvXCCtvdz/j6nGxXsWn1DlYa/0jM+1JqkSdb2jlCdH31GuSWPNSdRQdHNKbwpwhKE7ZwzcTcj1Q54LTBYEAf0ZwN8WU1KA7D+Grx0ga8xFDYdTVu9d7W/lB6VTAzM9l2vsBydijJZ9U7uBQGcotp5WdGVrqbq2wuc01avnhY4Pzf6vXiMAejob1jyo2KzhmtYA+vgDaY3xwk1ppEELYBCVcVoKyBDtLZAcOA3rjuIox3RhU5wA7/BhEf9gSC8izqG+G/8C9JMu2nJeruhwJHvLCwuPv/CkqJCp81WYMzSkpRk6iVJGqG40lvXMHzM6FtvHT1meEOdt5IeYH5N0WJ49/IC5V1HxayLKhz4bn52Tjq8S96lP/Fy7OXGibfeOrGRvSxu860fbfLlOwoM2Rk6Wa/TZGZkG20FNkchz1uKiSdDFar0FpbkWlKt1lRLbkmhtzJ6gDldPeK7fHRW7M2MJJ0uKQPfzHcU2fFN2sOnxV7NzbBaM3LZq2yvKfg+BfUMABjSVHIm4EMCjC+qLVSyDbjDlJlX33HFtSEjmU+a0NQv0usQnqT/eIgeUXUDQCjh01wNbeNJKqkwkCqAUfdGD6uaK27DPbiMaOVF0iF0TASKCVZ6EpFUdqvT6LUyhRmQhmWkHuYGtaBBo8oU2xmBoCQH5EUT2sjM7lP0kVfpYRqtKOR+jqx90eG2lFf+5qEpMye0Vl1Hrv086aPb7m3btLxk7XIps31SuvUm+jH95+GOB8W7+B0Xy6k5b3WqSgTvfXPC0x9+O7nUfetHl+U0dI5OZnpDcl1MH5KPUmoEMrI+01TFIA2DO35tLAc4dv8TG8i3n/NJAq+Z2dExM3rcwodY5hVZvWFW/2WS8AH9WSIdT2xwk/INT3S8N0uxXVDw5/fAt+QiRnDafEmE8xC7tiqF5BDR5uM5B1yoTMZMcQB7GcUe4lv1PvTlPjrv4yPkOhL6/qroceLbR7+m64/uIhnLl10S/Vvrxo3dGzsiR8lt5Dxif+cSeuTKb+kbdMP7fyRXEtOD9Ej7kiX0nzdePmvmhg0zZ10e058ruNWRaCmr9QKtz1y/XMzSGqj2Ad8Km7jT6fU66ZLD+d9Xjb5ixLodD3/wQZR3+gAMeJ297Q4f3/bjHbW1f9I8dNvTP0Zv9jnELqdXsb3jIuKt8C099lvr1dnYN7Sxb2i9wiTi/B8nPVHbcutFHQ+98dNPEf4Tkndg1Cju5+Q/PHOEfoXjB7hFkRFpmGeEIi+FHc8N6LFpj3isvyNCUwQ1c2pChq4/C1FlhwKxT3MS0cBcvy49CxgxD3jpam4s14qr0iJ4q0I80wZIomQhVSHiRv0X5r3xC0EXYA+YdMzjiEAGEYlbcOFqlZxVRllAi2y3LgCgIyDYZdFRMb6oqrXClJpxycimdtqSWnDepecVpKbNvXSusAQuqocpVxeN2+gMHbjm/VeGbdJubJ6wMfrk8uHt/pHDl6Yvr9jTXeRKFiq7H6xcnr50+Ej/xSNXpKa7pMzCC2ZPKB+7bF3F2AsuuD+4ddGircH6SZPqB3J9zeSJTU/P/+Q52uJvahIqbuqhV+cPKyMrdj8nJWuf201vKhuWT9Z/dGNmusTWxETugLxWWs5szU0EPcw0KNYhzG/R6TBZNCbpm+30wR3TA/OoN/pP8zTLOrNZNe6vtJvs/im7yu3N8+mCyTWC2LqDPrqj5cpF0RW02Gxej67Bx28QNl6UlGsqMVbrRqZOEADu3EaqpZulx7hiroZp7NMEAMshVRCJcJOF8AiPVWU4KyFZx+B1HOabjMIsPZ/lyEs2u0zN4y9onpLtvmDB7HxbRulFT16ymkZ/+rTbazZkeMbMWrzysoufsMy9oGWuQFJy5l84fY7MS3fLlqKKoL/apM2qmjhmZJoxI2PSyLHHaLT/5JjxjVmzH1s1YtcNu675TbilODW6uCklZezMhQX5w63maXMmZig6QrKT0VYoieBITLaks6GhiI10KUwVMHJoTIkGj0DY9U1+E+VFNAWpSEV+T0pYHakAd21cOXCWI5kd3BAuiyg0AyxxcSBHAo4GkkZ4xaF1sNx5jtzZzNZBhRWiKUpKXnOS0V1dltm/czZ0N4SoUSnmW4empORTknU/KWIs10f305NCO5MS1tTcHUvpUeeTo0Y1vkzvdDY0hJ6aHysuPitV5JmK7WYm89NF3bOXmZSjS2UV0kYWYkDJjQ/lrkiYlBAggAgACyiT9oTPvBTecmLr0osuWrr1xJa+KZFFfEe3cLK7g19Ee8JA6Pfth00Pt4qL4bFIZM/Wbnow0tG9dU+E7D2/MxLp5EQS4KZId8haZn/phDZUMn/xfGDbG2DllxPZLZMCBQ/hOLoL4oSiKLt1QS8xBQW3nRwKBN7ccOLEhjcDgUjHia83kgUPffPt3ge/+eahjiefPP1UNxGuOBzd1tv39sYP+7b1iu+c+LoDHn2z4+sTHW8GA5Fo0jcPwcMP7v02/ORGRkOuPF4eff4Yb/jcG/3dMQ7WVqK+OAmutQBF45JOF0AwD/qG6mI25GKQJU430Mcmt8yMxoqgRFTuCUG3aNKmE1tEEb0BQ2HZRXvQCQcy5NSuXb27iCcSbZIamWwsi6aoNqHb5q5dZA67p5jL49G7S5FRQ9pDPLt2Ve1CBgXvMAHmrl20fRf8EE/vLkVuFvODitufGs7yzsDJt1qIaLAx3Ef8CRSpQTw2QNi3KHat0SbG+ZCswAhIRgRgfyWyFjj7bO6hoO/xj7MW1CGdWbcg62PGSwMOGM58+3DvMj7Sq4UxAkZMK64fulFhKBRBTGsE9zHuZy6xDkmpQ3k3pspHaSYqJVD8ElE99Sa+pICBSBwwKDiY6T0amXc7MxAxQUPQpf3MS/xBmIawqO/PEvUR5OYGbbzQDrOWm8RkjwqQQNmj1REgDneAc6bxRpNUpkIYCb8WlcyLgTLRHRKIRZUmpJMyFYDQtp1x77edO+Peb/0j6ZZHxpPrCWcryyz22Zsq/a4KfWtZ1dOhsfOumVScQiTazudW1o+orUxO0rpGCJvzyy0ZskpMV6tlQ6i2ujTJLVSyunYOqb/XfegHUp0c3LH7dq9odBVbRO2oqa3V+lRtuW/cqCp69LGZW6Y3FNkKTcXesXXkrYoFMy8cPdU7Ijcry3teXXVjwbVD/Xtscapl0C89Zras5O0FZQSWk4bnC/m/MmuTAQlQyYbD69cfFt5mbmdqKFCc2RPc04v46esP/3R4fd8UlIix767k3pZFWQQ4UcXwVCbSrw4UdQYZogoJZYD3ZRMRTCHiUDHGzm/PJcQZdIkzbnjvQuPNp+lxeuiG616v2lNwz6qLfzr2u0szx971GaTDDlKt++nxZ4iNDKfHzCoybx4ppyE+Veoef5r+hf6efvbubOP4MV9tX7zutbph2jF3w1uHLoX04nn0HX70BVC9qX+fuViVIpDPaT59uYeXAcZqYG29DPQS+mrUceNxvJBwyQTk6rWh2BYuZdEWUtUCW2wisBGrAkFdgBG57GY6j08AiiHKQ2hn3UUPWUpUu593qIfZeNVoWVdLn80rlcnrsDAknT439UNDVXr0vsqJkrMwqN4nFubS37lz6VaTJylpDB2TXai6J1Wr+pCO5zU52Y70r/UFhnRBPFbu7M/mjz/lKDhsGlVg2apKK8gxVmX3bZ7gcQvNdtdN6S5zetqOXFN0fsOFwnJ222A2J3OJPvIq4F5wF2lI3AFe1YwgLNqkeoXJURB0IYiKSUyYb0/M7jYTqMAZ3IVoswp7ioM9xfEGPTrGeqscnPOcjrCq/+QGK4YEH3ODlTOJi9P6gjAd7P1M+fA99BTdQZfR7fTU3cwX9oG3yaUkpe9j+ujqrAxj1g0XOg3ryfV/fYwEL69ZrlFnJdlVwdF2O/0gqwiu4ImuOe7L3O4sY0bWhZuEtJRko6xZ+o+3/t33yhf0+7FkCvkH4a++bn1b3sOCmezCuu9h33z7Aeb8ejdJcQo3qYVqP0kmL/zp8nbNjJZMd055Ro00d9eI3gsvFEYRtUrFh2pJiiQIpC5E1PTRMqvlgskbm14++T/0osv4W6LNK8gBIr32QP9icm90dKltGvm7YoMZ95uecS4fA9TH/FdlaITmH+LlyWxvMCermS8CZfQHOov+6hU6c7Jr0sWuUfYH5E8xPVpcW1tMiosxEMmvXwEWUXJKKeAXZc2EmVzKxOUA3TqZm6V4pcqCTfCiDCHRa8GuE882fvVDt5C2AbgBnAJGIIFtB9yEK8Q3AL3hDpGg7HJ7YWG5VM23ls3KOZ9+/v3D40kueqgquI02vBUmr2IuhvEEN331MvrqFZoR/sZrrKKYTELPtUw72EBUkiTwtm3DvcM1/9Oc/UHOeJUg6t35JC3aFEGvV6UOYN6dLyciT5rS9vHHbSO2Vec4cnLGGodXVQ1Pc7tsycnOnOptw18evaFjlMAjPrqB65Ib5Ma4PYuGGCWZiDouGDCiLxPvJmKETCoizn5XtGWn8HCFfTP9ODrlWv4Rms53d0Yny3r6lGedq9+xk+8WHqt0quim6MRr+ef7t/PPwG38xlPcSjlfjACWNaPuk2PyM+Qc04miYUi85Kyczs1Mc+VMfune1Xljw56ZBkMe/+5gnl7Nl5HXz+9spldRD72qufN8MbJ6mq9CnySKFT4kEwbyfbmkiajLPqM/kIzPyuhppGPQ1uCYeGxA1p9oSXQMrf2VA7D2oPWPwm8rNK9OoXbjywRyEso0pcZI73cobkShLsNIzWi90d2h6u7o7t2KKotBnyctjAXTMgytRRdHgkbgTVlgHKwQU6jwx5g/nSeSUCda8KPjXN9+OCfoRGD/mjkv4jqVV59E0nggG2TeDxxyUAfYwA80hNZmEfKJcDKl9KY7TrRP7Ljllg63S5M/98JNK1ZOqmz/8oGrbAXkFIPV+lG/vfWWPJqS17H1iuJiWa3OHeUvOU4vpX8/cf1cnU6VHprQeeuf/0VGPIUeNP2nVJmTFr3QrkovLW3IizYpVcV0r6ekPecee7SbGtC0nDX2CX06V4/+Yx/+t9ay+s+QM+JH4kfYJg0/4BAmfkTvJvO307vpPTvIPHYi88XxcH339vj1vB30HjJP4QUVWb0A1HElQE/Uy86LxQqICSkbgBX0MxY4ZrIIv/mJEs0qRue72U3zgPk0Kl4xuheqbRUnCbsY09cznb0aTWr6ntelpSWlqkRRInJySoHda87NSdcmJfGE53kVoK/k1JR0na5C+ImmRE9cV+/355n1OeYid8GIoK9qWEVVIC/Dwaeq860+f42wJW7Agt6bqm5am5yakZmTnGrI4iVSWloC2DslU5+VlZvp1CSnWYRMHRCDao0LVQ7TWq02ny+4UVRLSbIsS5KoSZKFJBW/Mejz22zvM5uICAuFApTzIH+E4+aPjdtCbimTNf0fxi5uw/B/GT8yZAz7zf/tGJYpw0OfGDKO1d6zx5E/FI8MgMbLwOkCN/LRfzeURGKD9Nv/PJjL2UNo+aMM6OD+L+Kmw+pzu+ISci9zqUGN98AvMxaI/RJmBBQXoMfvYJgkZehMstYU1LqDUAv/iQB0hdFosVX56hc3jTIaUwWSJKemGjLN2cXu8rKi4uzsLGNKmqwRbqkyy3WWlcEZK9sXLrzk/DZPe0lDbtnwGeVPT35o5KL5TQ9+MHWuuE4X9FdXVDncBlNt3fQZs3VJLpujACY6x6jTGcx5LofTnWeL3jfjyjMqDa8Fiio9JSVFrVPnJOmSz2yZuspvznnoatrT1kY8Vz/kq2fjcAD41VyAtTaEg5xVlWnQI9BII9DPmIeiz+UuU/l9mTpYAUie4AEQGcgWYTKpIsKtxbV1BkO2XSFI7Nnq3NF+z652vtVakh0sj5T5skusctutlN7u61wVNltsy4qUiFlFy2zJ7lXLrvHdTvje8KxZ/rqygL+8LoFn3MOpmccWcxomshqZlbDCfLermplpwEFgIRUfcmY7vo7ZQCrwSVzHbIzwefEYsrnsaW4IrIT6nXYtgjKZDKkxguJ+Zr4f85cjA3psVj+8kVCpEhIoHHPDHtp+GDeEk24ypEqhk1k/NAGNEqt/aPvhjYRKER+TU+zxX7Qf8Cx6VAfJkCqHDtYv2w9vJFSaMFQJcnzmO2E6p+duTNekQzHAOTx3+fKYY+U5vXbp6+ym4g0S83nEmAmD/gIDFqGxiAHxA/3omf/2wBljCyTE/kHPoPHA41yiRKsg0Og0DPxThiGAQiQmR0ghVgeXmZGE10P6JRbI6CAkM6mMqARBghyRkQrw+sqAXXSnIe9jCwBx8GtRd/hb6CZ678+7dnE/k7lkM5nLQf7naBU5n9R+tWXLV/QPdC/9A+b43dPGrrkzuGDzo/T29Y8++s/HHiXl3hHzy828cIXRWen3VzqTP+3paVo5BuClgOB1elJeTfPkkYZfjTbk3fUzvfcX369K/CqpZS1xlua9tDE8y3jPkvWPhh/756OPrr/8UZpcqztvwex8S/PG6SMc2WqBtHzwgcpVO2Hq1LFBbcaiPQsnFOhJzG49tgZNMO7lLPqeTYmo52KKD0azsqh64oCXni+g+0W+hCmFGUxBSSiUi6OjTajKvUfTGgqHWjX3wEV/SoLwYntC+LAfFe38itizK+CCeU+YDViFwYwuFTFZcE9CGr/NrGRQVvuuvFieCdx1DleGdk+cqyAW4DJIAqbEC5+OoCoGo1SxUIcoLpWJD6PlpaG5CvQ8oGps7fBE3/J4yjaU8AHP956NJQNXJQ3kfk/rxhI65ylPR6sHbsO575GCykqtNt0zYeIwa2isRFvx9Q6Ph+D7qzxwVbLR4+GL4f2N0W10Dr5E7n8KKvLwfg9+rad0Vbg1Jyd/wZ8C5688D/bF3UBHV0lfcFO487n53KXcldx27nbULetR26FPk+Qy0a90gvkOopQHGDPFZiAeFTGWKhOlPIDzCjkSD39njEcLI5LBQrD7QaAfYEJFHxPAyJJiziDGFY1wbfJiHp6BvPRJa/eZ1gJdTrmr3l6nSZ7om1BWUNB6prt1UdtWdWbnIv9NTi1ybRheDQ7Mah23Vy7qzFRvrVhi7r/ZFcKZJZuU6T2g4/N0YV0er0tPD6cTjS49g/ZkpOvMBuIxmOn9eDYbaA+c14cxiyfhbfygb8Rl05pLK412SV3hmHr+Ta0+bNrIhue+LPdf9XVLXo20Zs+aKnynSjnDpVSf3fL1Vf7yL5/LG55JLqsrLGKQT1HzU22OLjdXZzAm95oAHWuBO/laYVFiId9iNiDI79RyI5mcFsUChoBXG4tIaVZkf/VEssfDWMbSArchJglUNI1xkZBgjTx32QUrMAxUC659b2WsQZVeDNjW3RHhy2PxdQBXrHp+5kzagyY4hKbiVvokkznIRpRz5ieKbCHc0Y2YSDFYYD5IcVl3EmcACFDJzWKWC74BR1HnYJZZtsQMW9CuJfEKvUtj/SiA1ttjvWWvmix8VQgFUxxLhCDcRFjt11rQMUfoDBfW4YBD85QMbUf1Cx6kazB36F6AAuqCjAI1pPceumuP9fbOjs7brQ/cHRU3XXurs2nh2GLzi/R3tJP+7kXniI2z7LdLey5sK7zM42yoK4xnoofJHLQaovcz26HBfP2K5/w/ITghJYTQDzH3k/+5FSuf9CU1ulzDk7xP0snuUJKucoS/lPaseG758udWEE/NuInZSSFOzXwNjjFfaRuM4nBuFDeOm8hNxbFkQEXFAss4Ey8Um31lCHHDOc+6JkGD7IRDjKXCcofXl5kpZ9WVuWY+PZNvHXIZfRnmmU12EWrCBvLo6obuEdF9SirudC+bOyM7J6lg3nlt7vkTJsw/67rvZ7SfSrSliuX5KzFiErPyVlLkc18B/JEmGzg9l8cVolwljS8oAzoJDp0RAY0OEC/yJW5JAJjiZjpn2agaT16rOHjk8JGDFeSVYZ/t+umN+d7Vi377Eg3MHjPtjd0Lt86+qXfi/Im9N806r+E2sbj/rbnbGhu3zRWqZi9TEcf2Q1MWWegXZTTz4YyLDkyLfhqe2T1zoWHV1Li/fUS6B+aCSQWAC8D4x3YiAQmMLJZJwuDSkqzTov1viLCQqUTW6phEK+AOSJrzJloba9+cSU8vpf+e8UF9o3XSeU0TeI3+nuWWmjcXPaPTj+0+1T1Wr3tm0fsNjhX36zX8OPGisn2vnD9tsZqmkn+lLJl1/iv7SguEUO2VP4VmuulVfCDvZGfnV9u2fdXZeTIv+ntyhW1e/ZnNtQ18QnyVVIynwLFoIUAyhQQgUGWdU3DHou3cvO/Lt5/xB868pB/z7kHhNL2erC75Iqv/prI3bGQ13VfIr+W3y+rFN93k9aFWUd/0WGfvY8RBspybyZM+WnNRPj1Jvywht9F53FlxdtJ/GWfnP8XY+U/BdTB2l9ApNaqaGUWIdqVdLIhecwRxdDf3CbNjLeNquNHcBTHv9zQe9SB+nwNAiRexmORCiSoqWW2y3RjzIYBd4zYGmNk2zqGYENWL4TF3mQS4CkXeRuGu1tF1Kx5dsunIb4jquTRfSr1JnSfd+vLFv11AXlvYNU1fcoXfNvmt1kXp6V2teL5BNYWF/+q//7HdoirVlOky+FKqq696/VGhKdS5ILRqdrBhw+Qr/kDqh5eUEOGVbbPumReeZW6Yes2C4ipn3ow3hLtXXXq/wN9x6aq9w5U4YtGa3yw3Zmfk5unMaQ51Jr99bng7G/cpZKx8hbSV0zJ7yypVpgkjxCqxYt0Bh66gjHfbiTHTZFeixZokldD/OCl9JeswmvufLPjxrmUvhB6dT7SXbv7+wIZMAGm1f6sZKKY/SFvvpv/Yh6aPt7w2t+XV9k29L82+99NNpGsk/WlkrAj2bhXxSndL951LJirEZKIrSHoBsfT/JdpzGX/abV76ffSDi/liuoIvWx79QNpIf7DPz+//7DK+jO8rtAj0jej7F/P+qI+vaIseVmwLgYtpYz65Spw7AG7MSsmnIcxSBda2C7hwo4lcJZYePNj7x4NCC3+/IUVvGJMdfT36RvYYgz7FIDU+03/gmWeE8c/07+GLtMNsFllPN5HNQMPYhmkTv5PO4g+fbSyKUAC6xyABxmMGfh94MwUcaEhAbmsN9V6DIF9cH2q9Kl1MTaLLyJYcvcaloROOfkgnQEafQ7bQZUmpYnphkG/nLwnyLqET3+nvgLPwbro9K4luo8sshmReTVa/+iq9Xs0nAzG1i1yWlGVPLyynanK6nO33FbJGngNttSltlRFRQluDMCawB8t4QJb5ROQgMRllzZqWvsko7FU9NW31zuie6GI5RZOssaUk82vIl3kpjmybcKmw4LypNmq3PXF+/93nT7GRT22PC039F5B3xHRzekYy+npf7khPTjWhz/4AX2hkNvMeJjc4W0Ork2RniBDR5dZZSNwKWHQaTUIZEYVAUASgec64XuNvmVdKr/cfUuno9aXzbtlwiKqYVqv/WbKaXQsL4Amy2n/oXFynalL8rTdiT0X3MS3Yq7Fq/xWr5WweNxfxzy+jUzngEvoFFwSjQ5Fk4tUDhDhnqCrsgP6+++h3zCb9PtKepuHJK/SDefOI6tyhq+T7iD7xJdKeJPI9pAHVmySDL2ay4DhtgLvM+MtojyzKiI2guf4grv06uo+5AA2Nb9E3JRZyM0WxU1B4t/9c75CA5qrV/VnMlvnsSCUKiGb1DoypeVB7rdSL2i8l7gLqwoZ+JRZRg6YgzZEFpAdaZ9eK9X1TmDM8fo+FbVFCLESUAPyKYxXGPhiwtQHcEPeWOlfcZAyrb2LxfhTEwshjmsJMslV3I94Lo/wRQzwCFtpz9v9eiBEuZECGrY5Z9KAtlNQY6duPzyL+6u+gPahVj8Wkiz8vxiXnKgAg6PmM8pl9KPZhJuixmIftzOGFb0XLc+Yfg/EKB2JZlDEuG4WP6AQHtJ6WudxgkK1gAP2WBq7jXs/isaixY8nSuvr6uqWLN5aY86fkW/BktuBpYaHFYsmX1XWhxYtPL15SVx99rBAD7BepuoE9MecXwtRbMBX1lrxiyA6BAQXcRdwKbj235Zy7J5AZhwsG1lhUrmcgukZiSUFPAWaErQugtVsaMQYDFmYNZ2C6LjkzyG4EHMQbsBB2Ax3LOBYOFtXR3ioxIW8URpOmuO0WPUg/YrutCn4Nb65d+yb9lr5Hv31z7eVFgSXk8Wt79y9fvr/32vf2TbrRr193weZPc8yXbixd5F7CJ6dWP5qZqs0EBKySkgHGD7uybKE7LAjJqcXXziEauljKyU0TUpPJwlreVbZ2erBJW5C+oq6FLzeuwwt7eltdS5Dt+sF2FLG29V6y9k1iGGzS7X95sb56qZgDTaH/gCZdomqur5ne3fGbx4rzyV/S0lXpWt6SR4hKayoLlAjkX7Oh/N3M1AxVcvqKDfQjojYVj6zgCa3cfOP79KbDW1smPNQ485slSrqZxSs62+9YibMSC1psOytFGT8CCqmRshCGsJqPY1ARdEVWfPMHz8D5hRnu3HNO/++BuDDxVHfW9+J+3hj5EO0WcC/K6r794f7jsho2UTsGEcPo6hF0q5T2DIQ5SRmIJKy0pScc+4nFMfIwfB6XJcIXdLFYpuhFHlaijmDX8FU0lsAX1UDTzpbflV/nsrkipmMZxtUzbgx9f0MEVyb7bzIEZT+K4MckkyBTHZThf5iRVIqJbkCU8X84DD1Ue7dV3bR8bbMpPV3aZjb3L7VMM/f/ZDYLt5mnzaoh39dkaQQpWVWxcFxp+XJSXFMzvaYm+sEYfuPo/p9G8x1j+n9i+X+PiefHyA9vk9LTTc1rl99Utc0MtS2B2pLM0yzCrWZaQ7U1E5aXl45bWKFKlgRNIdY3vWb46OhVY8j3Y6Kdo8n3A3l2vmqMYu8FwwN0fQrjgAY0rci06znZ4B0U3qH1NBc3HMQHlLyqe/Xe1Wtapl8G0/TlRxE0iWSOM0WRo/QL5Ma/fXDvN5hiVKBpq9dORfC7duqn9GnHB4p47gMHmfQpvoHRFZnLDbRrOrFIHdI7MKNuph1XHLF8jgaiYvYpFbpMWUIGuULm3czKwCE8osQx5Mn4Bx/kbz7efnHtBR7t5FktublznyrVql0lWi1tlN5p7TjvvA7aYXaJquTh5tEGPX0vGtXKi+68q7r6ZfpIRtqD0e9mzJjAxWxZFVkNysVxjdSzeBTc2fx4PPqYQk0a4qqURLoS9kP8vyg44p4bRmswjVhdqu5BHvzHmMs9BpicP4r+NGo+i/Pfgugr3LuVb2ViJDJOibL/5q3km1szvqDvfIGScoZUe+BMZiie+G78HwC2UfPnj7Ip/xlgDf8IYqAfBz0Haw2TJzdjoCcV7OU0+ffyAS6LaYfqOE6Hku8Q4UIwxFw6KVOL5/jXM2f/5xmd8a2L281hknri2w0ZFpp14mtVelXpqEBTcan4Pf3Ds6Q2+zynK7P/01ah7bLKr+bQa9aXrJtZsr6W/yF2K4f+Qbwi8/Rlq6CW9H/236vR0hte+r2gNmc5sy0p6uX0DwfgyUyX87w/rOi/ZWpl4/qSmes868i6OX+nj5PaHLjTmk1fg/lLicUDRFsoKzc+JhndxN3I3cbdw+3jnsJQxH6FqTAI0PQQARKWBJBtVMkSxupyCEYT/vMjCahrWHc6E3CVaBCVhlrWfCIrBW4UCIiBoK6MEB0qFpF/EHR6E2oM0ZauFmEiE6DatV5ZRL7TildOk6TUI6A1lp1ZU8k+rMepOCUH9Ygvg4BNc4neaIIH5MMLJ+0y542ZvLDXsmDSruoxkxYJrxTYr1+0m35YjemdxBO5ulGVVapJSteka6rHqwvT1GnD7K1ykqiSgLi9HQrktGq7oBvTTXdm+1VjS8lvj1TqVXJavu2mB3hSV1dZRCYcyVw2kpx5aRps76V55LGlGLSPj666OZmkZuqqJ11VpJHUmlpnulo32frohReTBx5LybPvn9eyUpZ9Aq1qu5iQutpy8QA9QfLGTpq0K4/QE3wOMeWN2X1LHsnvv6Xtzb3O4I47297a6wju4FdXbOA12Vl5DaHi3HELyW3JQp4qPdUhSJoUQa1+4DVyp1JC5EDe6XEBmjL2DXo9kYPDkrLPn3XhBlJBD6l4Q6aFPjChcSogi0J0ZCQVU25bdTtCFlXK3/1CFuHJHd+RLQJJTxOJ+cvm0bS49ImfQmZrXuu6T+bvLSchfY5OS3eRGvoBEQgGyuJ+R6yyTnqMRc0KAMeb6XahFAgXiSxlmoyccPIHsnTxPN30rq8XHBo//tCCr7um6xYsJEuJdSEZ9/vfkuaVz8rC5MbGyYL87Eq6/7e/p78FbHUfrE2TPB+40JHM3kqJBmfHX5sOVhvAEOA9BbtbYlpn1PbH9f641QR7zBcdWWNJMYwVAso/ssBr5aUQkU0jmvLXT8rIklKkjGjrZ4I21UCPGFK1Qvhy3tlin5pty8+dzAudepUmXZc/8ZEJzWu/5GvKZuZVXVGzuebyiopA7fpNnRbrCEdxiqU6pyG7Rp+Vk1QmbvrbR3OvNEk8H/0kMyMjQ6vlXbzKZpu0cuXKOQ6ez0tRSVKS2ugf2RSJ+tKql0QuXPbGxuqKDNtDu//U076W/1JKyhs7fY7HMTVVbcquuXDaeXZvon/sUBqDWYNnE5sWIyLoEqgMmxJp8cxLQD2zP6Sk8UBXWAw+poQWYnQDM09IUeLGYYgYoNhVAzGEVfC9XOW/orDgbETQxhUajMz2YmwyUSsbMIwO/oM1fD8MtDLtQRo6v5B4IFWCjrQDBdWIX8DALMrd2FN15BSKQzl1wneHxvpQvm9iZAyzHCcJdi0iiw+F3wcGggU2QaYIOxy30VJYNqUFYSWO5KAxxKCNiTRgd6WMczzqeYL1kVNE/0Mtsy1Bkp6ZjGid8QJGBOAQJVgrOdCbHA3LJU10X2ZyRn5o6rDq6mFTx1VXa8i/iosuHDbs0qlTLs3I6K9W5iBOZ+LxWjvQ4lnUnzasumVq9bCKSiBaLqZ7dMOq4ZVLp/BPZ2dkRh+O0aLyWe3PZTEzXGf14Gw+t5Sc3VjlP/zEgoV2MORJJtJnYJ20n92+SKKkO9oUi6ShmGP9/8L3ZQxZE+jfrGeRc63AWxdyHq6CxX6rw2iYmri6XGQktZ2R1/+XvLKIgKdmanXmns+iCf9X2cQVDoMQHgzscs4kFsMuYZ9lxmOcxPcaCwQse4MmrzsuQHLGWIfE7cai+ig106jiwtOFK3xwySubDgcZWQXiUUIoKEwDtiPpV/cd42HOsffMvI2FrHImbMVzb0H0kGL+FegpxfxGzr0RY1csG7dS4oeMz8C4JHY+sYsJsc9VwJdlxN9wB90aYtMA1JeVVwHcRNjXMK4QOhINTB563LOQkSzEMq5iYUgbShNnB7a5rPoFNPDDoLiYbAKvhsDFlCQtXZXnyPAMcxcWuocNz28knlnD3O7CJigYMlmUF7UpKfwYWS6lT8ru4kCwsDBnWJA0153IGeZuL3S7i8+aN/QZSmX/y8AI3JtLiXGltFQ0BE2yyZlwFqpQD1DOI5UX9x7z+xLbStv3r9u/n/YMnnc1XqThs5OT3yiVxTnmRo+n0ZPY5KpIuCocTjzT9nkjtFOs1pWvNtcu+b4031paas0HmPA+974MRLESD58o/1PO4Xbx+P/kVEP+W4nnrvb2u+6m59Pz72Y5spfspT+wEHkssrfkOesm5nrP4KzGH2L+pArvjysiG0fFbyM2vxcO0WaS3XYscAdNyPcjBELOOoJWQRiUeFX74gj2j6ZAjnSJa+mHsN1YBNaP9/8hOhIuIVVik8XjBcX+s6nWDSuP2HRa5lktY0hYeC16eDs/jy6JRDDiZwRhaf/xMPFFP9jOz8cIFJFok6oZTgn2UzhKOq0QBDQv2pwmrc0kaHVQn+y0iW6tTXJ/jpHoNpK1gO7XYu5zDFm3kV4LDb8WcmIpWdu7degtALZ4ayN7dYi/kQlw3i+k2f8dt3luX6N3/xsW9FzORKqT/yVb+v8AUeQdbgAAeNpjYGRgYGBk7JRy5JSM57f5ysDNfgEownA+5XwIMs1+ASzOwcAE4gEAF4EJ7wAAeNpjYGRgYL/w/waIZGAAk4wMqOA9AHazBU4AAHjabVIrDgIxEJ0uYoOGAyCQKAS3IEFAwgFWIeAeqOIIggSHBIMCg4AVJKzkCATdhIBi+tntdOgmL6+dz5vPVigwX7ICqD0B0sKztgn0i74FfJEl8syy8SkTm6WF6CC/ETm5v+zdnCVy0/oq5MQPjEcslkFIH09Ra6VFcgyhayRj5Ifvj/Ygto4l80HkrPMvTi+LaDVdX7nnEjpH3FzvGm0bQ1HF6xmV01HhrqrZs0hezjRlqMl3D1dmm2DOPOzZaNaR+4glq9VjfUlWa4qokx2WWCD2kdlKfJj9QHZIZub3Ur+6r4kG1hJntmPd7w4xwHPX7ePKZlT/O/77v/xtDp294Xo6ITb+nQX/hdhigDurlyVjgB9mnjO1AAAAeNpjYGBQIwD1GNoYVjBcYbRjnMC4gvEdkx7TJKYTzALMMcyTmK+wyLDMYDnHysVqxPqJTYYthW0S2zl2IXY39hXstzgsOII4KjhWcFzi+MMpxKnAqcdpw+nFGcG5jfMU5zcuM64cri6ueVx3uP5xm3HXcX/gCeGZwXOGl4XXjjePdx7vGd5ffGp8GXwr+K7wK/G38b8Q4BGwEWgTOCPwS1BMMEgwR3CVkIfQBKFNQleEvgkrCG8SficSJdIiskTkgKiIaIzoAjExsQixGWK3xG3EL0n4SByQeCLJICkmGSY5QfKVlIFUhlSf1Capd9I20pNkXGRKZI7IfJO1ky2RnSa7S85DrkHunjyDfI38PgUhhTKFPQr3FBkUJRRnKF5R0lNapHRAOUv5lkqCyiSVWyrfVCVUvVRnqG5RfaLGprZI3Uv9nIaUhomGl0aKRpXGFI1VGkc0bmkKaRpovtEK0tqjPUH7jc4EXR7dMN11uq/0xPRU9JbpvdKX0Q/QX6b/zMDHYJ7BKYNvhkaGGYYNhosMXxgdMHpnbGEcYnzNRMkkzeSOqZtZhtkUcwXzCPMp5lcsTCxqLOZZ8lgGWM6x3GJ5z0rHqs1qn9UnaynrAOsN1hsAt7aMyXjaY2BkYGB4z7CJQZABBJiAmJEBJOYA5jMAAC5XAfgAeNqNUstOwkAUPS1oQjQuXLgwLhrdqAkPFaHCykRxITFEo3VbBEoj0goV8Bf8Mt35BX6D8QOMZy5TQujG3Ezn3DPnPmZuAazgDSkY6QyAL64pNrBOb4pNrOFb4xRs/GqcxrZR0ngJE+Ne42XynxpnsG/8aLyKTXNL43dsmHHsBwpmHRdooA4LI7QxwBA+AvTpH3IFZCy49F+594giUSXVY6IIXaKOMBFRGxM88BvSi3W71ES0EBXkaWOxHDyevnBXFT3yPUao2D5rtLnyZEOyWeZ38UylyvNEZgc1XfE8UW8PZ1QPqVXZAsl2TYXHWuo2AxwwU4FWQhW3uISDK6JkVHYhLqmwFhR3Cy80X6mBGzLKm2e7VEY632gWkUOZ3yrv6uKROZWmQ1a9UJNTyuFYlo0jeif/6N2RV26xi4G8req9JciXOVgyZZcVx1oZzpTxhBz6zblZT3ut8cyndyoRFq0oZ2VOW92xwg5t+bfUzYt/4ZJ4UQAAAHjabZT1k1xVGAW3F0lwd3eHefe7z/AQ2ODuHiCQQFiChBAsuLu7u1twJ7i7u1vxJ0Bgen5jqra6Xu27fWdPnbN9/X3/ff6e3Jf6/u/z19Qf+vrpZxqmZTqmZwhDmYEZmYmZmYVZmY3ZmYM5mYu5mYd5mY/5WYAFWYiFWYRFWYzFWYIlWYqlWYZlWY7lWYEVWYmVWYVVWY0OBYkgU1JR09CyOmuwJmuxNuuwLsNYj+GszwYMMIIN2YiN2YRN2YzN2YIt2Yqt2YZt2Y7t2YEd2Ymd2YVd2Y3d2YM9Gcle7M0+jGJf9mM0Y9ifAxjLgQxyEOM4mEM4lMMYz+FM4AgmciRHcTTHcCyTOI7jOYETOYmTOYVTOY3TOYMzOYuzOYdzOY/zuYALuYiLuYRLuYzLuYIruYqruYZruY7ruYEbuYmbuYVbuY3buYM7uYu7uYd7uY/7eYAHeYjJPMwjPMpjPM4TPMlTPM0zPMtzPM8LTOFFXuJlXuFVXuN13uBN3uJt3uFd3uN9PuBDPuJjPuFTPuNzvuBLvuJrvuFbvuN7fuBHfuJnfuFXfuN3/uDPIeMHx6ROpyMLmWTILEtZyVo2spXDukwDXZZdlgPD/+VA0b1vKguZZMgsS1nJWjay7bLQV+gr9BX6Cj2FnkJPoafQk/QkPUlP0pP0JD1JT9KT9ISe8Hx4Pvy7Qk/oCc+H57Pns98j68l6suez92fPl/6+9J7S90rvKX2/7L3vfZX3Vd5X6an0VHoqPZWeSk+lp/Z87fet9dR6aj21nlpPrafW0/h9Gn2NvkZfo6/p+pJ9SvYp2aNkj1Kn914la9nI7r3JHiV7lOxRskep0Gefkn1K9inZp2Sfkn1K9inZp2SfUtJnr5K9SvYq2atkr5K9SqHPfiX7lexXsl/JfqXQZ8+SPUv2LNmvML/o9J5DZlnKStaykV1vmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGO41+jl6V4j63O3kfW533C/kbu+7HPuPZcdWcgkQ2ZZykrWUo87z5Xn3Xl259mdZ3ee3Xl259md51qPe8/uPbv37N6ze8/uPbv37N6ze8/uPbv37N6ze8/uPbv33Ohr9DX6Gn2tvlZfq6/V1+pr9bX6Wn2tvrbrK/3/UrqP0n2U7qN0H6W7KDv10MFRE0aMnThu9D9zrnmnAAFTPx7UAAA=) format('woff'),
+       src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAFk8AA4AAAAAkVwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABRAAAABwAAAAca/GHnkdERUYAAAFgAAAAHgAAACABIAAET1MvMgAAAYAAAABAAAAAYJAJaVBjbWFwAAABwAAAATMAAAKSUPpEamdhc3AAAAL0AAAACAAAAAj//wADZ2x5ZgAAAvwAAE2qAAB6bNqcwBtoZWFkAABQqAAAAC4AAAA2BqJsMGhoZWEAAFDYAAAAGgAAACQPogicaG10eAAAUPQAAAEhAAADzAu/zfNsb2NhAABSGAAAAeAAAAHox87m5m1heHAAAFP4AAAAHwAAACABRgC1bmFtZQAAVBgAAAFzAAADBkirZW9wb3N0AABVjAAAA6cAAAmJ0RPelXdlYmYAAFk0AAAABgAAAAZeiFO0AAAAAQAAAADMPaLPAAAAAM/Z1ckAAAAAz9oPBXjaY2BkYGDgA2IJBhBgYmAEwk9AzALmMQAADrABJQAAeNpjYGZvYZzAwMrAwirCsoGBgWEahGbaw2DEFAHkA6Wwg1DvcD8GBwWGr4LsF0B8IKkBpBiRlCgwMAIA9/UJS3ja3ZAxSwNBEIVnczFwub25CyoYsFgQi1QGCzHdGRGTQhEiaLRIVFCCCEklKYSAWAgWtv4L/4yNFgkKiuXszlZGziMRC3sbH8wbHjy+4gGAA+ObBZE4iJskiVFOi3bydyGCCZhRWbWgGvNDcmmS8jRHBSrSEpVoldaoQnU6oBZ16UoL7eq8LuiSjnTZuCZvCqZkqlzlHa5zk1vc5Wu+s2nr2lwcAyj4JgOFNE2K5hPyIi1TlJDXqUZNOqIO9TRoR4da6eKILExolCmaiCu8NSIfcpt7fGvBZmwYxwOn3+/fP04FucALskE6cPATh/iBFhkNvuMLPuMTPuA+7uE2bmIFy7jiX/oX/rnf8U/lmTyRx7IpG7Iua3LDe/NevcF4pb+RyMAPXqQSS/0uwL/XF+1xgaIAAAAAAf//AAJ42q29B3wUZfo4Pu/Mzsxu2mazLW032WxL2dRtIWUTIPTQQosFpCy9GEWaBFSMiEqJDRtiQ8QeFTkLx9lO145c1NNDD/XkOPVOvePrQZJ9/T3PO7vJJuJ97/v//Akz7zvvzLzz1qc/z3IiB//Iaf4wJ3ASp+FSOC3HVepsOkFv05t1xJZMdHpyuucR+ljkEbqTTH8k8gh/ONpEbuB+pt0/Exr9kPuZeCjP/cwRLuFfJcfxXJiLyi9IPVCnn+M0JBgiJrOVmK1CIKghsmTIIyaDnMbLEpysfIgEA8EQHwxUQXlVUDwQrd+dtf6WmtIHppXUzW5ZWRN9KFr/lMWyzGLJGbXYNMLum1Ihj11yySW+Am9qsy/XMg1uTbMIm/lXd+em2l3WrWWZubZUkhJ9iH/1KXZ3uiUnMDa90u675JIlY+WKyb6CJt2qkTmsTo4QDxeRGmU1lwFjYqsyGXUGqYQQnb3A5df5AuS00NGydm1LhKZEIJXVa1uiTS1raQo5vbaFP9yyFrotcP+GOj6RPoKxTGP1mGUNcWuI3ysSGFY8pMY7lkU3RDcs438knZHoAb61d4qQT9tUm+9Yxl/Lymlb5M7ow9FH+RlUS07TFKg3wu2WV8g1XCbn4uqgXlO6lqQRN2kgAZ/bVaAlxBWAfL6GXUsykQxmU0AmJklLpHy3K72BhIiZlVZJ/9i8+Y6WL5cRqbm5oaHh6YaJ9AnLsJbbryAL+77lTXl5Ba150W8xKSN7rXiD7rlCeYXOb2xseFo6jCW3twyzEnFiM1TQ2NhMn1j2Zcsdm3tnQQXn5+Xz1ug3LH2D3MNubN5MFm2GVyx0XsPTjQ0cp4L1EYY+reD0XA5XhGuE6HyuEuK2yfYCCUbf5LVVBbgqk0EqcPlEm46lAW+VWWeDAe2/FA21RQ9dQ9uueaiotrZIOFVUG208etNNR28SDpHTkNy0xJxDu2FMlbzQwR8uqo1EaouiTfAC/wwWH1X1nlyC74jkLJWX0vvZBcf3rwkBZpTD6RNtRpvOy7cKp3oPCvl9mRFyWjT0fBeOiAac/2+4k9JfpFOcGvrkwFXvJgFc9WKQyGnEbpOlArfL1wA9DWiUOzIR8+jhF0lT9oUud0bf6xcI16yr+nYebW/3tHs8nvZ6QSJNWXgvmx6WcpVH9W7XBW+39W2cXjUCHirZ5GknHXNP031wKwNuZdMXYf9FuNelqNTHGTkbtF1SuQmOWJC4MoIBh1nDmyTcaGz9wG6UOhbQf1we/Wr8sVvG89t9vgVziGot/TPJJtai6p491ukWq9Uy3WoRfl7g80UvG3/LsXG89XKSsWBOtYf+mZ4keWt+juZZLLEHOYF4iEdWS/tg/5dwY5TZtdsGZpZ4cWpLiBEnsp7YcTZrcWBg68Wv/HhliT/Jptwvq2uLer7DuRYNRbV9mWHMhi3Flv4MOX2Osk5VF+Z7p+CkW2pbancbLRbjbsjwLszR+xPLop9ijoFHrpO7Xx4tt8KMcgSm0SXh1jPLMJwqGEriDpoCuLtUhkN8+28mvTJqQpPe95sf6akA/TDwlp+Yf4TCpgmj9NL9h6LXHPLpR00Y9fLkQz/SvwXeCpBSeOCfrLDpFVhvBlhvh2G9ZXIV8O2CMlU5cYUEbxWskzRRcEJqIWkqe0EZXw6DEyJelenCqQFPlk4QJKmkYVFo8bayNKLSZZb4N5P0y/6wSet/cN+XCxd98cSNbvdlH1yu8rrqx42r1+uDyxdMKF37yGw5a8zwKcPoXw9tPbbyrKh1WzPNtoKU5LNt721RYHhYVkN73Fw59N4uydBvSTba/C637A663HadNxB0B82BoN9mNJmDZtlk9nJVAZ+rQDLI6k+zg3ceu7N1Me1e3Hpn953BzE8/MQ+DkhkriIeVDDN/0ld1pqvrTJeQv3wm3IFHPs0Mwp3WxaRo4WwoCeTESmYvpMO78FnWrohcIE8FGAuzwpkyAIuo3IIo2NzK8s6oCvhZG6SGl0aNmttG39z2Iv1wN+0OCzljKlfPJXz5qkmTVk2Sy16ilP48t83fSJ/No9sjArmBNKyeOyp6YlJ1EJ7Ab5FCeQWsYx3uaFKlMstlsD4l2ash3kCGQ1/gcAetsEYDQbuG2NME4dSdRDf/0dALy+7+seAUvZ/efzTzFVL6+F30h/5SMofMOZqx8dD30r7Nba+2zH3tVtpGOg+QjL09HbEC0knbNn9272wOYWUE+qvspSzYzUW/3E1cvsosqfId7oCK9dtURQBS+eGP7ZdtbL+sh/0SJC3Et3EjfYc+Qd/ZuJF/cO2+tWv3wfr19GwjHiEfQRs+3JcJZ2Hc3p0798JxAh9aGz0QDoehPalcBPb2ClgXWoDeZpiDPFghJbBGglwt1wC7fcI59rtNZ9NDk7yxIw7Zg9BOJ9wbdA33VQnX8grog4P14XhRbY+DgVziUf73riy2wA6P4IDxrYgw+6IJJYcHP0E6EWzEQIjqEyjwRNg/mmJhT4XDgNM98TzciGWh34gPwtI+RiNYB1MJthiV4A7CxoBdAlsBKIZTMYqBdkNG2NfTE47/R/qh70ScfhDyW9b2PZFwG3EJB3N+FL4lwyjnIS7R2/VASzjY7AZ8gtNkdtkLVLLLYS+QA0HhVNRUFqm4RTglnOob3lILUCzMl7Zl+ooO05dnz6YvHy70Z7YJp0hx7yHVmlocizDrWvT3f771Wfn5PXuel5+9VcF58kh5LVCDOqRggEhDxGcD+g3RmSzdscNioS29B1UlB63Ton/ls3ZGT42RW3cAjUWn9g0Tjx+0kL6b+Myd0b92c0BXwj/ox1FYKXauFXbuMq4NitL5MuLIV6URPj3DSmDlhgisYVNGOo/L2AWlAUYzumTJXuAOOLyw8VyS0QAUpMlsAqQBNE+IIOBlT7gAUEqmPKLXkJDKDfd5DXHxfh/R4+vy0YXP/0Tfpy/Q9396fiHkSSUZTSp/er73dbKKTPxx584f6TP0JvoM5kg9fX+pIU1vvGq6Tb+KzH/vTmJe4ZttNmWLQlVDfj790ehSqw1ag2HLdPtSu8MA2elt5DkiCmqTRk6a82HPcbL5rf8Rir9es2nxYmGU8qmFQ5ogzhr00YmsIb1Fgl/Ne8tJEtn/yqoF8oTxluGFRWpx1ta6Ey0t/D+IWiXwQR9JlniB+INETY9Gc/nn5ayWliuHPfKHP9Htwk29pxaQa799hr4d3VVs5cTYml0BK0rmktmO5XAvEoDYgw6PuL5nm6q57wTQNezgW6MH5BVnzojrYU90DxwAE2eQTlmU04C2KIHafO4ywIsZQXeayoyQMBhw/rJImDm26vFxWe/d98D8Z/eurErP/uqR2+bNF548Vyn/0ZYLG1zpu8jwqX8p33rw3bNX/qGvtXX3uQpxeYn9tKQKKK8ULh37qAd620YAkLADOqghNkBm0QO9U4hH1dU7RdUVPRA9IOQjxJBX9E6JHhCPQwfbEABgSk5j3XwCnepCHFggWQa4Ai8DAf1wQEdi5armlqnX0W7kFFr41pa1eCAk6A5DKq7fOf452k08a1vIaSynbXCkADDoL4Mtw3AcflcD8FYHI53FWbh87Bd+zQkfEQWv3mYXvCR+wDbV8ECwFtWeOVNLno+EAUyHI2Ggh+InBPKnlXmtLTr7Ei+FimrD+NmBA+jaU32ZQgdto22M/lH6H0YYRJwBIMegq/mudEaJi7o07LJy4QvwL6omFda+Sz9/990bx03sa8+IdNzIstXSnojUUBLp/Qdck4J37fzqSF/HlY+xvFBb6E/gB7SMIxge76lBsseBK/SPi2M3X0j29t+rsqryYN9XWXnzF1Kab9w439l/wln8d882/rCC4O4nYpLRUlbTUqHgtqKJNT57liSp0qsbl7QtHulNllfEXvNhFWdfwu0g9DDER7vV2S1TVsyeM7KY4cUi/rBnzIwZY0ymlKLFk4dDiTG+ViIML+oZtTik/V7Ac1x+IN2VL6WLx4nLEwp5zr6DZ+ICarmT3kSav/mGHvxGagx5eheUNjWVqu72hCI9332j3MBvSPCN3f18kx32nxdwLgew08ob0niAnWW8L8RnxGgw1ZA0jmWlWCrkkDtJzZtX+nxXvklfp4vo60pebm9tbW/lsxOTqMSS3zHcIq8YufrhF7584eHVI+OZqL2VPZDwP7qFJW21+A7w2J3kNMOfyQo3Ff+T9iGORFwIUMgQzzHeV+HBlHfM+JbdjywYMGH+oNFutPvtfi/QE9I+2Fx97apmQNmAtMOiAfB6uMchdETYdSTCxo4DuuUo0FEDsBDq1MWhIWTcfkY2MYgoHz1TocA/4DJot6zGDXLmjLQP1sUpJBgYDmW0QxurX4T6M6H+zkRYm1i7c0jNuNMAJDXxh6HaziHVKpX+r3W6h9Qpq6G10SZZ/atVwjpNrFOpDU5Yg3i8LxNfg/HvVPY/koTienE9vqXh8QoA5Xq6kq7mCH8Y7h1XdSn3xONYimCVb43dM8TfEw1YCuTZzWQHu3dYPA4sM7sHJBqU4vPRA//xnqzQwXINjEEeoze9jOJk+Exni3GLSmq0GZFMqie47MWEPJsHnR3OygE70XP2JeKBhUo64dTXrhB8/GElJTganRG+Ff9LjT3bAB2GWltDYXbuQT5x8KlntdDR1x5GQVn8wHGE3i+QnOIjbBWaiZ0EzeI9W6N/3UqPbf1WfGRO1Exu3IR8+x+5P0pnpDMKFgN+Y4Am8vsyHIBjhFP3koJj7e3H6Of0Jfr5sfZuspTcFX1BOjNQ1H6MFNz7IVl6rHeFoKZXcEweEGG8nJbxTENpLR5IS1lDzBrCCJbCj6644iP6RyBX/og54Xe49mGLAU5DJBFRuPvER0ghe63Pi7cigx8fhEc12C8NEYkA3yJOoheJ3inqiVM4RbujB8jdl+BCaSN7ogdo9zfkA/rKLOqhnln0FfKBvCJ6YAKtii7FWvnbyHsTyHpaUkP3RKPffAMkUbiGS8BZ+C32JaAKWf3Ew7fScBvi/UvoAr71l9VhO7GcrT/cezZSRAhQRZkIkaCFKbCSYU7ZeCJvvIJLU/hCUzqjNHEhhog+xn8aDWYUFpiQOyQm8bWtR45stTmXAY59QXPwmtlXX/3C1Tn0iP2aDEHOf8pKmmAH/46ePqJe1vuVePzGu6J/6rhwdkfH7EAlPPRahmojPIJAkBwgB6RCqYjBUUXEGNSgfE//J/oIveU9soI+8imZRVa8S2/h175HVtKH2eV79BYy81P6MPe/rgcuP0TSy0h+Gkk3nWtBkJEk/eTWrSfpD3A+50LoXb71ZP8zwM+QzpgszQx7txTa7R2MHZnsJ99kFHRs4HTEHSKxMTSZZdh0/VxpURjxYQTwMvE43OWwZ8vdDlVzTKJXhPI94tn/zTf7cREy+qo72vRxxjgPbljPuIyPB9OMSFc5uSZu4uA21ZNEGg8hTD/tEZK8MM1AbeRhFqkOQEvsNaPU+FpJfX1Jz+mSepYRU0rqe75TNfceJKcZKiT5vNqSHxg2saivvbrFZSKECKkZNndtQfmEolyRfylcX9J3pdSo1FFf8ppSR31J73RVM40wvEq7kxxLLlo9bRjS6NCpvDyVtshVZjMjIRKtgNV6ZUk9MKyaBJrKzKgFN4OZyKNzQeDJ/Qk8ekaMIkDem/8v8ozORCISzhFGEojrew/++B9z4dqigbekRkYV1CJa+k+5xLka6AfnHCoBibcNpoZPyCuULn4UP3229xzNSuyKJCrfRXTVd2Igz3EKT47tOAr8v5HLHEzDIBKFdQALxYwfBfK5u+8EyhsA6BwGOhxl0ICESaeQj1lMGdHXxu5Fm4Dawbscp8jGFZ45Cb6UyeUi3wEL0V/AGe2a+EdFlqDohD/86q7bT9EfniaSNJ2mANLvEPIBkgIgpilAy58Sj193xzH6t8/o4/xXPdtoinAK6KJoE7AjgFV/5Xsa+CRnN1aZSKx3epYISK7VvkoaifQ0/eHU7bt6irA2rJUhhTB+jT5Opn1GzMfuIHJfO4JOVRecYRz62uNjqWJjeRTmNJnpSoCAJkYFjePZadOgAEu0Efko7Ybau5E/7T3JH6b384cRCdP7YczmqJojyKxGkF+NkM7o2nAPI1tifcK5QppJqT+G84F2hG7YdYJGgImC91gNVfgmzMop2oYUnvJBxAv4MWCMs1GSh3I7hs4Bx0S4Y3IStN/M9DGyEyC+24V/dh3MURWKKaQXJ0+m3wSDvvnzNnXswK6/88KhbdcLn79Al7ywpmPHzi2b5s/zB+Fbr5BX6EeTJ16/Tan7dahbHas7EIQ/L9ZZIEv4B0hFdKUTIzx96IV3kDLa0dE+f74vGKTfTBY+hw9MnEyKaYiGiCfonzd/05adOzrWvEBuZzwKDH9EXA9wOJ2tYIMk61CYoitDaXu+ScWES64Ccf3DV4erqq5+GGFt9ADbCOL66z8qiN7pCefmCmUFH10PMDaLbRC2N5Q9qu6XUNpwEyrQnYnzEY4CdUZs8d3piKV8q9ARB+4RzBBPUS2wAW197W0M3gnHFTbkMLYClhtLcP22JbAaMd4oMkQuaT83H8kkkaiSi6WDQUDPNhQtCvkoKoBksAgVt1dfu5AfVhjnNiWN0R1IFYnHGfdnRdUG+6YvEMQT8MghhmEM4rvXHHr3xr7MG9/t2iLdtKSyrOp3l+7/Rvg67fVrkV++5jVddu6Sm/QL1n+zv0IZW3It0CR/AIhuRokLl8+ZJTi5A6IPl1wafAppDC7fESwjKP4CDt3vC6YR2cS/wjeTv1x+Oc2NHqS5l18u/I+vUJdf2dTsD0ygNnKK3LV01A97Vv6dPv33lXt+GLVU/AM9duYMPUbKzpxRe5pSeF41zutvbo7e9s/DGx8tWnPPQ3//+0P3rCl6dONhBY8O0BF6xo02/lL264ZNJ7Lpt+u8RjwGZoNj/LApXzBbFV0QDtfgEQ/jFuwNqrLzPGH458nrPZnn8QityCvD8tw/MdgExEBTEHcsk+3G3oQnNwEFSrs3weN5+HqUj7HY/OHVmeF6JA7qw5lsXxADIdJh6Qjn4apxR2fIiqgx/ifDYErKBo/9SQ63Kz0YcKiEQLrblS9L6WZTvurIDa6lQpa6oDykqrdV2h1mk0oYUVFZ5fN5K20evjQ/M9NwJ719y733LiM5JMe+aNFi+vmixYsXkQKp7Aa64R7BJOXkl6hKbZVINZZWjBAEk9Flr7TVCQ1l+VbDNN9V95E37102YUI0ezGxLYZ/9M+LFyPMQwAs7Uvgb/sxlBBPO5B7ix6IKImqGcEHHoq4j7FZsI+A14F1vH4wn6xwTl4dIgKg1uz9ksPTwqme7yIAg5EV7lZqgU0NIDkcrxQP0olbBRC61K9X1QJczmP4vESBGAr75gUSusok2spgTIgtvnUTuTZVFwKJnu8QWOh2HdxFryKe9BnzZ9C5SAj2tSMJCNgU/wOdURQG6nHmpZfOLBk2jD4cIyIHM2jq/nWMfU6PydtsQBlySEVAs5BHVpTOZj9sYidDVAOHrEaREYoV+9qJBxVVJ1DuhzglfuBN6Dc8Z0ByoLsdFV+RyNoWFDcCxYPCRy5Om7N5lBS8hUwgMvuGAQLdIZzaRYQXL4Z5O3zxizRKv6TRFy+++EUiCKeUkl0w5k274qUAjuBpjtkSDPQzWeldfFxlNWsH/sdmItmKs8hoH+DdPeJxqRFwaS6OCjSnKqjgPD9S6m6XTdABiEPgY5e9VUaDLJUA10tef3/deq9v9YxFa1bT6IZtK33eOUt23/tHb9XyA8BOfxde8PTmCc05Gu3uyx6bNDkaJbZ82/gpo/903wUlCOkIeQfWtAq+i7yOnXhlW9BL7EGb+PqH9FR3KDo79BHJ/DDEPyCu72uHRdiB66uT7YNG1kM94zjsqE91oWTAgBol/tfyYYZOwgjiD58zKxoUkRaQTkMzTD4H385mc4dyWx/AksXccia3ks2AyGWgbIw2wW/3Bxle96Og3K4gdjPieTaAeKklRvYoDCzcV+4ZmcI8/gywmy630eTtnwZ4xox9aB11VWFZSgZPcrHBGx/zVqcZNUnpaXV2i0mXZcwpzTQaM80pqZKckly+gOzCp65yOhsmBQtz9AZjjaciL8+baTYYi3OsWTlVTVOKS7KzKguzzFcpA0A6F3udSRnF9F+RcPTx0aoKnz7bbM61wSEJKSnmgD45KTklU6tN16VWhmteDdNPyrKyC+syRLksL3NESoolX6tVy6njTTZbbWFmpsRrcnObwgCDHaRT+hTmzcAoiAElAs//UrHQXyY8W19yS8j45PU3LHvxlrE606s3Xjl9muAcKLwZCl/BQn7/JRP9trTLScaoV7173qbRbQc/njD+qksmBvKHFnK/Ak+HaE1wtzNBcYeSiscVKVv8+G/qgIV7QtWs6F4w/f9Sh7QPSJIOxJOxdGgd4i/q0CsQncQknraYPBGJXyR7UQMARzfqDHDKkXtRNKUIyRmRHZfHpXNWzsXVcKOAh27l5qA0BDBm0KWsa0aaBP2SsmCBKgkQr2AXvEGvXjdo7WLGLvv7l7dohx0CFYnxkhLCxFRShcOe7bJPumDmiOEFBds7WsfmF7sc55WWV1T2PbHkxLITi2u+PvbJwupqa+7wqtzc6sCmKTOaLHmW3Ho67YmAWaNVa8jWBY0F+fl5oSU0DS27wsiqSYeT1bqpbqdzTNNFt+7Nnp6kUQ8LtC2tq4sylcl+8nT0QJmnpc5uT1Fp7E7vJIfjzH59RkmZwbBoz/BSX3bWdrO5zJuZGX0BWKz8MHJgSB/F7GBENupGRhvKeqesKyI6t6hnVkVmp2AuIkFBDOr41k1f0Os2AYLr3ESv+6LvDb619+Amsu6LTbRN1bXpC7Juk7QP72zCWcDrvrNMvMteiz3IAQaL08KJODynH9vGZacNsVXAaGGUrQ8+zn3P5hfYelGuUeos7UMZaoScTvjfOaQYGN+UMC5xvEBNHGDHFIUDjvT/A4YVFjBiNcDMrf2l3UqKdNpp5F+AxjZx2YgRkDpgPIbOYBWqQoJfx7ZUZPvSZbdGsoYvuCdy34IR2bA7j0d/v+uuPdv5+uiz9es2zq4ZdsHl6+qjKGBQ9c9R//7SQycT/xg+HHTsi8SbhG0ip8W/MXyThFIkxFN6m9umF0uO0AWwAQ8vJ/eX0JdvBU4YRUGeO8nJAbsOmCMRcIUdbX40TFsZ194oFnFmKAom2MQRwZ6M+r4cAv9VHxEJeGv1q4wREzpqi+4M9E4J3hWnnXHkwuGjL0VQMRJGHUY4jNubMXS9RrSKavj7P0IxyyhhHBNEpACbnYKpogNNbKcWcH9pQjtjIjrnL6R5aCUkMF2NVze4kfw1dw1Q6XcFgSbqOwFLYKBtNcV4p7gYG1VcU1OsNPLv0auZKuN03C5P6oI14GY2ChZikIlUUM676okvSBCNoilkOUEYRJitaZV466r6+ujSuifqLoYMf1vdrJn1lOe3WCwfWUqKLdHNmJkhiRfXzeqeVRddWl+/imXr+d319b0ReHC69SMLPGedDg/iuOgYndHIdFO/vr9GxuxhGIjVMVAb300oLZZjeXFI+p/uSY1IZiNsRqqsLzMsnAqH0ToHUiC6+8/nKpPV4XCPIxxGrX6YGbucZplI/+lcZWgfy/DHKoaZFYCcxibZhqAbGCAbcEA6A8Br7ChwoQzUC6eOLAyPsq2cAnt9100jxj+4HwjVLx58cFzoFnoT3zp9lXVkeIF4cMWKd1+6NrTAG4ksvOaOQyT5rrvu3kPPPHv7lmWRSDAcuua37y1fgTR6OAGHodQIYYCVK1DwoYhaMLsfzW2dCajRHkthTbchegxHkBaPCKf62hHIMGUNoLp82i01hsOKPu9+en8c7CgbiPEtaqb1WPFr30cbOOLF79sTv+/tN7AAPIPgjtkhRVDHjswHgjsoxi2ASDvMvvUrDUA6vB+Pa2GN1TNLGoe9QCUBU2BSeascxI7jHozj0wLZnUBUAjYWYqIIVlIg7TtMjxzp5xJ2HSEj6Og9maYR9QZDbq63ta3x6pvWjx1jyZkeTNfenOPzlufm5OTMFYpJOxn54gDj8SJZWVJd7K4qyc12OI36YVeOr6mZN6K0tL7QbLLTt7PLq6qysyvKs3JiMgP+oPRH0cw1cZO487jZQCPDmoI2GxWi1h5D93672e62y/ag3Q/kgtkbow20xKsIxarMssutkBmw6IBJJ7LXjUvPLTmN3vgQQDVG0W03KsSGVFZYYCsc3Xr16FrNnIzgsAUf75i9uPYvNUtmz7569rILn35qdSiYo75KbXaEGmfNbkZKwzGtwq4hTvqJxl7aezJjsZFPVqXwaeTpde6sXKt1JL3ocf63wktL6vLzBFmWU6dnTx7Zll8+pay0p+ehh3rCZ8/2FDkm+uyaUMUYu9M1NTUludYzMjyxuJqMC9SLBSlFSbW1DwhafXmxPoOeIYTwB8yZVWU4VgpfqugpcgG6FHABbhhXx/A2WoFLsruBV4zABbdiA857UbXmJEGzHLP9NmsV0++gqAHUpNcQkRmBlzZ8+HDcBrx53/C8MrQB72lF2XGEGaczK6ATjeOvV0zAb/h21O1oAN4gnEVxARKWKCQX8qV/MIvwsrzh++IG4c0Pf9TguWMzwinFnojRj9E3Rn17g2IMfv34xjvYo5OVOmADdMJHY30mnQwfpwK9hNqZMuh1iBuNUDSg8/EuRz4seGN6XOavGiJR1MRshfsL4mm/Cme96kTXgNKK/zdDTPRRBYleoFxNIFPR9mMMu1J9qxQqagnS+SeS9UBcKfYA/avwISvfoSgM2H+aTt6IHkAR04yPE4tPxkWmcdsGBk90yInbgdYKAaceCOrSSBmPZJNnWvcnJ+iqad/9+ed3IuLxHgcKVnKJxcLn9J2wqwvy1ApM6GT8boynJ8xEQjkUu674ITVGmEQsEvs+3yrtYzp6EXG6DpYGlkWQ3hW+JjeziUNVPzzbSQjDdUjro76QR8WcVQSAHwiGxCDKAHhVvikdjYNUN8DAfnff9ktUbkOhxZl+jcVyTbrTUmhwqy7Zfl/0RZL71lv0L2/J6vvodw/sPDtfsGU4LcXGJ+bNe8JYbHFm2IT5Z3c+QAwX4VNvkdx+uYX0EZcC3CFaX+oT9INx5RVx6kSnqHOKetGwpm7cTUdvGlcXZLw7GUHG0szoHmZa8ujj/BN8i23N6CU33bRk9BobuZRx8HT9NX3tb7+NMoQdUdcAf4P4HWE9yoNKYCUiN8+0CEyCDC2w+VxYRCC1o4WBXefop4yIv6BMhHudESB0Ir1T0LyLdK7p+zEs5EM6DW1Aw8Kt+9egPrNz4cPrV61a//DCmLa5m3aj4kTVtbZl2hrYIUiSeaatWRudidkwvg13or0Rm7+x0W+jKXEZOKypZKYtQ5sxF7OQsBvtSIz5mZ1YXBYCFJoO9RVoToI9OA2Uc6RnWyQiGnqnCB8x66dw78EwtqYvkz8MWWlf78FIRFG8AO4knczAKloF/UFcBnRJCssqcmvcx43MJi8fVk1MLMzoWFhuRB4iKBbya4toSlFtvZucLuJvZnxNbVHfCebakV9UKz6Dov/iGsTgMDBoloG3ogfgzGwMyGl5BfAGMe52cOXAahEcSfTbUXx2FPHkYcU6j+1V0kxDMO4hlMHFcL2WefIMqcsJbV+xtqXnO3xTNLSs7T2ItseKxW9fJpwPIchT9EQR6SNYQ05mJaDApaBTsse8WZwuZq+CXIxbNBlkMSA+wgSDGjr+vA7ItW+5gBzSoEARcnS8RkMOnSfks+sC+8kFkFlw0l7AXoFMExQpMsQ3uDfZ2s1jvgSo57ER5VuAXM34aRIjBYJGk6AjJkX6HnRjS4is9hb15JD9RtgZYmfpCCCxF9W2hrJyxaId9DdYSh4orMjMoS9J9144QdfzBX+f040Kdp2hoUrDX+UZH2pN0iTrekaozo8+o9ySx1qSqKDo5hTeFGEJwnbOmbibkWoHvBYYKIgD+qEAX1aT0gCsvwYvXeBrDIXNH6Wt2b/GX0o/kswMzPbeoLAcHYoyWfVOzgUBnKLaeZnRVa6m6jsKnNPWrJkWOD8n+r14nAHo6BUs+VGxWcM1rIF18AbTm+OEmtJIghZAoapitBWQITpbINj/F9cdxNGO6EInuP6/YMKj/kAQ3kUdQ/wv/gVppt28ZIPdWODIcxYWF59/YUlRodNmKzBl6khKMvWSJI1QXOmtaxg+ZvRtt40eM7yhzltJDzG/pmgxvHt5gfKuo2LWRRUOfDcvK1sL75J36U+8HHu5ceJtt01sZC+L230bRpt9eY4CY1a6XjboNRnpWSZbgc1RyPPWYuJJV4UqvYUlOdbU/PxUa05Jobcyeog5XT3iu3x0ZuzN9CS9Pikd38xzFNnxTdrNp8VezUnPz0/PYa+yvabg+xTUMwBgSFPJGYAPCTC+qLZQyTbgDlNmXnPnldeFTGQ+aUJTv0iPQ3iS/uMhekzVBQChhE9zNawYT1JJhZFUAYy6N3pU1VxxO+7BZUQnL5KOoGMiUEyw0pOIpLLnO03efKYwA9KwjNTD3KAWNGhSmWM7IxCU5IC8aMIKMrPrNH3kVXqURisKuZ8j6150uK3llVc8NGXmhNaq68l1XyR9fPu9KzYvL1m3XMpom6TNv5l+Qv95tP1B8W5+58VyavZbHaoSwXvfnPD0h99OLnXf9vFl2Q0do5OZ3pBcH9OH5KGUGoGMbMgwVzFIw+COXxfLAY49+MRG8u0XfJLAa2a2t8+MnrDyIZZ5RVZvnNV3mSR8QH+WSPsTG92kfOMT7e/NUmwXFPz5PfAtOYgRnDZfEuE8xK6rSiHZRLT5eM4BFyqzKUPsx14msZv4Vr8PfbmPzvvkGLmehL6/OnqC+A7Qr+mGj3aT9OXLLon+rXXTpq5N7ZGPyO3kPGJ/5xJ67Kpv6Rt04/t/IFcR84P0WNuSJfSfN10+a+bGjTNnXR7Tnyu41ZFoKavzAq3PXL9czNIaqPZ+3wqbuMvp9TrpkqN531eNvnLE+p0Pf/BBlHf6AAx4nT1tDh+/4sc7a2v/qHno9qd/jN7ic4idTq9ie8dFxNvgWwbst86rt7Fv6GLf0HmFScT5P056srbltovaH3rjp58i/Kck99CoUdzPyb9/5hj9C44f4BZFRqRhnhGKvBR2PNevx6bd4vG+9ghNEdTMqQkZur5MRJXtCsQ+w0lEA3P9uvQsYMRc4KWrubFcK65Kq+CtCvFMGyCJkpVUhYgb9V+Y98YvBH2APWDWM48jAhlEJG7BhatVclaZZAEtst36AICOgGCXRUfF+KKq1gpzavolI5vaaEtqwXmXnleQmjb30rnCErioHqZcXTRukzN06Nr3Xxm2WbepecKm6JPLh7f5Rw5fql1esa+ryJUsVHY9WLlcu3T4SP/FI1emal1SRuEFsyeUj122vmLsBRfcH9y2aNG2YP2kSfX9ud5m8sTmp+d/+hxt8Tc1CRU3d9Nr8oaVkZV7npOSdc/toTeXDcsjGz6+KUMrsTUxkTskr5OWM1tzM0EPMw2KdQjzW3Q6zFaNWfpmB31w5/TAPOqN/tMyzbreYlGN+yvtInt+yqpye3N9+mByjSC27qSP7my5alF0JS22WDaga/CJG4VNFyXlmEtM1fqRqRMEgDu3k2rpFukxrpirYRr7NAHAckgVRCLcbCU8wmNVGc5KSNYzeB2H+WaTMMvAZzpyky0uc/P4C5qnZLkvWDA7z5ZeetGTl6yh0Z8+6/JajOmeMbMWr7rs4iescy9omSuQlOz5F06fI/PSXtlaVBH0V5t1mVUTx4xMM6WnTxo59jiN9p0aM74xc/Zjq0fsvnH3tVeEW4pTo4ubUlLGzlxYkDc83zJtzsR0RUdIdjHaCiURHInJlvQ2NBSxkU6FqQJGDo0p0eARCLveyW+ivIimIBWpyO9JCasjFeCujSsHznIks4MbxGURhWaAJS7250jA0UDSCK84tA6UO8+RG8psHVZYIZqipOQ1Jxnd2Wmd/VtnQ1dDiJqUYr51cEpKPiOZ95MixnJ9fD89JbQxKWFNzd5YSj9yPjlqVOPL9C5nQ0Poqfmx4uIhqSLPVGw3M5ifLuqevcykHF0qq5A2shIjSm58KHdFwqSEAAFEAFhAmbQvfPal8NaT25ZedNHSbSe39k6JLOLbu4RTXe38ItodBkK/9yBserhVXAyPRSL7tnXRw5H2rm37ImT/+R2RSAcnkgA3RbpT1jH7Sye0oZL5i+cB294AK7+cyG6ZFCh4CMfRXRAnFEXZrQ96iTkouO3kSCDw5saTJze+GQhE2k9+vYkseOibb/c/+M03D7U/+eSZp7qIcOXR6Pae3rc3fdi7vUd85+TX7fDom+1fn2x/MxiIRJO+eQgefnD/t+EnNzEactWJ8ujzx3njF97ob49zsLYS9cVJcK0DKBqXdLoAgnnQN1QfsyEXgyxxuoE+NrtlZjRWBCWick8IukWzTktsEUX0BgyFdTftRiccyJDTu3f37CaeSLRJamSysUyaotqMbpu7d5M57J5iLo9Hz25FRg1pN/Hs3l21GxkUvMMEmLt307bd8I94enYrcrOYH1Tc/tQ4xDsDJz/fSkSjjeE+4k+gSI3i8X7CvkWxa402Mc6HZAZGQDIiAPsrkbXA2WdzDwW9j3+SuaAO6cy6BZmfMF4acMBw5tuHe5fxkV4djBEwYjpxw+CNCkOhCGJaI7iPcT9ziXVISh3KuzFVPkozUSmB4peI6qk38SUFDETigEHBwUzv0ci825mBiBkagi7tZ1/iD8M0hEVDX6ZoiCA3N2DjhXaYtdwkJntUgATKHvMdAeJwBzhnGm8yS2UqhJHwZ1XJvBgoE90hgVhVaYKWlKkAhK7YFfd+27Ur7v3WN5JufWQ8uYFwtrKMYp+9qdLvqjC0llU9HRo779pJxSlEom18TmX9iNrK5CSda4SwJa/cmi6rRK1aLRtDtdWlSW6hktW1a1D9Pe4jP5Dq5ODOPXd4RZOr2CrqRk1trTak6sp940ZV0Y8em7l1ekORrdBc7B1bR96qWDDzwtFTvSNyMjO959VVNxZcN9i/xxanWgb80mNmy0reXlBGYDlpeL6Q/yuzNumXAJVsPLphw1HhbeZ2poYCxZk9wT29iJ++4ehPRzf0TkGJGPvuKu5tWZRFgBNVDE9lIP3qQFFnkCGqkFAGeF82E8EcIg4VY+z89hxCnEGXOOPG9y403XKGnqBHbrz+9ap9Bfesvvin47+9NGPs3Z9DOuww1bmfHn+W2MhwetyiIvPmkXIa4lOlrvFn6J/p7+jn7842jR/zlx2L179WN0w3Zi+8deRSSC+eR9/hR18A1Zv7DliKVSkC+YLm0Ze7eRlgrAbW1stAL6GvRh03HscLCZcMQK5eG4pt4VIWbSFVLbDFZgIbsSoQ1AcYkctuanl8AlAMUR5CO+tOesRaotrzvEM9zMarRsv6WvpsbqlMXoeFIekNOakfGqu00fsqJ0rOwqD6gFiYQ3/rzqHbzJ6kpDF0TFah6p5UnepDOp7XZGc5tF8bCoxaQTxe7uzL4k885Sg4ah5VYN2mSivINlVl9W6Z4HELzXbXzVqXRZu2M8ccnd9wobCc3TZaLMlcoo+8CrgX3EUaEneAVzUjCIs2qV5hchQEXQiiYhIT5tsTs7vNACpwBnch2qzCnuJgT3G80YCOsd4qB+c8pyOs6j+5wYohwcfcYOUM4uJ0viBMB3s/Qz56Dz1Nd9JldAc9vZf5wj7wNrmUpPR+Qh9dk5luyrzxQqdxA7nhr4+R4OU1yzXqzCS7KjjabqcfZBbBFTzROcd9mdudaUrPvHCzkJaSbJI1S//x1r97X/mSfj+WTCH/IPw1129YkfuwYCG7se572DfffoA5v+4lKU7hZrVQ7SfJ5IU/Xt6mmdGS4c4uT6+R5u4e0XPhhcIoolap+FAtSZEEgdSFiJo+WpZvvWDypqaXT/0Pvegy/tZo80pyiEivPdC3mNwbHV1qm0b+rthgxv2mZ5zLxwD1Mf9VGRqh+Qd5eTLbG8zJauaLQBn9gc6iv3qFzpzsmnSya5T9AflTTD8qrq0tJsXFGIjk168Aiyg5pRTwi7JmwkwuZeaygW6dzM1SvFJlwSZ4UYaQ6LVg14tDjV/90C2kbQBuAKeAEUhg2wE34QrxDUBvuEMkKLvcXlhYLlXzbWWzss+nX3z/8HiSgx6qCm6jDW+FyauYi2E8wU1fvYy+eqVmhL/x2nxRTCah51qmHW4gKkkSeNv24d7hmv9pzvoge7xKEA3uPJIWbYqg16tSBzDvzpcTkSdNWfHJJytGbK/OdmRnjzUNr6oanuZ22ZKTndnV24e/PHpj+yiBR3x0I9cpN8iNcXsWDTFJMhH1XDBgQl8m3k3ECJlURJx9rmjLLuHhCvsW+kl0ynX8I1TLd3VEJ8sG+pRnvavPsYvvEh6rdKro5ujE6/jn+3bwz8Bt/MZT3Co5T4wAlrWg7pNj8jPkHLVE0TAkXnL5nN7NTHPlDH7p/jW5Y8OemUZjLv/uQJ5ew5eR18/vaKZXUw+9urnjfDGyZpqvwpAkihU+JBP68705pImoyz6nP5D0z8voGaRj0NbguHi8X9afaEl0HK39lQOw9oD1j8JvKzSvXqF248sEchLKNKXGSM93KG5EoS7DSM1ovdHVrupq7+rZhiqLAZ8nHYwF0zIMrkUfR4Im4E1ZYBysEFOo8MeYP50nklAnWvCj41zvQTgn6ERg/1o4L+I6ldeQRNJ4IBtk3g8cclAP2MAPNITOZhXyiHAqpfTmO0+2TWy/9dZ2t0uTN/fCzStXTaps++qBq20F5DSD1YZRv7nt1lyaktu+7criYlmtzhnlLzlBL6V/P3nDXL1epQ1N6LjtT/8iI55CD5q+06qMSYteaFNpS0sbcqNNSlUx3etpad+5xx7tpvo1LUPGPqFP5+rRf+zD/9ZaVv9Zclb8WPwY26Th+x3CxI/pXjJ/B91L79lJ5rETmS+Oh+u9O+LX83bSe8g8hRdUZPUCUMeVAD1RLzsvFisgJqRsAFbQz1jgmMki/OUlSjSrGJ3vZjct/ebTqHjF6F6otlWcJOxiTF/PdPZqNKnpfV6flpaUqhJFicjJKQV2ryUnW6tLSuIJz/MqQF/JqSlavb5C+ImmRE9eX+/351oM2ZYid8GIoK9qWEVVIDfdwaeq8/J9/hpha9yABb03VV20Njk1PSM7OdWYyUuktLQEsHdKhiEzMyfDqUlOswoZeiAG1RoXqhymtebbfL7gJlEtJcmyLEmiJkkWklT8pqDPb7O9z2wiIiwUClDOA/wRjps/Nm4LuaVM1vR/GLu4DcP/ZfzIoDHss/y3Y1imDA99YtA4VnuHjiN/JB4ZAI2XgdMFbuTj/24oicQG6Tf/eTCXs4fQ8kcZ0IH9X8RNh9XndsUl5F7mUoMa7/4/ZiwQ+yPMCCguQI/fwTBJytCZZZ05qHMHoRb+UwHoCpPJaqvy1S9uGmUypQokSU5NNWZYsord5WVFxVlZmaaUNFkj3Fplkeusq4IzVrUtXHjJ+Ss8bSUNOWXDZ5Q/PfmhkYvmNz34wdS54np90F9dUeVwG821ddNnzNYnuWyOApjobJNeb7TkuhxOd64tet+Mq86qNLwOKCptSkqKWq/OTtInn906dbXfkv3QNbR7xQriueYhXz0bh0PAr+YArLUhHOTyVRlGAwKNNAL9jHko+lzuMpXfl6GHFYDkCR4AkYFsESaTKiLcVlxbZzRm2RWCxJ6lzhnt9+xu41vzS7KC5ZEyX1ZJvrziNkrv8HWsDlustmVFSsSsomW2ZPfqZdf67iB8T3jWLH9dWcBfXpfAM+7j1MxjizkNE1mNzEpYYb7bVM3MNOAwsJCKDzmzHV/PbCAV+CSuZzZG+Lx4HNlc9jQ3CFZC/U67DkGZTAbVGEFxPzPfj/nLkX49Nqsf3kioVAkJFI65YQ9uP4wbwkk3GVSl0MGsH5qARonVP7j98EZCpYiPyWn2+C/aD3gWPaqDZFCVgwfrl+2HNxIqTRiqBDk+850wn9NzN6Zr0qMY4Byeu3x5zLHynF679HV2U/EGifk8YsyEAX+BfovQWMSA+IF+9Mx/u/+MsQUSYv+gZ9B44HEuUaJVEGh0Ggb+KcMQQCESkyOkkHwHl5GehNeD+iUWyOggJDOpjKgEQYIckZEK8PrKgF10pyHvYwsAcfBrUXf4W+lmeu/Pu3dzP5O5ZAuZy0H+52gVOZ/U/mXr1r/Q39P99PeY4/dMG7v2ruCCLY/SOzY8+ug/H3uUlHtHzC+38MKVJmel31/pTP6su7tp1RiAlwKC1+lJuTXNk0cafzXakHf3z/TeX3y/KvGrpJa1xFma+9Km8CzTPUs2PBp+7J+PPrrh8kdpcq3+vAWz86zNm6aPcGSpBdLywQcqV+2EqVPHBnXpi/YtnFBgIDG79dgaNMO4l7PoezYlop6LKT4Yzcqi6on9Xnq+gP4X+RKmFGYwBSWhUC6OjjahKvceTWsoHGrV3AMXfSkJwosdCeHDflS08ytjz66EC+Y9YTFiFUYLulTEZMHdCWn8NrOSQVntu/JieSZw19lcGdo9ca6CWIDLIAmYEy98eoKqGIxSxUIdorhUJj6MlpeG5irQ84CqsbXdE33L4ynbWMIHPN97NpX0X5U0kPs9rZtK6JynPO2tHrgN595HCiordTqtZ8LEYfmhsRJtxdfbPR6C76/2wFXJJo+HL4b3N0W30zn4Ern/KajIw/s9+LXu0tXh1uzsvAV/DJy/6jzYF3uBjq6SvuSmcOdz87lLuau4HdwdqFs2oLbDkCbJZaJf6QTzHUQpDzBmis1APCpiLFUmSnkA5xVyJB7+zhSPFkYko5Vg94NAP8CEij4mgJElxZxBjCsa4drsxTw8A3np09aus60F+uxyV729TpM80TehrKCg9WxX66IV29QZHYv8Nzt1yLVheDU4MKtz3FG5qCNDva1iiaXvFlcIZ5ZsVqb3kJ7P1Yf1ubxeqw1riUavTafd6Vq9xUg8Rgu9H88WI+2G84YwZvEkvI0f9I24bFpzaaXJLqkrHFPPv7nVh00b2fDcV+X+q79uya2R1u5bW4XvVClnuJTqs1q+vtpf/tVzucMzyGV1hUUM8ilqfqrL1ufk6I2m5B4zoGMdcCdfKyxKLORbzAYE+Z1abiST06JYwBjw6mIRKS2K7K+eSPZ4GMtYWuA2xiSBiqYxLhIS8iPPXXbBSgwD1YJr31sZa1ClFwO2dbVH+PJYfB3AFaufnzmTdqMJDqGpuJU+zWAOshHlnPGpIlsIt3chJlIMFpgPUlzWncQZAQJUcrOY5YKv31HUOZBlli0xwxa0a0m8Qu/SWD8KoPX2WG/Zq2YrXxVCwRTHEiEINxFW+3VWdMwROsKFdTjg0DwlQ9tQ/YIH6RzIHbkXoIC6IL1ADem9R+7el39HR3vHHfkP7I2Km6+7zdm0cGyx5UX6W9pBf/uic8SmWfY7pH0Xrii8zONsqCuMZ6JHyRy0GqL3M9uhgXz9yuf8PyE4ISWE0A8x95P/uZWrnvQlNbpcw5O8T9LJ7lCSvnKEv5R2r3xu+fLnVhJPzbiJWUkhTs18DY4zX2kbjOJwbhQ3jpvITcWxZEBFxQLLOBMvFJt9ZQhxwzmHXJOgUXbCIcZSYbnD68vIkDPrylwzn57Jtw66jL4M88wmuwg1Yf15dHVD94joASUVd7mXzZ2RlZ1UMO+8Fe75EybMH3Ld+zPaTyXaUsXy/FUYMYlZeSsp8rmvAP5Ik42cgcvlClGuksYXlAGdBIfehIBGD4gX+RK3JABMcTOds2xSjSevVRw+dvTY4QryyrDPd//0xnzvmkW/eYkGZo+Z9saehdtm39wzcf7Enptnnddwu1jc99bc7Y2N2+cKVbOXqYhjx5Epi6z0yzKa8XD6RYemRT8Lz+yaudC4emrc3z4i3QNzwaQCwAVg/GM7kYAERhbLLGFwaUnW69D+N0RYyFQi6/RMohVwByTNeRPzG2vfnEnPLKX/nvFBfWP+pPOaJvAawz3LrTVvLnpGbxjbdbprrEH/zKL3Gxwr7zdo+HHiRWUHXjl/2mI1TSX/Slky6/xXDpQWCKHaq34KzXTTq/lA7qmOjr9s3/6Xjo5TudHfkStt8+rPbqlt4BPiq6RiPAWORQsBkikkAIEq652COxZt55YDX739jD9w9iXDmHcPC2foDWRNyZeZfTeXvWEja+iBQn4dv0NWL775Zq8PtYqGpsc6eh4jDpLp3EKe9NGai/LoKfpVCbmdzuOGxNnR/jLOzn+KsfOfgutg7C6hQ2pUNTOKEO1KO1kQveYI4ugu7lNmx1rG1XCjuQti3u9pPOpB/D4HgBIvYjHJhRJVVLLaZLsp5kMAu8ZtCjCzbZxDMSGqF8Nj7jIJcBWKvE3C3a2j61Y+umTzsSuI6rk0X0q9WZ0r3fbyxb9ZQF5b2DnNUHKl3zb5rdZFWm1nK55vVE1h4b/67n9sj6hKNWe4jL6U6uqrX39UaAp1LAitnh1s2Dj5yt+T+uElJUR4Zfuse+aFZ1kapl67oLjKmTvjDWHv6kvvF/g7L129f7gSRyxac8VyU1Z6Tq7ekuZQZ/A75oZ3sHGfQsbKV0rbOB2zt6xSZZgxQqwSK9YdcOgLyni3nZgyzHYlWqxZUgl9j5PSVzKPorn/qYIf7172QujR+UR36ZbvD23MAJBW+7ea/mL6g7RtL/3HATR9vPW1uS2vtm3ueWn2vZ9tJp0j6U8jY0Wwd6uIV9or3XcumagQk4muJNoCYu37c7T7Mv6M27L0++gHF/PFdCVftjz6gbSJ/mCfn9f3+WV8Gd9baBXoG9H3L+b9UR9fsSJ6VLEtBC5mBfPJVeLcAXBjVko+DWGWKrC2XcCFm8zkarH08OGePxwWWvj7jSkG45is6OvRN7LGGA0pRqnxmb5DzzwjjH+mbx9fpBtms8oGuplsARrGNkyX+B0tiz881FgUoQB0j0ECjMcM/D7wZgo40JCAvKI11HMtgnxxQ6j1aq2YmkSXka3ZBo1LQyd89CGdABlDNtlKlyWlitrCIN/GXxLkXUIHvtPXDmfhXa09M4lup8usxmReTda8+iq9Qc0nAzG1m1yWlGnXFpZTNTlTzvb7Slkjz4G22pS2yogooa1BGBPYg2U8IMs8InKQmE2yZm1L72QU9qqemrZmV3RfdLGcoknW2FKS+bXkq9wUR5ZNuFRYcN5UG7Xbnji/b+/5U2zkM9vjQlPfBeQdUWvRpiejr/flDm1yqhl99vv5QhOzmfcwucFQDa1ekp0hQkSXW28lcStg0WkyC2VEFAJBEYDmOeN6jb91Xim9wX9Epac3lM67deMRqmJarb5nyRp2LSyAJ8ga/5FzcZ2qSfG33og9FT3AtGCvxqr9V6yWoTxuDuKfX0ancsAl9AsuCEaHIsnEawAIcc5QVdgBw3330e+YTfp9pC1Nw5NX6Afz5hHVuUNXyfcRQ+JLpC1J5LtJA6o3STpfzGTBcdoAd5npl9EeWZQRG0Fz/QFc+3X0AHMBGhzfondKLORmimKnoPBu/7neQQHNVWv6Mpkt89BIJQqIZvX2j6llQHut1IvaLyXuAurCBn8lFlGDpiDNkQmkB1pn14r1vVOYMzx+j4VtUUIsRJQA/IpjFcY+6Le1AdwQ95Y6V9xkDKtvZvF+FMTCyGOawkyyVXsR74VR/oghHgEL7Rv62wsxwoX0y7DVMYsetIWSGiO9B/FZxF997bQbteqxmHTx58W45FwFAAQ9n1E+cwDFPswEPRbzsI05vPCtaHnO/GMwXmF/LIsyxmWj8BGd4IDW0zGXGwyyFQyg31L/ddzrWTweNbUvWVpXX1+3dPGmEkvelDwrnixWPC0stFqtebK6LrR48ZnFS+rqo48VYoD9IlUXsCeWvEKYeiumosGaWwzZQTCggLuIW8lt4Laec/cEMuJwwcgai8r1dETXSCwp6CnAjLD1AbR2SyOmYMDKrOGMTNclZwTZjYCDeANWwm6gYxnHwsGiOtpbJSbkTcJo0hS33aKH6cdst1XBn/HNdevepN/S9+i3b667vCiwhDx+Xc/B5csP9lz33oFJN/kN6y/Y8lm25dJNpYvcS/jk1OpHM1J1GYCAVVIywPhhV5UtdIcFITm1+Lo5REMXS9k5aUJqMllYy7vK1k0PNukKtCvrWvhy03q8sGtX1LUE2a4faEcRa1vPJeveJMaBJt3x5xfrq5eK2dAU+g9o0iWq5vqa6V3tVzxWnEf+nKZVaXW8NZcQlc5cFigRyL9mQ/m7GanpqmTtyo30Y6I2F4+s4Amt3HLT+/Tmo9taJjzUOPObJUq6hcUrGup3rMRZiQUttg1JUcaPgEJqpCyEIazmExhUBF2RFd/8gTNwfmGGO/ed0/+7Py5MPNUP+V7czxsjH6LdAu5FWd17MNx3QlbDJmrDIGIYXT2CbpXSvv4wJyn9kYSVtnSHY/9icYw8DJ/HZYnwBX0slil6kYeVqCPYNXwVjSXwRTXQtLPld+XXuSyuiOlYhnH1jBtD398QwZXJfk2GoOxHEfyYZRJkqoMy/IUZSaWY6AZEGX/DYfCh2r+96ubl65rNWq203WLpW2qdZun7yWIRbrdMm1VDvq/J1AhSsqpi4bjS8uWkuKZmek1N9IMx/KbRfT+N5tvH9P3E8v8eE8+PkR/eLmm15uZ1y2+u2m6B2pZAbUmWaVbhNgutobqaCcvLS8ctrFAlS4KmEOubXjN8dPTqMeT7MdGO0eT7/jw7Xz1GsfeC4QG6PoVxQP2aVmTaDZxs9A4I79B6mosbDuIDSl7VtWb/mrUt0y+Dafrq4wiaRDLHmaLIR/RL5Ma/fXD/N5hiVKBpa9ZNRfC7bupn9GnHB4p47gMHmfQZvoHRFZnLDbRrOrFK7dI7MKNuph1XHLF8jgaiYvYpFfoMWUIGuULm3czKwCE8osQx5Mn4Bx/kbznRdnHtBR7d5FktOTlznyrVqV0lOh1tlN5pbT/vvHbabnGJquThltFGA30vGtXJi+66u7r6ZfpIetqD0e9mzJjAxWxZFVkNysVxjdSzeBTcUH48Hn1MoSaNcVVKIl0J+yH+KwqOuOeGKT+YRvJdqq4BHvzHmMs9BpicP4r+NGo+i/Pfgugr3LONb2ViJDJOibL/5m3km9vSv6TvfImScoZUu+FMZiie+G78DQDbqPnzR9mUXwZYyz+CGOjHAc/BWuPkyc0Y6EkFezlN/p18iMtk2qE6jtOj5DtEuBAMMaclZWrxHD89M/SXZ/Smty5us4RJ6slvN6ZbaebJr1XaqtJRgabiUvF7+vtnSW3WeU5XRt9nrcKKyyr/Modeu6Fk/cySDbX8D7Fb2fT34pUZZy5bDbVo/9l3r0ZHb3zpd4LakunMsqaol9PfH4InM1zO836/su/WqZWNG0pmrvesJ+vn/J0+Tmqz4U5rFn0N5i8lFg8QbaHyufExyehm7ibudu4e7gD3FIYi9itMhVGApocIkLAkgGyjSpYwVpdDMJnxx48koK5h3enNwFWiQVQaalnziKwUuFEgIAaC+jJC9KhYRP5B0BvMqDFEW7pahIlMgGrXeWUR+c58vHKaJaUeAa2x7MyaSvZhPU7FKTloQHwZBGyaQwwmMzwgH104abcld8zkhT3WBZN2V4+ZtEh4pcB+w6I99MNqTO8insg1jarMUk2SVqPVVI9XF6ap04bZW+UkUSUBcXsHFMhp1XZBP6aL7sryq8aWkt8cqzSo5LQ8280P8KSurrKITDiWsWwkOfvSNNjeS3PJY0sxaB8fXX1LMknN0FdPurpII6k1tU6tWj85/9ELLyYPPJaSaz84r2WVLPsEWrXiYkLqasvFQ/QkyR07adLuXEJP8tnEnDtmz625JK/v1hVv7ncGd9614q39juBOfk3FRl6TlZnbECrOGbeQ3J4s5Kq0qQ5B0qQIavUDr5G7lBIiB3LPjAvQlLFv0BuIHByWlHX+rAs3kgp6RMUbM6z0gQmNUwFZFKIjI6mYcvvqOxCyqFL+7hcyCU/u/I5sFYg2TSSWr5pH0+LSJ34KWfJzW9d/On9/OQkZsvU6upvU0A+IQDBQFvdbki/rpcdY1KwAcLwZbhdKgXCRyFKG2cQJp34gSxfP00/v/HrBkfHjjyz4unO6fsFCspTkLyTjfvcb0rzqWVmY3Ng4WZCfXUUP/uZ39DeAre6DtWmW5wMXOpLZWynR4Oz4Z9PDagMYArynYHdLTOuM2v643h+3mmCP+aIjaywphrFCQPkhC7xWXgoR2TyiKW/DpPRMKUVKj7Z+LuhSjfSYMVUnhC/nnS32qVm2vJzJvNBhUGm0+ryJj0xoXvcVX1M2M7fqypotNZdXVARqN2zusOaPcBSnWKuzG7JqDJnZSWXi5r99PPcqs8Tz0U8z0tPTdTrexatstkmrVq2a4+D53BSVJCWpTf6RTZGoL616SeTCZW9sqq5Itz2054/dbev4r6Sk3LHT53gcU1PV5qyaC6edZ/cm+scOpjGYNXgWsekwIoI+gcqwKZEWz74E1DP7j5Q0HugKi8HHlNBCjG5g5gkpStw4DBEDFLuqP4awCr6Xo/wqCgvORgRdXKHByGwvxiYTdbIRw+jgD6zh+2GglWk30tB5hcQDqRJ0pA0oqEb8AgZmUe7Gnqojp1EcyqkTvjs41ofyfTMjY5jlOEmwaxFZfCj8PjAQLLAJMkXY4biNlsKyKS0IK3EkB4whBmxMpH67K2Wc41HPE6yPnCL6H+qYbQmS9MxkROeMFzAiAIcowVrJgd7kaFguaaIHMpLT80JTh1VXD5s6rrpaQ/5VXHThsGGXTp1yaXp6X7UyB3E6E4/X2oAWz6T+tGHVLVOrh1VUAtFyMd2nH1YNr1w6hX86Kz0j+nCMFpWHtD+HxcxwDenBUD63lAxtrPILP7Fgoe0MeZKJ9BlYJ21D2xdJlHRHm2KRNBRzrP9f+L70QWsC/ZsNLHJuPvDWhZyHq2Cx3+owGqYmri4XGUltZ+T1/yWvLCLgqZlanbnns2jC/1U2cYXDIIQHArucM4nFsEvYZxnxGCfxvcYCAcveoNnrjguQnDHWIXG7sag+Ss00qrjwdOIKH1jyyqbDQUZWgXiUEAoK04DtSPrVfcd4mHPsPQtvYyGrnAlb8dxbED2kmH8Fekoxv5Fzb8TYFcvGrZT4QePTPy6JnU/sYkLscxXwZenxN9xBt4bYNAD1ZeVVADcR9jWMK4SORP2Thx73LGQkC7GMq1gY1IbSxNmBbS6rfgEN/DAoLiabwKtBcDElSUdX5zrSPcPchYXuYcPzGoln1jC3u7AJCgZNFuVFXUoKP0aWS+mTsrs4ECwszB4WJM11J7OHudsK3e7iIfOGPkOp7LcMTMC9uZQYV0pLRWPQLJudCWehCvUA5TxSeXHvMb8vsa207eD6gwdp98B5d+NFGj4rOfmNUlmcY2n0eBo9iU2uioSrwuHEM22bN0I3JT9/1avNtUu+L83LLy3NzwOY8D73vgxEsRIPnyi/Kedwu3j8PTnVoF8r8dzd1nb3Xno+PX8vy5H9ZD/9gYXIY5G9Jc+Qm5jrOYuzGn+I+ZMqvD+uiCwcFb+N2PxeOESbWXbbscAdNCPfjxAIOesIWgVhUOLVbYsj2D+aAjnSKa6jH8J2YxFYPzn4++hIuIRUiU0WjxcU+2VTnRtWHrHpdcyzWsaQsPBa9OgOfh5dEolgxM8IwtK+E2Hii36wg5+PESgi0SZVM5wS7KdwlPQ6IQhoXrQ5zTqbWdDpoT7ZaRPdOpvk/gIj0W0i6wDdr8PcFxiybhO9Dhp+HeTEUrKuZ9vgWwBs8dYm9uogfyMz4LxfSLP/O27z3L5G7/43LOi5nIlUp/5btjQ1hvdqoPXuQdHAJnPTgI68gLto4LdLmIyQiWEVaaHNqIgL64nyC53ikOv+qHxeox1/UU8ckhftfi87Yr9v4mEmK50s6WvXphWnabWpnlQtfzgtvTA9LU1brE2L/dYJ/MeDRVSP51DJjFdSI+LicF2Zx1NWF46lPUYtVGDsMaVCnaYeA1SXbugxwhfSerSKbJvFygsnnIfE9e+nqM4VrTsxgnFipG7+ZPQhcQNGM2bJ4FD/fV/0xzb+80BsY7Hfh2vgV7U4vTIFMQqSKIHadEIMqYVR8GUvqKQVlQV2DNqFJnkRxQ1RurnHL66fVmEvKCigB9HbG8ViMVIDddbXy6PkrcDLckFTSAoiuxqosqKDsZu5xKEYNU3CKFbIUFhVMhNXMfY8jcWxSsgnkUhuR9eHn3zY1ZHjyLpgbP6ouuHDQgFrWakxpbKsxTM31dE6dzgRbhiV5XHk5KZniektwUXjCSmsaShJNk265/Zho2cf2KGVk5Oc2usfG9Nw9+VaKSnJmb7mzl3X352jq11y+Y6OK8rq7rprvNFe4XenaTM3lma7TRmShmicw6YUj9qkFkwl7pGuCal/HluSNC2Y11BZFxjnrBunLShtf3pOskObLifPeWrp2r3TlPyU2+lJiurv/wfGfONHAAB42mNgZGBgYGTsVJTmXxnPb/OVgZv9AlCE4fwtflZkmv0CWJyDgQnEAwAQJwk0AAB42mNgZGBgv/D/BohkYACTjAyo4DMAdrcFUgAAeNptUqtuAkEUvbOIDbp8AKISVdG/IKmAhA9YVdH+B2rqmoomdZXFoMAgYAQJK/sJTfUkDajeeezOncNscnJm7uPcx46y5L/qjWjwQ1S3iZ1NsV9NA+jCrJmfA3uf9bFN3aoJ8x/DiPtvuPuzZh4FXw8j/AQ8h1iA0ileYjCu22qTw9WoFszfqT/Zg/qMrMFHhbPL30e9pqA1in2ZxB1cjjrG3h1uQ4xEH+9mtFHH5rvqZ28KeQY0da6Ju6cD2B45Z5n37DWHzFPGK9S6h7401HpiDMUOO7wwVoXZOpzBvhY7FDPjvdPv7+9Cg2upHezY9fvFeODzXdzHAWa01zu++r/4NmfRfhN72jI+0jvL/ouwlUAnqNdATVMtiP4B4gs5aQAAAHjaY2BgUCMA9RjaGFYwXGG0Y5zAuILxHZMe0ySmE8wCzDHMk5ivsMiwzGA5x8rFasT6iU2GLYVtEts5diF2N/YV7Lc4LDiCOCo4VnBc4vjDKcSpwKnHacPpxRnBuY3zFOc3LjOuHK4urnlcd7j+cZtx13F/4AnhmcFzhpeF1443j3ce7xneX3xqfBl8K/iu8Cvxt/G/EOARsBFoEzgj8EtQTDBIMEdwlZCH0AShTUJXhL4JKwhvEn4nEiXSIrJE5ICoiGiM6AIxMbEIsRlit8RtxC9J+EgckHgiySApJhkmOUHylZSBVIZUn9QmqXfSNtKTZFxkSmSOyHyTtZMtkZ0mu0vOQ65B7p48g3yN/D4FIYUyhT0K9xQZFCUUZyheUdJTWqR0QDlL+ZZKgsoklVsq31QlVL1UZ6huUX2ixqa2SN1L/ZyGlIaJhpdGikaVxhSNVRpHNG5pCmkaaL7RCtLaoz1B+43OBF0e3TDddbqv9MT0VPSW6b3Sl9EP0F+m/8zAx2CewSmDb4ZGhhmGDYaLDF8YHTB6Z2xhHGJ8zUTJJM3kjqmbWYbZFHMF8wjzKeZXLEwsaizmWfJYBljOsdxiec9Kx6rNap/VJ2sp6wDrDTYONlU2G2zNbM0AJreO4njaY2BkYGD4zLCJQZABBJiAmJEBJOYA5jMAAC7DAfwAeNqNUstOwkAUPS1oQjQuXLgwLhrdqAnlpYiw9ZEoMUSjuC22FCJCLZXiL/hluvML/AbjBxjPTKekaTfmZmbOPT33MXMLYAVvyEHLFwB8cUVYwzq9COtYw7fCOTTwq3Ae21pd4SXMtXuFl8l/KlzAvvaj8Co29S2F37Ghx7EfKOttnKODNgzM4MDHFENMMKZf5ZqQMWDRf+U5IgqkKqsOiQIMiPqSCYgczPHA3aMX63apCWgemijRQmkmXH594SkquuRHjBCxY9ZwuEpkPbJF5rfwTKXI80RmB2eq4mmm3h5OqJ5SK7JNZLZrKlzWErfxUWGmMq2OFm5xiS6uiLJRxVRcVmGkFHepF0pW6uCGjPCS7IDKQOWbLSJMHHFv8a4WHplTaPpkxQv1OCUTh3I1UKN3/I/eu/KVbXbhy7cVvdsSDeUcDDllixVDpfQWynhCXfq9xKyjXgVr07uQtQz1F1XYXZPd1bhXiQUrbn7wB+JUeFEAeNptlPWTHUUYRfcESXB3d4c3/XXPzMNDYIO7uwUSCCFICMHd3d3dLbi7u7u7Fn8A9s7+xqvaOjW106ff3rp3+wb1/ff5a2Jf6vu/z5///NA3iEFMwqRMxuQMZghTMCVTMTXTMC3TMT0zMCMzMTOzMCuzMTtzMCdzMTfzMC/zMT8LsCALsTCLsCiLsThLsCRLsTTLsCzL0aEiEWQKNQ0tXZZnBVZkJVZmFVZlKKsxjNVZg36GsyZrsTbrsC7rsT4bsCEbsTGbsCmbsTlbsCVbsTXbsC3bsT07sCM7sTO7sCsj2I3dGcko9mBPRrMXY9ibsezDvuzH/ozjAMZzIBM4iIM5hEM5jMM5giM5iqM5hmM5juM5gRM5iZM5hVM5jdM5gzM5i7M5h3M5j/O5gAu5iIu5hEu5jMu5giu5iqu5hmu5juu5gRu5iZu5hVu5jdu5gzu5i7u5h4ncy33czwM8yEM8zCM8ymM8zhM8yVM8zTM8y3M8zwu8yEu8zCu8ymu8zhu8yVu8zTu8y3u8zwd8yEd8zCd8ymd8zhd8yVd8zTd8y3d8zw/8yE/8zC/8ym/8zh+Dx40ZlTqdjqxkkiGzLLKWjWxlVw7tMfX3WHos/cP+ZX/Vu+8fVjLJkFkWWctGtrLbY6Wv0lfpq/RVeio9lZ5KT6Un6Ul6kp6kJ+lJepKepCfpCT3h+fB8+HeFntATng/PZ89nv0fWk/Vkz2fvz54v/r54T/G94j3F98vA+95Xe1/tfbWeWk+tp9ZT66n11Hoazzd+30ZPo6fR0+hp9DR6Gj2t36fV1+pr9bX62p4v2adkn5I9SvYodQbeq2UjW9m7N9mjZI+SPUr2KFX67FOyT8k+JfuU7FOyT8k+JfuU7FNK+uxVslfJXiV7lexVslcp9NmvZL+S/Ur2K9mvFPrsWbJnyZ4l+xXmF52B55BZFlnLRray5w1zDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDPcaA3m618j63G1kfe433G/kni/7nAeeS0dWMsmQWRZZy0bqcee59rw7z+48u/PszrM7z+48u/Pc6HHv2b1n957de3bv2b1n957de3bv2b1n957de3bv2b1n955bfa2+Vl+rr6uvq6+rr6uvq6+rr6uvq6+rr9vzFf+/FPdR3EdxH8V9FHdR3EVxF8VdFHdRqmrImBHjh4+eMHbk3xoQhjkAAAFTtF6HAAA=) format('woff'),
                url(../fonts/dashicons.ttf) format("truetype"),
                url(../fonts/dashicons.svg#dashicons) format("svg");
        font-weight: normal;
                url(../fonts/dashicons.ttf) format("truetype"),
                url(../fonts/dashicons.svg#dashicons) format("svg");
        font-weight: normal;
 /* Admin Menu Icons */
 
 .dashicons-menu:before {
 /* Admin Menu Icons */
 
 .dashicons-menu:before {
-       content:"\f333";
+       content: "\f333";
 }
 
 .dashicons-admin-site:before {
 }
 
 .dashicons-admin-site:before {
-       content:"\f319";
+       content: "\f319";
 }
 
 .dashicons-dashboard:before {
 }
 
 .dashicons-dashboard:before {
-       content:"\f226";
+       content: "\f226";
 }
 
 .dashicons-admin-media:before {
 }
 
 .dashicons-admin-media:before {
@@ -90,7 +90,7 @@
 }
 
 .dashicons-admin-collapse:before {
 }
 
 .dashicons-admin-collapse:before {
-       content:"\f148";
+       content: "\f148";
 }
 
 
 }
 
 
 
 .dashicons-welcome-write-blog:before,
 .dashicons-welcome-edit-page:before {
 
 .dashicons-welcome-write-blog:before,
 .dashicons-welcome-edit-page:before {
-       content:"\f119";
+       content: "\f119";
 }
 
 .dashicons-welcome-add-page:before {
 }
 
 .dashicons-welcome-add-page:before {
-       content:"\f133";
+       content: "\f133";
 }
 
 .dashicons-welcome-view-site:before {
 }
 
 .dashicons-welcome-view-site:before {
-       content:"\f115";
+       content: "\f115";
 }
 
 .dashicons-welcome-widgets-menus:before {
 }
 
 .dashicons-welcome-widgets-menus:before {
-       content:"\f116";
+       content: "\f116";
 }
 
 .dashicons-welcome-comments:before {
 }
 
 .dashicons-welcome-comments:before {
-       content:"\f117";
+       content: "\f117";
 }
 
 .dashicons-welcome-learn-more:before {
 }
 
 .dashicons-welcome-learn-more:before {
-       content:"\f118";
+       content: "\f118";
 }
 
 
 /* Image Editing Icons */
 
 .dashicons-image-crop:before {
 }
 
 
 /* Image Editing Icons */
 
 .dashicons-image-crop:before {
-       content:"\f165";
+       content: "\f165";
 }
 
 .dashicons-image-rotate-left:before {
 }
 
 .dashicons-image-rotate-left:before {
-       content:"\f166";
+       content: "\f166";
 }
 
 .dashicons-image-rotate-right:before {
 }
 
 .dashicons-image-rotate-right:before {
-       content:"\f167";
+       content: "\f167";
 }
 
 .dashicons-image-flip-vertical:before {
 }
 
 .dashicons-image-flip-vertical:before {
-       content:"\f168";
+       content: "\f168";
 }
 
 .dashicons-image-flip-horizontal:before {
 }
 
 .dashicons-image-flip-horizontal:before {
-       content:"\f169";
+       content: "\f169";
 }
 
 
 /* Both Image Editing and TinyMCE */
 
 .dashicons-undo:before {
 }
 
 
 /* Both Image Editing and TinyMCE */
 
 .dashicons-undo:before {
-       content:"\f171";
+       content: "\f171";
 }
 
 .dashicons-redo:before {
 }
 
 .dashicons-redo:before {
-       content:"\f172";
+       content: "\f172";
 }
 
 /* TinyMCE Icons */
 
 .dashicons-editor-bold:before {
 }
 
 /* TinyMCE Icons */
 
 .dashicons-editor-bold:before {
-       content:"\f200";
+       content: "\f200";
 }
 
 .dashicons-editor-italic:before {
 }
 
 .dashicons-editor-italic:before {
-       content:"\f201";
+       content: "\f201";
 }
 
 .dashicons-editor-ul:before {
 }
 
 .dashicons-editor-ul:before {
-       content:"\f203";
+       content: "\f203";
 }
 
 .dashicons-editor-ol:before {
 }
 
 .dashicons-editor-ol:before {
-       content:"\f204";
+       content: "\f204";
 }
 
 .dashicons-editor-quote:before {
 }
 
 .dashicons-editor-quote:before {
-       content:"\f205";
+       content: "\f205";
 }
 
 .dashicons-editor-alignleft:before {
 }
 
 .dashicons-editor-alignleft:before {
-       content:"\f206";
+       content: "\f206";
 }
 
 .dashicons-editor-aligncenter:before {
 }
 
 .dashicons-editor-aligncenter:before {
-       content:"\f207";
+       content: "\f207";
 }
 
 .dashicons-editor-alignright:before {
 }
 
 .dashicons-editor-alignright:before {
-       content:"\f208";
+       content: "\f208";
 }
 
 .dashicons-editor-insertmore:before {
 }
 
 .dashicons-editor-insertmore:before {
-       content:"\f209";
+       content: "\f209";
 }
 
 .dashicons-editor-spellcheck:before {
 }
 
 .dashicons-editor-spellcheck:before {
-       content:"\f210";
+       content: "\f210";
 }
 
 .dashicons-editor-distractionfree:before,
 }
 
 .dashicons-editor-distractionfree:before,
 }
 
 .dashicons-editor-kitchensink:before {
 }
 
 .dashicons-editor-kitchensink:before {
-       content:"\f212";
+       content: "\f212";
 }
 
 .dashicons-editor-underline:before {
 }
 
 .dashicons-editor-underline:before {
-       content:"\f213";
+       content: "\f213";
 }
 
 .dashicons-editor-justify:before {
 }
 
 .dashicons-editor-justify:before {
-       content:"\f214";
+       content: "\f214";
 }
 
 .dashicons-editor-textcolor:before {
 }
 
 .dashicons-editor-textcolor:before {
-       content:"\f215";
+       content: "\f215";
 }
 
 .dashicons-editor-paste-word:before {
 }
 
 .dashicons-editor-paste-word:before {
-       content:"\f216";
+       content: "\f216";
 }
 
 .dashicons-editor-paste-text:before {
 }
 
 .dashicons-editor-paste-text:before {
-       content:"\f217";
+       content: "\f217";
 }
 
 .dashicons-editor-removeformatting:before {
 }
 
 .dashicons-editor-removeformatting:before {
-       content:"\f218";
+       content: "\f218";
 }
 
 .dashicons-editor-video:before {
 }
 
 .dashicons-editor-video:before {
-       content:"\f219";
+       content: "\f219";
 }
 
 .dashicons-editor-customchar:before {
 }
 
 .dashicons-editor-customchar:before {
-       content:"\f220";
+       content: "\f220";
 }
 
 .dashicons-editor-outdent:before {
 }
 
 .dashicons-editor-outdent:before {
-       content:"\f221";
+       content: "\f221";
 }
 
 .dashicons-editor-indent:before {
 }
 
 .dashicons-editor-indent:before {
-       content:"\f222";
+       content: "\f222";
 }
 
 .dashicons-editor-help:before {
 }
 
 .dashicons-editor-help:before {
-       content:"\f223";
+       content: "\f223";
 }
 
 .dashicons-editor-strikethrough:before {
 }
 
 .dashicons-editor-strikethrough:before {
-       content:"\f224";
+       content: "\f224";
 }
 
 .dashicons-editor-unlink:before {
 }
 
 .dashicons-editor-unlink:before {
-       content:"\f225";
+       content: "\f225";
 }
 
 .dashicons-editor-rtl:before {
 }
 
 .dashicons-editor-rtl:before {
-       content:"\f320";
+       content: "\f320";
 }
 
 .dashicons-editor-break:before {
 }
 
 .dashicons-editor-break:before {
-       content:"\f474";
+       content: "\f474";
 }
 
 .dashicons-editor-code:before {
 }
 
 .dashicons-editor-code:before {
-       content:"\f475";
+       content: "\f475";
 }
 
 .dashicons-editor-paragraph:before {
 }
 
 .dashicons-editor-paragraph:before {
-       content:"\f476";
+       content: "\f476";
 }
 
 /* Post Icons */
 
 .dashicons-align-left:before {
 }
 
 /* Post Icons */
 
 .dashicons-align-left:before {
-       content:"\f135";
+       content: "\f135";
 }
 
 .dashicons-align-right:before {
 }
 
 .dashicons-align-right:before {
-       content:"\f136";
+       content: "\f136";
 }
 
 .dashicons-align-center:before {
 }
 
 .dashicons-align-center:before {
-       content:"\f134";
+       content: "\f134";
 }
 
 .dashicons-align-none:before {
 }
 
 .dashicons-align-none:before {
-       content:"\f138";
+       content: "\f138";
 }
 
 .dashicons-lock:before {
 }
 
 .dashicons-lock:before {
-       content:"\f160";
+       content: "\f160";
 }
 
 .dashicons-calendar:before {
 }
 
 .dashicons-calendar:before {
-       content:"\f145";
+       content: "\f145";
+}
+
+.dashicons-calendar-alt:before {
+       content: "\f508";
 }
 
 .dashicons-visibility:before {
 }
 
 .dashicons-visibility:before {
-       content:"\f177";
+       content: "\f177";
 }
 
 .dashicons-post-status:before {
 }
 
 .dashicons-post-status:before {
-       content:"\f173";
+       content: "\f173";
 }
 
 .dashicons-edit:before {
 }
 
 .dashicons-edit:before {
-       content:"\f464";
+       content: "\f464";
 }
 
 .dashicons-post-trash:before,
 .dashicons-trash:before {
 }
 
 .dashicons-post-trash:before,
 .dashicons-trash:before {
-       content:"\f182";
+       content: "\f182";
 }
 
 
 }
 
 
 }
 
 .dashicons-arrow-up:before {
 }
 
 .dashicons-arrow-up:before {
-       content:"\f142";
+       content: "\f142";
 }
 
 .dashicons-arrow-down:before {
 }
 
 .dashicons-arrow-down:before {
-       content:"\f140";
+       content: "\f140";
 }
 
 .dashicons-arrow-left:before {
 }
 
 .dashicons-arrow-left:before {
-       content:"\f141";
+       content: "\f141";
 }
 
 .dashicons-arrow-right:before {
 }
 
 .dashicons-arrow-right:before {
-       content:"\f139";
+       content: "\f139";
 }
 
 .dashicons-arrow-up-alt:before {
 }
 
 .dashicons-arrow-up-alt:before {
-       content:"\f342";
+       content: "\f342";
 }
 
 .dashicons-arrow-down-alt:before {
 }
 
 .dashicons-arrow-down-alt:before {
-       content:"\f346";
+       content: "\f346";
 }
 
 .dashicons-arrow-left-alt:before {
 }
 
 .dashicons-arrow-left-alt:before {
-       content:"\f340";
+       content: "\f340";
 }
 
 .dashicons-arrow-right-alt:before {
 }
 
 .dashicons-arrow-right-alt:before {
-       content:"\f344";
+       content: "\f344";
 }
 
 .dashicons-arrow-up-alt2:before {
 }
 
 .dashicons-arrow-up-alt2:before {
-       content:"\f343";
+       content: "\f343";
 }
 
 .dashicons-arrow-down-alt2:before {
 }
 
 .dashicons-arrow-down-alt2:before {
-       content:"\f347";
+       content: "\f347";
 }
 
 .dashicons-arrow-left-alt2:before {
 }
 
 .dashicons-arrow-left-alt2:before {
-       content:"\f341";
+       content: "\f341";
 }
 
 .dashicons-arrow-right-alt2:before {
 }
 
 .dashicons-arrow-right-alt2:before {
-       content:"\f345";
+       content: "\f345";
 }
 
 .dashicons-leftright:before {
 }
 
 .dashicons-leftright:before {
-       content:"\f229";
+       content: "\f229";
 }
 
 .dashicons-sort:before {
 }
 
 .dashicons-sort:before {
-       content:"\f156";
+       content: "\f156";
 }
 
 .dashicons-randomize:before {
 }
 
 .dashicons-randomize:before {
 }
 
 .dashicons-list-view:before {
 }
 
 .dashicons-list-view:before {
-       content:"\f163";
+       content: "\f163";
 }
 
 .dashicons-exerpt-view:before {
 }
 
 .dashicons-exerpt-view:before {
-       content:"\f164";
+       content: "\f164";
+}
+
+.dashicons-grid-view:before {
+       content: "\f509";
 }
 
 
 }
 
 
 /* Internal/Products */
 
 .dashicons-wordpress:before {
 /* Internal/Products */
 
 .dashicons-wordpress:before {
-       content:"\f120";
+       content: "\f120";
 }
 
 .dashicons-wordpress-alt:before {
 }
 
 .dashicons-wordpress-alt:before {
-       content:"\f324";
+       content: "\f324";
 }
 
 .dashicons-pressthis:before {
 }
 
 .dashicons-pressthis:before {
-       content:"\f157";
+       content: "\f157";
 }
 
 .dashicons-update:before {
 }
 
 .dashicons-update:before {
-       content:"\f463";
+       content: "\f463";
 }
 
 .dashicons-screenoptions:before {
 }
 
 .dashicons-screenoptions:before {
-       content:"\f180";
+       content: "\f180";
 }
 
 .dashicons-info:before {
 }
 
 .dashicons-info:before {
-       content:"\f348";
+       content: "\f348";
 }
 
 .dashicons-cart:before {
 }
 
 .dashicons-cart:before {
-       content:"\f174";
+       content: "\f174";
 }
 
 .dashicons-feedback:before {
 }
 
 .dashicons-feedback:before {
-       content:"\f175";
+       content: "\f175";
 }
 
 .dashicons-cloud:before {
 }
 
 .dashicons-cloud:before {
-       content:"\f176";
+       content: "\f176";
 }
 
 .dashicons-translation:before {
 }
 
 .dashicons-translation:before {
-       content:"\f326";
+       content: "\f326";
 }
 
 
 /* Taxonomies */
 
 .dashicons-tag:before {
 }
 
 
 /* Taxonomies */
 
 .dashicons-tag:before {
-       content:"\f323";
+       content: "\f323";
 }
 
 .dashicons-category:before {
 }
 
 .dashicons-category:before {
-       content:"\f318";
+       content: "\f318";
 }
 
 
 /* Widget icons */
 
 .dashicons-archive:before {
 }
 
 
 /* Widget icons */
 
 .dashicons-archive:before {
-       content:"\f480";
+       content: "\f480";
 }
 
 .dashicons-tagcloud:before {
 }
 
 .dashicons-tagcloud:before {
-       content:"\f479";
+       content: "\f479";
 }
 
 .dashicons-text:before {
 }
 
 .dashicons-text:before {
-       content:"\f478";
+       content: "\f478";
 }
 
 
 }
 
 
 /* Alerts/Notifications/Flags */
 
 .dashicons-yes:before {
 /* Alerts/Notifications/Flags */
 
 .dashicons-yes:before {
-       content:"\f147";
+       content: "\f147";
 }
 
 .dashicons-no:before {
 }
 
 .dashicons-no:before {
-       content:"\f158";
+       content: "\f158";
 }
 
 .dashicons-no-alt:before {
 }
 
 .dashicons-no-alt:before {
-       content:"\f335";
+       content: "\f335";
 }
 
 .dashicons-plus:before {
 }
 
 .dashicons-plus:before {
-       content:"\f132";
+       content: "\f132";
 }
 
 .dashicons-plus-alt:before {
 }
 
 .dashicons-plus-alt:before {
 }
 
 .dashicons-minus:before {
 }
 
 .dashicons-minus:before {
-       content:"\f460";
+       content: "\f460";
 }
 
 .dashicons-dismiss:before {
 }
 
 .dashicons-dismiss:before {
-       content:"\f153";
+       content: "\f153";
 }
 
 .dashicons-marker:before {
 }
 
 .dashicons-marker:before {
-       content:"\f159";
+       content: "\f159";
 }
 
 .dashicons-star-filled:before {
 }
 
 .dashicons-star-filled:before {
-       content:"\f155";
+       content: "\f155";
 }
 
 .dashicons-star-half:before {
 }
 
 .dashicons-star-half:before {
-       content:"\f459";
+       content: "\f459";
 }
 
 .dashicons-star-empty:before {
 }
 
 .dashicons-star-empty:before {
-       content:"\f154";
+       content: "\f154";
 }
 
 .dashicons-flag:before {
 }
 
 .dashicons-flag:before {
-       content:"\f227";
+       content: "\f227";
 }
 
 
 /* Social Icons */
 
 .dashicons-share:before {
 }
 
 
 /* Social Icons */
 
 .dashicons-share:before {
-       content:"\f237";
+       content: "\f237";
 }
 
 .dashicons-share1:before {
 }
 
 .dashicons-share1:before {
-       content:"\f237";
+       content: "\f237";
 }
 
 .dashicons-share-alt:before {
 }
 
 .dashicons-share-alt:before {
-       content:"\f240";
+       content: "\f240";
 }
 
 .dashicons-share-alt2:before {
 }
 
 .dashicons-share-alt2:before {
-       content:"\f242";
+       content: "\f242";
 }
 
 .dashicons-twitter:before {
 }
 
 .dashicons-twitter:before {
-       content:"\f301";
+       content: "\f301";
 }
 
 .dashicons-rss:before {
 }
 
 .dashicons-rss:before {
-       content:"\f303";
+       content: "\f303";
 }
 
 .dashicons-email:before {
 }
 
 .dashicons-email:before {
-       content:"\f465";
+       content: "\f465";
 }
 
 .dashicons-email-alt:before {
 }
 
 .dashicons-email-alt:before {
-       content:"\f466";
+       content: "\f466";
 }
 
 .dashicons-facebook:before {
 }
 
 .dashicons-facebook:before {
-       content:"\f304";
+       content: "\f304";
 }
 
 .dashicons-facebook-alt:before {
 }
 
 .dashicons-facebook-alt:before {
-       content:"\f305";
+       content: "\f305";
 }
 
 .dashicons-networking:before {
 }
 
 .dashicons-networking:before {
-       content:"\f325";
+       content: "\f325";
 }
 
 .dashicons-googleplus:before {
 }
 
 .dashicons-googleplus:before {
-       content:"\f462";
+       content: "\f462";
 }
 
 
 /* Misc/CPT */
 
 .dashicons-location:before {
 }
 
 
 /* Misc/CPT */
 
 .dashicons-location:before {
-       content:"\f230";
+       content: "\f230";
 }
 
 .dashicons-location-alt:before {
 }
 
 .dashicons-location-alt:before {
-       content:"\f231";
+       content: "\f231";
 }
 
 .dashicons-camera:before {
 }
 
 .dashicons-camera:before {
-       content:"\f306";
+       content: "\f306";
 }
 
 .dashicons-images-alt:before {
 }
 
 .dashicons-images-alt:before {
-       content:"\f232";
+       content: "\f232";
 }
 
 .dashicons-images-alt2:before {
 }
 
 .dashicons-images-alt2:before {
-       content:"\f233";
+       content: "\f233";
 }
 
 .dashicons-video-alt:before {
 }
 
 .dashicons-video-alt:before {
-       content:"\f234";
+       content: "\f234";
 }
 
 .dashicons-video-alt2:before {
 }
 
 .dashicons-video-alt2:before {
-       content:"\f235";
+       content: "\f235";
 }
 
 .dashicons-video-alt3:before {
 }
 
 .dashicons-video-alt3:before {
-       content:"\f236";
+       content: "\f236";
 }
 
 .dashicons-vault:before {
 }
 
 .dashicons-vault:before {
-       content:"\f178";
+       content: "\f178";
 }
 
 .dashicons-shield:before {
 }
 
 .dashicons-shield:before {
-       content:"\f332";
+       content: "\f332";
 }
 
 .dashicons-shield-alt:before {
 }
 
 .dashicons-shield-alt:before {
-       content:"\f334";
+       content: "\f334";
 }
 
 .dashicons-sos:before {
 }
 
 .dashicons-sos:before {
-       content:"\f468";
+       content: "\f468";
 }
 
 .dashicons-search:before {
 }
 
 .dashicons-search:before {
-       content:"\f179";
+       content: "\f179";
 }
 
 .dashicons-slides:before {
 }
 
 .dashicons-slides:before {
-       content:"\f181";
+       content: "\f181";
 }
 
 .dashicons-analytics:before {
 }
 
 .dashicons-analytics:before {
-       content:"\f183";
+       content: "\f183";
 }
 
 .dashicons-chart-pie:before {
 }
 
 .dashicons-chart-pie:before {
-       content:"\f184";
+       content: "\f184";
 }
 
 .dashicons-chart-bar:before {
 }
 
 .dashicons-chart-bar:before {
-       content:"\f185";
+       content: "\f185";
 }
 
 .dashicons-chart-line:before {
 }
 
 .dashicons-chart-line:before {
-       content:"\f238";
+       content: "\f238";
 }
 
 .dashicons-chart-area:before {
 }
 
 .dashicons-chart-area:before {
-       content:"\f239";
+       content: "\f239";
 }
 
 .dashicons-groups:before {
 }
 
 .dashicons-groups:before {
-       content:"\f307";
+       content: "\f307";
 }
 
 .dashicons-businessman:before {
 }
 
 .dashicons-businessman:before {
-       content:"\f338";
+       content: "\f338";
 }
 
 .dashicons-id:before {
 }
 
 .dashicons-id:before {
-       content:"\f336";
+       content: "\f336";
 }
 
 .dashicons-id-alt:before {
 }
 
 .dashicons-id-alt:before {
-       content:"\f337";
+       content: "\f337";
 }
 
 .dashicons-products:before {
 }
 
 .dashicons-products:before {
-       content:"\f312";
+       content: "\f312";
 }
 
 .dashicons-awards:before {
 }
 
 .dashicons-awards:before {
-       content:"\f313";
+       content: "\f313";
 }
 
 .dashicons-forms:before {
 }
 
 .dashicons-forms:before {
-       content:"\f314";
+       content: "\f314";
 }
 
 .dashicons-testimonial:before {
 }
 
 .dashicons-testimonial:before {
-       content:"\f473";
+       content: "\f473";
 }
 
 .dashicons-portfolio:before {
 }
 
 .dashicons-portfolio:before {
-       content:"\f322";
+       content: "\f322";
 }
 
 .dashicons-book:before {
 }
 
 .dashicons-book:before {
-       content:"\f330";
+       content: "\f330";
 }
 
 .dashicons-book-alt:before {
 }
 
 .dashicons-book-alt:before {
-       content:"\f331";
+       content: "\f331";
 }
 
 .dashicons-download:before {
 }
 
 .dashicons-download:before {
-       content:"\f316";
+       content: "\f316";
 }
 
 .dashicons-upload:before {
 }
 
 .dashicons-upload:before {
-       content:"\f317";
+       content: "\f317";
 }
 
 .dashicons-backup:before {
 }
 
 .dashicons-backup:before {
-       content:"\f321";
+       content: "\f321";
 }
 
 .dashicons-clock:before {
 }
 
 .dashicons-clock:before {
-       content:"\f469";
+       content: "\f469";
 }
 
 .dashicons-lightbulb:before {
 }
 
 .dashicons-lightbulb:before {
-       content:"\f339";
+       content: "\f339";
 }
 
 .dashicons-microphone:before {
 }
 
 .dashicons-microphone:before {
 }
 
 .dashicons-desktop:before {
 }
 
 .dashicons-desktop:before {
-       content:"\f472";
+       content: "\f472";
 }
 
 .dashicons-tablet:before {
 }
 
 .dashicons-tablet:before {
-       content:"\f471";
+       content: "\f471";
 }
 
 .dashicons-smartphone:before {
 }
 
 .dashicons-smartphone:before {
-       content:"\f470";
+       content: "\f470";
 }
 
 .dashicons-smiley:before {
 }
 
 .dashicons-smiley:before {
-       content:"\f328";
+       content: "\f328";
+}
+
+.dashicons-index-card:before {
+       content: "\f510";
+}
+
+.dashicons-carrot:before {
+       content: "\f511";
 }
 }
index 51afaf0d01b043caa05dbabbedaa2af86deedc5d..b360187af02179dfbf6d7c27019bba89c4b791d8 100644 (file)
@@ -1 +1 @@
-@font-face{font-family:dashicons;src:url(../fonts/dashicons.eot)}@font-face{font-family:dashicons;src:url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAFc4AA4AAAAAjggAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABRAAAABwAAAAcawcIzEdERUYAAAFgAAAAHgAAACABHAAET1MvMgAAAYAAAABAAAAAYJAJaUVjbWFwAAABwAAAAS4AAAKKV1hH9Wdhc3AAAALwAAAACAAAAAgAAAAQZ2x5ZgAAAvgAAEvGAAB3YGyqygJoZWFkAABOwAAAAC4AAAA2BbfszmhoZWEAAE7wAAAAGgAAACQPogiYaG10eAAATwwAAAEZAAADvOx/y5tsb2NhAABQKAAAAdgAAAHgTh5scG1heHAAAFIAAAAAHwAAACABQgC1bmFtZQAAUiAAAAF1AAADBki4ZWJwb3N0AABTmAAAA5gAAAlhlodeP3dlYmYAAFcwAAAABgAAAAYe1VM/AAAAAQAAAADMPaLPAAAAAM9klqgAAAAAz2TPVHjaY2BkYGDgA2IJBhBgYmAEwndAzALmMQAADoQBIQAAeNpjYGZvZpzAwMrAwirCsoGBgWEahGbaw2DEFAHkA6Wwg1DvcD8GBwWGr+zsF0B8IKkBpBiRlCgwMAIA9nYJQHja3ZA/SwNBFMTf5mIkyd67iH8gYLEgKVIZLMTrzoiYFIoQUaJFooIaRDCVpBACamFn67fwy9hoEVFQLGd3rzJyHolY2Ns48OYxMPyKISKHhjdNInYSl3ESg5wUR/HfpIBGaEpl1KxqFPpIYxx5zKCIEubhYwnLqKCOXbTQwZUWOq3zuqh9HeiySZu8KRrfVG3Vbtm6bdqW7dhrexsmw9EoIlL0zSXkMAmFQsydwwKCmLuCGprYRxtdTdrROa10acAVJmeUKZnAVuz6gLtnT23X3oQUpqLoyen1encPE96Yl/UyXtJz+JP7/MEhWzb8zi/8zI98zzu8zRu8xhUu86J74Z67Z27bPZYn8lAeyKZsyLqsydXsW/Z1uM9fSKToBy4SsSV+F+jf6wtwHn6WAAAAAQAB//8AD3jarb0HfBRl+jg+78zOzG76ZlvabnazLWVTt4WUTYDQQwstFpCy9IBRpEngFCOiUmLDhh0Re1TkLBxnO107chFPDz1sHKfeqXd8PUiyr7/neWc32SDe977/zz/JzPvOOzPvvPXpzxNO5OCHnOIPcgIncRouhUvnuEqtTSvobDqTltiSiVZHTvU+Qh+LPEJ3kOmPRB7hD0abyPXcz7TnZ0KjH3I/Ew/luZ85wiX8VHIcz4W5qPyC1At1+jlOQ4IhYjRZiMkiBIIaIkv6fGLUy2m8LMHJwodIMBAM8cFAFZRXBcV90fpd2eturil9YFpJ3eyWFTXRh6L1T5nNy8zm3FGLjSPsvikV8tgll1ziK/CmNvvyzNPg1jSzsIl/dVdeqt1l2VKWlWdLJSnRh/hXn2J3p5tzA2MzKu2+Sy5ZMlaumOwraNKuHJnL6uQI8XARqVFWc5kwJrYqo0Grl0oI0doLXH6tL0BOCZ0ta9a0RGhKBFJZvaYl2tSyhqaQU2ta+IMta6DbAvdvqONj6SiMZRqrxyRriFtD/F6RwLDiITXeviy6Prp+Gf8j6YpE9/GtfVMEK21Xbbp9GX8NK6ftkTuiD0cf5WfQdHKKpkC9EW6X3CbXcFmci6uDeo0Z6SSNuEkDCfjcroJ0QlwByFs17FqSiaQ3GQMyMUrpRLK6XRkNJERMrLRK+semTbe3fLGMSM3NDQ0NTzdMpE+Yh7Xc9huysP9b3pifX9CaH/0WkzJytwVv0N2/UV6h8xsbG56WDmLJbS3DLESc2AwVNDY20yeWfdFy+6a+WVDB+flW3hL9hqVvkHvYjU2byKJN8IqZzmt4urGB41SwPsLQpzZOx+VyRbhGiNbnKiFum2wvkGD0jV5bVYCrMuqlApdPtGlZGvBWmbQ2GNCBS1FfW/TQ1bT96oeKamuLhJNFtdHGwzfeePhG4QA5BcmNS0y5tAfGVMkLnfzBotpIpLYo2gQv8M9g8WFV34kl+I5IzlB5Kb2fXXD8wJoQYEY5nD7RZrBpvXyrcLJvv2Dtz4qQU6K+97twRNTj/H/DnZC+kk5yauiTA1e9mwRw1YtBIqcRu02WCtwuXwP0NKBR7shEzKcHXyRNORe63Jn9r18gXL226tt5tKPD0+HxeDrqBYk0ZeO9HHpQylMe1bldF7zd3r9hetUIeKhko6eDdM49RffArUy4lUNfhP0X4V6XolI/Z+Bs0HZJ5SY4YkHiygwGHCYNb5Rwo7H1A7tR6lxA/3F59MvxR24ez2/z+RbMIao19C8kh1iKqnt3W6abLRbzdItZ+HmBzxe9bPzNR8bxlstJ5oI51R76F3qC5K/+OZpvNsce5ATiIR5ZLe2B/V/CjVFm124bnFnixaktIQacyHpix9msxYGBrRe/8uOVOf4km3K/rK4t6v0O51rUF9X2Z4UxGzYXmwcy5NQ5yrpU3Zjvm4KTbq5tqd1lMJsNuyDDuzBH708si36COQYeuS7ufnm03AozyhGYRpeEW88kw3CqYCiJO2gM4O5S6Q/wHb+d9MqoCU06329/pCcD9MPAW35i+hEKmyaM0kn3H4hefcCnGzVh1MuTD/xI/xZ4K0BK4YF/ssKmV2C96WG9HYT1lsVVwLcLylTlxBUSvFWwTtJEwQmpmaSp7AVlfDkMToh4VcYLpwY82VpBkKSShkWhxVvL0ohKm1Xi30QyLvvjxnT/g3u+WLjo8yducLsv++BylddVP25cvU4XXL5gQumaR2bL2WOGTxlG/3pgy5EVZ8R0tyXLZCtIST7T/t5mBYaHZTW0x82VQ+/tkgz9lmSDze9yy+6gy23XegNBd9AUCPptBqMpaJKNJi9XFfC5CiS9rP4kJ3jHkTtaF9Oexa139NwRzPrkY9MwKJnRRjysZJjp4/6q093dp7sF6/KZcAce+SQrCHdaF5OihbOhJJAbK5m9kA7vxmdZuyJygTwVYCzMCmfMBCyicguiYHMryzuzKuBnbZAaXho1am47fXPri/TDXbQnLOSOqVw1l/DlKydNWjlJLnuJUvrz3HZ/I302n26LCOR60rBq7qjo8UnVQXgCv0UK5TZYx1rc0aRKZZLLYH1KsldDvIFMh67A4Q5aYI0GgnYNsacJwsk7iHb+o6EXlt31Y8FJej+9/3DWK6T08TvpDwOlZA6Zczhzw4HvpT2b2l9tmfvaLbSddO0jmXf3dsYKSBdt3/TpvbM5hJUR6K+yl7JhNxf9cjdxVpVJUlkd7oCK9dtYRQBS+eGX7ZetbL+sg/0SJC3Et2EDfYc+Qd/ZsIF/cM2eNWv2wPr19G4lHsGKoA0f7s+CszDu7h077objOD60JrovHA5De1K5COztNlgX6QC9TTAH+bBCSmCNBLlargF2+4Rz7Heb1qaDJnljRxyyB6GdTrg35BruqxKu5Tbog4P14VhRba+DgVziUf76VhSbYYdHcMD4VkSY/dGEkoNDnyBdCDZiIET1MRR4IuyHppjZU+Ew4HRPPA83YlnoN+KDsLSH0QiWoVSCLUYluIOwMWCXwFYAiuFkjGKgPZAR9vT2huN/SD/0H4/TD4K1ZU3/Ewm3EZdwMOeH4VsyjHI+4hKdXQe0hIPNbsAnOI0ml71AJbsc9gI5EBRORo1lkYqbhZPCyf7hLbUAxcJ8aXuWr+ggfXn2bPrywUJ/VrtwkhT3HVCtrsWxCLOuRf/wl1uelZ/fvft5+dlbFJwnj5TXADWoRQoGiDREfDag3xCdydLt281m2tK3X1Wy3zIt+lc+e0f05Bi5dTvQWHRq/zDx2H4z6b+Rz9oR/WsPB3Ql/EA/DsNKsXOtsHOXce1QlMGXEYdVlUb4jEwLgZUbIrCGjZkZPC5jF5QGGM3okiV7gTvg8MLGc0kGPVCQRpMRkAbQPCGCgJc94QJAKRnziU5DQio33Oc1xMX7fUSHr8uHFz7/E32fvkDf/+n5hZAnlWQ0qfzp+b7XyUoy8ccdO36kz9Ab6TOYI/X0/aX6NJ3hyuk23Uoy/707iKnNN9tkzBGFqgarlf5ocKnV+nS9fvN0+1K7Qw/Z6e3kOSIKaqNGTprzYe8xsumt/xGKv169cfFiYZTyqYVnNUGcNeSjE1lD+ooEv5r3lpMksveVlQvkCePNwwuL1OKsLXXHW1r4fxC1SuCDPpIs8QLxB4maHo7m8c/L2S0tVwx75I9/ptuEG/tOLiDXfPsMfTu6s9jCibE12wYrSuaS2Y7lcC8SgNhDDo+4rnerqrn/ONA17OBbo/vkttOnxXWwJ3oGD4CJM0iXLMppQFuUQG0+dxngxcygO01lQkgYDDh/WSTMHFv1+Ljs9+57YP6zd6+oysj58pFb580XnjxXKX9084UNroydZPjUr8q37H/3zBV/7G9t3XWuQlxe4gAtqQLKK4XLwD7qgN62EQAk7IAOaogNkFl0X98U4lF1901RdUf3RfcJVoQYclvflOg+8Rh0sB0BAKbkFNbNJ9CpLsSBBZJ5kCvwMhAwAAe0JFauam6Zei3tQU6hhW9tWYMHQoKeMKTiuh3jn6M9xLOmhZzCctoORwoAg4Ey2DIMx+F3NQBvtTDS2ZyZs2K/8GtO+IgoeHU2u+Al8QO2qYYHgrWo9vTpWvJ8JAxgOhwJAz0UPyGQP6XMa23RmZd4KVRUG8bPDh5A157szxI6aTttZ/SP0v8wwiDiDAA5Bl21ujIYJS5q07DLyoUvwL+omlRY+y797N13bxg3sb8jM9J5A8tWS7sjUkNJpO8fcE0K3rXzqyL9nVc8xvJCbaE/gR9IZxzB8HhP9ZI9Dlyhf1wcu/lCsnfgXpVFlQ/7vsrCmz6X0nzjxvnO/BPO4r97t/IHFQR3PxGTDOaympYKBbcVTazx2bMlSZVR3bikffFIb7LcFnvNh1WceQm3g9DLEB/tUee0TGmbPWdkMcOLRfxBz5gZM8YYjSlFiycPhxJDfK1EGF7UMWrxrPZ7Ac9x1kCGyypliMeIyxMKec68g2fiAmq5i95Imr/5hu7/RmoMefoWlDY1laru8oQivd99o9zAb0jwjV0DfJMd9p8XcC4HsNPC69N4gJ1lvC/EZ8ZoMNVZaRzLSrFUyCV3kJo3r/D5rniTvk4X0deVvNzR2trRyuckJlGJJb9nuEVuG7nq4Re+eOHhVSPjmai9lT2Q8BfdzJL2WnwHeOwucorhz2SFm4r/SnsQRyIuBCikj+cY76vwYMo7JnzL7kcWDJgwf9BgN9j9dr8X6AlpD2yu/g5VM6BsQNphUQ94PdzrEDoj7DoSYWPHAd1yGOioQVgIdWrj0BAybj8jmxhElA+frlDgH3AZtEdW4wY5fVraA+viJBIMDIcy2qGd1S9C/VlQf1cirE2s3XlWzbjTACQ18Qeh2q6zqlUq/V/rdJ9Vp6yG1kabZPWvVgnrNLFOpTY4YQ3isf4sfA3Gv0vZ/0gSiuvEdfiWhscrAJTr6Aq6iiP8Qbh3TNWt3BOPYSmCVb41dk8ff0/UYymQZzeR7ezeQfEYsMzsHpBoUIrPR/f9x3uyQgfLNTAG+Yze9DKKk+EzrS3GLSqpwWZAMqme4LIXE/JsHrR2OCsH7ETPmZeIBxYq6YJTf4dC8PEHlZTgaHRF+Fb8kxp7twI6DLW2hsLs3It84tBT7yqhs78jjIKy+IHjCL1fIDnFR9gqNBE7CZrEe7ZE/7qFHtnyrfjInKiJ3LAR+fY/cX+STkunFSwG/MYgTeT3ZToAxwgn7yUFRzo6jtDP6Ev0syMdPWQpuTP6gnR6sKjjCCm490Oy9Ehfm6Cmv+GYPCDCeLl0xjOdTWvxQFrKGmLSEEawFB79zW+O0j8BufInzAm/x7UPWwxwGiKJiMLdJz5CCtlr/V68FRn6+BA8qsF+aYhIBPgWcRKdSHROUUecwknaE91H7roEF0o72R3dR3u+IR/QV2ZRD/XMoq+QD+S26L4JtCq6FGvlbyXvTSDraEkN3R2NfvMNkEThGi4BZ+G32JeAKmT1Ew/fSsPtiPcvoQv41l9Wh+3Ecrb+cO/ZSBEhQBVlIUSCFqbASoY5ZeOJvHEbl6bwhcYMRmniQgwRXYz/NOhNKCwwIndIjOJrWw4d2mJzLgMc+4Jm/9Wzr7rqhaty6SH71ZmCbH3KQppgB/+enjqkXtb3pXjshjujf+68cHZn5+xAJTz0WqZqAzyCQJDsI/ukQqmIwVFFxBjUoHxP92f6CL35PdJGH/mEzCJt79Kb+TXvkRX0YXb5Hr2ZzPyEPsz9r+uBs4ZIRhmxppEM47kWBBlJMk5s2XKC/gDncy6EvuVbTgw8A/wM6YrJ0kywd0uh3d6h2JHJfqxGg6BlA6cl7hCJjaHRJMOmG+BKi8KIDyOAl4nH4S6HPVvudqiaYxK9IpTvEc/eb77Zi4uQ0Vc90aaPMsd5cMN6xmV+NJRmRLrKyTVxE4e2qZ4k0ngIYQZoj5DkhWkGaiMfs0h1AFpirxmkxtdK6utLek+V1LOMmFJS3/udqrlvPznFUCGx8mqzNTBsYlF/R3WLy0gIEVIzbe7agvIJRXki/1K4vqT/CqlRqaO+5DWljvqSvumqZhpheJX2JDmWXLRq2jCk0aFT+fmq9CJXmc2EhEi0AlbrFSX1wLBqEmgqE6MW3AxmIo/OBYEn9yfw6JkxigB5b/6/yDM6E4lIOEcYSSCu69v/43/MhWuLBt+SGhlVUIto6T/lEudqsB+c82wJSLxtMDV8Ql6hdPGj+OkzfedoVmJXJFH5LqKr/uODeY5TeHJsx2Hg/w1c1lAaBpEorANYKCb8KJDPPf3HUd4AQOcg0OEogwYkTLoEK2YxZURfO7sXbQJqB+9ynCIbV3jmJPhSFpeHfAcsRH8BZ7Br4h8VWYKiE/7gqztvO0l/eJpI0nSaAki/U7ACJAVATFOAlj8pHrv29iP0b5/Sx/kve7fSFOEk0EXRJmBHAKv+yvc08EnObqgykljvdCwRkFyrfZU0Eulp+sPJ23b2FmFtWCtDCmH8Gn2cTPuUmI7cTuT+DgSdqm44wzj0d8THUsXG8jDMaTLTlQABTQwKGsez06ZBAZZoI/Jh2gO19yB/2neCP0jv5w8iEqb3w5jNUTVHkFmNIL8aIV3RNeFeRrbE+oRzhTSTUn8M5wPtCN2wawWNABMF77EaqvBNmJWTtB0pPOWDiBfwY8AY56AkD+V2DJ0DjolwR+QkaL+J6WNkJ0B8twt/7VqYoyoUU0gvTp5MvwkGffPnbezcjl1/54UDW68TPnuBLnlhdef2HZs3zp/nD8K3XiGv0KOTJ163Van7dahbHas7EIRfL9ZZIEv4C0hFdGUQAzx94IV3kDLa3tkxf74vGKTfTBY+gw9MnEyKaYiGiCfonzd/4+Yd2ztXv0BuYzwKDH9EXAdwOIOtYL0ka1GYoi1DabvVqGLCJVeBuO7hq8JVVVc9jLA2uo9tBHHddUcLond4wnl5QlnB0esAxmazDcL2hrJH1QMSShtuQgW6M3E+wlGgzogtvjsdsZRvFTrjwD2CGeIpqgU2oL2/o53BO+GYwoYcxFbAcmMJrt/2BFYjxhtFzpJL2s/NRzJJJKrkYulQENC7FUWLghVFBZAMFaHi9urvEKxhhXFuV9IY3YFUkXiMcX8WVG2wb/oCQTwBjxxiGEYvvnv1gXdv6M+64d3uzdKNSyrLqn5/6d5vhK/TXr8G+eWrX9Pm5C25Ubdg3Td7K5SxJdcATfJHgOgmlLhwVs4kwckdEH245NLgU0hjcFZHsIyg+As4dL8vmEZkI/8K30y+uvxymhfdT/Muv1z4H1+h1lrZ1OwPTKA2cpLcuXTUD7tX/J0+/fcVu38YtVT8Iz1y+jQ9QspOn1Z7mlJ4XjXO629ujt76z4MbHi1afc9Df//7Q/esLnp0w0EFjw7SETrGjTb+Uvbrhk0nsum3a70GPAZng2P8sNEqmCyKLgiHa+iIh3EL9gVVOfmeMPx48vtO5Hs8QivyyrA8904MNgEx0BTEHctku7E34cmNQIHSno3weD6+HuVjLDZ/cFVWuB6Jg/pwFtsXRE+IdFA6xHm4atzRmbIiaoz/yjCYkrLBY7+Sw+3KCAYcKiGQ4XZZZSnDZLSqDl3vWipkqwvKQ6p6W6XdYTKqhBEVlVU+n7fS5uFLrVlZ+jvobZvvvXcZySW59kWLFtPPFi1evIgUSGXX0/X3CEYp11qiKrVVItVYWjFCEIwGl73SVic0lFkt+mm+K+8jb967bMKEaM5iYlsMP/QvixcjzEMALO1J4G8HMJQQTzuRe4vuiyiJqhnBBx6KuI+xWbCPgNeBdbxuKJ+scE5eLSICoNbsA5LDU8LJ3u8iAIORFe5RaoFNDSA5HK8UD9KFWwUQujSgV00HuJzP8HmJAjEU9s0LJHSVUbSVwZgQW3zrJnJtqm4EEr3fIbDQ7ty/k15JPBkz5s+gc5EQ7O9AEhCwKf4BnVEUBupx5qWXziwZNow+HCMihzJo6oF1jH3OiMnbbEAZckhFQLOQR1aUziY/bGInQ1SDh6xGkRGKFfs7iAcVVcdR7oc4JX7gTeg3PKdHcqCnAxVfkciaFhQ3AsWDwkcuTpuzeZQUvIVMIDL7+kEC3SGc3EmEFy+GeTt48Ys0Sr+g0RcvvvhFIggnlZKdMOZNO+OlAI7gaY7ZEgz2M1npXXxcZTVrB/5hM5FsxVlktA/w7h7xmNQIuDQPRwWaUxVUcJ4fKXW3yyZoAcQh8LHL3iqDXpZKgOslr7+/dp3Xt2rGotWraHT91hU+75wlu+79k7dq+T5gp78LL3h604TmXE36rssemzQ5GiU2q238lNF/vu+CEoR0hLwDa1oF30Vex068si3oJfagTXz9Q3qyJxSdHTpKsj4M8Q+I6/o7YBF24vrqYvugkfVQxzgOO+pTXSgZ0KNGif+1fJihkzCC+IPnzIp6RaQFpNPZGSafg2/nsLlDua0PYMlibjmTW8kmQOQyUDYGm+C3+4MMr/tRUG5XELsJ8TwbQLxMJwb2KAws3FfuGZjCPP4MsJsut8HoHZgGeMaEfWgddWVhWUomT/KwwRse81anGTRJGWl1drNRm23ILc0yGLJMKamSnJJcvoDsxKeudDobJgULc3V6Q42nIj/fm2XSG4pzLdm5VU1TiktysisLs01XKgNAuhZ7nUmZxfRfkXD08dGqCp8ux2TKs8EhCSkppoAuOSk5JSs9PUObWhmueTVMPy7LzimsyxTlsvysESkpZmt6ulpOHW+02WoLs7IkXpOX1xQGGOwgXdInMG96RkEMKhF4/peKhYEy4dn6kptDhievu37ZizeP1RpfveGK6dME52DhTVD4Chbyey+Z6LelXU4yR73q3f02jW7d/9GE8VdeMjFgPbuQ+xV4epbWBHc7ExR3Kql4TJGyxY//pg5YuMdVzYruBdP/L3VIe4Ak6UQ8GUvPrkP8RR06BaKTmMTTFpMnIvGLZC9qAODoQZ0BTjlyL4qmFCE5I7Lj8rgMzsK5uBpuFPDQrdwclIYAxgy6lHXNSJOgX1IWLFAlAeIV7II36NVph6xdzNhl/8DyFu2wQ6AiMV5SQpiYSqpw2HNc9kkXzBwxvKBgW2frWGuxy3FeaXlFZf8TS44vO7645usjHy+srrbkDa/Ky6sObJwyo8mcb86rp9OeCJg06WoN2bKgscBqzQ8toWlo2RVGVk06mKzWTnU7nWOaLrrl7pzpSRr1sED70rq6KFOZ7CVPR/eVeVrq7PYUlcbu9E5yOE7v1WWWlOn1i3YPL/XlZG8zmcq8WVnRF4DFsoaRA0P6KGYHI7JRNzDaUNY5ZW0R0bpFHbMqMjkFUxEJCmJQy7du/JxeuxEQXNdGeu3n/W/wrX37N5K1n2+k7arujZ+TtRulPXhnI84CXvefYeJd9lrsQQ4wWJwWTsThuQPYNi47bYitAkYLo2x96HHueza/wNaLco1SZ2kPylAj5FTCX9dZxcD4poRxieMFauIAO6YoHHBk4AcYVljAiNUAM7cOlPYoKdJpp5B/ARrbyOUgRkDqgPEYWr1FqAoJfi3bUpFtS5fdEskevuCeyH0LRuTA7jwW/cPOO3dv4+ujz9av3TC7ZtgFl6+tj6KAQTUwRwP7SwedTPxl+HDIsScSbxK2iZwS/8bwTRJKkRBP6Wxum04sOUQXwAY8uJzcX0JfvgU4YRQFee4gJwbtOmCORMAVdrT50TBtZVx7o1jEmaAomGATRwR7Mur7cgn8qY4SCXhr9auMERM6a4vuCPRNCd4Zp51x5MLhwy9FUDESRh1GOIzbmzF0fQa0imr4+z9CMcsoYRwTRKQAm52CqaIDTWxnOuD+0oR2xkR0zl9I89BKSGC6Gq92aCP5q+8cpNLvDAJN1H8clsBg22qK8U5xMTaquKamWGnk36NXMVXGqbhdntQNa8DNbBTMRC8TqaCcd9UTX5AgGkVTyHKCMIgwW9Mq8ZaV9fXRpXVP1F0MGf7Wulkz6ynPbzabj5pLis3RTZiZIYkX183qmVUXXVpfv5Jl6/ld9fV9EXhwuuWoGZ6zTIcHcVy0jM5oZLqpX99fI2P2MAzEahmoje8mlBbLsbx4Vvqf7kmNSGYjbEaqrD8rLJwMh9E6B1IgugfO5yqT1eFwryMcRq1+mBm7nGKZyMDpXGVoH8vwx0qGmRWAnMYm2YagGxggG3BAWj3Aa+wocKEM1AsnDy0Mj7KtmAJ7feeNI8Y/uBcI1c8ffHBc6GZ6I986faVlZHiBuL+t7d2Xrgkt8EYiC6++/QBJvvPOu3bT08/etnlZJBIMh67+3XvL25BGDyfgMJQaIQywcAUKPhRRC2b3o7mtMwE12mMprOl2RI/hCNLiEeFkfwcCGaasAVRnpT1SYzis6PPup/fHwY6ygRjfomZaj7Zf+z7awBEvft+e+H3vgIEF4BkEd8wOKYI6dmQ+ENxBMW4BRNph9q1faQDS4QN4PB3WWD2zpHHYC1QSMAVGlbfKQew47sE4Pi2Q3QlEJWBjISaKYCUF0p6D9NChAS5h5yEygo7enWUcUa/X5+V5W9sbr7px3dgx5tzpwYz0m3J93vK83NzcuUIx6SAjXxxkPF4kK0qqi91VJXk5DqdBN+yK8TU180aUltYXmox2+nZOeVVVTk5FeXZuTGbA75f+JJq4Jm4Sdx43G2hkWFPQZoNC1Npj6N5vN9nddtketPuBXDB5Y7RBOvEqQrEqk+xyK2QGLDpg0onsdePSc0tOgzc+BFCNQXTbDQqxIZUVFtgKR7deNbpWMyczOGzBR9tnL679qmbJ7NlXzV524dNPrQoFc9VXqk2OUOOs2c1IaTimVdg1xEk/1thL+05kLjbwyaoUPo08vdadnWexjKQXPc7/TnhpSZ01X5BlOXV6zuSR7dbyKWWlvb0PPdQbPnOmt8gx0WfXhCrG2J2uqakpybWekeGJxdVkXKBeLEgpSqqtfUBI15UX6zLpaUIIv8+UVVWGY6XwpYqeIg+gSwEX4IZxdQxvoxW4JLsbeMUIXHArNuC8F1VrThI0yTHbb1O6YvodFDWAmnQaIjIj8NKGDx+O24A37xmeX4Y24L2tKDuOMON0ZgV0vHH8dYoJ+PXfjroNDcAbhDMoLkDCEoXkglX6B7MIL8sfviduEN788NEGz+2bEE4p9kSMfoy+Merb6xVj8OvGN97OHp2s1AEboAs+Gusz6WL4OBXoJdTOlEGvQ9xohKIBrY93Oayw4A0ZcZm/6iyJoiZmKzxQEE8HVDjrVMe7B5VW/L8ZYqKPKkj0AuVqApmKth9j2JXqW6VQUUuQrj+T7AfiSrEH6F+FD1n5dkVhwP5oBnkjug9FTDM+Siw+EReZxm0bGDzRIiduB1orBJx6IKhNI2U8kk2eaT0fH6crp333l5/fiYjHeh0oWMkjZjOf23/cri7IVyswoYvxuzGenjATCeVQ7Lrih9QYYRKxSOz7fKu0h+noRcTpWlgaWBZBelf4mtzEJg5V/fBsFyEM1yGtj/pCHhVzFhEAfiAYEoMoA+BVVmMGGgeproeB/e6+bZeo3PpCszPjarP56gynuVDvVl2y7b7oiyTvrbfoV2/J6vvodw/sODNfsGU6zcWGJ+bNe8JQbHZm2oT5Z3Y8QPQX4VNvkbwBuYV0lEsB7hCtL3UJ+sG48oo4taJT1DpFnahfXTfuxsM3jqsLMt6djCBjaVZ0NzMtefRx/gm+xbZ69JIbb1wyerWNXMo4eLru6v6Ot99GGcL2qGuQv0H8jrAe5UElsBKRm2daBCZBhhbYfC4sIpDa0cLArnUMUEbEX1Amwr2uCBA6kb4paN5Fulb3/xgWrJBOQxvQsHDL3tWoz+xa+PC6lSvXPbwwpm3uoT2oOFF1r2mZthp2CJJknmmr10RnYjaMb8OdaF/E5m9s9NtoSlwGDmsqmWnL0GbMxSwk7AY7EmN+ZicWl4UAhaZFfQWak2APTgHlHOndGomI+r4pwlFm/RTu2x/G1vRn8QchK+3p2x+JKIoXwJ2kixlYRaugP4jLgC5JYVlFbo37uJHZ5Flh1cTEwoyOheVG5LMExYK1toimFNXWu8mpIv4mxtfUFvUfZ64d1qJa8RkU/RfXIAaHgUGzDLwV3QdnZmNATsltwBvEuNuhlQOrRXAk0W9H8dlRxJMHFes8tldJMw3BuIdQBhfD9enMk+esupzQ9rY1Lb3f4ZuivmVN3360PVYsfvuz4HwAQZ6iJ4pIR2ENOZmVgAKXgk7JHvNmcbqYvQpyMW7RqJfFgPgIEwxq6PjzOiHXsfkCckCDAkXI0fEaDTlwnmBl1wX2Ewsgs+CEvYC9ApkmKFJkiG9wb7K1m898CVDPYyPKtwC5mvDTJEYKBA1GQUuMivQ96MaWEFntLerNJXsNsDPErtIRQGIvqm0NZeeJRdvpb7GUPFBYkZVLX5LuvXCCtvdz/j6nGxXsWn1DlYa/0jM+1JqkSdb2jlCdH31GuSWPNSdRQdHNKbwpwhKE7ZwzcTcj1Q54LTBYEAf0ZwN8WU1KA7D+Grx0ga8xFDYdTVu9d7W/lB6VTAzM9l2vsBydijJZ9U7uBQGcotp5WdGVrqbq2wuc01avnhY4Pzf6vXiMAejob1jyo2KzhmtYA+vgDaY3xwk1ppEELYBCVcVoKyBDtLZAcOA3rjuIox3RhU5wA7/BhEf9gSC8izqG+G/8C9JMu2nJeruhwJHvLCwuPv/CkqJCp81WYMzSkpRk6iVJGqG40lvXMHzM6FtvHT1meEOdt5IeYH5N0WJ49/IC5V1HxayLKhz4bn52Tjq8S96lP/Fy7OXGibfeOrGRvSxu860fbfLlOwoM2Rk6Wa/TZGZkG20FNkchz1uKiSdDFar0FpbkWlKt1lRLbkmhtzJ6gDldPeK7fHRW7M2MJJ0uKQPfzHcU2fFN2sOnxV7NzbBaM3LZq2yvKfg+BfUMABjSVHIm4EMCjC+qLVSyDbjDlJlX33HFtSEjmU+a0NQv0usQnqT/eIgeUXUDQCjh01wNbeNJKqkwkCqAUfdGD6uaK27DPbiMaOVF0iF0TASKCVZ6EpFUdqvT6LUyhRmQhmWkHuYGtaBBo8oU2xmBoCQH5EUT2sjM7lP0kVfpYRqtKOR+jqx90eG2lFf+5qEpMye0Vl1Hrv086aPb7m3btLxk7XIps31SuvUm+jH95+GOB8W7+B0Xy6k5b3WqSgTvfXPC0x9+O7nUfetHl+U0dI5OZnpDcl1MH5KPUmoEMrI+01TFIA2DO35tLAc4dv8TG8i3n/NJAq+Z2dExM3rcwodY5hVZvWFW/2WS8AH9WSIdT2xwk/INT3S8N0uxXVDw5/fAt+QiRnDafEmE8xC7tiqF5BDR5uM5B1yoTMZMcQB7GcUe4lv1PvTlPjrv4yPkOhL6/qroceLbR7+m64/uIhnLl10S/Vvrxo3dGzsiR8lt5Dxif+cSeuTKb+kbdMP7fyRXEtOD9Ej7kiX0nzdePmvmhg0zZ10e058ruNWRaCmr9QKtz1y/XMzSGqj2Ad8Km7jT6fU66ZLD+d9Xjb5ixLodD3/wQZR3+gAMeJ297Q4f3/bjHbW1f9I8dNvTP0Zv9jnELqdXsb3jIuKt8C099lvr1dnYN7Sxb2i9wiTi/B8nPVHbcutFHQ+98dNPEf4Tkndg1Cju5+Q/PHOEfoXjB7hFkRFpmGeEIi+FHc8N6LFpj3isvyNCUwQ1c2pChq4/C1FlhwKxT3MS0cBcvy49CxgxD3jpam4s14qr0iJ4q0I80wZIomQhVSHiRv0X5r3xC0EXYA+YdMzjiEAGEYlbcOFqlZxVRllAi2y3LgCgIyDYZdFRMb6oqrXClJpxycimdtqSWnDepecVpKbNvXSusAQuqocpVxeN2+gMHbjm/VeGbdJubJ6wMfrk8uHt/pHDl6Yvr9jTXeRKFiq7H6xcnr50+Ej/xSNXpKa7pMzCC2ZPKB+7bF3F2AsuuD+4ddGircH6SZPqB3J9zeSJTU/P/+Q52uJvahIqbuqhV+cPKyMrdj8nJWuf201vKhuWT9Z/dGNmusTWxETugLxWWs5szU0EPcw0KNYhzG/R6TBZNCbpm+30wR3TA/OoN/pP8zTLOrNZNe6vtJvs/im7yu3N8+mCyTWC2LqDPrqj5cpF0RW02Gxej67Bx28QNl6UlGsqMVbrRqZOEADu3EaqpZulx7hiroZp7NMEAMshVRCJcJOF8AiPVWU4KyFZx+B1HOabjMIsPZ/lyEs2u0zN4y9onpLtvmDB7HxbRulFT16ymkZ/+rTbazZkeMbMWrzysoufsMy9oGWuQFJy5l84fY7MS3fLlqKKoL/apM2qmjhmZJoxI2PSyLHHaLT/5JjxjVmzH1s1YtcNu675TbilODW6uCklZezMhQX5w63maXMmZig6QrKT0VYoieBITLaks6GhiI10KUwVMHJoTIkGj0DY9U1+E+VFNAWpSEV+T0pYHakAd21cOXCWI5kd3BAuiyg0AyxxcSBHAo4GkkZ4xaF1sNx5jtzZzNZBhRWiKUpKXnOS0V1dltm/czZ0N4SoUSnmW4empORTknU/KWIs10f305NCO5MS1tTcHUvpUeeTo0Y1vkzvdDY0hJ6aHysuPitV5JmK7WYm89NF3bOXmZSjS2UV0kYWYkDJjQ/lrkiYlBAggAgACyiT9oTPvBTecmLr0osuWrr1xJa+KZFFfEe3cLK7g19Ee8JA6Pfth00Pt4qL4bFIZM/Wbnow0tG9dU+E7D2/MxLp5EQS4KZId8haZn/phDZUMn/xfGDbG2DllxPZLZMCBQ/hOLoL4oSiKLt1QS8xBQW3nRwKBN7ccOLEhjcDgUjHia83kgUPffPt3ge/+eahjiefPP1UNxGuOBzd1tv39sYP+7b1iu+c+LoDHn2z4+sTHW8GA5Fo0jcPwcMP7v02/ORGRkOuPF4eff4Yb/jcG/3dMQ7WVqK+OAmutQBF45JOF0AwD/qG6mI25GKQJU430Mcmt8yMxoqgRFTuCUG3aNKmE1tEEb0BQ2HZRXvQCQcy5NSuXb27iCcSbZIamWwsi6aoNqHb5q5dZA67p5jL49G7S5FRQ9pDPLt2Ve1CBgXvMAHmrl20fRf8EE/vLkVuFvODitufGs7yzsDJt1qIaLAx3Ef8CRSpQTw2QNi3KHat0SbG+ZCswAhIRgRgfyWyFjj7bO6hoO/xj7MW1CGdWbcg62PGSwMOGM58+3DvMj7Sq4UxAkZMK64fulFhKBRBTGsE9zHuZy6xDkmpQ3k3pspHaSYqJVD8ElE99Sa+pICBSBwwKDiY6T0amXc7MxAxQUPQpf3MS/xBmIawqO/PEvUR5OYGbbzQDrOWm8RkjwqQQNmj1REgDneAc6bxRpNUpkIYCb8WlcyLgTLRHRKIRZUmpJMyFYDQtp1x77edO+Peb/0j6ZZHxpPrCWcryyz22Zsq/a4KfWtZ1dOhsfOumVScQiTazudW1o+orUxO0rpGCJvzyy0ZskpMV6tlQ6i2ujTJLVSyunYOqb/XfegHUp0c3LH7dq9odBVbRO2oqa3V+lRtuW/cqCp69LGZW6Y3FNkKTcXesXXkrYoFMy8cPdU7Ijcry3teXXVjwbVD/Xtscapl0C89Zras5O0FZQSWk4bnC/m/MmuTAQlQyYbD69cfFt5mbmdqKFCc2RPc04v46esP/3R4fd8UlIix767k3pZFWQQ4UcXwVCbSrw4UdQYZogoJZYD3ZRMRTCHiUDHGzm/PJcQZdIkzbnjvQuPNp+lxeuiG616v2lNwz6qLfzr2u0szx971GaTDDlKt++nxZ4iNDKfHzCoybx4ppyE+Veoef5r+hf6efvbubOP4MV9tX7zutbph2jF3w1uHLoX04nn0HX70BVC9qX+fuViVIpDPaT59uYeXAcZqYG29DPQS+mrUceNxvJBwyQTk6rWh2BYuZdEWUtUCW2wisBGrAkFdgBG57GY6j08AiiHKQ2hn3UUPWUpUu593qIfZeNVoWVdLn80rlcnrsDAknT439UNDVXr0vsqJkrMwqN4nFubS37lz6VaTJylpDB2TXai6J1Wr+pCO5zU52Y70r/UFhnRBPFbu7M/mjz/lKDhsGlVg2apKK8gxVmX3bZ7gcQvNdtdN6S5zetqOXFN0fsOFwnJ222A2J3OJPvIq4F5wF2lI3AFe1YwgLNqkeoXJURB0IYiKSUyYb0/M7jYTqMAZ3IVoswp7ioM9xfEGPTrGeqscnPOcjrCq/+QGK4YEH3ODlTOJi9P6gjAd7P1M+fA99BTdQZfR7fTU3cwX9oG3yaUkpe9j+ujqrAxj1g0XOg3ryfV/fYwEL69ZrlFnJdlVwdF2O/0gqwiu4ImuOe7L3O4sY0bWhZuEtJRko6xZ+o+3/t33yhf0+7FkCvkH4a++bn1b3sOCmezCuu9h33z7Aeb8ejdJcQo3qYVqP0kmL/zp8nbNjJZMd055Ro00d9eI3gsvFEYRtUrFh2pJiiQIpC5E1PTRMqvlgskbm14++T/0osv4W6LNK8gBIr32QP9icm90dKltGvm7YoMZ95uecS4fA9TH/FdlaITmH+LlyWxvMCermS8CZfQHOov+6hU6c7Jr0sWuUfYH5E8xPVpcW1tMiosxEMmvXwEWUXJKKeAXZc2EmVzKxOUA3TqZm6V4pcqCTfCiDCHRa8GuE882fvVDt5C2AbgBnAJGIIFtB9yEK8Q3AL3hDpGg7HJ7YWG5VM23ls3KOZ9+/v3D40kueqgquI02vBUmr2IuhvEEN331MvrqFZoR/sZrrKKYTELPtUw72EBUkiTwtm3DvcM1/9Oc/UHOeJUg6t35JC3aFEGvV6UOYN6dLyciT5rS9vHHbSO2Vec4cnLGGodXVQ1Pc7tsycnOnOptw18evaFjlMAjPrqB65Ib5Ma4PYuGGCWZiDouGDCiLxPvJmKETCoizn5XtGWn8HCFfTP9ODrlWv4Rms53d0Yny3r6lGedq9+xk+8WHqt0quim6MRr+ef7t/PPwG38xlPcSjlfjACWNaPuk2PyM+Qc04miYUi85Kyczs1Mc+VMfune1Xljw56ZBkMe/+5gnl7Nl5HXz+9spldRD72qufN8MbJ6mq9CnySKFT4kEwbyfbmkiajLPqM/kIzPyuhppGPQ1uCYeGxA1p9oSXQMrf2VA7D2oPWPwm8rNK9OoXbjywRyEso0pcZI73cobkShLsNIzWi90d2h6u7o7t2KKotBnyctjAXTMgytRRdHgkbgTVlgHKwQU6jwx5g/nSeSUCda8KPjXN9+OCfoRGD/mjkv4jqVV59E0nggG2TeDxxyUAfYwA80hNZmEfKJcDKl9KY7TrRP7Ljllg63S5M/98JNK1ZOqmz/8oGrbAXkFIPV+lG/vfWWPJqS17H1iuJiWa3OHeUvOU4vpX8/cf1cnU6VHprQeeuf/0VGPIUeNP2nVJmTFr3QrkovLW3IizYpVcV0r6ekPecee7SbGtC0nDX2CX06V4/+Yx/+t9ay+s+QM+JH4kfYJg0/4BAmfkTvJvO307vpPTvIPHYi88XxcH339vj1vB30HjJP4QUVWb0A1HElQE/Uy86LxQqICSkbgBX0MxY4ZrIIv/mJEs0qRue72U3zgPk0Kl4xuheqbRUnCbsY09cznb0aTWr6ntelpSWlqkRRInJySoHda87NSdcmJfGE53kVoK/k1JR0na5C+ImmRE9cV+/355n1OeYid8GIoK9qWEVVIC/Dwaeq860+f42wJW7Agt6bqm5am5yakZmTnGrI4iVSWloC2DslU5+VlZvp1CSnWYRMHRCDao0LVQ7TWq02ny+4UVRLSbIsS5KoSZKFJBW/Mejz22zvM5uICAuFApTzIH+E4+aPjdtCbimTNf0fxi5uw/B/GT8yZAz7zf/tGJYpw0OfGDKO1d6zx5E/FI8MgMbLwOkCN/LRfzeURGKD9Nv/PJjL2UNo+aMM6OD+L+Kmw+pzu+ISci9zqUGN98AvMxaI/RJmBBQXoMfvYJgkZehMstYU1LqDUAv/iQB0hdFosVX56hc3jTIaUwWSJKemGjLN2cXu8rKi4uzsLGNKmqwRbqkyy3WWlcEZK9sXLrzk/DZPe0lDbtnwGeVPT35o5KL5TQ9+MHWuuE4X9FdXVDncBlNt3fQZs3VJLpujACY6x6jTGcx5LofTnWeL3jfjyjMqDa8Fiio9JSVFrVPnJOmSz2yZuspvznnoatrT1kY8Vz/kq2fjcAD41VyAtTaEg5xVlWnQI9BII9DPmIeiz+UuU/l9mTpYAUie4AEQGcgWYTKpIsKtxbV1BkO2XSFI7Nnq3NF+z652vtVakh0sj5T5skusctutlN7u61wVNltsy4qUiFlFy2zJ7lXLrvHdTvje8KxZ/rqygL+8LoFn3MOpmccWcxomshqZlbDCfLermplpwEFgIRUfcmY7vo7ZQCrwSVzHbIzwefEYsrnsaW4IrIT6nXYtgjKZDKkxguJ+Zr4f85cjA3psVj+8kVCpEhIoHHPDHtp+GDeEk24ypEqhk1k/NAGNEqt/aPvhjYRKER+TU+zxX7Qf8Cx6VAfJkCqHDtYv2w9vJFSaMFQJcnzmO2E6p+duTNekQzHAOTx3+fKYY+U5vXbp6+ym4g0S83nEmAmD/gIDFqGxiAHxA/3omf/2wBljCyTE/kHPoPHA41yiRKsg0Og0DPxThiGAQiQmR0ghVgeXmZGE10P6JRbI6CAkM6mMqARBghyRkQrw+sqAXXSnIe9jCwBx8GtRd/hb6CZ678+7dnE/k7lkM5nLQf7naBU5n9R+tWXLV/QPdC/9A+b43dPGrrkzuGDzo/T29Y8++s/HHiXl3hHzy828cIXRWen3VzqTP+3paVo5BuClgOB1elJeTfPkkYZfjTbk3fUzvfcX369K/CqpZS1xlua9tDE8y3jPkvWPhh/756OPrr/8UZpcqztvwex8S/PG6SMc2WqBtHzwgcpVO2Hq1LFBbcaiPQsnFOhJzG49tgZNMO7lLPqeTYmo52KKD0azsqh64oCXni+g+0W+hCmFGUxBSSiUi6OjTajKvUfTGgqHWjX3wEV/SoLwYntC+LAfFe38itizK+CCeU+YDViFwYwuFTFZcE9CGr/NrGRQVvuuvFieCdx1DleGdk+cqyAW4DJIAqbEC5+OoCoGo1SxUIcoLpWJD6PlpaG5CvQ8oGps7fBE3/J4yjaU8AHP956NJQNXJQ3kfk/rxhI65ylPR6sHbsO575GCykqtNt0zYeIwa2isRFvx9Q6Ph+D7qzxwVbLR4+GL4f2N0W10Dr5E7n8KKvLwfg9+rad0Vbg1Jyd/wZ8C5688D/bF3UBHV0lfcFO487n53KXcldx27nbULetR26FPk+Qy0a90gvkOopQHGDPFZiAeFTGWKhOlPIDzCjkSD39njEcLI5LBQrD7QaAfYEJFHxPAyJJiziDGFY1wbfJiHp6BvPRJa/eZ1gJdTrmr3l6nSZ7om1BWUNB6prt1UdtWdWbnIv9NTi1ybRheDQ7Mah23Vy7qzFRvrVhi7r/ZFcKZJZuU6T2g4/N0YV0er0tPD6cTjS49g/ZkpOvMBuIxmOn9eDYbaA+c14cxiyfhbfygb8Rl05pLK412SV3hmHr+Ta0+bNrIhue+LPdf9XVLXo20Zs+aKnynSjnDpVSf3fL1Vf7yL5/LG55JLqsrLGKQT1HzU22OLjdXZzAm95oAHWuBO/laYVFiId9iNiDI79RyI5mcFsUChoBXG4tIaVZkf/VEssfDWMbSArchJglUNI1xkZBgjTx32QUrMAxUC659b2WsQZVeDNjW3RHhy2PxdQBXrHp+5kzagyY4hKbiVvokkznIRpRz5ieKbCHc0Y2YSDFYYD5IcVl3EmcACFDJzWKWC74BR1HnYJZZtsQMW9CuJfEKvUtj/SiA1ttjvWWvmix8VQgFUxxLhCDcRFjt11rQMUfoDBfW4YBD85QMbUf1Cx6kazB36F6AAuqCjAI1pPceumuP9fbOjs7brQ/cHRU3XXurs2nh2GLzi/R3tJP+7kXniI2z7LdLey5sK7zM42yoK4xnoofJHLQaovcz26HBfP2K5/w/ITghJYTQDzH3k/+5FSuf9CU1ulzDk7xP0snuUJKucoS/lPaseG758udWEE/NuInZSSFOzXwNjjFfaRuM4nBuFDeOm8hNxbFkQEXFAss4Ey8Um31lCHHDOc+6JkGD7IRDjKXCcofXl5kpZ9WVuWY+PZNvHXIZfRnmmU12EWrCBvLo6obuEdF9SirudC+bOyM7J6lg3nlt7vkTJsw/67rvZ7SfSrSliuX5KzFiErPyVlLkc18B/JEmGzg9l8cVolwljS8oAzoJDp0RAY0OEC/yJW5JAJjiZjpn2agaT16rOHjk8JGDFeSVYZ/t+umN+d7Vi377Eg3MHjPtjd0Lt86+qXfi/Im9N806r+E2sbj/rbnbGhu3zRWqZi9TEcf2Q1MWWegXZTTz4YyLDkyLfhqe2T1zoWHV1Li/fUS6B+aCSQWAC8D4x3YiAQmMLJZJwuDSkqzTov1viLCQqUTW6phEK+AOSJrzJloba9+cSU8vpf+e8UF9o3XSeU0TeI3+nuWWmjcXPaPTj+0+1T1Wr3tm0fsNjhX36zX8OPGisn2vnD9tsZqmkn+lLJl1/iv7SguEUO2VP4VmuulVfCDvZGfnV9u2fdXZeTIv+ntyhW1e/ZnNtQ18QnyVVIynwLFoIUAyhQQgUGWdU3DHou3cvO/Lt5/xB868pB/z7kHhNL2erC75Iqv/prI3bGQ13VfIr+W3y+rFN93k9aFWUd/0WGfvY8RBspybyZM+WnNRPj1Jvywht9F53FlxdtJ/GWfnP8XY+U/BdTB2l9ApNaqaGUWIdqVdLIhecwRxdDf3CbNjLeNquNHcBTHv9zQe9SB+nwNAiRexmORCiSoqWW2y3RjzIYBd4zYGmNk2zqGYENWL4TF3mQS4CkXeRuGu1tF1Kx5dsunIb4jquTRfSr1JnSfd+vLFv11AXlvYNU1fcoXfNvmt1kXp6V2teL5BNYWF/+q//7HdoirVlOky+FKqq696/VGhKdS5ILRqdrBhw+Qr/kDqh5eUEOGVbbPumReeZW6Yes2C4ipn3ow3hLtXXXq/wN9x6aq9w5U4YtGa3yw3Zmfk5unMaQ51Jr99bng7G/cpZKx8hbSV0zJ7yypVpgkjxCqxYt0Bh66gjHfbiTHTZFeixZokldD/OCl9JeswmvufLPjxrmUvhB6dT7SXbv7+wIZMAGm1f6sZKKY/SFvvpv/Yh6aPt7w2t+XV9k29L82+99NNpGsk/WlkrAj2bhXxSndL951LJirEZKIrSHoBsfT/JdpzGX/abV76ffSDi/liuoIvWx79QNpIf7DPz+//7DK+jO8rtAj0jej7F/P+qI+vaIseVmwLgYtpYz65Spw7AG7MSsmnIcxSBda2C7hwo4lcJZYePNj7x4NCC3+/IUVvGJMdfT36RvYYgz7FIDU+03/gmWeE8c/07+GLtMNsFllPN5HNQMPYhmkTv5PO4g+fbSyKUAC6xyABxmMGfh94MwUcaEhAbmsN9V6DIF9cH2q9Kl1MTaLLyJYcvcaloROOfkgnQEafQ7bQZUmpYnphkG/nLwnyLqET3+nvgLPwbro9K4luo8sshmReTVa/+iq9Xs0nAzG1i1yWlGVPLyynanK6nO33FbJGngNttSltlRFRQluDMCawB8t4QJb5ROQgMRllzZqWvsko7FU9NW31zuie6GI5RZOssaUk82vIl3kpjmybcKmw4LypNmq3PXF+/93nT7GRT22PC039F5B3xHRzekYy+npf7khPTjWhz/4AX2hkNvMeJjc4W0Ork2RniBDR5dZZSNwKWHQaTUIZEYVAUASgec64XuNvmVdKr/cfUuno9aXzbtlwiKqYVqv/WbKaXQsL4Amy2n/oXFynalL8rTdiT0X3MS3Yq7Fq/xWr5WweNxfxzy+jUzngEvoFFwSjQ5Fk4tUDhDhnqCrsgP6+++h3zCb9PtKepuHJK/SDefOI6tyhq+T7iD7xJdKeJPI9pAHVmySDL2ay4DhtgLvM+MtojyzKiI2guf4grv06uo+5AA2Nb9E3JRZyM0WxU1B4t/9c75CA5qrV/VnMlvnsSCUKiGb1DoypeVB7rdSL2i8l7gLqwoZ+JRZRg6YgzZEFpAdaZ9eK9X1TmDM8fo+FbVFCLESUAPyKYxXGPhiwtQHcEPeWOlfcZAyrb2LxfhTEwshjmsJMslV3I94Lo/wRQzwCFtpz9v9eiBEuZECGrY5Z9KAtlNQY6duPzyL+6u+gPahVj8Wkiz8vxiXnKgAg6PmM8pl9KPZhJuixmIftzOGFb0XLc+Yfg/EKB2JZlDEuG4WP6AQHtJ6WudxgkK1gAP2WBq7jXs/isaixY8nSuvr6uqWLN5aY86fkW/BktuBpYaHFYsmX1XWhxYtPL15SVx99rBAD7BepuoE9MecXwtRbMBX1lrxiyA6BAQXcRdwKbj235Zy7J5AZhwsG1lhUrmcgukZiSUFPAWaErQugtVsaMQYDFmYNZ2C6LjkzyG4EHMQbsBB2Ax3LOBYOFtXR3ioxIW8URpOmuO0WPUg/YrutCn4Nb65d+yb9lr5Hv31z7eVFgSXk8Wt79y9fvr/32vf2TbrRr193weZPc8yXbixd5F7CJ6dWP5qZqs0EBKySkgHGD7uybKE7LAjJqcXXziEauljKyU0TUpPJwlreVbZ2erBJW5C+oq6FLzeuwwt7eltdS5Dt+sF2FLG29V6y9k1iGGzS7X95sb56qZgDTaH/gCZdomqur5ne3fGbx4rzyV/S0lXpWt6SR4hKayoLlAjkX7Oh/N3M1AxVcvqKDfQjojYVj6zgCa3cfOP79KbDW1smPNQ485slSrqZxSs62+9YibMSC1psOytFGT8CCqmRshCGsJqPY1ARdEVWfPMHz8D5hRnu3HNO/++BuDDxVHfW9+J+3hj5EO0WcC/K6r794f7jsho2UTsGEcPo6hF0q5T2DIQ5SRmIJKy0pScc+4nFMfIwfB6XJcIXdLFYpuhFHlaijmDX8FU0lsAX1UDTzpbflV/nsrkipmMZxtUzbgx9f0MEVyb7bzIEZT+K4MckkyBTHZThf5iRVIqJbkCU8X84DD1Ue7dV3bR8bbMpPV3aZjb3L7VMM/f/ZDYLt5mnzaoh39dkaQQpWVWxcFxp+XJSXFMzvaYm+sEYfuPo/p9G8x1j+n9i+X+PiefHyA9vk9LTTc1rl99Utc0MtS2B2pLM0yzCrWZaQ7U1E5aXl45bWKFKlgRNIdY3vWb46OhVY8j3Y6Kdo8n3A3l2vmqMYu8FwwN0fQrjgAY0rci06znZ4B0U3qH1NBc3HMQHlLyqe/Xe1Wtapl8G0/TlRxE0iWSOM0WRo/QL5Ma/fXDvN5hiVKBpq9dORfC7duqn9GnHB4p47gMHmfQpvoHRFZnLDbRrOrFIHdI7MKNuph1XHLF8jgaiYvYpFbpMWUIGuULm3czKwCE8osQx5Mn4Bx/kbz7efnHtBR7t5FktublznyrVql0lWi1tlN5p7TjvvA7aYXaJquTh5tEGPX0vGtXKi+68q7r6ZfpIRtqD0e9mzJjAxWxZFVkNysVxjdSzeBTc2fx4PPqYQk0a4qqURLoS9kP8vyg44p4bRmswjVhdqu5BHvzHmMs9BpicP4r+NGo+i/Pfgugr3LuVb2ViJDJOibL/5q3km1szvqDvfIGScoZUe+BMZiie+G78HwC2UfPnj7Ip/xlgDf8IYqAfBz0Haw2TJzdjoCcV7OU0+ffyAS6LaYfqOE6Hku8Q4UIwxFw6KVOL5/jXM2f/5xmd8a2L281hknri2w0ZFpp14mtVelXpqEBTcan4Pf3Ds6Q2+zynK7P/01ah7bLKr+bQa9aXrJtZsr6W/yF2K4f+Qbwi8/Rlq6CW9H/236vR0hte+r2gNmc5sy0p6uX0DwfgyUyX87w/rOi/ZWpl4/qSmes868i6OX+nj5PaHLjTmk1fg/lLicUDRFsoKzc+JhndxN3I3cbdw+3jnsJQxH6FqTAI0PQQARKWBJBtVMkSxupyCEYT/vMjCahrWHc6E3CVaBCVhlrWfCIrBW4UCIiBoK6MEB0qFpF/EHR6E2oM0ZauFmEiE6DatV5ZRL7TildOk6TUI6A1lp1ZU8k+rMepOCUH9Ygvg4BNc4neaIIH5MMLJ+0y542ZvLDXsmDSruoxkxYJrxTYr1+0m35YjemdxBO5ulGVVapJSteka6rHqwvT1GnD7K1ykqiSgLi9HQrktGq7oBvTTXdm+1VjS8lvj1TqVXJavu2mB3hSV1dZRCYcyVw2kpx5aRps76V55LGlGLSPj666OZmkZuqqJ11VpJHUmlpnulo32frohReTBx5LybPvn9eyUpZ9Aq1qu5iQutpy8QA9QfLGTpq0K4/QE3wOMeWN2X1LHsnvv6Xtzb3O4I47297a6wju4FdXbOA12Vl5DaHi3HELyW3JQp4qPdUhSJoUQa1+4DVyp1JC5EDe6XEBmjL2DXo9kYPDkrLPn3XhBlJBD6l4Q6aFPjChcSogi0J0ZCQVU25bdTtCFlXK3/1CFuHJHd+RLQJJTxOJ+cvm0bS49ImfQmZrXuu6T+bvLSchfY5OS3eRGvoBEQgGyuJ+R6yyTnqMRc0KAMeb6XahFAgXiSxlmoyccPIHsnTxPN30rq8XHBo//tCCr7um6xYsJEuJdSEZ9/vfkuaVz8rC5MbGyYL87Eq6/7e/p78FbHUfrE2TPB+40JHM3kqJBmfHX5sOVhvAEOA9BbtbYlpn1PbH9f641QR7zBcdWWNJMYwVAso/ssBr5aUQkU0jmvLXT8rIklKkjGjrZ4I21UCPGFK1Qvhy3tlin5pty8+dzAudepUmXZc/8ZEJzWu/5GvKZuZVXVGzuebyiopA7fpNnRbrCEdxiqU6pyG7Rp+Vk1QmbvrbR3OvNEk8H/0kMyMjQ6vlXbzKZpu0cuXKOQ6ez0tRSVKS2ugf2RSJ+tKql0QuXPbGxuqKDNtDu//U076W/1JKyhs7fY7HMTVVbcquuXDaeXZvon/sUBqDWYNnE5sWIyLoEqgMmxJp8cxLQD2zP6Sk8UBXWAw+poQWYnQDM09IUeLGYYgYoNhVAzGEVfC9XOW/orDgbETQxhUajMz2YmwyUSsbMIwO/oM1fD8MtDLtQRo6v5B4IFWCjrQDBdWIX8DALMrd2FN15BSKQzl1wneHxvpQvm9iZAyzHCcJdi0iiw+F3wcGggU2QaYIOxy30VJYNqUFYSWO5KAxxKCNiTRgd6WMczzqeYL1kVNE/0Mtsy1Bkp6ZjGid8QJGBOAQJVgrOdCbHA3LJU10X2ZyRn5o6rDq6mFTx1VXa8i/iosuHDbs0qlTLs3I6K9W5iBOZ+LxWjvQ4lnUnzasumVq9bCKSiBaLqZ7dMOq4ZVLp/BPZ2dkRh+O0aLyWe3PZTEzXGf14Gw+t5Sc3VjlP/zEgoV2MORJJtJnYJ20n92+SKKkO9oUi6ShmGP9/8L3ZQxZE+jfrGeRc63AWxdyHq6CxX6rw2iYmri6XGQktZ2R1/+XvLKIgKdmanXmns+iCf9X2cQVDoMQHgzscs4kFsMuYZ9lxmOcxPcaCwQse4MmrzsuQHLGWIfE7cai+ig106jiwtOFK3xwySubDgcZWQXiUUIoKEwDtiPpV/cd42HOsffMvI2FrHImbMVzb0H0kGL+FegpxfxGzr0RY1csG7dS4oeMz8C4JHY+sYsJsc9VwJdlxN9wB90aYtMA1JeVVwHcRNjXMK4QOhINTB563LOQkSzEMq5iYUgbShNnB7a5rPoFNPDDoLiYbAKvhsDFlCQtXZXnyPAMcxcWuocNz28knlnD3O7CJigYMlmUF7UpKfwYWS6lT8ru4kCwsDBnWJA0153IGeZuL3S7i8+aN/QZSmX/y8AI3JtLiXGltFQ0BE2yyZlwFqpQD1DOI5UX9x7z+xLbStv3r9u/n/YMnnc1XqThs5OT3yiVxTnmRo+n0ZPY5KpIuCocTjzT9nkjtFOs1pWvNtcu+b4031paas0HmPA+974MRLESD58o/1PO4Xbx+P/kVEP+W4nnrvb2u+6m59Pz72Y5spfspT+wEHkssrfkOesm5nrP4KzGH2L+pArvjysiG0fFbyM2vxcO0WaS3XYscAdNyPcjBELOOoJWQRiUeFX74gj2j6ZAjnSJa+mHsN1YBNaP9/8hOhIuIVVik8XjBcX+s6nWDSuP2HRa5lktY0hYeC16eDs/jy6JRDDiZwRhaf/xMPFFP9jOz8cIFJFok6oZTgn2UzhKOq0QBDQv2pwmrc0kaHVQn+y0iW6tTXJ/jpHoNpK1gO7XYu5zDFm3kV4LDb8WcmIpWdu7degtALZ4ayN7dYi/kQlw3i+k2f8dt3luX6N3/xsW9FzORKqT/yVb+v8AUeQdbgAAeNpjYGRgYGBk7JRy5JSM57f5ysDNfgEownA+5XwIMs1+ASzOwcAE4gEAF4EJ7wAAeNpjYGRgYL/w/waIZGAAk4wMqOA9AHazBU4AAHjabVIrDgIxEJ0uYoOGAyCQKAS3IEFAwgFWIeAeqOIIggSHBIMCg4AVJKzkCATdhIBi+tntdOgmL6+dz5vPVigwX7ICqD0B0sKztgn0i74FfJEl8syy8SkTm6WF6CC/ETm5v+zdnCVy0/oq5MQPjEcslkFIH09Ra6VFcgyhayRj5Ifvj/Ygto4l80HkrPMvTi+LaDVdX7nnEjpH3FzvGm0bQ1HF6xmV01HhrqrZs0hezjRlqMl3D1dmm2DOPOzZaNaR+4glq9VjfUlWa4qokx2WWCD2kdlKfJj9QHZIZub3Ur+6r4kG1hJntmPd7w4xwHPX7ePKZlT/O/77v/xtDp294Xo6ITb+nQX/hdhigDurlyVjgB9mnjO1AAAAeNpjYGBQIwD1GNoYVjBcYbRjnMC4gvEdkx7TJKYTzALMMcyTmK+wyLDMYDnHysVqxPqJTYYthW0S2zl2IXY39hXstzgsOII4KjhWcFzi+MMpxKnAqcdpw+nFGcG5jfMU5zcuM64cri6ueVx3uP5xm3HXcX/gCeGZwXOGl4XXjjePdx7vGd5ffGp8GXwr+K7wK/G38b8Q4BGwEWgTOCPwS1BMMEgwR3CVkIfQBKFNQleEvgkrCG8SficSJdIiskTkgKiIaIzoAjExsQixGWK3xG3EL0n4SByQeCLJICkmGSY5QfKVlIFUhlSf1Capd9I20pNkXGRKZI7IfJO1ky2RnSa7S85DrkHunjyDfI38PgUhhTKFPQr3FBkUJRRnKF5R0lNapHRAOUv5lkqCyiSVWyrfVCVUvVRnqG5RfaLGprZI3Uv9nIaUhomGl0aKRpXGFI1VGkc0bmkKaRpovtEK0tqjPUH7jc4EXR7dMN11uq/0xPRU9JbpvdKX0Q/QX6b/zMDHYJ7BKYNvhkaGGYYNhosMXxgdMHpnbGEcYnzNRMkkzeSOqZtZhtkUcwXzCPMp5lcsTCxqLOZZ8lgGWM6x3GJ5z0rHqs1qn9UnaynrAOsN1hsAt7aMyXjaY2BkYGB4z7CJQZABBJiAmJEBJOYA5jMAAC5XAfgAeNqNUstOwkAUPS1oQjQuXLgwLhrdqAkPFaHCykRxITFEo3VbBEoj0goV8Bf8Mt35BX6D8QOMZy5TQujG3Ezn3DPnPmZuAazgDSkY6QyAL64pNrBOb4pNrOFb4xRs/GqcxrZR0ngJE+Ne42XynxpnsG/8aLyKTXNL43dsmHHsBwpmHRdooA4LI7QxwBA+AvTpH3IFZCy49F+594giUSXVY6IIXaKOMBFRGxM88BvSi3W71ES0EBXkaWOxHDyevnBXFT3yPUao2D5rtLnyZEOyWeZ38UylyvNEZgc1XfE8UW8PZ1QPqVXZAsl2TYXHWuo2AxwwU4FWQhW3uISDK6JkVHYhLqmwFhR3Cy80X6mBGzLKm2e7VEY632gWkUOZ3yrv6uKROZWmQ1a9UJNTyuFYlo0jeif/6N2RV26xi4G8req9JciXOVgyZZcVx1oZzpTxhBz6zblZT3ut8cyndyoRFq0oZ2VOW92xwg5t+bfUzYt/4ZJ4UQAAAHjabZT1k1xVGAW3F0lwd3eHefe7z/AQ2ODuHiCQQFiChBAsuLu7u1twJ7i7u1vxJ0Bgen5jqra6Xu27fWdPnbN9/X3/ff6e3Jf6/u/z19Qf+vrpZxqmZTqmZwhDmYEZmYmZmYVZmY3ZmYM5mYu5mYd5mY/5WYAFWYiFWYRFWYzFWYIlWYqlWYZlWY7lWYEVWYmVWYVVWY0OBYkgU1JR09CyOmuwJmuxNuuwLsNYj+GszwYMMIIN2YiN2YRN2YzN2YIt2Yqt2YZt2Y7t2YEd2Ymd2YVd2Y3d2YM9Gcle7M0+jGJf9mM0Y9ifAxjLgQxyEOM4mEM4lMMYz+FM4AgmciRHcTTHcCyTOI7jOYETOYmTOYVTOY3TOYMzOYuzOYdzOY/zuYALuYiLuYRLuYzLuYIruYqruYZruY7ruYEbuYmbuYVbuY3buYM7uYu7uYd7uY/7eYAHeYjJPMwjPMpjPM4TPMlTPM0zPMtzPM8LTOFFXuJlXuFVXuN13uBN3uJt3uFd3uN9PuBDPuJjPuFTPuNzvuBLvuJrvuFbvuN7fuBHfuJnfuFXfuN3/uDPIeMHx6ROpyMLmWTILEtZyVo2spXDukwDXZZdlgPD/+VA0b1vKguZZMgsS1nJWjay7bLQV+gr9BX6Cj2FnkJPoafQk/QkPUlP0pP0JD1JT9KT9ISe8Hx4Pvy7Qk/oCc+H57Pns98j68l6suez92fPl/6+9J7S90rvKX2/7L3vfZX3Vd5X6an0VHoqPZWeSk+lp/Z87fet9dR6aj21nlpPrafW0/h9Gn2NvkZfo6/p+pJ9SvYp2aNkj1Kn914la9nI7r3JHiV7lOxRskep0Gefkn1K9inZp2Sfkn1K9inZp2SfUtJnr5K9SvYq2atkr5K9SqHPfiX7lexXsl/JfqXQZ8+SPUv2LNmvML/o9J5DZlnKStaykV1vmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGOYY5hjmGO41+jl6V4j63O3kfW533C/kbu+7HPuPZcdWcgkQ2ZZykrWUo87z5Xn3Xl259mdZ3ee3Xl259md51qPe8/uPbv37N6ze8/uPbv37N6ze8/uPbv37N6ze8/uPbv33Ohr9DX6Gn2tvlZfq6/V1+pr9bX6Wn2tvrbrK/3/UrqP0n2U7qN0H6W7KDv10MFRE0aMnThu9D9zrnmnAAFTPx7UAAA=) format('woff'),url(../fonts/dashicons.ttf) format("truetype"),url(../fonts/dashicons.svg#dashicons) format("svg");font-weight:400;font-style:normal}.dashicons,.dashicons-before:before{display:inline-block;width:20px;height:20px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dashicons-menu:before{content:"\f333"}.dashicons-admin-site:before{content:"\f319"}.dashicons-dashboard:before{content:"\f226"}.dashicons-admin-media:before{content:"\f104"}.dashicons-admin-page:before{content:"\f105"}.dashicons-admin-comments:before{content:"\f101"}.dashicons-admin-appearance:before{content:"\f100"}.dashicons-admin-plugins:before{content:"\f106"}.dashicons-admin-users:before{content:"\f110"}.dashicons-admin-tools:before{content:"\f107"}.dashicons-admin-settings:before{content:"\f108"}.dashicons-admin-network:before{content:"\f112"}.dashicons-admin-generic:before{content:"\f111"}.dashicons-admin-home:before{content:"\f102"}.dashicons-admin-collapse:before{content:"\f148"}.dashicons-admin-links:before,.dashicons-format-links:before{content:"\f103"}.dashicons-admin-post:before,.dashicons-format-standard:before{content:"\f109"}.dashicons-format-image:before{content:"\f128"}.dashicons-format-gallery:before{content:"\f161"}.dashicons-format-audio:before{content:"\f127"}.dashicons-format-video:before{content:"\f126"}.dashicons-format-chat:before{content:"\f125"}.dashicons-format-status:before{content:"\f130"}.dashicons-format-aside:before{content:"\f123"}.dashicons-format-quote:before{content:"\f122"}.dashicons-welcome-edit-page:before,.dashicons-welcome-write-blog:before{content:"\f119"}.dashicons-welcome-add-page:before{content:"\f133"}.dashicons-welcome-view-site:before{content:"\f115"}.dashicons-welcome-widgets-menus:before{content:"\f116"}.dashicons-welcome-comments:before{content:"\f117"}.dashicons-welcome-learn-more:before{content:"\f118"}.dashicons-image-crop:before{content:"\f165"}.dashicons-image-rotate-left:before{content:"\f166"}.dashicons-image-rotate-right:before{content:"\f167"}.dashicons-image-flip-vertical:before{content:"\f168"}.dashicons-image-flip-horizontal:before{content:"\f169"}.dashicons-undo:before{content:"\f171"}.dashicons-redo:before{content:"\f172"}.dashicons-editor-bold:before{content:"\f200"}.dashicons-editor-italic:before{content:"\f201"}.dashicons-editor-ul:before{content:"\f203"}.dashicons-editor-ol:before{content:"\f204"}.dashicons-editor-quote:before{content:"\f205"}.dashicons-editor-alignleft:before{content:"\f206"}.dashicons-editor-aligncenter:before{content:"\f207"}.dashicons-editor-alignright:before{content:"\f208"}.dashicons-editor-insertmore:before{content:"\f209"}.dashicons-editor-spellcheck:before{content:"\f210"}.dashicons-editor-distractionfree:before,.dashicons-editor-expand:before{content:"\f211"}.dashicons-editor-contract:before{content:"\f506"}.dashicons-editor-kitchensink:before{content:"\f212"}.dashicons-editor-underline:before{content:"\f213"}.dashicons-editor-justify:before{content:"\f214"}.dashicons-editor-textcolor:before{content:"\f215"}.dashicons-editor-paste-word:before{content:"\f216"}.dashicons-editor-paste-text:before{content:"\f217"}.dashicons-editor-removeformatting:before{content:"\f218"}.dashicons-editor-video:before{content:"\f219"}.dashicons-editor-customchar:before{content:"\f220"}.dashicons-editor-outdent:before{content:"\f221"}.dashicons-editor-indent:before{content:"\f222"}.dashicons-editor-help:before{content:"\f223"}.dashicons-editor-strikethrough:before{content:"\f224"}.dashicons-editor-unlink:before{content:"\f225"}.dashicons-editor-rtl:before{content:"\f320"}.dashicons-editor-break:before{content:"\f474"}.dashicons-editor-code:before{content:"\f475"}.dashicons-editor-paragraph:before{content:"\f476"}.dashicons-align-left:before{content:"\f135"}.dashicons-align-right:before{content:"\f136"}.dashicons-align-center:before{content:"\f134"}.dashicons-align-none:before{content:"\f138"}.dashicons-lock:before{content:"\f160"}.dashicons-calendar:before{content:"\f145"}.dashicons-visibility:before{content:"\f177"}.dashicons-post-status:before{content:"\f173"}.dashicons-edit:before{content:"\f464"}.dashicons-post-trash:before,.dashicons-trash:before{content:"\f182"}.dashicons-external:before{content:"\f504"}.dashicons-arrow-up:before{content:"\f142"}.dashicons-arrow-down:before{content:"\f140"}.dashicons-arrow-left:before{content:"\f141"}.dashicons-arrow-right:before{content:"\f139"}.dashicons-arrow-up-alt:before{content:"\f342"}.dashicons-arrow-down-alt:before{content:"\f346"}.dashicons-arrow-left-alt:before{content:"\f340"}.dashicons-arrow-right-alt:before{content:"\f344"}.dashicons-arrow-up-alt2:before{content:"\f343"}.dashicons-arrow-down-alt2:before{content:"\f347"}.dashicons-arrow-left-alt2:before{content:"\f341"}.dashicons-arrow-right-alt2:before{content:"\f345"}.dashicons-leftright:before{content:"\f229"}.dashicons-sort:before{content:"\f156"}.dashicons-randomize:before{content:"\f503"}.dashicons-list-view:before{content:"\f163"}.dashicons-exerpt-view:before{content:"\f164"}.dashicons-hammer:before{content:"\f308"}.dashicons-art:before{content:"\f309"}.dashicons-migrate:before{content:"\f310"}.dashicons-performance:before{content:"\f311"}.dashicons-universal-access:before{content:"\f483"}.dashicons-universal-access-alt:before{content:"\f507"}.dashicons-tickets:before{content:"\f486"}.dashicons-nametag:before{content:"\f484"}.dashicons-clipboard:before{content:"\f481"}.dashicons-heart:before{content:"\f487"}.dashicons-megaphone:before{content:"\f488"}.dashicons-schedule:before{content:"\f489"}.dashicons-wordpress:before{content:"\f120"}.dashicons-wordpress-alt:before{content:"\f324"}.dashicons-pressthis:before{content:"\f157"}.dashicons-update:before{content:"\f463"}.dashicons-screenoptions:before{content:"\f180"}.dashicons-info:before{content:"\f348"}.dashicons-cart:before{content:"\f174"}.dashicons-feedback:before{content:"\f175"}.dashicons-cloud:before{content:"\f176"}.dashicons-translation:before{content:"\f326"}.dashicons-tag:before{content:"\f323"}.dashicons-category:before{content:"\f318"}.dashicons-archive:before{content:"\f480"}.dashicons-tagcloud:before{content:"\f479"}.dashicons-text:before{content:"\f478"}.dashicons-media-archive:before{content:"\f501"}.dashicons-media-audio:before{content:"\f500"}.dashicons-media-code:before{content:"\f499"}.dashicons-media-default:before{content:"\f498"}.dashicons-media-document:before{content:"\f497"}.dashicons-media-interactive:before{content:"\f496"}.dashicons-media-spreadsheet:before{content:"\f495"}.dashicons-media-text:before{content:"\f491"}.dashicons-media-video:before{content:"\f490"}.dashicons-playlist-audio:before{content:"\f492"}.dashicons-playlist-video:before{content:"\f493"}.dashicons-yes:before{content:"\f147"}.dashicons-no:before{content:"\f158"}.dashicons-no-alt:before{content:"\f335"}.dashicons-plus:before{content:"\f132"}.dashicons-plus-alt:before{content:"\f502"}.dashicons-minus:before{content:"\f460"}.dashicons-dismiss:before{content:"\f153"}.dashicons-marker:before{content:"\f159"}.dashicons-star-filled:before{content:"\f155"}.dashicons-star-half:before{content:"\f459"}.dashicons-star-empty:before{content:"\f154"}.dashicons-flag:before{content:"\f227"}.dashicons-share1:before,.dashicons-share:before{content:"\f237"}.dashicons-share-alt:before{content:"\f240"}.dashicons-share-alt2:before{content:"\f242"}.dashicons-twitter:before{content:"\f301"}.dashicons-rss:before{content:"\f303"}.dashicons-email:before{content:"\f465"}.dashicons-email-alt:before{content:"\f466"}.dashicons-facebook:before{content:"\f304"}.dashicons-facebook-alt:before{content:"\f305"}.dashicons-networking:before{content:"\f325"}.dashicons-googleplus:before{content:"\f462"}.dashicons-location:before{content:"\f230"}.dashicons-location-alt:before{content:"\f231"}.dashicons-camera:before{content:"\f306"}.dashicons-images-alt:before{content:"\f232"}.dashicons-images-alt2:before{content:"\f233"}.dashicons-video-alt:before{content:"\f234"}.dashicons-video-alt2:before{content:"\f235"}.dashicons-video-alt3:before{content:"\f236"}.dashicons-vault:before{content:"\f178"}.dashicons-shield:before{content:"\f332"}.dashicons-shield-alt:before{content:"\f334"}.dashicons-sos:before{content:"\f468"}.dashicons-search:before{content:"\f179"}.dashicons-slides:before{content:"\f181"}.dashicons-analytics:before{content:"\f183"}.dashicons-chart-pie:before{content:"\f184"}.dashicons-chart-bar:before{content:"\f185"}.dashicons-chart-line:before{content:"\f238"}.dashicons-chart-area:before{content:"\f239"}.dashicons-groups:before{content:"\f307"}.dashicons-businessman:before{content:"\f338"}.dashicons-id:before{content:"\f336"}.dashicons-id-alt:before{content:"\f337"}.dashicons-products:before{content:"\f312"}.dashicons-awards:before{content:"\f313"}.dashicons-forms:before{content:"\f314"}.dashicons-testimonial:before{content:"\f473"}.dashicons-portfolio:before{content:"\f322"}.dashicons-book:before{content:"\f330"}.dashicons-book-alt:before{content:"\f331"}.dashicons-download:before{content:"\f316"}.dashicons-upload:before{content:"\f317"}.dashicons-backup:before{content:"\f321"}.dashicons-clock:before{content:"\f469"}.dashicons-lightbulb:before{content:"\f339"}.dashicons-microphone:before{content:"\f482"}.dashicons-desktop:before{content:"\f472"}.dashicons-tablet:before{content:"\f471"}.dashicons-smartphone:before{content:"\f470"}.dashicons-smiley:before{content:"\f328"}
\ No newline at end of file
+@font-face{font-family:dashicons;src:url(../fonts/dashicons.eot)}@font-face{font-family:dashicons;src:url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAFk8AA4AAAAAkVwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABRAAAABwAAAAca/GHnkdERUYAAAFgAAAAHgAAACABIAAET1MvMgAAAYAAAABAAAAAYJAJaVBjbWFwAAABwAAAATMAAAKSUPpEamdhc3AAAAL0AAAACAAAAAj//wADZ2x5ZgAAAvwAAE2qAAB6bNqcwBtoZWFkAABQqAAAAC4AAAA2BqJsMGhoZWEAAFDYAAAAGgAAACQPogicaG10eAAAUPQAAAEhAAADzAu/zfNsb2NhAABSGAAAAeAAAAHox87m5m1heHAAAFP4AAAAHwAAACABRgC1bmFtZQAAVBgAAAFzAAADBkirZW9wb3N0AABVjAAAA6cAAAmJ0RPelXdlYmYAAFk0AAAABgAAAAZeiFO0AAAAAQAAAADMPaLPAAAAAM/Z1ckAAAAAz9oPBXjaY2BkYGDgA2IJBhBgYmAEwk9AzALmMQAADrABJQAAeNpjYGZvYZzAwMrAwirCsoGBgWEahGbaw2DEFAHkA6Wwg1DvcD8GBwWGr4LsF0B8IKkBpBiRlCgwMAIA9/UJS3ja3ZAxSwNBEIVnczFwub25CyoYsFgQi1QGCzHdGRGTQhEiaLRIVFCCCEklKYSAWAgWtv4L/4yNFgkKiuXszlZGziMRC3sbH8wbHjy+4gGAA+ObBZE4iJskiVFOi3bydyGCCZhRWbWgGvNDcmmS8jRHBSrSEpVoldaoQnU6oBZ16UoL7eq8LuiSjnTZuCZvCqZkqlzlHa5zk1vc5Wu+s2nr2lwcAyj4JgOFNE2K5hPyIi1TlJDXqUZNOqIO9TRoR4da6eKILExolCmaiCu8NSIfcpt7fGvBZmwYxwOn3+/fP04FucALskE6cPATh/iBFhkNvuMLPuMTPuA+7uE2bmIFy7jiX/oX/rnf8U/lmTyRx7IpG7Iua3LDe/NevcF4pb+RyMAPXqQSS/0uwL/XF+1xgaIAAAAAAf//AAJ42q29B3wUZfo4Pu/Mzsxu2mazLW032WxL2dRtIWUTIPTQQosFpCy9GEWaBFSMiEqJDRtiQ8QeFTkLx9lO145c1NNDD/XkOPVOvePrQZJ9/T3PO7vJJuJ97/v//Akz7zvvzLzz1qc/z3IiB//Iaf4wJ3ASp+FSOC3HVepsOkFv05t1xJZMdHpyuucR+ljkEbqTTH8k8gh/ONpEbuB+pt0/Exr9kPuZeCjP/cwRLuFfJcfxXJiLyi9IPVCnn+M0JBgiJrOVmK1CIKghsmTIIyaDnMbLEpysfIgEA8EQHwxUQXlVUDwQrd+dtf6WmtIHppXUzW5ZWRN9KFr/lMWyzGLJGbXYNMLum1Ihj11yySW+Am9qsy/XMg1uTbMIm/lXd+em2l3WrWWZubZUkhJ9iH/1KXZ3uiUnMDa90u675JIlY+WKyb6CJt2qkTmsTo4QDxeRGmU1lwFjYqsyGXUGqYQQnb3A5df5AuS00NGydm1LhKZEIJXVa1uiTS1raQo5vbaFP9yyFrotcP+GOj6RPoKxTGP1mGUNcWuI3ysSGFY8pMY7lkU3RDcs438knZHoAb61d4qQT9tUm+9Yxl/Lymlb5M7ow9FH+RlUS07TFKg3wu2WV8g1XCbn4uqgXlO6lqQRN2kgAZ/bVaAlxBWAfL6GXUsykQxmU0AmJklLpHy3K72BhIiZlVZJ/9i8+Y6WL5cRqbm5oaHh6YaJ9AnLsJbbryAL+77lTXl5Ba150W8xKSN7rXiD7rlCeYXOb2xseFo6jCW3twyzEnFiM1TQ2NhMn1j2Zcsdm3tnQQXn5+Xz1ug3LH2D3MNubN5MFm2GVyx0XsPTjQ0cp4L1EYY+reD0XA5XhGuE6HyuEuK2yfYCCUbf5LVVBbgqk0EqcPlEm46lAW+VWWeDAe2/FA21RQ9dQ9uueaiotrZIOFVUG208etNNR28SDpHTkNy0xJxDu2FMlbzQwR8uqo1EaouiTfAC/wwWH1X1nlyC74jkLJWX0vvZBcf3rwkBZpTD6RNtRpvOy7cKp3oPCvl9mRFyWjT0fBeOiAac/2+4k9JfpFOcGvrkwFXvJgFc9WKQyGnEbpOlArfL1wA9DWiUOzIR8+jhF0lT9oUud0bf6xcI16yr+nYebW/3tHs8nvZ6QSJNWXgvmx6WcpVH9W7XBW+39W2cXjUCHirZ5GknHXNP031wKwNuZdMXYf9FuNelqNTHGTkbtF1SuQmOWJC4MoIBh1nDmyTcaGz9wG6UOhbQf1we/Wr8sVvG89t9vgVziGot/TPJJtai6p491ukWq9Uy3WoRfl7g80UvG3/LsXG89XKSsWBOtYf+mZ4keWt+juZZLLEHOYF4iEdWS/tg/5dwY5TZtdsGZpZ4cWpLiBEnsp7YcTZrcWBg68Wv/HhliT/Jptwvq2uLer7DuRYNRbV9mWHMhi3Flv4MOX2Osk5VF+Z7p+CkW2pbancbLRbjbsjwLszR+xPLop9ijoFHrpO7Xx4tt8KMcgSm0SXh1jPLMJwqGEriDpoCuLtUhkN8+28mvTJqQpPe95sf6akA/TDwlp+Yf4TCpgmj9NL9h6LXHPLpR00Y9fLkQz/SvwXeCpBSeOCfrLDpFVhvBlhvh2G9ZXIV8O2CMlU5cYUEbxWskzRRcEJqIWkqe0EZXw6DEyJelenCqQFPlk4QJKmkYVFo8bayNKLSZZb4N5P0y/6wSet/cN+XCxd98cSNbvdlH1yu8rrqx42r1+uDyxdMKF37yGw5a8zwKcPoXw9tPbbyrKh1WzPNtoKU5LNt721RYHhYVkN73Fw59N4uydBvSTba/C637A663HadNxB0B82BoN9mNJmDZtlk9nJVAZ+rQDLI6k+zg3ceu7N1Me1e3Hpn953BzE8/MQ+DkhkriIeVDDN/0ld1pqvrTJeQv3wm3IFHPs0Mwp3WxaRo4WwoCeTESmYvpMO78FnWrohcIE8FGAuzwpkyAIuo3IIo2NzK8s6oCvhZG6SGl0aNmttG39z2Iv1wN+0OCzljKlfPJXz5qkmTVk2Sy16ilP48t83fSJ/No9sjArmBNKyeOyp6YlJ1EJ7Ab5FCeQWsYx3uaFKlMstlsD4l2ash3kCGQ1/gcAetsEYDQbuG2NME4dSdRDf/0dALy+7+seAUvZ/efzTzFVL6+F30h/5SMofMOZqx8dD30r7Nba+2zH3tVtpGOg+QjL09HbEC0knbNn9272wOYWUE+qvspSzYzUW/3E1cvsosqfId7oCK9dtURQBS+eGP7ZdtbL+sh/0SJC3Et3EjfYc+Qd/ZuJF/cO2+tWv3wfr19GwjHiEfQRs+3JcJZ2Hc3p0798JxAh9aGz0QDoehPalcBPb2ClgXWoDeZpiDPFghJbBGglwt1wC7fcI59rtNZ9NDk7yxIw7Zg9BOJ9wbdA33VQnX8grog4P14XhRbY+DgVziUf73riy2wA6P4IDxrYgw+6IJJYcHP0E6EWzEQIjqEyjwRNg/mmJhT4XDgNM98TzciGWh34gPwtI+RiNYB1MJthiV4A7CxoBdAlsBKIZTMYqBdkNG2NfTE47/R/qh70ScfhDyW9b2PZFwG3EJB3N+FL4lwyjnIS7R2/VASzjY7AZ8gtNkdtkLVLLLYS+QA0HhVNRUFqm4RTglnOob3lILUCzMl7Zl+ooO05dnz6YvHy70Z7YJp0hx7yHVmlocizDrWvT3f771Wfn5PXuel5+9VcF58kh5LVCDOqRggEhDxGcD+g3RmSzdscNioS29B1UlB63Ton/ls3ZGT42RW3cAjUWn9g0Tjx+0kL6b+Myd0b92c0BXwj/ox1FYKXauFXbuMq4NitL5MuLIV6URPj3DSmDlhgisYVNGOo/L2AWlAUYzumTJXuAOOLyw8VyS0QAUpMlsAqQBNE+IIOBlT7gAUEqmPKLXkJDKDfd5DXHxfh/R4+vy0YXP/0Tfpy/Q9396fiHkSSUZTSp/er73dbKKTPxx584f6TP0JvoM5kg9fX+pIU1vvGq6Tb+KzH/vTmJe4ZttNmWLQlVDfj790ehSqw1ag2HLdPtSu8MA2elt5DkiCmqTRk6a82HPcbL5rf8Rir9es2nxYmGU8qmFQ5ogzhr00YmsIb1Fgl/Ne8tJEtn/yqoF8oTxluGFRWpx1ta6Ey0t/D+IWiXwQR9JlniB+INETY9Gc/nn5ayWliuHPfKHP9Htwk29pxaQa799hr4d3VVs5cTYml0BK0rmktmO5XAvEoDYgw6PuL5nm6q57wTQNezgW6MH5BVnzojrYU90DxwAE2eQTlmU04C2KIHafO4ywIsZQXeayoyQMBhw/rJImDm26vFxWe/d98D8Z/eurErP/uqR2+bNF548Vyn/0ZYLG1zpu8jwqX8p33rw3bNX/qGvtXX3uQpxeYn9tKQKKK8ULh37qAd620YAkLADOqghNkBm0QO9U4hH1dU7RdUVPRA9IOQjxJBX9E6JHhCPQwfbEABgSk5j3XwCnepCHFggWQa4Ai8DAf1wQEdi5armlqnX0W7kFFr41pa1eCAk6A5DKq7fOf452k08a1vIaSynbXCkADDoL4Mtw3AcflcD8FYHI53FWbh87Bd+zQkfEQWv3mYXvCR+wDbV8ECwFtWeOVNLno+EAUyHI2Ggh+InBPKnlXmtLTr7Ei+FimrD+NmBA+jaU32ZQgdto22M/lH6H0YYRJwBIMegq/mudEaJi7o07LJy4QvwL6omFda+Sz9/990bx03sa8+IdNzIstXSnojUUBLp/Qdck4J37fzqSF/HlY+xvFBb6E/gB7SMIxge76lBsseBK/SPi2M3X0j29t+rsqryYN9XWXnzF1Kab9w439l/wln8d882/rCC4O4nYpLRUlbTUqHgtqKJNT57liSp0qsbl7QtHulNllfEXvNhFWdfwu0g9DDER7vV2S1TVsyeM7KY4cUi/rBnzIwZY0ymlKLFk4dDiTG+ViIML+oZtTik/V7Ac1x+IN2VL6WLx4nLEwp5zr6DZ+ICarmT3kSav/mGHvxGagx5eheUNjWVqu72hCI9332j3MBvSPCN3f18kx32nxdwLgew08ob0niAnWW8L8RnxGgw1ZA0jmWlWCrkkDtJzZtX+nxXvklfp4vo60pebm9tbW/lsxOTqMSS3zHcIq8YufrhF7584eHVI+OZqL2VPZDwP7qFJW21+A7w2J3kNMOfyQo3Ff+T9iGORFwIUMgQzzHeV+HBlHfM+JbdjywYMGH+oNFutPvtfi/QE9I+2Fx97apmQNmAtMOiAfB6uMchdETYdSTCxo4DuuUo0FEDsBDq1MWhIWTcfkY2MYgoHz1TocA/4DJot6zGDXLmjLQP1sUpJBgYDmW0QxurX4T6M6H+zkRYm1i7c0jNuNMAJDXxh6HaziHVKpX+r3W6h9Qpq6G10SZZ/atVwjpNrFOpDU5Yg3i8LxNfg/HvVPY/koTienE9vqXh8QoA5Xq6kq7mCH8Y7h1XdSn3xONYimCVb43dM8TfEw1YCuTZzWQHu3dYPA4sM7sHJBqU4vPRA//xnqzQwXINjEEeoze9jOJk+Exni3GLSmq0GZFMqie47MWEPJsHnR3OygE70XP2JeKBhUo64dTXrhB8/GElJTganRG+Ff9LjT3bAB2GWltDYXbuQT5x8KlntdDR1x5GQVn8wHGE3i+QnOIjbBWaiZ0EzeI9W6N/3UqPbf1WfGRO1Exu3IR8+x+5P0pnpDMKFgN+Y4Am8vsyHIBjhFP3koJj7e3H6Of0Jfr5sfZuspTcFX1BOjNQ1H6MFNz7IVl6rHeFoKZXcEweEGG8nJbxTENpLR5IS1lDzBrCCJbCj6644iP6RyBX/og54Xe49mGLAU5DJBFRuPvER0ghe63Pi7cigx8fhEc12C8NEYkA3yJOoheJ3inqiVM4RbujB8jdl+BCaSN7ogdo9zfkA/rKLOqhnln0FfKBvCJ6YAKtii7FWvnbyHsTyHpaUkP3RKPffAMkUbiGS8BZ+C32JaAKWf3Ew7fScBvi/UvoAr71l9VhO7GcrT/cezZSRAhQRZkIkaCFKbCSYU7ZeCJvvIJLU/hCUzqjNHEhhog+xn8aDWYUFpiQOyQm8bWtR45stTmXAY59QXPwmtlXX/3C1Tn0iP2aDEHOf8pKmmAH/46ePqJe1vuVePzGu6J/6rhwdkfH7EAlPPRahmojPIJAkBwgB6RCqYjBUUXEGNSgfE//J/oIveU9soI+8imZRVa8S2/h175HVtKH2eV79BYy81P6MPe/rgcuP0TSy0h+Gkk3nWtBkJEk/eTWrSfpD3A+50LoXb71ZP8zwM+QzpgszQx7txTa7R2MHZnsJ99kFHRs4HTEHSKxMTSZZdh0/VxpURjxYQTwMvE43OWwZ8vdDlVzTKJXhPI94tn/zTf7cREy+qo72vRxxjgPbljPuIyPB9OMSFc5uSZu4uA21ZNEGg8hTD/tEZK8MM1AbeRhFqkOQEvsNaPU+FpJfX1Jz+mSepYRU0rqe75TNfceJKcZKiT5vNqSHxg2saivvbrFZSKECKkZNndtQfmEolyRfylcX9J3pdSo1FFf8ppSR31J73RVM40wvEq7kxxLLlo9bRjS6NCpvDyVtshVZjMjIRKtgNV6ZUk9MKyaBJrKzKgFN4OZyKNzQeDJ/Qk8ekaMIkDem/8v8ozORCISzhFGEojrew/++B9z4dqigbekRkYV1CJa+k+5xLka6AfnHCoBibcNpoZPyCuULn4UP3229xzNSuyKJCrfRXTVd2Igz3EKT47tOAr8v5HLHEzDIBKFdQALxYwfBfK5u+8EyhsA6BwGOhxl0ICESaeQj1lMGdHXxu5Fm4Dawbscp8jGFZ45Cb6UyeUi3wEL0V/AGe2a+EdFlqDohD/86q7bT9EfniaSNJ2mANLvEPIBkgIgpilAy58Sj193xzH6t8/o4/xXPdtoinAK6KJoE7AjgFV/5Xsa+CRnN1aZSKx3epYISK7VvkoaifQ0/eHU7bt6irA2rJUhhTB+jT5Opn1GzMfuIHJfO4JOVRecYRz62uNjqWJjeRTmNJnpSoCAJkYFjePZadOgAEu0Efko7Ybau5E/7T3JH6b384cRCdP7YczmqJojyKxGkF+NkM7o2nAPI1tifcK5QppJqT+G84F2hG7YdYJGgImC91gNVfgmzMop2oYUnvJBxAv4MWCMs1GSh3I7hs4Bx0S4Y3IStN/M9DGyEyC+24V/dh3MURWKKaQXJ0+m3wSDvvnzNnXswK6/88KhbdcLn79Al7ywpmPHzi2b5s/zB+Fbr5BX6EeTJ16/Tan7dahbHas7EIQ/L9ZZIEv4B0hFdKUTIzx96IV3kDLa0dE+f74vGKTfTBY+hw9MnEyKaYiGiCfonzd/05adOzrWvEBuZzwKDH9EXA9wOJ2tYIMk61CYoitDaXu+ScWES64Ccf3DV4erqq5+GGFt9ADbCOL66z8qiN7pCefmCmUFH10PMDaLbRC2N5Q9qu6XUNpwEyrQnYnzEY4CdUZs8d3piKV8q9ARB+4RzBBPUS2wAW197W0M3gnHFTbkMLYClhtLcP22JbAaMd4oMkQuaT83H8kkkaiSi6WDQUDPNhQtCvkoKoBksAgVt1dfu5AfVhjnNiWN0R1IFYnHGfdnRdUG+6YvEMQT8MghhmEM4rvXHHr3xr7MG9/t2iLdtKSyrOp3l+7/Rvg67fVrkV++5jVddu6Sm/QL1n+zv0IZW3It0CR/AIhuRokLl8+ZJTi5A6IPl1wafAppDC7fESwjKP4CDt3vC6YR2cS/wjeTv1x+Oc2NHqS5l18u/I+vUJdf2dTsD0ygNnKK3LV01A97Vv6dPv33lXt+GLVU/AM9duYMPUbKzpxRe5pSeF41zutvbo7e9s/DGx8tWnPPQ3//+0P3rCl6dONhBY8O0BF6xo02/lL264ZNJ7Lpt+u8RjwGZoNj/LApXzBbFV0QDtfgEQ/jFuwNqrLzPGH458nrPZnn8QityCvD8tw/MdgExEBTEHcsk+3G3oQnNwEFSrs3weN5+HqUj7HY/OHVmeF6JA7qw5lsXxADIdJh6Qjn4apxR2fIiqgx/ifDYErKBo/9SQ63Kz0YcKiEQLrblS9L6WZTvurIDa6lQpa6oDykqrdV2h1mk0oYUVFZ5fN5K20evjQ/M9NwJ719y733LiM5JMe+aNFi+vmixYsXkQKp7Aa64R7BJOXkl6hKbZVINZZWjBAEk9Flr7TVCQ1l+VbDNN9V95E37102YUI0ezGxLYZ/9M+LFyPMQwAs7Uvgb/sxlBBPO5B7ix6IKImqGcEHHoq4j7FZsI+A14F1vH4wn6xwTl4dIgKg1uz9ksPTwqme7yIAg5EV7lZqgU0NIDkcrxQP0olbBRC61K9X1QJczmP4vESBGAr75gUSusok2spgTIgtvnUTuTZVFwKJnu8QWOh2HdxFryKe9BnzZ9C5SAj2tSMJCNgU/wOdURQG6nHmpZfOLBk2jD4cIyIHM2jq/nWMfU6PydtsQBlySEVAs5BHVpTOZj9sYidDVAOHrEaREYoV+9qJBxVVJ1DuhzglfuBN6Dc8Z0ByoLsdFV+RyNoWFDcCxYPCRy5Om7N5lBS8hUwgMvuGAQLdIZzaRYQXL4Z5O3zxizRKv6TRFy+++EUiCKeUkl0w5k274qUAjuBpjtkSDPQzWeldfFxlNWsH/sdmItmKs8hoH+DdPeJxqRFwaS6OCjSnKqjgPD9S6m6XTdABiEPgY5e9VUaDLJUA10tef3/deq9v9YxFa1bT6IZtK33eOUt23/tHb9XyA8BOfxde8PTmCc05Gu3uyx6bNDkaJbZ82/gpo/903wUlCOkIeQfWtAq+i7yOnXhlW9BL7EGb+PqH9FR3KDo79BHJ/DDEPyCu72uHRdiB66uT7YNG1kM94zjsqE91oWTAgBol/tfyYYZOwgjiD58zKxoUkRaQTkMzTD4H385mc4dyWx/AksXccia3ks2AyGWgbIw2wW/3Bxle96Og3K4gdjPieTaAeKklRvYoDCzcV+4ZmcI8/gywmy630eTtnwZ4xox9aB11VWFZSgZPcrHBGx/zVqcZNUnpaXV2i0mXZcwpzTQaM80pqZKckly+gOzCp65yOhsmBQtz9AZjjaciL8+baTYYi3OsWTlVTVOKS7KzKguzzFcpA0A6F3udSRnF9F+RcPTx0aoKnz7bbM61wSEJKSnmgD45KTklU6tN16VWhmteDdNPyrKyC+syRLksL3NESoolX6tVy6njTTZbbWFmpsRrcnObwgCDHaRT+hTmzcAoiAElAs//UrHQXyY8W19yS8j45PU3LHvxlrE606s3Xjl9muAcKLwZCl/BQn7/JRP9trTLScaoV7173qbRbQc/njD+qksmBvKHFnK/Ak+HaE1wtzNBcYeSiscVKVv8+G/qgIV7QtWs6F4w/f9Sh7QPSJIOxJOxdGgd4i/q0CsQncQknraYPBGJXyR7UQMARzfqDHDKkXtRNKUIyRmRHZfHpXNWzsXVcKOAh27l5qA0BDBm0KWsa0aaBP2SsmCBKgkQr2AXvEGvXjdo7WLGLvv7l7dohx0CFYnxkhLCxFRShcOe7bJPumDmiOEFBds7WsfmF7sc55WWV1T2PbHkxLITi2u+PvbJwupqa+7wqtzc6sCmKTOaLHmW3Ho67YmAWaNVa8jWBY0F+fl5oSU0DS27wsiqSYeT1bqpbqdzTNNFt+7Nnp6kUQ8LtC2tq4sylcl+8nT0QJmnpc5uT1Fp7E7vJIfjzH59RkmZwbBoz/BSX3bWdrO5zJuZGX0BWKz8MHJgSB/F7GBENupGRhvKeqesKyI6t6hnVkVmp2AuIkFBDOr41k1f0Os2AYLr3ESv+6LvDb619+Amsu6LTbRN1bXpC7Juk7QP72zCWcDrvrNMvMteiz3IAQaL08KJODynH9vGZacNsVXAaGGUrQ8+zn3P5hfYelGuUeos7UMZaoScTvjfOaQYGN+UMC5xvEBNHGDHFIUDjvT/A4YVFjBiNcDMrf2l3UqKdNpp5F+AxjZx2YgRkDpgPIbOYBWqQoJfx7ZUZPvSZbdGsoYvuCdy34IR2bA7j0d/v+uuPdv5+uiz9es2zq4ZdsHl6+qjKGBQ9c9R//7SQycT/xg+HHTsi8SbhG0ip8W/MXyThFIkxFN6m9umF0uO0AWwAQ8vJ/eX0JdvBU4YRUGeO8nJAbsOmCMRcIUdbX40TFsZ194oFnFmKAom2MQRwZ6M+r4cAv9VHxEJeGv1q4wREzpqi+4M9E4J3hWnnXHkwuGjL0VQMRJGHUY4jNubMXS9RrSKavj7P0IxyyhhHBNEpACbnYKpogNNbKcWcH9pQjtjIjrnL6R5aCUkMF2NVze4kfw1dw1Q6XcFgSbqOwFLYKBtNcV4p7gYG1VcU1OsNPLv0auZKuN03C5P6oI14GY2ChZikIlUUM676okvSBCNoilkOUEYRJitaZV466r6+ujSuifqLoYMf1vdrJn1lOe3WCwfWUqKLdHNmJkhiRfXzeqeVRddWl+/imXr+d319b0ReHC69SMLPGedDg/iuOgYndHIdFO/vr9GxuxhGIjVMVAb300oLZZjeXFI+p/uSY1IZiNsRqqsLzMsnAqH0ToHUiC6+8/nKpPV4XCPIxxGrX6YGbucZplI/+lcZWgfy/DHKoaZFYCcxibZhqAbGCAbcEA6A8Br7ChwoQzUC6eOLAyPsq2cAnt9100jxj+4HwjVLx58cFzoFnoT3zp9lXVkeIF4cMWKd1+6NrTAG4ksvOaOQyT5rrvu3kPPPHv7lmWRSDAcuua37y1fgTR6OAGHodQIYYCVK1DwoYhaMLsfzW2dCajRHkthTbchegxHkBaPCKf62hHIMGUNoLp82i01hsOKPu9+en8c7CgbiPEtaqb1WPFr30cbOOLF79sTv+/tN7AAPIPgjtkhRVDHjswHgjsoxi2ASDvMvvUrDUA6vB+Pa2GN1TNLGoe9QCUBU2BSeascxI7jHozj0wLZnUBUAjYWYqIIVlIg7TtMjxzp5xJ2HSEj6Og9maYR9QZDbq63ta3x6pvWjx1jyZkeTNfenOPzlufm5OTMFYpJOxn54gDj8SJZWVJd7K4qyc12OI36YVeOr6mZN6K0tL7QbLLTt7PLq6qysyvKs3JiMgP+oPRH0cw1cZO487jZQCPDmoI2GxWi1h5D93672e62y/ag3Q/kgtkbow20xKsIxarMssutkBmw6IBJJ7LXjUvPLTmN3vgQQDVG0W03KsSGVFZYYCsc3Xr16FrNnIzgsAUf75i9uPYvNUtmz7569rILn35qdSiYo75KbXaEGmfNbkZKwzGtwq4hTvqJxl7aezJjsZFPVqXwaeTpde6sXKt1JL3ocf63wktL6vLzBFmWU6dnTx7Zll8+pay0p+ehh3rCZ8/2FDkm+uyaUMUYu9M1NTUludYzMjyxuJqMC9SLBSlFSbW1DwhafXmxPoOeIYTwB8yZVWU4VgpfqugpcgG6FHABbhhXx/A2WoFLsruBV4zABbdiA857UbXmJEGzHLP9NmsV0++gqAHUpNcQkRmBlzZ8+HDcBrx53/C8MrQB72lF2XGEGaczK6ATjeOvV0zAb/h21O1oAN4gnEVxARKWKCQX8qV/MIvwsrzh++IG4c0Pf9TguWMzwinFnojRj9E3Rn17g2IMfv34xjvYo5OVOmADdMJHY30mnQwfpwK9hNqZMuh1iBuNUDSg8/EuRz4seGN6XOavGiJR1MRshfsL4mm/Cme96kTXgNKK/zdDTPRRBYleoFxNIFPR9mMMu1J9qxQqagnS+SeS9UBcKfYA/avwISvfoSgM2H+aTt6IHkAR04yPE4tPxkWmcdsGBk90yInbgdYKAaceCOrSSBmPZJNnWvcnJ+iqad/9+ed3IuLxHgcKVnKJxcLn9J2wqwvy1ApM6GT8boynJ8xEQjkUu674ITVGmEQsEvs+3yrtYzp6EXG6DpYGlkWQ3hW+JjeziUNVPzzbSQjDdUjro76QR8WcVQSAHwiGxCDKAHhVvikdjYNUN8DAfnff9ktUbkOhxZl+jcVyTbrTUmhwqy7Zfl/0RZL71lv0L2/J6vvodw/sPDtfsGU4LcXGJ+bNe8JYbHFm2IT5Z3c+QAwX4VNvkdx+uYX0EZcC3CFaX+oT9INx5RVx6kSnqHOKetGwpm7cTUdvGlcXZLw7GUHG0szoHmZa8ujj/BN8i23N6CU33bRk9BobuZRx8HT9NX3tb7+NMoQdUdcAf4P4HWE9yoNKYCUiN8+0CEyCDC2w+VxYRCC1o4WBXefop4yIv6BMhHudESB0Ir1T0LyLdK7p+zEs5EM6DW1Aw8Kt+9egPrNz4cPrV61a//DCmLa5m3aj4kTVtbZl2hrYIUiSeaatWRudidkwvg13or0Rm7+x0W+jKXEZOKypZKYtQ5sxF7OQsBvtSIz5mZ1YXBYCFJoO9RVoToI9OA2Uc6RnWyQiGnqnCB8x66dw78EwtqYvkz8MWWlf78FIRFG8AO4knczAKloF/UFcBnRJCssqcmvcx43MJi8fVk1MLMzoWFhuRB4iKBbya4toSlFtvZucLuJvZnxNbVHfCebakV9UKz6Dov/iGsTgMDBoloG3ogfgzGwMyGl5BfAGMe52cOXAahEcSfTbUXx2FPHkYcU6j+1V0kxDMO4hlMHFcL2WefIMqcsJbV+xtqXnO3xTNLSs7T2ItseKxW9fJpwPIchT9EQR6SNYQ05mJaDApaBTsse8WZwuZq+CXIxbNBlkMSA+wgSDGjr+vA7ItW+5gBzSoEARcnS8RkMOnSfks+sC+8kFkFlw0l7AXoFMExQpMsQ3uDfZ2s1jvgSo57ER5VuAXM34aRIjBYJGk6AjJkX6HnRjS4is9hb15JD9RtgZYmfpCCCxF9W2hrJyxaId9DdYSh4orMjMoS9J9144QdfzBX+f040Kdp2hoUrDX+UZH2pN0iTrekaozo8+o9ySx1qSqKDo5hTeFGEJwnbOmbibkWoHvBYYKIgD+qEAX1aT0gCsvwYvXeBrDIXNH6Wt2b/GX0o/kswMzPbeoLAcHYoyWfVOzgUBnKLaeZnRVa6m6jsKnNPWrJkWOD8n+r14nAHo6BUs+VGxWcM1rIF18AbTm+OEmtJIghZAoapitBWQITpbINj/F9cdxNGO6EInuP6/YMKj/kAQ3kUdQ/wv/gVppt28ZIPdWODIcxYWF59/YUlRodNmKzBl6khKMvWSJI1QXOmtaxg+ZvRtt40eM7yhzltJDzG/pmgxvHt5gfKuo2LWRRUOfDcvK1sL75J36U+8HHu5ceJtt01sZC+L230bRpt9eY4CY1a6XjboNRnpWSZbgc1RyPPWYuJJV4UqvYUlOdbU/PxUa05Jobcyeog5XT3iu3x0ZuzN9CS9Pikd38xzFNnxTdrNp8VezUnPz0/PYa+yvabg+xTUMwBgSFPJGYAPCTC+qLZQyTbgDlNmXnPnldeFTGQ+aUJTv0iPQ3iS/uMhekzVBQChhE9zNawYT1JJhZFUAYy6N3pU1VxxO+7BZUQnL5KOoGMiUEyw0pOIpLLnO03efKYwA9KwjNTD3KAWNGhSmWM7IxCU5IC8aMIKMrPrNH3kVXqURisKuZ8j6150uK3llVc8NGXmhNaq68l1XyR9fPu9KzYvL1m3XMpom6TNv5l+Qv95tP1B8W5+58VyavZbHaoSwXvfnPD0h99OLnXf9vFl2Q0do5OZ3pBcH9OH5KGUGoGMbMgwVzFIw+COXxfLAY49+MRG8u0XfJLAa2a2t8+MnrDyIZZ5RVZvnNV3mSR8QH+WSPsTG92kfOMT7e/NUmwXFPz5PfAtOYgRnDZfEuE8xK6rSiHZRLT5eM4BFyqzKUPsx14msZv4Vr8PfbmPzvvkGLmehL6/OnqC+A7Qr+mGj3aT9OXLLon+rXXTpq5N7ZGPyO3kPGJ/5xJ67Kpv6Rt04/t/IFcR84P0WNuSJfSfN10+a+bGjTNnXR7Tnyu41ZFoKavzAq3PXL9czNIaqPZ+3wqbuMvp9TrpkqN531eNvnLE+p0Pf/BBlHf6AAx4nT1tDh+/4sc7a2v/qHno9qd/jN7ic4idTq9ie8dFxNvgWwbst86rt7Fv6GLf0HmFScT5P056srbltovaH3rjp58i/Kck99CoUdzPyb9/5hj9C44f4BZFRqRhnhGKvBR2PNevx6bd4vG+9ghNEdTMqQkZur5MRJXtCsQ+w0lEA3P9uvQsYMRc4KWrubFcK65Kq+CtCvFMGyCJkpVUhYgb9V+Y98YvBH2APWDWM48jAhlEJG7BhatVclaZZAEtst36AICOgGCXRUfF+KKq1gpzavolI5vaaEtqwXmXnleQmjb30rnCErioHqZcXTRukzN06Nr3Xxm2WbepecKm6JPLh7f5Rw5fql1esa+ryJUsVHY9WLlcu3T4SP/FI1emal1SRuEFsyeUj122vmLsBRfcH9y2aNG2YP2kSfX9ud5m8sTmp+d/+hxt8Tc1CRU3d9Nr8oaVkZV7npOSdc/toTeXDcsjGz6+KUMrsTUxkTskr5OWM1tzM0EPMw2KdQjzW3Q6zFaNWfpmB31w5/TAPOqN/tMyzbreYlGN+yvtInt+yqpye3N9+mByjSC27qSP7my5alF0JS22WDaga/CJG4VNFyXlmEtM1fqRqRMEgDu3k2rpFukxrpirYRr7NAHAckgVRCLcbCU8wmNVGc5KSNYzeB2H+WaTMMvAZzpyky0uc/P4C5qnZLkvWDA7z5ZeetGTl6yh0Z8+6/JajOmeMbMWr7rs4iescy9omSuQlOz5F06fI/PSXtlaVBH0V5t1mVUTx4xMM6WnTxo59jiN9p0aM74xc/Zjq0fsvnH3tVeEW4pTo4ubUlLGzlxYkDc83zJtzsR0RUdIdjHaCiURHInJlvQ2NBSxkU6FqQJGDo0p0eARCLveyW+ivIimIBWpyO9JCasjFeCujSsHznIks4MbxGURhWaAJS7250jA0UDSCK84tA6UO8+RG8psHVZYIZqipOQ1Jxnd2Wmd/VtnQ1dDiJqUYr51cEpKPiOZ95MixnJ9fD89JbQxKWFNzd5YSj9yPjlqVOPL9C5nQ0Poqfmx4uIhqSLPVGw3M5ifLuqevcykHF0qq5A2shIjSm58KHdFwqSEAAFEAFhAmbQvfPal8NaT25ZedNHSbSe39k6JLOLbu4RTXe38ItodBkK/9yBserhVXAyPRSL7tnXRw5H2rm37ImT/+R2RSAcnkgA3RbpT1jH7Sye0oZL5i+cB294AK7+cyG6ZFCh4CMfRXRAnFEXZrQ96iTkouO3kSCDw5saTJze+GQhE2k9+vYkseOibb/c/+M03D7U/+eSZp7qIcOXR6Pae3rc3fdi7vUd85+TX7fDom+1fn2x/MxiIRJO+eQgefnD/t+EnNzEactWJ8ujzx3njF97ob49zsLYS9cVJcK0DKBqXdLoAgnnQN1QfsyEXgyxxuoE+NrtlZjRWBCWick8IukWzTktsEUX0BgyFdTftRiccyJDTu3f37CaeSLRJamSysUyaotqMbpu7d5M57J5iLo9Hz25FRg1pN/Hs3l21GxkUvMMEmLt307bd8I94enYrcrOYH1Tc/tQ4xDsDJz/fSkSjjeE+4k+gSI3i8X7CvkWxa402Mc6HZAZGQDIiAPsrkbXA2WdzDwW9j3+SuaAO6cy6BZmfMF4acMBw5tuHe5fxkV4djBEwYjpxw+CNCkOhCGJaI7iPcT9ziXVISh3KuzFVPkozUSmB4peI6qk38SUFDETigEHBwUzv0ci825mBiBkagi7tZ1/iD8M0hEVDX6ZoiCA3N2DjhXaYtdwkJntUgATKHvMdAeJwBzhnGm8yS2UqhJHwZ1XJvBgoE90hgVhVaYKWlKkAhK7YFfd+27Ur7v3WN5JufWQ8uYFwtrKMYp+9qdLvqjC0llU9HRo779pJxSlEom18TmX9iNrK5CSda4SwJa/cmi6rRK1aLRtDtdWlSW6hktW1a1D9Pe4jP5Dq5ODOPXd4RZOr2CrqRk1trTak6sp940ZV0Y8em7l1ekORrdBc7B1bR96qWDDzwtFTvSNyMjO959VVNxZcN9i/xxanWgb80mNmy0reXlBGYDlpeL6Q/yuzNumXAJVsPLphw1HhbeZ2poYCxZk9wT29iJ++4ehPRzf0TkGJGPvuKu5tWZRFgBNVDE9lIP3qQFFnkCGqkFAGeF82E8EcIg4VY+z89hxCnEGXOOPG9y403XKGnqBHbrz+9ap9Bfesvvin47+9NGPs3Z9DOuww1bmfHn+W2MhwetyiIvPmkXIa4lOlrvFn6J/p7+jn7842jR/zlx2L179WN0w3Zi+8deRSSC+eR9/hR18A1Zv7DliKVSkC+YLm0Ze7eRlgrAbW1stAL6GvRh03HscLCZcMQK5eG4pt4VIWbSFVLbDFZgIbsSoQ1AcYkctuanl8AlAMUR5CO+tOesRaotrzvEM9zMarRsv6WvpsbqlMXoeFIekNOakfGqu00fsqJ0rOwqD6gFiYQ3/rzqHbzJ6kpDF0TFah6p5UnepDOp7XZGc5tF8bCoxaQTxe7uzL4k885Sg4ah5VYN2mSivINlVl9W6Z4HELzXbXzVqXRZu2M8ccnd9wobCc3TZaLMlcoo+8CrgX3EUaEneAVzUjCIs2qV5hchQEXQiiYhIT5tsTs7vNACpwBnch2qzCnuJgT3G80YCOsd4qB+c8pyOs6j+5wYohwcfcYOUM4uJ0viBMB3s/Qz56Dz1Nd9JldAc9vZf5wj7wNrmUpPR+Qh9dk5luyrzxQqdxA7nhr4+R4OU1yzXqzCS7KjjabqcfZBbBFTzROcd9mdudaUrPvHCzkJaSbJI1S//x1r97X/mSfj+WTCH/IPw1129YkfuwYCG7se572DfffoA5v+4lKU7hZrVQ7SfJ5IU/Xt6mmdGS4c4uT6+R5u4e0XPhhcIoolap+FAtSZEEgdSFiJo+WpZvvWDypqaXT/0Pvegy/tZo80pyiEivPdC3mNwbHV1qm0b+rthgxv2mZ5zLxwD1Mf9VGRqh+Qd5eTLbG8zJauaLQBn9gc6iv3qFzpzsmnSya5T9AflTTD8qrq0tJsXFGIjk168Aiyg5pRTwi7JmwkwuZeaygW6dzM1SvFJlwSZ4UYaQ6LVg14tDjV/90C2kbQBuAKeAEUhg2wE34QrxDUBvuEMkKLvcXlhYLlXzbWWzss+nX3z/8HiSgx6qCm6jDW+FyauYi2E8wU1fvYy+eqVmhL/x2nxRTCah51qmHW4gKkkSeNv24d7hmv9pzvoge7xKEA3uPJIWbYqg16tSBzDvzpcTkSdNWfHJJytGbK/OdmRnjzUNr6oanuZ22ZKTndnV24e/PHpj+yiBR3x0I9cpN8iNcXsWDTFJMhH1XDBgQl8m3k3ECJlURJx9rmjLLuHhCvsW+kl0ynX8I1TLd3VEJ8sG+pRnvavPsYvvEh6rdKro5ujE6/jn+3bwz8Bt/MZT3Co5T4wAlrWg7pNj8jPkHLVE0TAkXnL5nN7NTHPlDH7p/jW5Y8OemUZjLv/uQJ5ew5eR18/vaKZXUw+9urnjfDGyZpqvwpAkihU+JBP68705pImoyz6nP5D0z8voGaRj0NbguHi8X9afaEl0HK39lQOw9oD1j8JvKzSvXqF248sEchLKNKXGSM93KG5EoS7DSM1ovdHVrupq7+rZhiqLAZ8nHYwF0zIMrkUfR4Im4E1ZYBysEFOo8MeYP50nklAnWvCj41zvQTgn6ERg/1o4L+I6ldeQRNJ4IBtk3g8cclAP2MAPNITOZhXyiHAqpfTmO0+2TWy/9dZ2t0uTN/fCzStXTaps++qBq20F5DSD1YZRv7nt1lyaktu+7criYlmtzhnlLzlBL6V/P3nDXL1epQ1N6LjtT/8iI55CD5q+06qMSYteaFNpS0sbcqNNSlUx3etpad+5xx7tpvo1LUPGPqFP5+rRf+zD/9ZaVv9Zclb8WPwY26Th+x3CxI/pXjJ/B91L79lJ5rETmS+Oh+u9O+LX83bSe8g8hRdUZPUCUMeVAD1RLzsvFisgJqRsAFbQz1jgmMki/OUlSjSrGJ3vZjct/ebTqHjF6F6otlWcJOxiTF/PdPZqNKnpfV6flpaUqhJFicjJKQV2ryUnW6tLSuIJz/MqQF/JqSlavb5C+ImmRE9eX+/351oM2ZYid8GIoK9qWEVVIDfdwaeq8/J9/hpha9yABb03VV20Njk1PSM7OdWYyUuktLQEsHdKhiEzMyfDqUlOswoZeiAG1RoXqhymtebbfL7gJlEtJcmyLEmiJkkWklT8pqDPb7O9z2wiIiwUClDOA/wRjps/Nm4LuaVM1vR/GLu4DcP/ZfzIoDHss/y3Y1imDA99YtA4VnuHjiN/JB4ZAI2XgdMFbuTj/24oicQG6Tf/eTCXs4fQ8kcZ0IH9X8RNh9XndsUl5F7mUoMa7/4/ZiwQ+yPMCCguQI/fwTBJytCZZZ05qHMHoRb+UwHoCpPJaqvy1S9uGmUypQokSU5NNWZYsord5WVFxVlZmaaUNFkj3Fplkeusq4IzVrUtXHjJ+Ss8bSUNOWXDZ5Q/PfmhkYvmNz34wdS54np90F9dUeVwG821ddNnzNYnuWyOApjobJNeb7TkuhxOd64tet+Mq86qNLwOKCptSkqKWq/OTtInn906dbXfkv3QNbR7xQriueYhXz0bh0PAr+YArLUhHOTyVRlGAwKNNAL9jHko+lzuMpXfl6GHFYDkCR4AkYFsESaTKiLcVlxbZzRm2RWCxJ6lzhnt9+xu41vzS7KC5ZEyX1ZJvrziNkrv8HWsDlustmVFSsSsomW2ZPfqZdf67iB8T3jWLH9dWcBfXpfAM+7j1MxjizkNE1mNzEpYYb7bVM3MNOAwsJCKDzmzHV/PbCAV+CSuZzZG+Lx4HNlc9jQ3CFZC/U67DkGZTAbVGEFxPzPfj/nLkX49Nqsf3kioVAkJFI65YQ9uP4wbwkk3GVSl0MGsH5qARonVP7j98EZCpYiPyWn2+C/aD3gWPaqDZFCVgwfrl+2HNxIqTRiqBDk+850wn9NzN6Zr0qMY4Byeu3x5zLHynF679HV2U/EGifk8YsyEAX+BfovQWMSA+IF+9Mx/u/+MsQUSYv+gZ9B44HEuUaJVEGh0Ggb+KcMQQCESkyOkkHwHl5GehNeD+iUWyOggJDOpjKgEQYIckZEK8PrKgF10pyHvYwsAcfBrUXf4W+lmeu/Pu3dzP5O5ZAuZy0H+52gVOZ/U/mXr1r/Q39P99PeY4/dMG7v2ruCCLY/SOzY8+ug/H3uUlHtHzC+38MKVJmel31/pTP6su7tp1RiAlwKC1+lJuTXNk0cafzXakHf3z/TeX3y/KvGrpJa1xFma+9Km8CzTPUs2PBp+7J+PPrrh8kdpcq3+vAWz86zNm6aPcGSpBdLywQcqV+2EqVPHBnXpi/YtnFBgIDG79dgaNMO4l7PoezYlop6LKT4Yzcqi6on9Xnq+gP4X+RKmFGYwBSWhUC6OjjahKvceTWsoHGrV3AMXfSkJwosdCeHDflS08ytjz66EC+Y9YTFiFUYLulTEZMHdCWn8NrOSQVntu/JieSZw19lcGdo9ca6CWIDLIAmYEy98eoKqGIxSxUIdorhUJj6MlpeG5irQ84CqsbXdE33L4ynbWMIHPN97NpX0X5U0kPs9rZtK6JynPO2tHrgN595HCiordTqtZ8LEYfmhsRJtxdfbPR6C76/2wFXJJo+HL4b3N0W30zn4Ern/KajIw/s9+LXu0tXh1uzsvAV/DJy/6jzYF3uBjq6SvuSmcOdz87lLuau4HdwdqFs2oLbDkCbJZaJf6QTzHUQpDzBmis1APCpiLFUmSnkA5xVyJB7+zhSPFkYko5Vg94NAP8CEij4mgJElxZxBjCsa4drsxTw8A3np09aus60F+uxyV729TpM80TehrKCg9WxX66IV29QZHYv8Nzt1yLVheDU4MKtz3FG5qCNDva1iiaXvFlcIZ5ZsVqb3kJ7P1Yf1ubxeqw1riUavTafd6Vq9xUg8Rgu9H88WI+2G84YwZvEkvI0f9I24bFpzaaXJLqkrHFPPv7nVh00b2fDcV+X+q79uya2R1u5bW4XvVClnuJTqs1q+vtpf/tVzucMzyGV1hUUM8ilqfqrL1ufk6I2m5B4zoGMdcCdfKyxKLORbzAYE+Z1abiST06JYwBjw6mIRKS2K7K+eSPZ4GMtYWuA2xiSBiqYxLhIS8iPPXXbBSgwD1YJr31sZa1ClFwO2dbVH+PJYfB3AFaufnzmTdqMJDqGpuJU+zWAOshHlnPGpIlsIt3chJlIMFpgPUlzWncQZAQJUcrOY5YKv31HUOZBlli0xwxa0a0m8Qu/SWD8KoPX2WG/Zq2YrXxVCwRTHEiEINxFW+3VWdMwROsKFdTjg0DwlQ9tQ/YIH6RzIHbkXoIC6IL1ADem9R+7el39HR3vHHfkP7I2Km6+7zdm0cGyx5UX6W9pBf/uic8SmWfY7pH0Xrii8zONsqCuMZ6JHyRy0GqL3M9uhgXz9yuf8PyE4ISWE0A8x95P/uZWrnvQlNbpcw5O8T9LJ7lCSvnKEv5R2r3xu+fLnVhJPzbiJWUkhTs18DY4zX2kbjOJwbhQ3jpvITcWxZEBFxQLLOBMvFJt9ZQhxwzmHXJOgUXbCIcZSYbnD68vIkDPrylwzn57Jtw66jL4M88wmuwg1Yf15dHVD94joASUVd7mXzZ2RlZ1UMO+8Fe75EybMH3Ld+zPaTyXaUsXy/FUYMYlZeSsp8rmvAP5Ik42cgcvlClGuksYXlAGdBIfehIBGD4gX+RK3JABMcTOds2xSjSevVRw+dvTY4QryyrDPd//0xnzvmkW/eYkGZo+Z9saehdtm39wzcf7Enptnnddwu1jc99bc7Y2N2+cKVbOXqYhjx5Epi6z0yzKa8XD6RYemRT8Lz+yaudC4emrc3z4i3QNzwaQCwAVg/GM7kYAERhbLLGFwaUnW69D+N0RYyFQi6/RMohVwByTNeRPzG2vfnEnPLKX/nvFBfWP+pPOaJvAawz3LrTVvLnpGbxjbdbprrEH/zKL3Gxwr7zdo+HHiRWUHXjl/2mI1TSX/Slky6/xXDpQWCKHaq34KzXTTq/lA7qmOjr9s3/6Xjo5TudHfkStt8+rPbqlt4BPiq6RiPAWORQsBkikkAIEq652COxZt55YDX739jD9w9iXDmHcPC2foDWRNyZeZfTeXvWEja+iBQn4dv0NWL775Zq8PtYqGpsc6eh4jDpLp3EKe9NGai/LoKfpVCbmdzuOGxNnR/jLOzn+KsfOfgutg7C6hQ2pUNTOKEO1KO1kQveYI4ugu7lNmx1rG1XCjuQti3u9pPOpB/D4HgBIvYjHJhRJVVLLaZLsp5kMAu8ZtCjCzbZxDMSGqF8Nj7jIJcBWKvE3C3a2j61Y+umTzsSuI6rk0X0q9WZ0r3fbyxb9ZQF5b2DnNUHKl3zb5rdZFWm1nK55vVE1h4b/67n9sj6hKNWe4jL6U6uqrX39UaAp1LAitnh1s2Dj5yt+T+uElJUR4Zfuse+aFZ1kapl67oLjKmTvjDWHv6kvvF/g7L129f7gSRyxac8VyU1Z6Tq7ekuZQZ/A75oZ3sHGfQsbKV0rbOB2zt6xSZZgxQqwSK9YdcOgLyni3nZgyzHYlWqxZUgl9j5PSVzKPorn/qYIf7172QujR+UR36ZbvD23MAJBW+7ea/mL6g7RtL/3HATR9vPW1uS2vtm3ueWn2vZ9tJp0j6U8jY0Wwd6uIV9or3XcumagQk4muJNoCYu37c7T7Mv6M27L0++gHF/PFdCVftjz6gbSJ/mCfn9f3+WV8Gd9baBXoG9H3L+b9UR9fsSJ6VLEtBC5mBfPJVeLcAXBjVko+DWGWKrC2XcCFm8zkarH08OGePxwWWvj7jSkG45is6OvRN7LGGA0pRqnxmb5DzzwjjH+mbx9fpBtms8oGuplsARrGNkyX+B0tiz881FgUoQB0j0ECjMcM/D7wZgo40JCAvKI11HMtgnxxQ6j1aq2YmkSXka3ZBo1LQyd89CGdABlDNtlKlyWlitrCIN/GXxLkXUIHvtPXDmfhXa09M4lup8usxmReTda8+iq9Qc0nAzG1m1yWlGnXFpZTNTlTzvb7Slkjz4G22pS2yogooa1BGBPYg2U8IMs8InKQmE2yZm1L72QU9qqemrZmV3RfdLGcoknW2FKS+bXkq9wUR5ZNuFRYcN5UG7Xbnji/b+/5U2zkM9vjQlPfBeQdUWvRpiejr/flDm1yqhl99vv5QhOzmfcwucFQDa1ekp0hQkSXW28lcStg0WkyC2VEFAJBEYDmOeN6jb91Xim9wX9Epac3lM67deMRqmJarb5nyRp2LSyAJ8ga/5FzcZ2qSfG33og9FT3AtGCvxqr9V6yWoTxuDuKfX0ancsAl9AsuCEaHIsnEawAIcc5QVdgBw3330e+YTfp9pC1Nw5NX6Afz5hHVuUNXyfcRQ+JLpC1J5LtJA6o3STpfzGTBcdoAd5npl9EeWZQRG0Fz/QFc+3X0AHMBGhzfondKLORmimKnoPBu/7neQQHNVWv6Mpkt89BIJQqIZvX2j6llQHut1IvaLyXuAurCBn8lFlGDpiDNkQmkB1pn14r1vVOYMzx+j4VtUUIsRJQA/IpjFcY+6Le1AdwQ95Y6V9xkDKtvZvF+FMTCyGOawkyyVXsR74VR/oghHgEL7Rv62wsxwoX0y7DVMYsetIWSGiO9B/FZxF997bQbteqxmHTx58W45FwFAAQ9n1E+cwDFPswEPRbzsI05vPCtaHnO/GMwXmF/LIsyxmWj8BGd4IDW0zGXGwyyFQyg31L/ddzrWTweNbUvWVpXX1+3dPGmEkvelDwrnixWPC0stFqtebK6LrR48ZnFS+rqo48VYoD9IlUXsCeWvEKYeiumosGaWwzZQTCggLuIW8lt4Laec/cEMuJwwcgai8r1dETXSCwp6CnAjLD1AbR2SyOmYMDKrOGMTNclZwTZjYCDeANWwm6gYxnHwsGiOtpbJSbkTcJo0hS33aKH6cdst1XBn/HNdevepN/S9+i3b667vCiwhDx+Xc/B5csP9lz33oFJN/kN6y/Y8lm25dJNpYvcS/jk1OpHM1J1GYCAVVIywPhhV5UtdIcFITm1+Lo5REMXS9k5aUJqMllYy7vK1k0PNukKtCvrWvhy03q8sGtX1LUE2a4faEcRa1vPJeveJMaBJt3x5xfrq5eK2dAU+g9o0iWq5vqa6V3tVzxWnEf+nKZVaXW8NZcQlc5cFigRyL9mQ/m7GanpqmTtyo30Y6I2F4+s4Amt3HLT+/Tmo9taJjzUOPObJUq6hcUrGup3rMRZiQUttg1JUcaPgEJqpCyEIazmExhUBF2RFd/8gTNwfmGGO/ed0/+7Py5MPNUP+V7czxsjH6LdAu5FWd17MNx3QlbDJmrDIGIYXT2CbpXSvv4wJyn9kYSVtnSHY/9icYw8DJ/HZYnwBX0slil6kYeVqCPYNXwVjSXwRTXQtLPld+XXuSyuiOlYhnH1jBtD398QwZXJfk2GoOxHEfyYZRJkqoMy/IUZSaWY6AZEGX/DYfCh2r+96ubl65rNWq203WLpW2qdZun7yWIRbrdMm1VDvq/J1AhSsqpi4bjS8uWkuKZmek1N9IMx/KbRfT+N5tvH9P3E8v8eE8+PkR/eLmm15uZ1y2+u2m6B2pZAbUmWaVbhNgutobqaCcvLS8ctrFAlS4KmEOubXjN8dPTqMeT7MdGO0eT7/jw7Xz1GsfeC4QG6PoVxQP2aVmTaDZxs9A4I79B6mosbDuIDSl7VtWb/mrUt0y+Dafrq4wiaRDLHmaLIR/RL5Ma/fXD/N5hiVKBpa9ZNRfC7bupn9GnHB4p47gMHmfQZvoHRFZnLDbRrOrFK7dI7MKNuph1XHLF8jgaiYvYpFfoMWUIGuULm3czKwCE8osQx5Mn4Bx/kbznRdnHtBR7d5FktOTlznyrVqV0lOh1tlN5pbT/vvHbabnGJquThltFGA30vGtXJi+66u7r6ZfpIetqD0e9mzJjAxWxZFVkNysVxjdSzeBTcUH48Hn1MoSaNcVVKIl0J+yH+KwqOuOeGKT+YRvJdqq4BHvzHmMs9BpicP4r+NGo+i/Pfgugr3LONb2ViJDJOibL/5m3km9vSv6TvfImScoZUu+FMZiie+G78DQDbqPnzR9mUXwZYyz+CGOjHAc/BWuPkyc0Y6EkFezlN/p18iMtk2qE6jtOj5DtEuBAMMaclZWrxHD89M/SXZ/Smty5us4RJ6slvN6ZbaebJr1XaqtJRgabiUvF7+vtnSW3WeU5XRt9nrcKKyyr/Modeu6Fk/cySDbX8D7Fb2fT34pUZZy5bDbVo/9l3r0ZHb3zpd4LakunMsqaol9PfH4InM1zO836/su/WqZWNG0pmrvesJ+vn/J0+Tmqz4U5rFn0N5i8lFg8QbaHyufExyehm7ibudu4e7gD3FIYi9itMhVGApocIkLAkgGyjSpYwVpdDMJnxx48koK5h3enNwFWiQVQaalnziKwUuFEgIAaC+jJC9KhYRP5B0BvMqDFEW7pahIlMgGrXeWUR+c58vHKaJaUeAa2x7MyaSvZhPU7FKTloQHwZBGyaQwwmMzwgH104abcld8zkhT3WBZN2V4+ZtEh4pcB+w6I99MNqTO8insg1jarMUk2SVqPVVI9XF6ap04bZW+UkUSUBcXsHFMhp1XZBP6aL7sryq8aWkt8cqzSo5LQ8280P8KSurrKITDiWsWwkOfvSNNjeS3PJY0sxaB8fXX1LMknN0FdPurpII6k1tU6tWj85/9ELLyYPPJaSaz84r2WVLPsEWrXiYkLqasvFQ/QkyR07adLuXEJP8tnEnDtmz625JK/v1hVv7ncGd9614q39juBOfk3FRl6TlZnbECrOGbeQ3J4s5Kq0qQ5B0qQIavUDr5G7lBIiB3LPjAvQlLFv0BuIHByWlHX+rAs3kgp6RMUbM6z0gQmNUwFZFKIjI6mYcvvqOxCyqFL+7hcyCU/u/I5sFYg2TSSWr5pH0+LSJ34KWfJzW9d/On9/OQkZsvU6upvU0A+IQDBQFvdbki/rpcdY1KwAcLwZbhdKgXCRyFKG2cQJp34gSxfP00/v/HrBkfHjjyz4unO6fsFCspTkLyTjfvcb0rzqWVmY3Ng4WZCfXUUP/uZ39DeAre6DtWmW5wMXOpLZWynR4Oz4Z9PDagMYArynYHdLTOuM2v643h+3mmCP+aIjaywphrFCQPkhC7xWXgoR2TyiKW/DpPRMKUVKj7Z+LuhSjfSYMVUnhC/nnS32qVm2vJzJvNBhUGm0+ryJj0xoXvcVX1M2M7fqypotNZdXVARqN2zusOaPcBSnWKuzG7JqDJnZSWXi5r99PPcqs8Tz0U8z0tPTdTrexatstkmrVq2a4+D53BSVJCWpTf6RTZGoL616SeTCZW9sqq5Itz2054/dbev4r6Sk3LHT53gcU1PV5qyaC6edZ/cm+scOpjGYNXgWsekwIoI+gcqwKZEWz74E1DP7j5Q0HugKi8HHlNBCjG5g5gkpStw4DBEDFLuqP4awCr6Xo/wqCgvORgRdXKHByGwvxiYTdbIRw+jgD6zh+2GglWk30tB5hcQDqRJ0pA0oqEb8AgZmUe7Gnqojp1EcyqkTvjs41ofyfTMjY5jlOEmwaxFZfCj8PjAQLLAJMkXY4biNlsKyKS0IK3EkB4whBmxMpH67K2Wc41HPE6yPnCL6H+qYbQmS9MxkROeMFzAiAIcowVrJgd7kaFguaaIHMpLT80JTh1VXD5s6rrpaQ/5VXHThsGGXTp1yaXp6X7UyB3E6E4/X2oAWz6T+tGHVLVOrh1VUAtFyMd2nH1YNr1w6hX86Kz0j+nCMFpWHtD+HxcxwDenBUD63lAxtrPILP7Fgoe0MeZKJ9BlYJ21D2xdJlHRHm2KRNBRzrP9f+L70QWsC/ZsNLHJuPvDWhZyHq2Cx3+owGqYmri4XGUltZ+T1/yWvLCLgqZlanbnns2jC/1U2cYXDIIQHArucM4nFsEvYZxnxGCfxvcYCAcveoNnrjguQnDHWIXG7sag+Ss00qrjwdOIKH1jyyqbDQUZWgXiUEAoK04DtSPrVfcd4mHPsPQtvYyGrnAlb8dxbED2kmH8Fekoxv5Fzb8TYFcvGrZT4QePTPy6JnU/sYkLscxXwZenxN9xBt4bYNAD1ZeVVADcR9jWMK4SORP2Thx73LGQkC7GMq1gY1IbSxNmBbS6rfgEN/DAoLiabwKtBcDElSUdX5zrSPcPchYXuYcPzGoln1jC3u7AJCgZNFuVFXUoKP0aWS+mTsrs4ECwszB4WJM11J7OHudsK3e7iIfOGPkOp7LcMTMC9uZQYV0pLRWPQLJudCWehCvUA5TxSeXHvMb8vsa207eD6gwdp98B5d+NFGj4rOfmNUlmcY2n0eBo9iU2uioSrwuHEM22bN0I3JT9/1avNtUu+L83LLy3NzwOY8D73vgxEsRIPnyi/Kedwu3j8PTnVoF8r8dzd1nb3Xno+PX8vy5H9ZD/9gYXIY5G9Jc+Qm5jrOYuzGn+I+ZMqvD+uiCwcFb+N2PxeOESbWXbbscAdNCPfjxAIOesIWgVhUOLVbYsj2D+aAjnSKa6jH8J2YxFYPzn4++hIuIRUiU0WjxcU+2VTnRtWHrHpdcyzWsaQsPBa9OgOfh5dEolgxM8IwtK+E2Hii36wg5+PESgi0SZVM5wS7KdwlPQ6IQhoXrQ5zTqbWdDpoT7ZaRPdOpvk/gIj0W0i6wDdr8PcFxiybhO9Dhp+HeTEUrKuZ9vgWwBs8dYm9uogfyMz4LxfSLP/O27z3L5G7/43LOi5nIlUp/5btjQ1hvdqoPXuQdHAJnPTgI68gLto4LdLmIyQiWEVaaHNqIgL64nyC53ikOv+qHxeox1/UU8ckhftfi87Yr9v4mEmK50s6WvXphWnabWpnlQtfzgtvTA9LU1brE2L/dYJ/MeDRVSP51DJjFdSI+LicF2Zx1NWF46lPUYtVGDsMaVCnaYeA1SXbugxwhfSerSKbJvFygsnnIfE9e+nqM4VrTsxgnFipG7+ZPQhcQNGM2bJ4FD/fV/0xzb+80BsY7Hfh2vgV7U4vTIFMQqSKIHadEIMqYVR8GUvqKQVlQV2DNqFJnkRxQ1RurnHL66fVmEvKCigB9HbG8ViMVIDddbXy6PkrcDLckFTSAoiuxqosqKDsZu5xKEYNU3CKFbIUFhVMhNXMfY8jcWxSsgnkUhuR9eHn3zY1ZHjyLpgbP6ouuHDQgFrWakxpbKsxTM31dE6dzgRbhiV5XHk5KZniektwUXjCSmsaShJNk265/Zho2cf2KGVk5Oc2usfG9Nw9+VaKSnJmb7mzl3X352jq11y+Y6OK8rq7rprvNFe4XenaTM3lma7TRmShmicw6YUj9qkFkwl7pGuCal/HluSNC2Y11BZFxjnrBunLShtf3pOskObLifPeWrp2r3TlPyU2+lJiurv/wfGfONHAAB42mNgZGBgYGTsVJTmXxnPb/OVgZv9AlCE4fwtflZkmv0CWJyDgQnEAwAQJwk0AAB42mNgZGBgv/D/BohkYACTjAyo4DMAdrcFUgAAeNptUqtuAkEUvbOIDbp8AKISVdG/IKmAhA9YVdH+B2rqmoomdZXFoMAgYAQJK/sJTfUkDajeeezOncNscnJm7uPcx46y5L/qjWjwQ1S3iZ1NsV9NA+jCrJmfA3uf9bFN3aoJ8x/DiPtvuPuzZh4FXw8j/AQ8h1iA0ileYjCu22qTw9WoFszfqT/Zg/qMrMFHhbPL30e9pqA1in2ZxB1cjjrG3h1uQ4xEH+9mtFHH5rvqZ28KeQY0da6Ju6cD2B45Z5n37DWHzFPGK9S6h7401HpiDMUOO7wwVoXZOpzBvhY7FDPjvdPv7+9Cg2upHezY9fvFeODzXdzHAWa01zu++r/4NmfRfhN72jI+0jvL/ouwlUAnqNdATVMtiP4B4gs5aQAAAHjaY2BgUCMA9RjaGFYwXGG0Y5zAuILxHZMe0ySmE8wCzDHMk5ivsMiwzGA5x8rFasT6iU2GLYVtEts5diF2N/YV7Lc4LDiCOCo4VnBc4vjDKcSpwKnHacPpxRnBuY3zFOc3LjOuHK4urnlcd7j+cZtx13F/4AnhmcFzhpeF1443j3ce7xneX3xqfBl8K/iu8Cvxt/G/EOARsBFoEzgj8EtQTDBIMEdwlZCH0AShTUJXhL4JKwhvEn4nEiXSIrJE5ICoiGiM6AIxMbEIsRlit8RtxC9J+EgckHgiySApJhkmOUHylZSBVIZUn9QmqXfSNtKTZFxkSmSOyHyTtZMtkZ0mu0vOQ65B7p48g3yN/D4FIYUyhT0K9xQZFCUUZyheUdJTWqR0QDlL+ZZKgsoklVsq31QlVL1UZ6huUX2ixqa2SN1L/ZyGlIaJhpdGikaVxhSNVRpHNG5pCmkaaL7RCtLaoz1B+43OBF0e3TDddbqv9MT0VPSW6b3Sl9EP0F+m/8zAx2CewSmDb4ZGhhmGDYaLDF8YHTB6Z2xhHGJ8zUTJJM3kjqmbWYbZFHMF8wjzKeZXLEwsaizmWfJYBljOsdxiec9Kx6rNap/VJ2sp6wDrDTYONlU2G2zNbM0AJreO4njaY2BkYGD4zLCJQZABBJiAmJEBJOYA5jMAAC7DAfwAeNqNUstOwkAUPS1oQjQuXLgwLhrdqAnlpYiw9ZEoMUSjuC22FCJCLZXiL/hluvML/AbjBxjPTKekaTfmZmbOPT33MXMLYAVvyEHLFwB8cUVYwzq9COtYw7fCOTTwq3Ae21pd4SXMtXuFl8l/KlzAvvaj8Co29S2F37Ghx7EfKOttnKODNgzM4MDHFENMMKZf5ZqQMWDRf+U5IgqkKqsOiQIMiPqSCYgczPHA3aMX63apCWgemijRQmkmXH594SkquuRHjBCxY9ZwuEpkPbJF5rfwTKXI80RmB2eq4mmm3h5OqJ5SK7JNZLZrKlzWErfxUWGmMq2OFm5xiS6uiLJRxVRcVmGkFHepF0pW6uCGjPCS7IDKQOWbLSJMHHFv8a4WHplTaPpkxQv1OCUTh3I1UKN3/I/eu/KVbXbhy7cVvdsSDeUcDDllixVDpfQWynhCXfq9xKyjXgVr07uQtQz1F1XYXZPd1bhXiQUrbn7wB+JUeFEAeNptlPWTHUUYRfcESXB3d4c3/XXPzMNDYIO7uwUSCCFICMHd3d3dLbi7u7u7Fn8A9s7+xqvaOjW106ff3rp3+wb1/ff5a2Jf6vu/z5///NA3iEFMwqRMxuQMZghTMCVTMTXTMC3TMT0zMCMzMTOzMCuzMTtzMCdzMTfzMC/zMT8LsCALsTCLsCiLsThLsCRLsTTLsCzL0aEiEWQKNQ0tXZZnBVZkJVZmFVZlKKsxjNVZg36GsyZrsTbrsC7rsT4bsCEbsTGbsCmbsTlbsCVbsTXbsC3bsT07sCM7sTO7sCsj2I3dGcko9mBPRrMXY9ibsezDvuzH/ozjAMZzIBM4iIM5hEM5jMM5giM5iqM5hmM5juM5gRM5iZM5hVM5jdM5gzM5i7M5h3M5j/O5gAu5iIu5hEu5jMu5giu5iqu5hmu5juu5gRu5iZu5hVu5jdu5gzu5i7u5h4ncy33czwM8yEM8zCM8ymM8zhM8yVM8zTM8y3M8zwu8yEu8zCu8ymu8zhu8yVu8zTu8y3u8zwd8yEd8zCd8ymd8zhd8yVd8zTd8y3d8zw/8yE/8zC/8ym/8zh+Dx40ZlTqdjqxkkiGzLLKWjWxlVw7tMfX3WHos/cP+ZX/Vu+8fVjLJkFkWWctGtrLbY6Wv0lfpq/RVeio9lZ5KT6Un6Ul6kp6kJ+lJepKepCfpCT3h+fB8+HeFntATng/PZ89nv0fWk/Vkz2fvz54v/r54T/G94j3F98vA+95Xe1/tfbWeWk+tp9ZT66n11Hoazzd+30ZPo6fR0+hp9DR6Gj2t36fV1+pr9bX62p4v2adkn5I9SvYodQbeq2UjW9m7N9mjZI+SPUr2KFX67FOyT8k+JfuU7FOyT8k+JfuU7FNK+uxVslfJXiV7lexVslcp9NmvZL+S/Ur2K9mvFPrsWbJnyZ4l+xXmF52B55BZFlnLRray5w1zDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDHMMcwxzDPcaA3m618j63G1kfe433G/kni/7nAeeS0dWMsmQWRZZy0bqcee59rw7z+48u/PszrM7z+48u/Pc6HHv2b1n957de3bv2b1n957de3bv2b1n957de3bv2b1n955bfa2+Vl+rr6uvq6+rr6uvq6+rr6uvq6+rr9vzFf+/FPdR3EdxH8V9FHdR3EVxF8VdFHdRqmrImBHjh4+eMHbk3xoQhjkAAAFTtF6HAAA=) format('woff'),url(../fonts/dashicons.ttf) format("truetype"),url(../fonts/dashicons.svg#dashicons) format("svg");font-weight:400;font-style:normal}.dashicons,.dashicons-before:before{display:inline-block;width:20px;height:20px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dashicons-menu:before{content:"\f333"}.dashicons-admin-site:before{content:"\f319"}.dashicons-dashboard:before{content:"\f226"}.dashicons-admin-media:before{content:"\f104"}.dashicons-admin-page:before{content:"\f105"}.dashicons-admin-comments:before{content:"\f101"}.dashicons-admin-appearance:before{content:"\f100"}.dashicons-admin-plugins:before{content:"\f106"}.dashicons-admin-users:before{content:"\f110"}.dashicons-admin-tools:before{content:"\f107"}.dashicons-admin-settings:before{content:"\f108"}.dashicons-admin-network:before{content:"\f112"}.dashicons-admin-generic:before{content:"\f111"}.dashicons-admin-home:before{content:"\f102"}.dashicons-admin-collapse:before{content:"\f148"}.dashicons-admin-links:before,.dashicons-format-links:before{content:"\f103"}.dashicons-admin-post:before,.dashicons-format-standard:before{content:"\f109"}.dashicons-format-image:before{content:"\f128"}.dashicons-format-gallery:before{content:"\f161"}.dashicons-format-audio:before{content:"\f127"}.dashicons-format-video:before{content:"\f126"}.dashicons-format-chat:before{content:"\f125"}.dashicons-format-status:before{content:"\f130"}.dashicons-format-aside:before{content:"\f123"}.dashicons-format-quote:before{content:"\f122"}.dashicons-welcome-edit-page:before,.dashicons-welcome-write-blog:before{content:"\f119"}.dashicons-welcome-add-page:before{content:"\f133"}.dashicons-welcome-view-site:before{content:"\f115"}.dashicons-welcome-widgets-menus:before{content:"\f116"}.dashicons-welcome-comments:before{content:"\f117"}.dashicons-welcome-learn-more:before{content:"\f118"}.dashicons-image-crop:before{content:"\f165"}.dashicons-image-rotate-left:before{content:"\f166"}.dashicons-image-rotate-right:before{content:"\f167"}.dashicons-image-flip-vertical:before{content:"\f168"}.dashicons-image-flip-horizontal:before{content:"\f169"}.dashicons-undo:before{content:"\f171"}.dashicons-redo:before{content:"\f172"}.dashicons-editor-bold:before{content:"\f200"}.dashicons-editor-italic:before{content:"\f201"}.dashicons-editor-ul:before{content:"\f203"}.dashicons-editor-ol:before{content:"\f204"}.dashicons-editor-quote:before{content:"\f205"}.dashicons-editor-alignleft:before{content:"\f206"}.dashicons-editor-aligncenter:before{content:"\f207"}.dashicons-editor-alignright:before{content:"\f208"}.dashicons-editor-insertmore:before{content:"\f209"}.dashicons-editor-spellcheck:before{content:"\f210"}.dashicons-editor-distractionfree:before,.dashicons-editor-expand:before{content:"\f211"}.dashicons-editor-contract:before{content:"\f506"}.dashicons-editor-kitchensink:before{content:"\f212"}.dashicons-editor-underline:before{content:"\f213"}.dashicons-editor-justify:before{content:"\f214"}.dashicons-editor-textcolor:before{content:"\f215"}.dashicons-editor-paste-word:before{content:"\f216"}.dashicons-editor-paste-text:before{content:"\f217"}.dashicons-editor-removeformatting:before{content:"\f218"}.dashicons-editor-video:before{content:"\f219"}.dashicons-editor-customchar:before{content:"\f220"}.dashicons-editor-outdent:before{content:"\f221"}.dashicons-editor-indent:before{content:"\f222"}.dashicons-editor-help:before{content:"\f223"}.dashicons-editor-strikethrough:before{content:"\f224"}.dashicons-editor-unlink:before{content:"\f225"}.dashicons-editor-rtl:before{content:"\f320"}.dashicons-editor-break:before{content:"\f474"}.dashicons-editor-code:before{content:"\f475"}.dashicons-editor-paragraph:before{content:"\f476"}.dashicons-align-left:before{content:"\f135"}.dashicons-align-right:before{content:"\f136"}.dashicons-align-center:before{content:"\f134"}.dashicons-align-none:before{content:"\f138"}.dashicons-lock:before{content:"\f160"}.dashicons-calendar:before{content:"\f145"}.dashicons-calendar-alt:before{content:"\f508"}.dashicons-visibility:before{content:"\f177"}.dashicons-post-status:before{content:"\f173"}.dashicons-edit:before{content:"\f464"}.dashicons-post-trash:before,.dashicons-trash:before{content:"\f182"}.dashicons-external:before{content:"\f504"}.dashicons-arrow-up:before{content:"\f142"}.dashicons-arrow-down:before{content:"\f140"}.dashicons-arrow-left:before{content:"\f141"}.dashicons-arrow-right:before{content:"\f139"}.dashicons-arrow-up-alt:before{content:"\f342"}.dashicons-arrow-down-alt:before{content:"\f346"}.dashicons-arrow-left-alt:before{content:"\f340"}.dashicons-arrow-right-alt:before{content:"\f344"}.dashicons-arrow-up-alt2:before{content:"\f343"}.dashicons-arrow-down-alt2:before{content:"\f347"}.dashicons-arrow-left-alt2:before{content:"\f341"}.dashicons-arrow-right-alt2:before{content:"\f345"}.dashicons-leftright:before{content:"\f229"}.dashicons-sort:before{content:"\f156"}.dashicons-randomize:before{content:"\f503"}.dashicons-list-view:before{content:"\f163"}.dashicons-exerpt-view:before{content:"\f164"}.dashicons-grid-view:before{content:"\f509"}.dashicons-hammer:before{content:"\f308"}.dashicons-art:before{content:"\f309"}.dashicons-migrate:before{content:"\f310"}.dashicons-performance:before{content:"\f311"}.dashicons-universal-access:before{content:"\f483"}.dashicons-universal-access-alt:before{content:"\f507"}.dashicons-tickets:before{content:"\f486"}.dashicons-nametag:before{content:"\f484"}.dashicons-clipboard:before{content:"\f481"}.dashicons-heart:before{content:"\f487"}.dashicons-megaphone:before{content:"\f488"}.dashicons-schedule:before{content:"\f489"}.dashicons-wordpress:before{content:"\f120"}.dashicons-wordpress-alt:before{content:"\f324"}.dashicons-pressthis:before{content:"\f157"}.dashicons-update:before{content:"\f463"}.dashicons-screenoptions:before{content:"\f180"}.dashicons-info:before{content:"\f348"}.dashicons-cart:before{content:"\f174"}.dashicons-feedback:before{content:"\f175"}.dashicons-cloud:before{content:"\f176"}.dashicons-translation:before{content:"\f326"}.dashicons-tag:before{content:"\f323"}.dashicons-category:before{content:"\f318"}.dashicons-archive:before{content:"\f480"}.dashicons-tagcloud:before{content:"\f479"}.dashicons-text:before{content:"\f478"}.dashicons-media-archive:before{content:"\f501"}.dashicons-media-audio:before{content:"\f500"}.dashicons-media-code:before{content:"\f499"}.dashicons-media-default:before{content:"\f498"}.dashicons-media-document:before{content:"\f497"}.dashicons-media-interactive:before{content:"\f496"}.dashicons-media-spreadsheet:before{content:"\f495"}.dashicons-media-text:before{content:"\f491"}.dashicons-media-video:before{content:"\f490"}.dashicons-playlist-audio:before{content:"\f492"}.dashicons-playlist-video:before{content:"\f493"}.dashicons-yes:before{content:"\f147"}.dashicons-no:before{content:"\f158"}.dashicons-no-alt:before{content:"\f335"}.dashicons-plus:before{content:"\f132"}.dashicons-plus-alt:before{content:"\f502"}.dashicons-minus:before{content:"\f460"}.dashicons-dismiss:before{content:"\f153"}.dashicons-marker:before{content:"\f159"}.dashicons-star-filled:before{content:"\f155"}.dashicons-star-half:before{content:"\f459"}.dashicons-star-empty:before{content:"\f154"}.dashicons-flag:before{content:"\f227"}.dashicons-share1:before,.dashicons-share:before{content:"\f237"}.dashicons-share-alt:before{content:"\f240"}.dashicons-share-alt2:before{content:"\f242"}.dashicons-twitter:before{content:"\f301"}.dashicons-rss:before{content:"\f303"}.dashicons-email:before{content:"\f465"}.dashicons-email-alt:before{content:"\f466"}.dashicons-facebook:before{content:"\f304"}.dashicons-facebook-alt:before{content:"\f305"}.dashicons-networking:before{content:"\f325"}.dashicons-googleplus:before{content:"\f462"}.dashicons-location:before{content:"\f230"}.dashicons-location-alt:before{content:"\f231"}.dashicons-camera:before{content:"\f306"}.dashicons-images-alt:before{content:"\f232"}.dashicons-images-alt2:before{content:"\f233"}.dashicons-video-alt:before{content:"\f234"}.dashicons-video-alt2:before{content:"\f235"}.dashicons-video-alt3:before{content:"\f236"}.dashicons-vault:before{content:"\f178"}.dashicons-shield:before{content:"\f332"}.dashicons-shield-alt:before{content:"\f334"}.dashicons-sos:before{content:"\f468"}.dashicons-search:before{content:"\f179"}.dashicons-slides:before{content:"\f181"}.dashicons-analytics:before{content:"\f183"}.dashicons-chart-pie:before{content:"\f184"}.dashicons-chart-bar:before{content:"\f185"}.dashicons-chart-line:before{content:"\f238"}.dashicons-chart-area:before{content:"\f239"}.dashicons-groups:before{content:"\f307"}.dashicons-businessman:before{content:"\f338"}.dashicons-id:before{content:"\f336"}.dashicons-id-alt:before{content:"\f337"}.dashicons-products:before{content:"\f312"}.dashicons-awards:before{content:"\f313"}.dashicons-forms:before{content:"\f314"}.dashicons-testimonial:before{content:"\f473"}.dashicons-portfolio:before{content:"\f322"}.dashicons-book:before{content:"\f330"}.dashicons-book-alt:before{content:"\f331"}.dashicons-download:before{content:"\f316"}.dashicons-upload:before{content:"\f317"}.dashicons-backup:before{content:"\f321"}.dashicons-clock:before{content:"\f469"}.dashicons-lightbulb:before{content:"\f339"}.dashicons-microphone:before{content:"\f482"}.dashicons-desktop:before{content:"\f472"}.dashicons-tablet:before{content:"\f471"}.dashicons-smartphone:before{content:"\f470"}.dashicons-smiley:before{content:"\f328"}.dashicons-index-card:before{content:"\f510"}.dashicons-carrot:before{content:"\f511"}
\ No newline at end of file
index 50d139df27b248dde90de7f4a06f8273014eef62..7c0665647c985465f7fb548b6cf4a1fb859bae53 100644 (file)
 }
 
 .mce-textbox,
 }
 
 .mce-textbox,
-.mce-checkbox i.mce-i-checkbox {
+.mce-checkbox i.mce-i-checkbox,
+#wp-link .query-results {
        border: 1px solid #ddd;
        -webkit-border-radius: 0;
        border-radius: 0;
        -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
        box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
        border: 1px solid #ddd;
        -webkit-border-radius: 0;
        border-radius: 0;
        -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
        box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
-       -webkit-transition: .05s border-color ease-in-out;
-       transition: .05s border-color ease-in-out;
+       -webkit-transition: .05s all ease-in-out;
+       transition: .05s all ease-in-out;
 }
 
 .mce-textbox:focus,
 .mce-textbox.mce-focus,
 }
 
 .mce-textbox:focus,
 .mce-textbox.mce-focus,
-.mce-checkbox:focus i.mce-i-checkbox {
+.mce-checkbox:focus i.mce-i-checkbox,
+#wp-link .query-results:focus {
        border-color: #5b9dd9;
        -webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8);
        box-shadow: 0 0 2px rgba(30,140,190,0.8);
        border-color: #5b9dd9;
        -webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8);
        box-shadow: 0 0 2px rgba(30,140,190,0.8);
@@ -148,10 +150,14 @@ div.mce-tab {
 div.mce-toolbar-grp {
        border-bottom: 1px solid #dedede;
        background: #f5f5f5;
 div.mce-toolbar-grp {
        border-bottom: 1px solid #dedede;
        background: #f5f5f5;
-       padding: 3px;
+       padding: 0;
        position: relative;
 }
 
        position: relative;
 }
 
+div.mce-toolbar-grp > div {
+       padding: 3px;
+}
+
 .has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first {
        padding-left: 32px;
 }
 .has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first {
        padding-left: 32px;
 }
@@ -161,14 +167,21 @@ div.mce-toolbar-grp {
 }
 
 div.mce-statusbar {
 }
 
 div.mce-statusbar {
-       border-top: 1px solid #eee;
+       border-top: 1px solid #e5e5e5;
 }
 
 div.mce-path {
 }
 
 div.mce-path {
-       padding: 0 8px 2px;
+       padding: 2px 10px;
        margin: 0;
 }
 
        margin: 0;
 }
 
+.mce-path,
+.mce-path-item,
+.mce-path .mce-divider {
+       font-size: 12px;
+       line-height: 18px;
+}
+
 .mce-toolbar .mce-btn,
 .qt-fullscreen {
        border-color: transparent;
 .mce-toolbar .mce-btn,
 .qt-fullscreen {
        border-color: transparent;
@@ -258,9 +271,13 @@ div.mce-path {
 }
 
 .mce-toolbar .mce-colorbutton .mce-preview {
 }
 
 .mce-toolbar .mce-colorbutton .mce-preview {
-       margin-right: -17px;
+       margin: 0;
        padding: 0;
        padding: 0;
-       width: 18px;
+       top: auto;
+       bottom: 2px;
+       right: 3px;
+       height: 3px;
+       width: 20px;
 }
 
 /* mce listbox */
 }
 
 /* mce listbox */
@@ -350,6 +367,8 @@ div.mce-path {
 /* Menubar */
 .mce-menubar {
        border-color: #e5e5e5;
 /* Menubar */
 .mce-menubar {
        border-color: #e5e5e5;
+       background: #fff;
+       border-width: 0px 0px 1px;
 }
 
 .mce-menubar .mce-btn:focus {
 }
 
 .mce-menubar .mce-btn:focus {
@@ -395,8 +414,8 @@ div.mce-menu .mce-menu-item-sep,
        -webkit-border-radius: 3px;
        border-radius: 3px;
        white-space: nowrap;
        -webkit-border-radius: 3px;
        border-radius: 3px;
        white-space: nowrap;
-       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
-       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
+       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
+       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
        background-image: none;
 }
 
        background-image: none;
 }
 
@@ -408,28 +427,34 @@ div.mce-menu .mce-menu-item-sep,
        padding: 0;
 }
 
        padding: 0;
 }
 
-.mce-window .mce-btn:hover {
+.mce-window .mce-btn:hover,
+.mce-window .mce-btn:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
 .mce-window .mce-btn:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
 .mce-window .mce-btn:focus {
-       -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
-       box-shadow: 1px 1px 1px rgba(0,0,0,.2);
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
 }
 
 .mce-window .mce-btn:active {
        background: #eee;
        border-color: #999;
        color: #333;
 }
 
 .mce-window .mce-btn:active {
        background: #eee;
        border-color: #999;
        color: #333;
-       -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
-       box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+       -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+       box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 }
 
 .mce-window .mce-btn.mce-disabled {
        color: #aaa;
        border-color: #ddd;
 }
 
 .mce-window .mce-btn.mce-disabled {
        color: #aaa;
        border-color: #ddd;
+       background: #f7f7f7;
        -webkit-box-shadow: none;
        box-shadow: none;
        text-shadow: 0 1px 0 #fff;
        -webkit-box-shadow: none;
        box-shadow: none;
        text-shadow: 0 1px 0 #fff;
@@ -439,39 +464,50 @@ div.mce-menu .mce-menu-item-sep,
 .mce-window .mce-btn.mce-primary {
        background: #2ea2cc;
        border-color: #0074a2;
 .mce-window .mce-btn.mce-primary {
        background: #2ea2cc;
        border-color: #0074a2;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
+       -webkit-box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5), 0 1px 0 rgba( 0, 0, 0, 0.15 );
+       box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5 ), 0 1px 0 rgba( 0, 0, 0, 0.15 );
        color: #fff;
        text-decoration: none;
 }
 
        color: #fff;
        text-decoration: none;
 }
 
-.mce-window .mce-btn.mce-primary:hover {
+.mce-window .mce-btn.mce-primary:hover,
+.mce-window .mce-btn.mce-primary:focus {
        background: #1e8cbe;
        border-color: #0074a2;
        background: #1e8cbe;
        border-color: #0074a2;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
+       -webkit-box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.6 );
+       box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.6 );
        color: #fff;
 }
 
 .mce-window .mce-btn.mce-primary:focus {
        border-color: #0e3950;
        color: #fff;
 }
 
 .mce-window .mce-btn.mce-primary:focus {
        border-color: #0e3950;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
+       -webkit-box-shadow:
+               inset 0 1px 0 rgba( 120, 200, 230, 0.6 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
+       box-shadow:
+               inset 0 1px 0 rgba( 120, 200, 230, 0.6 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
 }
 
 .mce-window .mce-btn.mce-primary:active {
        background: #1b7aa6;
        border-color: #005684;
 }
 
 .mce-window .mce-btn.mce-primary:active {
        background: #1b7aa6;
        border-color: #005684;
-       color: rgba(255,255,255,0.95);
-       -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
-       box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
+       color: rgba( 255, 255, 255, 0.95 );
+       -webkit-box-shadow: inset 0 1px 0 rgba( 0, 0, 0, 0.1 );
+       box-shadow: inset 0 1px 0 rgba( 0, 0, 0, 0.1 );
+       vertical-align: top;
 }
 
 .mce-window .mce-btn.mce-primary.mce-disabled {
        color: #94cde7;
        background: #298cba;
        border-color: #1b607f;
 }
 
 .mce-window .mce-btn.mce-primary.mce-disabled {
        color: #94cde7;
        background: #298cba;
        border-color: #1b607f;
-       text-shadow: 0 -1px 0 rgba(0,0,0,0.1);
+       -webkit-box-shadow: none;
+       box-shadow: none;
+       text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.1 );
+       cursor: default;
 }
 
 .mce-menubtn.mce-fixed-width button span {
 }
 
 .mce-menubtn.mce-fixed-width button span {
@@ -570,6 +606,7 @@ i.mce-i-wp_adv,
 i.mce-i-underline,
 i.mce-i-alignjustify,
 i.mce-i-forecolor,
 i.mce-i-underline,
 i.mce-i-alignjustify,
 i.mce-i-forecolor,
+i.mce-i-backcolor,
 i.mce-i-pastetext,
 i.mce-i-pasteword,
 i.mce-i-removeformat,
 i.mce-i-pastetext,
 i.mce-i-pasteword,
 i.mce-i-removeformat,
@@ -673,7 +710,8 @@ i.mce-i-alignjustify:before {
        content: '\f214';
 }
 
        content: '\f214';
 }
 
-i.mce-i-forecolor:before {
+i.mce-i-forecolor:before,
+i.mce-i-backcolor:before {
        content: '\f215';
 }
 
        content: '\f215';
 }
 
@@ -731,7 +769,7 @@ i.mce-i-hr:before {
 }
 
 .mce-i-wp_code:before {
 }
 
 .mce-i-wp_code:before {
-       content: '\e017';
+       content: '\f475';
 }
 
 /* Editors */
 }
 
 /* Editors */
@@ -744,6 +782,12 @@ i.mce-i-hr:before {
        z-index: 1;
 }
 
        z-index: 1;
 }
 
+.wp-editor-tools:after {
+       clear: both;
+       content: '';
+       display: table;
+}
+
 .wp-editor-container {
        clear: both;
 }
 .wp-editor-container {
        clear: both;
 }
@@ -763,10 +807,6 @@ i.mce-i-hr:before {
        box-sizing: border-box;
 }
 
        box-sizing: border-box;
 }
 
-.wp-editor-tools {
-       padding: 0;
-}
-
 .wp-editor-container textarea.wp-editor-area {
        width: 100%;
        margin: 0;
 .wp-editor-container textarea.wp-editor-area {
        width: 100%;
        margin: 0;
@@ -910,32 +950,41 @@ i.mce-i-hr:before {
        position: absolute;
        top: 0;
        left: 0;
        position: absolute;
        top: 0;
        left: 0;
-       margin-top: 5px;
-       margin-left: 5px;
+       margin: 5px 0 0 5px;
 }
 
 @media screen and ( max-width: 782px ) {
        .mce-toolbar .mce-btn button,
        .qt-fullscreen {
 }
 
 @media screen and ( max-width: 782px ) {
        .mce-toolbar .mce-btn button,
        .qt-fullscreen {
-               padding: 7px 8px;
+               padding: 6px 7px;
+       }
+
+       #wp-fullscreen-buttons .mce-btn,
+       .mce-toolbar .mce-btn-group .mce-btn {
+               margin: 1px;
        }
 
        .qt-fullscreen {
        }
 
        .qt-fullscreen {
-               width: 38px;
+               width: 36px;
                height: 34px;
        }
 
                height: 34px;
        }
 
+       .mce-toolbar .mce-btn-group .mce-btn.mce-wp-fullscreen {
+               margin: 4px 0 0 4px;
+       }
+
        .mce-toolbar .mce-colorbutton .mce-preview {
        .mce-toolbar .mce-colorbutton .mce-preview {
-               margin-right: -21px;
+               right: 8px;
+               bottom: 6px;
        }
 
        .mce-window .mce-btn {
                padding: 2px 0;
        }
 
        }
 
        .mce-window .mce-btn {
                padding: 2px 0;
        }
 
-       div.mce-toolbar-grp,
-       .quicktags-toolbar {
-               padding-left: 46px;
+       .has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first,
+       .has-dfw .quicktags-toolbar {
+               padding-left: 40px;
        }
 }
 
        }
 }
 
@@ -1039,7 +1088,6 @@ i.mce-i-hr:before {
 
 #wp-link-close {
        color: #666;
 
 #wp-link-close {
        color: #666;
-       cursor: pointer;
        padding: 0;
        position: absolute;
        top: 0;
        padding: 0;
        position: absolute;
        top: 0;
@@ -1047,6 +1095,9 @@ i.mce-i-hr:before {
        width: 36px;
        height: 36px;
        text-align: center;
        width: 36px;
        height: 36px;
        text-align: center;
+       background: none;
+       border: none;
+       cursor: pointer;
 }
 
 #wp-link-close:before {
 }
 
 #wp-link-close:before {
@@ -1065,6 +1116,16 @@ i.mce-i-hr:before {
        color: #2ea2cc;
 }
 
        color: #2ea2cc;
 }
 
+#wp-link-close:focus {
+       outline: none;
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
 #link-selector {
        padding: 0 16px 50px;
 }
 #link-selector {
        padding: 0 16px 50px;
 }
@@ -1085,7 +1146,8 @@ i.mce-i-hr:before {
        padding: 0;
 }
 
        padding: 0;
 }
 
-#wp-link-search-toggle::after {
+#wp-link-search-toggle:after {
+       display: inline-block;
        font: normal 20px/1 'dashicons';
        vertical-align: top;
        speak: none;
        font: normal 20px/1 'dashicons';
        vertical-align: top;
        speak: none;
@@ -1094,7 +1156,7 @@ i.mce-i-hr:before {
        content: '\f140';
 }
 
        content: '\f140';
 }
 
-.search-panel-visible #wp-link-search-toggle::after {
+.search-panel-visible #wp-link-search-toggle:after {
        content: '\f142';
 }
 
        content: '\f142';
 }
 
@@ -1112,6 +1174,11 @@ i.mce-i-hr:before {
        margin: 3px 0;
 }
 
        margin: 3px 0;
 }
 
+#wp-link p.howto a {
+       text-decoration: none;
+       color: inherit;
+}
+
 #wp-link-search-toggle {
        cursor: pointer;
 }
 #wp-link-search-toggle {
        cursor: pointer;
 }
@@ -1175,17 +1242,46 @@ i.mce-i-hr:before {
        top: 205px;
 }
 
        top: 205px;
 }
 
-#wp-link li,
-#wp-link .query-notice {
+#wp-link li {
        clear: both;
        margin-bottom: 0;
        border-bottom: 1px solid #f1f1f1;
        color: #333;
        clear: both;
        margin-bottom: 0;
        border-bottom: 1px solid #f1f1f1;
        color: #333;
-       padding: 4px 6px;
+       padding: 4px 10px 4px 6px;
        cursor: pointer;
        position: relative;
 }
 
        cursor: pointer;
        position: relative;
 }
 
+#wp-link .query-notice {
+       padding: 0;
+       border-bottom: 1px solid #dfdfdf;
+       background-color: #f7fcfe;
+       color: #000;
+}
+
+#wp-link .query-notice .query-notice-default,
+#wp-link .query-notice .query-notice-hint {
+       display: block;
+       padding: 6px;
+       border-right: 4px solid #2ea2cc;
+}
+
+#wp-link .unselectable.no-matches-found {
+       padding: 0;
+       border-bottom: 1px solid #dfdfdf;
+       background-color: #fef7f1;
+}
+
+#wp-link .no-matches-found .item-title {
+       display: block;
+       padding: 6px;
+       border-right: 4px solid #d54e21;
+}
+
+#wp-link .query-results em {
+       font-style: normal;
+}
+
 #wp-link li:hover {
        background: #eaf2fa;
        color: #151515;
 #wp-link li:hover {
        background: #eaf2fa;
        color: #151515;
@@ -1262,6 +1358,7 @@ i.mce-i-hr:before {
 
 #wp-link-cancel {
        line-height: 25px;
 
 #wp-link-cancel {
        line-height: 25px;
+       float: right;
 }
 
 #wp-link-update {
 }
 
 #wp-link-update {
index cf18046c158f36616a7b01ed5b785d157f549ee0..0dde7891ecec95dc4fd44d1ece780aff578060ea 100644 (file)
@@ -1 +1 @@
-.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}#mce-modal-block.mce-in{opacity:.7;filter:alpha(opacity=70)}.mce-window{-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #dfdfdf;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}.mce-window .mce-window-head .mce-close{color:transparent;top:0;left:0;width:36px;height:36px;line-height:36px;text-align:center}.mce-window .mce-window-head .mce-close:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window .mce-window-head .mce-close:hover:before{color:#2ea2cc}.mce-window .mce-window-head .mce-dragh{width:-webkit-calc(100% - 36px);width:calc(100% - 36px)}.mce-wp-help .mce-window-head{border-bottom:0}.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:0;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff;-webkit-filter:none;filter:none}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #dedede;background:#f5f5f5;padding:3px;position:relative}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #eee}div.mce-path{padding:0 8px 2px;margin:0}.mce-toolbar .mce-btn,.qt-fullscreen{border-color:transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;cursor:pointer}#wp-fullscreen-buttons .mce-btn,.mce-toolbar .mce-btn-group .mce-btn,.qt-fullscreen{border:1px solid transparent;margin:2px;background-image:none;-webkit-border-radius:2px;border-radius:2px;-webkit-filter:none;filter:none}#wp-fullscreen-buttons .mce-btn:focus,#wp-fullscreen-buttons .mce-btn:hover,.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-fullscreen:focus,.qt-fullscreen:hover{background:#fafafa;border-color:#999;color:#222;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08)}#wp-fullscreen-buttons .mce-btn.mce-active,#wp-fullscreen-buttons .mce-btn:active,.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active{background:#ebebeb;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#555}.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover i.mce-ico{color:#555}#wp-fullscreen-buttons .mce-btn.mce-disabled:focus,#wp-fullscreen-buttons .mce-btn.mce-disabled:hover,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#aaa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;-webkit-box-shadow:none;box-shadow:none}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-fullscreen{padding:2px 3px;line-height:normal}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-left:0}.mce-toolbar .mce-colorbutton .mce-preview{margin-right:-17px;padding:0;width:18px}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{-webkit-border-radius:0;border-radius:0;direction:rtl;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{background-image:none;border-color:#bbb}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox span{font-size:13px}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #777;margin-right:2px;margin-left:2px}.mce-listbox i.mce-caret{left:6px}.mce-panel .mce-btn button.mce-open i.mce-caret,.mce-panel .mce-btn.mce-listbox i.mce-caret{margin-right:0;margin-left:0}.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#333}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #333;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-left-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:none;box-shadow:none}.mce-menu .mce-menu-item-normal.mce-active{background-color:#e5e5e5;-webkit-filter:none;filter:none}.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{color:#000;background-color:#bbb;background-image:none;-webkit-filter:none;filter:none}.mce-menu .mce-menu-item.mce-active:hover .mce-text,.mce-menu .mce-menu-item.mce-selected .mce-ico,.mce-menu .mce-menu-item.mce-selected .mce-text,.mce-menu .mce-menu-item:focus .mce-ico,.mce-menu .mce-menu-item:hover .mce-ico,.mce-menu .mce-menu-item:hover .mce-text{color:#000}.mce-menubar{border-color:#e5e5e5}.mce-menubar .mce-btn:focus{outline:0}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{margin:5px 0 4px}.mce-menubtn span{margin-left:0;padding-right:3px}.mce-menu-has-icons i.mce-ico:before{margin-right:-2px}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);background-image:none}.mce-window .mce-btn::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#222}.mce-window .mce-btn:focus{-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2)}.mce-window .mce-btn:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.mce-window .mce-btn.mce-disabled{color:#aaa;border-color:#ddd;-webkit-box-shadow:none;box-shadow:none;text-shadow:0 1px 0 #fff;cursor:default}.mce-window .mce-btn.mce-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.mce-window .mce-btn.mce-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.mce-window .mce-btn.mce-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4);box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.mce-window .mce-btn.mce-primary:active{background:#1b7aa6;border-color:#005684;color:rgba(255,255,255,.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}.mce-window .mce-btn.mce-primary.mce-disabled{color:#94cde7;background:#298cba;border-color:#1b607f;text-shadow:0 -1px 0 rgba(0,0,0,.1)}.mce-menubtn.mce-fixed-width button span{max-width:80px;padding-left:16px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#dfdfdf;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#777;line-height:20px;width:20px;height:20px;text-align:center;text-shadow:none;margin:0;padding:0}.qt-fullscreen{color:#777;line-height:20px;width:28px;height:26px;text-align:center;text-shadow:none}.mce-toolbar .mce-btn .mce-open{line-height:20px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-right-color:#999}.mce-close,i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:-2px;padding-left:2px}.qt-fullscreen{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:'\f200'}i.mce-i-italic:before{content:'\f201'}i.mce-i-bullist:before{content:'\f203'}i.mce-i-numlist:before{content:'\f204'}i.mce-i-blockquote:before{content:'\f205'}i.mce-i-alignleft:before{content:'\f206'}i.mce-i-aligncenter:before{content:'\f207'}i.mce-i-alignright:before{content:'\f208'}i.mce-i-link:before{content:'\f103'}i.mce-i-unlink:before{content:'\f225'}i.mce-i-wp_more:before{content:'\f209'}i.mce-i-strikethrough:before{content:'\f224'}i.mce-i-spellchecker:before{content:'\f210'}.qt-fullscreen:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:'\f211'}i.mce-i-wp_adv:before{content:'\f212'}i.mce-i-underline:before{content:'\f213'}i.mce-i-alignjustify:before{content:'\f214'}i.mce-i-forecolor:before{content:'\f215'}i.mce-i-pastetext:before{content:'\f217'}i.mce-i-removeformat:before{content:'\f218'}i.mce-i-charmap:before{content:'\f220'}i.mce-i-outdent:before{content:'\f221'}i.mce-i-indent:before{content:'\f222'}i.mce-i-undo:before{content:'\f171'}i.mce-i-redo:before{content:'\f172'}i.mce-i-help:before,i.mce-i-wp_help:before{content:'\f223'}i.mce-i-wp-media-library:before{content:'\f104'}i.mce-i-ltr:before{content:'\f320'}i.mce-i-wp_page:before{content:'\f105'}i.mce-i-hr:before{content:'\f460'}.mce-close:before{content:'\f158'}.mce-i-wp_code:before{content:'\e017'}.wp-editor-wrap{position:relative}.wp-editor-tools{position:relative;z-index:1}.wp-editor-container{clear:both}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0 none;outline:0;display:block;resize:vertical;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-editor-tools{padding:0}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none}.wp-editor-tabs{float:left}.wp-switch-editor{background:#ebebeb;border:1px solid #dedede;color:#777;cursor:pointer;float:left;font:13px/19px "Open Sans",sans-serif;height:19px;margin:5px 5px 0 0;padding:3px 8px 4px;position:relative;top:1px}.wp-switch-editor:active{background-color:#f1f1f1}.wp-switch-editor:hover{text-decoration:none!important;background:#fff}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;height:20px;border-bottom:0}.wp-media-buttons{float:right}.wp-media-buttons .button{margin-left:5px;margin-bottom:4px;padding-right:7px;padding-left:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-right:5px}.wp-media-buttons a{text-decoration:none;color:#464646;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f104'}.quicktags-toolbar{padding:3px;position:relative;border-bottom:1px solid #dedede;background:#f5f5f5}.has-dfw .quicktags-toolbar{padding-left:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:700}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-fullscreen,.qt-fullscreen{position:absolute;top:0;left:0;margin-top:5px;margin-left:5px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-fullscreen{padding:7px 8px}.qt-fullscreen{width:38px;height:34px}.mce-toolbar .mce-colorbutton .mce-preview{margin-right:-21px}.mce-window .mce-btn{padding:2px 0}.quicktags-toolbar,div.mce-toolbar-grp{padding-left:46px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;height:250px;overflow:hidden;margin-right:-250px;margin-top:-125px;position:fixed;top:50%;right:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s}#wp-link-backdrop{display:none;position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap.search-panel-visible{height:500px;margin-top:-250px}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 16px 0 36px;top:0;left:0;right:0}#wp-link-close{color:#666;cursor:pointer;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:'\f158'}#wp-link-close:focus,#wp-link-close:hover{color:#2ea2cc}#link-selector{padding:0 16px 50px}#wp-link-wrap.search-panel-visible #link-selector{padding:0 16px;position:absolute;top:36px;right:0;left:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link-search-toggle::after{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140'}.search-panel-visible #wp-link-search-toggle::after{content:'\f142'}#wp-link input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link-search-toggle{cursor:pointer}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:left;padding-left:5px;max-width:24%}#wp-link .link-search-field{float:right;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:right;margin-top:4px}#wp-link .link-search-wrapper .spinner{display:none;vertical-align:text-bottom}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px #dfdfdf solid;margin:0;background:#fff;overflow:auto;position:absolute;right:16px;left:16px;bottom:16px;top:205px}#wp-link .query-notice,#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#333;padding:4px 6px;cursor:pointer;position:relative}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#333}#wp-link li.selected{background:#ddd;color:#333}#wp-link li.selected .item-title{font-weight:700}#wp-link li:last-child{border:0}#wp-link .item-title{display:inline-block;width:80%;width:-webkit-calc(100% - 68px);width:calc(100% - 68px)}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;left:5px;top:5px}#wp-link #search-panel,#wp-link #search-results{display:none}#wp-link-wrap.search-panel-visible #search-panel{display:block}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .river-waiting .spinner{margin:0 auto;display:block;float:none}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;right:0;left:0}#wp-link-cancel{line-height:25px}#wp-link-update{line-height:23px;float:left}#wp-link-submit{float:left;margin-bottom:0}@media screen and (max-width:782px){#wp-link-wrap{height:280px;margin-top:-140px}#wp-link-wrap.search-panel-visible .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap.search-panel-visible #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-right:0;right:10px;left:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{-webkit-transition:none;transition:none}#wp-link-wrap.search-panel-visible{height:auto;margin-top:0;top:10px;bottom:10px}.search-panel-visible #link-selector{overflow:auto}.search-panel-visible #search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:-webkit-calc(100% - 92px);height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}.fullscreen-overlay{z-index:100005;display:none;position:fixed;top:0;bottom:0;right:0;left:0;-webkit-filter:inherit;filter:inherit}.wp-fullscreen-active #wp-fullscreen-body,.wp-fullscreen-active .fullscreen-overlay{display:block}.fullscreen-fader{z-index:200000}.wp-core-ui.wp-fullscreen-active .postbox-container,.wp-fullscreen-active .fullscreen-fader{display:none}#wp-fullscreen-body,.mce-fullscreen{z-index:100010}#wp-fullscreen-body{display:none}.wp-fullscreen-wrap{margin:0;padding:0;position:absolute;right:0;left:0;bottom:30px;top:60px;z-index:100015}#wp-fullscreen-central-toolbar,.wp-fullscreen-title,.wp-fullscreen-wrap .wp-editor-container{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;max-width:100%}.wp-fullscreen-active .mce-statusbar,.wp-fullscreen-active .mce-toolbar-grp,.wp-fullscreen-active .quicktags-toolbar,.wp-fullscreen-active .wp-editor-tools{display:none}#wp-fullscreen-statusbar{position:fixed;right:0;left:0;bottom:0;height:30px;z-index:100020;background:#fff;-webkit-transition:height .2s;transition:height .2s}#wp-fullscreen-status{margin:0 auto;padding:0}.wp-fullscreen-active .wp-editor-container,.wp-fullscreen-active .wp-fullscreen-title,.wp-fullscreen-active .wp-fullscreen-title:focus{-webkit-border-radius:0;border-radius:0;border:1px dashed transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color .4s;transition:border-color .4s}.wp-fullscreen-active .wp-editor-container{margin:0 auto 40px}.wp-fullscreen-active .wp-fullscreen-title{font-size:1.7em;line-height:100%;outline:medium none;padding:3px 7px;margin:10px auto 30px;display:block}#wp-fullscreen-tagline{color:#888;font-size:18px;float:left;padding:4px 0 0}#fullscreen-topbar{background:#f5f5f5;border-bottom:1px solid #dedede;height:45px;position:fixed;right:0;left:0;top:0;width:100%;z-index:100020;-webkit-transition:opacity .4s;transition:opacity .4s}#wp-fullscreen-toolbar{padding:6px 10px 0;clear:both;max-width:1100px;margin:0 auto}#wp-fullscreen-button-bar,#wp-fullscreen-close,#wp-fullscreen-mode-bar{float:right}#wp-fullscreen-count,#wp-fullscreen-tagline{display:inline-block}#wp-fullscreen-button-bar{margin-top:2px}#wp-fullscreen-save{float:left;padding:2px 0 0;min-width:95px}#wp-fullscreen-close,#wp-fullscreen-count{padding:5px 0 0}#wp-fullscreen-central-toolbar{margin:auto;padding:0;min-width:620px}#wp-fullscreen-buttons>div{float:right}#wp-fullscreen-mode-bar{padding:3px 0 0 14px}#wp-fullscreen-buttons .hidden{display:none}#wp-fullscreen-buttons .disabled{opacity:.5}#wp-fullscreen-buttons .mce-btn button{margin:0;outline:0 none;border:0 none;white-space:nowrap;width:auto;background:0 0;color:#333;cursor:pointer;font-size:18px;line-height:20px;overflow:visible;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-html-mode #wp-fullscreen-buttons div{display:none}.wp-html-mode #wp-fullscreen-buttons div.wp-fullscreen-both{display:block}#wp-fullscreen-save img{vertical-align:middle}#wp-fullscreen-save span{display:none;margin:5px 6px 0;float:right}.wp-fullscreen-active #TB_overlay{z-index:100050}.wp-fullscreen-active #TB_window{z-index:100051}.fullscreen-overlay{background:#fff}.wp-fullscreen-active #fullscreen-topbar{-webkit-transition-duration:.8s;transition-duration:.8s;opacity:0;filter:alpha(opacity=0)}.wp-fullscreen-active #wp-fullscreen-statusbar{height:0}.wp-fullscreen-active.wp-dfw-show-ui #fullscreen-topbar{-webkit-transition-duration:.4s;transition-duration:.4s;opacity:1;filter:alpha(opacity=100)}.wp-fullscreen-active.wp-dfw-show-ui #wp-fullscreen-statusbar{height:29px;background:#f8f8f8;border-top:1px solid #eee}.wp-fullscreen-active .wp-editor-container,.wp-fullscreen-active .wp-fullscreen-title{-webkit-transition-duration:.8s;transition-duration:.8s;border-color:transparent}.wp-fullscreen-active.wp-dfw-show-ui .wp-editor-container,.wp-fullscreen-active.wp-dfw-show-ui .wp-fullscreen-title{-webkit-transition-duration:.4s;transition-duration:.4s;border-color:#ccc}.fade-1000,.fade-300,.fade-400,.fade-600{opacity:0;-webkit-transition-property:opacity;transition-property:opacity}.fade-1000{-webkit-transition-duration:1s;transition-duration:1s}.fade-600{-webkit-transition-duration:.6s;transition-duration:.6s}.fade-400{-webkit-transition-duration:.4s;transition-duration:.4s}.fade-300{-webkit-transition-duration:.3s;transition-duration:.3s}.fade-trigger{opacity:1}.wp-dfw-touch #fullscreen-topbar{position:absolute;opacity:1}.wp-dfw-touch .wp-fullscreen-title,.wp-dfw-touch .wp-fullscreen-wrap .wp-editor-container{max-width:700px}.wp-fullscreen-active.wp-dfw-touch .wp-editor-container,.wp-fullscreen-active.wp-dfw-touch .wp-fullscreen-title{border-color:#ccc}.wp-dfw-touch #wp-fullscreen-statusbar{height:30px}@media screen and (max-width:782px){#wp-fullscreen-button-bar,#wp-fullscreen-central-toolbar,#wp-fullscreen-close,#wp-fullscreen-mode-bar,#wp-fullscreen-save{display:inline-block}#fullscreen-topbar{height:85px}#wp-fullscreen-central-toolbar{width:auto!important;min-width:0}#wp-fullscreen-close{line-height:30px;vertical-align:top;padding:0 12px}#wp-fullscreen-button-bar{position:absolute;top:45px;right:0}.wp-fullscreen-wrap{top:95px}#wp-fullscreen-save{position:absolute;left:10px}}@media screen and (max-width:480px){#wp_fs_help{display:none}.wp-fullscreen-title,.wp-fullscreen-wrap .wp-editor-container{width:480px!important}body.wp-fullscreen-active{width:480px;overflow:auto}#fullscreen-topbar,.wp-fullscreen-wrap{width:480px}#fullscreen-topbar{position:absolute}#wp-fullscreen-status{width:auto!important;max-width:100%;padding:0 10px}}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#wp-fullscreen-buttons #wp_fs_image span.mce_image,.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}}
\ No newline at end of file
+.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}#mce-modal-block.mce-in{opacity:.7;filter:alpha(opacity=70)}.mce-window{-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #dfdfdf;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}.mce-window .mce-window-head .mce-close{color:transparent;top:0;left:0;width:36px;height:36px;line-height:36px;text-align:center}.mce-window .mce-window-head .mce-close:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window .mce-window-head .mce-close:hover:before{color:#2ea2cc}.mce-window .mce-window-head .mce-dragh{width:-webkit-calc(100% - 36px);width:calc(100% - 36px)}.mce-wp-help .mce-window-head{border-bottom:none}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);-webkit-transition:.05s all ease-in-out;transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff;-webkit-filter:none;filter:none}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #dedede;background:#f5f5f5;padding:0;position:relative}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px;line-height:18px}.mce-toolbar .mce-btn,.qt-fullscreen{border-color:transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;cursor:pointer}#wp-fullscreen-buttons .mce-btn,.mce-toolbar .mce-btn-group .mce-btn,.qt-fullscreen{border:1px solid transparent;margin:2px;background-image:none;-webkit-border-radius:2px;border-radius:2px;-webkit-filter:none;filter:none}#wp-fullscreen-buttons .mce-btn:focus,#wp-fullscreen-buttons .mce-btn:hover,.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-fullscreen:focus,.qt-fullscreen:hover{background:#fafafa;border-color:#999;color:#222;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08)}#wp-fullscreen-buttons .mce-btn.mce-active,#wp-fullscreen-buttons .mce-btn:active,.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active{background:#ebebeb;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#555}.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover i.mce-ico{color:#555}#wp-fullscreen-buttons .mce-btn.mce-disabled:focus,#wp-fullscreen-buttons .mce-btn.mce-disabled:hover,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#aaa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;-webkit-box-shadow:none;box-shadow:none}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-fullscreen{padding:2px 3px;line-height:normal}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-left:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;right:3px;height:3px;width:20px}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{-webkit-border-radius:0;border-radius:0;direction:rtl;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{background-image:none;border-color:#bbb}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox span{font-size:13px}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #777;margin-right:2px;margin-left:2px}.mce-listbox i.mce-caret{left:6px}.mce-panel .mce-btn button.mce-open i.mce-caret,.mce-panel .mce-btn.mce-listbox i.mce-caret{margin-right:0;margin-left:0}.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#333}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #333;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-left-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:none;box-shadow:none}.mce-menu .mce-menu-item-normal.mce-active{background-color:#e5e5e5;-webkit-filter:none;filter:none}.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{color:#000;background-color:#bbb;background-image:none;-webkit-filter:none;filter:none}.mce-menu .mce-menu-item.mce-active:hover .mce-text,.mce-menu .mce-menu-item.mce-selected .mce-ico,.mce-menu .mce-menu-item.mce-selected .mce-text,.mce-menu .mce-menu-item:focus .mce-ico,.mce-menu .mce-menu-item:hover .mce-ico,.mce-menu .mce-menu-item:hover .mce-text{color:#000}.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-btn:focus{outline:0}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{margin:5px 0 4px}.mce-menubtn span{margin-left:0;padding-right:3px}.mce-menu-has-icons i.mce-ico:before{margin-right:-2px}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08)}.mce-window .mce-btn::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#222}.mce-window .mce-btn:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.mce-window .mce-btn.mce-disabled{color:#aaa;border-color:#ddd;background:#f7f7f7;-webkit-box-shadow:none;box-shadow:none;text-shadow:0 1px 0 #fff;cursor:default}.mce-window .mce-btn.mce-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.mce-window .mce-btn.mce-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-btn.mce-primary:active{background:#1b7aa6;border-color:#005684;color:rgba(255,255,255,.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#94cde7;background:#298cba;border-color:#1b607f;-webkit-box-shadow:none;box-shadow:none;text-shadow:0 -1px 0 rgba(0,0,0,.1);cursor:default}.mce-menubtn.mce-fixed-width button span{max-width:80px;padding-left:16px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#dfdfdf;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#777;line-height:20px;width:20px;height:20px;text-align:center;text-shadow:none;margin:0;padding:0}.qt-fullscreen{color:#777;line-height:20px;width:28px;height:26px;text-align:center;text-shadow:none}.mce-toolbar .mce-btn .mce-open{line-height:20px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-right-color:#999}.mce-close,i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 0 0 2px;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:-2px}.qt-fullscreen{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:'\f200'}i.mce-i-italic:before{content:'\f201'}i.mce-i-bullist:before{content:'\f203'}i.mce-i-numlist:before{content:'\f204'}i.mce-i-blockquote:before{content:'\f205'}i.mce-i-alignleft:before{content:'\f206'}i.mce-i-aligncenter:before{content:'\f207'}i.mce-i-alignright:before{content:'\f208'}i.mce-i-link:before{content:'\f103'}i.mce-i-unlink:before{content:'\f225'}i.mce-i-wp_more:before{content:'\f209'}i.mce-i-strikethrough:before{content:'\f224'}i.mce-i-spellchecker:before{content:'\f210'}.qt-fullscreen:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:'\f211'}i.mce-i-wp_adv:before{content:'\f212'}i.mce-i-underline:before{content:'\f213'}i.mce-i-alignjustify:before{content:'\f214'}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:'\f215'}i.mce-i-pastetext:before{content:'\f217'}i.mce-i-removeformat:before{content:'\f218'}i.mce-i-charmap:before{content:'\f220'}i.mce-i-outdent:before{content:'\f221'}i.mce-i-indent:before{content:'\f222'}i.mce-i-undo:before{content:'\f171'}i.mce-i-redo:before{content:'\f172'}i.mce-i-help:before,i.mce-i-wp_help:before{content:'\f223'}i.mce-i-wp-media-library:before{content:'\f104'}i.mce-i-ltr:before{content:'\f320'}i.mce-i-wp_page:before{content:'\f105'}i.mce-i-hr:before{content:'\f460'}.mce-close:before{content:'\f158'}.mce-i-wp_code:before{content:'\f475'}.wp-editor-wrap{position:relative}.wp-editor-tools{position:relative;z-index:1}.wp-editor-tools:after{clear:both;content:'';display:table}.wp-editor-container{clear:both}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none}.wp-editor-tabs{float:left}.wp-switch-editor{background:#ebebeb;border:1px solid #dedede;color:#777;cursor:pointer;float:left;font:13px/19px "Open Sans",sans-serif;height:19px;margin:5px 5px 0 0;padding:3px 8px 4px;position:relative;top:1px}.wp-switch-editor:active{background-color:#f1f1f1}.wp-switch-editor:hover{text-decoration:none!important;background:#fff}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;height:20px;border-bottom:none}.wp-media-buttons{float:right}.wp-media-buttons .button{margin-left:5px;margin-bottom:4px;padding-right:7px;padding-left:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-right:5px}.wp-media-buttons a{text-decoration:none;color:#464646;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f104'}.quicktags-toolbar{padding:3px;position:relative;border-bottom:1px solid #dedede;background:#f5f5f5}.has-dfw .quicktags-toolbar{padding-left:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:700}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-fullscreen,.qt-fullscreen{position:absolute;top:0;left:0;margin:5px 0 0 5px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-fullscreen{padding:6px 7px}#wp-fullscreen-buttons .mce-btn,.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-fullscreen{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-fullscreen{margin:4px 0 0 4px}.mce-toolbar .mce-colorbutton .mce-preview{right:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;height:250px;overflow:hidden;margin-right:-250px;margin-top:-125px;position:fixed;top:50%;right:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s}#wp-link-backdrop{display:none;position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap.search-panel-visible{height:500px;margin-top:-250px}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 16px 0 36px;top:0;left:0;right:0}#wp-link-close{color:#666;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:'\f158'}#wp-link-close:focus,#wp-link-close:hover{color:#2ea2cc}#wp-link-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#link-selector{padding:0 16px 50px}#wp-link-wrap.search-panel-visible #link-selector{padding:0 16px;position:absolute;top:36px;right:0;left:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link-search-toggle:after{display:inline-block;font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140'}.search-panel-visible #wp-link-search-toggle:after{content:'\f142'}#wp-link input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link-search-toggle{cursor:pointer}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:left;padding-left:5px;max-width:24%}#wp-link .link-search-field{float:right;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:right;margin-top:4px}#wp-link .link-search-wrapper .spinner{display:none;vertical-align:text-bottom}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0;background:#fff;overflow:auto;position:absolute;right:16px;left:16px;bottom:16px;top:205px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#333;padding:4px 10px 4px 6px;cursor:pointer;position:relative}#wp-link .query-notice{padding:0;border-bottom:1px solid #dfdfdf;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-right:4px solid #2ea2cc}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-right:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#333}#wp-link li.selected{background:#ddd;color:#333}#wp-link li.selected .item-title{font-weight:700}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:-webkit-calc(100% - 68px);width:calc(100% - 68px)}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;left:5px;top:5px}#wp-link #search-panel,#wp-link #search-results{display:none}#wp-link-wrap.search-panel-visible #search-panel{display:block}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .river-waiting .spinner{margin:0 auto;display:block;float:none}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;right:0;left:0}#wp-link-cancel{line-height:25px;float:right}#wp-link-update{line-height:23px;float:left}#wp-link-submit{float:left;margin-bottom:0}@media screen and (max-width:782px){#wp-link-wrap{height:280px;margin-top:-140px}#wp-link-wrap.search-panel-visible .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap.search-panel-visible #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-right:0;right:10px;left:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{-webkit-transition:none;transition:none}#wp-link-wrap.search-panel-visible{height:auto;margin-top:0;top:10px;bottom:10px}.search-panel-visible #link-selector{overflow:auto}.search-panel-visible #search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:-webkit-calc(100% - 92px);height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}.fullscreen-overlay{z-index:100005;display:none;position:fixed;top:0;bottom:0;right:0;left:0;-webkit-filter:inherit;filter:inherit}.wp-fullscreen-active #wp-fullscreen-body,.wp-fullscreen-active .fullscreen-overlay{display:block}.fullscreen-fader{z-index:200000}.wp-core-ui.wp-fullscreen-active .postbox-container,.wp-fullscreen-active .fullscreen-fader{display:none}#wp-fullscreen-body,.mce-fullscreen{z-index:100010}#wp-fullscreen-body{display:none}.wp-fullscreen-wrap{margin:0;padding:0;position:absolute;right:0;left:0;bottom:30px;top:60px;z-index:100015}#wp-fullscreen-central-toolbar,.wp-fullscreen-title,.wp-fullscreen-wrap .wp-editor-container{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;max-width:100%}.wp-fullscreen-active .mce-statusbar,.wp-fullscreen-active .mce-toolbar-grp,.wp-fullscreen-active .quicktags-toolbar,.wp-fullscreen-active .wp-editor-tools{display:none}#wp-fullscreen-statusbar{position:fixed;right:0;left:0;bottom:0;height:30px;z-index:100020;background:#fff;-webkit-transition:height .2s;transition:height .2s}#wp-fullscreen-status{margin:0 auto;padding:0}.wp-fullscreen-active .wp-editor-container,.wp-fullscreen-active .wp-fullscreen-title,.wp-fullscreen-active .wp-fullscreen-title:focus{-webkit-border-radius:0;border-radius:0;border:1px dashed transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color .4s;transition:border-color .4s}.wp-fullscreen-active .wp-editor-container{margin:0 auto 40px}.wp-fullscreen-active .wp-fullscreen-title{font-size:1.7em;line-height:100%;outline:0;padding:3px 7px;margin:10px auto 30px;display:block}#wp-fullscreen-tagline{color:#888;font-size:18px;float:left;padding:4px 0 0}#fullscreen-topbar{background:#f5f5f5;border-bottom:1px solid #dedede;height:45px;position:fixed;right:0;left:0;top:0;width:100%;z-index:100020;-webkit-transition:opacity .4s;transition:opacity .4s}#wp-fullscreen-toolbar{padding:6px 10px 0;clear:both;max-width:1100px;margin:0 auto}#wp-fullscreen-button-bar,#wp-fullscreen-close,#wp-fullscreen-mode-bar{float:right}#wp-fullscreen-count,#wp-fullscreen-tagline{display:inline-block}#wp-fullscreen-button-bar{margin-top:2px}#wp-fullscreen-save{float:left;padding:2px 0 0;min-width:95px}#wp-fullscreen-close,#wp-fullscreen-count{padding:5px 0 0}#wp-fullscreen-central-toolbar{margin:auto;padding:0;min-width:620px}#wp-fullscreen-buttons>div{float:right}#wp-fullscreen-mode-bar{padding:3px 0 0 14px}#wp-fullscreen-buttons .hidden{display:none}#wp-fullscreen-buttons .disabled{opacity:.5}#wp-fullscreen-buttons .mce-btn button{margin:0;outline:0;border:0;white-space:nowrap;width:auto;background:0 0;color:#333;cursor:pointer;font-size:18px;line-height:20px;overflow:visible;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-html-mode #wp-fullscreen-buttons div{display:none}.wp-html-mode #wp-fullscreen-buttons div.wp-fullscreen-both{display:block}#wp-fullscreen-save img{vertical-align:middle}#wp-fullscreen-save span{display:none;margin:5px 6px 0;float:right}.wp-fullscreen-active #TB_overlay{z-index:100050}.wp-fullscreen-active #TB_window{z-index:100051}.fullscreen-overlay{background:#fff}.wp-fullscreen-active #fullscreen-topbar{-webkit-transition-duration:.8s;transition-duration:.8s;opacity:0;filter:alpha(opacity=0)}.wp-fullscreen-active #wp-fullscreen-statusbar{height:0}.wp-fullscreen-active.wp-dfw-show-ui #fullscreen-topbar{-webkit-transition-duration:.4s;transition-duration:.4s;opacity:1;filter:alpha(opacity=100)}.wp-fullscreen-active.wp-dfw-show-ui #wp-fullscreen-statusbar{height:29px;background:#f8f8f8;border-top:1px solid #eee}.wp-fullscreen-active .wp-editor-container,.wp-fullscreen-active .wp-fullscreen-title{-webkit-transition-duration:.8s;transition-duration:.8s;border-color:transparent}.wp-fullscreen-active.wp-dfw-show-ui .wp-editor-container,.wp-fullscreen-active.wp-dfw-show-ui .wp-fullscreen-title{-webkit-transition-duration:.4s;transition-duration:.4s;border-color:#ccc}.fade-1000,.fade-300,.fade-400,.fade-600{opacity:0;-webkit-transition-property:opacity;transition-property:opacity}.fade-1000{-webkit-transition-duration:1s;transition-duration:1s}.fade-600{-webkit-transition-duration:.6s;transition-duration:.6s}.fade-400{-webkit-transition-duration:.4s;transition-duration:.4s}.fade-300{-webkit-transition-duration:.3s;transition-duration:.3s}.fade-trigger{opacity:1}.wp-dfw-touch #fullscreen-topbar{position:absolute;opacity:1}.wp-dfw-touch .wp-fullscreen-title,.wp-dfw-touch .wp-fullscreen-wrap .wp-editor-container{max-width:700px}.wp-fullscreen-active.wp-dfw-touch .wp-editor-container,.wp-fullscreen-active.wp-dfw-touch .wp-fullscreen-title{border-color:#ccc}.wp-dfw-touch #wp-fullscreen-statusbar{height:30px}@media screen and (max-width:782px){#wp-fullscreen-button-bar,#wp-fullscreen-central-toolbar,#wp-fullscreen-close,#wp-fullscreen-mode-bar,#wp-fullscreen-save{display:inline-block}#fullscreen-topbar{height:85px}#wp-fullscreen-central-toolbar{width:auto!important;min-width:0}#wp-fullscreen-close{line-height:30px;vertical-align:top;padding:0 12px}#wp-fullscreen-button-bar{position:absolute;top:45px;right:0}.wp-fullscreen-wrap{top:95px}#wp-fullscreen-save{position:absolute;left:10px}}@media screen and (max-width:480px){#wp_fs_help{display:none}.wp-fullscreen-title,.wp-fullscreen-wrap .wp-editor-container{width:480px!important}body.wp-fullscreen-active{width:480px;overflow:auto}#fullscreen-topbar,.wp-fullscreen-wrap{width:480px}#fullscreen-topbar{position:absolute}#wp-fullscreen-status{width:auto!important;max-width:100%;padding:0 10px}}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#wp-fullscreen-buttons #wp_fs_image span.mce_image,.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}}
\ No newline at end of file
index 57f78d134d90521a6ba0d99df1c59ac21cf4fd67..b05def96fe9ee018791ca59cca8c27a7588bda59 100644 (file)
 }
 
 .mce-textbox,
 }
 
 .mce-textbox,
-.mce-checkbox i.mce-i-checkbox {
+.mce-checkbox i.mce-i-checkbox,
+#wp-link .query-results {
        border: 1px solid #ddd;
        -webkit-border-radius: 0;
        border-radius: 0;
        -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
        box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
        border: 1px solid #ddd;
        -webkit-border-radius: 0;
        border-radius: 0;
        -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
        box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
-       -webkit-transition: .05s border-color ease-in-out;
-       transition: .05s border-color ease-in-out;
+       -webkit-transition: .05s all ease-in-out;
+       transition: .05s all ease-in-out;
 }
 
 .mce-textbox:focus,
 .mce-textbox.mce-focus,
 }
 
 .mce-textbox:focus,
 .mce-textbox.mce-focus,
-.mce-checkbox:focus i.mce-i-checkbox {
+.mce-checkbox:focus i.mce-i-checkbox,
+#wp-link .query-results:focus {
        border-color: #5b9dd9;
        -webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8);
        box-shadow: 0 0 2px rgba(30,140,190,0.8);
        border-color: #5b9dd9;
        -webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8);
        box-shadow: 0 0 2px rgba(30,140,190,0.8);
@@ -148,10 +150,14 @@ div.mce-tab {
 div.mce-toolbar-grp {
        border-bottom: 1px solid #dedede;
        background: #f5f5f5;
 div.mce-toolbar-grp {
        border-bottom: 1px solid #dedede;
        background: #f5f5f5;
-       padding: 3px;
+       padding: 0;
        position: relative;
 }
 
        position: relative;
 }
 
+div.mce-toolbar-grp > div {
+       padding: 3px;
+}
+
 .has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first {
        padding-right: 32px;
 }
 .has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first {
        padding-right: 32px;
 }
@@ -161,14 +167,21 @@ div.mce-toolbar-grp {
 }
 
 div.mce-statusbar {
 }
 
 div.mce-statusbar {
-       border-top: 1px solid #eee;
+       border-top: 1px solid #e5e5e5;
 }
 
 div.mce-path {
 }
 
 div.mce-path {
-       padding: 0 8px 2px;
+       padding: 2px 10px;
        margin: 0;
 }
 
        margin: 0;
 }
 
+.mce-path,
+.mce-path-item,
+.mce-path .mce-divider {
+       font-size: 12px;
+       line-height: 18px;
+}
+
 .mce-toolbar .mce-btn,
 .qt-fullscreen {
        border-color: transparent;
 .mce-toolbar .mce-btn,
 .qt-fullscreen {
        border-color: transparent;
@@ -258,9 +271,13 @@ div.mce-path {
 }
 
 .mce-toolbar .mce-colorbutton .mce-preview {
 }
 
 .mce-toolbar .mce-colorbutton .mce-preview {
-       margin-left: -17px;
+       margin: 0;
        padding: 0;
        padding: 0;
-       width: 18px;
+       top: auto;
+       bottom: 2px;
+       left: 3px;
+       height: 3px;
+       width: 20px;
 }
 
 /* mce listbox */
 }
 
 /* mce listbox */
@@ -350,6 +367,8 @@ div.mce-path {
 /* Menubar */
 .mce-menubar {
        border-color: #e5e5e5;
 /* Menubar */
 .mce-menubar {
        border-color: #e5e5e5;
+       background: #fff;
+       border-width: 0px 0px 1px;
 }
 
 .mce-menubar .mce-btn:focus {
 }
 
 .mce-menubar .mce-btn:focus {
@@ -395,8 +414,8 @@ div.mce-menu .mce-menu-item-sep,
        -webkit-border-radius: 3px;
        border-radius: 3px;
        white-space: nowrap;
        -webkit-border-radius: 3px;
        border-radius: 3px;
        white-space: nowrap;
-       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
-       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
+       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
+       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
        background-image: none;
 }
 
        background-image: none;
 }
 
@@ -408,28 +427,34 @@ div.mce-menu .mce-menu-item-sep,
        padding: 0;
 }
 
        padding: 0;
 }
 
-.mce-window .mce-btn:hover {
+.mce-window .mce-btn:hover,
+.mce-window .mce-btn:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
 .mce-window .mce-btn:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
 .mce-window .mce-btn:focus {
-       -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
-       box-shadow: 1px 1px 1px rgba(0,0,0,.2);
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
 }
 
 .mce-window .mce-btn:active {
        background: #eee;
        border-color: #999;
        color: #333;
 }
 
 .mce-window .mce-btn:active {
        background: #eee;
        border-color: #999;
        color: #333;
-       -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
-       box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+       -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+       box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 }
 
 .mce-window .mce-btn.mce-disabled {
        color: #aaa;
        border-color: #ddd;
 }
 
 .mce-window .mce-btn.mce-disabled {
        color: #aaa;
        border-color: #ddd;
+       background: #f7f7f7;
        -webkit-box-shadow: none;
        box-shadow: none;
        text-shadow: 0 1px 0 #fff;
        -webkit-box-shadow: none;
        box-shadow: none;
        text-shadow: 0 1px 0 #fff;
@@ -439,39 +464,50 @@ div.mce-menu .mce-menu-item-sep,
 .mce-window .mce-btn.mce-primary {
        background: #2ea2cc;
        border-color: #0074a2;
 .mce-window .mce-btn.mce-primary {
        background: #2ea2cc;
        border-color: #0074a2;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.5), 0 1px 0 rgba(0,0,0,.15);
+       -webkit-box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5), 0 1px 0 rgba( 0, 0, 0, 0.15 );
+       box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.5 ), 0 1px 0 rgba( 0, 0, 0, 0.15 );
        color: #fff;
        text-decoration: none;
 }
 
        color: #fff;
        text-decoration: none;
 }
 
-.mce-window .mce-btn.mce-primary:hover {
+.mce-window .mce-btn.mce-primary:hover,
+.mce-window .mce-btn.mce-primary:focus {
        background: #1e8cbe;
        border-color: #0074a2;
        background: #1e8cbe;
        border-color: #0074a2;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
+       -webkit-box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.6 );
+       box-shadow: inset 0 1px 0 rgba( 120, 200, 230, 0.6 );
        color: #fff;
 }
 
 .mce-window .mce-btn.mce-primary:focus {
        border-color: #0e3950;
        color: #fff;
 }
 
 .mce-window .mce-btn.mce-primary:focus {
        border-color: #0e3950;
-       -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
-       box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
+       -webkit-box-shadow:
+               inset 0 1px 0 rgba( 120, 200, 230, 0.6 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
+       box-shadow:
+               inset 0 1px 0 rgba( 120, 200, 230, 0.6 ),
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
 }
 
 .mce-window .mce-btn.mce-primary:active {
        background: #1b7aa6;
        border-color: #005684;
 }
 
 .mce-window .mce-btn.mce-primary:active {
        background: #1b7aa6;
        border-color: #005684;
-       color: rgba(255,255,255,0.95);
-       -webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
-       box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
+       color: rgba( 255, 255, 255, 0.95 );
+       -webkit-box-shadow: inset 0 1px 0 rgba( 0, 0, 0, 0.1 );
+       box-shadow: inset 0 1px 0 rgba( 0, 0, 0, 0.1 );
+       vertical-align: top;
 }
 
 .mce-window .mce-btn.mce-primary.mce-disabled {
        color: #94cde7;
        background: #298cba;
        border-color: #1b607f;
 }
 
 .mce-window .mce-btn.mce-primary.mce-disabled {
        color: #94cde7;
        background: #298cba;
        border-color: #1b607f;
-       text-shadow: 0 -1px 0 rgba(0,0,0,0.1);
+       -webkit-box-shadow: none;
+       box-shadow: none;
+       text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.1 );
+       cursor: default;
 }
 
 .mce-menubtn.mce-fixed-width button span {
 }
 
 .mce-menubtn.mce-fixed-width button span {
@@ -570,6 +606,7 @@ i.mce-i-wp_adv,
 i.mce-i-underline,
 i.mce-i-alignjustify,
 i.mce-i-forecolor,
 i.mce-i-underline,
 i.mce-i-alignjustify,
 i.mce-i-forecolor,
+i.mce-i-backcolor,
 i.mce-i-pastetext,
 i.mce-i-pasteword,
 i.mce-i-removeformat,
 i.mce-i-pastetext,
 i.mce-i-pasteword,
 i.mce-i-removeformat,
@@ -673,7 +710,8 @@ i.mce-i-alignjustify:before {
        content: '\f214';
 }
 
        content: '\f214';
 }
 
-i.mce-i-forecolor:before {
+i.mce-i-forecolor:before,
+i.mce-i-backcolor:before {
        content: '\f215';
 }
 
        content: '\f215';
 }
 
@@ -731,7 +769,7 @@ i.mce-i-hr:before {
 }
 
 .mce-i-wp_code:before {
 }
 
 .mce-i-wp_code:before {
-       content: '\e017';
+       content: '\f475';
 }
 
 /* Editors */
 }
 
 /* Editors */
@@ -744,6 +782,12 @@ i.mce-i-hr:before {
        z-index: 1;
 }
 
        z-index: 1;
 }
 
+.wp-editor-tools:after {
+       clear: both;
+       content: '';
+       display: table;
+}
+
 .wp-editor-container {
        clear: both;
 }
 .wp-editor-container {
        clear: both;
 }
@@ -763,10 +807,6 @@ i.mce-i-hr:before {
        box-sizing: border-box;
 }
 
        box-sizing: border-box;
 }
 
-.wp-editor-tools {
-       padding: 0;
-}
-
 .wp-editor-container textarea.wp-editor-area {
        width: 100%;
        margin: 0;
 .wp-editor-container textarea.wp-editor-area {
        width: 100%;
        margin: 0;
@@ -910,32 +950,41 @@ i.mce-i-hr:before {
        position: absolute;
        top: 0;
        right: 0;
        position: absolute;
        top: 0;
        right: 0;
-       margin-top: 5px;
-       margin-right: 5px;
+       margin: 5px 5px 0 0;
 }
 
 @media screen and ( max-width: 782px ) {
        .mce-toolbar .mce-btn button,
        .qt-fullscreen {
 }
 
 @media screen and ( max-width: 782px ) {
        .mce-toolbar .mce-btn button,
        .qt-fullscreen {
-               padding: 7px 8px;
+               padding: 6px 7px;
+       }
+
+       #wp-fullscreen-buttons .mce-btn,
+       .mce-toolbar .mce-btn-group .mce-btn {
+               margin: 1px;
        }
 
        .qt-fullscreen {
        }
 
        .qt-fullscreen {
-               width: 38px;
+               width: 36px;
                height: 34px;
        }
 
                height: 34px;
        }
 
+       .mce-toolbar .mce-btn-group .mce-btn.mce-wp-fullscreen {
+               margin: 4px 4px 0 0;
+       }
+
        .mce-toolbar .mce-colorbutton .mce-preview {
        .mce-toolbar .mce-colorbutton .mce-preview {
-               margin-left: -21px;
+               left: 8px;
+               bottom: 6px;
        }
 
        .mce-window .mce-btn {
                padding: 2px 0;
        }
 
        }
 
        .mce-window .mce-btn {
                padding: 2px 0;
        }
 
-       div.mce-toolbar-grp,
-       .quicktags-toolbar {
-               padding-right: 46px;
+       .has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first,
+       .has-dfw .quicktags-toolbar {
+               padding-right: 40px;
        }
 }
 
        }
 }
 
@@ -1039,7 +1088,6 @@ i.mce-i-hr:before {
 
 #wp-link-close {
        color: #666;
 
 #wp-link-close {
        color: #666;
-       cursor: pointer;
        padding: 0;
        position: absolute;
        top: 0;
        padding: 0;
        position: absolute;
        top: 0;
@@ -1047,6 +1095,9 @@ i.mce-i-hr:before {
        width: 36px;
        height: 36px;
        text-align: center;
        width: 36px;
        height: 36px;
        text-align: center;
+       background: none;
+       border: none;
+       cursor: pointer;
 }
 
 #wp-link-close:before {
 }
 
 #wp-link-close:before {
@@ -1065,6 +1116,16 @@ i.mce-i-hr:before {
        color: #2ea2cc;
 }
 
        color: #2ea2cc;
 }
 
+#wp-link-close:focus {
+       outline: none;
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
 #link-selector {
        padding: 0 16px 50px;
 }
 #link-selector {
        padding: 0 16px 50px;
 }
@@ -1085,7 +1146,8 @@ i.mce-i-hr:before {
        padding: 0;
 }
 
        padding: 0;
 }
 
-#wp-link-search-toggle::after {
+#wp-link-search-toggle:after {
+       display: inline-block;
        font: normal 20px/1 'dashicons';
        vertical-align: top;
        speak: none;
        font: normal 20px/1 'dashicons';
        vertical-align: top;
        speak: none;
@@ -1094,7 +1156,7 @@ i.mce-i-hr:before {
        content: '\f140';
 }
 
        content: '\f140';
 }
 
-.search-panel-visible #wp-link-search-toggle::after {
+.search-panel-visible #wp-link-search-toggle:after {
        content: '\f142';
 }
 
        content: '\f142';
 }
 
@@ -1112,6 +1174,11 @@ i.mce-i-hr:before {
        margin: 3px 0;
 }
 
        margin: 3px 0;
 }
 
+#wp-link p.howto a {
+       text-decoration: none;
+       color: inherit;
+}
+
 #wp-link-search-toggle {
        cursor: pointer;
 }
 #wp-link-search-toggle {
        cursor: pointer;
 }
@@ -1175,17 +1242,46 @@ i.mce-i-hr:before {
        top: 205px;
 }
 
        top: 205px;
 }
 
-#wp-link li,
-#wp-link .query-notice {
+#wp-link li {
        clear: both;
        margin-bottom: 0;
        border-bottom: 1px solid #f1f1f1;
        color: #333;
        clear: both;
        margin-bottom: 0;
        border-bottom: 1px solid #f1f1f1;
        color: #333;
-       padding: 4px 6px;
+       padding: 4px 6px 4px 10px;
        cursor: pointer;
        position: relative;
 }
 
        cursor: pointer;
        position: relative;
 }
 
+#wp-link .query-notice {
+       padding: 0;
+       border-bottom: 1px solid #dfdfdf;
+       background-color: #f7fcfe;
+       color: #000;
+}
+
+#wp-link .query-notice .query-notice-default,
+#wp-link .query-notice .query-notice-hint {
+       display: block;
+       padding: 6px;
+       border-left: 4px solid #2ea2cc;
+}
+
+#wp-link .unselectable.no-matches-found {
+       padding: 0;
+       border-bottom: 1px solid #dfdfdf;
+       background-color: #fef7f1;
+}
+
+#wp-link .no-matches-found .item-title {
+       display: block;
+       padding: 6px;
+       border-left: 4px solid #d54e21;
+}
+
+#wp-link .query-results em {
+       font-style: normal;
+}
+
 #wp-link li:hover {
        background: #eaf2fa;
        color: #151515;
 #wp-link li:hover {
        background: #eaf2fa;
        color: #151515;
@@ -1262,6 +1358,7 @@ i.mce-i-hr:before {
 
 #wp-link-cancel {
        line-height: 25px;
 
 #wp-link-cancel {
        line-height: 25px;
+       float: left;
 }
 
 #wp-link-update {
 }
 
 #wp-link-update {
index b6efc304092ba62f922f0cb663bd34136dd5942d..c9af89ff34c3e0d5eb93b85d972d9b3b3f4db54f 100644 (file)
@@ -1 +1 @@
-.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}#mce-modal-block.mce-in{opacity:.7;filter:alpha(opacity=70)}.mce-window{-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #dfdfdf;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.mce-window .mce-window-head .mce-close{color:transparent;top:0;right:0;width:36px;height:36px;line-height:36px;text-align:center}.mce-window .mce-window-head .mce-close:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window .mce-window-head .mce-close:hover:before{color:#2ea2cc}.mce-window .mce-window-head .mce-dragh{width:-webkit-calc(100% - 36px);width:calc(100% - 36px)}.mce-wp-help .mce-window-head{border-bottom:0}.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:0;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff;-webkit-filter:none;filter:none}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #dedede;background:#f5f5f5;padding:3px;position:relative}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #eee}div.mce-path{padding:0 8px 2px;margin:0}.mce-toolbar .mce-btn,.qt-fullscreen{border-color:transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;cursor:pointer}#wp-fullscreen-buttons .mce-btn,.mce-toolbar .mce-btn-group .mce-btn,.qt-fullscreen{border:1px solid transparent;margin:2px;background-image:none;-webkit-border-radius:2px;border-radius:2px;-webkit-filter:none;filter:none}#wp-fullscreen-buttons .mce-btn:focus,#wp-fullscreen-buttons .mce-btn:hover,.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-fullscreen:focus,.qt-fullscreen:hover{background:#fafafa;border-color:#999;color:#222;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08)}#wp-fullscreen-buttons .mce-btn.mce-active,#wp-fullscreen-buttons .mce-btn:active,.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active{background:#ebebeb;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#555}.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover i.mce-ico{color:#555}#wp-fullscreen-buttons .mce-btn.mce-disabled:focus,#wp-fullscreen-buttons .mce-btn.mce-disabled:hover,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#aaa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;-webkit-box-shadow:none;box-shadow:none}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-fullscreen{padding:2px 3px;line-height:normal}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-right:0}.mce-toolbar .mce-colorbutton .mce-preview{margin-left:-17px;padding:0;width:18px}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{-webkit-border-radius:0;border-radius:0;direction:ltr;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{background-image:none;border-color:#bbb}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox span{font-size:13px}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #777;margin-left:2px;margin-right:2px}.mce-listbox i.mce-caret{right:6px}.mce-panel .mce-btn button.mce-open i.mce-caret,.mce-panel .mce-btn.mce-listbox i.mce-caret{margin-left:0;margin-right:0}.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#333}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #333;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-right-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:none;box-shadow:none}.mce-menu .mce-menu-item-normal.mce-active{background-color:#e5e5e5;-webkit-filter:none;filter:none}.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{color:#000;background-color:#bbb;background-image:none;-webkit-filter:none;filter:none}.mce-menu .mce-menu-item.mce-active:hover .mce-text,.mce-menu .mce-menu-item.mce-selected .mce-ico,.mce-menu .mce-menu-item.mce-selected .mce-text,.mce-menu .mce-menu-item:focus .mce-ico,.mce-menu .mce-menu-item:hover .mce-ico,.mce-menu .mce-menu-item:hover .mce-text{color:#000}.mce-menubar{border-color:#e5e5e5}.mce-menubar .mce-btn:focus{outline:0}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{margin:5px 0 4px}.mce-menubtn span{margin-right:0;padding-left:3px}.mce-menu-has-icons i.mce-ico:before{margin-left:-2px}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);background-image:none}.mce-window .mce-btn::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#222}.mce-window .mce-btn:focus{-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2)}.mce-window .mce-btn:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.mce-window .mce-btn.mce-disabled{color:#aaa;border-color:#ddd;-webkit-box-shadow:none;box-shadow:none;text-shadow:0 1px 0 #fff;cursor:default}.mce-window .mce-btn.mce-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.mce-window .mce-btn.mce-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.mce-window .mce-btn.mce-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4);box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.mce-window .mce-btn.mce-primary:active{background:#1b7aa6;border-color:#005684;color:rgba(255,255,255,.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}.mce-window .mce-btn.mce-primary.mce-disabled{color:#94cde7;background:#298cba;border-color:#1b607f;text-shadow:0 -1px 0 rgba(0,0,0,.1)}.mce-menubtn.mce-fixed-width button span{max-width:80px;padding-right:16px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#dfdfdf;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#777;line-height:20px;width:20px;height:20px;text-align:center;text-shadow:none;margin:0;padding:0}.qt-fullscreen{color:#777;line-height:20px;width:28px;height:26px;text-align:center;text-shadow:none}.mce-toolbar .mce-btn .mce-open{line-height:20px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-left-color:#999}.mce-close,i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-left:-2px;padding-right:2px}.qt-fullscreen{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:'\f200'}i.mce-i-italic:before{content:'\f201'}i.mce-i-bullist:before{content:'\f203'}i.mce-i-numlist:before{content:'\f204'}i.mce-i-blockquote:before{content:'\f205'}i.mce-i-alignleft:before{content:'\f206'}i.mce-i-aligncenter:before{content:'\f207'}i.mce-i-alignright:before{content:'\f208'}i.mce-i-link:before{content:'\f103'}i.mce-i-unlink:before{content:'\f225'}i.mce-i-wp_more:before{content:'\f209'}i.mce-i-strikethrough:before{content:'\f224'}i.mce-i-spellchecker:before{content:'\f210'}.qt-fullscreen:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:'\f211'}i.mce-i-wp_adv:before{content:'\f212'}i.mce-i-underline:before{content:'\f213'}i.mce-i-alignjustify:before{content:'\f214'}i.mce-i-forecolor:before{content:'\f215'}i.mce-i-pastetext:before{content:'\f217'}i.mce-i-removeformat:before{content:'\f218'}i.mce-i-charmap:before{content:'\f220'}i.mce-i-outdent:before{content:'\f221'}i.mce-i-indent:before{content:'\f222'}i.mce-i-undo:before{content:'\f171'}i.mce-i-redo:before{content:'\f172'}i.mce-i-help:before,i.mce-i-wp_help:before{content:'\f223'}i.mce-i-wp-media-library:before{content:'\f104'}i.mce-i-ltr:before{content:'\f320'}i.mce-i-wp_page:before{content:'\f105'}i.mce-i-hr:before{content:'\f460'}.mce-close:before{content:'\f158'}.mce-i-wp_code:before{content:'\e017'}.wp-editor-wrap{position:relative}.wp-editor-tools{position:relative;z-index:1}.wp-editor-container{clear:both}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0 none;outline:0;display:block;resize:vertical;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-editor-tools{padding:0}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none}.wp-editor-tabs{float:right}.wp-switch-editor{background:#ebebeb;border:1px solid #dedede;color:#777;cursor:pointer;float:right;font:13px/19px "Open Sans",sans-serif;height:19px;margin:5px 0 0 5px;padding:3px 8px 4px;position:relative;top:1px}.wp-switch-editor:active{background-color:#f1f1f1}.wp-switch-editor:hover{text-decoration:none!important;background:#fff}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;height:20px;border-bottom:0}.wp-media-buttons{float:left}.wp-media-buttons .button{margin-right:5px;margin-bottom:4px;padding-left:7px;padding-right:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-left:5px}.wp-media-buttons a{text-decoration:none;color:#464646;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f104'}.quicktags-toolbar{padding:3px;position:relative;border-bottom:1px solid #dedede;background:#f5f5f5}.has-dfw .quicktags-toolbar{padding-right:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:700}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-fullscreen,.qt-fullscreen{position:absolute;top:0;right:0;margin-top:5px;margin-right:5px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-fullscreen{padding:7px 8px}.qt-fullscreen{width:38px;height:34px}.mce-toolbar .mce-colorbutton .mce-preview{margin-left:-21px}.mce-window .mce-btn{padding:2px 0}.quicktags-toolbar,div.mce-toolbar-grp{padding-right:46px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;height:250px;overflow:hidden;margin-left:-250px;margin-top:-125px;position:fixed;top:50%;left:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s}#wp-link-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap.search-panel-visible{height:500px;margin-top:-250px}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 36px 0 16px;top:0;right:0;left:0}#wp-link-close{color:#666;cursor:pointer;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:'\f158'}#wp-link-close:focus,#wp-link-close:hover{color:#2ea2cc}#link-selector{padding:0 16px 50px}#wp-link-wrap.search-panel-visible #link-selector{padding:0 16px;position:absolute;top:36px;left:0;right:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link-search-toggle::after{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140'}.search-panel-visible #wp-link-search-toggle::after{content:'\f142'}#wp-link input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link-search-toggle{cursor:pointer}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:right;padding-right:5px;max-width:24%}#wp-link .link-search-field{float:left;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:left;margin-top:4px}#wp-link .link-search-wrapper .spinner{display:none;vertical-align:text-bottom}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px #dfdfdf solid;margin:0;background:#fff;overflow:auto;position:absolute;left:16px;right:16px;bottom:16px;top:205px}#wp-link .query-notice,#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#333;padding:4px 6px;cursor:pointer;position:relative}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#333}#wp-link li.selected{background:#ddd;color:#333}#wp-link li.selected .item-title{font-weight:700}#wp-link li:last-child{border:0}#wp-link .item-title{display:inline-block;width:80%;width:-webkit-calc(100% - 68px);width:calc(100% - 68px)}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;right:5px;top:5px}#wp-link #search-panel,#wp-link #search-results{display:none}#wp-link-wrap.search-panel-visible #search-panel{display:block}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .river-waiting .spinner{margin:0 auto;display:block;float:none}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;left:0;right:0}#wp-link-cancel{line-height:25px}#wp-link-update{line-height:23px;float:right}#wp-link-submit{float:right;margin-bottom:0}@media screen and (max-width:782px){#wp-link-wrap{height:280px;margin-top:-140px}#wp-link-wrap.search-panel-visible .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap.search-panel-visible #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-left:0;left:10px;right:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{-webkit-transition:none;transition:none}#wp-link-wrap.search-panel-visible{height:auto;margin-top:0;top:10px;bottom:10px}.search-panel-visible #link-selector{overflow:auto}.search-panel-visible #search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:-webkit-calc(100% - 92px);height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}.fullscreen-overlay{z-index:100005;display:none;position:fixed;top:0;bottom:0;left:0;right:0;-webkit-filter:inherit;filter:inherit}.wp-fullscreen-active #wp-fullscreen-body,.wp-fullscreen-active .fullscreen-overlay{display:block}.fullscreen-fader{z-index:200000}.wp-core-ui.wp-fullscreen-active .postbox-container,.wp-fullscreen-active .fullscreen-fader{display:none}#wp-fullscreen-body,.mce-fullscreen{z-index:100010}#wp-fullscreen-body{display:none}.wp-fullscreen-wrap{margin:0;padding:0;position:absolute;left:0;right:0;bottom:30px;top:60px;z-index:100015}#wp-fullscreen-central-toolbar,.wp-fullscreen-title,.wp-fullscreen-wrap .wp-editor-container{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;max-width:100%}.wp-fullscreen-active .mce-statusbar,.wp-fullscreen-active .mce-toolbar-grp,.wp-fullscreen-active .quicktags-toolbar,.wp-fullscreen-active .wp-editor-tools{display:none}#wp-fullscreen-statusbar{position:fixed;left:0;right:0;bottom:0;height:30px;z-index:100020;background:#fff;-webkit-transition:height .2s;transition:height .2s}#wp-fullscreen-status{margin:0 auto;padding:0}.wp-fullscreen-active .wp-editor-container,.wp-fullscreen-active .wp-fullscreen-title,.wp-fullscreen-active .wp-fullscreen-title:focus{-webkit-border-radius:0;border-radius:0;border:1px dashed transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color .4s;transition:border-color .4s}.wp-fullscreen-active .wp-editor-container{margin:0 auto 40px}.wp-fullscreen-active .wp-fullscreen-title{font-size:1.7em;line-height:100%;outline:medium none;padding:3px 7px;margin:10px auto 30px;display:block}#wp-fullscreen-tagline{color:#888;font-size:18px;float:right;padding:4px 0 0}#fullscreen-topbar{background:#f5f5f5;border-bottom:1px solid #dedede;height:45px;position:fixed;left:0;right:0;top:0;width:100%;z-index:100020;-webkit-transition:opacity .4s;transition:opacity .4s}#wp-fullscreen-toolbar{padding:6px 10px 0;clear:both;max-width:1100px;margin:0 auto}#wp-fullscreen-button-bar,#wp-fullscreen-close,#wp-fullscreen-mode-bar{float:left}#wp-fullscreen-count,#wp-fullscreen-tagline{display:inline-block}#wp-fullscreen-button-bar{margin-top:2px}#wp-fullscreen-save{float:right;padding:2px 0 0;min-width:95px}#wp-fullscreen-close,#wp-fullscreen-count{padding:5px 0 0}#wp-fullscreen-central-toolbar{margin:auto;padding:0;min-width:620px}#wp-fullscreen-buttons>div{float:left}#wp-fullscreen-mode-bar{padding:3px 14px 0 0}#wp-fullscreen-buttons .hidden{display:none}#wp-fullscreen-buttons .disabled{opacity:.5}#wp-fullscreen-buttons .mce-btn button{margin:0;outline:0 none;border:0 none;white-space:nowrap;width:auto;background:0 0;color:#333;cursor:pointer;font-size:18px;line-height:20px;overflow:visible;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-html-mode #wp-fullscreen-buttons div{display:none}.wp-html-mode #wp-fullscreen-buttons div.wp-fullscreen-both{display:block}#wp-fullscreen-save img{vertical-align:middle}#wp-fullscreen-save span{display:none;margin:5px 6px 0;float:left}.wp-fullscreen-active #TB_overlay{z-index:100050}.wp-fullscreen-active #TB_window{z-index:100051}.fullscreen-overlay{background:#fff}.wp-fullscreen-active #fullscreen-topbar{-webkit-transition-duration:.8s;transition-duration:.8s;opacity:0;filter:alpha(opacity=0)}.wp-fullscreen-active #wp-fullscreen-statusbar{height:0}.wp-fullscreen-active.wp-dfw-show-ui #fullscreen-topbar{-webkit-transition-duration:.4s;transition-duration:.4s;opacity:1;filter:alpha(opacity=100)}.wp-fullscreen-active.wp-dfw-show-ui #wp-fullscreen-statusbar{height:29px;background:#f8f8f8;border-top:1px solid #eee}.wp-fullscreen-active .wp-editor-container,.wp-fullscreen-active .wp-fullscreen-title{-webkit-transition-duration:.8s;transition-duration:.8s;border-color:transparent}.wp-fullscreen-active.wp-dfw-show-ui .wp-editor-container,.wp-fullscreen-active.wp-dfw-show-ui .wp-fullscreen-title{-webkit-transition-duration:.4s;transition-duration:.4s;border-color:#ccc}.fade-1000,.fade-300,.fade-400,.fade-600{opacity:0;-webkit-transition-property:opacity;transition-property:opacity}.fade-1000{-webkit-transition-duration:1s;transition-duration:1s}.fade-600{-webkit-transition-duration:.6s;transition-duration:.6s}.fade-400{-webkit-transition-duration:.4s;transition-duration:.4s}.fade-300{-webkit-transition-duration:.3s;transition-duration:.3s}.fade-trigger{opacity:1}.wp-dfw-touch #fullscreen-topbar{position:absolute;opacity:1}.wp-dfw-touch .wp-fullscreen-title,.wp-dfw-touch .wp-fullscreen-wrap .wp-editor-container{max-width:700px}.wp-fullscreen-active.wp-dfw-touch .wp-editor-container,.wp-fullscreen-active.wp-dfw-touch .wp-fullscreen-title{border-color:#ccc}.wp-dfw-touch #wp-fullscreen-statusbar{height:30px}@media screen and (max-width:782px){#wp-fullscreen-button-bar,#wp-fullscreen-central-toolbar,#wp-fullscreen-close,#wp-fullscreen-mode-bar,#wp-fullscreen-save{display:inline-block}#fullscreen-topbar{height:85px}#wp-fullscreen-central-toolbar{width:auto!important;min-width:0}#wp-fullscreen-close{line-height:30px;vertical-align:top;padding:0 12px}#wp-fullscreen-button-bar{position:absolute;top:45px;left:0}.wp-fullscreen-wrap{top:95px}#wp-fullscreen-save{position:absolute;right:10px}}@media screen and (max-width:480px){#wp_fs_help{display:none}.wp-fullscreen-title,.wp-fullscreen-wrap .wp-editor-container{width:480px!important}body.wp-fullscreen-active{width:480px;overflow:auto}#fullscreen-topbar,.wp-fullscreen-wrap{width:480px}#fullscreen-topbar{position:absolute}#wp-fullscreen-status{width:auto!important;max-width:100%;padding:0 10px}}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#wp-fullscreen-buttons #wp_fs_image span.mce_image,.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}}
\ No newline at end of file
+.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}#mce-modal-block.mce-in{opacity:.7;filter:alpha(opacity=70)}.mce-window{-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #dfdfdf;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.mce-window .mce-window-head .mce-close{color:transparent;top:0;right:0;width:36px;height:36px;line-height:36px;text-align:center}.mce-window .mce-window-head .mce-close:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window .mce-window-head .mce-close:hover:before{color:#2ea2cc}.mce-window .mce-window-head .mce-dragh{width:-webkit-calc(100% - 36px);width:calc(100% - 36px)}.mce-wp-help .mce-window-head{border-bottom:none}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);-webkit-transition:.05s all ease-in-out;transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff;-webkit-filter:none;filter:none}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #dedede;background:#f5f5f5;padding:0;position:relative}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px;line-height:18px}.mce-toolbar .mce-btn,.qt-fullscreen{border-color:transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;cursor:pointer}#wp-fullscreen-buttons .mce-btn,.mce-toolbar .mce-btn-group .mce-btn,.qt-fullscreen{border:1px solid transparent;margin:2px;background-image:none;-webkit-border-radius:2px;border-radius:2px;-webkit-filter:none;filter:none}#wp-fullscreen-buttons .mce-btn:focus,#wp-fullscreen-buttons .mce-btn:hover,.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-fullscreen:focus,.qt-fullscreen:hover{background:#fafafa;border-color:#999;color:#222;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08)}#wp-fullscreen-buttons .mce-btn.mce-active,#wp-fullscreen-buttons .mce-btn:active,.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active{background:#ebebeb;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#555}.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover i.mce-ico{color:#555}#wp-fullscreen-buttons .mce-btn.mce-disabled:focus,#wp-fullscreen-buttons .mce-btn.mce-disabled:hover,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#aaa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;-webkit-box-shadow:none;box-shadow:none}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-fullscreen{padding:2px 3px;line-height:normal}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-right:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;left:3px;height:3px;width:20px}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{-webkit-border-radius:0;border-radius:0;direction:ltr;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{background-image:none;border-color:#bbb}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox span{font-size:13px}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #777;margin-left:2px;margin-right:2px}.mce-listbox i.mce-caret{right:6px}.mce-panel .mce-btn button.mce-open i.mce-caret,.mce-panel .mce-btn.mce-listbox i.mce-caret{margin-left:0;margin-right:0}.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#333}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #333;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-right-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:none;box-shadow:none}.mce-menu .mce-menu-item-normal.mce-active{background-color:#e5e5e5;-webkit-filter:none;filter:none}.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{color:#000;background-color:#bbb;background-image:none;-webkit-filter:none;filter:none}.mce-menu .mce-menu-item.mce-active:hover .mce-text,.mce-menu .mce-menu-item.mce-selected .mce-ico,.mce-menu .mce-menu-item.mce-selected .mce-text,.mce-menu .mce-menu-item:focus .mce-ico,.mce-menu .mce-menu-item:hover .mce-ico,.mce-menu .mce-menu-item:hover .mce-text{color:#000}.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-btn:focus{outline:0}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{margin:5px 0 4px}.mce-menubtn span{margin-right:0;padding-left:3px}.mce-menu-has-icons i.mce-ico:before{margin-left:-2px}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08)}.mce-window .mce-btn::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#222}.mce-window .mce-btn:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.mce-window .mce-btn.mce-disabled{color:#aaa;border-color:#ddd;background:#f7f7f7;-webkit-box-shadow:none;box-shadow:none;text-shadow:0 1px 0 #fff;cursor:default}.mce-window .mce-btn.mce-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.mce-window .mce-btn.mce-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 1px 0 rgba(120,200,230,.6),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-btn.mce-primary:active{background:#1b7aa6;border-color:#005684;color:rgba(255,255,255,.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#94cde7;background:#298cba;border-color:#1b607f;-webkit-box-shadow:none;box-shadow:none;text-shadow:0 -1px 0 rgba(0,0,0,.1);cursor:default}.mce-menubtn.mce-fixed-width button span{max-width:80px;padding-right:16px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#dfdfdf;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#777;line-height:20px;width:20px;height:20px;text-align:center;text-shadow:none;margin:0;padding:0}.qt-fullscreen{color:#777;line-height:20px;width:28px;height:26px;text-align:center;text-shadow:none}.mce-toolbar .mce-btn .mce-open{line-height:20px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-left-color:#999}.mce-close,i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 2px 0 0;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-left:-2px}.qt-fullscreen{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:'\f200'}i.mce-i-italic:before{content:'\f201'}i.mce-i-bullist:before{content:'\f203'}i.mce-i-numlist:before{content:'\f204'}i.mce-i-blockquote:before{content:'\f205'}i.mce-i-alignleft:before{content:'\f206'}i.mce-i-aligncenter:before{content:'\f207'}i.mce-i-alignright:before{content:'\f208'}i.mce-i-link:before{content:'\f103'}i.mce-i-unlink:before{content:'\f225'}i.mce-i-wp_more:before{content:'\f209'}i.mce-i-strikethrough:before{content:'\f224'}i.mce-i-spellchecker:before{content:'\f210'}.qt-fullscreen:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:'\f211'}i.mce-i-wp_adv:before{content:'\f212'}i.mce-i-underline:before{content:'\f213'}i.mce-i-alignjustify:before{content:'\f214'}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:'\f215'}i.mce-i-pastetext:before{content:'\f217'}i.mce-i-removeformat:before{content:'\f218'}i.mce-i-charmap:before{content:'\f220'}i.mce-i-outdent:before{content:'\f221'}i.mce-i-indent:before{content:'\f222'}i.mce-i-undo:before{content:'\f171'}i.mce-i-redo:before{content:'\f172'}i.mce-i-help:before,i.mce-i-wp_help:before{content:'\f223'}i.mce-i-wp-media-library:before{content:'\f104'}i.mce-i-ltr:before{content:'\f320'}i.mce-i-wp_page:before{content:'\f105'}i.mce-i-hr:before{content:'\f460'}.mce-close:before{content:'\f158'}.mce-i-wp_code:before{content:'\f475'}.wp-editor-wrap{position:relative}.wp-editor-tools{position:relative;z-index:1}.wp-editor-tools:after{clear:both;content:'';display:table}.wp-editor-container{clear:both}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none}.wp-editor-tabs{float:right}.wp-switch-editor{background:#ebebeb;border:1px solid #dedede;color:#777;cursor:pointer;float:right;font:13px/19px "Open Sans",sans-serif;height:19px;margin:5px 0 0 5px;padding:3px 8px 4px;position:relative;top:1px}.wp-switch-editor:active{background-color:#f1f1f1}.wp-switch-editor:hover{text-decoration:none!important;background:#fff}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;height:20px;border-bottom:none}.wp-media-buttons{float:left}.wp-media-buttons .button{margin-right:5px;margin-bottom:4px;padding-left:7px;padding-right:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-left:5px}.wp-media-buttons a{text-decoration:none;color:#464646;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f104'}.quicktags-toolbar{padding:3px;position:relative;border-bottom:1px solid #dedede;background:#f5f5f5}.has-dfw .quicktags-toolbar{padding-right:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:700}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-fullscreen,.qt-fullscreen{position:absolute;top:0;right:0;margin:5px 5px 0 0}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-fullscreen{padding:6px 7px}#wp-fullscreen-buttons .mce-btn,.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-fullscreen{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-fullscreen{margin:4px 4px 0 0}.mce-toolbar .mce-colorbutton .mce-preview{left:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;height:250px;overflow:hidden;margin-left:-250px;margin-top:-125px;position:fixed;top:50%;left:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s}#wp-link-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap.search-panel-visible{height:500px;margin-top:-250px}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 36px 0 16px;top:0;right:0;left:0}#wp-link-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:'\f158'}#wp-link-close:focus,#wp-link-close:hover{color:#2ea2cc}#wp-link-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#link-selector{padding:0 16px 50px}#wp-link-wrap.search-panel-visible #link-selector{padding:0 16px;position:absolute;top:36px;left:0;right:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link-search-toggle:after{display:inline-block;font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140'}.search-panel-visible #wp-link-search-toggle:after{content:'\f142'}#wp-link input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link-search-toggle{cursor:pointer}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:right;padding-right:5px;max-width:24%}#wp-link .link-search-field{float:left;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:left;margin-top:4px}#wp-link .link-search-wrapper .spinner{display:none;vertical-align:text-bottom}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0;background:#fff;overflow:auto;position:absolute;left:16px;right:16px;bottom:16px;top:205px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#333;padding:4px 6px 4px 10px;cursor:pointer;position:relative}#wp-link .query-notice{padding:0;border-bottom:1px solid #dfdfdf;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-left:4px solid #2ea2cc}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-left:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#333}#wp-link li.selected{background:#ddd;color:#333}#wp-link li.selected .item-title{font-weight:700}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:-webkit-calc(100% - 68px);width:calc(100% - 68px)}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;right:5px;top:5px}#wp-link #search-panel,#wp-link #search-results{display:none}#wp-link-wrap.search-panel-visible #search-panel{display:block}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .river-waiting .spinner{margin:0 auto;display:block;float:none}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;position:absolute;bottom:0;left:0;right:0}#wp-link-cancel{line-height:25px;float:left}#wp-link-update{line-height:23px;float:right}#wp-link-submit{float:right;margin-bottom:0}@media screen and (max-width:782px){#wp-link-wrap{height:280px;margin-top:-140px}#wp-link-wrap.search-panel-visible .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap.search-panel-visible #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-left:0;left:10px;right:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{-webkit-transition:none;transition:none}#wp-link-wrap.search-panel-visible{height:auto;margin-top:0;top:10px;bottom:10px}.search-panel-visible #link-selector{overflow:auto}.search-panel-visible #search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:-webkit-calc(100% - 92px);height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}.fullscreen-overlay{z-index:100005;display:none;position:fixed;top:0;bottom:0;left:0;right:0;-webkit-filter:inherit;filter:inherit}.wp-fullscreen-active #wp-fullscreen-body,.wp-fullscreen-active .fullscreen-overlay{display:block}.fullscreen-fader{z-index:200000}.wp-core-ui.wp-fullscreen-active .postbox-container,.wp-fullscreen-active .fullscreen-fader{display:none}#wp-fullscreen-body,.mce-fullscreen{z-index:100010}#wp-fullscreen-body{display:none}.wp-fullscreen-wrap{margin:0;padding:0;position:absolute;left:0;right:0;bottom:30px;top:60px;z-index:100015}#wp-fullscreen-central-toolbar,.wp-fullscreen-title,.wp-fullscreen-wrap .wp-editor-container{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;max-width:100%}.wp-fullscreen-active .mce-statusbar,.wp-fullscreen-active .mce-toolbar-grp,.wp-fullscreen-active .quicktags-toolbar,.wp-fullscreen-active .wp-editor-tools{display:none}#wp-fullscreen-statusbar{position:fixed;left:0;right:0;bottom:0;height:30px;z-index:100020;background:#fff;-webkit-transition:height .2s;transition:height .2s}#wp-fullscreen-status{margin:0 auto;padding:0}.wp-fullscreen-active .wp-editor-container,.wp-fullscreen-active .wp-fullscreen-title,.wp-fullscreen-active .wp-fullscreen-title:focus{-webkit-border-radius:0;border-radius:0;border:1px dashed transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color .4s;transition:border-color .4s}.wp-fullscreen-active .wp-editor-container{margin:0 auto 40px}.wp-fullscreen-active .wp-fullscreen-title{font-size:1.7em;line-height:100%;outline:0;padding:3px 7px;margin:10px auto 30px;display:block}#wp-fullscreen-tagline{color:#888;font-size:18px;float:right;padding:4px 0 0}#fullscreen-topbar{background:#f5f5f5;border-bottom:1px solid #dedede;height:45px;position:fixed;left:0;right:0;top:0;width:100%;z-index:100020;-webkit-transition:opacity .4s;transition:opacity .4s}#wp-fullscreen-toolbar{padding:6px 10px 0;clear:both;max-width:1100px;margin:0 auto}#wp-fullscreen-button-bar,#wp-fullscreen-close,#wp-fullscreen-mode-bar{float:left}#wp-fullscreen-count,#wp-fullscreen-tagline{display:inline-block}#wp-fullscreen-button-bar{margin-top:2px}#wp-fullscreen-save{float:right;padding:2px 0 0;min-width:95px}#wp-fullscreen-close,#wp-fullscreen-count{padding:5px 0 0}#wp-fullscreen-central-toolbar{margin:auto;padding:0;min-width:620px}#wp-fullscreen-buttons>div{float:left}#wp-fullscreen-mode-bar{padding:3px 14px 0 0}#wp-fullscreen-buttons .hidden{display:none}#wp-fullscreen-buttons .disabled{opacity:.5}#wp-fullscreen-buttons .mce-btn button{margin:0;outline:0;border:0;white-space:nowrap;width:auto;background:0 0;color:#333;cursor:pointer;font-size:18px;line-height:20px;overflow:visible;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-html-mode #wp-fullscreen-buttons div{display:none}.wp-html-mode #wp-fullscreen-buttons div.wp-fullscreen-both{display:block}#wp-fullscreen-save img{vertical-align:middle}#wp-fullscreen-save span{display:none;margin:5px 6px 0;float:left}.wp-fullscreen-active #TB_overlay{z-index:100050}.wp-fullscreen-active #TB_window{z-index:100051}.fullscreen-overlay{background:#fff}.wp-fullscreen-active #fullscreen-topbar{-webkit-transition-duration:.8s;transition-duration:.8s;opacity:0;filter:alpha(opacity=0)}.wp-fullscreen-active #wp-fullscreen-statusbar{height:0}.wp-fullscreen-active.wp-dfw-show-ui #fullscreen-topbar{-webkit-transition-duration:.4s;transition-duration:.4s;opacity:1;filter:alpha(opacity=100)}.wp-fullscreen-active.wp-dfw-show-ui #wp-fullscreen-statusbar{height:29px;background:#f8f8f8;border-top:1px solid #eee}.wp-fullscreen-active .wp-editor-container,.wp-fullscreen-active .wp-fullscreen-title{-webkit-transition-duration:.8s;transition-duration:.8s;border-color:transparent}.wp-fullscreen-active.wp-dfw-show-ui .wp-editor-container,.wp-fullscreen-active.wp-dfw-show-ui .wp-fullscreen-title{-webkit-transition-duration:.4s;transition-duration:.4s;border-color:#ccc}.fade-1000,.fade-300,.fade-400,.fade-600{opacity:0;-webkit-transition-property:opacity;transition-property:opacity}.fade-1000{-webkit-transition-duration:1s;transition-duration:1s}.fade-600{-webkit-transition-duration:.6s;transition-duration:.6s}.fade-400{-webkit-transition-duration:.4s;transition-duration:.4s}.fade-300{-webkit-transition-duration:.3s;transition-duration:.3s}.fade-trigger{opacity:1}.wp-dfw-touch #fullscreen-topbar{position:absolute;opacity:1}.wp-dfw-touch .wp-fullscreen-title,.wp-dfw-touch .wp-fullscreen-wrap .wp-editor-container{max-width:700px}.wp-fullscreen-active.wp-dfw-touch .wp-editor-container,.wp-fullscreen-active.wp-dfw-touch .wp-fullscreen-title{border-color:#ccc}.wp-dfw-touch #wp-fullscreen-statusbar{height:30px}@media screen and (max-width:782px){#wp-fullscreen-button-bar,#wp-fullscreen-central-toolbar,#wp-fullscreen-close,#wp-fullscreen-mode-bar,#wp-fullscreen-save{display:inline-block}#fullscreen-topbar{height:85px}#wp-fullscreen-central-toolbar{width:auto!important;min-width:0}#wp-fullscreen-close{line-height:30px;vertical-align:top;padding:0 12px}#wp-fullscreen-button-bar{position:absolute;top:45px;left:0}.wp-fullscreen-wrap{top:95px}#wp-fullscreen-save{position:absolute;right:10px}}@media screen and (max-width:480px){#wp_fs_help{display:none}.wp-fullscreen-title,.wp-fullscreen-wrap .wp-editor-container{width:480px!important}body.wp-fullscreen-active{width:480px;overflow:auto}#fullscreen-topbar,.wp-fullscreen-wrap{width:480px}#fullscreen-topbar{position:absolute}#wp-fullscreen-status{width:auto!important;max-width:100%;padding:0 10px}}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#wp-fullscreen-buttons #wp_fs_image span.mce_image,.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}}
\ No newline at end of file
index 24e2c8bec5826b7571e0d52f3c3cc61720b3bd62..b408877614ab34701bc5c7d4e8aed80419a31f65 100644 (file)
        color: #555;
        border-color: #cccccc;
        background: #f7f7f7;
        color: #555;
        border-color: #cccccc;
        background: #f7f7f7;
-       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
-       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
+       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
+       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
        vertical-align: top;
 }
 
        vertical-align: top;
 }
 
+.ui-button:active,
+.ui-button:focus {
+       outline: none;
+}
+
 /* Remove the dotted border on :focus and the extra padding in Firefox */
 .ui-button::-moz-focus-inner {
        border-width: 1px 0;
 /* Remove the dotted border on :focus and the extra padding in Firefox */
 .ui-button::-moz-focus-inner {
        border-width: 1px 0;
        padding: 0;
 }
 
        padding: 0;
 }
 
-.ui-button:hover {
+.ui-button:hover,
+.ui-button:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
 .ui-button:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
 .ui-button:focus {
-       -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
-       box-shadow: 1px 1px 1px rgba(0,0,0,.2);
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
 }
 
 .ui-button:active {
        background: #eee;
        border-color: #999;
        color: #333;
 }
 
 .ui-button:active {
        background: #eee;
        border-color: #999;
        color: #333;
-       -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
-       box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
-       outline: none;
+       -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+       box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 }
 
 .ui-button[disabled],
 }
 
 .ui-button[disabled],
index e7b482937f130bedb2ac4a362aa3d0a80d2bf618..67b4304aced26b9121d205b09f9192cdde352583 100644 (file)
@@ -16,4 +16,4 @@
  * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Resizable#theming
  * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Resizable#theming
- */.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;right:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;right: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:9px;height:9px;right:-5px;bottom:-5px}.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}.ui-button{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.ui-button::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.ui-button:hover{background:#fafafa;border-color:#999;color:#222}.ui-button:focus{-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2)}.ui-button:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);outline:0}.ui-button:disabled,.ui-button[disabled]{color:#aaa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}@media screen and (max-width:782px){.ui-button{padding:10px 14px;line-height:1;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}}.ui-dialog{position:absolute;top:0;right:0;z-index:100102;background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3)}.ui-dialog-titlebar{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 16px 0 36px}.ui-button.ui-dialog-titlebar-close{background:0 0;border:0;-webkit-box-shadow:none;box-shadow:none;color:#666;cursor:pointer;display:block;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center}.ui-dialog-titlebar-close:before{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:36px;width:36px;height:36px;content:'\f158'}.ui-button.ui-dialog-titlebar-close:hover{color:#2ea2cc}.ui-dialog-titlebar-close .ui-button-text{display:none}.ui-dialog-content{padding:16px;overflow:auto}.ui-dialog-buttonpane{background:#fcfcfc;border-top:1px solid #dfdfdf;padding:16px}.ui-dialog-buttonpane .ui-button{margin-right:16px}.ui-dialog-buttonpane .ui-dialog-buttonset{float:left}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-widget-overlay{position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100101}
\ No newline at end of file
+ */.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;right:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;right: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:9px;height:9px;right:-5px;bottom:-5px}.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}.ui-button{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.ui-button:active,.ui-button:focus{outline:0}.ui-button::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.ui-button:focus,.ui-button:hover{background:#fafafa;border-color:#999;color:#222}.ui-button:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ui-button:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.ui-button:disabled,.ui-button[disabled]{color:#aaa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}@media screen and (max-width:782px){.ui-button{padding:10px 14px;line-height:1;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}}.ui-dialog{position:absolute;top:0;right:0;z-index:100102;background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3)}.ui-dialog-titlebar{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 16px 0 36px}.ui-button.ui-dialog-titlebar-close{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;color:#666;cursor:pointer;display:block;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center}.ui-dialog-titlebar-close:before{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:36px;width:36px;height:36px;content:'\f158'}.ui-button.ui-dialog-titlebar-close:hover{color:#2ea2cc}.ui-dialog-titlebar-close .ui-button-text{display:none}.ui-dialog-content{padding:16px;overflow:auto}.ui-dialog-buttonpane{background:#fcfcfc;border-top:1px solid #dfdfdf;padding:16px}.ui-dialog-buttonpane .ui-button{margin-right:16px}.ui-dialog-buttonpane .ui-dialog-buttonset{float:left}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-widget-overlay{position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100101}
\ No newline at end of file
index 94c655ff329df5238094e1ff036e02bc9a692554..78e97416525df4a8b4a8087c2b7008f3621b4d9f 100644 (file)
        color: #555;
        border-color: #cccccc;
        background: #f7f7f7;
        color: #555;
        border-color: #cccccc;
        background: #f7f7f7;
-       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
-       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
+       -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
+       box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
        vertical-align: top;
 }
 
        vertical-align: top;
 }
 
+.ui-button:active,
+.ui-button:focus {
+       outline: none;
+}
+
 /* Remove the dotted border on :focus and the extra padding in Firefox */
 .ui-button::-moz-focus-inner {
        border-width: 1px 0;
 /* Remove the dotted border on :focus and the extra padding in Firefox */
 .ui-button::-moz-focus-inner {
        border-width: 1px 0;
        padding: 0;
 }
 
        padding: 0;
 }
 
-.ui-button:hover {
+.ui-button:hover,
+.ui-button:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
 .ui-button:focus {
        background: #fafafa;
        border-color: #999;
        color: #222;
 }
 
 .ui-button:focus {
-       -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
-       box-shadow: 1px 1px 1px rgba(0,0,0,.2);
+       -webkit-box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
+       box-shadow:
+               0 0 0 1px #5b9dd9,
+               0 0 2px 1px rgba( 30, 140, 190, 0.8 );
 }
 
 .ui-button:active {
        background: #eee;
        border-color: #999;
        color: #333;
 }
 
 .ui-button:active {
        background: #eee;
        border-color: #999;
        color: #333;
-       -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
-       box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
-       outline: none;
+       -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+       box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 }
 
 .ui-button[disabled],
 }
 
 .ui-button[disabled],
index 51f3922658f3e13acc8477c62ed60ef4e83f5d7d..2f9d67e6e9c6ba8146d0ec97ff8b1a4d0981478c 100644 (file)
@@ -16,4 +16,4 @@
  * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Resizable#theming
  * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Resizable#theming
- */.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .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:9px;height:9px;right:-5px;bottom:-5px}.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}.ui-button{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.ui-button::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.ui-button:hover{background:#fafafa;border-color:#999;color:#222}.ui-button:focus{-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2)}.ui-button:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);outline:0}.ui-button:disabled,.ui-button[disabled]{color:#aaa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}@media screen and (max-width:782px){.ui-button{padding:10px 14px;line-height:1;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}}.ui-dialog{position:absolute;top:0;left:0;z-index:100102;background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3)}.ui-dialog-titlebar{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 36px 0 16px}.ui-button.ui-dialog-titlebar-close{background:0 0;border:0;-webkit-box-shadow:none;box-shadow:none;color:#666;cursor:pointer;display:block;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center}.ui-dialog-titlebar-close:before{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:36px;width:36px;height:36px;content:'\f158'}.ui-button.ui-dialog-titlebar-close:hover{color:#2ea2cc}.ui-dialog-titlebar-close .ui-button-text{display:none}.ui-dialog-content{padding:16px;overflow:auto}.ui-dialog-buttonpane{background:#fcfcfc;border-top:1px solid #dfdfdf;padding:16px}.ui-dialog-buttonpane .ui-button{margin-left:16px}.ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-widget-overlay{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100101}
\ No newline at end of file
+ */.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .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:9px;height:9px;right:-5px;bottom:-5px}.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}.ui-button{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.ui-button:active,.ui-button:focus{outline:0}.ui-button::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.ui-button:focus,.ui-button:hover{background:#fafafa;border-color:#999;color:#222}.ui-button:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ui-button:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.ui-button:disabled,.ui-button[disabled]{color:#aaa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}@media screen and (max-width:782px){.ui-button{padding:10px 14px;line-height:1;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}}.ui-dialog{position:absolute;top:0;left:0;z-index:100102;background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3)}.ui-dialog-titlebar{background:#fcfcfc;border-bottom:1px solid #dfdfdf;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 36px 0 16px}.ui-button.ui-dialog-titlebar-close{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;color:#666;cursor:pointer;display:block;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center}.ui-dialog-titlebar-close:before{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:36px;width:36px;height:36px;content:'\f158'}.ui-button.ui-dialog-titlebar-close:hover{color:#2ea2cc}.ui-dialog-titlebar-close .ui-button-text{display:none}.ui-dialog-content{padding:16px;overflow:auto}.ui-dialog-buttonpane{background:#fcfcfc;border-top:1px solid #dfdfdf;padding:16px}.ui-dialog-buttonpane .ui-button{margin-left:16px}.ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-widget-overlay{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100101}
\ No newline at end of file
index e692a7888a3dbe74a770a72a1caabeedba8b4550..d190939819c78a310eda3b3da5906b8fd530a953 100644 (file)
@@ -16,7 +16,6 @@
 .media-frame input,
 .media-frame textarea {
        padding: 6px 8px;
 .media-frame input,
 .media-frame textarea {
        padding: 6px 8px;
-       line-height: 16px;
 }
 
 .media-frame select,
 }
 
 .media-frame select,
        border-color: #dfdfdf;
 }
 
        border-color: #dfdfdf;
 }
 
+.media-frame input[type="text"]:focus,
+.media-frame input[type="password"]:focus,
+.media-frame input[type="number"]:focus,
+.media-frame input[type="search"]:focus,
+.media-frame input[type="email"]:focus,
+.media-frame input[type="url"]:focus,
+.media-frame textarea:focus,
+.media-frame select:focus {
+       border-color: #5b9dd9;
+}
+
 .media-frame select {
        height: 24px;
        padding: 2px;
 .media-frame select {
        height: 24px;
        padding: 2px;
 .media-modal-close {
        position: absolute;
        text-decoration: none;
 .media-modal-close {
        position: absolute;
        text-decoration: none;
-       top: 5px;
+       top: 10px;
        left: 10px;
        width: 30px;
        height: 30px;
        z-index: 1000;
        left: 10px;
        width: 30px;
        height: 30px;
        z-index: 1000;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.media-modal-close:active {
+       -webkit-box-shadow: none;
+       box-shadow: none;
 }
 
 .media-modal-close span.media-modal-icon {
        display: block;
 }
 
 .media-modal-close span.media-modal-icon {
        display: block;
-       margin: 8px auto 0;
-       width: 15px;
+       margin-top: 5px;
+       width: 30px;
        height: 15px;
        background-image: none;
        height: 15px;
        background-image: none;
+       text-align: center;
 }
 
 .media-modal-close .media-modal-icon:before {
 }
 
 .media-modal-close .media-modal-icon:before {
 .media-toolbar-secondary > .media-button,
 .media-toolbar-secondary > .media-button-group {
        margin-left: 10px;
 .media-toolbar-secondary > .media-button,
 .media-toolbar-secondary > .media-button-group {
        margin-left: 10px;
-       float: right;
        margin-top: 15px;
 }
 
        margin-top: 15px;
 }
 
        margin: 24px 0 8px;
 }
 
        margin: 24px 0 8px;
 }
 
-.media-sidebar .setting {
+.media-sidebar .setting,
+.attachment-details .setting {
        display: block;
        float: right;
        width: 100%;
        margin: 1px 0;
 }
 
        display: block;
        float: right;
        width: 100%;
        margin: 1px 0;
 }
 
-.media-sidebar .setting label {
+.media-sidebar .setting label,
+.attachment-details .setting label {
        display: block;
 }
 
        display: block;
 }
 
-.media-sidebar .setting .link-to-custom {
-       margin: 3px 0;
+.media-sidebar .setting .link-to-custom,
+.attachment-details .setting .link-to-custom {
+       margin: 3px 2px 0;
 }
 
 }
 
-.media-sidebar .setting span {
+.media-sidebar .setting span,
+.attachment-details .setting span {
        min-width: 30%;
        margin-left: 4%;
        font-size: 12px;
        min-width: 30%;
        margin-left: 4%;
        font-size: 12px;
+       text-align: left;
 }
 
 }
 
-.media-sidebar .setting select {
+.media-sidebar .setting select,
+.attachment-details .setting select {
        max-width: 65%;
 }
 
 .media-sidebar .setting input[type="checkbox"],
        max-width: 65%;
 }
 
 .media-sidebar .setting input[type="checkbox"],
-.media-sidebar .field input[type="checkbox"] {
-       width: 16px;
+.media-sidebar .field input[type="checkbox"],
+.media-sidebar .setting input[type="radio"],
+.media-sidebar .field input[type="radio"],
+.attachment-details .setting input[type="checkbox"],
+.attachment-details .field input[type="checkbox"],
+.attachment-details .setting input[type="radio"],
+.attachment-details .field input[type="radio"] {
        float: none;
        margin: 8px 3px 0;
        padding: 0;
 }
 
 .media-sidebar .setting span,
        float: none;
        margin: 8px 3px 0;
        padding: 0;
 }
 
 .media-sidebar .setting span,
+.attachment-details .setting span,
 .compat-item label span {
        float: right;
        min-height: 22px;
        padding-top: 8px;
        line-height: 16px;
 .compat-item label span {
        float: right;
        min-height: 22px;
        padding-top: 8px;
        line-height: 16px;
-       text-align: left;
        font-weight: normal;
        color: #666;
 }
 
        font-weight: normal;
        color: #666;
 }
 
-.media-sidebar .setting input,
-.media-sidebar .setting textarea {
+.compat-item label span  {
+       text-align: left;
+}
+
+.media-sidebar .setting input[type="text"],
+.media-sidebar .setting input[type="password"],
+.media-sidebar .setting input[type="email"],
+.media-sidebar .setting input[type="number"],
+.media-sidebar .setting input[type="search"],
+.media-sidebar .setting input[type="tel"],
+.media-sidebar .setting input[type="url"],
+.media-sidebar .setting textarea,
+.media-sidebar .setting .value,
+.attachment-details .setting input[type="text"],
+.attachment-details .setting input[type="password"],
+.attachment-details .setting input[type="email"],
+.attachment-details .setting input[type="number"],
+.attachment-details .setting input[type="search"],
+.attachment-details .setting input[type="tel"],
+.attachment-details .setting input[type="url"],
+.attachment-details .setting textarea,
+.attachment-details .setting .value {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
        margin: 1px;
        width: 65%;
        float: left;
 }
 
        margin: 1px;
        width: 65%;
        float: left;
 }
 
+.media-sidebar .setting .value,
+.attachment-details .setting .value {
+       margin: 0 1px;
+       text-align: right;
+}
+
 .media-sidebar .setting textarea,
 .media-sidebar .setting textarea,
+.attachment-details .setting textarea,
 .compat-item .field textarea {
        height: 62px;
        resize: vertical;
 }
 
 .compat-item .field textarea {
        height: 62px;
        resize: vertical;
 }
 
-.media-sidebar select {
+.media-sidebar select,
+.attachment-details select {
        margin-top: 3px;
 }
 
        margin-top: 3px;
 }
 
        width: 66%;
 }
 
        width: 66%;
 }
 
-.compat-item .field input {
+.compat-item .field input[type="text"],
+.compat-item .field input[type="password"],
+.compat-item .field input[type="email"],
+.compat-item .field input[type="number"],
+.compat-item .field input[type="search"],
+.compat-item .field input[type="tel"],
+.compat-item .field input[type="url"] {
        width: 100%;
        margin: 0;
 }
 
        width: 100%;
        margin: 0;
 }
 
+.sidebar-for-errors .attachment-details,
+.sidebar-for-errors .compat-item,
+.sidebar-for-errors .media-sidebar .media-progress-bar,
+.sidebar-for-errors .upload-details {
+       display: none !important;
+}
 
 /**
  * Menu
 
 /**
  * Menu
        left: 0;
        bottom: 0;
        margin: 0;
        left: 0;
        bottom: 0;
        margin: 0;
-       padding: 16px 0;
+       padding: 10px 0;
        background: #f3f3f3;
        border-left-width: 1px;
        border-left-style: solid;
        background: #f3f3f3;
        border-left-width: 1px;
        border-left-style: solid;
        border-left: 0;
 }
 
        border-left: 0;
 }
 
-.media-router > a:active,
-.media-router > a:focus {
+.media-router > a:active {
        outline: none;
 }
 
        outline: none;
 }
 
        top: 0;
        right: 200px;
        left: 0;
        top: 0;
        right: 200px;
        left: 0;
-       height: 56px;
+       height: 50px;
        z-index: 200;
 }
 
 .media-frame-router {
        position: absolute;
        z-index: 200;
 }
 
 .media-frame-router {
        position: absolute;
-       top: 56px;
+       top: 50px;
        right: 200px;
        left: 0;
        height: 36px;
        right: 200px;
        left: 0;
        height: 36px;
 
 .media-frame-content {
        position: absolute;
 
 .media-frame-content {
        position: absolute;
-       top: 90px;
+       top: 84px;
        right: 200px;
        left: 0;
        bottom: 61px;
        right: 200px;
        left: 0;
        bottom: 61px;
 }
 
 .media-frame.hide-router .media-frame-content {
 }
 
 .media-frame.hide-router .media-frame-content {
-       top: 56px;
+       top: 50px;
 }
 
 .media-frame.hide-router .media-frame-router {
 }
 
 .media-frame.hide-router .media-frame-router {
        box-shadow: 0 4px 4px -4px rgba( 0, 0, 0, 0.1 );
 }
 
        box-shadow: 0 4px 4px -4px rgba( 0, 0, 0, 0.1 );
 }
 
+.media-frame-title .dashicons {
+       display: none;
+}
+
 .media-frame-title h1 {
        padding: 0 16px;
        font-size: 22px;
 .media-frame-title h1 {
        padding: 0 16px;
        font-size: 22px;
-       line-height: 60px;
+       line-height: 50px;
        margin: 0;
 }
 
        margin: 0;
 }
 
 .media-frame .search {
        margin-top: 11px;
        padding: 4px;
 .media-frame .search {
        margin-top: 11px;
        padding: 4px;
-       line-height: 18px;
        font-size: 13px;
        color: #464646;
        font-family: "Open Sans", sans-serif;
        font-size: 13px;
        color: #464646;
        font-family: "Open Sans", sans-serif;
  */
 .attachments {
        margin: 0;
  */
 .attachments {
        margin: 0;
-       padding-left: 16px;
        -webkit-overflow-scrolling: touch;
 }
 
        -webkit-overflow-scrolling: touch;
 }
 
 .attachment {
        position: relative;
        float: right;
 .attachment {
        position: relative;
        float: right;
-       padding: 0;
-       margin: 0 10px 20px;
+       padding: 8px;
+       margin: 0;
        color: #464646;
        color: #464646;
+       cursor: pointer;
        list-style: none;
        text-align: center;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        list-style: none;
        text-align: center;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
+       width: 25%;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
+.attachment:focus,
+.selected.attachment:focus,
+.attachment.details:focus {
+       -webkit-box-shadow:
+               inset 0 0 2px 3px #fff,
+               inset 0 0 0 7px #5b9dd9;
+       box-shadow:
+               inset 0 0 2px 3px #fff,
+               inset 0 0 0 7px #5b9dd9;
+       outline: none;
 }
 
 .selected.attachment {
        -webkit-box-shadow:
 }
 
 .selected.attachment {
        -webkit-box-shadow:
-               0 0 0 1px #fff,
-               0 0 0 3px #ccc;
+               inset 0 0 0 5px #fff,
+               inset 0 0 0 7px #ccc;
        box-shadow:
        box-shadow:
-               0 0 0 1px #fff,
-               0 0 0 3px #ccc;
+               inset 0 0 0 5px #fff,
+               inset 0 0 0 7px #ccc;
+}
+
+.attachment.details {
+       -webkit-box-shadow:
+               inset 0 0 0 3px #fff,
+               inset 0 0 0 7px #1e8cbe;
+       box-shadow:
+               inset 0 0 0 3px #fff,
+               inset 0 0 0 7px #1e8cbe;
 }
 
 .attachment-preview {
        position: relative;
 }
 
 .attachment-preview {
        position: relative;
-       width: 199px;
-       height: 199px;
        -webkit-box-shadow:
                inset 0 0 15px rgba( 0, 0, 0, 0.1 ),
                inset 0 0 0 1px rgba( 0, 0, 0, 0.05 );
        -webkit-box-shadow:
                inset 0 0 15px rgba( 0, 0, 0, 0.1 ),
                inset 0 0 0 1px rgba( 0, 0, 0, 0.05 );
        cursor: pointer;
 }
 
        cursor: pointer;
 }
 
+.attachment-preview:before {
+       content: '';
+       display: block;
+       padding-top: 100%;
+}
+
 .attachment .icon {
        margin: 0 auto;
        overflow: hidden;
 .attachment .icon {
        margin: 0 auto;
        overflow: hidden;
-       padding-top: 20%;
 }
 
 .attachment .thumbnail {
 }
 
 .attachment .thumbnail {
-       display: block;
+       overflow: hidden;
        position: absolute;
        top: 0;
        position: absolute;
        top: 0;
+       left: 0;
+       bottom: 0;
        right: 0;
        right: 0;
-       margin: 0 auto;
-       overflow: hidden;
+       opacity: 1;
+       -webkit-transition: opacity .1s;
+       transition: opacity .1s;
+}
+
+.attachment .portrait img {
        max-width: 100%;
        max-width: 100%;
+}
+
+.attachment .landscape img {
        max-height: 100%;
 }
 
        max-height: 100%;
 }
 
-.attachment-preview .thumbnail:after {
+.attachment .thumbnail:after {
        content: '';
        display: block;
        position: absolute;
        content: '';
        display: block;
        position: absolute;
        width: 100%;
        height: 100%;
        -webkit-transform: translate( 50%, 50% );
        width: 100%;
        height: 100%;
        -webkit-transform: translate( 50%, 50% );
-       -ms-transform: translate( 50%, 50% );
+       -ms-transform: translate(50%,50%); /* Fails with spaces?? Weird! */
        transform: translate( 50%, 50% );
 }
 
 .attachment .thumbnail .centered img {
        -webkit-transform: translate( -50%, -50% );
        transform: translate( 50%, 50% );
 }
 
 .attachment .thumbnail .centered img {
        -webkit-transform: translate( -50%, -50% );
-       -ms-transform: translate( -50%, -50% );
+       -ms-transform: translate(-50%,-50%);
        transform: translate( -50%, -50% );
 }
 
        transform: translate( -50%, -50% );
 }
 
+.attachment .thumbnail .centered img.icon {
+       -webkit-transform: translate( -50%, -70% );
+       -ms-transform: translate(-50%,-70%);
+       transform: translate( -50%, -70% );
+}
+
+.ie8 .attachment img.icon {
+       top: 20%;
+       position: relative;
+}
+
 .attachment .filename {
        position: absolute;
        right: 0;
 .attachment .filename {
        position: absolute;
        right: 0;
        bottom: 0;
        overflow: hidden;
        max-height: 100%;
        bottom: 0;
        overflow: hidden;
        max-height: 100%;
-
        word-wrap: break-word;
        text-align: center;
        font-weight: bold;
        word-wrap: break-word;
        text-align: center;
        font-weight: bold;
        padding: 5px 10px;
 }
 
        padding: 5px 10px;
 }
 
-.attachment-preview .thumbnail {
-       width: 199px;
-       height: 199px;
-}
-
 .attachment .thumbnail img {
        position: absolute;
 }
 .attachment .thumbnail img {
        position: absolute;
 }
        height: 24px;
        width: 24px;
        position: absolute;
        height: 24px;
        width: 24px;
        position: absolute;
-       top: -6px;
-       left: -6px;
+       z-index: 10;
+       top: 0;
+       left: 0;
        outline: none;
        background: #eee;
        outline: none;
        background: #eee;
-       -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba( 0, 0, 0, 0.4 );
-       box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba( 0, 0, 0, 0.4 );
+       -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba( 0, 0, 0, 0.15 );
+       box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba( 0, 0, 0, 0.15 );
 }
 
 .attachment .check div {
 }
 
 .attachment .check div {
        display: block;
 }
 
        display: block;
 }
 
-.attachment.details {
-       -webkit-box-shadow: 0 0 0 1px #fff,
-                               0 0 0 5px #1e8cbe;
-       box-shadow: 0 0 0 1px #fff,
-                               0 0 0 5px #1e8cbe;
-}
-
-.attachment.details .check {
+.attachment.details .check,
+.attachment.selected .check:focus,
+.media-frame.mode-grid .attachment.selected .check {
        background-color: #1e8cbe;
        background-color: #1e8cbe;
-       -webkit-box-shadow: 0 0 0 1px #fff,
-                               0 0 0 2px #1e8cbe;
-       box-shadow: 0 0 0 1px #fff,
-                               0 0 0 2px #1e8cbe;
+       -webkit-box-shadow:
+               0 0 0 1px #fff,
+               0 0 0 2px #1e8cbe;
+       box-shadow:
+               0 0 0 1px #fff,
+               0 0 0 2px #1e8cbe;
 }
 
 }
 
-.attachment.details .check div {
+.attachment.details .check div,
+.media-frame.mode-grid .attachment.selected .check div {
        background-position: -21px 0;
 }
 
        background-position: -21px 0;
 }
 
-.attachment.details .check:hover div {
+.attachment.details .check:hover div,
+.attachment.selected .check:focus div,
+.media-frame.mode-grid .attachment.selected .check:hover div {
        background-position: -60px 0;
 }
 
        background-position: -60px 0;
 }
 
        position: relative;
        display: block;
        width: 100%;
        position: relative;
        display: block;
        width: 100%;
-       margin: -1px 0 0;
+       margin: 0;
        padding: 8px;
        font-size: 12px;
        -webkit-border-radius: 0;
        padding: 8px;
        font-size: 12px;
        -webkit-border-radius: 0;
        height: 50px;
 }
 
        height: 50px;
 }
 
+.attachments-browser.hide-sidebar .media-toolbar {
+       left: 0;
+}
+
 .attachments-browser .media-toolbar-primary > .media-button,
 .attachments-browser .media-toolbar-primary > .media-button-group,
 .attachments-browser .media-toolbar-secondary > .media-button,
 .attachments-browser .media-toolbar-secondary > .media-button-group {
 .attachments-browser .media-toolbar-primary > .media-button,
 .attachments-browser .media-toolbar-primary > .media-button-group,
 .attachments-browser .media-toolbar-secondary > .media-button,
 .attachments-browser .media-toolbar-secondary > .media-button-group {
-       margin-top: 10px;
+       margin: 11px 0;
+}
+
+.attachments-browser .attachments {
+       padding: 2px 8px 8px;
 }
 
 .attachments-browser .attachments,
 }
 
 .attachments-browser .attachments,
        left: 300px;
        bottom: 0;
        overflow: auto;
        left: 300px;
        bottom: 0;
        overflow: auto;
+       outline: none;
+}
+
+.attachments-browser .uploader-inline.hidden {
+       display: none;
+}
+
+.uploader-inline .close {
+       background-color: transparent;
+       border: 0;
+       cursor: pointer;
+       height: 48px;
+       position: absolute;
+       left: 0;
+       text-align: center;
+       top: 0;
+       width: 50px;
+       z-index: 1;
+}
+
+.uploader-inline .close:before {
+       font: normal 30px/50px 'dashicons' !important;
+       color: #777;
+       display: inline-block;
+       content: '\f335';
+       font-weight: 300;
+}
+
+.attachments-browser.hide-sidebar .attachments,
+.attachments-browser.hide-sidebar .uploader-inline {
+       left: 0;
+       margin-left: 0;
 }
 
 .attachments-browser .instructions {
 }
 
 .attachments-browser .instructions {
        margin-left: 0.5em;
 }
 
        margin-left: 0.5em;
 }
 
+.attachments-browser .no-media {
+       padding: 2em 2em 0 0;
+}
+
 /**
  * Progress Bar
  */
 /**
  * Progress Bar
  */
        background: #1e8cbe;
        -webkit-border-radius: 10px;
        border-radius: 10px;
        background: #1e8cbe;
        -webkit-border-radius: 10px;
        border-radius: 10px;
-       -webkit-transition:         width 300ms;
-       transition:         width 300ms;
+       -webkit-transition: width 300ms;
+       transition: width 300ms;
 }
 
 .media-uploader-status .media-progress-bar {
 }
 
 .media-uploader-status .media-progress-bar {
 
 .media-sidebar .media-uploader-status {
        border-bottom: 1px solid #dfdfdf;
 
 .media-sidebar .media-uploader-status {
        border-bottom: 1px solid #dfdfdf;
-       -webkit-box-shadow: 0 1px 0 #fff;
-       box-shadow: 0 1px 0 #fff;
 }
 
 .uploader-inline .media-uploader-status h3 {
 }
 
 .uploader-inline .media-uploader-status h3 {
        right: 0;
        left: 0;
        -webkit-transform: translateY( -50% );
        right: 0;
        left: 0;
        -webkit-transform: translateY( -50% );
-       -ms-transform: translateY( -50% );
+       -ms-transform: translateY(-50%);
        transform: translateY( -50% );
        font-size: 40px;
        color: #fff;
        transform: translateY( -50% );
        font-size: 40px;
        color: #fff;
 }
 
 .media-frame .uploader-inline {
 }
 
 .media-frame .uploader-inline {
-       margin: 20px;
-       padding: 20px;
+       margin-bottom: 20px;
+       padding: 0;
        text-align: center;
 }
 
        text-align: center;
 }
 
 }
 
 .uploader-inline-content .upload-ui {
 }
 
 .uploader-inline-content .upload-ui {
-       margin: 4em 0;
+       margin: 2em 0;
 }
 
 .uploader-inline-content .post-upload-ui {
 }
 
 .uploader-inline-content .post-upload-ui {
        font-size: 20px;
        line-height: 28px;
        font-weight: 400;
        font-size: 20px;
        line-height: 28px;
        font-weight: 400;
-       margin-bottom: 1.6em;
+       margin: 0;
 }
 
 .uploader-inline .has-upload-message .upload-instructions {
 }
 
 .uploader-inline .has-upload-message .upload-instructions {
 
 .uploader-inline p {
        font-size: 12px;
 
 .uploader-inline p {
        font-size: 12px;
+       margin: 0.5em 0;
 }
 
 .uploader-inline .media-progress-bar {
 }
 
 .uploader-inline .media-progress-bar {
 .media-selection .attachments {
        display: inline-block;
        height: 48px;
 .media-selection .attachments {
        display: inline-block;
        height: 48px;
-       margin-top: 5px;
+       margin: 6px;
+       padding: 0;
        overflow: hidden;
        vertical-align: top;
 }
 
        overflow: hidden;
        vertical-align: top;
 }
 
+.media-selection .attachment {
+       width: 48px;
+       padding: 0;
+       margin: 0;
+       -webkit-box-shadow: none;
+       box-shadow: none;
+}
+
+.media-selection .attachment .thumbnail {
+       top: 4px;
+       left: 4px;
+       bottom: 4px;
+       right: 4px;
+}
+
 .media-selection .attachment .icon {
        width: 50%;
 }
 
 .media-selection .attachment .icon {
        width: 50%;
 }
 
-.attachment.selection.selected {
+.media-selection .attachment-preview {
        -webkit-box-shadow: none;
        box-shadow: none;
        -webkit-box-shadow: none;
        box-shadow: none;
+       background: none;
 }
 
 }
 
-.attachment.selection.details {
-       -webkit-box-shadow:
-               0 0 0 1px #fff,
-               0 0 0 4px #1e8cbe;
-       box-shadow:
-               0 0 0 1px #fff,
-               0 0 0 4px #1e8cbe;
-}
-
-.media-selection .attachment.selection.details {
+.media-selection .attachment.selection.details .thumbnail {
        -webkit-box-shadow:
                0 0 0 1px #fff,
                0 0 0 3px #1e8cbe;
        -webkit-box-shadow:
                0 0 0 1px #fff,
                0 0 0 3px #1e8cbe;
 /**
  * Spinner
  */
 /**
  * Spinner
  */
-
 .media-frame .spinner {
        background: url(../images/spinner.gif) no-repeat;
        -webkit-background-size: 20px 20px;
 .media-frame .spinner {
        background: url(../images/spinner.gif) no-repeat;
        -webkit-background-size: 20px 20px;
        margin-top: 14px;
 }
 
        margin-top: 14px;
 }
 
-.media-sidebar .settings-save-status {
-       background: #f5f5f5;
+/**
+ * Attachment Details
+ */
+.attachment-details {
+       position: relative;
+       overflow: auto;
+}
+
+.attachment-details .settings-save-status {
        float: left;
        text-transform: none;
        z-index: 10;
 }
 
        float: left;
        text-transform: none;
        z-index: 10;
 }
 
-.media-sidebar .settings-save-status .spinner {
+.attachment-details .settings-save-status .spinner {
        margin: 0 5px 0;
 }
 
        margin: 0 5px 0;
 }
 
-.media-sidebar .settings-save-status .saved {
+.attachment-details .settings-save-status .saved {
        float: left;
        display: none;
 }
 
        float: left;
        display: none;
 }
 
-.media-sidebar .save-waiting .settings-save-status .spinner,
-.media-sidebar .save-complete .settings-save-status .saved {
+.attachment-details.save-waiting .settings-save-status .spinner,
+.attachment-details.save-complete .settings-save-status .saved {
        display: block;
 }
 
        display: block;
 }
 
-/**
- * Attachment Details
- */
-.attachment-details {
-       position: relative;
-       overflow: auto;
-}
-
 .attachment-info {
        overflow: hidden;
        min-height: 60px;
 .attachment-info {
        overflow: hidden;
        min-height: 60px;
        margin-top: 35px;
 }
 
        margin-top: 35px;
 }
 
-.attachment-info .thumbnail:after {
+.attachment-info .thumbnail-image:after {
        content: '';
        display: block;
        position: absolute;
        content: '';
        display: block;
        position: absolute;
 .attachment-info .edit-attachment,
 .attachment-info .refresh-attachment,
 .attachment-info .delete-attachment,
 .attachment-info .edit-attachment,
 .attachment-info .refresh-attachment,
 .attachment-info .delete-attachment,
-.attachment-info .trash-attachment {
+.attachment-info .trash-attachment,
+.attachment-info .untrash-attachment {
        display: block;
        text-decoration: none;
        white-space: nowrap;
        display: block;
        text-decoration: none;
        white-space: nowrap;
        display: block;
 }
 
        display: block;
 }
 
-.attachment-info .delete-attachment,
-.attachment-info .trash-attachment {
+.media-modal .delete-attachment,
+.media-modal .trash-attachment,
+.media-modal .untrash-attachment {
        color: #bc0b0b;
 }
 
        color: #bc0b0b;
 }
 
-.attachment-info .delete-attachment:hover,
-.attachment-info .trash-attachment:hover {
+.media-modal .delete-attachment:hover,
+.media-modal .trash-attachment:hover,
+.media-modal .untrash-attachment:hover {
        color: red;
 }
 
        color: red;
 }
 
 /**
  * Image Editor
  */
 /**
  * Image Editor
  */
-
-.media-frame .imgedit-wrap {
+.media-modal .imgedit-wrap {
        position: static;
 }
 
        position: static;
 }
 
-.media-frame .imgedit-wait {
+.media-modal .imgedit-wait {
        height: auto !important;
        left: 0;
        bottom: 0;
        right: 0;
 }
 
        height: auto !important;
        left: 0;
        bottom: 0;
        right: 0;
 }
 
-.media-frame .imgedit-wrap .imgedit-panel-content {
+.media-modal .imgedit-wrap .imgedit-panel-content {
        padding: 16px;
        position: absolute;
        top: 0;
        padding: 16px;
        position: absolute;
        top: 0;
        overflow: auto;
 }
 
        overflow: auto;
 }
 
-.media-frame .imgedit-wrap .imgedit-settings {
+.media-modal .imgedit-wrap .imgedit-settings {
        background: #f3f3f3;
        border-right: 1px solid #ddd;
        padding: 0 16px 16px;
        background: #f3f3f3;
        border-right: 1px solid #ddd;
        padding: 0 16px 16px;
        overflow: auto;
 }
 
        overflow: auto;
 }
 
-.media-frame .imgedit-group {
+.media-modal .imgedit-group {
        background: none;
        border: none;
        border-bottom: 1px solid #ddd;
        background: none;
        border: none;
        border-bottom: 1px solid #ddd;
        margin-bottom: 16px;
        padding: 0;
        padding-bottom: 16px;
        margin-bottom: 16px;
        padding: 0;
        padding-bottom: 16px;
+       position: relative; /* RTL fix, #WP29352 */
 }
 
 }
 
-.media-frame .imgedit-group:last-of-type {
+.media-modal .imgedit-group:last-of-type {
        border: none;
        margin: 0;
        padding: 0;
 }
 
        border: none;
        margin: 0;
        padding: 0;
 }
 
-.media-frame .imgedit-group-top h3 {
+.media-modal .imgedit-group-top h3 {
        text-transform: uppercase;
        font-size: 12px;
        color: #666;
        text-transform: uppercase;
        font-size: 12px;
        color: #666;
        margin-top: 24px;
 }
 
        margin-top: 24px;
 }
 
-.media-frame .imgedit-group-top h3 a {
+.media-modal .imgedit-group-top h3 a {
        text-decoration: none;
        color: #666;
 }
 
        text-decoration: none;
        color: #666;
 }
 
-.media-frame .imgedit-help-toggle {
+.media-modal .imgedit-help-toggle {
        margin-top: -2px;
        cursor: pointer;
        color: #666;
 }
 
        margin-top: -2px;
        cursor: pointer;
        color: #666;
 }
 
-.media-frame .imgedit-help-toggled span.dashicons:before {
+.media-modal .imgedit-help-toggled span.dashicons:before {
        content: '\f142';
 }
 
        content: '\f142';
 }
 
-.media-frame .imgedit-group img {
+.media-modal .imgedit-group img {
        margin-top: 5px;
 }
 
        margin-top: 5px;
 }
 
-.media-frame .imgedit-wrap div.updated {
+.media-modal .imgedit-wrap div.updated {
        margin: 0;
        margin-bottom: 16px;
 }
        margin: 0;
        margin-bottom: 16px;
 }
 
 .media-frame .embed-url .spinner {
        position: absolute;
 
 .media-frame .embed-url .spinner {
        position: absolute;
-       top: 16px;
+       top: 32px;
        left: 26px;
 }
 
        left: 26px;
 }
 
 .embed-link-settings,
 .embed-media-settings {
        position: absolute;
 .embed-link-settings,
 .embed-media-settings {
        position: absolute;
-       top: 60px;
+       top: 70px;
        right: 0;
        left: 0;
        bottom: 0;
        right: 0;
        left: 0;
        bottom: 0;
        overflow: auto;
 }
 
        overflow: auto;
 }
 
+.embed-preview img, .embed-preview iframe, .embed-preview embed {
+       max-width: 100%;
+}
+
+.embed-preview img {
+       height: auto;
+}
+
 .image-details .media-modal {
        right: 140px;
        left: 140px;
 }
 
 .image-details .media-modal {
        right: 140px;
        left: 140px;
 }
 
-.image-details .media-frame-menu {
-       display: none;
-}
-
 .image-details .media-frame-title,
 .image-details .media-frame-content,
 .image-details .media-frame-router {
 .image-details .media-frame-title,
 .image-details .media-frame-content,
 .image-details .media-frame-router {
        padding: 0;
 }
 
        padding: 0;
 }
 
+.image-details .embed-media-settings,
+.image-details .embed-media-settings div {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
 .image-details .column-settings {
        background: #f3f3f3;
        border-left: 1px solid #ddd;
        min-height: 100%;
 .image-details .column-settings {
        background: #f3f3f3;
        border-left: 1px solid #ddd;
        min-height: 100%;
-       width: 52%;
+       width: 55%;
        position: absolute;
        top: 0;
        right: 0;
        position: absolute;
        top: 0;
        right: 0;
 }
 
 .image-details .column-image {
 }
 
 .image-details .column-image {
-       width: 48%;
+       width: 45%;
        position: absolute;
        position: absolute;
-       right: 52%;
+       right: 55%;
        top: 0;
 }
 
        top: 0;
 }
 
        display: block;
 }
 
        display: block;
 }
 
-.image-details .advanced-toggle::after {
+.image-details .advanced-toggle:after {
        font: normal 20px/1 'dashicons';
        speak: none;
        vertical-align: top;
        font: normal 20px/1 'dashicons';
        speak: none;
        vertical-align: top;
        margin-top: -2px;
 }
 
        margin-top: -2px;
 }
 
-.image-details .advanced-visible .advanced-toggle::after {
+.image-details .advanced-visible .advanced-toggle:after {
        content: '\f142';
        content: '\f142';
-       margin-top: 0;
 }
 
 .image-details .embed-media-settings .size {
 }
 
 .image-details .embed-media-settings .size {
        margin: 26px 6px 0 6px;
 }
 
        margin: 26px 6px 0 6px;
 }
 
-.image-details .custom-size::after {
-    content: '';
+.image-details .custom-size:after {
+       content: '';
        display: table;
        display: table;
-    clear: both;
+       clear: both;
 }
 
 .media-embed .thumbnail {
 }
 
 .media-embed .thumbnail {
        right: 0;
        left: 0;
        -webkit-transform: translateY( -50% );
        right: 0;
        left: 0;
        -webkit-transform: translateY( -50% );
-       -ms-transform: translateY( -50% );
+       -ms-transform: translateY(-50%);
        transform: translateY( -50% );
        font-size: 3em;
        line-height: 1.3;
        transform: translateY( -50% );
        font-size: 3em;
        line-height: 1.3;
        max-width: 55%;
 }
 
        max-width: 55%;
 }
 
-.ie7 .media-sidebar .setting input,
+.ie7 .media-sidebar .setting input[type="text"],
+.ie7 .media-sidebar .setting input[type="password"],
+.ie7 .media-sidebar .setting input[type="email"],
+.ie7 .media-sidebar .setting input[type="number"],
+.ie7 .media-sidebar .setting input[type="search"],
+.ie7 .media-sidebar .setting input[type="tel"],
+.ie7 .media-sidebar .setting input[type="url"],
 .ie7 .media-sidebar .setting textarea {
        width: 55%;
 }
 .ie7 .media-sidebar .setting textarea {
        width: 55%;
 }
 .rtl .media-frame input[type="search"],
 .rtl .media-frame input[type="email"],
 .rtl .media-frame input[type="url"],
 .rtl .media-frame input[type="search"],
 .rtl .media-frame input[type="email"],
 .rtl .media-frame input[type="url"],
+.rtl .media-frame input[type="tel"],
 .rtl .media-frame textarea,
 .rtl .media-frame select {
        font-family: Tahoma, sans-serif;
 .rtl .media-frame textarea,
 .rtl .media-frame select {
        font-family: Tahoma, sans-serif;
        font-family: Arial, sans-serif;
 }
 
        font-family: Arial, sans-serif;
 }
 
-
-
-
-@media only screen and (max-width: 960px) {
+@media only screen and (max-width: 940px) {
        .media-frame-content .media-toolbar-primary .search,
        .media-frame-content .media-toolbar-secondary .attachment-filters {
        .media-frame-content .media-toolbar-primary .search,
        .media-frame-content .media-toolbar-secondary .attachment-filters {
-               max-width: 120px;
+               max-width: 134px;
        }
 }
 
        }
 }
 
  * Responsive layout
  */
 @media only screen and (max-width: 900px) {
  * Responsive layout
  */
 @media only screen and (max-width: 900px) {
-       .media-frame-menu {
-               width: 139px;
+
+       /* Drop-down menu */
+       .media-frame:not(.hide-menu) .media-frame-title,
+       .media-frame:not(.hide-menu) .media-frame-router,
+       .media-frame:not(.hide-menu) .media-frame-content,
+       .media-frame:not(.hide-menu) .media-frame-toolbar {
+               right: 0;
        }
 
        }
 
-       .media-menu > a {
-               padding: 4px 5px;
+       .media-frame:not(.hide-menu) .media-frame-menu {
+               position: static;
+               width: 0;
        }
 
        }
 
-       .media-frame-title,
-       .media-frame-router,
-       .media-frame-content,
-       .media-frame-toolbar {
-               right: 140px;
+       .media-frame:not(.hide-menu) .media-menu {
+               width: auto;
+               max-width: 80%;
+               overflow: auto;
+               z-index: 2000;
+               top: 50px;
+               right: -300px;
+               left: auto;
+               bottom: auto;
+               padding: 5px 0;
+               border: 1px solid #ccc;
+       }
+
+       .media-frame:not(.hide-menu) .media-menu.visible {
+               right: 0;
+       }
+
+       .media-frame:not(.hide-menu) .media-menu > a {
+               padding: 12px 16px;
+               font-size: 16px;
+       }
+
+       .media-frame:not(.hide-menu) .media-menu > a.active {
+               display: none;
+       }
+
+       .media-frame:not(.hide-menu) .media-menu .separator {
+               margin: 5px 10px;
        }
 
        }
 
+       .media-frame:not(.hide-menu) .media-frame-title {
+               right: 0;
+               color: #21759b;
+       }
+
+       .media-frame:not(.hide-menu) .media-frame-title .dashicons {
+               display: inline-block;
+               line-height: 50px;
+       }
+
+       .media-frame:not(.hide-menu) .media-frame-title h1 {
+               line-height: 3;
+               font-size: 18px;
+               float: right;
+               cursor: pointer;
+       }
+       /* End drop-down menu */
+
        .media-sidebar {
        .media-sidebar {
-               width: 159px;
-               padding: 0 10px 24px;
+               width: 230px;
        }
 
        .attachments-browser .attachments,
        .attachments-browser .uploader-inline,
        .attachments-browser .media-toolbar {
        }
 
        .attachments-browser .attachments,
        .attachments-browser .uploader-inline,
        .attachments-browser .media-toolbar {
-               left: 180px;
+               left: 262px;
+       }
+
+       .media-sidebar .setting,
+       .attachment-details .setting {
+               margin: 6px 0px;
        }
 
        .media-sidebar .setting input,
        .media-sidebar .setting textarea,
        .media-sidebar .setting span,
        }
 
        .media-sidebar .setting input,
        .media-sidebar .setting textarea,
        .media-sidebar .setting span,
+       .attachment-details .setting input,
+       .attachment-details .setting textarea,
+       .attachment-details .setting span,
        .compat-item label span {
                float: none;
        }
 
        .media-sidebar .setting span,
        .compat-item label span {
                float: none;
        }
 
        .media-sidebar .setting span,
+       .attachment-details .setting span,
        .compat-item label span {
                text-align: inherit;
        .compat-item label span {
                text-align: inherit;
-               display: block;
                min-height: 16px;
                margin: 0;
                padding: 8px 2px 0;
        }
 
                min-height: 16px;
                margin: 0;
                padding: 8px 2px 0;
        }
 
-       .media-sidebar .setting input,
+       .media-sidebar .setting .value,
+       .attachment-details .setting .value {
+               float: none;
+               width: auto;
+       }
+
+       .media-sidebar .setting input[type="text"],
+       .media-sidebar .setting input[type="password"],
+       .media-sidebar .setting input[type="email"],
+       .media-sidebar .setting input[type="number"],
+       .media-sidebar .setting input[type="search"],
+       .media-sidebar .setting input[type="tel"],
+       .media-sidebar .setting input[type="url"],
        .media-sidebar .setting textarea,
        .media-sidebar .setting textarea,
-       .media-sidebar .setting select {
+       .media-sidebar .setting select,
+       .attachment-details .setting input[type="text"],
+       .attachment-details .setting input[type="password"],
+       .attachment-details .setting input[type="email"],
+       .attachment-details .setting input[type="number"],
+       .attachment-details .setting input[type="search"],
+       .attachment-details .setting input[type="tel"],
+       .attachment-details .setting input[type="url"],
+       .attachment-details .setting textarea,
+       .attachment-details .setting select {
+               float: none;
                width: 98%;
                max-width: none;
                width: 98%;
                max-width: none;
+               height: auto;
        }
 
        }
 
-       .media-sidebar .setting select.columns {
+       .media-sidebar .setting select.columns,
+       .attachment-details .setting select.columns {
                width: auto;
        }
 
                width: auto;
        }
 
                padding: 3px 6px;
        }
 
                padding: 3px 6px;
        }
 
-       .media-frame-content .attachment .icon {
-               top: 40%;
+       .image-details .column-image {
+               width: 30%;
+               right: 70%;
+       }
+
+       .image-details .column-settings {
+               width: 70%;
        }
 
        .image-details .media-modal {
        }
 
        .image-details .media-modal {
                margin-right: 20px;
        }
 
                margin-right: 20px;
        }
 
+       .collection-settings .setting input[type="checkbox"] {
+               margin-top: 0;
+       }
+
        .media-selection {
                min-width: 120px;
        }
        .media-selection {
                min-width: 120px;
        }
                display: none;
        }
 
                display: none;
        }
 
-       .media-menu .separator {
-               margin: 12px 10px;
+       .media-modal .attachments-browser .media-toolbar-primary,
+       .media-modal .attachments-browser .media-toolbar-secondary {
+               width: 50%;
        }
 
        }
 
-       .media-modal-close {
-               left: 10px;
+       .media-modal .attachments-browser .media-toolbar .search {
+               max-width: 100%;
+               height: auto;
+               float: left;
+       }
+
+       .media-modal .attachments-browser .media-toolbar .attachment-filters {
+               margin: 11px 0 0;
+               height: auto;
+               max-width: 65%;
+               max-width: -webkit-calc(100% - 38px);
+               max-width: calc(100% - 38px);
+       }
+
+       .media-modal .attachments-browser .media-toolbar .spinner {
+               margin: 14px 8px 0;
        }
 
        /* Text inputs need to be 16px, or they force zooming on iOS */
        }
 
        /* Text inputs need to be 16px, or they force zooming on iOS */
 
 /* Responsive on portrait and landscape */
 @media only screen and (max-width: 640px), screen and (max-height: 400px) {
 
 /* Responsive on portrait and landscape */
 @media only screen and (max-width: 640px), screen and (max-height: 400px) {
-
-       /* Media tabs on the top */
-       .media-frame-content .media-toolbar .instructions {
-               display: none;
+       /* Full-bleed modal */
+       .media-modal,
+       .image-details .media-modal {
+               position: fixed;
+               top: 0;
+               right: 0;
+               left: 0;
+               bottom: 0;
        }
 
        }
 
-       .media-frame-menu {
-               width: auto;
-               bottom: auto;
-               left: 0;
-               height: 60px;
+       .media-modal-backdrop {
+               position: fixed;
        }
 
        }
 
-       .media-menu {
-               border-left: none;
-               position: relative;
-               border-bottom: 1px solid #dddddd;
-               overflow: hidden;
-               padding: 10px 10px 10px 0;
+       .media-sidebar {
+               z-index: 1900;
+               max-width: 70%;
+               bottom: 120%;
+               -webkit-box-sizing: border-box;
+               -moz-box-sizing: border-box;
+               box-sizing: border-box;
+               padding-bottom: 0;
        }
 
        }
 
-       .media-menu a {
-               float: right;
-               width: 42%;
-               white-space: nowrap;
-               text-overflow: ellipsis;
-               overflow: hidden;
+       .media-sidebar.visible {
+               bottom: 0;
        }
 
        }
 
-       .media-frame-title {
-               display: none;
+       .attachments-browser .attachments,
+       .attachments-browser .uploader-inline,
+       .attachments-browser .media-toolbar {
+               left: 0;
        }
 
        .image-details .media-frame-title {
        }
 
        .image-details .media-frame-title {
                font-size: 14px;
        }
 
                font-size: 14px;
        }
 
-       .media-frame-toolbar {
-               position: absolute;
-               bottom: 0px;
-               right: 0;
-               left: 0;
-               background: #FFF;
-               border-top: 1px solid #DEDEDE;
-       }
-
-       .media-toolbar {
+       .image-details .column-image,
+       .image-details .column-settings {
+               width: 100%;
                position: relative;
                position: relative;
+               right: 0;
        }
 
        }
 
-       .media-frame {
-               overflow: hidden;
-       }
-
-       .attachments-browser .attachments {
-               top: 42px;
-       }
-
-       .attachment-details h3 {
-               margin-top: 45px;
-       }
-
-       /* Shorten right-side links so they don't overlap the close button */
-       .media-menu a:nth-child(2),
-       .media-menu a:last-child {
-               width: 40%;
+       .image-details .column-settings {
+               padding: 4px 0;
        }
 
        }
 
-       .media-menu .separator {
+       /* Media tabs on the top */
+       .media-frame-content .media-toolbar .instructions {
                display: none;
        }
                display: none;
        }
+}
 
 
-       .media-frame-title {
-               top: 72px;
-               right: auto;
-               height: auto;
-       }
-
-       .media-frame-title h1 {
-               line-height: 3;
-               font-size: 18px;
+/* Landscape specific header override */
+@media screen and (max-height: 400px) {
+       .media-menu {
+               padding: 0;
        }
 
        .media-frame-router {
        }
 
        .media-frame-router {
-               top: 84px;
-               right: 0;
+               top: 44px;
        }
 
        .media-frame-content {
        }
 
        .media-frame-content {
-               right: 0;
-               top: 118px;
+               top: 78px;
        }
 
        }
 
-       .image-details .media-frame.hide-router .media-frame-content {
+       .attachments-browser .attachments {
                top: 40px;
        }
 
                top: 40px;
        }
 
-       .media-frame .attachments-browser {
-               padding-bottom: 300px;
-       }
-
-       .media-sidebar {
-               border-bottom: 1px solid #dddddd;
-       }
-
-       .media-modal {
-               width: auto;
-       }
-
-       .media-toolbar-primary, .media-toolbar-secondary {
-               height: auto;
-       }
-
-       .uploader-inline h3 {
-               margin: 0 0 .8em 0;
-       }
-
-       .uploader-inline-content {
-               top: auto;
-       }
-
-       .uploader-inline-content .upload-ui {
-               margin: 0;
-       }
-
-       .attachments-browser .attachments, .attachments-browser .uploader-inline {
-               position: relative;
-               margin-left: 180px;
+       /* Prevent unnecessary scrolling on title input */
+       .embed-link-settings {
+               overflow: visible;
        }
        }
+}
 
 
-       /* Full-bleed modal */
-       .media-modal,
-       .image-details .media-modal {
-               position: fixed;
-               top: 0;
-               right: 0;
-               left: 0;
-               bottom: 0;
+@media only screen and (max-width: 480px) {
+       .media-frame-content .media-toolbar .search,
+       .media-frame-content .media-toolbar .attachment-filters {
+               max-width: 90px;
        }
 
        }
 
-       .media-modal-backdrop {
-               position: fixed;
+       .media-modal-close {
+               top: 5px;
+               left: 5px;
        }
 
        }
 
-       .attachments-browser .attachment,
-       .attachments-browser .attachment-preview {
-               max-width: 100%;
+       .media-modal .media-frame-title {
+               height: 40px;
        }
 
        }
 
-       .attachments-browser .media-toolbar-primary input.search {
-               max-width: 150px;
+       .media-modal .media-frame-title h1,
+       .media-frame:not(.hide-menu) .media-frame-title h1 {
+               font-size: 18px;
+               line-height: 40px;
        }
 
        }
 
-       .uploader-inline-content {
-               position: relative;
+       .media-frame:not(.hide-menu) .media-frame-title .dashicons {
+               line-height: 40px;
        }
 
        }
 
-       .media-sidebar .setting input[type="checkbox"],
-       .media-sidebar .field input[type="checkbox"] {
-               width: 25px;
+       .media-frame-router,
+       .media-frame:not(.hide-menu) .media-menu {
+               top: 40px;
        }
 
        }
 
-       /* Image From Link */
-       .embed-link-settings,
-       .embed-media-settings {
-               padding-bottom: 52px;
+       .media-frame-content {
+               top: 74px;
        }
 
        }
 
-       .image-details .column-settings,
-       .image-details .column-image {
-               position: relative;
-               padding: 10px 0 20px 0;
-               right: 0;
-               width: 100%;
-               min-height: inherit;
+       .media-frame.hide-router .media-frame-content {
+               top: 40px;
        }
        }
+}
 
 
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
 
 
-       /* Gallery */
-       .media-frame.hide-router .media-frame-content {
-               top: 73px;
-               border-top: none;
+       .media-modal-icon {
+               background-image: url(../images/uploader-icons-2x.png);
+               -webkit-background-size: 134px 15px;
+               background-size: 134px 15px;
        }
 
        }
 
-       .collection-settings h3 {
-               margin-top: 45px;
+       .media-frame .spinner {
+               background-image: url(../images/spinner-2x.gif);
        }
        }
-
 }
 
 }
 
-/* Landscape specific header override */
-@media screen and (max-height: 400px) {
-       .media-menu {
-               padding: 0 10px 0 0;
-       }
+.media-frame-content[data-columns="1"] .attachment {
+       width: 100%;
+}
 
 
-       .media-menu a {
-               float: right;
-               width: 21%;
-               white-space: nowrap;
-               text-overflow: ellipsis;
-               overflow: hidden;
-               padding: 10px inherit;
-       }
+.media-frame-content[data-columns="2"] .attachment {
+       width: 50%;
+}
 
 
-       .media-menu a:nth-child(2),
-       .media-menu a:last-child {
-               width: 21%;
-       }
+.media-frame-content[data-columns="3"] .attachment {
+       width: 33.33%;
+}
 
 
-       .media-modal-close {
-               top: 2px;
-       }
+.media-frame-content[data-columns="4"] .attachment {
+       width: 25%;
+}
 
 
-       .media-frame-router {
-               top: 44px;
-       }
+.media-frame-content[data-columns="5"] .attachment {
+       width: 20%;
+}
 
 
-       .media-frame-content {
-               top: 78px;
-       }
+.media-frame-content[data-columns="6"] .attachment {
+       width: 16.66%;
+}
 
 
-       .attachments-browser .attachments {
-               top: 2px;
-       }
+.media-frame-content[data-columns="7"] .attachment {
+       width: 14.28%;
+}
 
 
-       /* Prevent unnecessary scrolling on title input */
-       .embed-link-settings {
-               overflow: visible;
-       }
+.media-frame-content[data-columns="8"] .attachment {
+       width: 12.5%;
 }
 
 }
 
-@media only screen and (max-width: 680px) {
-       .media-frame-content .media-toolbar .search,
-       .media-frame-content .media-toolbar .attachment-filters {
-               max-width: 85px;
-       }
+.media-frame-content[data-columns="9"] .attachment {
+       width: 11.11%;
 }
 
 }
 
-/**
- * HiDPI Displays
- */
-@media print,
-  (-o-min-device-pixel-ratio: 5/4),
-  (-webkit-min-device-pixel-ratio: 1.25),
-  (min-resolution: 120dpi) {
+.media-frame-content[data-columns="10"] .attachment {
+       width: 10%;
+}
 
 
-       .media-modal-icon {
-               background-image: url(../images/uploader-icons-2x.png);
-               -webkit-background-size: 134px 15px;
-               background-size: 134px 15px;
-       }
+.media-frame-content[data-columns="11"] .attachment {
+       width: 9.09%;
+}
 
 
-       .media-frame .spinner {
-               background-image: url(../images/spinner-2x.gif);
-       }
+.media-frame-content[data-columns="12"] .attachment {
+       width: 8.33%;
 }
 }
index 57fe78de5fe975a6064b2eec087469c5df65eae3..d34655998f01bbf34ace9771559fd1a4829adf1b 100644 (file)
@@ -1 +1 @@
-.media-modal *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.media-frame,.media-modal{font-family:"Open Sans",sans-serif;font-size:12px}.media-frame input,.media-frame textarea{padding:6px 8px;line-height:16px}.media-frame select,.wp-admin .media-frame select{line-height:28px;margin-top:3px}.media-frame a{border-bottom:0;color:#21759b}.media-frame a:hover{color:#d54e21}.media-frame a.button{color:#333}.media-frame a.button:hover{color:#222}.media-frame a.button-primary,.media-frame a.button-primary:hover{color:#fff}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-family:"Open Sans",sans-serif;font-size:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#dfdfdf}.media-frame select{height:24px;padding:2px}.media-frame input:disabled,.media-frame input[readonly],.media-frame textarea:disabled,.media-frame textarea[readonly]{background-color:#eee}.media-frame input[type=search]{-webkit-appearance:textfield}.media-frame :-moz-placeholder{color:#a9a9a9}.media-frame .hidden{display:none}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.meta-box-sortables.ui-sortable{-ms-touch-action:auto;touch-action:auto}.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.media-modal{position:fixed;top:30px;right:30px;left:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;text-decoration:none;top:5px;left:10px;width:30px;height:30px;z-index:1000}.media-modal-close span.media-modal-icon{display:block;margin:8px auto 0;width:15px;height:15px;background-image:none}.media-modal-close .media-modal-icon:before{content:'\f158';font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#666}.media-modal-close:hover .media-modal-icon:before{color:#2ea2cc}.media-modal-close:active{outline:0}.media-modal-content{position:absolute;top:0;right:0;left:0;bottom:0;overflow:auto;min-height:300px;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.7);box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fcfcfc;-webkit-font-smoothing:subpixel-antialiased}.media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;right:0;left:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dfdfdf;overflow:hidden}.media-toolbar-primary{float:left;height:100%}.media-toolbar-secondary{float:right;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-right:10px;float:right;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-left:10px;float:right;margin-top:15px}.media-sidebar{position:absolute;top:0;left:0;bottom:0;width:267px;padding:0 16px 24px;z-index:75;background:#f3f3f3;border-right:1px solid #ddd;overflow:auto;-webkit-overflow-scrolling:touch}.hide-toolbar .media-sidebar{bottom:0}.media-sidebar .sidebar-title{font-size:20px;margin:0;padding:12px 10px 10px;line-height:28px}.media-sidebar .sidebar-content{padding:0 10px;margin-bottom:130px}.media-sidebar .search{display:block;width:100%}.image-details h3,.media-sidebar h3{position:relative;font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}.media-sidebar .setting{display:block;float:right;width:100%;margin:1px 0}.media-sidebar .setting label{display:block}.media-sidebar .setting .link-to-custom{margin:3px 0}.media-sidebar .setting span{min-width:30%;margin-left:4%;font-size:12px}.media-sidebar .setting select{max-width:65%}.media-sidebar .field input[type=checkbox],.media-sidebar .setting input[type=checkbox]{width:16px;float:none;margin:8px 3px 0;padding:0}.compat-item label span,.media-sidebar .setting span{float:right;min-height:22px;padding-top:8px;line-height:16px;text-align:left;font-weight:400;color:#666}.media-sidebar .setting input,.media-sidebar .setting textarea{margin:1px;width:65%;float:left}.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.media-sidebar select{margin-top:3px}.compat-item{float:right;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-left:4%;float:right;text-align:left}.compat-item .label span{display:block;width:100%}.compat-item .field{float:left;width:66%}.compat-item .field input{width:100%;margin:0}.media-menu{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:16px 0;background:#f3f3f3;border-left-width:1px;border-left-style:solid;border-left-color:#ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-menu>a{display:block;position:relative;padding:8px 20px;margin:0;line-height:18px;font-size:14px;color:#0074a2;text-decoration:none}.media-menu>a:hover{color:#21759B;background:rgba(0,0,0,.04)}.media-menu>a:active{outline:0}.media-menu .active,.media-menu .active:hover{color:#222;font-weight:700}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #ddd}.media-router{position:relative;padding:0 6px;margin:0;clear:both;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-router a{-webkit-transition:none;transition:none}.media-router>a{position:relative;float:right;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none}.media-router>a:last-child{border-left:0}.media-router>a:active,.media-router>a:focus{outline:0}.media-router .active,.media-router .active:hover{color:#333}.media-router .active,.media-router>a.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:0}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;right:0;left:0;bottom:0}.media-frame-menu{position:absolute;top:0;right:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;right:200px;left:0;height:56px;z-index:200}.media-frame-router{position:absolute;top:56px;right:200px;left:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:90px;right:200px;left:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.media-frame-toolbar{position:absolute;right:200px;left:0;bottom:0;height:60px;z-index:100}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{right:0}.media-frame.hide-menu .media-frame-menu{right:-200px}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-toolbar .media-frame-toolbar{bottom:-61px}.media-frame.hide-router .media-frame-content{top:56px}.media-frame.hide-router .media-frame-router{display:none}.media-frame.hide-router .media-frame-title{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 4px 4px -4px rgba(0,0,0,.1);box-shadow:0 4px 4px -4px rgba(0,0,0,.1)}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:60px;margin:0}.media-frame-title .suggested-dimensions{font-size:14px;float:left;margin-left:20px}.media-frame-content .crop-content{height:100%}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;right:50%;margin-right:-150px;margin-left:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-left:10px}.media-frame .search{margin-top:11px;padding:4px;line-height:18px;font-size:13px;color:#464646;font-family:"Open Sans",sans-serif;-webkit-appearance:none}.media-toolbar-secondary .search{margin-left:16px}.attachments{margin:0;padding-left:16px;-webkit-overflow-scrolling:touch}.attachment{position:relative;float:right;padding:0;margin:0 10px 20px;color:#464646;list-style:none;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.selected.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #ccc;box-shadow:0 0 0 1px #fff,0 0 0 3px #ccc}.attachment-preview{position:relative;width:199px;height:199px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#eee;cursor:pointer}.attachment .icon{margin:0 auto;overflow:hidden;padding-top:20%}.attachment .thumbnail{display:block;position:absolute;top:0;right:0;margin:0 auto;overflow:hidden;max-width:100%;max-height:100%}.attachment-preview .thumbnail:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.attachment .thumbnail img{top:0;left:0}.attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate(50%,50%);-ms-transform:translate(50%,50%);transform:translate(50%,50%)}.attachment .thumbnail .centered img{-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.attachment .filename{position:absolute;right:0;left:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:700;background:rgba(255,255,255,.8);-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.attachment .filename div{padding:5px 10px}.attachment-preview .thumbnail{width:199px;height:199px}.attachment .thumbnail img{position:absolute}.attachment .close{display:none;position:absolute;top:5px;left:5px;height:22px;width:22px;padding:0;font-size:20px;line-height:20px;text-align:center;text-decoration:none;color:#464646;background-color:#fff;background-position:-96px 4px;border-width:0;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.attachment .close:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.6);box-shadow:0 0 0 1px rgba(0,0,0,.6)}.attachment:hover .close{display:block}.attachment .check{display:none;height:24px;width:24px;position:absolute;top:-6px;left:-6px;outline:0;background:#eee;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.4);box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.4)}.attachment .check div{background-position:-1px 0;height:15px;width:15px;margin:5px}.attachment .check:hover div{background-position:-40px 0}.attachment.selected .check{display:block}.attachment.details{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 5px #1e8cbe}.attachment.details .check{background-color:#1e8cbe;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe}.attachment.details .check div{background-position:-21px 0}.attachment.details .check:hover div{background-position:-60px 0}.media-frame .attachment .describe{position:relative;display:block;width:100%;margin:-1px 0 0;padding:8px;font-size:12px;-webkit-border-radius:0;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{left:300px;height:50px}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin-top:10px}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:absolute;top:50px;right:0;left:300px;bottom:0;overflow:auto}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:18px;font-size:13px;color:#666;margin-left:.5em}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;-webkit-border-radius:10px;border-radius:10px;background:#dfdfdf;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#1e8cbe;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:width 300ms;transition:width 300ms}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;right:15%;width:70%;margin:-5px 0 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.media-sidebar .media-uploader-status{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}.uploader-inline .media-uploader-status h3{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#666}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#464646}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{text-decoration:none}.media-sidebar .media-uploader-status .upload-dismiss-errors{position:absolute;top:0;left:0}.upload-errors .upload-error{margin:8px auto 0;padding:8px;border:1px #c00 solid;background:#ffebe8;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-label{padding:2px 4px;margin-left:8px;font-weight:700;color:#fff;background:#e00;background-image:-webkit-gradient(linear,right top,right bottom,from(#e00),to(#a00));background-image:-webkit-linear-gradient(top,#e00,#a00);background-image:linear-gradient(to bottom,#e00,#a00);-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-message{display:block;padding-top:8px;color:#b44;word-wrap:break-word}.uploader-window{position:fixed;top:0;right:0;left:0;bottom:0;background:rgba(0,86,132,.9);z-index:250000;display:none;text-align:center;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms}.uploader-window-content{position:absolute;top:10px;right:10px;left:10px;bottom:10px;border:1px dashed #fff}.uploader-window h3{margin:-.5em 0 0;position:absolute;top:50%;right:0;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:40px;color:#fff;padding:0}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin:20px;padding:20px;text-align:center}.uploader-inline-content{position:absolute;top:30%;right:0;left:0}.uploader-inline-content .upload-ui{margin:4em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h3{font-size:20px;line-height:28px;font-weight:400;margin-bottom:1.6em}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#464646;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{font-size:12px}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;right:0;left:350px;height:60px;padding:0 16px 0 0;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-left:10px;vertical-align:top}.media-selection.editing,.media-selection.empty,.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:20px;font-weight:700}.media-selection .selection-info a{display:block;float:right;padding:1px 8px;margin:1px -8px 1px 8px;line-height:16px;text-decoration:none;border-left:1px solid #dfdfdf;color:#21759B}.media-selection .selection-info a:hover{background:#21759B;color:#fff;border-color:transparent}.media-selection .selection-info a:last-child{border-left:0;margin-left:0}.media-selection .selection-info .clear-selection{color:red}.media-selection .selection-info .clear-selection:hover{background:red}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin-top:5px;overflow:hidden;vertical-align:top}.media-selection .attachment .icon{width:50%}.attachment.selection.selected{-webkit-box-shadow:none;box-shadow:none}.attachment.selection.details{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 4px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 4px #1e8cbe}.media-selection .attachment.selection.details{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe}.media-selection:after{content:'';display:block;position:absolute;top:0;left:0;bottom:0;width:25px;background-image:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to right,rgba(255,255,255,1),rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:0}.media-toolbar .spinner{margin-top:14px}.media-sidebar .settings-save-status{background:#f5f5f5;float:left;text-transform:none;z-index:10}.media-sidebar .settings-save-status .spinner{margin:0 5px}.media-sidebar .settings-save-status .saved{float:left;display:none}.media-sidebar .save-complete .settings-save-status .saved,.media-sidebar .save-waiting .settings-save-status .spinner{display:block}.attachment-details{position:relative;overflow:auto}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:18px;color:#666;border-bottom:1px solid #ddd;padding-bottom:11px}.attachment-info .filename{font-weight:700;color:#464646;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:right;max-width:120px;max-height:120px;margin-top:5px;margin-left:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1);box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:right;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .refresh-attachment,.attachment-info .trash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment,.attachment-info .refresh-attachment{display:none}.attachment-details.needs-refresh .attachment-info .refresh-attachment,.attachment-info .edit-attachment{display:block}.attachment-info .delete-attachment,.attachment-info .trash-attachment{color:#bc0b0b}.attachment-info .delete-attachment:hover,.attachment-info .trash-attachment:hover{color:red}.attachment-display-settings{width:100%;float:right;overflow:hidden}.attachment-display-settings h4{margin:1.4em 0 .4em}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:right;margin-left:8px}.collection-settings .setting span{min-width:inherit}.media-frame .imgedit-wrap{position:static}.media-frame .imgedit-wait{height:auto!important;left:0;bottom:0;right:0}.media-frame .imgedit-wrap .imgedit-panel-content{padding:16px;position:absolute;top:0;left:282px;bottom:0;right:0;overflow:auto}.media-frame .imgedit-wrap .imgedit-settings{background:#f3f3f3;border-right:1px solid #ddd;padding:0 16px 16px;position:absolute;top:0;left:0;bottom:0;width:250px;overflow:auto}.media-frame .imgedit-group{background:0 0;border:0;border-bottom:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;margin:0;margin-bottom:16px;padding:0;padding-bottom:16px}.media-frame .imgedit-group:last-of-type{border:0;margin:0;padding:0}.media-frame .imgedit-group-top h3{text-transform:uppercase;font-size:12px;color:#666;margin:0;margin-top:24px}.media-frame .imgedit-group-top h3 a{text-decoration:none;color:#666}.media-frame .imgedit-help-toggle{margin-top:-2px;cursor:pointer;color:#666}.media-frame .imgedit-help-toggled span.dashicons:before{content:'\f142'}.media-frame .imgedit-group img{margin-top:5px}.media-frame .imgedit-wrap div.updated{margin:0;margin-bottom:16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;padding:12px 14px;width:100%;min-width:200px;-webkit-box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1);box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url .spinner{position:absolute;top:16px;left:26px}.media-frame .embed-loading .embed-url .spinner{display:block}.embed-link-settings,.embed-media-settings{position:absolute;top:60px;right:0;left:0;bottom:0;padding:16px 16px 32px;overflow:auto}.image-details .media-modal{right:140px;left:140px}.image-details .media-frame-menu{display:none}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{right:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .column-settings{background:#f3f3f3;border-left:1px solid #ddd;min-height:100%;width:52%;position:absolute;top:0;right:0}.image-details .column-settings h3{margin:20px;padding-top:20px;border-top:1px solid #ddd}.image-details .column-image{width:48%;position:absolute;right:52%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{color:#666;text-decoration:none;display:block}.image-details .advanced-toggle::after{font:400 20px/1 dashicons;speak:none;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140';display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle::after{content:'\f142';margin-top:0}.image-details .embed-media-settings .size{margin-bottom:4px}.image-details .custom-size span{display:block}.image-details .custom-size label{display:block;float:right}.image-details .custom-size span small{color:#999;font-size:inherit}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:right;margin:26px 6px 0}.image-details .custom-size::after{content:'';display:table;clear:both}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:right}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting{width:100%;margin:10px 0;float:right;display:block;clear:both}.image-details .embed-media-settings .setting{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea{display:block;width:100%;max-width:400px;margin:1px 0}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom{margin-right:27%;width:70%}.image-details .embed-media-settings .link-target{margin-top:24px}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting span{display:block;width:200px;font-size:13px;line-height:24px;color:#666}.image-details .embed-media-settings .setting span{float:right;width:25%;text-align:left;margin:8px 1% 0;line-height:1.1}.media-embed .setting .button-group{margin:2px 0}.media-embed-sidebar{position:absolute;top:0;right:440px}.advanced-section,.link-settings{margin-top:10px}#wp-fullscreen-body .uploader-editor,.wp-editor-wrap .uploader-editor{background:rgba(150,150,150,.9);position:absolute;top:0;right:0;width:100%;height:100%;z-index:99998;display:none;text-align:center}#wp-fullscreen-body .uploader-editor{background:rgba(0,86,132,.9);position:fixed;z-index:100050}.wp-editor-wrap.wp-fullscreen-wrap .uploader-editor{opacity:0}#wp-fullscreen-body .uploader-editor-content,.wp-editor-wrap .uploader-editor-content{border:1px dashed #fff;position:absolute;top:10px;right:10px;left:10px;bottom:10px}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;right:0;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:700;color:#fff;padding:0;margin:0;display:none}.wp-editor-wrap .uploader-editor.droppable{background:rgba(0,86,132,.9)}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.ie7 .media-frame .attachments-browser{position:static}.ie7 .media-frame .embed-url input{margin-top:4px;width:90%}.ie7 .compat-item{width:99%}.ie7 .attachment-display-settings{width:auto}.ie7 .attachment-preview,.ie7 .attachment-preview .thumbnail{width:120px;height:120px}.ie7 .media-frame .attachment .describe{width:102px}.ie7 .media-sidebar .setting select{max-width:55%}.ie7 .media-sidebar .setting input,.ie7 .media-sidebar .setting textarea{width:55%}.ie7 .media-sidebar .setting .link-to-custom{float:right}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:960px){.media-frame-content .media-toolbar-primary .search,.media-frame-content .media-toolbar-secondary .attachment-filters{max-width:120px}}@media only screen and (max-width:900px){.media-frame-menu{width:139px}.media-menu>a{padding:4px 5px}.media-frame-content,.media-frame-router,.media-frame-title,.media-frame-toolbar{right:140px}.media-sidebar{width:159px;padding:0 10px 24px}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{left:180px}.compat-item label span,.media-sidebar .setting input,.media-sidebar .setting span,.media-sidebar .setting textarea{float:none}.compat-item label span,.media-sidebar .setting span{text-align:inherit;display:block;min-height:16px;margin:0;padding:8px 2px 0}.media-sidebar .setting input,.media-sidebar .setting select,.media-sidebar .setting textarea{width:98%;max-width:none}.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.media-frame-content .attachment .icon{top:40%}.image-details .media-modal{right:30px;left:30px}.image-details .embed-media-settings .setting{margin:20px}.image-details .embed-media-settings .setting span{float:none;text-align:right;width:100%;margin-bottom:4px}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-right:0}.image-details .embed-media-settings .custom-size{margin-right:20px}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-menu .separator{margin:12px 10px}.media-modal-close{left:10px}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px}}@media only screen and (max-width:640px),screen and (max-height:400px){.media-frame-content .media-toolbar .instructions{display:none}.media-frame-menu{width:auto;bottom:auto;left:0;height:60px}.media-menu{border-left:0;position:relative;border-bottom:1px solid #ddd;overflow:hidden;padding:10px 10px 10px 0}.media-menu a{float:right;width:42%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.media-frame-title{display:none}.image-details .media-frame-title{display:block;top:0;font-size:14px}.media-frame-toolbar{position:absolute;bottom:0;right:0;left:0;background:#FFF;border-top:1px solid #DEDEDE}.media-toolbar{position:relative}.media-frame{overflow:hidden}.attachments-browser .attachments{top:42px}.attachment-details h3{margin-top:45px}.media-menu a:last-child,.media-menu a:nth-child(2){width:40%}.media-menu .separator{display:none}.media-frame-title{top:72px;right:auto;height:auto}.media-frame-title h1{line-height:3;font-size:18px}.media-frame-router{top:84px;right:0}.media-frame-content{right:0;top:118px}.image-details .media-frame.hide-router .media-frame-content{top:40px}.media-frame .attachments-browser{padding-bottom:300px}.media-sidebar{border-bottom:1px solid #ddd}.media-modal{width:auto}.media-toolbar-primary,.media-toolbar-secondary{height:auto}.uploader-inline h3{margin:0 0 .8em}.uploader-inline-content{top:auto}.uploader-inline-content .upload-ui{margin:0}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:relative;margin-left:180px}.image-details .media-modal,.media-modal{position:fixed;top:0;right:0;left:0;bottom:0}.media-modal-backdrop{position:fixed}.attachments-browser .attachment,.attachments-browser .attachment-preview{max-width:100%}.attachments-browser .media-toolbar-primary input.search{max-width:150px}.uploader-inline-content{position:relative}.media-sidebar .field input[type=checkbox],.media-sidebar .setting input[type=checkbox]{width:25px}.embed-link-settings,.embed-media-settings{padding-bottom:52px}.image-details .column-image,.image-details .column-settings{position:relative;padding:10px 0 20px;right:0;width:100%;min-height:inherit}.media-frame.hide-router .media-frame-content{top:73px;border-top:0}.collection-settings h3{margin-top:45px}}@media screen and (max-height:400px){.media-menu{padding:0 10px 0 0}.media-menu a{float:right;width:21%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding:10px inherit}.media-menu a:last-child,.media-menu a:nth-child(2){width:21%}.media-modal-close{top:2px}.media-frame-router{top:44px}.media-frame-content{top:78px}.attachments-browser .attachments{top:2px}.embed-link-settings{overflow:visible}}@media only screen and (max-width:680px){.media-frame-content .media-toolbar .attachment-filters,.media-frame-content .media-toolbar .search{max-width:85px}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.media-modal-icon{background-image:url(../images/uploader-icons-2x.png);-webkit-background-size:134px 15px;background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}
\ No newline at end of file
+.media-modal *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.media-frame,.media-modal{font-family:"Open Sans",sans-serif;font-size:12px}.media-frame input,.media-frame textarea{padding:6px 8px}.media-frame select,.wp-admin .media-frame select{line-height:28px;margin-top:3px}.media-frame a{border-bottom:none;color:#21759b}.media-frame a:hover{color:#d54e21}.media-frame a.button{color:#333}.media-frame a.button:hover{color:#222}.media-frame a.button-primary,.media-frame a.button-primary:hover{color:#fff}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-family:"Open Sans",sans-serif;font-size:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#dfdfdf}.media-frame input[type=email]:focus,.media-frame input[type=number]:focus,.media-frame input[type=password]:focus,.media-frame input[type=search]:focus,.media-frame input[type=text]:focus,.media-frame input[type=url]:focus,.media-frame select:focus,.media-frame textarea:focus{border-color:#5b9dd9}.media-frame select{height:24px;padding:2px}.media-frame input:disabled,.media-frame input[readonly],.media-frame textarea:disabled,.media-frame textarea[readonly]{background-color:#eee}.media-frame input[type=search]{-webkit-appearance:textfield}.media-frame :-moz-placeholder{color:#a9a9a9}.media-frame .hidden{display:none}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.meta-box-sortables.ui-sortable{-ms-touch-action:auto;touch-action:auto}.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.media-modal{position:fixed;top:30px;right:30px;left:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;text-decoration:none;top:10px;left:10px;width:30px;height:30px;z-index:1000;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active{-webkit-box-shadow:none;box-shadow:none}.media-modal-close span.media-modal-icon{display:block;margin-top:5px;width:30px;height:15px;background-image:none;text-align:center}.media-modal-close .media-modal-icon:before{content:'\f158';font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#666}.media-modal-close:hover .media-modal-icon:before{color:#2ea2cc}.media-modal-close:active{outline:0}.media-modal-content{position:absolute;top:0;right:0;left:0;bottom:0;overflow:auto;min-height:300px;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.7);box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fcfcfc;-webkit-font-smoothing:subpixel-antialiased}.media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;right:0;left:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dfdfdf;overflow:hidden}.media-toolbar-primary{float:left;height:100%}.media-toolbar-secondary{float:right;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-right:10px;float:right;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-left:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;left:0;bottom:0;width:267px;padding:0 16px 24px;z-index:75;background:#f3f3f3;border-right:1px solid #ddd;overflow:auto;-webkit-overflow-scrolling:touch}.hide-toolbar .media-sidebar{bottom:0}.media-sidebar .sidebar-title{font-size:20px;margin:0;padding:12px 10px 10px;line-height:28px}.media-sidebar .sidebar-content{padding:0 10px;margin-bottom:130px}.media-sidebar .search{display:block;width:100%}.image-details h3,.media-sidebar h3{position:relative;font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:right;width:100%;margin:1px 0}.attachment-details .setting label,.media-sidebar .setting label{display:block}.attachment-details .setting .link-to-custom,.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting span,.media-sidebar .setting span{min-width:30%;margin-left:4%;font-size:12px;text-align:left}.attachment-details .setting select,.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{float:right;min-height:22px;padding-top:8px;line-height:16px;font-weight:400;color:#666}.compat-item label span{text-align:left}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:1px;width:65%;float:left}.attachment-details .setting .value,.media-sidebar .setting .value{margin:0 1px;text-align:right}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.attachment-details select,.media-sidebar select{margin-top:3px}.compat-item{float:right;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-left:4%;float:right;text-align:left}.compat-item .label span{display:block;width:100%}.compat-item .field{float:left;width:66%}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url]{width:100%;margin:0}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;right:0;left:0;bottom:0;margin:0;padding:10px 0;background:#f3f3f3;border-left-width:1px;border-left-style:solid;border-left-color:#ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-menu>a{display:block;position:relative;padding:8px 20px;margin:0;line-height:18px;font-size:14px;color:#0074a2;text-decoration:none}.media-menu>a:hover{color:#21759B;background:rgba(0,0,0,.04)}.media-menu>a:active{outline:0}.media-menu .active,.media-menu .active:hover{color:#222;font-weight:700}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #ddd}.media-router{position:relative;padding:0 6px;margin:0;clear:both;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-router a{-webkit-transition:none;transition:none}.media-router>a{position:relative;float:right;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none}.media-router>a:last-child{border-left:0}.media-router>a:active{outline:0}.media-router .active,.media-router .active:hover{color:#333}.media-router .active,.media-router>a.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;right:0;left:0;bottom:0}.media-frame-menu{position:absolute;top:0;right:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;right:200px;left:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;right:200px;left:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;right:200px;left:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.media-frame-toolbar{position:absolute;right:200px;left:0;bottom:0;height:60px;z-index:100}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{right:0}.media-frame.hide-menu .media-frame-menu{right:-200px}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-toolbar .media-frame-toolbar{bottom:-61px}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-router .media-frame-router{display:none}.media-frame.hide-router .media-frame-title{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 4px 4px -4px rgba(0,0,0,.1);box-shadow:0 4px 4px -4px rgba(0,0,0,.1)}.media-frame-title .dashicons{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:50px;margin:0}.media-frame-title .suggested-dimensions{font-size:14px;float:left;margin-left:20px}.media-frame-content .crop-content{height:100%}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;right:50%;margin-right:-150px;margin-left:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-left:10px}.media-frame .search{margin-top:11px;padding:4px;font-size:13px;color:#464646;font-family:"Open Sans",sans-serif;-webkit-appearance:none}.media-toolbar-secondary .search{margin-left:16px}.attachments{margin:0;-webkit-overflow-scrolling:touch}.attachment{position:relative;float:right;padding:8px;margin:0;color:#464646;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:25%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.attachment.details:focus,.attachment:focus,.selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;outline:0}.selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc}.attachment.details{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe}.attachment-preview{position:relative;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#eee;cursor:pointer}.attachment-preview:before{content:'';display:block;padding-top:100%}.attachment .icon{margin:0 auto;overflow:hidden}.attachment .thumbnail{overflow:hidden;position:absolute;top:0;left:0;bottom:0;right:0;opacity:1;-webkit-transition:opacity .1s;transition:opacity .1s}.attachment .portrait img{max-width:100%}.attachment .landscape img{max-height:100%}.attachment .thumbnail:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.attachment .thumbnail img{top:0;left:0}.attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate(50%,50%);-ms-transform:translate(50%,50%);transform:translate(50%,50%)}.attachment .thumbnail .centered img{-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.attachment .thumbnail .centered img.icon{-webkit-transform:translate(-50%,-70%);-ms-transform:translate(-50%,-70%);transform:translate(-50%,-70%)}.ie8 .attachment img.icon{top:20%;position:relative}.attachment .filename{position:absolute;right:0;left:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:700;background:rgba(255,255,255,.8);-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.attachment .filename div{padding:5px 10px}.attachment .thumbnail img{position:absolute}.attachment .close{display:none;position:absolute;top:5px;left:5px;height:22px;width:22px;padding:0;font-size:20px;line-height:20px;text-align:center;text-decoration:none;color:#464646;background-color:#fff;background-position:-96px 4px;border-width:0;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.attachment .close:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.6);box-shadow:0 0 0 1px rgba(0,0,0,.6)}.attachment:hover .close{display:block}.attachment .check{display:none;height:24px;width:24px;position:absolute;z-index:10;top:0;left:0;outline:0;background:#eee;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15);box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.attachment .check div{background-position:-1px 0;height:15px;width:15px;margin:5px}.attachment .check:hover div{background-position:-40px 0}.attachment.selected .check{display:block}.attachment.details .check,.attachment.selected .check:focus,.media-frame.mode-grid .attachment.selected .check{background-color:#1e8cbe;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe}.attachment.details .check div,.media-frame.mode-grid .attachment.selected .check div{background-position:-21px 0}.attachment.details .check:hover div,.attachment.selected .check:focus div,.media-frame.mode-grid .attachment.selected .check:hover div{background-position:-60px 0}.media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:8px;font-size:12px;-webkit-border-radius:0;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{left:300px;height:50px}.attachments-browser.hide-sidebar .media-toolbar{left:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:11px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:absolute;top:50px;right:0;left:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;position:absolute;left:0;text-align:center;top:0;width:50px;z-index:1}.uploader-inline .close:before{font:400 30px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{left:0;margin-left:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:18px;font-size:13px;color:#666;margin-left:.5em}.attachments-browser .no-media{padding:2em 2em 0 0}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;-webkit-border-radius:10px;border-radius:10px;background:#dfdfdf;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#1e8cbe;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:width 300ms;transition:width 300ms}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;right:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.media-sidebar .media-uploader-status{border-bottom:1px solid #dfdfdf}.uploader-inline .media-uploader-status h3{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#666}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#464646}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{text-decoration:none}.media-sidebar .media-uploader-status .upload-dismiss-errors{position:absolute;top:0;left:0}.upload-errors .upload-error{margin:8px auto 0;padding:8px;border:1px solid #c00;background:#ffebe8;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-label{padding:2px 4px;margin-left:8px;font-weight:700;color:#fff;background:#e00;background:#e00 -webkit-gradient(linear,right top,right bottom,from(#e00),to(#a00));background:#e00 -webkit-linear-gradient(top,#e00,#a00);background:#e00 linear-gradient(to bottom,#e00,#a00);-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-message{display:block;padding-top:8px;color:#b44;word-wrap:break-word}.uploader-window{position:fixed;top:0;right:0;left:0;bottom:0;background:rgba(0,86,132,.9);z-index:250000;display:none;text-align:center;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms}.uploader-window-content{position:absolute;top:10px;right:10px;left:10px;bottom:10px;border:1px dashed #fff}.uploader-window h3{margin:-.5em 0 0;position:absolute;top:50%;right:0;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:40px;color:#fff;padding:0}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;right:0;left:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h3{font-size:20px;line-height:28px;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#464646;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{font-size:12px;margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;right:0;left:350px;height:60px;padding:0 16px 0 0;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-left:10px;vertical-align:top}.media-selection.editing,.media-selection.empty,.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:20px;font-weight:700}.media-selection .selection-info a{display:block;float:right;padding:1px 8px;margin:1px -8px 1px 8px;line-height:16px;text-decoration:none;border-left:1px solid #dfdfdf;color:#21759B}.media-selection .selection-info a:hover{background:#21759B;color:#fff;border-color:transparent}.media-selection .selection-info a:last-child{border-left:0;margin-left:0}.media-selection .selection-info .clear-selection{color:red}.media-selection .selection-info .clear-selection:hover{background:red}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:48px;padding:0;margin:0;-webkit-box-shadow:none;box-shadow:none}.media-selection .attachment .thumbnail{top:4px;left:4px;bottom:4px;right:4px}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{-webkit-box-shadow:none;box-shadow:none;background:0 0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe}.media-selection:after{content:'';display:block;position:absolute;top:0;left:0;bottom:0;width:25px;background-image:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to right,rgba(255,255,255,1),rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:0}.media-toolbar .spinner{margin-top:14px}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:left;text-transform:none;z-index:10}.attachment-details .settings-save-status .spinner{margin:0 5px}.attachment-details .settings-save-status .saved{float:left;display:none}.attachment-details.save-complete .settings-save-status .saved,.attachment-details.save-waiting .settings-save-status .spinner{display:block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:18px;color:#666;border-bottom:1px solid #ddd;padding-bottom:11px}.attachment-info .filename{font-weight:700;color:#464646;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:right;max-width:120px;max-height:120px;margin-top:5px;margin-left:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1);box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:right;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .refresh-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment,.attachment-info .refresh-attachment{display:none}.attachment-details.needs-refresh .attachment-info .refresh-attachment,.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{color:#bc0b0b}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover{color:red}.attachment-display-settings{width:100%;float:right;overflow:hidden}.attachment-display-settings h4{margin:1.4em 0 .4em}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:right;margin-left:8px}.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wait{height:auto!important;left:0;bottom:0;right:0}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px;position:absolute;top:0;left:282px;bottom:0;right:0;overflow:auto}.media-modal .imgedit-wrap .imgedit-settings{background:#f3f3f3;border-right:1px solid #ddd;padding:0 16px 16px;position:absolute;top:0;left:0;bottom:0;width:250px;overflow:auto}.media-modal .imgedit-group{background:0 0;border:none;border-bottom:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;margin:0 0 16px;padding:0 0 16px;position:relative}.media-modal .imgedit-group:last-of-type{border:none;margin:0;padding:0}.media-modal .imgedit-group-top h3{text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 0}.media-modal .imgedit-group-top h3 a{text-decoration:none;color:#666}.media-modal .imgedit-help-toggle{margin-top:-2px;cursor:pointer;color:#666}.media-modal .imgedit-help-toggled span.dashicons:before{content:'\f142'}.media-modal .imgedit-group img{margin-top:5px}.media-modal .imgedit-wrap div.updated{margin:0 0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;padding:12px 14px;width:100%;min-width:200px;-webkit-box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1);box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url .spinner{position:absolute;top:32px;left:26px}.media-frame .embed-loading .embed-url .spinner{display:block}.embed-link-settings,.embed-media-settings{position:absolute;top:70px;right:0;left:0;bottom:0;padding:16px 16px 32px;overflow:auto}.embed-preview embed,.embed-preview iframe,.embed-preview img{max-width:100%}.embed-preview img{height:auto}.image-details .media-modal{right:140px;left:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{right:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings,.image-details .embed-media-settings div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.image-details .column-settings{background:#f3f3f3;border-left:1px solid #ddd;min-height:100%;width:55%;position:absolute;top:0;right:0}.image-details .column-settings h3{margin:20px;padding-top:20px;border-top:1px solid #ddd}.image-details .column-image{width:45%;position:absolute;right:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{color:#666;text-decoration:none;display:block}.image-details .advanced-toggle:after{font:400 20px/1 dashicons;speak:none;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140';display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:'\f142'}.image-details .embed-media-settings .size{margin-bottom:4px}.image-details .custom-size span{display:block}.image-details .custom-size label{display:block;float:right}.image-details .custom-size span small{color:#999;font-size:inherit}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:right;margin:26px 6px 0}.image-details .custom-size:after{content:'';display:table;clear:both}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:right}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:'';display:block;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting{width:100%;margin:10px 0;float:right;display:block;clear:both}.image-details .embed-media-settings .setting{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea{display:block;width:100%;max-width:400px;margin:1px 0}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom{margin-right:27%;width:70%}.image-details .embed-media-settings .link-target{margin-top:24px}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting span{display:block;width:200px;font-size:13px;line-height:24px;color:#666}.image-details .embed-media-settings .setting span{float:right;width:25%;text-align:left;margin:8px 1% 0;line-height:1.1}.media-embed .setting .button-group{margin:2px 0}.media-embed-sidebar{position:absolute;top:0;right:440px}.advanced-section,.link-settings{margin-top:10px}#wp-fullscreen-body .uploader-editor,.wp-editor-wrap .uploader-editor{background:rgba(150,150,150,.9);position:absolute;top:0;right:0;width:100%;height:100%;z-index:99998;display:none;text-align:center}#wp-fullscreen-body .uploader-editor{background:rgba(0,86,132,.9);position:fixed;z-index:100050}.wp-editor-wrap.wp-fullscreen-wrap .uploader-editor{opacity:0}#wp-fullscreen-body .uploader-editor-content,.wp-editor-wrap .uploader-editor-content{border:1px dashed #fff;position:absolute;top:10px;right:10px;left:10px;bottom:10px}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;right:0;left:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:700;color:#fff;padding:0;margin:0;display:none}.wp-editor-wrap .uploader-editor.droppable{background:rgba(0,86,132,.9)}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.ie7 .media-frame .attachments-browser{position:static}.ie7 .media-frame .embed-url input{margin-top:4px;width:90%}.ie7 .compat-item{width:99%}.ie7 .attachment-display-settings{width:auto}.ie7 .attachment-preview,.ie7 .attachment-preview .thumbnail{width:120px;height:120px}.ie7 .media-frame .attachment .describe{width:102px}.ie7 .media-sidebar .setting select{max-width:55%}.ie7 .media-sidebar .setting input[type=email],.ie7 .media-sidebar .setting input[type=number],.ie7 .media-sidebar .setting input[type=password],.ie7 .media-sidebar .setting input[type=search],.ie7 .media-sidebar .setting input[type=tel],.ie7 .media-sidebar .setting input[type=text],.ie7 .media-sidebar .setting input[type=url],.ie7 .media-sidebar .setting textarea{width:55%}.ie7 .media-sidebar .setting .link-to-custom{float:right}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:940px){.media-frame-content .media-toolbar-primary .search,.media-frame-content .media-toolbar-secondary .attachment-filters{max-width:134px}}@media only screen and (max-width:900px){.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-title,.media-frame:not(.hide-menu) .media-frame-toolbar{right:0}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{width:auto;max-width:80%;overflow:auto;z-index:2000;top:50px;right:-300px;left:auto;bottom:auto;padding:5px 0;border:1px solid #ccc}.media-frame:not(.hide-menu) .media-menu.visible{right:0}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu>a.active{display:none}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame:not(.hide-menu) .media-frame-title{right:0;color:#21759b}.media-frame:not(.hide-menu) .media-frame-title .dashicons{display:inline-block;line-height:50px}.media-frame:not(.hide-menu) .media-frame-title h1{line-height:3;font-size:18px;float:right;cursor:pointer}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{left:262px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting input,.attachment-details .setting span,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting input,.media-sidebar .setting span,.media-sidebar .setting textarea{float:none}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 0}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.image-details .column-image{width:30%;right:70%}.image-details .column-settings{width:70%}.image-details .media-modal{right:30px;left:30px}.image-details .embed-media-settings .setting{margin:20px}.image-details .embed-media-settings .setting span{float:none;text-align:right;width:100%;margin-bottom:4px}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-right:0}.image-details .embed-media-settings .custom-size{margin-right:20px}.collection-settings .setting input[type=checkbox]{margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar-primary,.media-modal .attachments-browser .media-toolbar-secondary{width:50%}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:left}.media-modal .attachments-browser .media-toolbar .attachment-filters{margin:11px 0 0;height:auto;max-width:65%;max-width:-webkit-calc(100% - 38px);max-width:calc(100% - 38px)}.media-modal .attachments-browser .media-toolbar .spinner{margin:14px 8px 0}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;right:0;left:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{left:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;right:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}}@media screen and (max-height:400px){.media-menu{padding:0}.media-frame-router{top:44px}.media-frame-content{top:78px}.attachments-browser .attachments{top:40px}.embed-link-settings{overflow:visible}}@media only screen and (max-width:480px){.media-frame-content .media-toolbar .attachment-filters,.media-frame-content .media-toolbar .search{max-width:90px}.media-modal-close{top:5px;left:5px}.media-modal .media-frame-title{height:40px}.media-frame:not(.hide-menu) .media-frame-title h1,.media-modal .media-frame-title h1{font-size:18px;line-height:40px}.media-frame:not(.hide-menu) .media-frame-title .dashicons{line-height:40px}.media-frame-router,.media-frame:not(.hide-menu) .media-menu{top:40px}.media-frame-content{top:74px}.media-frame.hide-router .media-frame-content{top:40px}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.media-modal-icon{background-image:url(../images/uploader-icons-2x.png);-webkit-background-size:134px 15px;background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%}
\ No newline at end of file
index 64893d290b86e9d58e719b54f767a055d4c88f62..ced0c8fc23a13e34996c05017cc5a322ad1d9c41 100644 (file)
@@ -16,7 +16,6 @@
 .media-frame input,
 .media-frame textarea {
        padding: 6px 8px;
 .media-frame input,
 .media-frame textarea {
        padding: 6px 8px;
-       line-height: 16px;
 }
 
 .media-frame select,
 }
 
 .media-frame select,
        border-color: #dfdfdf;
 }
 
        border-color: #dfdfdf;
 }
 
+.media-frame input[type="text"]:focus,
+.media-frame input[type="password"]:focus,
+.media-frame input[type="number"]:focus,
+.media-frame input[type="search"]:focus,
+.media-frame input[type="email"]:focus,
+.media-frame input[type="url"]:focus,
+.media-frame textarea:focus,
+.media-frame select:focus {
+       border-color: #5b9dd9;
+}
+
 .media-frame select {
        height: 24px;
        padding: 2px;
 .media-frame select {
        height: 24px;
        padding: 2px;
 .media-modal-close {
        position: absolute;
        text-decoration: none;
 .media-modal-close {
        position: absolute;
        text-decoration: none;
-       top: 5px;
+       top: 10px;
        right: 10px;
        width: 30px;
        height: 30px;
        z-index: 1000;
        right: 10px;
        width: 30px;
        height: 30px;
        z-index: 1000;
+       -webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
+       transition: color .1s ease-in-out, background .1s ease-in-out;
+}
+
+.media-modal-close:active {
+       -webkit-box-shadow: none;
+       box-shadow: none;
 }
 
 .media-modal-close span.media-modal-icon {
        display: block;
 }
 
 .media-modal-close span.media-modal-icon {
        display: block;
-       margin: 8px auto 0;
-       width: 15px;
+       margin-top: 5px;
+       width: 30px;
        height: 15px;
        background-image: none;
        height: 15px;
        background-image: none;
+       text-align: center;
 }
 
 .media-modal-close .media-modal-icon:before {
 }
 
 .media-modal-close .media-modal-icon:before {
 .media-toolbar-secondary > .media-button,
 .media-toolbar-secondary > .media-button-group {
        margin-right: 10px;
 .media-toolbar-secondary > .media-button,
 .media-toolbar-secondary > .media-button-group {
        margin-right: 10px;
-       float: left;
        margin-top: 15px;
 }
 
        margin-top: 15px;
 }
 
        margin: 24px 0 8px;
 }
 
        margin: 24px 0 8px;
 }
 
-.media-sidebar .setting {
+.media-sidebar .setting,
+.attachment-details .setting {
        display: block;
        float: left;
        width: 100%;
        margin: 1px 0;
 }
 
        display: block;
        float: left;
        width: 100%;
        margin: 1px 0;
 }
 
-.media-sidebar .setting label {
+.media-sidebar .setting label,
+.attachment-details .setting label {
        display: block;
 }
 
        display: block;
 }
 
-.media-sidebar .setting .link-to-custom {
-       margin: 3px 0;
+.media-sidebar .setting .link-to-custom,
+.attachment-details .setting .link-to-custom {
+       margin: 3px 2px 0;
 }
 
 }
 
-.media-sidebar .setting span {
+.media-sidebar .setting span,
+.attachment-details .setting span {
        min-width: 30%;
        margin-right: 4%;
        font-size: 12px;
        min-width: 30%;
        margin-right: 4%;
        font-size: 12px;
+       text-align: right;
 }
 
 }
 
-.media-sidebar .setting select {
+.media-sidebar .setting select,
+.attachment-details .setting select {
        max-width: 65%;
 }
 
 .media-sidebar .setting input[type="checkbox"],
        max-width: 65%;
 }
 
 .media-sidebar .setting input[type="checkbox"],
-.media-sidebar .field input[type="checkbox"] {
-       width: 16px;
+.media-sidebar .field input[type="checkbox"],
+.media-sidebar .setting input[type="radio"],
+.media-sidebar .field input[type="radio"],
+.attachment-details .setting input[type="checkbox"],
+.attachment-details .field input[type="checkbox"],
+.attachment-details .setting input[type="radio"],
+.attachment-details .field input[type="radio"] {
        float: none;
        margin: 8px 3px 0;
        padding: 0;
 }
 
 .media-sidebar .setting span,
        float: none;
        margin: 8px 3px 0;
        padding: 0;
 }
 
 .media-sidebar .setting span,
+.attachment-details .setting span,
 .compat-item label span {
        float: left;
        min-height: 22px;
        padding-top: 8px;
        line-height: 16px;
 .compat-item label span {
        float: left;
        min-height: 22px;
        padding-top: 8px;
        line-height: 16px;
-       text-align: right;
        font-weight: normal;
        color: #666;
 }
 
        font-weight: normal;
        color: #666;
 }
 
-.media-sidebar .setting input,
-.media-sidebar .setting textarea {
+.compat-item label span  {
+       text-align: right;
+}
+
+.media-sidebar .setting input[type="text"],
+.media-sidebar .setting input[type="password"],
+.media-sidebar .setting input[type="email"],
+.media-sidebar .setting input[type="number"],
+.media-sidebar .setting input[type="search"],
+.media-sidebar .setting input[type="tel"],
+.media-sidebar .setting input[type="url"],
+.media-sidebar .setting textarea,
+.media-sidebar .setting .value,
+.attachment-details .setting input[type="text"],
+.attachment-details .setting input[type="password"],
+.attachment-details .setting input[type="email"],
+.attachment-details .setting input[type="number"],
+.attachment-details .setting input[type="search"],
+.attachment-details .setting input[type="tel"],
+.attachment-details .setting input[type="url"],
+.attachment-details .setting textarea,
+.attachment-details .setting .value {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
        margin: 1px;
        width: 65%;
        float: right;
 }
 
        margin: 1px;
        width: 65%;
        float: right;
 }
 
+.media-sidebar .setting .value,
+.attachment-details .setting .value {
+       margin: 0 1px;
+       text-align: left;
+}
+
 .media-sidebar .setting textarea,
 .media-sidebar .setting textarea,
+.attachment-details .setting textarea,
 .compat-item .field textarea {
        height: 62px;
        resize: vertical;
 }
 
 .compat-item .field textarea {
        height: 62px;
        resize: vertical;
 }
 
-.media-sidebar select {
+.media-sidebar select,
+.attachment-details select {
        margin-top: 3px;
 }
 
        margin-top: 3px;
 }
 
        width: 66%;
 }
 
        width: 66%;
 }
 
-.compat-item .field input {
+.compat-item .field input[type="text"],
+.compat-item .field input[type="password"],
+.compat-item .field input[type="email"],
+.compat-item .field input[type="number"],
+.compat-item .field input[type="search"],
+.compat-item .field input[type="tel"],
+.compat-item .field input[type="url"] {
        width: 100%;
        margin: 0;
 }
 
        width: 100%;
        margin: 0;
 }
 
+.sidebar-for-errors .attachment-details,
+.sidebar-for-errors .compat-item,
+.sidebar-for-errors .media-sidebar .media-progress-bar,
+.sidebar-for-errors .upload-details {
+       display: none !important;
+}
 
 /**
  * Menu
 
 /**
  * Menu
        right: 0;
        bottom: 0;
        margin: 0;
        right: 0;
        bottom: 0;
        margin: 0;
-       padding: 16px 0;
+       padding: 10px 0;
        background: #f3f3f3;
        border-right-width: 1px;
        border-right-style: solid;
        background: #f3f3f3;
        border-right-width: 1px;
        border-right-style: solid;
        border-right: 0;
 }
 
        border-right: 0;
 }
 
-.media-router > a:active,
-.media-router > a:focus {
+.media-router > a:active {
        outline: none;
 }
 
        outline: none;
 }
 
        top: 0;
        left: 200px;
        right: 0;
        top: 0;
        left: 200px;
        right: 0;
-       height: 56px;
+       height: 50px;
        z-index: 200;
 }
 
 .media-frame-router {
        position: absolute;
        z-index: 200;
 }
 
 .media-frame-router {
        position: absolute;
-       top: 56px;
+       top: 50px;
        left: 200px;
        right: 0;
        height: 36px;
        left: 200px;
        right: 0;
        height: 36px;
 
 .media-frame-content {
        position: absolute;
 
 .media-frame-content {
        position: absolute;
-       top: 90px;
+       top: 84px;
        left: 200px;
        right: 0;
        bottom: 61px;
        left: 200px;
        right: 0;
        bottom: 61px;
 }
 
 .media-frame.hide-router .media-frame-content {
 }
 
 .media-frame.hide-router .media-frame-content {
-       top: 56px;
+       top: 50px;
 }
 
 .media-frame.hide-router .media-frame-router {
 }
 
 .media-frame.hide-router .media-frame-router {
        box-shadow: 0 4px 4px -4px rgba( 0, 0, 0, 0.1 );
 }
 
        box-shadow: 0 4px 4px -4px rgba( 0, 0, 0, 0.1 );
 }
 
+.media-frame-title .dashicons {
+       display: none;
+}
+
 .media-frame-title h1 {
        padding: 0 16px;
        font-size: 22px;
 .media-frame-title h1 {
        padding: 0 16px;
        font-size: 22px;
-       line-height: 60px;
+       line-height: 50px;
        margin: 0;
 }
 
        margin: 0;
 }
 
 .media-frame .search {
        margin-top: 11px;
        padding: 4px;
 .media-frame .search {
        margin-top: 11px;
        padding: 4px;
-       line-height: 18px;
        font-size: 13px;
        color: #464646;
        font-family: "Open Sans", sans-serif;
        font-size: 13px;
        color: #464646;
        font-family: "Open Sans", sans-serif;
  */
 .attachments {
        margin: 0;
  */
 .attachments {
        margin: 0;
-       padding-right: 16px;
        -webkit-overflow-scrolling: touch;
 }
 
        -webkit-overflow-scrolling: touch;
 }
 
 .attachment {
        position: relative;
        float: left;
 .attachment {
        position: relative;
        float: left;
-       padding: 0;
-       margin: 0 10px 20px;
+       padding: 8px;
+       margin: 0;
        color: #464646;
        color: #464646;
+       cursor: pointer;
        list-style: none;
        text-align: center;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        list-style: none;
        text-align: center;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
+       width: 25%;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
+.attachment:focus,
+.selected.attachment:focus,
+.attachment.details:focus {
+       -webkit-box-shadow:
+               inset 0 0 2px 3px #fff,
+               inset 0 0 0 7px #5b9dd9;
+       box-shadow:
+               inset 0 0 2px 3px #fff,
+               inset 0 0 0 7px #5b9dd9;
+       outline: none;
 }
 
 .selected.attachment {
        -webkit-box-shadow:
 }
 
 .selected.attachment {
        -webkit-box-shadow:
-               0 0 0 1px #fff,
-               0 0 0 3px #ccc;
+               inset 0 0 0 5px #fff,
+               inset 0 0 0 7px #ccc;
        box-shadow:
        box-shadow:
-               0 0 0 1px #fff,
-               0 0 0 3px #ccc;
+               inset 0 0 0 5px #fff,
+               inset 0 0 0 7px #ccc;
+}
+
+.attachment.details {
+       -webkit-box-shadow:
+               inset 0 0 0 3px #fff,
+               inset 0 0 0 7px #1e8cbe;
+       box-shadow:
+               inset 0 0 0 3px #fff,
+               inset 0 0 0 7px #1e8cbe;
 }
 
 .attachment-preview {
        position: relative;
 }
 
 .attachment-preview {
        position: relative;
-       width: 199px;
-       height: 199px;
        -webkit-box-shadow:
                inset 0 0 15px rgba( 0, 0, 0, 0.1 ),
                inset 0 0 0 1px rgba( 0, 0, 0, 0.05 );
        -webkit-box-shadow:
                inset 0 0 15px rgba( 0, 0, 0, 0.1 ),
                inset 0 0 0 1px rgba( 0, 0, 0, 0.05 );
        cursor: pointer;
 }
 
        cursor: pointer;
 }
 
+.attachment-preview:before {
+       content: '';
+       display: block;
+       padding-top: 100%;
+}
+
 .attachment .icon {
        margin: 0 auto;
        overflow: hidden;
 .attachment .icon {
        margin: 0 auto;
        overflow: hidden;
-       padding-top: 20%;
 }
 
 .attachment .thumbnail {
 }
 
 .attachment .thumbnail {
-       display: block;
+       overflow: hidden;
        position: absolute;
        top: 0;
        position: absolute;
        top: 0;
+       right: 0;
+       bottom: 0;
        left: 0;
        left: 0;
-       margin: 0 auto;
-       overflow: hidden;
+       opacity: 1;
+       -webkit-transition: opacity .1s;
+       transition: opacity .1s;
+}
+
+.attachment .portrait img {
        max-width: 100%;
        max-width: 100%;
+}
+
+.attachment .landscape img {
        max-height: 100%;
 }
 
        max-height: 100%;
 }
 
-.attachment-preview .thumbnail:after {
+.attachment .thumbnail:after {
        content: '';
        display: block;
        position: absolute;
        content: '';
        display: block;
        position: absolute;
        width: 100%;
        height: 100%;
        -webkit-transform: translate( 50%, 50% );
        width: 100%;
        height: 100%;
        -webkit-transform: translate( 50%, 50% );
-       -ms-transform: translate( 50%, 50% );
+       -ms-transform: translate(50%,50%); /* Fails with spaces?? Weird! */
        transform: translate( 50%, 50% );
 }
 
 .attachment .thumbnail .centered img {
        -webkit-transform: translate( -50%, -50% );
        transform: translate( 50%, 50% );
 }
 
 .attachment .thumbnail .centered img {
        -webkit-transform: translate( -50%, -50% );
-       -ms-transform: translate( -50%, -50% );
+       -ms-transform: translate(-50%,-50%);
        transform: translate( -50%, -50% );
 }
 
        transform: translate( -50%, -50% );
 }
 
+.attachment .thumbnail .centered img.icon {
+       -webkit-transform: translate( -50%, -70% );
+       -ms-transform: translate(-50%,-70%);
+       transform: translate( -50%, -70% );
+}
+
+.ie8 .attachment img.icon {
+       top: 20%;
+       position: relative;
+}
+
 .attachment .filename {
        position: absolute;
        left: 0;
 .attachment .filename {
        position: absolute;
        left: 0;
        bottom: 0;
        overflow: hidden;
        max-height: 100%;
        bottom: 0;
        overflow: hidden;
        max-height: 100%;
-
        word-wrap: break-word;
        text-align: center;
        font-weight: bold;
        word-wrap: break-word;
        text-align: center;
        font-weight: bold;
        padding: 5px 10px;
 }
 
        padding: 5px 10px;
 }
 
-.attachment-preview .thumbnail {
-       width: 199px;
-       height: 199px;
-}
-
 .attachment .thumbnail img {
        position: absolute;
 }
 .attachment .thumbnail img {
        position: absolute;
 }
        height: 24px;
        width: 24px;
        position: absolute;
        height: 24px;
        width: 24px;
        position: absolute;
-       top: -6px;
-       right: -6px;
+       z-index: 10;
+       top: 0;
+       right: 0;
        outline: none;
        background: #eee;
        outline: none;
        background: #eee;
-       -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba( 0, 0, 0, 0.4 );
-       box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba( 0, 0, 0, 0.4 );
+       -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba( 0, 0, 0, 0.15 );
+       box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba( 0, 0, 0, 0.15 );
 }
 
 .attachment .check div {
 }
 
 .attachment .check div {
        display: block;
 }
 
        display: block;
 }
 
-.attachment.details {
-       -webkit-box-shadow: 0 0 0 1px #fff,
-                               0 0 0 5px #1e8cbe;
-       box-shadow: 0 0 0 1px #fff,
-                               0 0 0 5px #1e8cbe;
-}
-
-.attachment.details .check {
+.attachment.details .check,
+.attachment.selected .check:focus,
+.media-frame.mode-grid .attachment.selected .check {
        background-color: #1e8cbe;
        background-color: #1e8cbe;
-       -webkit-box-shadow: 0 0 0 1px #fff,
-                               0 0 0 2px #1e8cbe;
-       box-shadow: 0 0 0 1px #fff,
-                               0 0 0 2px #1e8cbe;
+       -webkit-box-shadow:
+               0 0 0 1px #fff,
+               0 0 0 2px #1e8cbe;
+       box-shadow:
+               0 0 0 1px #fff,
+               0 0 0 2px #1e8cbe;
 }
 
 }
 
-.attachment.details .check div {
+.attachment.details .check div,
+.media-frame.mode-grid .attachment.selected .check div {
        background-position: -21px 0;
 }
 
        background-position: -21px 0;
 }
 
-.attachment.details .check:hover div {
+.attachment.details .check:hover div,
+.attachment.selected .check:focus div,
+.media-frame.mode-grid .attachment.selected .check:hover div {
        background-position: -60px 0;
 }
 
        background-position: -60px 0;
 }
 
        position: relative;
        display: block;
        width: 100%;
        position: relative;
        display: block;
        width: 100%;
-       margin: -1px 0 0;
+       margin: 0;
        padding: 8px;
        font-size: 12px;
        -webkit-border-radius: 0;
        padding: 8px;
        font-size: 12px;
        -webkit-border-radius: 0;
        height: 50px;
 }
 
        height: 50px;
 }
 
+.attachments-browser.hide-sidebar .media-toolbar {
+       right: 0;
+}
+
 .attachments-browser .media-toolbar-primary > .media-button,
 .attachments-browser .media-toolbar-primary > .media-button-group,
 .attachments-browser .media-toolbar-secondary > .media-button,
 .attachments-browser .media-toolbar-secondary > .media-button-group {
 .attachments-browser .media-toolbar-primary > .media-button,
 .attachments-browser .media-toolbar-primary > .media-button-group,
 .attachments-browser .media-toolbar-secondary > .media-button,
 .attachments-browser .media-toolbar-secondary > .media-button-group {
-       margin-top: 10px;
+       margin: 11px 0;
+}
+
+.attachments-browser .attachments {
+       padding: 2px 8px 8px;
 }
 
 .attachments-browser .attachments,
 }
 
 .attachments-browser .attachments,
        right: 300px;
        bottom: 0;
        overflow: auto;
        right: 300px;
        bottom: 0;
        overflow: auto;
+       outline: none;
+}
+
+.attachments-browser .uploader-inline.hidden {
+       display: none;
+}
+
+.uploader-inline .close {
+       background-color: transparent;
+       border: 0;
+       cursor: pointer;
+       height: 48px;
+       position: absolute;
+       right: 0;
+       text-align: center;
+       top: 0;
+       width: 50px;
+       z-index: 1;
+}
+
+.uploader-inline .close:before {
+       font: normal 30px/50px 'dashicons' !important;
+       color: #777;
+       display: inline-block;
+       content: '\f335';
+       font-weight: 300;
+}
+
+.attachments-browser.hide-sidebar .attachments,
+.attachments-browser.hide-sidebar .uploader-inline {
+       right: 0;
+       margin-right: 0;
 }
 
 .attachments-browser .instructions {
 }
 
 .attachments-browser .instructions {
        margin-right: 0.5em;
 }
 
        margin-right: 0.5em;
 }
 
+.attachments-browser .no-media {
+       padding: 2em 0 0 2em;
+}
+
 /**
  * Progress Bar
  */
 /**
  * Progress Bar
  */
        background: #1e8cbe;
        -webkit-border-radius: 10px;
        border-radius: 10px;
        background: #1e8cbe;
        -webkit-border-radius: 10px;
        border-radius: 10px;
-       -webkit-transition:         width 300ms;
-       transition:         width 300ms;
+       -webkit-transition: width 300ms;
+       transition: width 300ms;
 }
 
 .media-uploader-status .media-progress-bar {
 }
 
 .media-uploader-status .media-progress-bar {
 
 .media-sidebar .media-uploader-status {
        border-bottom: 1px solid #dfdfdf;
 
 .media-sidebar .media-uploader-status {
        border-bottom: 1px solid #dfdfdf;
-       -webkit-box-shadow: 0 1px 0 #fff;
-       box-shadow: 0 1px 0 #fff;
 }
 
 .uploader-inline .media-uploader-status h3 {
 }
 
 .uploader-inline .media-uploader-status h3 {
        left: 0;
        right: 0;
        -webkit-transform: translateY( -50% );
        left: 0;
        right: 0;
        -webkit-transform: translateY( -50% );
-       -ms-transform: translateY( -50% );
+       -ms-transform: translateY(-50%);
        transform: translateY( -50% );
        font-size: 40px;
        color: #fff;
        transform: translateY( -50% );
        font-size: 40px;
        color: #fff;
 }
 
 .media-frame .uploader-inline {
 }
 
 .media-frame .uploader-inline {
-       margin: 20px;
-       padding: 20px;
+       margin-bottom: 20px;
+       padding: 0;
        text-align: center;
 }
 
        text-align: center;
 }
 
 }
 
 .uploader-inline-content .upload-ui {
 }
 
 .uploader-inline-content .upload-ui {
-       margin: 4em 0;
+       margin: 2em 0;
 }
 
 .uploader-inline-content .post-upload-ui {
 }
 
 .uploader-inline-content .post-upload-ui {
        font-size: 20px;
        line-height: 28px;
        font-weight: 400;
        font-size: 20px;
        line-height: 28px;
        font-weight: 400;
-       margin-bottom: 1.6em;
+       margin: 0;
 }
 
 .uploader-inline .has-upload-message .upload-instructions {
 }
 
 .uploader-inline .has-upload-message .upload-instructions {
 
 .uploader-inline p {
        font-size: 12px;
 
 .uploader-inline p {
        font-size: 12px;
+       margin: 0.5em 0;
 }
 
 .uploader-inline .media-progress-bar {
 }
 
 .uploader-inline .media-progress-bar {
 .media-selection .attachments {
        display: inline-block;
        height: 48px;
 .media-selection .attachments {
        display: inline-block;
        height: 48px;
-       margin-top: 5px;
+       margin: 6px;
+       padding: 0;
        overflow: hidden;
        vertical-align: top;
 }
 
        overflow: hidden;
        vertical-align: top;
 }
 
+.media-selection .attachment {
+       width: 48px;
+       padding: 0;
+       margin: 0;
+       -webkit-box-shadow: none;
+       box-shadow: none;
+}
+
+.media-selection .attachment .thumbnail {
+       top: 4px;
+       right: 4px;
+       bottom: 4px;
+       left: 4px;
+}
+
 .media-selection .attachment .icon {
        width: 50%;
 }
 
 .media-selection .attachment .icon {
        width: 50%;
 }
 
-.attachment.selection.selected {
+.media-selection .attachment-preview {
        -webkit-box-shadow: none;
        box-shadow: none;
        -webkit-box-shadow: none;
        box-shadow: none;
+       background: none;
 }
 
 }
 
-.attachment.selection.details {
-       -webkit-box-shadow:
-               0 0 0 1px #fff,
-               0 0 0 4px #1e8cbe;
-       box-shadow:
-               0 0 0 1px #fff,
-               0 0 0 4px #1e8cbe;
-}
-
-.media-selection .attachment.selection.details {
+.media-selection .attachment.selection.details .thumbnail {
        -webkit-box-shadow:
                0 0 0 1px #fff,
                0 0 0 3px #1e8cbe;
        -webkit-box-shadow:
                0 0 0 1px #fff,
                0 0 0 3px #1e8cbe;
 /**
  * Spinner
  */
 /**
  * Spinner
  */
-
 .media-frame .spinner {
        background: url(../images/spinner.gif) no-repeat;
        -webkit-background-size: 20px 20px;
 .media-frame .spinner {
        background: url(../images/spinner.gif) no-repeat;
        -webkit-background-size: 20px 20px;
        margin-top: 14px;
 }
 
        margin-top: 14px;
 }
 
-.media-sidebar .settings-save-status {
-       background: #f5f5f5;
+/**
+ * Attachment Details
+ */
+.attachment-details {
+       position: relative;
+       overflow: auto;
+}
+
+.attachment-details .settings-save-status {
        float: right;
        text-transform: none;
        z-index: 10;
 }
 
        float: right;
        text-transform: none;
        z-index: 10;
 }
 
-.media-sidebar .settings-save-status .spinner {
+.attachment-details .settings-save-status .spinner {
        margin: 0 5px 0;
 }
 
        margin: 0 5px 0;
 }
 
-.media-sidebar .settings-save-status .saved {
+.attachment-details .settings-save-status .saved {
        float: right;
        display: none;
 }
 
        float: right;
        display: none;
 }
 
-.media-sidebar .save-waiting .settings-save-status .spinner,
-.media-sidebar .save-complete .settings-save-status .saved {
+.attachment-details.save-waiting .settings-save-status .spinner,
+.attachment-details.save-complete .settings-save-status .saved {
        display: block;
 }
 
        display: block;
 }
 
-/**
- * Attachment Details
- */
-.attachment-details {
-       position: relative;
-       overflow: auto;
-}
-
 .attachment-info {
        overflow: hidden;
        min-height: 60px;
 .attachment-info {
        overflow: hidden;
        min-height: 60px;
        margin-top: 35px;
 }
 
        margin-top: 35px;
 }
 
-.attachment-info .thumbnail:after {
+.attachment-info .thumbnail-image:after {
        content: '';
        display: block;
        position: absolute;
        content: '';
        display: block;
        position: absolute;
 .attachment-info .edit-attachment,
 .attachment-info .refresh-attachment,
 .attachment-info .delete-attachment,
 .attachment-info .edit-attachment,
 .attachment-info .refresh-attachment,
 .attachment-info .delete-attachment,
-.attachment-info .trash-attachment {
+.attachment-info .trash-attachment,
+.attachment-info .untrash-attachment {
        display: block;
        text-decoration: none;
        white-space: nowrap;
        display: block;
        text-decoration: none;
        white-space: nowrap;
        display: block;
 }
 
        display: block;
 }
 
-.attachment-info .delete-attachment,
-.attachment-info .trash-attachment {
+.media-modal .delete-attachment,
+.media-modal .trash-attachment,
+.media-modal .untrash-attachment {
        color: #bc0b0b;
 }
 
        color: #bc0b0b;
 }
 
-.attachment-info .delete-attachment:hover,
-.attachment-info .trash-attachment:hover {
+.media-modal .delete-attachment:hover,
+.media-modal .trash-attachment:hover,
+.media-modal .untrash-attachment:hover {
        color: red;
 }
 
        color: red;
 }
 
 /**
  * Image Editor
  */
 /**
  * Image Editor
  */
-
-.media-frame .imgedit-wrap {
+.media-modal .imgedit-wrap {
        position: static;
 }
 
        position: static;
 }
 
-.media-frame .imgedit-wait {
+.media-modal .imgedit-wait {
        height: auto !important;
        right: 0;
        bottom: 0;
        left: 0;
 }
 
        height: auto !important;
        right: 0;
        bottom: 0;
        left: 0;
 }
 
-.media-frame .imgedit-wrap .imgedit-panel-content {
+.media-modal .imgedit-wrap .imgedit-panel-content {
        padding: 16px;
        position: absolute;
        top: 0;
        padding: 16px;
        position: absolute;
        top: 0;
        overflow: auto;
 }
 
        overflow: auto;
 }
 
-.media-frame .imgedit-wrap .imgedit-settings {
+.media-modal .imgedit-wrap .imgedit-settings {
        background: #f3f3f3;
        border-left: 1px solid #ddd;
        padding: 0 16px 16px;
        background: #f3f3f3;
        border-left: 1px solid #ddd;
        padding: 0 16px 16px;
        overflow: auto;
 }
 
        overflow: auto;
 }
 
-.media-frame .imgedit-group {
+.media-modal .imgedit-group {
        background: none;
        border: none;
        border-bottom: 1px solid #ddd;
        background: none;
        border: none;
        border-bottom: 1px solid #ddd;
        margin-bottom: 16px;
        padding: 0;
        padding-bottom: 16px;
        margin-bottom: 16px;
        padding: 0;
        padding-bottom: 16px;
+       position: relative; /* RTL fix, #WP29352 */
 }
 
 }
 
-.media-frame .imgedit-group:last-of-type {
+.media-modal .imgedit-group:last-of-type {
        border: none;
        margin: 0;
        padding: 0;
 }
 
        border: none;
        margin: 0;
        padding: 0;
 }
 
-.media-frame .imgedit-group-top h3 {
+.media-modal .imgedit-group-top h3 {
        text-transform: uppercase;
        font-size: 12px;
        color: #666;
        text-transform: uppercase;
        font-size: 12px;
        color: #666;
        margin-top: 24px;
 }
 
        margin-top: 24px;
 }
 
-.media-frame .imgedit-group-top h3 a {
+.media-modal .imgedit-group-top h3 a {
        text-decoration: none;
        color: #666;
 }
 
        text-decoration: none;
        color: #666;
 }
 
-.media-frame .imgedit-help-toggle {
+.media-modal .imgedit-help-toggle {
        margin-top: -2px;
        cursor: pointer;
        color: #666;
 }
 
        margin-top: -2px;
        cursor: pointer;
        color: #666;
 }
 
-.media-frame .imgedit-help-toggled span.dashicons:before {
+.media-modal .imgedit-help-toggled span.dashicons:before {
        content: '\f142';
 }
 
        content: '\f142';
 }
 
-.media-frame .imgedit-group img {
+.media-modal .imgedit-group img {
        margin-top: 5px;
 }
 
        margin-top: 5px;
 }
 
-.media-frame .imgedit-wrap div.updated {
+.media-modal .imgedit-wrap div.updated {
        margin: 0;
        margin-bottom: 16px;
 }
        margin: 0;
        margin-bottom: 16px;
 }
 
 .media-frame .embed-url .spinner {
        position: absolute;
 
 .media-frame .embed-url .spinner {
        position: absolute;
-       top: 16px;
+       top: 32px;
        right: 26px;
 }
 
        right: 26px;
 }
 
 .embed-link-settings,
 .embed-media-settings {
        position: absolute;
 .embed-link-settings,
 .embed-media-settings {
        position: absolute;
-       top: 60px;
+       top: 70px;
        left: 0;
        right: 0;
        bottom: 0;
        left: 0;
        right: 0;
        bottom: 0;
        overflow: auto;
 }
 
        overflow: auto;
 }
 
+.embed-preview img, .embed-preview iframe, .embed-preview embed {
+       max-width: 100%;
+}
+
+.embed-preview img {
+       height: auto;
+}
+
 .image-details .media-modal {
        left: 140px;
        right: 140px;
 }
 
 .image-details .media-modal {
        left: 140px;
        right: 140px;
 }
 
-.image-details .media-frame-menu {
-       display: none;
-}
-
 .image-details .media-frame-title,
 .image-details .media-frame-content,
 .image-details .media-frame-router {
 .image-details .media-frame-title,
 .image-details .media-frame-content,
 .image-details .media-frame-router {
        padding: 0;
 }
 
        padding: 0;
 }
 
+.image-details .embed-media-settings,
+.image-details .embed-media-settings div {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+}
+
 .image-details .column-settings {
        background: #f3f3f3;
        border-right: 1px solid #ddd;
        min-height: 100%;
 .image-details .column-settings {
        background: #f3f3f3;
        border-right: 1px solid #ddd;
        min-height: 100%;
-       width: 52%;
+       width: 55%;
        position: absolute;
        top: 0;
        left: 0;
        position: absolute;
        top: 0;
        left: 0;
 }
 
 .image-details .column-image {
 }
 
 .image-details .column-image {
-       width: 48%;
+       width: 45%;
        position: absolute;
        position: absolute;
-       left: 52%;
+       left: 55%;
        top: 0;
 }
 
        top: 0;
 }
 
        display: block;
 }
 
        display: block;
 }
 
-.image-details .advanced-toggle::after {
+.image-details .advanced-toggle:after {
        font: normal 20px/1 'dashicons';
        speak: none;
        vertical-align: top;
        font: normal 20px/1 'dashicons';
        speak: none;
        vertical-align: top;
        margin-top: -2px;
 }
 
        margin-top: -2px;
 }
 
-.image-details .advanced-visible .advanced-toggle::after {
+.image-details .advanced-visible .advanced-toggle:after {
        content: '\f142';
        content: '\f142';
-       margin-top: 0;
 }
 
 .image-details .embed-media-settings .size {
 }
 
 .image-details .embed-media-settings .size {
        margin: 26px 6px 0 6px;
 }
 
        margin: 26px 6px 0 6px;
 }
 
-.image-details .custom-size::after {
-    content: '';
+.image-details .custom-size:after {
+       content: '';
        display: table;
        display: table;
-    clear: both;
+       clear: both;
 }
 
 .media-embed .thumbnail {
 }
 
 .media-embed .thumbnail {
        left: 0;
        right: 0;
        -webkit-transform: translateY( -50% );
        left: 0;
        right: 0;
        -webkit-transform: translateY( -50% );
-       -ms-transform: translateY( -50% );
+       -ms-transform: translateY(-50%);
        transform: translateY( -50% );
        font-size: 3em;
        line-height: 1.3;
        transform: translateY( -50% );
        font-size: 3em;
        line-height: 1.3;
        max-width: 55%;
 }
 
        max-width: 55%;
 }
 
-.ie7 .media-sidebar .setting input,
+.ie7 .media-sidebar .setting input[type="text"],
+.ie7 .media-sidebar .setting input[type="password"],
+.ie7 .media-sidebar .setting input[type="email"],
+.ie7 .media-sidebar .setting input[type="number"],
+.ie7 .media-sidebar .setting input[type="search"],
+.ie7 .media-sidebar .setting input[type="tel"],
+.ie7 .media-sidebar .setting input[type="url"],
 .ie7 .media-sidebar .setting textarea {
        width: 55%;
 }
 .ie7 .media-sidebar .setting textarea {
        width: 55%;
 }
 .rtl .media-frame input[type="search"],
 .rtl .media-frame input[type="email"],
 .rtl .media-frame input[type="url"],
 .rtl .media-frame input[type="search"],
 .rtl .media-frame input[type="email"],
 .rtl .media-frame input[type="url"],
+.rtl .media-frame input[type="tel"],
 .rtl .media-frame textarea,
 .rtl .media-frame select {
        font-family: Tahoma, sans-serif;
 .rtl .media-frame textarea,
 .rtl .media-frame select {
        font-family: Tahoma, sans-serif;
        font-family: Arial, sans-serif;
 }
 
        font-family: Arial, sans-serif;
 }
 
-
-
-
-@media only screen and (max-width: 960px) {
+@media only screen and (max-width: 940px) {
        .media-frame-content .media-toolbar-primary .search,
        .media-frame-content .media-toolbar-secondary .attachment-filters {
        .media-frame-content .media-toolbar-primary .search,
        .media-frame-content .media-toolbar-secondary .attachment-filters {
-               max-width: 120px;
+               max-width: 134px;
        }
 }
 
        }
 }
 
  * Responsive layout
  */
 @media only screen and (max-width: 900px) {
  * Responsive layout
  */
 @media only screen and (max-width: 900px) {
-       .media-frame-menu {
-               width: 139px;
+
+       /* Drop-down menu */
+       .media-frame:not(.hide-menu) .media-frame-title,
+       .media-frame:not(.hide-menu) .media-frame-router,
+       .media-frame:not(.hide-menu) .media-frame-content,
+       .media-frame:not(.hide-menu) .media-frame-toolbar {
+               left: 0;
        }
 
        }
 
-       .media-menu > a {
-               padding: 4px 5px;
+       .media-frame:not(.hide-menu) .media-frame-menu {
+               position: static;
+               width: 0;
        }
 
        }
 
-       .media-frame-title,
-       .media-frame-router,
-       .media-frame-content,
-       .media-frame-toolbar {
-               left: 140px;
+       .media-frame:not(.hide-menu) .media-menu {
+               width: auto;
+               max-width: 80%;
+               overflow: auto;
+               z-index: 2000;
+               top: 50px;
+               left: -300px;
+               right: auto;
+               bottom: auto;
+               padding: 5px 0;
+               border: 1px solid #ccc;
+       }
+
+       .media-frame:not(.hide-menu) .media-menu.visible {
+               left: 0;
+       }
+
+       .media-frame:not(.hide-menu) .media-menu > a {
+               padding: 12px 16px;
+               font-size: 16px;
+       }
+
+       .media-frame:not(.hide-menu) .media-menu > a.active {
+               display: none;
+       }
+
+       .media-frame:not(.hide-menu) .media-menu .separator {
+               margin: 5px 10px;
        }
 
        }
 
+       .media-frame:not(.hide-menu) .media-frame-title {
+               left: 0;
+               color: #21759b;
+       }
+
+       .media-frame:not(.hide-menu) .media-frame-title .dashicons {
+               display: inline-block;
+               line-height: 50px;
+       }
+
+       .media-frame:not(.hide-menu) .media-frame-title h1 {
+               line-height: 3;
+               font-size: 18px;
+               float: left;
+               cursor: pointer;
+       }
+       /* End drop-down menu */
+
        .media-sidebar {
        .media-sidebar {
-               width: 159px;
-               padding: 0 10px 24px;
+               width: 230px;
        }
 
        .attachments-browser .attachments,
        .attachments-browser .uploader-inline,
        .attachments-browser .media-toolbar {
        }
 
        .attachments-browser .attachments,
        .attachments-browser .uploader-inline,
        .attachments-browser .media-toolbar {
-               right: 180px;
+               right: 262px;
+       }
+
+       .media-sidebar .setting,
+       .attachment-details .setting {
+               margin: 6px 0px;
        }
 
        .media-sidebar .setting input,
        .media-sidebar .setting textarea,
        .media-sidebar .setting span,
        }
 
        .media-sidebar .setting input,
        .media-sidebar .setting textarea,
        .media-sidebar .setting span,
+       .attachment-details .setting input,
+       .attachment-details .setting textarea,
+       .attachment-details .setting span,
        .compat-item label span {
                float: none;
        }
 
        .media-sidebar .setting span,
        .compat-item label span {
                float: none;
        }
 
        .media-sidebar .setting span,
+       .attachment-details .setting span,
        .compat-item label span {
                text-align: inherit;
        .compat-item label span {
                text-align: inherit;
-               display: block;
                min-height: 16px;
                margin: 0;
                padding: 8px 2px 0;
        }
 
                min-height: 16px;
                margin: 0;
                padding: 8px 2px 0;
        }
 
-       .media-sidebar .setting input,
+       .media-sidebar .setting .value,
+       .attachment-details .setting .value {
+               float: none;
+               width: auto;
+       }
+
+       .media-sidebar .setting input[type="text"],
+       .media-sidebar .setting input[type="password"],
+       .media-sidebar .setting input[type="email"],
+       .media-sidebar .setting input[type="number"],
+       .media-sidebar .setting input[type="search"],
+       .media-sidebar .setting input[type="tel"],
+       .media-sidebar .setting input[type="url"],
        .media-sidebar .setting textarea,
        .media-sidebar .setting textarea,
-       .media-sidebar .setting select {
+       .media-sidebar .setting select,
+       .attachment-details .setting input[type="text"],
+       .attachment-details .setting input[type="password"],
+       .attachment-details .setting input[type="email"],
+       .attachment-details .setting input[type="number"],
+       .attachment-details .setting input[type="search"],
+       .attachment-details .setting input[type="tel"],
+       .attachment-details .setting input[type="url"],
+       .attachment-details .setting textarea,
+       .attachment-details .setting select {
+               float: none;
                width: 98%;
                max-width: none;
                width: 98%;
                max-width: none;
+               height: auto;
        }
 
        }
 
-       .media-sidebar .setting select.columns {
+       .media-sidebar .setting select.columns,
+       .attachment-details .setting select.columns {
                width: auto;
        }
 
                width: auto;
        }
 
                padding: 3px 6px;
        }
 
                padding: 3px 6px;
        }
 
-       .media-frame-content .attachment .icon {
-               top: 40%;
+       .image-details .column-image {
+               width: 30%;
+               left: 70%;
+       }
+
+       .image-details .column-settings {
+               width: 70%;
        }
 
        .image-details .media-modal {
        }
 
        .image-details .media-modal {
                margin-left: 20px;
        }
 
                margin-left: 20px;
        }
 
+       .collection-settings .setting input[type="checkbox"] {
+               margin-top: 0;
+       }
+
        .media-selection {
                min-width: 120px;
        }
        .media-selection {
                min-width: 120px;
        }
                display: none;
        }
 
                display: none;
        }
 
-       .media-menu .separator {
-               margin: 12px 10px;
+       .media-modal .attachments-browser .media-toolbar-primary,
+       .media-modal .attachments-browser .media-toolbar-secondary {
+               width: 50%;
        }
 
        }
 
-       .media-modal-close {
-               right: 10px;
+       .media-modal .attachments-browser .media-toolbar .search {
+               max-width: 100%;
+               height: auto;
+               float: right;
+       }
+
+       .media-modal .attachments-browser .media-toolbar .attachment-filters {
+               margin: 11px 0 0;
+               height: auto;
+               max-width: 65%;
+               max-width: -webkit-calc(100% - 38px);
+               max-width: calc(100% - 38px);
+       }
+
+       .media-modal .attachments-browser .media-toolbar .spinner {
+               margin: 14px 8px 0;
        }
 
        /* Text inputs need to be 16px, or they force zooming on iOS */
        }
 
        /* Text inputs need to be 16px, or they force zooming on iOS */
 
 /* Responsive on portrait and landscape */
 @media only screen and (max-width: 640px), screen and (max-height: 400px) {
 
 /* Responsive on portrait and landscape */
 @media only screen and (max-width: 640px), screen and (max-height: 400px) {
-
-       /* Media tabs on the top */
-       .media-frame-content .media-toolbar .instructions {
-               display: none;
+       /* Full-bleed modal */
+       .media-modal,
+       .image-details .media-modal {
+               position: fixed;
+               top: 0;
+               left: 0;
+               right: 0;
+               bottom: 0;
        }
 
        }
 
-       .media-frame-menu {
-               width: auto;
-               bottom: auto;
-               right: 0;
-               height: 60px;
+       .media-modal-backdrop {
+               position: fixed;
        }
 
        }
 
-       .media-menu {
-               border-right: none;
-               position: relative;
-               border-bottom: 1px solid #dddddd;
-               overflow: hidden;
-               padding: 10px 0 10px 10px;
+       .media-sidebar {
+               z-index: 1900;
+               max-width: 70%;
+               bottom: 120%;
+               -webkit-box-sizing: border-box;
+               -moz-box-sizing: border-box;
+               box-sizing: border-box;
+               padding-bottom: 0;
        }
 
        }
 
-       .media-menu a {
-               float: left;
-               width: 42%;
-               white-space: nowrap;
-               text-overflow: ellipsis;
-               overflow: hidden;
+       .media-sidebar.visible {
+               bottom: 0;
        }
 
        }
 
-       .media-frame-title {
-               display: none;
+       .attachments-browser .attachments,
+       .attachments-browser .uploader-inline,
+       .attachments-browser .media-toolbar {
+               right: 0;
        }
 
        .image-details .media-frame-title {
        }
 
        .image-details .media-frame-title {
                font-size: 14px;
        }
 
                font-size: 14px;
        }
 
-       .media-frame-toolbar {
-               position: absolute;
-               bottom: 0px;
-               left: 0;
-               right: 0;
-               background: #FFF;
-               border-top: 1px solid #DEDEDE;
-       }
-
-       .media-toolbar {
+       .image-details .column-image,
+       .image-details .column-settings {
+               width: 100%;
                position: relative;
                position: relative;
+               left: 0;
        }
 
        }
 
-       .media-frame {
-               overflow: hidden;
-       }
-
-       .attachments-browser .attachments {
-               top: 42px;
-       }
-
-       .attachment-details h3 {
-               margin-top: 45px;
-       }
-
-       /* Shorten right-side links so they don't overlap the close button */
-       .media-menu a:nth-child(2),
-       .media-menu a:last-child {
-               width: 40%;
+       .image-details .column-settings {
+               padding: 4px 0;
        }
 
        }
 
-       .media-menu .separator {
+       /* Media tabs on the top */
+       .media-frame-content .media-toolbar .instructions {
                display: none;
        }
                display: none;
        }
+}
 
 
-       .media-frame-title {
-               top: 72px;
-               left: auto;
-               height: auto;
-       }
-
-       .media-frame-title h1 {
-               line-height: 3;
-               font-size: 18px;
+/* Landscape specific header override */
+@media screen and (max-height: 400px) {
+       .media-menu {
+               padding: 0;
        }
 
        .media-frame-router {
        }
 
        .media-frame-router {
-               top: 84px;
-               left: 0;
+               top: 44px;
        }
 
        .media-frame-content {
        }
 
        .media-frame-content {
-               left: 0;
-               top: 118px;
+               top: 78px;
        }
 
        }
 
-       .image-details .media-frame.hide-router .media-frame-content {
+       .attachments-browser .attachments {
                top: 40px;
        }
 
                top: 40px;
        }
 
-       .media-frame .attachments-browser {
-               padding-bottom: 300px;
-       }
-
-       .media-sidebar {
-               border-bottom: 1px solid #dddddd;
-       }
-
-       .media-modal {
-               width: auto;
-       }
-
-       .media-toolbar-primary, .media-toolbar-secondary {
-               height: auto;
-       }
-
-       .uploader-inline h3 {
-               margin: 0 0 .8em 0;
-       }
-
-       .uploader-inline-content {
-               top: auto;
-       }
-
-       .uploader-inline-content .upload-ui {
-               margin: 0;
-       }
-
-       .attachments-browser .attachments, .attachments-browser .uploader-inline {
-               position: relative;
-               margin-right: 180px;
+       /* Prevent unnecessary scrolling on title input */
+       .embed-link-settings {
+               overflow: visible;
        }
        }
+}
 
 
-       /* Full-bleed modal */
-       .media-modal,
-       .image-details .media-modal {
-               position: fixed;
-               top: 0;
-               left: 0;
-               right: 0;
-               bottom: 0;
+@media only screen and (max-width: 480px) {
+       .media-frame-content .media-toolbar .search,
+       .media-frame-content .media-toolbar .attachment-filters {
+               max-width: 90px;
        }
 
        }
 
-       .media-modal-backdrop {
-               position: fixed;
+       .media-modal-close {
+               top: 5px;
+               right: 5px;
        }
 
        }
 
-       .attachments-browser .attachment,
-       .attachments-browser .attachment-preview {
-               max-width: 100%;
+       .media-modal .media-frame-title {
+               height: 40px;
        }
 
        }
 
-       .attachments-browser .media-toolbar-primary input.search {
-               max-width: 150px;
+       .media-modal .media-frame-title h1,
+       .media-frame:not(.hide-menu) .media-frame-title h1 {
+               font-size: 18px;
+               line-height: 40px;
        }
 
        }
 
-       .uploader-inline-content {
-               position: relative;
+       .media-frame:not(.hide-menu) .media-frame-title .dashicons {
+               line-height: 40px;
        }
 
        }
 
-       .media-sidebar .setting input[type="checkbox"],
-       .media-sidebar .field input[type="checkbox"] {
-               width: 25px;
+       .media-frame-router,
+       .media-frame:not(.hide-menu) .media-menu {
+               top: 40px;
        }
 
        }
 
-       /* Image From Link */
-       .embed-link-settings,
-       .embed-media-settings {
-               padding-bottom: 52px;
+       .media-frame-content {
+               top: 74px;
        }
 
        }
 
-       .image-details .column-settings,
-       .image-details .column-image {
-               position: relative;
-               padding: 10px 0 20px 0;
-               left: 0;
-               width: 100%;
-               min-height: inherit;
+       .media-frame.hide-router .media-frame-content {
+               top: 40px;
        }
        }
+}
 
 
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
 
 
-       /* Gallery */
-       .media-frame.hide-router .media-frame-content {
-               top: 73px;
-               border-top: none;
+       .media-modal-icon {
+               background-image: url(../images/uploader-icons-2x.png);
+               -webkit-background-size: 134px 15px;
+               background-size: 134px 15px;
        }
 
        }
 
-       .collection-settings h3 {
-               margin-top: 45px;
+       .media-frame .spinner {
+               background-image: url(../images/spinner-2x.gif);
        }
        }
-
 }
 
 }
 
-/* Landscape specific header override */
-@media screen and (max-height: 400px) {
-       .media-menu {
-               padding: 0 0 0 10px;
-       }
+.media-frame-content[data-columns="1"] .attachment {
+       width: 100%;
+}
 
 
-       .media-menu a {
-               float: left;
-               width: 21%;
-               white-space: nowrap;
-               text-overflow: ellipsis;
-               overflow: hidden;
-               padding: 10px inherit;
-       }
+.media-frame-content[data-columns="2"] .attachment {
+       width: 50%;
+}
 
 
-       .media-menu a:nth-child(2),
-       .media-menu a:last-child {
-               width: 21%;
-       }
+.media-frame-content[data-columns="3"] .attachment {
+       width: 33.33%;
+}
 
 
-       .media-modal-close {
-               top: 2px;
-       }
+.media-frame-content[data-columns="4"] .attachment {
+       width: 25%;
+}
 
 
-       .media-frame-router {
-               top: 44px;
-       }
+.media-frame-content[data-columns="5"] .attachment {
+       width: 20%;
+}
 
 
-       .media-frame-content {
-               top: 78px;
-       }
+.media-frame-content[data-columns="6"] .attachment {
+       width: 16.66%;
+}
 
 
-       .attachments-browser .attachments {
-               top: 2px;
-       }
+.media-frame-content[data-columns="7"] .attachment {
+       width: 14.28%;
+}
 
 
-       /* Prevent unnecessary scrolling on title input */
-       .embed-link-settings {
-               overflow: visible;
-       }
+.media-frame-content[data-columns="8"] .attachment {
+       width: 12.5%;
 }
 
 }
 
-@media only screen and (max-width: 680px) {
-       .media-frame-content .media-toolbar .search,
-       .media-frame-content .media-toolbar .attachment-filters {
-               max-width: 85px;
-       }
+.media-frame-content[data-columns="9"] .attachment {
+       width: 11.11%;
 }
 
 }
 
-/**
- * HiDPI Displays
- */
-@media print,
-  (-o-min-device-pixel-ratio: 5/4),
-  (-webkit-min-device-pixel-ratio: 1.25),
-  (min-resolution: 120dpi) {
+.media-frame-content[data-columns="10"] .attachment {
+       width: 10%;
+}
 
 
-       .media-modal-icon {
-               background-image: url(../images/uploader-icons-2x.png);
-               -webkit-background-size: 134px 15px;
-               background-size: 134px 15px;
-       }
+.media-frame-content[data-columns="11"] .attachment {
+       width: 9.09%;
+}
 
 
-       .media-frame .spinner {
-               background-image: url(../images/spinner-2x.gif);
-       }
+.media-frame-content[data-columns="12"] .attachment {
+       width: 8.33%;
 }
 }
index 5e20ea54c37a62be46b0e26183e29bc1cd59c111..66caf7a0adec1d95dbec2aa73e6e2278ad9b4588 100644 (file)
@@ -1 +1 @@
-.media-modal *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.media-frame,.media-modal{font-family:"Open Sans",sans-serif;font-size:12px}.media-frame input,.media-frame textarea{padding:6px 8px;line-height:16px}.media-frame select,.wp-admin .media-frame select{line-height:28px;margin-top:3px}.media-frame a{border-bottom:0;color:#21759b}.media-frame a:hover{color:#d54e21}.media-frame a.button{color:#333}.media-frame a.button:hover{color:#222}.media-frame a.button-primary,.media-frame a.button-primary:hover{color:#fff}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-family:"Open Sans",sans-serif;font-size:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#dfdfdf}.media-frame select{height:24px;padding:2px}.media-frame input:disabled,.media-frame input[readonly],.media-frame textarea:disabled,.media-frame textarea[readonly]{background-color:#eee}.media-frame input[type=search]{-webkit-appearance:textfield}.media-frame :-moz-placeholder{color:#a9a9a9}.media-frame .hidden{display:none}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.meta-box-sortables.ui-sortable{-ms-touch-action:auto;touch-action:auto}.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.media-modal{position:fixed;top:30px;left:30px;right:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;text-decoration:none;top:5px;right:10px;width:30px;height:30px;z-index:1000}.media-modal-close span.media-modal-icon{display:block;margin:8px auto 0;width:15px;height:15px;background-image:none}.media-modal-close .media-modal-icon:before{content:'\f158';font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#666}.media-modal-close:hover .media-modal-icon:before{color:#2ea2cc}.media-modal-close:active{outline:0}.media-modal-content{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;min-height:300px;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.7);box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fcfcfc;-webkit-font-smoothing:subpixel-antialiased}.media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;left:0;right:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dfdfdf;overflow:hidden}.media-toolbar-primary{float:right;height:100%}.media-toolbar-secondary{float:left;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-left:10px;float:left;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-right:10px;float:left;margin-top:15px}.media-sidebar{position:absolute;top:0;right:0;bottom:0;width:267px;padding:0 16px 24px;z-index:75;background:#f3f3f3;border-left:1px solid #ddd;overflow:auto;-webkit-overflow-scrolling:touch}.hide-toolbar .media-sidebar{bottom:0}.media-sidebar .sidebar-title{font-size:20px;margin:0;padding:12px 10px 10px;line-height:28px}.media-sidebar .sidebar-content{padding:0 10px;margin-bottom:130px}.media-sidebar .search{display:block;width:100%}.image-details h3,.media-sidebar h3{position:relative;font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}.media-sidebar .setting{display:block;float:left;width:100%;margin:1px 0}.media-sidebar .setting label{display:block}.media-sidebar .setting .link-to-custom{margin:3px 0}.media-sidebar .setting span{min-width:30%;margin-right:4%;font-size:12px}.media-sidebar .setting select{max-width:65%}.media-sidebar .field input[type=checkbox],.media-sidebar .setting input[type=checkbox]{width:16px;float:none;margin:8px 3px 0;padding:0}.compat-item label span,.media-sidebar .setting span{float:left;min-height:22px;padding-top:8px;line-height:16px;text-align:right;font-weight:400;color:#666}.media-sidebar .setting input,.media-sidebar .setting textarea{margin:1px;width:65%;float:right}.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.media-sidebar select{margin-top:3px}.compat-item{float:left;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-right:4%;float:left;text-align:right}.compat-item .label span{display:block;width:100%}.compat-item .field{float:right;width:66%}.compat-item .field input{width:100%;margin:0}.media-menu{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:16px 0;background:#f3f3f3;border-right-width:1px;border-right-style:solid;border-right-color:#ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-menu>a{display:block;position:relative;padding:8px 20px;margin:0;line-height:18px;font-size:14px;color:#0074a2;text-decoration:none}.media-menu>a:hover{color:#21759B;background:rgba(0,0,0,.04)}.media-menu>a:active{outline:0}.media-menu .active,.media-menu .active:hover{color:#222;font-weight:700}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #ddd}.media-router{position:relative;padding:0 6px;margin:0;clear:both;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-router a{-webkit-transition:none;transition:none}.media-router>a{position:relative;float:left;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none}.media-router>a:last-child{border-right:0}.media-router>a:active,.media-router>a:focus{outline:0}.media-router .active,.media-router .active:hover{color:#333}.media-router .active,.media-router>a.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:0}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.media-frame-menu{position:absolute;top:0;left:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;left:200px;right:0;height:56px;z-index:200}.media-frame-router{position:absolute;top:56px;left:200px;right:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:90px;left:200px;right:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.media-frame-toolbar{position:absolute;left:200px;right:0;bottom:0;height:60px;z-index:100}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{left:0}.media-frame.hide-menu .media-frame-menu{left:-200px}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-toolbar .media-frame-toolbar{bottom:-61px}.media-frame.hide-router .media-frame-content{top:56px}.media-frame.hide-router .media-frame-router{display:none}.media-frame.hide-router .media-frame-title{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 4px 4px -4px rgba(0,0,0,.1);box-shadow:0 4px 4px -4px rgba(0,0,0,.1)}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:60px;margin:0}.media-frame-title .suggested-dimensions{font-size:14px;float:right;margin-right:20px}.media-frame-content .crop-content{height:100%}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;left:50%;margin-left:-150px;margin-right:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-right:10px}.media-frame .search{margin-top:11px;padding:4px;line-height:18px;font-size:13px;color:#464646;font-family:"Open Sans",sans-serif;-webkit-appearance:none}.media-toolbar-secondary .search{margin-right:16px}.attachments{margin:0;padding-right:16px;-webkit-overflow-scrolling:touch}.attachment{position:relative;float:left;padding:0;margin:0 10px 20px;color:#464646;list-style:none;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.selected.attachment{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #ccc;box-shadow:0 0 0 1px #fff,0 0 0 3px #ccc}.attachment-preview{position:relative;width:199px;height:199px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#eee;cursor:pointer}.attachment .icon{margin:0 auto;overflow:hidden;padding-top:20%}.attachment .thumbnail{display:block;position:absolute;top:0;left:0;margin:0 auto;overflow:hidden;max-width:100%;max-height:100%}.attachment-preview .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.attachment .thumbnail img{top:0;left:0}.attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate(50%,50%);-ms-transform:translate(50%,50%);transform:translate(50%,50%)}.attachment .thumbnail .centered img{-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.attachment .filename{position:absolute;left:0;right:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:700;background:rgba(255,255,255,.8);-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.attachment .filename div{padding:5px 10px}.attachment-preview .thumbnail{width:199px;height:199px}.attachment .thumbnail img{position:absolute}.attachment .close{display:none;position:absolute;top:5px;right:5px;height:22px;width:22px;padding:0;font-size:20px;line-height:20px;text-align:center;text-decoration:none;color:#464646;background-color:#fff;background-position:-96px 4px;border-width:0;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.attachment .close:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.6);box-shadow:0 0 0 1px rgba(0,0,0,.6)}.attachment:hover .close{display:block}.attachment .check{display:none;height:24px;width:24px;position:absolute;top:-6px;right:-6px;outline:0;background:#eee;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.4);box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.4)}.attachment .check div{background-position:-1px 0;height:15px;width:15px;margin:5px}.attachment .check:hover div{background-position:-40px 0}.attachment.selected .check{display:block}.attachment.details{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 5px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 5px #1e8cbe}.attachment.details .check{background-color:#1e8cbe;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe}.attachment.details .check div{background-position:-21px 0}.attachment.details .check:hover div{background-position:-60px 0}.media-frame .attachment .describe{position:relative;display:block;width:100%;margin:-1px 0 0;padding:8px;font-size:12px;-webkit-border-radius:0;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{right:300px;height:50px}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin-top:10px}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:absolute;top:50px;left:0;right:300px;bottom:0;overflow:auto}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:18px;font-size:13px;color:#666;margin-right:.5em}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;-webkit-border-radius:10px;border-radius:10px;background:#dfdfdf;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#1e8cbe;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:width 300ms;transition:width 300ms}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;left:15%;width:70%;margin:-5px 0 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.media-sidebar .media-uploader-status{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}.uploader-inline .media-uploader-status h3{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#666}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#464646}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{text-decoration:none}.media-sidebar .media-uploader-status .upload-dismiss-errors{position:absolute;top:0;right:0}.upload-errors .upload-error{margin:8px auto 0;padding:8px;border:1px #c00 solid;background:#ffebe8;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-label{padding:2px 4px;margin-right:8px;font-weight:700;color:#fff;background:#e00;background-image:-webkit-gradient(linear,left top,left bottom,from(#e00),to(#a00));background-image:-webkit-linear-gradient(top,#e00,#a00);background-image:linear-gradient(to bottom,#e00,#a00);-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-message{display:block;padding-top:8px;color:#b44;word-wrap:break-word}.uploader-window{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,86,132,.9);z-index:250000;display:none;text-align:center;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms}.uploader-window-content{position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:1px dashed #fff}.uploader-window h3{margin:-.5em 0 0;position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:40px;color:#fff;padding:0}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin:20px;padding:20px;text-align:center}.uploader-inline-content{position:absolute;top:30%;left:0;right:0}.uploader-inline-content .upload-ui{margin:4em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h3{font-size:20px;line-height:28px;font-weight:400;margin-bottom:1.6em}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#464646;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{font-size:12px}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;left:0;right:350px;height:60px;padding:0 0 0 16px;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-right:10px;vertical-align:top}.media-selection.editing,.media-selection.empty,.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:20px;font-weight:700}.media-selection .selection-info a{display:block;float:left;padding:1px 8px;margin:1px 8px 1px -8px;line-height:16px;text-decoration:none;border-right:1px solid #dfdfdf;color:#21759B}.media-selection .selection-info a:hover{background:#21759B;color:#fff;border-color:transparent}.media-selection .selection-info a:last-child{border-right:0;margin-right:0}.media-selection .selection-info .clear-selection{color:red}.media-selection .selection-info .clear-selection:hover{background:red}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin-top:5px;overflow:hidden;vertical-align:top}.media-selection .attachment .icon{width:50%}.attachment.selection.selected{-webkit-box-shadow:none;box-shadow:none}.attachment.selection.details{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 4px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 4px #1e8cbe}.media-selection .attachment.selection.details{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe}.media-selection:after{content:'';display:block;position:absolute;top:0;right:0;bottom:0;width:25px;background-image:-webkit-gradient(linear,right top,left top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(right,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to left,rgba(255,255,255,1),rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:0}.media-toolbar .spinner{margin-top:14px}.media-sidebar .settings-save-status{background:#f5f5f5;float:right;text-transform:none;z-index:10}.media-sidebar .settings-save-status .spinner{margin:0 5px}.media-sidebar .settings-save-status .saved{float:right;display:none}.media-sidebar .save-complete .settings-save-status .saved,.media-sidebar .save-waiting .settings-save-status .spinner{display:block}.attachment-details{position:relative;overflow:auto}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:18px;color:#666;border-bottom:1px solid #ddd;padding-bottom:11px}.attachment-info .filename{font-weight:700;color:#464646;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:left;max-width:120px;max-height:120px;margin-top:5px;margin-right:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1);box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:left;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .refresh-attachment,.attachment-info .trash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment,.attachment-info .refresh-attachment{display:none}.attachment-details.needs-refresh .attachment-info .refresh-attachment,.attachment-info .edit-attachment{display:block}.attachment-info .delete-attachment,.attachment-info .trash-attachment{color:#bc0b0b}.attachment-info .delete-attachment:hover,.attachment-info .trash-attachment:hover{color:red}.attachment-display-settings{width:100%;float:left;overflow:hidden}.attachment-display-settings h4{margin:1.4em 0 .4em}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:left;margin-right:8px}.collection-settings .setting span{min-width:inherit}.media-frame .imgedit-wrap{position:static}.media-frame .imgedit-wait{height:auto!important;right:0;bottom:0;left:0}.media-frame .imgedit-wrap .imgedit-panel-content{padding:16px;position:absolute;top:0;right:282px;bottom:0;left:0;overflow:auto}.media-frame .imgedit-wrap .imgedit-settings{background:#f3f3f3;border-left:1px solid #ddd;padding:0 16px 16px;position:absolute;top:0;right:0;bottom:0;width:250px;overflow:auto}.media-frame .imgedit-group{background:0 0;border:0;border-bottom:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;margin:0;margin-bottom:16px;padding:0;padding-bottom:16px}.media-frame .imgedit-group:last-of-type{border:0;margin:0;padding:0}.media-frame .imgedit-group-top h3{text-transform:uppercase;font-size:12px;color:#666;margin:0;margin-top:24px}.media-frame .imgedit-group-top h3 a{text-decoration:none;color:#666}.media-frame .imgedit-help-toggle{margin-top:-2px;cursor:pointer;color:#666}.media-frame .imgedit-help-toggled span.dashicons:before{content:'\f142'}.media-frame .imgedit-group img{margin-top:5px}.media-frame .imgedit-wrap div.updated{margin:0;margin-bottom:16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;padding:12px 14px;width:100%;min-width:200px;-webkit-box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1);box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url .spinner{position:absolute;top:16px;right:26px}.media-frame .embed-loading .embed-url .spinner{display:block}.embed-link-settings,.embed-media-settings{position:absolute;top:60px;left:0;right:0;bottom:0;padding:16px 16px 32px;overflow:auto}.image-details .media-modal{left:140px;right:140px}.image-details .media-frame-menu{display:none}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{left:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .column-settings{background:#f3f3f3;border-right:1px solid #ddd;min-height:100%;width:52%;position:absolute;top:0;left:0}.image-details .column-settings h3{margin:20px;padding-top:20px;border-top:1px solid #ddd}.image-details .column-image{width:48%;position:absolute;left:52%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{color:#666;text-decoration:none;display:block}.image-details .advanced-toggle::after{font:400 20px/1 dashicons;speak:none;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140';display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle::after{content:'\f142';margin-top:0}.image-details .embed-media-settings .size{margin-bottom:4px}.image-details .custom-size span{display:block}.image-details .custom-size label{display:block;float:left}.image-details .custom-size span small{color:#999;font-size:inherit}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:left;margin:26px 6px 0}.image-details .custom-size::after{content:'';display:table;clear:both}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:left}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting{width:100%;margin:10px 0;float:left;display:block;clear:both}.image-details .embed-media-settings .setting{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea{display:block;width:100%;max-width:400px;margin:1px 0}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom{margin-left:27%;width:70%}.image-details .embed-media-settings .link-target{margin-top:24px}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting span{display:block;width:200px;font-size:13px;line-height:24px;color:#666}.image-details .embed-media-settings .setting span{float:left;width:25%;text-align:right;margin:8px 1% 0;line-height:1.1}.media-embed .setting .button-group{margin:2px 0}.media-embed-sidebar{position:absolute;top:0;left:440px}.advanced-section,.link-settings{margin-top:10px}#wp-fullscreen-body .uploader-editor,.wp-editor-wrap .uploader-editor{background:rgba(150,150,150,.9);position:absolute;top:0;left:0;width:100%;height:100%;z-index:99998;display:none;text-align:center}#wp-fullscreen-body .uploader-editor{background:rgba(0,86,132,.9);position:fixed;z-index:100050}.wp-editor-wrap.wp-fullscreen-wrap .uploader-editor{opacity:0}#wp-fullscreen-body .uploader-editor-content,.wp-editor-wrap .uploader-editor-content{border:1px dashed #fff;position:absolute;top:10px;left:10px;right:10px;bottom:10px}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:700;color:#fff;padding:0;margin:0;display:none}.wp-editor-wrap .uploader-editor.droppable{background:rgba(0,86,132,.9)}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.ie7 .media-frame .attachments-browser{position:static}.ie7 .media-frame .embed-url input{margin-top:4px;width:90%}.ie7 .compat-item{width:99%}.ie7 .attachment-display-settings{width:auto}.ie7 .attachment-preview,.ie7 .attachment-preview .thumbnail{width:120px;height:120px}.ie7 .media-frame .attachment .describe{width:102px}.ie7 .media-sidebar .setting select{max-width:55%}.ie7 .media-sidebar .setting input,.ie7 .media-sidebar .setting textarea{width:55%}.ie7 .media-sidebar .setting .link-to-custom{float:left}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:960px){.media-frame-content .media-toolbar-primary .search,.media-frame-content .media-toolbar-secondary .attachment-filters{max-width:120px}}@media only screen and (max-width:900px){.media-frame-menu{width:139px}.media-menu>a{padding:4px 5px}.media-frame-content,.media-frame-router,.media-frame-title,.media-frame-toolbar{left:140px}.media-sidebar{width:159px;padding:0 10px 24px}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{right:180px}.compat-item label span,.media-sidebar .setting input,.media-sidebar .setting span,.media-sidebar .setting textarea{float:none}.compat-item label span,.media-sidebar .setting span{text-align:inherit;display:block;min-height:16px;margin:0;padding:8px 2px 0}.media-sidebar .setting input,.media-sidebar .setting select,.media-sidebar .setting textarea{width:98%;max-width:none}.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.media-frame-content .attachment .icon{top:40%}.image-details .media-modal{left:30px;right:30px}.image-details .embed-media-settings .setting{margin:20px}.image-details .embed-media-settings .setting span{float:none;text-align:left;width:100%;margin-bottom:4px}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-left:0}.image-details .embed-media-settings .custom-size{margin-left:20px}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-menu .separator{margin:12px 10px}.media-modal-close{right:10px}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px}}@media only screen and (max-width:640px),screen and (max-height:400px){.media-frame-content .media-toolbar .instructions{display:none}.media-frame-menu{width:auto;bottom:auto;right:0;height:60px}.media-menu{border-right:0;position:relative;border-bottom:1px solid #ddd;overflow:hidden;padding:10px 0 10px 10px}.media-menu a{float:left;width:42%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.media-frame-title{display:none}.image-details .media-frame-title{display:block;top:0;font-size:14px}.media-frame-toolbar{position:absolute;bottom:0;left:0;right:0;background:#FFF;border-top:1px solid #DEDEDE}.media-toolbar{position:relative}.media-frame{overflow:hidden}.attachments-browser .attachments{top:42px}.attachment-details h3{margin-top:45px}.media-menu a:last-child,.media-menu a:nth-child(2){width:40%}.media-menu .separator{display:none}.media-frame-title{top:72px;left:auto;height:auto}.media-frame-title h1{line-height:3;font-size:18px}.media-frame-router{top:84px;left:0}.media-frame-content{left:0;top:118px}.image-details .media-frame.hide-router .media-frame-content{top:40px}.media-frame .attachments-browser{padding-bottom:300px}.media-sidebar{border-bottom:1px solid #ddd}.media-modal{width:auto}.media-toolbar-primary,.media-toolbar-secondary{height:auto}.uploader-inline h3{margin:0 0 .8em}.uploader-inline-content{top:auto}.uploader-inline-content .upload-ui{margin:0}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:relative;margin-right:180px}.image-details .media-modal,.media-modal{position:fixed;top:0;left:0;right:0;bottom:0}.media-modal-backdrop{position:fixed}.attachments-browser .attachment,.attachments-browser .attachment-preview{max-width:100%}.attachments-browser .media-toolbar-primary input.search{max-width:150px}.uploader-inline-content{position:relative}.media-sidebar .field input[type=checkbox],.media-sidebar .setting input[type=checkbox]{width:25px}.embed-link-settings,.embed-media-settings{padding-bottom:52px}.image-details .column-image,.image-details .column-settings{position:relative;padding:10px 0 20px;left:0;width:100%;min-height:inherit}.media-frame.hide-router .media-frame-content{top:73px;border-top:0}.collection-settings h3{margin-top:45px}}@media screen and (max-height:400px){.media-menu{padding:0 0 0 10px}.media-menu a{float:left;width:21%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding:10px inherit}.media-menu a:last-child,.media-menu a:nth-child(2){width:21%}.media-modal-close{top:2px}.media-frame-router{top:44px}.media-frame-content{top:78px}.attachments-browser .attachments{top:2px}.embed-link-settings{overflow:visible}}@media only screen and (max-width:680px){.media-frame-content .media-toolbar .attachment-filters,.media-frame-content .media-toolbar .search{max-width:85px}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.media-modal-icon{background-image:url(../images/uploader-icons-2x.png);-webkit-background-size:134px 15px;background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}
\ No newline at end of file
+.media-modal *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.media-frame,.media-modal{font-family:"Open Sans",sans-serif;font-size:12px}.media-frame input,.media-frame textarea{padding:6px 8px}.media-frame select,.wp-admin .media-frame select{line-height:28px;margin-top:3px}.media-frame a{border-bottom:none;color:#21759b}.media-frame a:hover{color:#d54e21}.media-frame a.button{color:#333}.media-frame a.button:hover{color:#222}.media-frame a.button-primary,.media-frame a.button-primary:hover{color:#fff}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-family:"Open Sans",sans-serif;font-size:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#dfdfdf}.media-frame input[type=email]:focus,.media-frame input[type=number]:focus,.media-frame input[type=password]:focus,.media-frame input[type=search]:focus,.media-frame input[type=text]:focus,.media-frame input[type=url]:focus,.media-frame select:focus,.media-frame textarea:focus{border-color:#5b9dd9}.media-frame select{height:24px;padding:2px}.media-frame input:disabled,.media-frame input[readonly],.media-frame textarea:disabled,.media-frame textarea[readonly]{background-color:#eee}.media-frame input[type=search]{-webkit-appearance:textfield}.media-frame :-moz-placeholder{color:#a9a9a9}.media-frame .hidden{display:none}.ui-draggable,.ui-sortable{-ms-touch-action:none;touch-action:none}.meta-box-sortables.ui-sortable{-ms-touch-action:auto;touch-action:auto}.meta-box-sortables.ui-sortable .hndle{-ms-touch-action:none;touch-action:none}.media-modal{position:fixed;top:30px;left:30px;right:30px;bottom:30px;z-index:160000}.wp-customizer .media-modal{z-index:560000}.media-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.wp-customizer .media-modal-backdrop{z-index:559900}.media-modal-close{position:absolute;text-decoration:none;top:10px;right:10px;width:30px;height:30px;z-index:1000;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.media-modal-close:active{-webkit-box-shadow:none;box-shadow:none}.media-modal-close span.media-modal-icon{display:block;margin-top:5px;width:30px;height:15px;background-image:none;text-align:center}.media-modal-close .media-modal-icon:before{content:'\f158';font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#666}.media-modal-close:hover .media-modal-icon:before{color:#2ea2cc}.media-modal-close:active{outline:0}.media-modal-content{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;min-height:300px;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.7);box-shadow:0 5px 15px rgba(0,0,0,.7);background:#fcfcfc;-webkit-font-smoothing:subpixel-antialiased}.media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;left:0;right:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dfdfdf;overflow:hidden}.media-toolbar-primary{float:right;height:100%}.media-toolbar-secondary{float:left;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-left:10px;float:left;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-right:10px;margin-top:15px}.media-sidebar{position:absolute;top:0;right:0;bottom:0;width:267px;padding:0 16px 24px;z-index:75;background:#f3f3f3;border-left:1px solid #ddd;overflow:auto;-webkit-overflow-scrolling:touch}.hide-toolbar .media-sidebar{bottom:0}.media-sidebar .sidebar-title{font-size:20px;margin:0;padding:12px 10px 10px;line-height:28px}.media-sidebar .sidebar-content{padding:0 10px;margin-bottom:130px}.media-sidebar .search{display:block;width:100%}.image-details h3,.media-sidebar h3{position:relative;font-weight:700;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}.attachment-details .setting,.media-sidebar .setting{display:block;float:left;width:100%;margin:1px 0}.attachment-details .setting label,.media-sidebar .setting label{display:block}.attachment-details .setting .link-to-custom,.media-sidebar .setting .link-to-custom{margin:3px 2px 0}.attachment-details .setting span,.media-sidebar .setting span{min-width:30%;margin-right:4%;font-size:12px;text-align:right}.attachment-details .setting select,.media-sidebar .setting select{max-width:65%}.attachment-details .field input[type=checkbox],.attachment-details .field input[type=radio],.attachment-details .setting input[type=checkbox],.attachment-details .setting input[type=radio],.media-sidebar .field input[type=checkbox],.media-sidebar .field input[type=radio],.media-sidebar .setting input[type=checkbox],.media-sidebar .setting input[type=radio]{float:none;margin:8px 3px 0;padding:0}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{float:left;min-height:22px;padding-top:8px;line-height:16px;font-weight:400;color:#666}.compat-item label span{text-align:right}.attachment-details .setting .value,.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting textarea,.media-sidebar .setting .value,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:1px;width:65%;float:right}.attachment-details .setting .value,.media-sidebar .setting .value{margin:0 1px;text-align:left}.attachment-details .setting textarea,.compat-item .field textarea,.media-sidebar .setting textarea{height:62px;resize:vertical}.attachment-details select,.media-sidebar select{margin-top:3px}.compat-item{float:left;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .field,.compat-item .label{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-right:4%;float:left;text-align:right}.compat-item .label span{display:block;width:100%}.compat-item .field{float:right;width:66%}.compat-item .field input[type=email],.compat-item .field input[type=number],.compat-item .field input[type=password],.compat-item .field input[type=search],.compat-item .field input[type=tel],.compat-item .field input[type=text],.compat-item .field input[type=url]{width:100%;margin:0}.sidebar-for-errors .attachment-details,.sidebar-for-errors .compat-item,.sidebar-for-errors .media-sidebar .media-progress-bar,.sidebar-for-errors .upload-details{display:none!important}.media-menu{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:10px 0;background:#f3f3f3;border-right-width:1px;border-right-style:solid;border-right-color:#ccc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-menu>a{display:block;position:relative;padding:8px 20px;margin:0;line-height:18px;font-size:14px;color:#0074a2;text-decoration:none}.media-menu>a:hover{color:#21759B;background:rgba(0,0,0,.04)}.media-menu>a:active{outline:0}.media-menu .active,.media-menu .active:hover{color:#222;font-weight:700}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #ddd}.media-router{position:relative;padding:0 6px;margin:0;clear:both;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-router a{-webkit-transition:none;transition:none}.media-router>a{position:relative;float:left;padding:8px 10px 9px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none}.media-router>a:last-child{border-right:0}.media-router>a:active{outline:0}.media-router .active,.media-router .active:hover{color:#333}.media-router .active,.media-router>a.active:last-child{margin:-1px -1px 0;background:#fff;border:1px solid #ddd;border-bottom:none}.media-router .active:after{display:none}.media-frame{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.media-frame-menu{position:absolute;top:0;left:0;bottom:0;width:200px;z-index:150}.media-frame-title{position:absolute;top:0;left:200px;right:0;height:50px;z-index:200}.media-frame-router{position:absolute;top:50px;left:200px;right:0;height:36px;z-index:200}.media-frame-content{position:absolute;top:84px;left:200px;right:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto;background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.media-frame-toolbar{position:absolute;left:200px;right:0;bottom:0;height:60px;z-index:100}.media-frame.hide-menu .media-frame-content,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-toolbar{left:0}.media-frame.hide-menu .media-frame-menu{left:-200px}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-toolbar .media-frame-toolbar{bottom:-61px}.media-frame.hide-router .media-frame-content{top:50px}.media-frame.hide-router .media-frame-router{display:none}.media-frame.hide-router .media-frame-title{border-bottom:1px solid #dfdfdf;-webkit-box-shadow:0 4px 4px -4px rgba(0,0,0,.1);box-shadow:0 4px 4px -4px rgba(0,0,0,.1)}.media-frame-title .dashicons{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;line-height:50px;margin:0}.media-frame-title .suggested-dimensions{font-size:14px;float:right;margin-right:20px}.media-frame-content .crop-content{height:100%}.media-frame-content .crop-content .crop-image{display:block;margin:auto;max-width:100%;max-height:100%}.media-frame-content .crop-content .upload-errors{position:absolute;width:300px;top:50%;left:50%;margin-left:-150px;margin-right:-150px;z-index:600000}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-right:10px}.media-frame .search{margin-top:11px;padding:4px;font-size:13px;color:#464646;font-family:"Open Sans",sans-serif;-webkit-appearance:none}.media-toolbar-secondary .search{margin-right:16px}.attachments{margin:0;-webkit-overflow-scrolling:touch}.attachment{position:relative;float:left;padding:8px;margin:0;color:#464646;cursor:pointer;list-style:none;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:25%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.attachment.details:focus,.attachment:focus,.selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #fff,inset 0 0 0 7px #5b9dd9;outline:0}.selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px #ccc}.attachment.details{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #1e8cbe}.attachment-preview{position:relative;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);box-shadow:inset 0 0 15px rgba(0,0,0,.1),inset 0 0 0 1px rgba(0,0,0,.05);background:#eee;cursor:pointer}.attachment-preview:before{content:'';display:block;padding-top:100%}.attachment .icon{margin:0 auto;overflow:hidden}.attachment .thumbnail{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;opacity:1;-webkit-transition:opacity .1s;transition:opacity .1s}.attachment .portrait img{max-width:100%}.attachment .landscape img{max-height:100%}.attachment .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.attachment .thumbnail img{top:0;left:0}.attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate(50%,50%);-ms-transform:translate(50%,50%);transform:translate(50%,50%)}.attachment .thumbnail .centered img{-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.attachment .thumbnail .centered img.icon{-webkit-transform:translate(-50%,-70%);-ms-transform:translate(-50%,-70%);transform:translate(-50%,-70%)}.ie8 .attachment img.icon{top:20%;position:relative}.attachment .filename{position:absolute;left:0;right:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:700;background:rgba(255,255,255,.8);-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.attachment .filename div{padding:5px 10px}.attachment .thumbnail img{position:absolute}.attachment .close{display:none;position:absolute;top:5px;right:5px;height:22px;width:22px;padding:0;font-size:20px;line-height:20px;text-align:center;text-decoration:none;color:#464646;background-color:#fff;background-position:-96px 4px;border-width:0;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.attachment .close:hover{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.6);box-shadow:0 0 0 1px rgba(0,0,0,.6)}.attachment:hover .close{display:block}.attachment .check{display:none;height:24px;width:24px;position:absolute;z-index:10;top:0;right:0;outline:0;background:#eee;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15);box-shadow:0 0 0 1px #fff,0 0 0 2px rgba(0,0,0,.15)}.attachment .check div{background-position:-1px 0;height:15px;width:15px;margin:5px}.attachment .check:hover div{background-position:-40px 0}.attachment.selected .check{display:block}.attachment.details .check,.attachment.selected .check:focus,.media-frame.mode-grid .attachment.selected .check{background-color:#1e8cbe;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 2px #1e8cbe}.attachment.details .check div,.media-frame.mode-grid .attachment.selected .check div{background-position:-21px 0}.attachment.details .check:hover div,.attachment.selected .check:focus div,.media-frame.mode-grid .attachment.selected .check:hover div{background-position:-60px 0}.media-frame .attachment .describe{position:relative;display:block;width:100%;margin:0;padding:8px;font-size:12px;-webkit-border-radius:0;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{right:300px;height:50px}.attachments-browser.hide-sidebar .media-toolbar{right:0}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin:11px 0}.attachments-browser .attachments{padding:2px 8px 8px}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:absolute;top:50px;left:0;right:300px;bottom:0;overflow:auto;outline:0}.attachments-browser .uploader-inline.hidden{display:none}.uploader-inline .close{background-color:transparent;border:0;cursor:pointer;height:48px;position:absolute;right:0;text-align:center;top:0;width:50px;z-index:1}.uploader-inline .close:before{font:400 30px/50px dashicons!important;color:#777;display:inline-block;content:'\f335';font-weight:300}.attachments-browser.hide-sidebar .attachments,.attachments-browser.hide-sidebar .uploader-inline{right:0;margin-right:0}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:18px;font-size:13px;color:#666;margin-right:.5em}.attachments-browser .no-media{padding:2em 0 0 2em}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;-webkit-border-radius:10px;border-radius:10px;background:#dfdfdf;background:rgba(0,0,0,.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#1e8cbe;-webkit-border-radius:10px;border-radius:10px;-webkit-transition:width 300ms;transition:width 300ms}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;left:15%;width:70%;margin:-5px 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.media-sidebar .media-uploader-status{border-bottom:1px solid #dfdfdf}.uploader-inline .media-uploader-status h3{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#666}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#464646}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{text-decoration:none}.media-sidebar .media-uploader-status .upload-dismiss-errors{position:absolute;top:0;right:0}.upload-errors .upload-error{margin:8px auto 0;padding:8px;border:1px solid #c00;background:#ffebe8;-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-label{padding:2px 4px;margin-right:8px;font-weight:700;color:#fff;background:#e00;background:#e00 -webkit-gradient(linear,left top,left bottom,from(#e00),to(#a00));background:#e00 -webkit-linear-gradient(top,#e00,#a00);background:#e00 linear-gradient(to bottom,#e00,#a00);-webkit-border-radius:3px;border-radius:3px}.upload-errors .upload-error-message{display:block;padding-top:8px;color:#b44;word-wrap:break-word}.uploader-window{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,86,132,.9);z-index:250000;display:none;text-align:center;opacity:0;-webkit-transition:opacity 250ms;transition:opacity 250ms}.uploader-window-content{position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:1px dashed #fff}.uploader-window h3{margin:-.5em 0 0;position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:40px;color:#fff;padding:0}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:0 0;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin-bottom:20px;padding:0;text-align:center}.uploader-inline-content{position:absolute;top:30%;left:0;right:0}.uploader-inline-content .upload-ui{margin:2em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h3{font-size:20px;line-height:28px;font-weight:400;margin:0}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#464646;font-weight:400}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{font-size:12px;margin:.5em 0}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;left:0;right:350px;height:60px;padding:0 0 0 16px;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-right:10px;vertical-align:top}.media-selection.editing,.media-selection.empty,.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:20px;font-weight:700}.media-selection .selection-info a{display:block;float:left;padding:1px 8px;margin:1px 8px 1px -8px;line-height:16px;text-decoration:none;border-right:1px solid #dfdfdf;color:#21759B}.media-selection .selection-info a:hover{background:#21759B;color:#fff;border-color:transparent}.media-selection .selection-info a:last-child{border-right:0;margin-right:0}.media-selection .selection-info .clear-selection{color:red}.media-selection .selection-info .clear-selection:hover{background:red}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin:6px;padding:0;overflow:hidden;vertical-align:top}.media-selection .attachment{width:48px;padding:0;margin:0;-webkit-box-shadow:none;box-shadow:none}.media-selection .attachment .thumbnail{top:4px;right:4px;bottom:4px;left:4px}.media-selection .attachment .icon{width:50%}.media-selection .attachment-preview{-webkit-box-shadow:none;box-shadow:none;background:0 0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe;box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe}.media-selection:after{content:'';display:block;position:absolute;top:0;right:0;bottom:0;width:25px;background-image:-webkit-gradient(linear,right top,left top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(right,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to left,rgba(255,255,255,1),rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:0}.media-toolbar .spinner{margin-top:14px}.attachment-details{position:relative;overflow:auto}.attachment-details .settings-save-status{float:right;text-transform:none;z-index:10}.attachment-details .settings-save-status .spinner{margin:0 5px}.attachment-details .settings-save-status .saved{float:right;display:none}.attachment-details.save-complete .settings-save-status .saved,.attachment-details.save-waiting .settings-save-status .spinner{display:block}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:18px;color:#666;border-bottom:1px solid #ddd;padding-bottom:11px}.attachment-info .filename{font-weight:700;color:#464646;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:left;max-width:120px;max-height:120px;margin-top:5px;margin-right:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;-webkit-box-shadow:inset 0 0 15px rgba(0,0,0,.1);box-shadow:inset 0 0 15px rgba(0,0,0,.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail-image:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:left;font-size:12px;max-width:100%}.attachment-info .delete-attachment,.attachment-info .edit-attachment,.attachment-info .refresh-attachment,.attachment-info .trash-attachment,.attachment-info .untrash-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-details.needs-refresh .attachment-info .edit-attachment,.attachment-info .refresh-attachment{display:none}.attachment-details.needs-refresh .attachment-info .refresh-attachment,.attachment-info .edit-attachment{display:block}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment{color:#bc0b0b}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover{color:red}.attachment-display-settings{width:100%;float:left;overflow:hidden}.attachment-display-settings h4{margin:1.4em 0 .4em}.collection-settings{overflow:hidden}.collection-settings .setting input[type=checkbox]{float:left;margin-right:8px}.collection-settings .setting span{min-width:inherit}.media-modal .imgedit-wrap{position:static}.media-modal .imgedit-wait{height:auto!important;right:0;bottom:0;left:0}.media-modal .imgedit-wrap .imgedit-panel-content{padding:16px;position:absolute;top:0;right:282px;bottom:0;left:0;overflow:auto}.media-modal .imgedit-wrap .imgedit-settings{background:#f3f3f3;border-left:1px solid #ddd;padding:0 16px 16px;position:absolute;top:0;right:0;bottom:0;width:250px;overflow:auto}.media-modal .imgedit-group{background:0 0;border:none;border-bottom:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;margin:0 0 16px;padding:0 0 16px;position:relative}.media-modal .imgedit-group:last-of-type{border:none;margin:0;padding:0}.media-modal .imgedit-group-top h3{text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 0}.media-modal .imgedit-group-top h3 a{text-decoration:none;color:#666}.media-modal .imgedit-help-toggle{margin-top:-2px;cursor:pointer;color:#666}.media-modal .imgedit-help-toggled span.dashicons:before{content:'\f142'}.media-modal .imgedit-group img{margin-top:5px}.media-modal .imgedit-wrap div.updated{margin:0 0 16px}.embed-url{display:block;position:relative;padding:16px;margin:0;z-index:250;background:#fff;font-size:18px}.media-frame .embed-url input{font-size:18px;padding:12px 14px;width:100%;min-width:200px;-webkit-box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1);box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,.1)}.media-frame .embed-url .spinner{position:absolute;top:32px;right:26px}.media-frame .embed-loading .embed-url .spinner{display:block}.embed-link-settings,.embed-media-settings{position:absolute;top:70px;left:0;right:0;bottom:0;padding:16px 16px 32px;overflow:auto}.embed-preview embed,.embed-preview iframe,.embed-preview img{max-width:100%}.embed-preview img{height:auto}.image-details .media-modal{left:140px;right:140px}.image-details .media-frame-content,.image-details .media-frame-router,.image-details .media-frame-title{left:0}.image-details .embed-media-settings{top:0;overflow:visible;padding:0}.image-details .embed-media-settings,.image-details .embed-media-settings div{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.image-details .column-settings{background:#f3f3f3;border-right:1px solid #ddd;min-height:100%;width:55%;position:absolute;top:0;left:0}.image-details .column-settings h3{margin:20px;padding-top:20px;border-top:1px solid #ddd}.image-details .column-image{width:45%;position:absolute;left:55%;top:0}.image-details .image{margin:20px}.image-details .image img{max-width:100%;max-height:500px}.image-details .advanced-toggle{color:#666;text-decoration:none;display:block}.image-details .advanced-toggle:after{font:400 20px/1 dashicons;speak:none;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:'\f140';display:inline-block;margin-top:-2px}.image-details .advanced-visible .advanced-toggle:after{content:'\f142'}.image-details .embed-media-settings .size{margin-bottom:4px}.image-details .custom-size span{display:block}.image-details .custom-size label{display:block;float:left}.image-details .custom-size span small{color:#999;font-size:inherit}.image-details .custom-size input{width:5em}.image-details .custom-size .sep{float:left;margin:26px 6px 0}.image-details .custom-size:after{content:'';display:table;clear:both}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:left}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;-webkit-box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);overflow:hidden}.media-embed .setting{width:100%;margin:10px 0;float:left;display:block;clear:both}.image-details .embed-media-settings .setting{float:none;width:auto}.image-details .actions{margin:10px 0}.image-details .hidden{display:none}.media-embed .setting input[type=text],.media-embed .setting textarea{display:block;width:100%;max-width:400px;margin:1px 0}.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{max-width:inherit;width:70%}.image-details .embed-media-settings .custom-size,.image-details .embed-media-settings .link-target,.image-details .embed-media-settings .setting input.link-to-custom{margin-left:27%;width:70%}.image-details .embed-media-settings .link-target{margin-top:24px}.media-embed .setting input.hidden,.media-embed .setting textarea.hidden{display:none}.media-embed .setting span{display:block;width:200px;font-size:13px;line-height:24px;color:#666}.image-details .embed-media-settings .setting span{float:left;width:25%;text-align:right;margin:8px 1% 0;line-height:1.1}.media-embed .setting .button-group{margin:2px 0}.media-embed-sidebar{position:absolute;top:0;left:440px}.advanced-section,.link-settings{margin-top:10px}#wp-fullscreen-body .uploader-editor,.wp-editor-wrap .uploader-editor{background:rgba(150,150,150,.9);position:absolute;top:0;left:0;width:100%;height:100%;z-index:99998;display:none;text-align:center}#wp-fullscreen-body .uploader-editor{background:rgba(0,86,132,.9);position:fixed;z-index:100050}.wp-editor-wrap.wp-fullscreen-wrap .uploader-editor{opacity:0}#wp-fullscreen-body .uploader-editor-content,.wp-editor-wrap .uploader-editor-content{border:1px dashed #fff;position:absolute;top:10px;left:10px;right:10px;bottom:10px}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor .uploader-editor-title{position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:700;color:#fff;padding:0;margin:0;display:none}.wp-editor-wrap .uploader-editor.droppable{background:rgba(0,86,132,.9)}#wp-fullscreen-body .uploader-editor .uploader-editor-title,.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title{display:block}.ie7 .media-frame .attachments-browser{position:static}.ie7 .media-frame .embed-url input{margin-top:4px;width:90%}.ie7 .compat-item{width:99%}.ie7 .attachment-display-settings{width:auto}.ie7 .attachment-preview,.ie7 .attachment-preview .thumbnail{width:120px;height:120px}.ie7 .media-frame .attachment .describe{width:102px}.ie7 .media-sidebar .setting select{max-width:55%}.ie7 .media-sidebar .setting input[type=email],.ie7 .media-sidebar .setting input[type=number],.ie7 .media-sidebar .setting input[type=password],.ie7 .media-sidebar .setting input[type=search],.ie7 .media-sidebar .setting input[type=tel],.ie7 .media-sidebar .setting input[type=text],.ie7 .media-sidebar .setting input[type=url],.ie7 .media-sidebar .setting textarea{width:55%}.ie7 .media-sidebar .setting .link-to-custom{float:left}.rtl .media-frame,.rtl .media-frame .search,.rtl .media-frame input[type=email],.rtl .media-frame input[type=number],.rtl .media-frame input[type=password],.rtl .media-frame input[type=search],.rtl .media-frame input[type=tel],.rtl .media-frame input[type=text],.rtl .media-frame input[type=url],.rtl .media-frame select,.rtl .media-frame textarea,.rtl .media-modal{font-family:Tahoma,sans-serif}:lang(he-il) .rtl .media-frame,:lang(he-il) .rtl .media-frame .search,:lang(he-il) .rtl .media-frame input[type=email],:lang(he-il) .rtl .media-frame input[type=number],:lang(he-il) .rtl .media-frame input[type=password],:lang(he-il) .rtl .media-frame input[type=search],:lang(he-il) .rtl .media-frame input[type=text],:lang(he-il) .rtl .media-frame input[type=url],:lang(he-il) .rtl .media-frame select,:lang(he-il) .rtl .media-frame textarea,:lang(he-il) .rtl .media-modal{font-family:Arial,sans-serif}@media only screen and (max-width:940px){.media-frame-content .media-toolbar-primary .search,.media-frame-content .media-toolbar-secondary .attachment-filters{max-width:134px}}@media only screen and (max-width:900px){.media-frame:not(.hide-menu) .media-frame-content,.media-frame:not(.hide-menu) .media-frame-router,.media-frame:not(.hide-menu) .media-frame-title,.media-frame:not(.hide-menu) .media-frame-toolbar{left:0}.media-frame:not(.hide-menu) .media-frame-menu{position:static;width:0}.media-frame:not(.hide-menu) .media-menu{width:auto;max-width:80%;overflow:auto;z-index:2000;top:50px;left:-300px;right:auto;bottom:auto;padding:5px 0;border:1px solid #ccc}.media-frame:not(.hide-menu) .media-menu.visible{left:0}.media-frame:not(.hide-menu) .media-menu>a{padding:12px 16px;font-size:16px}.media-frame:not(.hide-menu) .media-menu>a.active{display:none}.media-frame:not(.hide-menu) .media-menu .separator{margin:5px 10px}.media-frame:not(.hide-menu) .media-frame-title{left:0;color:#21759b}.media-frame:not(.hide-menu) .media-frame-title .dashicons{display:inline-block;line-height:50px}.media-frame:not(.hide-menu) .media-frame-title h1{line-height:3;font-size:18px;float:left;cursor:pointer}.media-sidebar{width:230px}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{right:262px}.attachment-details .setting,.media-sidebar .setting{margin:6px 0}.attachment-details .setting input,.attachment-details .setting span,.attachment-details .setting textarea,.compat-item label span,.media-sidebar .setting input,.media-sidebar .setting span,.media-sidebar .setting textarea{float:none}.attachment-details .setting span,.compat-item label span,.media-sidebar .setting span{text-align:inherit;min-height:16px;margin:0;padding:8px 2px 0}.attachment-details .setting .value,.media-sidebar .setting .value{float:none;width:auto}.attachment-details .setting input[type=email],.attachment-details .setting input[type=number],.attachment-details .setting input[type=password],.attachment-details .setting input[type=search],.attachment-details .setting input[type=tel],.attachment-details .setting input[type=text],.attachment-details .setting input[type=url],.attachment-details .setting select,.attachment-details .setting textarea,.media-sidebar .setting input[type=email],.media-sidebar .setting input[type=number],.media-sidebar .setting input[type=password],.media-sidebar .setting input[type=search],.media-sidebar .setting input[type=tel],.media-sidebar .setting input[type=text],.media-sidebar .setting input[type=url],.media-sidebar .setting select,.media-sidebar .setting textarea{float:none;width:98%;max-width:none;height:auto}.attachment-details .setting select.columns,.media-sidebar .setting select.columns{width:auto}.media-frame .search,.media-frame input,.media-frame textarea{padding:3px 6px}.image-details .column-image{width:30%;left:70%}.image-details .column-settings{width:70%}.image-details .media-modal{left:30px;right:30px}.image-details .embed-media-settings .setting{margin:20px}.image-details .embed-media-settings .setting span{float:none;text-align:left;width:100%;margin-bottom:4px}.image-details .embed-media-settings .setting input.link-to-custom,.image-details .embed-media-settings .setting input[type=text],.image-details .embed-media-settings .setting textarea{width:100%;margin-left:0}.image-details .embed-media-settings .custom-size{margin-left:20px}.collection-settings .setting input[type=checkbox]{margin-top:0}.media-selection{min-width:120px}.media-selection:after{background:0 0}.media-selection .attachments{display:none}.media-modal .attachments-browser .media-toolbar-primary,.media-modal .attachments-browser .media-toolbar-secondary{width:50%}.media-modal .attachments-browser .media-toolbar .search{max-width:100%;height:auto;float:right}.media-modal .attachments-browser .media-toolbar .attachment-filters{margin:11px 0 0;height:auto;max-width:65%;max-width:-webkit-calc(100% - 38px);max-width:calc(100% - 38px)}.media-modal .attachments-browser .media-toolbar .spinner{margin:14px 8px 0}.media-frame input[type=email],.media-frame input[type=number],.media-frame input[type=password],.media-frame input[type=search],.media-frame input[type=text],.media-frame input[type=url],.media-frame select,.media-frame textarea{font-size:16px}}@media only screen and (max-width:640px),screen and (max-height:400px){.image-details .media-modal,.media-modal{position:fixed;top:0;left:0;right:0;bottom:0}.media-modal-backdrop{position:fixed}.media-sidebar{z-index:1900;max-width:70%;bottom:120%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding-bottom:0}.media-sidebar.visible{bottom:0}.attachments-browser .attachments,.attachments-browser .media-toolbar,.attachments-browser .uploader-inline{right:0}.image-details .media-frame-title{display:block;top:0;font-size:14px}.image-details .column-image,.image-details .column-settings{width:100%;position:relative;left:0}.image-details .column-settings{padding:4px 0}.media-frame-content .media-toolbar .instructions{display:none}}@media screen and (max-height:400px){.media-menu{padding:0}.media-frame-router{top:44px}.media-frame-content{top:78px}.attachments-browser .attachments{top:40px}.embed-link-settings{overflow:visible}}@media only screen and (max-width:480px){.media-frame-content .media-toolbar .attachment-filters,.media-frame-content .media-toolbar .search{max-width:90px}.media-modal-close{top:5px;right:5px}.media-modal .media-frame-title{height:40px}.media-frame:not(.hide-menu) .media-frame-title h1,.media-modal .media-frame-title h1{font-size:18px;line-height:40px}.media-frame:not(.hide-menu) .media-frame-title .dashicons{line-height:40px}.media-frame-router,.media-frame:not(.hide-menu) .media-menu{top:40px}.media-frame-content{top:74px}.media-frame.hide-router .media-frame-content{top:40px}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.media-modal-icon{background-image:url(../images/uploader-icons-2x.png);-webkit-background-size:134px 15px;background-size:134px 15px}.media-frame .spinner{background-image:url(../images/spinner-2x.gif)}}.media-frame-content[data-columns="1"] .attachment{width:100%}.media-frame-content[data-columns="2"] .attachment{width:50%}.media-frame-content[data-columns="3"] .attachment{width:33.33%}.media-frame-content[data-columns="4"] .attachment{width:25%}.media-frame-content[data-columns="5"] .attachment{width:20%}.media-frame-content[data-columns="6"] .attachment{width:16.66%}.media-frame-content[data-columns="7"] .attachment{width:14.28%}.media-frame-content[data-columns="8"] .attachment{width:12.5%}.media-frame-content[data-columns="9"] .attachment{width:11.11%}.media-frame-content[data-columns="10"] .attachment{width:10%}.media-frame-content[data-columns="11"] .attachment{width:9.09%}.media-frame-content[data-columns="12"] .attachment{width:8.33%}
\ No newline at end of file
index fc2e393635537403a1ab0e0329ec0b49b3e8a0c9..62cb5551bbe189992b014296edf09565115f1253 100644 (file)
@@ -1 +1 @@
-#wp-auth-check-wrap.hidden{display:none}#wp-auth-check-wrap #wp-auth-check-bg{position:fixed;top:0;bottom:0;right:0;left:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000010}#wp-auth-check-wrap #wp-auth-check{position:fixed;right:50%;overflow:hidden;top:40px;bottom:20px;max-height:415px;width:380px;margin:0 -190px 0 0;padding:30px 0 0;background-color:#eee;z-index:1000011;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3)}#wp-auth-check-wrap.fallback #wp-auth-check{max-height:180px;overflow:auto}#wp-auth-check-wrap #wp-auth-check-form{background:url(../images/wpspin-2x.gif) no-repeat center center;-webkit-background-size:16px 16px;background-size:16px 16px;height:100%}#wp-auth-check-wrap #wp-auth-check-form iframe{height:100%;width:100%;overflow:auto}#wp-auth-check-wrap .wp-auth-check-close{position:absolute;top:8px;left:8px;height:22px;width:22px;cursor:pointer}#wp-auth-check-wrap .wp-auth-check-close:before{content:'\f158';display:block!important;font:400 20px/1 dashicons;speak:none;height:22px;margin:2px 0;text-align:center;width:22px;color:#777;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale}#wp-auth-check-wrap .wp-auth-check-close:hover:before{color:#0074a2}#wp-auth-check-wrap .wp-auth-check-close:focus{outline:1px dotted #888}#wp-auth-check-wrap .wp-auth-fallback-expired{outline:0}#wp-auth-check-wrap .wp-auth-fallback{font-size:14px;line-height:21px;padding:0 25px;display:none}#wp-auth-check-wrap.fallback .wp-auth-check-close,#wp-auth-check-wrap.fallback .wp-auth-fallback{display:block}
\ No newline at end of file
+#wp-auth-check-wrap.hidden{display:none}#wp-auth-check-wrap #wp-auth-check-bg{position:fixed;top:0;bottom:0;right:0;left:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000010}#wp-auth-check-wrap #wp-auth-check{position:fixed;right:50%;overflow:hidden;top:40px;bottom:20px;max-height:415px;width:380px;margin:0 -190px 0 0;padding:30px 0 0;background-color:#eee;z-index:1000011;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3)}#wp-auth-check-wrap.fallback #wp-auth-check{max-height:180px;overflow:auto}#wp-auth-check-wrap #wp-auth-check-form{background:url(../images/wpspin-2x.gif) no-repeat center center;-webkit-background-size:16px 16px;background-size:16px 16px;height:100%}#wp-auth-check-wrap #wp-auth-check-form iframe{height:100%;width:100%;overflow:auto}#wp-auth-check-wrap .wp-auth-check-close{position:absolute;top:8px;left:8px;height:22px;width:22px;cursor:pointer}#wp-auth-check-wrap .wp-auth-check-close:before{content:'\f158';display:block!important;font:400 20px/1 dashicons;speak:none;height:22px;margin:2px 0;text-align:center;width:22px;color:#777;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale}#wp-auth-check-wrap .wp-auth-check-close:hover:before{color:#0074a2}#wp-auth-check-wrap .wp-auth-check-close:focus{outline:#888 dotted 1px}#wp-auth-check-wrap .wp-auth-fallback-expired{outline:0}#wp-auth-check-wrap .wp-auth-fallback{font-size:14px;line-height:21px;padding:0 25px;display:none}#wp-auth-check-wrap.fallback .wp-auth-check-close,#wp-auth-check-wrap.fallback .wp-auth-fallback{display:block}
\ No newline at end of file
index 2b01fbba6f56c87d661d5fab28db6dd9303aaedc..f7ab70ec9db78b8122df508c828b1be3c6238f31 100644 (file)
@@ -1 +1 @@
-#wp-auth-check-wrap.hidden{display:none}#wp-auth-check-wrap #wp-auth-check-bg{position:fixed;top:0;bottom:0;left:0;right:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000010}#wp-auth-check-wrap #wp-auth-check{position:fixed;left:50%;overflow:hidden;top:40px;bottom:20px;max-height:415px;width:380px;margin:0 0 0 -190px;padding:30px 0 0;background-color:#eee;z-index:1000011;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3)}#wp-auth-check-wrap.fallback #wp-auth-check{max-height:180px;overflow:auto}#wp-auth-check-wrap #wp-auth-check-form{background:url(../images/wpspin-2x.gif) no-repeat center center;-webkit-background-size:16px 16px;background-size:16px 16px;height:100%}#wp-auth-check-wrap #wp-auth-check-form iframe{height:100%;width:100%;overflow:auto}#wp-auth-check-wrap .wp-auth-check-close{position:absolute;top:8px;right:8px;height:22px;width:22px;cursor:pointer}#wp-auth-check-wrap .wp-auth-check-close:before{content:'\f158';display:block!important;font:400 20px/1 dashicons;speak:none;height:22px;margin:2px 0;text-align:center;width:22px;color:#777;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale}#wp-auth-check-wrap .wp-auth-check-close:hover:before{color:#0074a2}#wp-auth-check-wrap .wp-auth-check-close:focus{outline:1px dotted #888}#wp-auth-check-wrap .wp-auth-fallback-expired{outline:0}#wp-auth-check-wrap .wp-auth-fallback{font-size:14px;line-height:21px;padding:0 25px;display:none}#wp-auth-check-wrap.fallback .wp-auth-check-close,#wp-auth-check-wrap.fallback .wp-auth-fallback{display:block}
\ No newline at end of file
+#wp-auth-check-wrap.hidden{display:none}#wp-auth-check-wrap #wp-auth-check-bg{position:fixed;top:0;bottom:0;left:0;right:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000010}#wp-auth-check-wrap #wp-auth-check{position:fixed;left:50%;overflow:hidden;top:40px;bottom:20px;max-height:415px;width:380px;margin:0 0 0 -190px;padding:30px 0 0;background-color:#eee;z-index:1000011;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3)}#wp-auth-check-wrap.fallback #wp-auth-check{max-height:180px;overflow:auto}#wp-auth-check-wrap #wp-auth-check-form{background:url(../images/wpspin-2x.gif) no-repeat center center;-webkit-background-size:16px 16px;background-size:16px 16px;height:100%}#wp-auth-check-wrap #wp-auth-check-form iframe{height:100%;width:100%;overflow:auto}#wp-auth-check-wrap .wp-auth-check-close{position:absolute;top:8px;right:8px;height:22px;width:22px;cursor:pointer}#wp-auth-check-wrap .wp-auth-check-close:before{content:'\f158';display:block!important;font:400 20px/1 dashicons;speak:none;height:22px;margin:2px 0;text-align:center;width:22px;color:#777;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale}#wp-auth-check-wrap .wp-auth-check-close:hover:before{color:#0074a2}#wp-auth-check-wrap .wp-auth-check-close:focus{outline:#888 dotted 1px}#wp-auth-check-wrap .wp-auth-fallback-expired{outline:0}#wp-auth-check-wrap .wp-auth-fallback{font-size:14px;line-height:21px;padding:0 25px;display:none}#wp-auth-check-wrap.fallback .wp-auth-check-close,#wp-auth-check-wrap.fallback .wp-auth-fallback{display:block}
\ No newline at end of file
index 10cf6a247a412c9f163a9342585e9436e0a15545..75088cb1d101f872b1ebf585809bb01128a58ec4 100644 (file)
 }
 
 .wp-pointer-bottom {
 }
 
 .wp-pointer-bottom {
+       margin-top: -13px;
        padding-bottom: 13px;
 }
 
        padding-bottom: 13px;
 }
 
 }
 /* @noflip */
 .wp-pointer-right {
 }
 /* @noflip */
 .wp-pointer-right {
+       margin-left: -13px;
        padding-right: 13px;
 }
 
        padding-right: 13px;
 }
 
        border-bottom-color: #3592b6;
 }
 
        border-bottom-color: #3592b6;
 }
 
-.wp-pointer-top .wp-pointer-arrow:before,
-.wp-pointer-undefined .wp-pointer-arrow:before {
+.wp-pointer-top .wp-pointer-arrow-inner,
+.wp-pointer-undefined .wp-pointer-arrow-inner {
+       top: 1px;
        margin-right: -13px;
        margin-right: -13px;
-       margin-top: -11px;
+       margin-top: -13px;
        border: 13px solid transparent;
        border-bottom-color: #2ea2cc;
        display: block;
        border: 13px solid transparent;
        border-bottom-color: #2ea2cc;
        display: block;
        border-top-color: #ccc;
 }
 
        border-top-color: #ccc;
 }
 
-.wp-pointer-bottom .wp-pointer-arrow:before {
+.wp-pointer-bottom .wp-pointer-arrow-inner {
+       bottom: 1px;
        margin-right: -13px;
        margin-right: -13px;
-       margin-top: -14px;
+       margin-bottom: -13px;
        border: 13px solid transparent;
        border-top-color: #fff;
        display: block;
        border: 13px solid transparent;
        border-top-color: #fff;
        display: block;
        border-right-color: #ccc;
 }
 
        border-right-color: #ccc;
 }
 
-.wp-pointer-left .wp-pointer-arrow:before {
-       margin-right: -12px;
+/* @noflip */
+.wp-pointer-left .wp-pointer-arrow-inner {
+       left: 1px;
+       margin-left: -13px;
        margin-top: -13px;
        border: 13px solid transparent;
        margin-top: -13px;
        border: 13px solid transparent;
-       border-left-color: #fff;
+       border-right-color: #fff;
        display: block;
        content: ' ';
 }
 
 /* @noflip */
 .wp-pointer-right .wp-pointer-arrow {
        display: block;
        content: ' ';
 }
 
 /* @noflip */
 .wp-pointer-right .wp-pointer-arrow {
-       right:0;
+       right: 0;
        border-width: 13px 0 13px 13px;
        border-left-color: #ccc;
 }
 
        border-width: 13px 0 13px 13px;
        border-left-color: #ccc;
 }
 
-.wp-pointer-right .wp-pointer-arrow:before {
-       margin-right: -12px;
+/* @noflip */
+.wp-pointer-right .wp-pointer-arrow-inner {
+       right: 1px;
+       margin-right: -13px;
        margin-top: -13px;
        border: 13px solid transparent;
        margin-top: -13px;
        border: 13px solid transparent;
-       border-right-color: #fff;
+       border-left-color: #fff;
        display: block;
        content: ' ';
 }
 
        display: block;
        content: ' ';
 }
 
-.rtl .wp-pointer-arrow:before {
-       -webkit-transform: rotateY(180deg);
-       -ms-transform:     rotateY(180deg);
-       transform:         rotateY(180deg);
-}
-
 /* Disable pointers at responsive sizes */
 @media screen and ( max-width: 782px ) {
        .wp-pointer {
 /* Disable pointers at responsive sizes */
 @media screen and ( max-width: 782px ) {
        .wp-pointer {
index b5fbcdb92588620b8cdced3fa53de6d3bf2aa8b0..fe9343d9ef17335a002164e07d95ef4cbe60f8af 100644 (file)
@@ -1 +1 @@
-.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border:1px solid #dfdfdf;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075)}.wp-pointer-content h3{position:relative;margin:-1px -1px 5px;padding:15px 60px 14px 18px;border:1px solid #3592b6;border-bottom:0;line-height:1.4em;font-size:14px;color:#fff;background:#2ea2cc}.wp-pointer-content h3:before{background:#fff;-webkit-border-radius:50%;border-radius:50%;color:#2ea2cc;content:'\f227';font:400 20px/1.6 dashicons;position:absolute;top:8px;right:15px;speak:none;text-align:center;width:32px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-pointer-content p{padding:0 15px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:left;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-right:3px;position:relative}.wp-pointer-buttons a.close:before{background:0 0;color:#bbb;content:'\f153';display:block!important;font:400 13px/1 dashicons;speak:none;margin:1px 0;text-align:center;-webkit-font-smoothing:antialiased!important;width:10px;height:100%;position:absolute;right:-12px;top:1px}.wp-pointer-buttons a.close:hover:before{color:#c00}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;width:0;height:0;border:0 solid transparent}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{padding-right:13px}.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{right:50px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;border-width:0 13px 13px;border-bottom-color:#3592b6}.wp-pointer-top .wp-pointer-arrow:before,.wp-pointer-undefined .wp-pointer-arrow:before{margin-right:-13px;margin-top:-11px;border:13px solid transparent;border-bottom-color:#2ea2cc;display:block;content:' '}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;border-width:13px 13px 0;border-top-color:#ccc}.wp-pointer-bottom .wp-pointer-arrow:before{margin-right:-13px;margin-top:-14px;border:13px solid transparent;border-top-color:#fff;display:block;content:' '}.wp-pointer-left .wp-pointer-arrow{left:0;border-width:13px 13px 13px 0;border-right-color:#ccc}.wp-pointer-left .wp-pointer-arrow:before{margin-right:-12px;margin-top:-13px;border:13px solid transparent;border-left-color:#fff;display:block;content:' '}.wp-pointer-right .wp-pointer-arrow{right:0;border-width:13px 0 13px 13px;border-left-color:#ccc}.wp-pointer-right .wp-pointer-arrow:before{margin-right:-12px;margin-top:-13px;border:13px solid transparent;border-right-color:#fff;display:block;content:' '}.rtl .wp-pointer-arrow:before{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}@media screen and (max-width:782px){.wp-pointer{display:none}}
\ No newline at end of file
+.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border:1px solid #dfdfdf;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075)}.wp-pointer-content h3{position:relative;margin:-1px -1px 5px;padding:15px 60px 14px 18px;border:1px solid #3592b6;border-bottom:none;line-height:1.4em;font-size:14px;color:#fff;background:#2ea2cc}.wp-pointer-content h3:before{background:#fff;-webkit-border-radius:50%;border-radius:50%;color:#2ea2cc;content:'\f227';font:400 20px/1.6 dashicons;position:absolute;top:8px;right:15px;speak:none;text-align:center;width:32px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-pointer-content p{padding:0 15px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:left;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-right:3px;position:relative}.wp-pointer-buttons a.close:before{background:0 0;color:#bbb;content:'\f153';display:block!important;font:400 13px/1 dashicons;speak:none;margin:1px 0;text-align:center;-webkit-font-smoothing:antialiased!important;width:10px;height:100%;position:absolute;right:-12px;top:1px}.wp-pointer-buttons a.close:hover:before{color:#c00}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;width:0;height:0;border:0 solid transparent}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{margin-top:-13px;padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{margin-left:-13px;padding-right:13px}.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{right:50px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;border-width:0 13px 13px;border-bottom-color:#3592b6}.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer-undefined .wp-pointer-arrow-inner{top:1px;margin-right:-13px;margin-top:-13px;border:13px solid transparent;border-bottom-color:#2ea2cc;display:block;content:' '}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;border-width:13px 13px 0;border-top-color:#ccc}.wp-pointer-bottom .wp-pointer-arrow-inner{bottom:1px;margin-right:-13px;margin-bottom:-13px;border:13px solid transparent;border-top-color:#fff;display:block;content:' '}.wp-pointer-left .wp-pointer-arrow{left:0;border-width:13px 13px 13px 0;border-right-color:#ccc}.wp-pointer-left .wp-pointer-arrow-inner{left:1px;margin-left:-13px;margin-top:-13px;border:13px solid transparent;border-right-color:#fff;display:block;content:' '}.wp-pointer-right .wp-pointer-arrow{right:0;border-width:13px 0 13px 13px;border-left-color:#ccc}.wp-pointer-right .wp-pointer-arrow-inner{right:1px;margin-right:-13px;margin-top:-13px;border:13px solid transparent;border-left-color:#fff;display:block;content:' '}@media screen and (max-width:782px){.wp-pointer{display:none}}
\ No newline at end of file
index dbf09b6a44dfb101202ba072ef3d934973acd30d..1d69823f11cbf4ce6c5ec00bbca717871934bd0a 100644 (file)
 }
 
 .wp-pointer-bottom {
 }
 
 .wp-pointer-bottom {
+       margin-top: -13px;
        padding-bottom: 13px;
 }
 
        padding-bottom: 13px;
 }
 
 }
 /* @noflip */
 .wp-pointer-right {
 }
 /* @noflip */
 .wp-pointer-right {
+       margin-left: -13px;
        padding-right: 13px;
 }
 
        padding-right: 13px;
 }
 
        border-bottom-color: #3592b6;
 }
 
        border-bottom-color: #3592b6;
 }
 
-.wp-pointer-top .wp-pointer-arrow:before,
-.wp-pointer-undefined .wp-pointer-arrow:before {
+.wp-pointer-top .wp-pointer-arrow-inner,
+.wp-pointer-undefined .wp-pointer-arrow-inner {
+       top: 1px;
        margin-left: -13px;
        margin-left: -13px;
-       margin-top: -11px;
+       margin-top: -13px;
        border: 13px solid transparent;
        border-bottom-color: #2ea2cc;
        display: block;
        border: 13px solid transparent;
        border-bottom-color: #2ea2cc;
        display: block;
        border-top-color: #ccc;
 }
 
        border-top-color: #ccc;
 }
 
-.wp-pointer-bottom .wp-pointer-arrow:before {
+.wp-pointer-bottom .wp-pointer-arrow-inner {
+       bottom: 1px;
        margin-left: -13px;
        margin-left: -13px;
-       margin-top: -14px;
+       margin-bottom: -13px;
        border: 13px solid transparent;
        border-top-color: #fff;
        display: block;
        border: 13px solid transparent;
        border-top-color: #fff;
        display: block;
        border-right-color: #ccc;
 }
 
        border-right-color: #ccc;
 }
 
-.wp-pointer-left .wp-pointer-arrow:before {
-       margin-left: -12px;
+/* @noflip */
+.wp-pointer-left .wp-pointer-arrow-inner {
+       left: 1px;
+       margin-left: -13px;
        margin-top: -13px;
        border: 13px solid transparent;
        border-right-color: #fff;
        margin-top: -13px;
        border: 13px solid transparent;
        border-right-color: #fff;
 
 /* @noflip */
 .wp-pointer-right .wp-pointer-arrow {
 
 /* @noflip */
 .wp-pointer-right .wp-pointer-arrow {
-       right:0;
+       right: 0;
        border-width: 13px 0 13px 13px;
        border-left-color: #ccc;
 }
 
        border-width: 13px 0 13px 13px;
        border-left-color: #ccc;
 }
 
-.wp-pointer-right .wp-pointer-arrow:before {
-       margin-left: -12px;
+/* @noflip */
+.wp-pointer-right .wp-pointer-arrow-inner {
+       right: 1px;
+       margin-right: -13px;
        margin-top: -13px;
        border: 13px solid transparent;
        border-left-color: #fff;
        margin-top: -13px;
        border: 13px solid transparent;
        border-left-color: #fff;
        content: ' ';
 }
 
        content: ' ';
 }
 
-.rtl .wp-pointer-arrow:before {
-       -webkit-transform: rotateY(180deg);
-       -ms-transform:     rotateY(180deg);
-       transform:         rotateY(180deg);
-}
-
 /* Disable pointers at responsive sizes */
 @media screen and ( max-width: 782px ) {
        .wp-pointer {
 /* Disable pointers at responsive sizes */
 @media screen and ( max-width: 782px ) {
        .wp-pointer {
index 5e0797521f4044e077bfdd334c9ccd98750d2dc9..01f27d632761c5b0757e91113526d75a7d0976a9 100644 (file)
@@ -1 +1 @@
-.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border:1px solid #dfdfdf;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075)}.wp-pointer-content h3{position:relative;margin:-1px -1px 5px;padding:15px 18px 14px 60px;border:1px solid #3592b6;border-bottom:0;line-height:1.4em;font-size:14px;color:#fff;background:#2ea2cc}.wp-pointer-content h3:before{background:#fff;-webkit-border-radius:50%;border-radius:50%;color:#2ea2cc;content:'\f227';font:400 20px/1.6 dashicons;position:absolute;top:8px;left:15px;speak:none;text-align:center;width:32px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-pointer-content p{padding:0 15px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:right;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-left:3px;position:relative}.wp-pointer-buttons a.close:before{background:0 0;color:#bbb;content:'\f153';display:block!important;font:400 13px/1 dashicons;speak:none;margin:1px 0;text-align:center;-webkit-font-smoothing:antialiased!important;width:10px;height:100%;position:absolute;left:-12px;top:1px}.wp-pointer-buttons a.close:hover:before{color:#c00}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;width:0;height:0;border:0 solid transparent}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{padding-right:13px}.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{left:50px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;border-width:0 13px 13px;border-bottom-color:#3592b6}.wp-pointer-top .wp-pointer-arrow:before,.wp-pointer-undefined .wp-pointer-arrow:before{margin-left:-13px;margin-top:-11px;border:13px solid transparent;border-bottom-color:#2ea2cc;display:block;content:' '}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;border-width:13px 13px 0;border-top-color:#ccc}.wp-pointer-bottom .wp-pointer-arrow:before{margin-left:-13px;margin-top:-14px;border:13px solid transparent;border-top-color:#fff;display:block;content:' '}.wp-pointer-left .wp-pointer-arrow{left:0;border-width:13px 13px 13px 0;border-right-color:#ccc}.wp-pointer-left .wp-pointer-arrow:before{margin-left:-12px;margin-top:-13px;border:13px solid transparent;border-right-color:#fff;display:block;content:' '}.wp-pointer-right .wp-pointer-arrow{right:0;border-width:13px 0 13px 13px;border-left-color:#ccc}.wp-pointer-right .wp-pointer-arrow:before{margin-left:-12px;margin-top:-13px;border:13px solid transparent;border-left-color:#fff;display:block;content:' '}.rtl .wp-pointer-arrow:before{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}@media screen and (max-width:782px){.wp-pointer{display:none}}
\ No newline at end of file
+.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border:1px solid #dfdfdf;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075)}.wp-pointer-content h3{position:relative;margin:-1px -1px 5px;padding:15px 18px 14px 60px;border:1px solid #3592b6;border-bottom:none;line-height:1.4em;font-size:14px;color:#fff;background:#2ea2cc}.wp-pointer-content h3:before{background:#fff;-webkit-border-radius:50%;border-radius:50%;color:#2ea2cc;content:'\f227';font:400 20px/1.6 dashicons;position:absolute;top:8px;left:15px;speak:none;text-align:center;width:32px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-pointer-content p{padding:0 15px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:right;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-left:3px;position:relative}.wp-pointer-buttons a.close:before{background:0 0;color:#bbb;content:'\f153';display:block!important;font:400 13px/1 dashicons;speak:none;margin:1px 0;text-align:center;-webkit-font-smoothing:antialiased!important;width:10px;height:100%;position:absolute;left:-12px;top:1px}.wp-pointer-buttons a.close:hover:before{color:#c00}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;width:0;height:0;border:0 solid transparent}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{margin-top:-13px;padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{margin-left:-13px;padding-right:13px}.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{left:50px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;border-width:0 13px 13px;border-bottom-color:#3592b6}.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer-undefined .wp-pointer-arrow-inner{top:1px;margin-left:-13px;margin-top:-13px;border:13px solid transparent;border-bottom-color:#2ea2cc;display:block;content:' '}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;border-width:13px 13px 0;border-top-color:#ccc}.wp-pointer-bottom .wp-pointer-arrow-inner{bottom:1px;margin-left:-13px;margin-bottom:-13px;border:13px solid transparent;border-top-color:#fff;display:block;content:' '}.wp-pointer-left .wp-pointer-arrow{left:0;border-width:13px 13px 13px 0;border-right-color:#ccc}.wp-pointer-left .wp-pointer-arrow-inner{left:1px;margin-left:-13px;margin-top:-13px;border:13px solid transparent;border-right-color:#fff;display:block;content:' '}.wp-pointer-right .wp-pointer-arrow{right:0;border-width:13px 0 13px 13px;border-left-color:#ccc}.wp-pointer-right .wp-pointer-arrow-inner{right:1px;margin-right:-13px;margin-top:-13px;border:13px solid transparent;border-left-color:#fff;display:block;content:' '}@media screen and (max-width:782px){.wp-pointer{display:none}}
\ No newline at end of file
index 99bbb4e0123eaf5b02e372e0d35acfcb76424b25..a060239ea3857985aedfa5a21b1c76b476d1d6f4 100644 (file)
@@ -48,6 +48,9 @@ class WP_Date_Query {
        /**
         * Constructor.
         *
        /**
         * Constructor.
         *
+        * @since 3.7.0
+        * @since 4.0.0 The $inclusive logic was updated to include all times within the date range.
+        *
         * @param array $date_query {
         *     One or more associative arrays of date query parameters.
         *
         * @param array $date_query {
         *     One or more associative arrays of date query parameters.
         *
@@ -81,7 +84,7 @@ class WP_Date_Query {
         *                                     Default (string:empty)|(array:last day of month). Accepts numbers 1-31.
         *             }
         *             @type string       $column    Optional. Used to add a clause comparing a column other than the column
         *                                     Default (string:empty)|(array:last day of month). Accepts numbers 1-31.
         *             }
         *             @type string       $column    Optional. Used to add a clause comparing a column other than the column
-        *                                           specified in the top-level $column paramater.  Default is the value
+        *                                           specified in the top-level $column parameter.  Default is the value
         *                                           of top-level $column. Accepts 'post_date', 'post_date_gmt',
         *                                           'post_modified', 'post_modified_gmt', 'comment_date', 'comment_date_gmt'.
         *             @type string       $compare   Optional. The comparison operator. Default '='. Accepts '=', '!=',
         *                                           of top-level $column. Accepts 'post_date', 'post_date_gmt',
         *                                           'post_modified', 'post_modified_gmt', 'comment_date', 'comment_date_gmt'.
         *             @type string       $compare   Optional. The comparison operator. Default '='. Accepts '=', '!=',
@@ -105,7 +108,7 @@ class WP_Date_Query {
         *                              Accepts 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt',
         *                              'comment_date', 'comment_date_gmt'.
         */
         *                              Accepts 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt',
         *                              'comment_date', 'comment_date_gmt'.
         */
-       function __construct( $date_query, $default_column = 'post_date' ) {
+       public function __construct( $date_query, $default_column = 'post_date' ) {
                if ( empty( $date_query ) || ! is_array( $date_query ) )
                        return;
 
                if ( empty( $date_query ) || ! is_array( $date_query ) )
                        return;
 
@@ -235,19 +238,23 @@ class WP_Date_Query {
 
                $compare = $this->get_compare( $query );
 
 
                $compare = $this->get_compare( $query );
 
+               $inclusive = ! empty( $query['inclusive'] );
+
+               // Assign greater- and less-than values.
                $lt = '<';
                $gt = '>';
                $lt = '<';
                $gt = '>';
-               if ( ! empty( $query['inclusive'] ) ) {
+
+               if ( $inclusive ) {
                        $lt .= '=';
                        $gt .= '=';
                }
 
                // Range queries
                if ( ! empty( $query['after'] ) )
                        $lt .= '=';
                        $gt .= '=';
                }
 
                // Range queries
                if ( ! empty( $query['after'] ) )
-                       $where_parts[] = $wpdb->prepare( "$column $gt %s", $this->build_mysql_datetime( $query['after'], true ) );
+                       $where_parts[] = $wpdb->prepare( "$column $gt %s", $this->build_mysql_datetime( $query['after'], ! $inclusive ) );
 
                if ( ! empty( $query['before'] ) )
 
                if ( ! empty( $query['before'] ) )
-                       $where_parts[] = $wpdb->prepare( "$column $lt %s", $this->build_mysql_datetime( $query['before'], false ) );
+                       $where_parts[] = $wpdb->prepare( "$column $lt %s", $this->build_mysql_datetime( $query['before'], $inclusive ) );
 
                // Specific value queries
 
 
                // Specific value queries
 
@@ -256,16 +263,12 @@ class WP_Date_Query {
 
                if ( isset( $query['month'] ) && $value = $this->build_value( $compare, $query['month'] ) )
                        $where_parts[] = "MONTH( $column ) $compare $value";
 
                if ( isset( $query['month'] ) && $value = $this->build_value( $compare, $query['month'] ) )
                        $where_parts[] = "MONTH( $column ) $compare $value";
-
-               // Legacy
-               if ( isset( $query['monthnum'] ) && $value = $this->build_value( $compare, $query['monthnum'] ) )
+               else if ( isset( $query['monthnum'] ) && $value = $this->build_value( $compare, $query['monthnum'] ) )
                        $where_parts[] = "MONTH( $column ) $compare $value";
 
                if ( isset( $query['week'] ) && false !== ( $value = $this->build_value( $compare, $query['week'] ) ) )
                        $where_parts[] = _wp_mysql_week( $column ) . " $compare $value";
                        $where_parts[] = "MONTH( $column ) $compare $value";
 
                if ( isset( $query['week'] ) && false !== ( $value = $this->build_value( $compare, $query['week'] ) ) )
                        $where_parts[] = _wp_mysql_week( $column ) . " $compare $value";
-
-               // Legacy
-               if ( isset( $query['w'] ) && false !== ( $value = $this->build_value( $compare, $query['w'] ) ) )
+               else if ( isset( $query['w'] ) && false !== ( $value = $this->build_value( $compare, $query['w'] ) ) )
                        $where_parts[] = _wp_mysql_week( $column ) . " $compare $value";
 
                if ( isset( $query['dayofyear'] ) && $value = $this->build_value( $compare, $query['dayofyear'] ) )
                        $where_parts[] = _wp_mysql_week( $column ) . " $compare $value";
 
                if ( isset( $query['dayofyear'] ) && $value = $this->build_value( $compare, $query['dayofyear'] ) )
index 6be5dd0904d79715692034ad20ed48a43635be3e..334ea71b812eec8989a132eecc3a106bf2f279e4 100644 (file)
@@ -247,16 +247,22 @@ function wp_ssl_constants() {
        /**
         * @since 2.6.0
         */
        /**
         * @since 2.6.0
         */
-       if ( !defined('FORCE_SSL_ADMIN') )
-               define('FORCE_SSL_ADMIN', false);
-       force_ssl_admin(FORCE_SSL_ADMIN);
+       if ( !defined( 'FORCE_SSL_ADMIN' ) ) {
+               if ( 'https' === parse_url( get_option( 'siteurl' ), PHP_URL_SCHEME ) ) {
+                       define( 'FORCE_SSL_ADMIN', true );
+               } else {
+                       define( 'FORCE_SSL_ADMIN', false );
+               }
+       }
+       force_ssl_admin( FORCE_SSL_ADMIN );
 
        /**
         * @since 2.6.0
 
        /**
         * @since 2.6.0
+        * @deprecated 4.0.0
         */
         */
-       if ( !defined('FORCE_SSL_LOGIN') )
-               define('FORCE_SSL_LOGIN', false);
-       force_ssl_login(FORCE_SSL_LOGIN);
+       if ( defined( 'FORCE_SSL_LOGIN' ) && FORCE_SSL_LOGIN ) {
+               force_ssl_admin( true );
+       }
 }
 
 /**
 }
 
 /**
index e48cc01fe2a86387aaf32cab83a9457f30557cd8..d54dbc732c8fcbfd470097832ef395d21a78d563 100644 (file)
  */
 class WP_Widget_Pages extends WP_Widget {
 
  */
 class WP_Widget_Pages extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array('classname' => 'widget_pages', 'description' => __( 'A list of your site&#8217;s Pages.') );
                parent::__construct('pages', __('Pages'), $widget_ops);
        }
 
                $widget_ops = array('classname' => 'widget_pages', 'description' => __( 'A list of your site&#8217;s Pages.') );
                parent::__construct('pages', __('Pages'), $widget_ops);
        }
 
-       function widget( $args, $instance ) {
-               extract( $args );
+       public function widget( $args, $instance ) {
 
                /**
                 * Filter the widget title.
 
                /**
                 * Filter the widget title.
@@ -54,20 +53,21 @@ class WP_Widget_Pages extends WP_Widget {
                        'exclude'     => $exclude
                ) ) );
 
                        'exclude'     => $exclude
                ) ) );
 
-               if ( !empty( $out ) ) {
-                       echo $before_widget;
-                       if ( $title)
-                               echo $before_title . $title . $after_title;
+               if ( ! empty( $out ) ) {
+                       echo $args['before_widget'];
+                       if ( $title ) {
+                               echo $args['before_title'] . $title . $args['after_title'];
+                       }
                ?>
                <ul>
                        <?php echo $out; ?>
                </ul>
                <?php
                ?>
                <ul>
                        <?php echo $out; ?>
                </ul>
                <?php
-                       echo $after_widget;
+                       echo $args['after_widget'];
                }
        }
 
                }
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                if ( in_array( $new_instance['sortby'], array( 'post_title', 'menu_order', 'ID' ) ) ) {
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                if ( in_array( $new_instance['sortby'], array( 'post_title', 'menu_order', 'ID' ) ) ) {
@@ -81,7 +81,7 @@ class WP_Widget_Pages extends WP_Widget {
                return $instance;
        }
 
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                //Defaults
                $instance = wp_parse_args( (array) $instance, array( 'sortby' => 'post_title', 'title' => '', 'exclude' => '') );
                $title = esc_attr( $instance['title'] );
                //Defaults
                $instance = wp_parse_args( (array) $instance, array( 'sortby' => 'post_title', 'title' => '', 'exclude' => '') );
                $title = esc_attr( $instance['title'] );
@@ -113,13 +113,12 @@ class WP_Widget_Pages extends WP_Widget {
  */
 class WP_Widget_Links extends WP_Widget {
 
  */
 class WP_Widget_Links extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array('description' => __( "Your blogroll" ) );
                parent::__construct('links', __('Links'), $widget_ops);
        }
 
                $widget_ops = array('description' => __( "Your blogroll" ) );
                parent::__construct('links', __('Links'), $widget_ops);
        }
 
-       function widget( $args, $instance ) {
-               extract($args, EXTR_SKIP);
+       public function widget( $args, $instance ) {
 
                $show_description = isset($instance['description']) ? $instance['description'] : false;
                $show_name = isset($instance['name']) ? $instance['name'] : false;
 
                $show_description = isset($instance['description']) ? $instance['description'] : false;
                $show_name = isset($instance['name']) ? $instance['name'] : false;
@@ -130,7 +129,7 @@ class WP_Widget_Links extends WP_Widget {
                $order = $orderby == 'rating' ? 'DESC' : 'ASC';
                $limit = isset( $instance['limit'] ) ? $instance['limit'] : -1;
 
                $order = $orderby == 'rating' ? 'DESC' : 'ASC';
                $limit = isset( $instance['limit'] ) ? $instance['limit'] : -1;
 
-               $before_widget = preg_replace('/id="[^"]*"/','id="%id"', $before_widget);
+               $before_widget = preg_replace( '/id="[^"]*"/', 'id="%id"', $args['before_widget'] );
 
                /**
                 * Filter the arguments for the Links widget.
 
                /**
                 * Filter the arguments for the Links widget.
@@ -142,8 +141,8 @@ class WP_Widget_Links extends WP_Widget {
                 * @param array $args An array of arguments to retrieve the links list.
                 */
                wp_list_bookmarks( apply_filters( 'widget_links_args', array(
                 * @param array $args An array of arguments to retrieve the links list.
                 */
                wp_list_bookmarks( apply_filters( 'widget_links_args', array(
-                       'title_before' => $before_title, 'title_after' => $after_title,
-                       'category_before' => $before_widget, 'category_after' => $after_widget,
+                       'title_before' => $args['before_title'], 'title_after' => $args['after_title'],
+                       'category_before' => $before_widget, 'category_after' => $args['after_widget'],
                        'show_images' => $show_images, 'show_description' => $show_description,
                        'show_name' => $show_name, 'show_rating' => $show_rating,
                        'category' => $category, 'class' => 'linkcat widget',
                        'show_images' => $show_images, 'show_description' => $show_description,
                        'show_name' => $show_name, 'show_rating' => $show_rating,
                        'category' => $category, 'class' => 'linkcat widget',
@@ -152,7 +151,7 @@ class WP_Widget_Links extends WP_Widget {
                ) ) );
        }
 
                ) ) );
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $new_instance = (array) $new_instance;
                $instance = array( 'images' => 0, 'name' => 0, 'description' => 0, 'rating' => 0 );
                foreach ( $instance as $field => $val ) {
                $new_instance = (array) $new_instance;
                $instance = array( 'images' => 0, 'name' => 0, 'description' => 0, 'rating' => 0 );
                foreach ( $instance as $field => $val ) {
@@ -170,7 +169,7 @@ class WP_Widget_Links extends WP_Widget {
                return $instance;
        }
 
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
 
                //Defaults
                $instance = wp_parse_args( (array) $instance, array( 'images' => true, 'name' => true, 'description' => false, 'rating' => false, 'category' => false, 'orderby' => 'name', 'limit' => -1 ) );
 
                //Defaults
                $instance = wp_parse_args( (array) $instance, array( 'images' => true, 'name' => true, 'description' => false, 'rating' => false, 'category' => false, 'orderby' => 'name', 'limit' => -1 ) );
@@ -223,28 +222,28 @@ class WP_Widget_Links extends WP_Widget {
  */
 class WP_Widget_Search extends WP_Widget {
 
  */
 class WP_Widget_Search extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array('classname' => 'widget_search', 'description' => __( "A search form for your site.") );
                parent::__construct( 'search', _x( 'Search', 'Search widget' ), $widget_ops );
        }
 
                $widget_ops = array('classname' => 'widget_search', 'description' => __( "A search form for your site.") );
                parent::__construct( 'search', _x( 'Search', 'Search widget' ), $widget_ops );
        }
 
-       function widget( $args, $instance ) {
-               extract($args);
+       public function widget( $args, $instance ) {
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
 
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
 
-               echo $before_widget;
-               if ( $title )
-                       echo $before_title . $title . $after_title;
+               echo $args['before_widget'];
+               if ( $title ) {
+                       echo $args['before_title'] . $title . $args['after_title'];
+               }
 
                // Use current theme search form if it exists
                get_search_form();
 
 
                // Use current theme search form if it exists
                get_search_form();
 
-               echo $after_widget;
+               echo $args['after_widget'];
        }
 
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                $instance = wp_parse_args( (array) $instance, array( 'title' => '') );
                $title = $instance['title'];
 ?>
                $instance = wp_parse_args( (array) $instance, array( 'title' => '') );
                $title = $instance['title'];
 ?>
@@ -252,7 +251,7 @@ class WP_Widget_Search extends WP_Widget {
 <?php
        }
 
 <?php
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance = $old_instance;
                $new_instance = wp_parse_args((array) $new_instance, array( 'title' => ''));
                $instance['title'] = strip_tags($new_instance['title']);
                $instance = $old_instance;
                $new_instance = wp_parse_args((array) $new_instance, array( 'title' => ''));
                $instance['title'] = strip_tags($new_instance['title']);
@@ -268,22 +267,22 @@ class WP_Widget_Search extends WP_Widget {
  */
 class WP_Widget_Archives extends WP_Widget {
 
  */
 class WP_Widget_Archives extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array('classname' => 'widget_archive', 'description' => __( 'A monthly archive of your site&#8217;s Posts.') );
                parent::__construct('archives', __('Archives'), $widget_ops);
        }
 
                $widget_ops = array('classname' => 'widget_archive', 'description' => __( 'A monthly archive of your site&#8217;s Posts.') );
                parent::__construct('archives', __('Archives'), $widget_ops);
        }
 
-       function widget( $args, $instance ) {
-               extract($args);
+       public function widget( $args, $instance ) {
                $c = ! empty( $instance['count'] ) ? '1' : '0';
                $d = ! empty( $instance['dropdown'] ) ? '1' : '0';
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $c = ! empty( $instance['count'] ) ? '1' : '0';
                $d = ! empty( $instance['dropdown'] ) ? '1' : '0';
 
                /** This filter is documented in wp-includes/default-widgets.php */
-               $title = apply_filters( 'widget_title', empty($instance['title'] ) ? __( 'Archives' ) : $instance['title'], $instance, $this->id_base );
+               $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Archives' ) : $instance['title'], $instance, $this->id_base );
 
 
-               echo $before_widget;
-               if ( $title )
-                       echo $before_title . $title . $after_title;
+               echo $args['before_widget'];
+               if ( $title ) {
+                       echo $args['before_title'] . $title . $args['after_title'];
+               }
 
                if ( $d ) {
 ?>
 
                if ( $d ) {
 ?>
@@ -330,10 +329,10 @@ class WP_Widget_Archives extends WP_Widget {
 <?php
                }
 
 <?php
                }
 
-               echo $after_widget;
+               echo $args['after_widget'];
        }
 
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance = $old_instance;
                $new_instance = wp_parse_args( (array) $new_instance, array( 'title' => '', 'count' => 0, 'dropdown' => '') );
                $instance['title'] = strip_tags($new_instance['title']);
                $instance = $old_instance;
                $new_instance = wp_parse_args( (array) $new_instance, array( 'title' => '', 'count' => 0, 'dropdown' => '') );
                $instance['title'] = strip_tags($new_instance['title']);
@@ -343,7 +342,7 @@ class WP_Widget_Archives extends WP_Widget {
                return $instance;
        }
 
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'count' => 0, 'dropdown' => '') );
                $title = strip_tags($instance['title']);
                $count = $instance['count'] ? 'checked="checked"' : '';
                $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'count' => 0, 'dropdown' => '') );
                $title = strip_tags($instance['title']);
                $count = $instance['count'] ? 'checked="checked"' : '';
@@ -368,26 +367,26 @@ class WP_Widget_Archives extends WP_Widget {
  */
 class WP_Widget_Meta extends WP_Widget {
 
  */
 class WP_Widget_Meta extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array('classname' => 'widget_meta', 'description' => __( "Login, RSS, &amp; WordPress.org links.") );
                parent::__construct('meta', __('Meta'), $widget_ops);
        }
 
                $widget_ops = array('classname' => 'widget_meta', 'description' => __( "Login, RSS, &amp; WordPress.org links.") );
                parent::__construct('meta', __('Meta'), $widget_ops);
        }
 
-       function widget( $args, $instance ) {
-               extract($args);
+       public function widget( $args, $instance ) {
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty($instance['title']) ? __( 'Meta' ) : $instance['title'], $instance, $this->id_base );
 
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty($instance['title']) ? __( 'Meta' ) : $instance['title'], $instance, $this->id_base );
 
-               echo $before_widget;
-               if ( $title )
-                       echo $before_title . $title . $after_title;
+               echo $args['before_widget'];
+               if ( $title ) {
+                       echo $args['before_title'] . $title . $args['after_title'];
+               }
 ?>
                        <ul>
                        <?php wp_register(); ?>
                        <li><?php wp_loginout(); ?></li>
 ?>
                        <ul>
                        <?php wp_register(); ?>
                        <li><?php wp_loginout(); ?></li>
-                       <li><a href="<?php bloginfo('rss2_url'); ?>" title="<?php echo esc_attr(__('Syndicate this site using RSS 2.0')); ?>"><?php _e('Entries <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
-                       <li><a href="<?php bloginfo('comments_rss2_url'); ?>" title="<?php echo esc_attr(__('The latest comments to all posts in RSS')); ?>"><?php _e('Comments <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
+                       <li><a href="<?php bloginfo('rss2_url'); ?>"><?php _e('Entries <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
+                       <li><a href="<?php bloginfo('comments_rss2_url'); ?>"><?php _e('Comments <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
 <?php
                        /**
                         * Filter the "Powered by WordPress" text in the Meta widget.
 <?php
                        /**
                         * Filter the "Powered by WordPress" text in the Meta widget.
@@ -406,17 +405,17 @@ class WP_Widget_Meta extends WP_Widget {
 ?>
                        </ul>
 <?php
 ?>
                        </ul>
 <?php
-               echo $after_widget;
+               echo $args['after_widget'];
        }
 
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
 
                return $instance;
        }
 
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
 
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
                $title = strip_tags($instance['title']);
 ?>
                $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
                $title = strip_tags($instance['title']);
 ?>
@@ -432,34 +431,34 @@ class WP_Widget_Meta extends WP_Widget {
  */
 class WP_Widget_Calendar extends WP_Widget {
 
  */
 class WP_Widget_Calendar extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array('classname' => 'widget_calendar', 'description' => __( 'A calendar of your site&#8217;s Posts.') );
                parent::__construct('calendar', __('Calendar'), $widget_ops);
        }
 
                $widget_ops = array('classname' => 'widget_calendar', 'description' => __( 'A calendar of your site&#8217;s Posts.') );
                parent::__construct('calendar', __('Calendar'), $widget_ops);
        }
 
-       function widget( $args, $instance ) {
-               extract($args);
+       public function widget( $args, $instance ) {
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
 
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
 
-               echo $before_widget;
-               if ( $title )
-                       echo $before_title . $title . $after_title;
+               echo $args['before_widget'];
+               if ( $title ) {
+                       echo $args['before_title'] . $title . $args['after_title'];
+               }
                echo '<div id="calendar_wrap">';
                get_calendar();
                echo '</div>';
                echo '<div id="calendar_wrap">';
                get_calendar();
                echo '</div>';
-               echo $after_widget;
+               echo $args['after_widget'];
        }
 
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
 
                return $instance;
        }
 
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
 
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
                $title = strip_tags($instance['title']);
 ?>
                $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
                $title = strip_tags($instance['title']);
 ?>
@@ -476,14 +475,13 @@ class WP_Widget_Calendar extends WP_Widget {
  */
 class WP_Widget_Text extends WP_Widget {
 
  */
 class WP_Widget_Text extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array('classname' => 'widget_text', 'description' => __('Arbitrary text or HTML.'));
                $control_ops = array('width' => 400, 'height' => 350);
                parent::__construct('text', __('Text'), $widget_ops, $control_ops);
        }
 
                $widget_ops = array('classname' => 'widget_text', 'description' => __('Arbitrary text or HTML.'));
                $control_ops = array('width' => 400, 'height' => 350);
                parent::__construct('text', __('Text'), $widget_ops, $control_ops);
        }
 
-       function widget( $args, $instance ) {
-               extract($args);
+       public function widget( $args, $instance ) {
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
@@ -497,14 +495,16 @@ class WP_Widget_Text extends WP_Widget {
                 * @param WP_Widget $instance    WP_Widget instance.
                 */
                $text = apply_filters( 'widget_text', empty( $instance['text'] ) ? '' : $instance['text'], $instance );
                 * @param WP_Widget $instance    WP_Widget instance.
                 */
                $text = apply_filters( 'widget_text', empty( $instance['text'] ) ? '' : $instance['text'], $instance );
-               echo $before_widget;
-               if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?>
+               echo $args['before_widget'];
+               if ( ! empty( $title ) ) {
+                       echo $args['before_title'] . $title . $args['after_title'];
+               } ?>
                        <div class="textwidget"><?php echo !empty( $instance['filter'] ) ? wpautop( $text ) : $text; ?></div>
                <?php
                        <div class="textwidget"><?php echo !empty( $instance['filter'] ) ? wpautop( $text ) : $text; ?></div>
                <?php
-               echo $after_widget;
+               echo $args['after_widget'];
        }
 
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                if ( current_user_can('unfiltered_html') )
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                if ( current_user_can('unfiltered_html') )
@@ -515,7 +515,7 @@ class WP_Widget_Text extends WP_Widget {
                return $instance;
        }
 
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'text' => '' ) );
                $title = strip_tags($instance['title']);
                $text = esc_textarea($instance['text']);
                $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'text' => '' ) );
                $title = strip_tags($instance['title']);
                $text = esc_textarea($instance['text']);
@@ -537,13 +537,12 @@ class WP_Widget_Text extends WP_Widget {
  */
 class WP_Widget_Categories extends WP_Widget {
 
  */
 class WP_Widget_Categories extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array( 'classname' => 'widget_categories', 'description' => __( "A list or dropdown of categories." ) );
                parent::__construct('categories', __('Categories'), $widget_ops);
        }
 
                $widget_ops = array( 'classname' => 'widget_categories', 'description' => __( "A list or dropdown of categories." ) );
                parent::__construct('categories', __('Categories'), $widget_ops);
        }
 
-       function widget( $args, $instance ) {
-               extract( $args );
+       public function widget( $args, $instance ) {
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base );
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base );
@@ -552,9 +551,10 @@ class WP_Widget_Categories extends WP_Widget {
                $h = ! empty( $instance['hierarchical'] ) ? '1' : '0';
                $d = ! empty( $instance['dropdown'] ) ? '1' : '0';
 
                $h = ! empty( $instance['hierarchical'] ) ? '1' : '0';
                $d = ! empty( $instance['dropdown'] ) ? '1' : '0';
 
-               echo $before_widget;
-               if ( $title )
-                       echo $before_title . $title . $after_title;
+               echo $args['before_widget'];
+               if ( $title ) {
+                       echo $args['before_title'] . $title . $args['after_title'];
+               }
 
                $cat_args = array('orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h);
 
 
                $cat_args = array('orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h);
 
@@ -605,10 +605,10 @@ class WP_Widget_Categories extends WP_Widget {
 <?php
                }
 
 <?php
                }
 
-               echo $after_widget;
+               echo $args['after_widget'];
        }
 
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                $instance['count'] = !empty($new_instance['count']) ? 1 : 0;
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                $instance['count'] = !empty($new_instance['count']) ? 1 : 0;
@@ -618,7 +618,7 @@ class WP_Widget_Categories extends WP_Widget {
                return $instance;
        }
 
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                //Defaults
                $instance = wp_parse_args( (array) $instance, array( 'title' => '') );
                $title = esc_attr( $instance['title'] );
                //Defaults
                $instance = wp_parse_args( (array) $instance, array( 'title' => '') );
                $title = esc_attr( $instance['title'] );
@@ -649,7 +649,7 @@ class WP_Widget_Categories extends WP_Widget {
  */
 class WP_Widget_Recent_Posts extends WP_Widget {
 
  */
 class WP_Widget_Recent_Posts extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array('classname' => 'widget_recent_entries', 'description' => __( "Your site&#8217;s most recent Posts.") );
                parent::__construct('recent-posts', __('Recent Posts'), $widget_ops);
                $this->alt_option_name = 'widget_recent_entries';
                $widget_ops = array('classname' => 'widget_recent_entries', 'description' => __( "Your site&#8217;s most recent Posts.") );
                parent::__construct('recent-posts', __('Recent Posts'), $widget_ops);
                $this->alt_option_name = 'widget_recent_entries';
@@ -659,7 +659,7 @@ class WP_Widget_Recent_Posts extends WP_Widget {
                add_action( 'switch_theme', array($this, 'flush_widget_cache') );
        }
 
                add_action( 'switch_theme', array($this, 'flush_widget_cache') );
        }
 
-       function widget($args, $instance) {
+       public function widget($args, $instance) {
                $cache = array();
                if ( ! $this->is_preview() ) {
                        $cache = wp_cache_get( 'widget_recent_posts', 'widget' );
                $cache = array();
                if ( ! $this->is_preview() ) {
                        $cache = wp_cache_get( 'widget_recent_posts', 'widget' );
@@ -679,7 +679,6 @@ class WP_Widget_Recent_Posts extends WP_Widget {
                }
 
                ob_start();
                }
 
                ob_start();
-               extract($args);
 
                $title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : __( 'Recent Posts' );
 
 
                $title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : __( 'Recent Posts' );
 
@@ -709,8 +708,10 @@ class WP_Widget_Recent_Posts extends WP_Widget {
 
                if ($r->have_posts()) :
 ?>
 
                if ($r->have_posts()) :
 ?>
-               <?php echo $before_widget; ?>
-               <?php if ( $title ) echo $before_title . $title . $after_title; ?>
+               <?php echo $args['before_widget']; ?>
+               <?php if ( $title ) {
+                       echo $args['before_title'] . $title . $args['after_title'];
+               } ?>
                <ul>
                <?php while ( $r->have_posts() ) : $r->the_post(); ?>
                        <li>
                <ul>
                <?php while ( $r->have_posts() ) : $r->the_post(); ?>
                        <li>
@@ -721,7 +722,7 @@ class WP_Widget_Recent_Posts extends WP_Widget {
                        </li>
                <?php endwhile; ?>
                </ul>
                        </li>
                <?php endwhile; ?>
                </ul>
-               <?php echo $after_widget; ?>
+               <?php echo $args['after_widget']; ?>
 <?php
                // Reset the global $the_post as this query will have stomped on it
                wp_reset_postdata();
 <?php
                // Reset the global $the_post as this query will have stomped on it
                wp_reset_postdata();
@@ -736,7 +737,7 @@ class WP_Widget_Recent_Posts extends WP_Widget {
                }
        }
 
                }
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                $instance['number'] = (int) $new_instance['number'];
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                $instance['number'] = (int) $new_instance['number'];
@@ -750,11 +751,11 @@ class WP_Widget_Recent_Posts extends WP_Widget {
                return $instance;
        }
 
                return $instance;
        }
 
-       function flush_widget_cache() {
+       public function flush_widget_cache() {
                wp_cache_delete('widget_recent_posts', 'widget');
        }
 
                wp_cache_delete('widget_recent_posts', 'widget');
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                $title     = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : '';
                $number    = isset( $instance['number'] ) ? absint( $instance['number'] ) : 5;
                $show_date = isset( $instance['show_date'] ) ? (bool) $instance['show_date'] : false;
                $title     = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : '';
                $number    = isset( $instance['number'] ) ? absint( $instance['number'] ) : 5;
                $show_date = isset( $instance['show_date'] ) ? (bool) $instance['show_date'] : false;
@@ -778,7 +779,7 @@ class WP_Widget_Recent_Posts extends WP_Widget {
  */
 class WP_Widget_Recent_Comments extends WP_Widget {
 
  */
 class WP_Widget_Recent_Comments extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array('classname' => 'widget_recent_comments', 'description' => __( 'Your site&#8217;s most recent comments.' ) );
                parent::__construct('recent-comments', __('Recent Comments'), $widget_ops);
                $this->alt_option_name = 'widget_recent_comments';
                $widget_ops = array('classname' => 'widget_recent_comments', 'description' => __( 'Your site&#8217;s most recent comments.' ) );
                parent::__construct('recent-comments', __('Recent Comments'), $widget_ops);
                $this->alt_option_name = 'widget_recent_comments';
@@ -791,7 +792,7 @@ class WP_Widget_Recent_Comments extends WP_Widget {
                add_action( 'transition_comment_status', array($this, 'flush_widget_cache') );
        }
 
                add_action( 'transition_comment_status', array($this, 'flush_widget_cache') );
        }
 
-       function recent_comments_style() {
+       public function recent_comments_style() {
 
                /**
                 * Filter the Recent Comments default widget styles.
 
                /**
                 * Filter the Recent Comments default widget styles.
@@ -809,11 +810,11 @@ class WP_Widget_Recent_Comments extends WP_Widget {
 <?php
        }
 
 <?php
        }
 
-       function flush_widget_cache() {
+       public function flush_widget_cache() {
                wp_cache_delete('widget_recent_comments', 'widget');
        }
 
                wp_cache_delete('widget_recent_comments', 'widget');
        }
 
-       function widget( $args, $instance ) {
+       public function widget( $args, $instance ) {
                global $comments, $comment;
 
                $cache = array();
                global $comments, $comment;
 
                $cache = array();
@@ -832,7 +833,6 @@ class WP_Widget_Recent_Comments extends WP_Widget {
                        return;
                }
 
                        return;
                }
 
-               extract($args, EXTR_SKIP);
                $output = '';
 
                $title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : __( 'Recent Comments' );
                $output = '';
 
                $title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : __( 'Recent Comments' );
@@ -859,9 +859,10 @@ class WP_Widget_Recent_Comments extends WP_Widget {
                        'post_status' => 'publish'
                ) ) );
 
                        'post_status' => 'publish'
                ) ) );
 
-               $output .= $before_widget;
-               if ( $title )
-                       $output .= $before_title . $title . $after_title;
+               $output .= $args['before_widget'];
+               if ( $title ) {
+                       $output .= $args['before_title'] . $title . $args['after_title'];
+               }
 
                $output .= '<ul id="recentcomments">';
                if ( $comments ) {
 
                $output .= '<ul id="recentcomments">';
                if ( $comments ) {
@@ -870,11 +871,17 @@ class WP_Widget_Recent_Comments extends WP_Widget {
                        _prime_post_caches( $post_ids, strpos( get_option( 'permalink_structure' ), '%category%' ), false );
 
                        foreach ( (array) $comments as $comment) {
                        _prime_post_caches( $post_ids, strpos( get_option( 'permalink_structure' ), '%category%' ), false );
 
                        foreach ( (array) $comments as $comment) {
-                               $output .=  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author_link(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
+                               $output .= '<li class="recentcomments">';
+                               /* translators: comments widget: 1: comment author, 2: post link */
+                               $output .= sprintf( _x( '%1$s on %2$s', 'widgets' ),
+                                       '<span class="comment-author-link">' . get_comment_author_link() . '</span>',
+                                       '<a href="' . esc_url( get_comment_link( $comment->comment_ID ) ) . '">' . get_the_title( $comment->comment_post_ID ) . '</a>'
+                               );
+                               $output .= '</li>';
                        }
                }
                $output .= '</ul>';
                        }
                }
                $output .= '</ul>';
-               $output .= $after_widget;
+               $output .= $args['after_widget'];
 
                echo $output;
 
 
                echo $output;
 
@@ -884,7 +891,7 @@ class WP_Widget_Recent_Comments extends WP_Widget {
                }
        }
 
                }
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                $instance['number'] = absint( $new_instance['number'] );
                $instance = $old_instance;
                $instance['title'] = strip_tags($new_instance['title']);
                $instance['number'] = absint( $new_instance['number'] );
@@ -897,7 +904,7 @@ class WP_Widget_Recent_Comments extends WP_Widget {
                return $instance;
        }
 
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                $title  = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : '';
                $number = isset( $instance['number'] ) ? absint( $instance['number'] ) : 5;
 ?>
                $title  = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : '';
                $number = isset( $instance['number'] ) ? absint( $instance['number'] ) : 5;
 ?>
@@ -917,19 +924,17 @@ class WP_Widget_Recent_Comments extends WP_Widget {
  */
 class WP_Widget_RSS extends WP_Widget {
 
  */
 class WP_Widget_RSS extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array( 'description' => __('Entries from any RSS or Atom feed.') );
                $control_ops = array( 'width' => 400, 'height' => 200 );
                parent::__construct( 'rss', __('RSS'), $widget_ops, $control_ops );
        }
 
                $widget_ops = array( 'description' => __('Entries from any RSS or Atom feed.') );
                $control_ops = array( 'width' => 400, 'height' => 200 );
                parent::__construct( 'rss', __('RSS'), $widget_ops, $control_ops );
        }
 
-       function widget($args, $instance) {
+       public function widget($args, $instance) {
 
                if ( isset($instance['error']) && $instance['error'] )
                        return;
 
 
                if ( isset($instance['error']) && $instance['error'] )
                        return;
 
-               extract($args, EXTR_SKIP);
-
                $url = ! empty( $instance['url'] ) ? $instance['url'] : '';
                while ( stristr($url, 'http') != $url )
                        $url = substr($url, 1);
                $url = ! empty( $instance['url'] ) ? $instance['url'] : '';
                while ( stristr($url, 'http') != $url )
                        $url = substr($url, 1);
@@ -964,25 +969,26 @@ class WP_Widget_RSS extends WP_Widget {
                $url = esc_url(strip_tags($url));
                $icon = includes_url('images/rss.png');
                if ( $title )
                $url = esc_url(strip_tags($url));
                $icon = includes_url('images/rss.png');
                if ( $title )
-                       $title = "<a class='rsswidget' href='$url' title='" . esc_attr__( 'Syndicate this content' ) ."'><img style='border:0' width='14' height='14' src='$icon' alt='RSS' /></a> <a class='rsswidget' href='$link' title='$desc'>$title</a>";
+                       $title = "<a class='rsswidget' href='$url'><img style='border:0' width='14' height='14' src='$icon' alt='RSS' /></a> <a class='rsswidget' href='$link'>$title</a>";
 
 
-               echo $before_widget;
-               if ( $title )
-                       echo $before_title . $title . $after_title;
+               echo $args['before_widget'];
+               if ( $title ) {
+                       echo $args['before_title'] . $title . $args['after_title'];
+               }
                wp_widget_rss_output( $rss, $instance );
                wp_widget_rss_output( $rss, $instance );
-               echo $after_widget;
+               echo $args['after_widget'];
 
                if ( ! is_wp_error($rss) )
                        $rss->__destruct();
                unset($rss);
        }
 
 
                if ( ! is_wp_error($rss) )
                        $rss->__destruct();
                unset($rss);
        }
 
-       function update($new_instance, $old_instance) {
+       public function update($new_instance, $old_instance) {
                $testurl = ( isset( $new_instance['url'] ) && ( !isset( $old_instance['url'] ) || ( $new_instance['url'] != $old_instance['url'] ) ) );
                return wp_widget_rss_process( $new_instance, $testurl );
        }
 
                $testurl = ( isset( $new_instance['url'] ) && ( !isset( $old_instance['url'] ) || ( $new_instance['url'] != $old_instance['url'] ) ) );
                return wp_widget_rss_process( $new_instance, $testurl );
        }
 
-       function form($instance) {
+       public function form($instance) {
 
                if ( empty($instance) )
                        $instance = array( 'title' => '', 'url' => '', 'items' => 10, 'error' => false, 'show_summary' => 0, 'show_author' => 0, 'show_date' => 0 );
 
                if ( empty($instance) )
                        $instance = array( 'title' => '', 'url' => '', 'items' => 10, 'error' => false, 'show_summary' => 0, 'show_author' => 0, 'show_date' => 0 );
@@ -1016,16 +1022,15 @@ function wp_widget_rss_output( $rss, $args = array() ) {
                return;
        }
 
                return;
        }
 
-       $default_args = array( 'show_author' => 0, 'show_date' => 0, 'show_summary' => 0 );
+       $default_args = array( 'show_author' => 0, 'show_date' => 0, 'show_summary' => 0, 'items' => 0 );
        $args = wp_parse_args( $args, $default_args );
        $args = wp_parse_args( $args, $default_args );
-       extract( $args, EXTR_SKIP );
 
 
-       $items = (int) $items;
+       $items = (int) $args['items'];
        if ( $items < 1 || 20 < $items )
                $items = 10;
        if ( $items < 1 || 20 < $items )
                $items = 10;
-       $show_summary  = (int) $show_summary;
-       $show_author   = (int) $show_author;
-       $show_date     = (int) $show_date;
+       $show_summary  = (int) $args['show_summary'];
+       $show_author   = (int) $args['show_author'];
+       $show_date     = (int) $args['show_date'];
 
        if ( !$rss->get_item_quantity() ) {
                echo '<ul><li>' . __( 'An error has occurred, which probably means the feed is down. Try again later.' ) . '</li></ul>';
 
        if ( !$rss->get_item_quantity() ) {
                echo '<ul><li>' . __( 'An error has occurred, which probably means the feed is down. Try again later.' ) . '</li></ul>';
@@ -1035,29 +1040,28 @@ function wp_widget_rss_output( $rss, $args = array() ) {
        }
 
        echo '<ul>';
        }
 
        echo '<ul>';
-       foreach ( $rss->get_items(0, $items) as $item ) {
+       foreach ( $rss->get_items( 0, $items ) as $item ) {
                $link = $item->get_link();
                $link = $item->get_link();
-               while ( stristr($link, 'http') != $link )
-                       $link = substr($link, 1);
-               $link = esc_url(strip_tags($link));
-               $title = esc_attr(strip_tags($item->get_title()));
-               if ( empty($title) )
-                       $title = __('Untitled');
+               while ( stristr( $link, 'http' ) != $link ) {
+                       $link = substr( $link, 1 );
+               }
+               $link = esc_url( strip_tags( $link ) );
+
+               $title = esc_html( trim( strip_tags( $item->get_title() ) ) );
+               if ( empty( $title ) ) {
+                       $title = __( 'Untitled' );
+               }
 
                $desc = @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) );
 
                $desc = @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) );
-               $desc = esc_attr( strip_tags( $desc ) );
-               $desc = trim( str_replace( array( "\n", "\r" ), ' ', $desc ) );
-               $desc = wp_html_excerpt( $desc, 360 );
+               $desc = esc_attr( wp_trim_words( $desc, 55, ' [&hellip;]' ) );
 
                $summary = '';
                if ( $show_summary ) {
                        $summary = $desc;
 
 
                $summary = '';
                if ( $show_summary ) {
                        $summary = $desc;
 
-                       // Append ellipsis. Change existing [...] to [&hellip;].
+                       // Change existing [...] to [&hellip;].
                        if ( '[...]' == substr( $summary, -5 ) ) {
                                $summary = substr( $summary, 0, -5 ) . '[&hellip;]';
                        if ( '[...]' == substr( $summary, -5 ) ) {
                                $summary = substr( $summary, 0, -5 ) . '[&hellip;]';
-                       } elseif ( '[&hellip;]' != substr( $summary, -10 ) && $desc !== $summary ) {
-                               $summary .= ' [&hellip;]';
                        }
 
                        $summary = '<div class="rssSummary">' . esc_html( $summary ) . '</div>';
                        }
 
                        $summary = '<div class="rssSummary">' . esc_html( $summary ) . '</div>';
@@ -1086,7 +1090,7 @@ function wp_widget_rss_output( $rss, $args = array() ) {
                } elseif ( $show_summary ) {
                        echo "<li><a class='rsswidget' href='$link'>$title</a>{$date}{$summary}{$author}</li>";
                } else {
                } elseif ( $show_summary ) {
                        echo "<li><a class='rsswidget' href='$link'>$title</a>{$date}{$summary}{$author}</li>";
                } else {
-                       echo "<li><a class='rsswidget' href='$link' title='$desc'>$title</a>{$date}{$author}</li>";
+                       echo "<li><a class='rsswidget' href='$link'>$title</a>{$date}{$author}</li>";
                }
        }
        echo '</ul>';
                }
        }
        echo '</ul>';
@@ -1107,56 +1111,58 @@ function wp_widget_rss_output( $rss, $args = array() ) {
  * @param array $inputs Override default display options.
  */
 function wp_widget_rss_form( $args, $inputs = null ) {
  * @param array $inputs Override default display options.
  */
 function wp_widget_rss_form( $args, $inputs = null ) {
-
        $default_inputs = array( 'url' => true, 'title' => true, 'items' => true, 'show_summary' => true, 'show_author' => true, 'show_date' => true );
        $inputs = wp_parse_args( $inputs, $default_inputs );
        $default_inputs = array( 'url' => true, 'title' => true, 'items' => true, 'show_summary' => true, 'show_author' => true, 'show_date' => true );
        $inputs = wp_parse_args( $inputs, $default_inputs );
-       extract( $args );
-       extract( $inputs, EXTR_SKIP );
 
 
-       $number = esc_attr( $number );
-       $title  = esc_attr( $title );
-       $url    = esc_url( $url );
-       $items  = (int) $items;
-       if ( $items < 1 || 20 < $items )
-               $items  = 10;
-       $show_summary   = (int) $show_summary;
-       $show_author    = (int) $show_author;
-       $show_date      = (int) $show_date;
+       $args['number'] = esc_attr( $args['number'] );
+       $args['title'] = isset( $args['title'] ) ? esc_attr( $args['title'] ) : '';
+       $args['url'] = isset( $args['url'] ) ? esc_url( $args['url'] ) : '';
+       $args['items'] = isset( $args['items'] ) ? (int) $args['items'] : 0;
 
 
-       if ( !empty($error) )
-               echo '<p class="widget-error"><strong>' . sprintf( __('RSS Error: %s'), $error) . '</strong></p>';
+       if ( $args['items'] < 1 || 20 < $args['items'] ) {
+               $args['items'] = 10;
+       }
+
+       $args['show_summary']   = isset( $args['show_summary'] ) ? (int) $args['show_summary'] : (int) $inputs['show_summary'];
+       $args['show_author']    = isset( $args['show_author'] ) ? (int) $args['show_author'] : (int) $inputs['show_author'];
+       $args['show_date']      = isset( $args['show_date'] ) ? (int) $args['show_date'] : (int) $inputs['show_date'];
+
+       if ( ! empty( $args['error'] ) ) {
+               echo '<p class="widget-error"><strong>' . sprintf( __( 'RSS Error: %s' ), $args['error'] ) . '</strong></p>';
+       }
 
        if ( $inputs['url'] ) :
 ?>
 
        if ( $inputs['url'] ) :
 ?>
-       <p><label for="rss-url-<?php echo $number; ?>"><?php _e('Enter the RSS feed URL here:'); ?></label>
-       <input class="widefat" id="rss-url-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][url]" type="text" value="<?php echo $url; ?>" /></p>
+       <p><label for="rss-url-<?php echo $args['number']; ?>"><?php _e( 'Enter the RSS feed URL here:' ); ?></label>
+       <input class="widefat" id="rss-url-<?php echo $args['number']; ?>" name="widget-rss[<?php echo $args['number']; ?>][url]" type="text" value="<?php echo $args['url']; ?>" /></p>
 <?php endif; if ( $inputs['title'] ) : ?>
 <?php endif; if ( $inputs['title'] ) : ?>
-       <p><label for="rss-title-<?php echo $number; ?>"><?php _e('Give the feed a title (optional):'); ?></label>
-       <input class="widefat" id="rss-title-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][title]" type="text" value="<?php echo $title; ?>" /></p>
+       <p><label for="rss-title-<?php echo $args['number']; ?>"><?php _e( 'Give the feed a title (optional):' ); ?></label>
+       <input class="widefat" id="rss-title-<?php echo $args['number']; ?>" name="widget-rss[<?php echo $args['number']; ?>][title]" type="text" value="<?php echo $args['title']; ?>" /></p>
 <?php endif; if ( $inputs['items'] ) : ?>
 <?php endif; if ( $inputs['items'] ) : ?>
-       <p><label for="rss-items-<?php echo $number; ?>"><?php _e('How many items would you like to display?'); ?></label>
-       <select id="rss-items-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][items]">
+       <p><label for="rss-items-<?php echo $args['number']; ?>"><?php _e( 'How many items would you like to display?' ); ?></label>
+       <select id="rss-items-<?php echo $args['number']; ?>" name="widget-rss[<?php echo $args['number']; ?>][items]">
 <?php
 <?php
-               for ( $i = 1; $i <= 20; ++$i )
-                       echo "<option value='$i' " . selected( $items, $i, false ) . ">$i</option>";
+               for ( $i = 1; $i <= 20; ++$i ) {
+                       echo "<option value='$i' " . selected( $args['items'], $i, false ) . ">$i</option>";
+               }
 ?>
        </select></p>
 <?php endif; if ( $inputs['show_summary'] ) : ?>
 ?>
        </select></p>
 <?php endif; if ( $inputs['show_summary'] ) : ?>
-       <p><input id="rss-show-summary-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][show_summary]" type="checkbox" value="1" <?php if ( $show_summary ) echo 'checked="checked"'; ?>/>
-       <label for="rss-show-summary-<?php echo $number; ?>"><?php _e('Display item content?'); ?></label></p>
+       <p><input id="rss-show-summary-<?php echo $args['number']; ?>" name="widget-rss[<?php echo $args['number']; ?>][show_summary]" type="checkbox" value="1" <?php checked( $args['show_summary'] ); ?> />
+       <label for="rss-show-summary-<?php echo $args['number']; ?>"><?php _e( 'Display item content?' ); ?></label></p>
 <?php endif; if ( $inputs['show_author'] ) : ?>
 <?php endif; if ( $inputs['show_author'] ) : ?>
-       <p><input id="rss-show-author-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][show_author]" type="checkbox" value="1" <?php if ( $show_author ) echo 'checked="checked"'; ?>/>
-       <label for="rss-show-author-<?php echo $number; ?>"><?php _e('Display item author if available?'); ?></label></p>
+       <p><input id="rss-show-author-<?php echo $args['number']; ?>" name="widget-rss[<?php echo $args['number']; ?>][show_author]" type="checkbox" value="1" <?php checked( $args['show_author'] ); ?> />
+       <label for="rss-show-author-<?php echo $args['number']; ?>"><?php _e( 'Display item author if available?' ); ?></label></p>
 <?php endif; if ( $inputs['show_date'] ) : ?>
 <?php endif; if ( $inputs['show_date'] ) : ?>
-       <p><input id="rss-show-date-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][show_date]" type="checkbox" value="1" <?php if ( $show_date ) echo 'checked="checked"'; ?>/>
-       <label for="rss-show-date-<?php echo $number; ?>"><?php _e('Display item date?'); ?></label></p>
+       <p><input id="rss-show-date-<?php echo $args['number']; ?>" name="widget-rss[<?php echo $args['number']; ?>][show_date]" type="checkbox" value="1" <?php checked( $args['show_date'] ); ?>/>
+       <label for="rss-show-date-<?php echo $args['number']; ?>"><?php _e( 'Display item date?' ); ?></label></p>
 <?php
        endif;
        foreach ( array_keys($default_inputs) as $input ) :
                if ( 'hidden' === $inputs[$input] ) :
                        $id = str_replace( '_', '-', $input );
 ?>
 <?php
        endif;
        foreach ( array_keys($default_inputs) as $input ) :
                if ( 'hidden' === $inputs[$input] ) :
                        $id = str_replace( '_', '-', $input );
 ?>
-       <input type="hidden" id="rss-<?php echo $id; ?>-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][<?php echo $input; ?>]" value="<?php echo $$input; ?>" />
+       <input type="hidden" id="rss-<?php echo $id; ?>-<?php echo $args['number']; ?>" name="widget-rss[<?php echo $args['number']; ?>][<?php echo $input; ?>]" value="<?php echo $args[ $input ]; ?>" />
 <?php
                endif;
        endforeach;
 <?php
                endif;
        endforeach;
@@ -1214,13 +1220,12 @@ function wp_widget_rss_process( $widget_rss, $check_feed = true ) {
  */
 class WP_Widget_Tag_Cloud extends WP_Widget {
 
  */
 class WP_Widget_Tag_Cloud extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array( 'description' => __( "A cloud of your most used tags.") );
                parent::__construct('tag_cloud', __('Tag Cloud'), $widget_ops);
        }
 
                $widget_ops = array( 'description' => __( "A cloud of your most used tags.") );
                parent::__construct('tag_cloud', __('Tag Cloud'), $widget_ops);
        }
 
-       function widget( $args, $instance ) {
-               extract($args);
+       public function widget( $args, $instance ) {
                $current_taxonomy = $this->_get_current_taxonomy($instance);
                if ( !empty($instance['title']) ) {
                        $title = $instance['title'];
                $current_taxonomy = $this->_get_current_taxonomy($instance);
                if ( !empty($instance['title']) ) {
                        $title = $instance['title'];
@@ -1236,9 +1241,10 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
 
                /** This filter is documented in wp-includes/default-widgets.php */
                $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
 
-               echo $before_widget;
-               if ( $title )
-                       echo $before_title . $title . $after_title;
+               echo $args['before_widget'];
+               if ( $title ) {
+                       echo $args['before_title'] . $title . $args['after_title'];
+               }
                echo '<div class="tagcloud">';
 
                /**
                echo '<div class="tagcloud">';
 
                /**
@@ -1256,16 +1262,16 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
                ) ) );
 
                echo "</div>\n";
                ) ) );
 
                echo "</div>\n";
-               echo $after_widget;
+               echo $args['after_widget'];
        }
 
        }
 
-       function update( $new_instance, $old_instance ) {
+       public function update( $new_instance, $old_instance ) {
                $instance['title'] = strip_tags(stripslashes($new_instance['title']));
                $instance['taxonomy'] = stripslashes($new_instance['taxonomy']);
                return $instance;
        }
 
                $instance['title'] = strip_tags(stripslashes($new_instance['title']));
                $instance['taxonomy'] = stripslashes($new_instance['taxonomy']);
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                $current_taxonomy = $this->_get_current_taxonomy($instance);
 ?>
        <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:') ?></label>
                $current_taxonomy = $this->_get_current_taxonomy($instance);
 ?>
        <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:') ?></label>
@@ -1282,7 +1288,7 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
        </select></p><?php
        }
 
        </select></p><?php
        }
 
-       function _get_current_taxonomy($instance) {
+       public function _get_current_taxonomy($instance) {
                if ( !empty($instance['taxonomy']) && taxonomy_exists($instance['taxonomy']) )
                        return $instance['taxonomy'];
 
                if ( !empty($instance['taxonomy']) && taxonomy_exists($instance['taxonomy']) )
                        return $instance['taxonomy'];
 
@@ -1297,12 +1303,12 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
  */
  class WP_Nav_Menu_Widget extends WP_Widget {
 
  */
  class WP_Nav_Menu_Widget extends WP_Widget {
 
-       function __construct() {
+       public function __construct() {
                $widget_ops = array( 'description' => __('Add a custom menu to your sidebar.') );
                parent::__construct( 'nav_menu', __('Custom Menu'), $widget_ops );
        }
 
                $widget_ops = array( 'description' => __('Add a custom menu to your sidebar.') );
                parent::__construct( 'nav_menu', __('Custom Menu'), $widget_ops );
        }
 
-       function widget($args, $instance) {
+       public function widget($args, $instance) {
                // Get menu
                $nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
 
                // Get menu
                $nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
 
@@ -1322,13 +1328,18 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
                echo $args['after_widget'];
        }
 
                echo $args['after_widget'];
        }
 
-       function update( $new_instance, $old_instance ) {
-               $instance['title'] = strip_tags( stripslashes($new_instance['title']) );
-               $instance['nav_menu'] = (int) $new_instance['nav_menu'];
+       public function update( $new_instance, $old_instance ) {
+               $instance = array();
+               if ( ! empty( $new_instance['title'] ) ) {
+                       $instance['title'] = strip_tags( stripslashes($new_instance['title']) );
+               }
+               if ( ! empty( $new_instance['nav_menu'] ) ) {
+                       $instance['nav_menu'] = (int) $new_instance['nav_menu'];
+               }
                return $instance;
        }
 
                return $instance;
        }
 
-       function form( $instance ) {
+       public function form( $instance ) {
                $title = isset( $instance['title'] ) ? $instance['title'] : '';
                $nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : '';
 
                $title = isset( $instance['title'] ) ? $instance['title'] : '';
                $nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : '';
 
index 43cf743b77e4047c547f3c7c797a1af23875f863..0671dc12570163bfe75493cd7e4c963f757f3dbb 100644 (file)
@@ -1308,6 +1308,27 @@ function get_category_children( $id, $before = '/', $after = '', $visited = arra
        return $chain;
 }
 
        return $chain;
 }
 
+/**
+ * Retrieves all category IDs.
+ *
+ * @since 2.0.0
+ * @deprecated 4.0.0 Use get_terms() instead.
+ * @see get_terms()
+ * @link http://codex.wordpress.org/Function_Reference/get_all_category_ids
+ *
+ * @return object List of all of the category IDs.
+ */
+function get_all_category_ids() {
+       _deprecated_function( __FUNCTION__, '4.0', 'get_terms()' );
+
+       if ( ! $cat_ids = wp_cache_get( 'all_category_ids', 'category' ) ) {
+               $cat_ids = get_terms( 'category', array('fields' => 'ids', 'get' => 'all') );
+               wp_cache_add( 'all_category_ids', $cat_ids, 'category' );
+       }
+
+       return $cat_ids;
+}
+
 /**
  * Retrieve the description of the author of the current post.
  *
 /**
  * Retrieve the description of the author of the current post.
  *
@@ -1916,13 +1937,11 @@ function get_attachment_icon_src( $id = 0, $fullsize = false ) {
                // We have a thumbnail desired, specified and existing
 
                $src_file = basename($src);
                // We have a thumbnail desired, specified and existing
 
                $src_file = basename($src);
-               $class = 'attachmentthumb';
        } elseif ( wp_attachment_is_image( $post->ID ) ) {
                // We have an image without a thumbnail
 
                $src = wp_get_attachment_url( $post->ID );
                $src_file = & $file;
        } elseif ( wp_attachment_is_image( $post->ID ) ) {
                // We have an image without a thumbnail
 
                $src = wp_get_attachment_url( $post->ID );
                $src_file = & $file;
-               $class = 'attachmentimage';
        } elseif ( $src = wp_mime_type_icon( $post->ID ) ) {
                // No thumb, no image. We'll look for a mime-related icon instead.
 
        } elseif ( $src = wp_mime_type_icon( $post->ID ) ) {
                // No thumb, no image. We'll look for a mime-related icon instead.
 
@@ -3438,3 +3457,45 @@ function format_to_post( $content ) {
        _deprecated_function( __FUNCTION__, '3.9' );
        return $content;
 }
        _deprecated_function( __FUNCTION__, '3.9' );
        return $content;
 }
+
+/**
+ * Formerly used to escape strings before searching the DB. It was poorly documented and never worked as described.
+ *
+ * @since 2.5.0
+ * @deprecated 4.0.0
+ * @deprecated Use wpdb::esc_like()
+ *
+ * @param string $text The text to be escaped.
+ * @return string text, safe for inclusion in LIKE query.
+ */
+function like_escape($text) {
+       _deprecated_function( __FUNCTION__, '4.0', 'wpdb::esc_like()' );
+       return str_replace( array( "%", "_" ), array( "\\%", "\\_" ), $text );
+}
+
+/**
+ * Determines if the URL can be accessed over SSL.
+ *
+ * Determines if the URL can be accessed over SSL by using the WordPress HTTP API to access
+ * the URL using https as the scheme.
+ *
+ * @since 2.5.0
+ * @deprecated 4.0.0
+ *
+ * @param string $url The URL to test.
+ * @return bool Whether SSL access is available.
+ */
+function url_is_accessable_via_ssl( $url ) {
+       _deprecated_function( __FUNCTION__, '4.0' );
+
+       $response = wp_remote_get( set_url_scheme( $url, 'https' ) );
+
+       if ( !is_wp_error( $response ) ) {
+               $status = wp_remote_retrieve_response_code( $response );
+               if ( 200 == $status || 401 == $status ) {
+                       return true;
+               }
+       }
+
+       return false;
+}
index 13a55a206a599f691c9a7d5d1fde240b8717d202..d9c8f6529d97a933e922ecbd0e06c22789fcf393 100644 (file)
@@ -7,15 +7,18 @@
 
 header('Content-Type: ' . feed_content_type('atom') . '; charset=' . get_option('blog_charset'), true);
 echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '" ?' . '>';
 
 header('Content-Type: ' . feed_content_type('atom') . '; charset=' . get_option('blog_charset'), true);
 echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '" ?' . '>';
+
+/** This action is documented in wp-includes/feed-rss2.php */
+do_action( 'rss_tag_pre', 'atom-comments' );
 ?>
 <feed
        xmlns="http://www.w3.org/2005/Atom"
        xml:lang="<?php bloginfo_rss( 'language' ); ?>"
        xmlns:thr="http://purl.org/syndication/thread/1.0"
 ?>
 <feed
        xmlns="http://www.w3.org/2005/Atom"
        xml:lang="<?php bloginfo_rss( 'language' ); ?>"
        xmlns:thr="http://purl.org/syndication/thread/1.0"
-       <?php 
+       <?php
                /** This action is documented in wp-includes/feed-atom.php */
                /** This action is documented in wp-includes/feed-atom.php */
-               do_action( 'atom_ns' ); 
-               
+               do_action( 'atom_ns' );
+
                /**
                 * Fires inside the feed tag in the Atom comment feed.
                 *
                /**
                 * Fires inside the feed tag in the Atom comment feed.
                 *
@@ -49,7 +52,7 @@ echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '" ?' . '>'
        <link rel="self" type="application/atom+xml" href="<?php bloginfo_rss('comments_atom_url'); ?>" />
        <id><?php bloginfo_rss('comments_atom_url'); ?></id>
 <?php } ?>
        <link rel="self" type="application/atom+xml" href="<?php bloginfo_rss('comments_atom_url'); ?>" />
        <id><?php bloginfo_rss('comments_atom_url'); ?></id>
 <?php } ?>
-<?php 
+<?php
        /**
         * Fires at the end of the Atom comment feed header.
         *
        /**
         * Fires at the end of the Atom comment feed header.
         *
index 666b52df99cad3e3523d939cbb32c757a9baa3aa..ae4cd7976c971c5838f5bc525a408557e1aca892 100644 (file)
@@ -8,7 +8,11 @@
 header('Content-Type: ' . feed_content_type('atom') . '; charset=' . get_option('blog_charset'), true);
 $more = 1;
 
 header('Content-Type: ' . feed_content_type('atom') . '; charset=' . get_option('blog_charset'), true);
 $more = 1;
 
-echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
+echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
+
+/** This action is documented in wp-includes/feed-rss2.php */
+do_action( 'rss_tag_pre', 'atom' );
+?>
 <feed
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:thr="http://purl.org/syndication/thread/1.0"
 <feed
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:thr="http://purl.org/syndication/thread/1.0"
index d3503af40d5b8bf6e79b97bffa0c1fff9f8d4a37..177ae96f6ad4082e43575d34404120690560d387 100644 (file)
@@ -8,7 +8,11 @@
 header('Content-Type: ' . feed_content_type('rdf') . '; charset=' . get_option('blog_charset'), true);
 $more = 1;
 
 header('Content-Type: ' . feed_content_type('rdf') . '; charset=' . get_option('blog_charset'), true);
 $more = 1;
 
-echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
+echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
+
+/** This action is documented in wp-includes/feed-rss2.php */
+do_action( 'rss_tag_pre', 'rdf' );
+?>
 <rdf:RDF
        xmlns="http://purl.org/rss/1.0/"
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 <rdf:RDF
        xmlns="http://purl.org/rss/1.0/"
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
index a8a1c13bbe0987c7c56fec444cec340b42b884cf..2a71da1f2c17389cdcbd6164035b92c1373eb954 100644 (file)
@@ -8,6 +8,9 @@
 header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
 
 echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
 header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
 
 echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
+
+/** This action is documented in wp-includes/feed-rss2.php */
+do_action( 'rss_tag_pre', 'rss2-comments' );
 ?>
 <rss version="2.0"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
 ?>
 <rss version="2.0"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
index 0ce4e6be51411bb39436786647c88d48a1838c6c..f7da5f2a9af23ecde5ad5684ae1daf9b2aaa073b 100644 (file)
@@ -8,8 +8,18 @@
 header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
 $more = 1;
 
 header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
 $more = 1;
 
-echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
+echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
 
 
+/**
+ * Fires between the <xml> and <rss> tags in a feed.
+ *
+ * @since 4.0.0
+ *
+ * @param string $context Type of feed. Possible values include 'rss2', 'rss2-comments',
+ *                        'rdf', 'atom', and 'atom-comments'.
+ */
+do_action( 'rss_tag_pre', 'rss2' );
+?>
 <rss version="2.0"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        xmlns:wfw="http://wellformedweb.org/CommentAPI/"
 <rss version="2.0"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        xmlns:wfw="http://wellformedweb.org/CommentAPI/"
index c77abd529ab00b68e644795f26e15e800d023500..560dc61ef74189d493b9a10408cd724c30b1da0d 100644 (file)
@@ -93,13 +93,20 @@ function get_default_feed() {
  *
  * @since 2.2.0
  *
  *
  * @since 2.2.0
  *
- * @param string $sep Optional.How to separate the title. See wp_title() for more info.
+ * @param string $sep Optional. How to separate the title. See wp_title() for more info.
  * @return string Error message on failure or blog title on success.
  */
  * @return string Error message on failure or blog title on success.
  */
-function get_wp_title_rss($sep = '&#187;') {
-       $title = wp_title($sep, false);
-       if ( is_wp_error( $title ) )
+function get_wp_title_rss( $sep = '&#187;' ) {
+       $title = wp_title( $sep, false );
+
+       if ( is_wp_error( $title ) ) {
                return $title->get_error_message();
                return $title->get_error_message();
+       }
+
+       if ( $title && $sep && ' ' !== substr( $title, 0, 1 ) ) {
+               $title = " $sep " . $title;
+       }
+
        /**
         * Filter the blog title for use as the feed title.
         *
        /**
         * Filter the blog title for use as the feed title.
         *
@@ -177,7 +184,7 @@ function get_the_content_feed($feed_type = null) {
        if ( !$feed_type )
                $feed_type = get_default_feed();
 
        if ( !$feed_type )
                $feed_type = get_default_feed();
 
-       /** This filter is documented in wp-admin/post-template.php */
+       /** This filter is documented in wp-includes/post-template.php */
        $content = apply_filters( 'the_content', get_the_content() );
        $content = str_replace(']]>', ']]&gt;', $content);
        /**
        $content = apply_filters( 'the_content', get_the_content() );
        $content = str_replace(']]>', ']]&gt;', $content);
        /**
@@ -389,8 +396,7 @@ function get_the_category_rss($type = null) {
                if ( 'rdf' == $type )
                        $the_list .= "\t\t<dc:subject><![CDATA[$cat_name]]></dc:subject>\n";
                elseif ( 'atom' == $type )
                if ( 'rdf' == $type )
                        $the_list .= "\t\t<dc:subject><![CDATA[$cat_name]]></dc:subject>\n";
                elseif ( 'atom' == $type )
-                       /** This filter is documented in wp-includes/feed.php */
-                       $the_list .= sprintf( '<category scheme="%1$s" term="%2$s" />', esc_attr( apply_filters( 'get_bloginfo_rss', get_bloginfo( 'url' ) ) ), esc_attr( $cat_name ) );
+                       $the_list .= sprintf( '<category scheme="%1$s" term="%2$s" />', esc_attr( get_bloginfo_rss( 'url' ) ), esc_attr( $cat_name ) );
                else
                        $the_list .= "\t\t<category><![CDATA[" . @html_entity_decode( $cat_name, ENT_COMPAT, get_option('blog_charset') ) . "]]></category>\n";
        }
                else
                        $the_list .= "\t\t<category><![CDATA[" . @html_entity_decode( $cat_name, ENT_COMPAT, get_option('blog_charset') ) . "]]></category>\n";
        }
index 69a8a5e26ac0a3fb658f7bf1eedde9dc494edfe7..0252bb7b282c15cbf152545fcc2c6b103bf7fd9d 100644 (file)
Binary files a/wp-includes/fonts/dashicons.eot and b/wp-includes/fonts/dashicons.eot differ
index 369d0c67e7bc3c6adb9cf9546a389d658296c651..767c49d38b010ff6608095e314b5a0b6d86de157 100644 (file)
 <glyph unicode="&#xf504;" d="M900 1700h800v-800l-200 100v308l-560 -559l-141 141l609 610h-408zM1200 500v300l200 200v-700h-1100v1100h800l-200 -200h-400v-700h700z" />
 <glyph unicode="&#xf506;" d="M1575 1325l225 375v-1400l-225 375l125 125h-400v-400l125 125l375 -225h-1600l375 225l125 -125v400h-400l125 -125l-225 -375v1400l225 -375l-125 -125h400v400l-125 -125l-375 225h1600l-375 -225l-125 125v-400h400z" />
 <glyph unicode="&#xf507;" d="M1900 1000q0 183 -71.5 349.5t-192 287t-287 192t-349.5 71.5t-349.5 -71.5t-287 -192t-192 -287t-71.5 -349.5t71.5 -349.5t192 -287t287 -192t349.5 -71.5t349.5 71.5t287 192t192 287t71.5 349.5zM1000 1740q62 0 106 -44t44 -106t-44 -106.5t-106 -44.5t-106 44.5 t-44 106.5t44 106t106 44zM340 1264q0 29 165 48t330 24l165 4q660 -11 660 -76q0 -29 -112 -64t-224 -56l-111 -20l59 -306q91 -515 47 -532q-17 -7 -56.5 44t-83 128.5t-84.5 156t-68 134.5l-27 56l-96 -193q-177 -342 -222 -326q-17 14 -13 96.5t23 209t40.5 244.5 t38.5 203l17 85q-448 75 -448 140z" />
 <glyph unicode="&#xf504;" d="M900 1700h800v-800l-200 100v308l-560 -559l-141 141l609 610h-408zM1200 500v300l200 200v-700h-1100v1100h800l-200 -200h-400v-700h700z" />
 <glyph unicode="&#xf506;" d="M1575 1325l225 375v-1400l-225 375l125 125h-400v-400l125 125l375 -225h-1600l375 225l125 -125v400h-400l125 -125l-225 -375v1400l225 -375l-125 -125h400v400l-125 -125l-375 225h1600l-375 -225l-125 125v-400h400z" />
 <glyph unicode="&#xf507;" d="M1900 1000q0 183 -71.5 349.5t-192 287t-287 192t-349.5 71.5t-349.5 -71.5t-287 -192t-192 -287t-71.5 -349.5t71.5 -349.5t192 -287t287 -192t349.5 -71.5t349.5 71.5t287 192t192 287t71.5 349.5zM1000 1740q62 0 106 -44t44 -106t-44 -106.5t-106 -44.5t-106 44.5 t-44 106.5t44 106t106 44zM340 1264q0 29 165 48t330 24l165 4q660 -11 660 -76q0 -29 -112 -64t-224 -56l-111 -20l59 -306q91 -515 47 -532q-17 -7 -56.5 44t-83 128.5t-84.5 156t-68 134.5l-27 56l-96 -193q-177 -342 -222 -326q-17 14 -13 96.5t23 209t40.5 244.5 t38.5 203l17 85q-448 75 -448 140z" />
+<glyph unicode="&#xf508;" d="M1500 1600h300v-1500h-1600v1500h300v100q0 60 44 106q44 44 106 44t106 -44q44 -46 44 -106v-100h400v100q0 60 44 106q44 44 106 44t106 -44q44 -46 44 -106v-100zM600 1700v-250q0 -21 15 -36q14 -14 35 -14t35 14q15 15 15 36v250q0 22 -15 35q-13 15 -35 15t-35 -15 q-15 -13 -15 -35zM1300 1700v-250q0 -20 14 -36q16 -14 36 -14t36 14q14 16 14 36v250q0 21 -14 35q-15 15 -36 15t-36 -15q-14 -14 -14 -35zM1700 200v1000h-1400v-1000h1400zM700 1100v-200h-200v200h200zM900 1100h200v-200h-200v200zM1300 900v200h200v-200h-200z M700 800v-200h-200v200h200zM900 800h200v-200h-200v200zM1300 600v200h200v-200h-200zM700 500v-200h-200v200h200zM1100 300h-200v200h200v-200zM1500 300h-200v200h200v-200z" />
+<glyph unicode="&#xf509;" d="M200 1900h1600q41 0 70.5 -29.5t29.5 -70.5v-1600q0 -41 -29.5 -70.5t-70.5 -29.5h-1600q-41 0 -70.5 29.5t-29.5 70.5v1600q0 41 29.5 70.5t70.5 29.5zM901 1101v600h-601v-600h601zM1701 1101v600h-600v-600h600zM901 300v600h-601v-600h601zM1701 300v600h-600v-600 h600z" />
+<glyph unicode="&#xf510;" d="M100 1683v-1483h1800v1400h-1100v83q0 48 -35 83q-34 34 -83 34h-464q-49 0 -83 -34q-35 -34 -35 -83zM1000 1400v-200h-700v200h700zM1700 1400v-1000h-500v1000h500zM1000 1000v-200h-700v200h700zM1000 600v-200h-700v200h700z" />
+<glyph unicode="&#xf511;" d="M200 157q28 -27 94 -18.5t154 38t194.5 81.5t215 113t215 131.5t194.5 136.5t154 129.5t93 109.5q36 60 23.5 137.5t-58 155t-117.5 151.5q32 21 66.5 21t64.5 -17.5t62.5 -41.5t61 -50.5t59.5 -46t58 -26.5t57 8q46 24 68.5 85.5t1.5 106.5q-12 26 -36.5 45.5 t-47.5 30.5t-64 20t-63 12t-70 7.5t-61 5.5q36 9 80 27.5t92 47t80.5 68.5t33.5 82q3 69 -66.5 131.5t-138.5 54.5q-25 -3 -47 -14t-40 -32.5t-31.5 -41t-27.5 -53t-22 -52.5t-20.5 -56.5t-17.5 -50.5q-16 223 -98 295q-55 43 -106 38t-88 -46.5t-38 -96.5q-1 -31 19 -62.5 t49 -56t60.5 -54.5t53 -57t27 -63.5t-16.5 -73.5q-78 60 -157.5 96.5t-155.5 44t-133 -26.5q-70 -45 -163 -169q168 -178 309 -272q15 -11 18.5 -29t-7.5 -33q-10 -16 -28.5 -19.5t-33.5 7.5q-138 94 -310 271q-71 -105 -134 -223q157 -158 279 -241q15 -11 18 -29t-7 -33 q-10 -16 -28.5 -19.5t-34.5 7.5q-117 80 -271 232q-143 -282 -212 -524t-5 -299z" />
 <glyph horiz-adv-x="600" />
 </font>
 </defs></svg> 
\ No newline at end of file
 <glyph horiz-adv-x="600" />
 </font>
 </defs></svg> 
\ No newline at end of file
index 515e640a871fdb668bad5923e8806fa86dbb77a0..cc7b3cae18beb512cf5ca3bb27110968119374eb 100644 (file)
Binary files a/wp-includes/fonts/dashicons.ttf and b/wp-includes/fonts/dashicons.ttf differ
index 6aeca7939ac735b4abc6a79dc2eae0d9e5f03fc6..64e7bf02f82d051b941b64d3d697992044fa88a4 100644 (file)
Binary files a/wp-includes/fonts/dashicons.woff and b/wp-includes/fonts/dashicons.woff differ
index 5efe0cdadb43e3bd5635e19cf4c83d39831ad79c..1f18ab9d91f7cb00033f5b63c0a78cf8b7e471b2 100644 (file)
  * @uses $wp_cockneyreplace Array of formatted entities for certain common phrases
  *
  * @param string $text The text to be formatted
  * @uses $wp_cockneyreplace Array of formatted entities for certain common phrases
  *
  * @param string $text The text to be formatted
+ * @param bool $reset Set to true for unit testing. Translated patterns will reset.
  * @return string The string replaced with html entities
  */
  * @return string The string replaced with html entities
  */
-function wptexturize($text) {
+function wptexturize($text, $reset = false) {
        global $wp_cockneyreplace;
        static $static_characters, $static_replacements, $dynamic_characters, $dynamic_replacements,
        global $wp_cockneyreplace;
        static $static_characters, $static_replacements, $dynamic_characters, $dynamic_replacements,
-               $default_no_texturize_tags, $default_no_texturize_shortcodes;
+               $default_no_texturize_tags, $default_no_texturize_shortcodes, $run_texturize = true;
+
+       // If there's nothing to do, just stop.
+       if ( empty( $text ) || false === $run_texturize ) {
+               return $text;
+       }
+
+       // Set up static variables. Run once only.
+       if ( $reset || ! isset( $static_characters ) ) {
+               /**
+                * Filter whether to skip running wptexturize().
+                *
+                * Passing false to the filter will effectively short-circuit wptexturize().
+                * returning the original text passed to the function instead.
+                *
+                * The filter runs only once, the first time wptexturize() is called.
+                *
+                * @since 4.0.0
+                *
+                * @see wptexturize()
+                *
+                * @param bool $run_texturize Whether to short-circuit wptexturize().
+                */
+               $run_texturize = apply_filters( 'run_wptexturize', $run_texturize );
+               if ( false === $run_texturize ) {
+                       return $text;
+               }
 
 
-       // No need to set up these static variables more than once
-       if ( ! isset( $static_characters ) ) {
                /* translators: opening curly double quote */
                $opening_quote = _x( '&#8220;', 'opening curly double quote' );
                /* translators: closing curly double quote */
                /* translators: opening curly double quote */
                $opening_quote = _x( '&#8220;', 'opening curly double quote' );
                /* translators: closing curly double quote */
@@ -70,35 +95,43 @@ function wptexturize($text) {
                        $cockney = $cockneyreplace = array();
                }
 
                        $cockney = $cockneyreplace = array();
                }
 
-               $static_characters = array_merge( array( '---', ' -- ', '--', ' - ', 'xn&#8211;', '...', '``', '\'\'', ' (tm)' ), $cockney );
-               $static_replacements = array_merge( array( $em_dash, ' ' . $em_dash . ' ', $en_dash, ' ' . $en_dash . ' ', 'xn--', '&#8230;', $opening_quote, $closing_quote, ' &#8482;' ), $cockneyreplace );
-
-               /*
-                * Regex for common whitespace characters.
-                *
-                * By default, spaces include new lines, tabs, nbsp entities, and the UTF-8 nbsp.
-                * This is designed to replace the PCRE \s sequence.  In #WP22692, that sequence
-                * was found to be unreliable due to random inclusion of the A0 byte.
-                */
-               $spaces = '[\r\n\t ]|\xC2\xA0|&nbsp;';
+               $static_characters = array_merge( array( '...', '``', '\'\'', ' (tm)' ), $cockney );
+               $static_replacements = array_merge( array( '&#8230;', $opening_quote, $closing_quote, ' &#8482;' ), $cockneyreplace );
 
 
                // Pattern-based replacements of characters.
 
 
                // Pattern-based replacements of characters.
+               // Sort the remaining patterns into several arrays for performance tuning.
+               $dynamic_characters = array( 'apos' => array(), 'quote' => array(), 'dash' => array() );
+               $dynamic_replacements = array( 'apos' => array(), 'quote' => array(), 'dash' => array() );
                $dynamic = array();
                $dynamic = array();
+               $spaces = wp_spaces_regexp();
+
+               // '99' and '99" are ambiguous among other patterns; assume it's an abbreviated year at the end of a quotation.
+               if ( "'" !== $apos || "'" !== $closing_single_quote ) {
+                       $dynamic[ '/\'(\d\d)\'(?=\Z|[.,)}\-\]]|&gt;|' . $spaces . ')/' ] = $apos . '$1' . $closing_single_quote;
+               }
+               if ( "'" !== $apos || '"' !== $closing_quote ) {
+                       $dynamic[ '/\'(\d\d)"(?=\Z|[.,)}\-\]]|&gt;|' . $spaces . ')/' ] = $apos . '$1' . $closing_quote;
+               }
 
 
-               // '99 '99s '99's (apostrophe)
+               // '99 '99s '99's (apostrophe)  But never '9 or '99% or '999 or '99.0.
                if ( "'" !== $apos ) {
                if ( "'" !== $apos ) {
-                       $dynamic[ '/\'(?=\d)/' ] = $apos;
+                       $dynamic[ '/\'(?=\d\d(?:\Z|(?![%\d]|[.,]\d)))/' ] = $apos;
                }
 
                }
 
-               // Single quote at start, or preceded by (, {, <, [, ", or spaces.
+               // Quoted Numbers like '0.42'
+               if ( "'" !== $opening_single_quote && "'" !== $closing_single_quote ) {
+                       $dynamic[ '/(?<=\A|' . $spaces . ')\'(\d[.,\d]*)\'/' ] = $opening_single_quote . '$1' . $closing_single_quote;
+               }
+
+               // Single quote at start, or preceded by (, {, <, [, ", -, or spaces.
                if ( "'" !== $opening_single_quote ) {
                if ( "'" !== $opening_single_quote ) {
-                       $dynamic[ '/(?<=\A|[([{<"]|' . $spaces . ')\'/' ] = $opening_single_quote;
+                       $dynamic[ '/(?<=\A|[([{"\-]|&lt;|' . $spaces . ')\'/' ] = $opening_single_quote;
                }
 
                }
 
-               // 9" (double prime)
-               if ( '"' !== $double_prime ) {
-                       $dynamic[ '/(?<=\d)"/' ] = $double_prime;
+               // Apostrophe in a word.  No spaces, double apostrophes, or other punctuation.
+               if ( "'" !== $apos ) {
+                       $dynamic[ '/(?<!' . $spaces . ')\'(?!\Z|[.,:;"\'(){}[\]\-]|&[lg]t;|' . $spaces . ')/' ] = $apos;
                }
 
                // 9' (prime)
                }
 
                // 9' (prime)
@@ -106,14 +139,28 @@ function wptexturize($text) {
                        $dynamic[ '/(?<=\d)\'/' ] = $prime;
                }
 
                        $dynamic[ '/(?<=\d)\'/' ] = $prime;
                }
 
-               // Apostrophe in a word.  No spaces or double primes.
-               if ( "'" !== $apos ) {
-                       $dynamic[ '/(?<!' . $spaces . ')\'(?!\'|' . $spaces . ')/' ] = $apos;
+               // Single quotes followed by spaces or ending punctuation.
+               if ( "'" !== $closing_single_quote ) {
+                       $dynamic[ '/\'(?=\Z|[.,)}\-\]]|&gt;|' . $spaces . ')/' ] = $closing_single_quote;
+               }
+
+               $dynamic_characters['apos'] = array_keys( $dynamic );
+               $dynamic_replacements['apos'] = array_values( $dynamic );
+               $dynamic = array();
+
+               // Quoted Numbers like "42"
+               if ( '"' !== $opening_quote && '"' !== $closing_quote ) {
+                       $dynamic[ '/(?<=\A|' . $spaces . ')"(\d[.,\d]*)"/' ] = $opening_quote . '$1' . $closing_quote;
+               }
+
+               // 9" (double prime)
+               if ( '"' !== $double_prime ) {
+                       $dynamic[ '/(?<=\d)"/' ] = $double_prime;
                }
 
                }
 
-               // Double quote at start, or preceded by (, {, <, [, or spaces, and not followed by spaces.
+               // Double quote at start, or preceded by (, {, <, [, -, or spaces, and not followed by spaces.
                if ( '"' !== $opening_quote ) {
                if ( '"' !== $opening_quote ) {
-                       $dynamic[ '/(?<=\A|[([{<]|' . $spaces . ')"(?!' . $spaces . ')/' ] = $opening_quote;
+                       $dynamic[ '/(?<=\A|[([{\-]|&lt;|' . $spaces . ')"(?!' . $spaces . ')/' ] = $opening_quote;
                }
 
                // Any remaining double quotes.
                }
 
                // Any remaining double quotes.
@@ -121,16 +168,20 @@ function wptexturize($text) {
                        $dynamic[ '/"/' ] = $closing_quote;
                }
 
                        $dynamic[ '/"/' ] = $closing_quote;
                }
 
-               // Single quotes followed by spaces or a period.
-               if ( "'" !== $closing_single_quote ) {
-                       $dynamic[ '/\'(?=\Z|\.|' . $spaces . ')/' ] = $closing_single_quote;
-               }
+               $dynamic_characters['quote'] = array_keys( $dynamic );
+               $dynamic_replacements['quote'] = array_values( $dynamic );
+               $dynamic = array();
 
 
-               $dynamic_characters = array_keys( $dynamic );
-               $dynamic_replacements = array_values( $dynamic );
+               // Dashes and spaces
+               $dynamic[ '/---/' ] = $em_dash;
+               $dynamic[ '/(?<=' . $spaces . ')--(?=' . $spaces . ')/' ] = $em_dash;
+               $dynamic[ '/(?<!xn)--/' ] = $en_dash;
+               $dynamic[ '/(?<=' . $spaces . ')-(?=' . $spaces . ')/' ] = $en_dash;
+
+               $dynamic_characters['dash'] = array_keys( $dynamic );
+               $dynamic_replacements['dash'] = array_values( $dynamic );
        }
 
        }
 
-       // Transform into regexp sub-expression used in _wptexturize_pushpop_element
        // Must do this every time in case plugins use these filters in a context sensitive manner
        /**
         * Filter the list of HTML elements not to texturize.
        // Must do this every time in case plugins use these filters in a context sensitive manner
        /**
         * Filter the list of HTML elements not to texturize.
@@ -139,7 +190,7 @@ function wptexturize($text) {
         *
         * @param array $default_no_texturize_tags An array of HTML element names.
         */
         *
         * @param array $default_no_texturize_tags An array of HTML element names.
         */
-       $no_texturize_tags = '(' . implode( '|', apply_filters( 'no_texturize_tags', $default_no_texturize_tags ) ) . ')';
+       $no_texturize_tags = apply_filters( 'no_texturize_tags', $default_no_texturize_tags );
        /**
         * Filter the list of shortcodes not to texturize.
         *
        /**
         * Filter the list of shortcodes not to texturize.
         *
@@ -147,63 +198,131 @@ function wptexturize($text) {
         *
         * @param array $default_no_texturize_shortcodes An array of shortcode names.
         */
         *
         * @param array $default_no_texturize_shortcodes An array of shortcode names.
         */
-       $no_texturize_shortcodes = '(' . implode( '|', apply_filters( 'no_texturize_shortcodes', $default_no_texturize_shortcodes ) ) . ')';
+       $no_texturize_shortcodes = apply_filters( 'no_texturize_shortcodes', $default_no_texturize_shortcodes );
 
        $no_texturize_tags_stack = array();
        $no_texturize_shortcodes_stack = array();
 
 
        $no_texturize_tags_stack = array();
        $no_texturize_shortcodes_stack = array();
 
-       $textarr = preg_split('/(<.*>|\[.*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
+       // Look for shortcodes and HTML elements.
+
+       $regex =  '/('                  // Capture the entire match.
+               .       '<'             // Find start of element.
+               .       '(?(?=!--)'     // Is this a comment?
+               .               '.+?--\s*>'     // Find end of comment
+               .       '|'
+               .               '[^>]+>'        // Find end of element
+               .       ')'
+               . '|'
+               .       '\['            // Find start of shortcode.
+               .       '\[?'           // Shortcodes may begin with [[
+               .       '(?:'
+               .               '[^\[\]<>]'     // Shortcodes do not contain other shortcodes.
+               .       '|'
+               .               '<[^>]+>'       // HTML elements permitted. Prevents matching ] before >.
+               .       ')++'
+               .       '\]'            // Find end of shortcode.
+               .       '\]?'           // Shortcodes may end with ]]
+               . ')/s';
+
+       $textarr = preg_split( $regex, $text, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY );
 
        foreach ( $textarr as &$curl ) {
 
        foreach ( $textarr as &$curl ) {
-               if ( empty( $curl ) ) {
+               // Only call _wptexturize_pushpop_element if $curl is a delimiter.
+               $first = $curl[0];
+               if ( '<' === $first && '>' === substr( $curl, -1 ) ) {
+                       // This is an HTML delimiter.
+
+                       if ( '<!--' !== substr( $curl, 0, 4 ) ) {
+                               _wptexturize_pushpop_element( $curl, $no_texturize_tags_stack, $no_texturize_tags );
+                       }
+
+               } elseif ( '' === trim( $curl ) ) {
+                       // This is a newline between delimiters.  Performance improves when we check this.
+
                        continue;
                        continue;
-               }
 
 
-               // Only call _wptexturize_pushpop_element if first char is correct tag opening
-               $first = $curl[0];
-               if ( '<' === $first ) {
-                       _wptexturize_pushpop_element($curl, $no_texturize_tags_stack, $no_texturize_tags, '<', '>');
-               } elseif ( '[' === $first ) {
-                       _wptexturize_pushpop_element($curl, $no_texturize_shortcodes_stack, $no_texturize_shortcodes, '[', ']');
-               } elseif ( empty($no_texturize_shortcodes_stack) && empty($no_texturize_tags_stack) ) {
+               } elseif ( '[' === $first && 1 === preg_match( '/^\[(?:[^\[\]<>]|<[^>]+>)++\]$/', $curl ) ) {
+                       // This is a shortcode delimiter.
+
+                       _wptexturize_pushpop_element( $curl, $no_texturize_shortcodes_stack, $no_texturize_shortcodes );
 
 
-                       // This is not a tag, nor is the texturization disabled static strings
-                       $curl = str_replace($static_characters, $static_replacements, $curl);
+               } elseif ( '[' === $first && 1 === preg_match( '/^\[\[?(?:[^\[\]<>]|<[^>]+>)++\]\]?$/', $curl ) ) {
+                       // This is an escaped shortcode delimiter.
 
 
-                       // regular expressions
-                       $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
+                       // Do not texturize.
+                       // Do not push to the shortcodes stack.
 
 
-                       // 9x9 (times)
-                       if ( 1 === preg_match( '/(?<=\d)x\d/', $text ) ) {
+                       continue;
+
+               } elseif ( empty( $no_texturize_shortcodes_stack ) && empty( $no_texturize_tags_stack ) ) {
+                       // This is neither a delimiter, nor is this content inside of no_texturize pairs.  Do texturize.
+
+                       $curl = str_replace( $static_characters, $static_replacements, $curl );
+
+                       if ( false !== strpos( $curl, "'" ) ) {
+                               $curl = preg_replace( $dynamic_characters['apos'], $dynamic_replacements['apos'], $curl );
+                       }
+                       if ( false !== strpos( $curl, '"' ) ) {
+                               $curl = preg_replace( $dynamic_characters['quote'], $dynamic_replacements['quote'], $curl );
+                       }
+                       if ( false !== strpos( $curl, '-' ) ) {
+                               $curl = preg_replace( $dynamic_characters['dash'], $dynamic_replacements['dash'], $curl );
+                       }
+
+                       // 9x9 (times), but never 0x9999
+                       if ( 1 === preg_match( '/(?<=\d)x-?\d/', $curl ) ) {
                                // Searching for a digit is 10 times more expensive than for the x, so we avoid doing this one!
                                // Searching for a digit is 10 times more expensive than for the x, so we avoid doing this one!
-                               $curl = preg_replace( '/\b(\d+)x(\d+)\b/', '$1&#215;$2', $curl );
+                               $curl = preg_replace( '/\b(\d(?(?<=0)[\d\.,]+|[\d\.,]*))x(-?\d[\d\.,]*)\b/', '$1&#215;$2', $curl );
                        }
                }
                        }
                }
-
-               // Replace each & with &#038; unless it already looks like an entity.
-               $curl = preg_replace('/&([^#])(?![a-zA-Z1-4]{1,8};)/', '&#038;$1', $curl);
        }
        }
-       return implode( '', $textarr );
+       $text = implode( '', $textarr );
+
+       // Replace each & with &#038; unless it already looks like an entity.
+       $text = preg_replace('/&(?!#(?:\d+|x[a-f0-9]+);|[a-z1-4]{1,8};)/i', '&#038;', $text);
+
+       return $text;
 }
 
 /**
  * Search for disabled element tags. Push element to stack on tag open and pop
 }
 
 /**
  * Search for disabled element tags. Push element to stack on tag open and pop
- * on tag close. Assumes first character of $text is tag opening.
+ * on tag close.
+ *
+ * Assumes first char of $text is tag opening and last char is tag closing.
+ * Assumes second char of $text is optionally '/' to indicate closing as in </html>.
  *
  * @since 2.9.0
  * @access private
  *
  *
  * @since 2.9.0
  * @access private
  *
- * @param string $text Text to check. First character is assumed to be $opening
- * @param array $stack Array used as stack of opened tag elements
- * @param string $disabled_elements Tags to match against formatted as regexp sub-expression
- * @param string $opening Tag opening character, assumed to be 1 character long
- * @param string $closing Tag closing character
- */
-function _wptexturize_pushpop_element($text, &$stack, $disabled_elements, $opening = '<', $closing = '>') {
-       // Check if it is a closing tag -- otherwise assume opening tag
-       if (strncmp($opening . '/', $text, 2)) {
-               // Opening? Check $text+1 against disabled elements
-               if (preg_match('/^' . $disabled_elements . '\b/', substr($text, 1), $matches)) {
+ * @param string $text Text to check. Must be a tag like <html> or [shortcode].
+ * @param array $stack List of open tag elements.
+ * @param array $disabled_elements The tag names to match against. Spaces are not allowed in tag names.
+ */
+function _wptexturize_pushpop_element($text, &$stack, $disabled_elements) {
+       // Is it an opening tag or closing tag?
+       if ( '/' !== $text[1] ) {
+               $opening_tag = true;
+               $name_offset = 1;
+       } elseif ( 0 == count( $stack ) ) {
+               // Stack is empty. Just stop.
+               return;
+       } else {
+               $opening_tag = false;
+               $name_offset = 2;
+       }
+
+       // Parse out the tag name.
+       $space = strpos( $text, ' ' );
+       if ( FALSE === $space ) {
+               $space = -1;
+       } else {
+               $space -= $name_offset;
+       }
+       $tag = substr( $text, $name_offset, $space );
+
+       // Handle disabled tags.
+       if ( in_array( $tag, $disabled_elements ) ) {
+               if ( $opening_tag ) {
                        /*
                         * This disables texturize until we find a closing tag of our type
                         * (e.g. <pre>) even if there was invalid nesting before that
                        /*
                         * This disables texturize until we find a closing tag of our type
                         * (e.g. <pre>) even if there was invalid nesting before that
@@ -212,18 +331,9 @@ function _wptexturize_pushpop_element($text, &$stack, $disabled_elements, $openi
                         *          "baba" won't be texturize
                         */
 
                         *          "baba" won't be texturize
                         */
 
-                       array_push($stack, $matches[1]);
-               }
-       } else {
-               // Closing? Check $text+2 against disabled elements
-               $c = preg_quote($closing, '/');
-               if (preg_match('/^' . $disabled_elements . $c . '/', substr($text, 2), $matches)) {
-                       $last = array_pop($stack);
-
-                       // Make sure it matches the opening tag
-                       if ( $last != $matches[1] ) {
-                               array_push( $stack, $last );
-                       }
+                       array_push( $stack, $tag );
+               } elseif ( end( $stack ) == $tag ) {
+                       array_pop( $stack );
                }
        }
 }
                }
        }
 }
@@ -277,11 +387,17 @@ function wpautop($pee, $br = true) {
 
        $pee = preg_replace('|<br />\s*<br />|', "\n\n", $pee);
        // Space things out a little
 
        $pee = preg_replace('|<br />\s*<br />|', "\n\n", $pee);
        // Space things out a little
-       $allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|noscript|legend|section|article|aside|hgroup|header|footer|nav|figure|details|menu|summary)';
+       $allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|details|menu|summary)';
        $pee = preg_replace('!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee);
        $pee = preg_replace('!(</' . $allblocks . '>)!', "$1\n\n", $pee);
        $pee = str_replace(array("\r\n", "\r"), "\n", $pee); // cross-platform newlines
 
        $pee = preg_replace('!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee);
        $pee = preg_replace('!(</' . $allblocks . '>)!', "$1\n\n", $pee);
        $pee = str_replace(array("\r\n", "\r"), "\n", $pee); // cross-platform newlines
 
+       if ( strpos( $pee, '<option' ) !== false ) {
+               // no P/BR around option
+               $pee = preg_replace( '|\s*<option|', '<option', $pee );
+               $pee = preg_replace( '|</option>\s*|', '</option>', $pee );
+       }
+
        if ( strpos( $pee, '</object>' ) !== false ) {
                // no P/BR around param and embed
                $pee = preg_replace( '|(<object[^>]*>)\s*|', '$1', $pee );
        if ( strpos( $pee, '</object>' ) !== false ) {
                // no P/BR around param and embed
                $pee = preg_replace( '|(<object[^>]*>)\s*|', '$1', $pee );
@@ -361,11 +477,12 @@ function shortcode_unautop( $pee ) {
        }
 
        $tagregexp = join( '|', array_map( 'preg_quote', array_keys( $shortcode_tags ) ) );
        }
 
        $tagregexp = join( '|', array_map( 'preg_quote', array_keys( $shortcode_tags ) ) );
+       $spaces = wp_spaces_regexp();
 
        $pattern =
                  '/'
                . '<p>'                              // Opening paragraph
 
        $pattern =
                  '/'
                . '<p>'                              // Opening paragraph
-               . '\\s*+'                            // Optional leading whitespace
+               . '(?:' . $spaces . ')*+'            // Optional leading whitespace
                . '('                                // 1: The shortcode
                .     '\\['                          // Opening bracket
                .     "($tagregexp)"                 // 2: Shortcode name
                . '('                                // 1: The shortcode
                .     '\\['                          // Opening bracket
                .     "($tagregexp)"                 // 2: Shortcode name
@@ -390,7 +507,7 @@ function shortcode_unautop( $pee ) {
                .         ')?'
                .     ')'
                . ')'
                .         ')?'
                .     ')'
                . ')'
-               . '\\s*+'                            // optional trailing whitespace
+               . '(?:' . $spaces . ')*+'            // optional trailing whitespace
                . '<\\/p>'                           // closing paragraph
                . '/s';
 
                . '<\\/p>'                           // closing paragraph
                . '/s';
 
@@ -410,7 +527,9 @@ function shortcode_unautop( $pee ) {
  * @return bool True if $str fits a UTF-8 model, false otherwise.
  */
 function seems_utf8($str) {
  * @return bool True if $str fits a UTF-8 model, false otherwise.
  */
 function seems_utf8($str) {
+       mbstring_binary_safe_encoding();
        $length = strlen($str);
        $length = strlen($str);
+       reset_mbstring_encoding();
        for ($i=0; $i < $length; $i++) {
                $c = ord($str[$i]);
                if ($c < 0x80) $n = 0; # 0bbbbbbb
        for ($i=0; $i < $length; $i++) {
                $c = ord($str[$i]);
                if ($c < 0x80) $n = 0; # 0bbbbbbb
@@ -634,7 +753,10 @@ function utf8_uri_encode( $utf8_string, $length = 0 ) {
        $num_octets = 1;
        $unicode_length = 0;
 
        $num_octets = 1;
        $unicode_length = 0;
 
+       mbstring_binary_safe_encoding();
        $string_length = strlen( $utf8_string );
        $string_length = strlen( $utf8_string );
+       reset_mbstring_encoding();
+
        for ($i = 0; $i < $string_length; $i++ ) {
 
                $value = ord( $utf8_string[ $i ] );
        for ($i = 0; $i < $string_length; $i++ ) {
 
                $value = ord( $utf8_string[ $i ] );
@@ -933,6 +1055,7 @@ function sanitize_file_name( $filename ) {
        $special_chars = apply_filters( 'sanitize_file_name_chars', $special_chars, $filename_raw );
        $filename = preg_replace( "#\x{00a0}#siu", ' ', $filename );
        $filename = str_replace($special_chars, '', $filename);
        $special_chars = apply_filters( 'sanitize_file_name_chars', $special_chars, $filename_raw );
        $filename = preg_replace( "#\x{00a0}#siu", ' ', $filename );
        $filename = str_replace($special_chars, '', $filename);
+       $filename = str_replace( array( '%20', '+' ), '-', $filename );
        $filename = preg_replace('/[\s-]+/', '-', $filename);
        $filename = trim($filename, '.-_');
 
        $filename = preg_replace('/[\s-]+/', '-', $filename);
        $filename = trim($filename, '.-_');
 
@@ -1197,7 +1320,7 @@ function sanitize_sql_orderby( $orderby ){
  * @since 2.8.0
  *
  * @param string $class The classname to be sanitized
  * @since 2.8.0
  *
  * @param string $class The classname to be sanitized
- * @param string $fallback Optional. The value to return if the sanitization end's up as an empty string.
+ * @param string $fallback Optional. The value to return if the sanitization ends up as an empty string.
  *     Defaults to an empty string.
  * @return string The sanitized value
  */
  *     Defaults to an empty string.
  * @return string The sanitized value
  */
@@ -1909,7 +2032,7 @@ function translate_smiley( $matches ) {
         */
        $src_url = apply_filters( 'smilies_src', includes_url( "images/smilies/$img" ), $img, site_url() );
 
         */
        $src_url = apply_filters( 'smilies_src', includes_url( "images/smilies/$img" ), $img, site_url() );
 
-       return sprintf( ' <img src="%s" alt="%s" class="wp-smiley" /> ', esc_url( $src_url ), esc_attr( $smiley ) );
+       return sprintf( '<img src="%s" alt="%s" class="wp-smiley" />', esc_url( $src_url ), esc_attr( $smiley ) );
 }
 
 /**
 }
 
 /**
@@ -2335,8 +2458,9 @@ function sanitize_email( $email ) {
  * @return string Human readable time difference.
  */
 function human_time_diff( $from, $to = '' ) {
  * @return string Human readable time difference.
  */
 function human_time_diff( $from, $to = '' ) {
-       if ( empty( $to ) )
+       if ( empty( $to ) ) {
                $to = time();
                $to = time();
+       }
 
        $diff = (int) abs( $to - $from );
 
 
        $diff = (int) abs( $to - $from );
 
@@ -2373,7 +2497,17 @@ function human_time_diff( $from, $to = '' ) {
                $since = sprintf( _n( '%s year', '%s years', $years ), $years );
        }
 
                $since = sprintf( _n( '%s year', '%s years', $years ), $years );
        }
 
-       return $since;
+       /**
+        * Filter the human readable difference between two timestamps.
+        *
+        * @since 4.0.0
+        *
+        * @param string $since The difference in human readable text.
+        * @param int    $diff  The difference in seconds.
+        * @param int    $from  Unix timestamp from which the difference begins.
+        * @param int    $to    Unix timestamp to end the time difference.
+        */
+       return apply_filters( 'human_time_diff', $since, $diff, $from, $to );
 }
 
 /**
 }
 
 /**
@@ -3088,18 +3222,6 @@ function tag_escape($tag_name) {
        return apply_filters( 'tag_escape', $safe_tag, $tag_name );
 }
 
        return apply_filters( 'tag_escape', $safe_tag, $tag_name );
 }
 
-/**
- * Escapes text for SQL LIKE special characters % and _.
- *
- * @since 2.5.0
- *
- * @param string $text The text to be escaped.
- * @return string text, safe for inclusion in LIKE query.
- */
-function like_escape($text) {
-       return str_replace(array("%", "_"), array("\\%", "\\_"), $text);
-}
-
 /**
  * Convert full URL paths to absolute paths.
  *
 /**
  * Convert full URL paths to absolute paths.
  *
@@ -3239,8 +3361,12 @@ function sanitize_option($option, $value) {
 
                case 'WPLANG':
                        $allowed = get_available_languages();
 
                case 'WPLANG':
                        $allowed = get_available_languages();
-                       if ( ! in_array( $value, $allowed ) && ! empty( $value ) )
+                       if ( ! is_multisite() && defined( 'WPLANG' ) && '' !== WPLANG && 'en_US' !== WPLANG ) {
+                               $allowed[] = WPLANG;
+                       }
+                       if ( ! in_array( $value, $allowed ) && ! empty( $value ) ) {
                                $value = get_option( $option );
                                $value = get_option( $option );
+                       }
                        break;
 
                case 'illegal_names':
                        break;
 
                case 'illegal_names':
@@ -3289,6 +3415,14 @@ function sanitize_option($option, $value) {
                        if ( ! get_role( $value ) && get_role( 'subscriber' ) )
                                $value = 'subscriber';
                        break;
                        if ( ! get_role( $value ) && get_role( 'subscriber' ) )
                                $value = 'subscriber';
                        break;
+
+               case 'moderation_keys':
+               case 'blacklist_keys':
+                       $value = explode( "\n", $value );
+                       $value = array_filter( array_map( 'trim', $value ) );
+                       $value = array_unique( $value );
+                       $value = implode( "\n", $value );
+                       break;
        }
 
        /**
        }
 
        /**
@@ -3825,3 +3959,36 @@ function get_url_in_content( $content ) {
 
        return false;
 }
 
        return false;
 }
+
+/**
+ * Returns the regexp for common whitespace characters.
+ *
+ * By default, spaces include new lines, tabs, nbsp entities, and the UTF-8 nbsp.
+ * This is designed to replace the PCRE \s sequence.  In ticket #22692, that
+ * sequence was found to be unreliable due to random inclusion of the A0 byte.
+ *
+ * @since 4.0.0
+ *
+ * @return string The spaces regexp.
+ */
+function wp_spaces_regexp() {
+       static $spaces;
+
+       if ( empty( $spaces ) ) {
+               /**
+                * Filter the regexp for common whitespace characters.
+                *
+                * This string is substituted for the \s sequence as needed in regular
+                * expressions. For websites not written in English, different characters
+                * may represent whitespace. For websites not encoded in UTF-8, the 0xC2 0xA0
+                * sequence may not be in use.
+                *
+                * @since 4.0.0
+                *
+                * @param string $spaces Regexp pattern for matching common whitespace characters.
+                */
+               $spaces = apply_filters( 'wp_spaces_regexp', '[\r\n\t ]|\xC2\xA0|&nbsp;' );
+       }
+
+       return $spaces;
+}
index 88e59fb1ac884486a0eebe68ebef2821ecf81eee..0a8e1a0cccaf0b579c042eaf961320f838dc8450 100644 (file)
@@ -8,7 +8,7 @@
 require( ABSPATH . WPINC . '/option.php' );
 
 /**
 require( ABSPATH . WPINC . '/option.php' );
 
 /**
- * Converts given date string into a different format.
+ * Convert given date string into a different format.
  *
  * $format should be either a PHP date format string, e.g. 'U' for a Unix
  * timestamp, or 'G' for a Unix timestamp assuming that $date is GMT.
  *
  * $format should be either a PHP date format string, e.g. 'U' for a Unix
  * timestamp, or 'G' for a Unix timestamp assuming that $date is GMT.
@@ -18,10 +18,10 @@ require( ABSPATH . WPINC . '/option.php' );
  *
  * @since 0.71
  *
  *
  * @since 0.71
  *
- * @param string $format Format of the date to return.
- * @param string $date Date string to convert.
- * @param bool $translate Whether the return date should be translated. Default is true.
- * @return string|int Formatted date string, or Unix timestamp.
+ * @param string $format    Format of the date to return.
+ * @param string $date      Date string to convert.
+ * @param bool   $translate Whether the return date should be translated. Default true.
+ * @return string|int|bool Formatted date string or Unix timestamp. False if $date is empty.
  */
 function mysql2date( $format, $date, $translate = true ) {
        if ( empty( $date ) )
  */
 function mysql2date( $format, $date, $translate = true ) {
        if ( empty( $date ) )
@@ -53,21 +53,19 @@ function mysql2date( $format, $date, $translate = true ) {
  *
  * @since 1.0.0
  *
  *
  * @since 1.0.0
  *
- * @param string $type 'mysql', 'timestamp', or PHP date format string (e.g. 'Y-m-d').
- * @param int|bool $gmt Optional. Whether to use GMT timezone. Default is false.
- * @return int|string String if $type is 'gmt', int if $type is 'timestamp'.
+ * @param string   $type Type of time to retrieve. Accepts 'mysql', 'timestamp', or PHP date
+ *                       format string (e.g. 'Y-m-d').
+ * @param int|bool $gmt  Optional. Whether to use GMT timezone. Default false.
+ * @return int|string Integer if $type is 'timestamp', string otherwise.
  */
 function current_time( $type, $gmt = 0 ) {
        switch ( $type ) {
                case 'mysql':
                        return ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
  */
 function current_time( $type, $gmt = 0 ) {
        switch ( $type ) {
                case 'mysql':
                        return ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
-                       break;
                case 'timestamp':
                        return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
                case 'timestamp':
                        return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
-                       break;
                default:
                        return ( $gmt ) ? date( $type ) : date( $type, time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) );
                default:
                        return ( $gmt ) ? date( $type ) : date( $type, time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) );
-                       break;
        }
 }
 
        }
 }
 
@@ -80,9 +78,10 @@ function current_time( $type, $gmt = 0 ) {
  *
  * @since 0.71
  *
  *
  * @since 0.71
  *
- * @param string $dateformatstring Format to display the date.
- * @param int $unixtimestamp Optional. Unix timestamp.
- * @param bool $gmt Optional, default is false. Whether to convert to GMT for time.
+ * @param string   $dateformatstring Format to display the date.
+ * @param bool|int $unixtimestamp    Optional. Unix timestamp. Default false.
+ * @param bool     $gmt              Optional. Whether to use GMT timezone. Default false.
+ *
  * @return string The date, translated if locale specifies it.
  */
 function date_i18n( $dateformatstring, $unixtimestamp = false, $gmt = false ) {
  * @return string The date, translated if locale specifies it.
  */
 function date_i18n( $dateformatstring, $unixtimestamp = false, $gmt = false ) {
@@ -99,8 +98,10 @@ function date_i18n( $dateformatstring, $unixtimestamp = false, $gmt = false ) {
                $gmt = true;
        }
 
                $gmt = true;
        }
 
-       // store original value for language with untypical grammars
-       // see http://core.trac.wordpress.org/ticket/9396
+       /*
+        * Store original value for language with untypical grammars.
+        * See http://core.trac.wordpress.org/ticket/9396
+        */
        $req_format = $dateformatstring;
 
        $datefunc = $gmt? 'gmdate' : 'date';
        $req_format = $dateformatstring;
 
        $datefunc = $gmt? 'gmdate' : 'date';
@@ -145,7 +146,7 @@ function date_i18n( $dateformatstring, $unixtimestamp = false, $gmt = false ) {
         * Filter the date formatted based on the locale.
         *
         * @since 2.8.0
         * Filter the date formatted based on the locale.
         *
         * @since 2.8.0
-        * 
+        *
         * @param string $j          Formatted date string.
         * @param string $req_format Format to display the date.
         * @param int    $i          Unix timestamp.
         * @param string $j          Formatted date string.
         * @param string $req_format Format to display the date.
         * @param int    $i          Unix timestamp.
@@ -160,8 +161,8 @@ function date_i18n( $dateformatstring, $unixtimestamp = false, $gmt = false ) {
  *
  * @since 2.3.0
  *
  *
  * @since 2.3.0
  *
- * @param int $number The number to convert based on locale.
- * @param int $decimals Precision of the number of decimal places.
+ * @param int $number   The number to convert based on locale.
+ * @param int $decimals Optional. Precision of the number of decimal places. Default 0.
  * @return string Converted number in string format.
  */
 function number_format_i18n( $number, $decimals = 0 ) {
  * @return string Converted number in string format.
  */
 function number_format_i18n( $number, $decimals = 0 ) {
@@ -191,12 +192,11 @@ function number_format_i18n( $number, $decimals = 0 ) {
  * be converted to a double, which should always have 64 bit length.
  *
  * Technically the correct unit names for powers of 1024 are KiB, MiB etc.
  * be converted to a double, which should always have 64 bit length.
  *
  * Technically the correct unit names for powers of 1024 are KiB, MiB etc.
- * @link http://en.wikipedia.org/wiki/Byte
  *
  * @since 2.3.0
  *
  *
  * @since 2.3.0
  *
- * @param int|string $bytes Number of bytes. Note max integer size for integers.
- * @param int $decimals Precision of number of decimal places. Deprecated.
+ * @param int|string $bytes    Number of bytes. Note max integer size for integers.
+ * @param int        $decimals Optional. Precision of number of decimal places. Default 0.
  * @return bool|string False on failure. Number string on success.
  */
 function size_format( $bytes, $decimals = 0 ) {
  * @return bool|string False on failure. Number string on success.
  */
 function size_format( $bytes, $decimals = 0 ) {
@@ -216,28 +216,41 @@ function size_format( $bytes, $decimals = 0 ) {
 }
 
 /**
 }
 
 /**
- * Get the week start and end from the datetime or date string from mysql.
+ * Get the week start and end from the datetime or date string from MySQL.
  *
  * @since 0.71
  *
  *
  * @since 0.71
  *
- * @param string $mysqlstring Date or datetime field type from mysql.
- * @param int $start_of_week Optional. Start of the week as an integer.
+ * @param string     $mysqlstring   Date or datetime field type from MySQL.
+ * @param int|string $start_of_week Optional. Start of the week as an integer. Default empty string.
  * @return array Keys are 'start' and 'end'.
  */
 function get_weekstartend( $mysqlstring, $start_of_week = '' ) {
  * @return array Keys are 'start' and 'end'.
  */
 function get_weekstartend( $mysqlstring, $start_of_week = '' ) {
-       $my = substr( $mysqlstring, 0, 4 ); // Mysql string Year
-       $mm = substr( $mysqlstring, 8, 2 ); // Mysql string Month
-       $md = substr( $mysqlstring, 5, 2 ); // Mysql string day
-       $day = mktime( 0, 0, 0, $md, $mm, $my ); // The timestamp for mysqlstring day.
-       $weekday = date( 'w', $day ); // The day of the week from the timestamp
+       // MySQL string year.
+       $my = substr( $mysqlstring, 0, 4 );
+
+       // MySQL string month.
+       $mm = substr( $mysqlstring, 8, 2 );
+
+       // MySQL string day.
+       $md = substr( $mysqlstring, 5, 2 );
+
+       // The timestamp for MySQL string day.
+       $day = mktime( 0, 0, 0, $md, $mm, $my );
+
+       // The day of the week from the timestamp.
+       $weekday = date( 'w', $day );
+
        if ( !is_numeric($start_of_week) )
                $start_of_week = get_option( 'start_of_week' );
 
        if ( $weekday < $start_of_week )
                $weekday += 7;
 
        if ( !is_numeric($start_of_week) )
                $start_of_week = get_option( 'start_of_week' );
 
        if ( $weekday < $start_of_week )
                $weekday += 7;
 
-       $start = $day - DAY_IN_SECONDS * ( $weekday - $start_of_week ); // The most recent week start day on or before $day
-       $end = $start + 7 * DAY_IN_SECONDS - 1; // $start + 7 days - 1 second
+       // The most recent week start day on or before $day.
+       $start = $day - DAY_IN_SECONDS * ( $weekday - $start_of_week );
+
+       // $start + 7 days - 1 second.
+       $end = $start + 7 * DAY_IN_SECONDS - 1;
        return compact( 'start', 'end' );
 }
 
        return compact( 'start', 'end' );
 }
 
@@ -263,12 +276,12 @@ function maybe_unserialize( $original ) {
  *
  * @since 2.0.5
  *
  *
  * @since 2.0.5
  *
- * @param mixed $data Value to check to see if was serialized.
- * @param bool $strict Optional. Whether to be strict about the end of the string. Defaults true.
+ * @param string $data   Value to check to see if was serialized.
+ * @param bool   $strict Optional. Whether to be strict about the end of the string. Default true.
  * @return bool False if not serialized and true if it was.
  */
 function is_serialized( $data, $strict = true ) {
  * @return bool False if not serialized and true if it was.
  */
 function is_serialized( $data, $strict = true ) {
-       // if it isn't a string, it isn't serialized
+       // if it isn't a string, it isn't serialized.
        if ( ! is_string( $data ) ) {
                return false;
        }
        if ( ! is_string( $data ) ) {
                return false;
        }
@@ -327,11 +340,11 @@ function is_serialized( $data, $strict = true ) {
  *
  * @since 2.0.5
  *
  *
  * @since 2.0.5
  *
- * @param mixed $data Serialized data
+ * @param string $data Serialized data.
  * @return bool False if not a serialized string, true if it is.
  */
 function is_serialized_string( $data ) {
  * @return bool False if not a serialized string, true if it is.
  */
 function is_serialized_string( $data ) {
-       // if it isn't a string, it isn't a serialized string
+       // if it isn't a string, it isn't a serialized string.
        if ( ! is_string( $data ) ) {
                return false;
        }
        if ( ! is_string( $data ) ) {
                return false;
        }
@@ -356,7 +369,7 @@ function is_serialized_string( $data ) {
  *
  * @since 2.0.5
  *
  *
  * @since 2.0.5
  *
- * @param mixed $data Data that might be serialized.
+ * @param string|array|object $data Data that might be serialized.
  * @return mixed A scalar data
  */
 function maybe_serialize( $data ) {
  * @return mixed A scalar data
  */
 function maybe_serialize( $data ) {
@@ -379,7 +392,7 @@ function maybe_serialize( $data ) {
  *
  * @since 0.71
  *
  *
  * @since 0.71
  *
- * @global string $post_default_title Default XMLRPC post title.
+ * @global string $post_default_title Default XML-RPC post title.
  *
  * @param string $content XMLRPC XML Request content
  * @return string Post title
  *
  * @param string $content XMLRPC XML Request content
  * @return string Post title
@@ -403,7 +416,7 @@ function xmlrpc_getposttitle( $content ) {
  *
  * @since 0.71
  *
  *
  * @since 0.71
  *
- * @global string $post_default_category Default XMLRPC post category.
+ * @global string $post_default_category Default XML-RPC post category.
  *
  * @param string $content XMLRPC XML Request content
  * @return string|array List of categories or category name.
  *
  * @param string $content XMLRPC XML Request content
  * @return string|array List of categories or category name.
@@ -424,7 +437,7 @@ function xmlrpc_getpostcategory( $content ) {
  *
  * @since 0.71
  *
  *
  * @since 0.71
  *
- * @param string $content XMLRPC XML Request content
+ * @param string $content XML-RPC XML Request content.
  * @return string XMLRPC XML Request content without title and category elements.
  */
 function xmlrpc_removepostdata( $content ) {
  * @return string XMLRPC XML Request content without title and category elements.
  */
 function xmlrpc_removepostdata( $content ) {
@@ -435,16 +448,27 @@ function xmlrpc_removepostdata( $content ) {
 }
 
 /**
 }
 
 /**
- * Use RegEx to extract URLs from arbitrary content
+ * Use RegEx to extract URLs from arbitrary content.
  *
  * @since 3.7.0
  *
  *
  * @since 3.7.0
  *
- * @param string $content
- * @return array URLs found in passed string
+ * @param string $content Content to extract URLs from.
+ * @return array URLs found in passed string.
  */
 function wp_extract_urls( $content ) {
        preg_match_all(
  */
 function wp_extract_urls( $content ) {
        preg_match_all(
-               "#((?:[\w-]+://?|[\w\d]+[.])[^\s()<>]+[.](?:\([\w\d]+\)|(?:[^`!()\[\]{};:'\".,<>?«»“”‘’\s]|(?:[:]\d+)?/?)+))#",
+               "#("
+                       . "(?:([\w-]+:)?//?)"
+                       . "[^\s()<>]+"
+                       . "[.]"
+                       . "(?:"
+                               . "\([\w\d]+\)|"
+                               . "(?:"
+                                       . "[^`!()\[\]{};:'\".,<>?«»“”‘’\s]|"
+                                       . "(?:[:]\d+)?/?"
+                               . ")+"
+                       . ")"
+               . ")#",
                $content,
                $post_links
        );
                $content,
                $post_links
        );
@@ -463,10 +487,10 @@ function wp_extract_urls( $content ) {
  *
  * @since 1.5.0
  *
  *
  * @since 1.5.0
  *
- * @uses $wpdb
+ * @see $wpdb
  *
  *
- * @param string $content Post Content
- * @param int $post_ID Post ID
+ * @param string $content Post Content.
+ * @param int $post_ID Post ID.
  */
 function do_enclose( $content, $post_ID ) {
        global $wpdb;
  */
 function do_enclose( $content, $post_ID ) {
        global $wpdb;
@@ -482,7 +506,7 @@ function do_enclose( $content, $post_ID ) {
 
        foreach ( $pung as $link_test ) {
                if ( ! in_array( $link_test, $post_links_temp ) ) { // link no longer in post
 
        foreach ( $pung as $link_test ) {
                if ( ! in_array( $link_test, $post_links_temp ) ) { // link no longer in post
-                       $mids = $wpdb->get_col( $wpdb->prepare("SELECT meta_id FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = 'enclosure' AND meta_value LIKE (%s)", $post_ID, like_escape( $link_test ) . '%') );
+                       $mids = $wpdb->get_col( $wpdb->prepare("SELECT meta_id FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = 'enclosure' AND meta_value LIKE %s", $post_ID, $wpdb->esc_like( $link_test ) . '%') );
                        foreach ( $mids as $mid )
                                delete_metadata_by_mid( 'post', $mid );
                }
                        foreach ( $mids as $mid )
                                delete_metadata_by_mid( 'post', $mid );
                }
@@ -501,7 +525,7 @@ function do_enclose( $content, $post_ID ) {
        }
 
        foreach ( (array) $post_links as $url ) {
        }
 
        foreach ( (array) $post_links as $url ) {
-               if ( $url != '' && !$wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = 'enclosure' AND meta_value LIKE (%s)", $post_ID, like_escape( $url ) . '%' ) ) ) {
+               if ( $url != '' && !$wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = 'enclosure' AND meta_value LIKE %s", $post_ID, $wpdb->esc_like( $url ) . '%' ) ) ) {
 
                        if ( $headers = wp_get_http_headers( $url) ) {
                                $len = isset( $headers['content-length'] ) ? (int) $headers['content-length'] : 0;
 
                        if ( $headers = wp_get_http_headers( $url) ) {
                                $len = isset( $headers['content-length'] ) ? (int) $headers['content-length'] : 0;
@@ -539,9 +563,10 @@ function do_enclose( $content, $post_ID ) {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param string $url URL to fetch.
- * @param string|bool $file_path Optional. File path to write request to.
- * @param int $red (private) The number of Redirects followed, Upon 5 being hit, returns false.
+ * @param string      $url       URL to fetch.
+ * @param string|bool $file_path Optional. File path to write request to. Default false.
+ * @param int         $red       Optional. The number of Redirects followed, Upon 5 being hit,
+ *                               returns false. Default 1.
  * @return bool|string False on failure and string of headers if HEAD request.
  */
 function wp_get_http( $url, $file_path = false, $red = 1 ) {
  * @return bool|string False on failure and string of headers if HEAD request.
  */
 function wp_get_http( $url, $file_path = false, $red = 1 ) {
@@ -591,8 +616,8 @@ function wp_get_http( $url, $file_path = false, $red = 1 ) {
  *
  * @since 1.5.1
  *
  *
  * @since 1.5.1
  *
- * @param string $url
- * @param bool $deprecated Not Used.
+ * @param string $url        URL to retrieve HTTP headers from.
+ * @param bool   $deprecated Not Used.
  * @return bool|string False on failure, headers on success.
  */
 function wp_get_http_headers( $url, $deprecated = false ) {
  * @return bool|string False on failure, headers on success.
  */
 function wp_get_http_headers( $url, $deprecated = false ) {
@@ -608,13 +633,15 @@ function wp_get_http_headers( $url, $deprecated = false ) {
 }
 
 /**
 }
 
 /**
- * Whether today is a new day.
+ * Whether the publish date of the current post in the loop is different from the
+ * publish date of the previous post in the loop.
  *
  * @since 0.71
  *
  * @since 0.71
- * @uses $day Today
- * @uses $previousday Previous day
  *
  *
- * @return int 1 when new day, 0 if not a new day.
+ * @global string $currentday  The day of the current post in the loop.
+ * @global string $previousday The day of the previous post in the loop.
+ *
+ * @return int|bool 1|true when new day, 0|false if not a new day.
  */
 function is_new_day() {
        global $currentday, $previousday;
  */
 function is_new_day() {
        global $currentday, $previousday;
@@ -630,21 +657,38 @@ function is_new_day() {
  * This is a convenient function for easily building url queries. It sets the
  * separator to '&' and uses _http_build_query() function.
  *
  * This is a convenient function for easily building url queries. It sets the
  * separator to '&' and uses _http_build_query() function.
  *
+ * @since 2.3.0
+ *
  * @see _http_build_query() Used to build the query
  * @see _http_build_query() Used to build the query
- * @link http://us2.php.net/manual/en/function.http-build-query.php more on what
+ * @see http://us2.php.net/manual/en/function.http-build-query.php for more on what
  *             http_build_query() does.
  *
  *             http_build_query() does.
  *
- * @since 2.3.0
- *
  * @param array $data URL-encode key/value pairs.
  * @param array $data URL-encode key/value pairs.
- * @return string URL encoded string
+ * @return string URL-encoded string.
  */
 function build_query( $data ) {
        return _http_build_query( $data, null, '&', '', false );
 }
 
  */
 function build_query( $data ) {
        return _http_build_query( $data, null, '&', '', false );
 }
 
-// from php.net (modified by Mark Jaquith to behave like the native PHP5 function)
-function _http_build_query($data, $prefix=null, $sep=null, $key='', $urlencode=true) {
+/**
+ * From php.net (modified by Mark Jaquith to behave like the native PHP5 function).
+ *
+ * @since 3.2.0
+ * @access private
+ *
+ * @see http://us1.php.net/manual/en/function.http-build-query.php
+ *
+ * @param array|object  $data       An array or object of data. Converted to array.
+ * @param string        $prefix     Optional. Numeric index. If set, start parameter numbering with it.
+ *                                  Default null.
+ * @param string        $sep        Optional. Argument separator; defaults to 'arg_separator.output'.
+ *                                  Default null.
+ * @param string        $key        Optional. Used to prefix key name. Default empty.
+ * @param bool          $urlencode  Optional. Whether to use urlencode() in the result. Default true.
+ *
+ * @return string The query string.
+ */
+function _http_build_query( $data, $prefix = null, $sep = null, $key = '', $urlencode = true ) {
        $ret = array();
 
        foreach ( (array) $data as $k => $v ) {
        $ret = array();
 
        foreach ( (array) $data as $k => $v ) {
@@ -686,13 +730,12 @@ function _http_build_query($data, $prefix=null, $sep=null, $key='', $urlencode=t
  *
  * @since 1.5.0
  *
  *
  * @since 1.5.0
  *
- * @param mixed $param1 Either newkey or an associative_array
- * @param mixed $param2 Either newvalue or oldquery or uri
- * @param mixed $param3 Optional. Old query or uri
+ * @param string|array $param1 Either newkey or an associative_array.
+ * @param string       $param2 Either newvalue or oldquery or URI.
+ * @param string       $param3 Optional. Old query or URI.
  * @return string New URL query string.
  */
 function add_query_arg() {
  * @return string New URL query string.
  */
 function add_query_arg() {
-       $ret = '';
        $args = func_get_args();
        if ( is_array( $args[0] ) ) {
                if ( count( $args ) < 2 || false === $args[1] )
        $args = func_get_args();
        if ( is_array( $args[0] ) ) {
                if ( count( $args ) < 2 || false === $args[1] )
@@ -759,11 +802,11 @@ function add_query_arg() {
  *
  * @since 1.5.0
  *
  *
  * @since 1.5.0
  *
- * @param string|array $key Query key or keys to remove.
- * @param bool $query When false uses the $_SERVER value.
+ * @param string|array $key   Query key or keys to remove.
+ * @param bool         $query Optional. When false uses the $_SERVER value. Default false.
  * @return string New URL query string.
  */
  * @return string New URL query string.
  */
-function remove_query_arg( $key, $query=false ) {
+function remove_query_arg( $key, $query = false ) {
        if ( is_array( $key ) ) { // removing multiple keys
                foreach ( $key as $k )
                        $query = add_query_arg( $k, false, $query );
        if ( is_array( $key ) ) { // removing multiple keys
                foreach ( $key as $k )
                        $query = add_query_arg( $k, false, $query );
@@ -795,7 +838,8 @@ function add_magic_quotes( $array ) {
  * HTTP request for URI to retrieve content.
  *
  * @since 1.5.1
  * HTTP request for URI to retrieve content.
  *
  * @since 1.5.1
- * @uses wp_remote_get()
+ *
+ * @see wp_safe_remote_get()
  *
  * @param string $uri URI/URL of web page to retrieve.
  * @return bool|string HTTP content. False on failure.
  *
  * @param string $uri URI/URL of web page to retrieve.
  * @return bool|string HTTP content. False on failure.
@@ -920,6 +964,7 @@ function get_status_header_desc( $code ) {
  * Set HTTP status header.
  *
  * @since 2.0.0
  * Set HTTP status header.
  *
  * @since 2.0.0
+ *
  * @see get_status_header_desc()
  *
  * @param int $code HTTP status code.
  * @see get_status_header_desc()
  *
  * @param int $code HTTP status code.
@@ -952,10 +997,10 @@ function status_header( $code ) {
 }
 
 /**
 }
 
 /**
- * Gets the header information to prevent caching.
+ * Get the header information to prevent caching.
  *
  *
- * The several different headers cover the different ways cache prevention is handled
- * by different browsers
+ * The several different headers cover the different ways cache prevention
+ * is handled by different browsers
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
@@ -974,6 +1019,8 @@ function wp_get_nocache_headers() {
                 *
                 * @since 2.8.0
                 *
                 *
                 * @since 2.8.0
                 *
+                * @see wp_get_nocache_headers()
+                *
                 * @param array $headers {
                 *     Header names and field values.
                 *
                 * @param array $headers {
                 *     Header names and field values.
                 *
@@ -989,12 +1036,14 @@ function wp_get_nocache_headers() {
 }
 
 /**
 }
 
 /**
- * Sets the headers to prevent caching for the different browsers.
+ * Set the headers to prevent caching for the different browsers.
  *
  *
- * Different browsers support different nocache headers, so several headers must
- * be sent so that all of them get the point that no caching should occur.
+ * Different browsers support different nocache headers, so several
+ * headers must be sent so that all of them get the point that no
+ * caching should occur.
  *
  * @since 2.0.0
  *
  * @since 2.0.0
+ *
  * @see wp_get_nocache_headers()
  */
 function nocache_headers() {
  * @see wp_get_nocache_headers()
  */
 function nocache_headers() {
@@ -1027,6 +1076,7 @@ function nocache_headers() {
  */
 function cache_javascript_headers() {
        $expiresOffset = 10 * DAY_IN_SECONDS;
  */
 function cache_javascript_headers() {
        $expiresOffset = 10 * DAY_IN_SECONDS;
+
        header( "Content-Type: text/javascript; charset=" . get_bloginfo( 'charset' ) );
        header( "Vary: Accept-Encoding" ); // Handle proxies
        header( "Expires: " . gmdate( "D, d M Y H:i:s", time() + $expiresOffset ) . " GMT" );
        header( "Content-Type: text/javascript; charset=" . get_bloginfo( 'charset' ) );
        header( "Vary: Accept-Encoding" ); // Handle proxies
        header( "Expires: " . gmdate( "D, d M Y H:i:s", time() + $expiresOffset ) . " GMT" );
@@ -1037,7 +1087,9 @@ function cache_javascript_headers() {
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @return int Number of database queries
+ * @global wpdb $wpdb WordPress database access abstraction object.
+ *
+ * @return int Number of database queries.
  */
 function get_num_queries() {
        global $wpdb;
  */
 function get_num_queries() {
        global $wpdb;
@@ -1045,19 +1097,21 @@ function get_num_queries() {
 }
 
 /**
 }
 
 /**
- * Whether input is yes or no. Must be 'y' to be true.
+ * Whether input is yes or no.
+ *
+ * Must be 'y' to be true.
  *
  * @since 1.0.0
  *
  *
  * @since 1.0.0
  *
- * @param string $yn Character string containing either 'y' or 'n'
- * @return bool True if yes, false on anything else
+ * @param string $yn Character string containing either 'y' (yes) or 'n' (no).
+ * @return bool True if yes, false on anything else.
  */
 function bool_from_yn( $yn ) {
        return ( strtolower( $yn ) == 'y' );
 }
 
 /**
  */
 function bool_from_yn( $yn ) {
        return ( strtolower( $yn ) == 'y' );
 }
 
 /**
- * Loads the feed template from the use of an action hook.
+ * Load the feed template from the use of an action hook.
  *
  * If the feed action does not have a hook, then the function will die with a
  * message telling the visitor that the feed is not valid.
  *
  * If the feed action does not have a hook, then the function will die with a
  * message telling the visitor that the feed is not valid.
@@ -1099,6 +1153,8 @@ function do_feed() {
  * Load the RDF RSS 0.91 Feed template.
  *
  * @since 2.1.0
  * Load the RDF RSS 0.91 Feed template.
  *
  * @since 2.1.0
+ *
+ * @see load_template()
  */
 function do_feed_rdf() {
        load_template( ABSPATH . WPINC . '/feed-rdf.php' );
  */
 function do_feed_rdf() {
        load_template( ABSPATH . WPINC . '/feed-rdf.php' );
@@ -1108,6 +1164,8 @@ function do_feed_rdf() {
  * Load the RSS 1.0 Feed Template.
  *
  * @since 2.1.0
  * Load the RSS 1.0 Feed Template.
  *
  * @since 2.1.0
+ *
+ * @see load_template()
  */
 function do_feed_rss() {
        load_template( ABSPATH . WPINC . '/feed-rss.php' );
  */
 function do_feed_rss() {
        load_template( ABSPATH . WPINC . '/feed-rss.php' );
@@ -1118,6 +1176,8 @@ function do_feed_rss() {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
+ * @see load_template()
+ *
  * @param bool $for_comments True for the comment feed, false for normal feed.
  */
 function do_feed_rss2( $for_comments ) {
  * @param bool $for_comments True for the comment feed, false for normal feed.
  */
 function do_feed_rss2( $for_comments ) {
@@ -1132,6 +1192,8 @@ function do_feed_rss2( $for_comments ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
+ * @see load_template()
+ *
  * @param bool $for_comments True for the comment feed, false for normal feed.
  */
 function do_feed_atom( $for_comments ) {
  * @param bool $for_comments True for the comment feed, false for normal feed.
  */
 function do_feed_atom( $for_comments ) {
@@ -1167,7 +1229,6 @@ function do_robots() {
                $site_url = parse_url( site_url() );
                $path = ( !empty( $site_url['path'] ) ) ? $site_url['path'] : '';
                $output .= "Disallow: $path/wp-admin/\n";
                $site_url = parse_url( site_url() );
                $path = ( !empty( $site_url['path'] ) ) ? $site_url['path'] : '';
                $output .= "Disallow: $path/wp-admin/\n";
-               $output .= "Disallow: $path/wp-includes/\n";
        }
 
        /**
        }
 
        /**
@@ -1184,21 +1245,25 @@ function do_robots() {
 /**
  * Test whether blog is already installed.
  *
 /**
  * Test whether blog is already installed.
  *
- * The cache will be checked first. If you have a cache plugin, which saves the
- * cache values, then this will work. If you use the default WordPress cache,
- * and the database goes away, then you might have problems.
+ * The cache will be checked first. If you have a cache plugin, which saves
+ * the cache values, then this will work. If you use the default WordPress
+ * cache, and the database goes away, then you might have problems.
  *
  *
- * Checks for the option siteurl for whether WordPress is installed.
+ * Checks for the 'siteurl' option for whether WordPress is installed.
  *
  * @since 2.1.0
  *
  * @since 2.1.0
- * @uses $wpdb
  *
  *
- * @return bool Whether blog is already installed.
+ * @global wpdb $wpdb WordPress database access abstraction object.
+ *
+ * @return bool Whether the blog is already installed.
  */
 function is_blog_installed() {
        global $wpdb;
 
  */
 function is_blog_installed() {
        global $wpdb;
 
-       // Check cache first. If options table goes away and we have true cached, oh well.
+       /*
+        * Check cache first. If options table goes away and we have true
+        * cached, oh well.
+        */
        if ( wp_cache_get( 'is_blog_installed' ) )
                return true;
 
        if ( wp_cache_get( 'is_blog_installed' ) )
                return true;
 
@@ -1225,9 +1290,11 @@ function is_blog_installed() {
 
        $suppress = $wpdb->suppress_errors();
 
 
        $suppress = $wpdb->suppress_errors();
 
-       // Loop over the WP tables. If none exist, then scratch install is allowed.
-       // If one or more exist, suggest table repair since we got here because the options
-       // table could not be accessed.
+       /*
+        * Loop over the WP tables. If none exist, then scratch install is allowed.
+        * If one or more exist, suggest table repair since we got here because the
+        * options table could not be accessed.
+        */
        $wp_tables = $wpdb->tables();
        foreach ( $wp_tables as $table ) {
                // The existence of custom user tables shouldn't suggest an insane state or prevent a clean install.
        $wp_tables = $wpdb->tables();
        foreach ( $wp_tables as $table ) {
                // The existence of custom user tables shouldn't suggest an insane state or prevent a clean install.
@@ -1261,8 +1328,8 @@ function is_blog_installed() {
  * @since 2.0.4
  *
  * @param string $actionurl URL to add nonce action.
  * @since 2.0.4
  *
  * @param string $actionurl URL to add nonce action.
- * @param string $action Optional. Nonce action name.
- * @param string $name Optional. Nonce name.
+ * @param string $action    Optional. Nonce action name. Default -1.
+ * @param string $name      Optional. Nonce name. Default '_wpnonce'.
  * @return string Escaped URL with nonce action added.
  */
 function wp_nonce_url( $actionurl, $action = -1, $name = '_wpnonce' ) {
  * @return string Escaped URL with nonce action added.
  */
 function wp_nonce_url( $actionurl, $action = -1, $name = '_wpnonce' ) {
@@ -1290,11 +1357,11 @@ function wp_nonce_url( $actionurl, $action = -1, $name = '_wpnonce' ) {
  *
  * @since 2.0.4
  *
  *
  * @since 2.0.4
  *
- * @param string $action Optional. Action name.
- * @param string $name Optional. Nonce name.
- * @param bool $referer Optional, default true. Whether to set the referer field for validation.
- * @param bool $echo Optional, default true. Whether to display or return hidden form field.
- * @return string Nonce field.
+ * @param string $action  Optional. Action name. Default -1.
+ * @param string $name    Optional. Nonce name. Default '_wpnonce'.
+ * @param bool   $referer Optional. Whether to set the referer field for validation. Default true.
+ * @param bool   $echo    Optional. Whether to display or return hidden form field. Default true.
+ * @return string Nonce field HTML markup.
  */
 function wp_nonce_field( $action = -1, $name = "_wpnonce", $referer = true , $echo = true ) {
        $name = esc_attr( $name );
  */
 function wp_nonce_field( $action = -1, $name = "_wpnonce", $referer = true , $echo = true ) {
        $name = esc_attr( $name );
@@ -1317,8 +1384,8 @@ function wp_nonce_field( $action = -1, $name = "_wpnonce", $referer = true , $ec
  *
  * @since 2.0.4
  *
  *
  * @since 2.0.4
  *
- * @param bool $echo Whether to echo or return the referer field.
- * @return string Referer field.
+ * @param bool $echo Optional. Whether to echo or return the referer field. Default true.
+ * @return string Referer field HTML markup.
  */
 function wp_referer_field( $echo = true ) {
        $referer_field = '<input type="hidden" name="_wp_http_referer" value="'. esc_attr( wp_unslash( $_SERVER['REQUEST_URI'] ) ) . '" />';
  */
 function wp_referer_field( $echo = true ) {
        $referer_field = '<input type="hidden" name="_wp_http_referer" value="'. esc_attr( wp_unslash( $_SERVER['REQUEST_URI'] ) ) . '" />';
@@ -1332,13 +1399,14 @@ function wp_referer_field( $echo = true ) {
  * Retrieve or display original referer hidden field for forms.
  *
  * The input name is '_wp_original_http_referer' and will be either the same
  * Retrieve or display original referer hidden field for forms.
  *
  * The input name is '_wp_original_http_referer' and will be either the same
- * value of {@link wp_referer_field()}, if that was posted already or it will
- * be the current page, if it doesn't exist.
+ * value of wp_referer_field(), if that was posted already or it will be the
+ * current page, if it doesn't exist.
  *
  * @since 2.0.4
  *
  *
  * @since 2.0.4
  *
- * @param bool $echo Whether to echo the original http referer
- * @param string $jump_back_to Optional, default is 'current'. Can be 'previous' or page you want to jump back to.
+ * @param bool   $echo         Optional. Whether to echo the original http referer. Default true.
+ * @param string $jump_back_to Optional. Can be 'previous' or page you want to jump back to.
+ *                             Default 'current'.
  * @return string Original referer field.
  */
 function wp_original_referer_field( $echo = true, $jump_back_to = 'current' ) {
  * @return string Original referer field.
  */
 function wp_original_referer_field( $echo = true, $jump_back_to = 'current' ) {
@@ -1352,8 +1420,9 @@ function wp_original_referer_field( $echo = true, $jump_back_to = 'current' ) {
 }
 
 /**
 }
 
 /**
- * Retrieve referer from '_wp_http_referer' or HTTP referer. If it's the same
- * as the current request URL, will return false.
+ * Retrieve referer from '_wp_http_referer' or HTTP referer.
+ *
+ * If it's the same as the current request URL, will return false.
  *
  * @since 2.0.4
  *
  *
  * @since 2.0.4
  *
@@ -1399,21 +1468,24 @@ function wp_get_original_referer() {
 function wp_mkdir_p( $target ) {
        $wrapper = null;
 
 function wp_mkdir_p( $target ) {
        $wrapper = null;
 
-       // strip the protocol
+       // Strip the protocol.
        if( wp_is_stream( $target ) ) {
                list( $wrapper, $target ) = explode( '://', $target, 2 );
        }
 
        if( wp_is_stream( $target ) ) {
                list( $wrapper, $target ) = explode( '://', $target, 2 );
        }
 
-       // from php.net/mkdir user contributed notes
+       // From php.net/mkdir user contributed notes.
        $target = str_replace( '//', '/', $target );
 
        $target = str_replace( '//', '/', $target );
 
-       // put the wrapper back on the target
+       // Put the wrapper back on the target.
        if( $wrapper !== null ) {
                $target = $wrapper . '://' . $target;
        }
 
        if( $wrapper !== null ) {
                $target = $wrapper . '://' . $target;
        }
 
-       // safe mode fails with a trailing slash under certain PHP versions.
-       $target = rtrim($target, '/'); // Use rtrim() instead of untrailingslashit to avoid formatting.php dependency.
+       /*
+        * Safe mode fails with a trailing slash under certain PHP versions.
+        * Use rtrim() instead of untrailingslashit to avoid formatting.php dependency.
+        */
+       $target = rtrim($target, '/');
        if ( empty($target) )
                $target = '/';
 
        if ( empty($target) )
                $target = '/';
 
@@ -1427,7 +1499,6 @@ function wp_mkdir_p( $target ) {
        }
 
        // Get the permission bits.
        }
 
        // Get the permission bits.
-       $dir_perms = false;
        if ( $stat = @stat( $target_parent ) ) {
                $dir_perms = $stat['mode'] & 0007777;
        } else {
        if ( $stat = @stat( $target_parent ) ) {
                $dir_perms = $stat['mode'] & 0007777;
        } else {
@@ -1436,7 +1507,10 @@ function wp_mkdir_p( $target ) {
 
        if ( @mkdir( $target, $dir_perms, true ) ) {
 
 
        if ( @mkdir( $target, $dir_perms, true ) ) {
 
-               // If a umask is set that modifies $dir_perms, we'll have to re-set the $dir_perms correctly with chmod()
+               /*
+                * If a umask is set that modifies $dir_perms, we'll have to re-set
+                * the $dir_perms correctly with chmod()
+                */
                if ( $dir_perms != ( $dir_perms & ~umask() ) ) {
                        $folder_parts = explode( '/', substr( $target, strlen( $target_parent ) + 1 ) );
                        for ( $i = 1; $i <= count( $folder_parts ); $i++ ) {
                if ( $dir_perms != ( $dir_perms & ~umask() ) ) {
                        $folder_parts = explode( '/', substr( $target, strlen( $target_parent ) + 1 ) );
                        for ( $i = 1; $i <= count( $folder_parts ); $i++ ) {
@@ -1451,38 +1525,44 @@ function wp_mkdir_p( $target ) {
 }
 
 /**
 }
 
 /**
- * Test if a give filesystem path is absolute ('/foo/bar', 'c:\windows').
+ * Test if a give filesystem path is absolute.
+ *
+ * For example, '/foo/bar', or 'c:\windows'.
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param string $path File path
+ * @param string $path File path.
  * @return bool True if path is absolute, false is not absolute.
  */
 function path_is_absolute( $path ) {
  * @return bool True if path is absolute, false is not absolute.
  */
 function path_is_absolute( $path ) {
-       // this is definitive if true but fails if $path does not exist or contains a symbolic link
+       /*
+        * This is definitive if true but fails if $path does not exist or contains
+        * a symbolic link.
+        */
        if ( realpath($path) == $path )
                return true;
 
        if ( strlen($path) == 0 || $path[0] == '.' )
                return false;
 
        if ( realpath($path) == $path )
                return true;
 
        if ( strlen($path) == 0 || $path[0] == '.' )
                return false;
 
-       // windows allows absolute paths like this
+       // Windows allows absolute paths like this.
        if ( preg_match('#^[a-zA-Z]:\\\\#', $path) )
                return true;
 
        if ( preg_match('#^[a-zA-Z]:\\\\#', $path) )
                return true;
 
-       // a path starting with / or \ is absolute; anything else is relative
+       // A path starting with / or \ is absolute; anything else is relative.
        return ( $path[0] == '/' || $path[0] == '\\' );
 }
 
 /**
        return ( $path[0] == '/' || $path[0] == '\\' );
 }
 
 /**
- * Join two filesystem paths together (e.g. 'give me $path relative to $base').
+ * Join two filesystem paths together.
  *
  *
- * If the $path is absolute, then it the full path is returned.
+ * For example, 'give me $path relative to $base'. If the $path is absolute,
+ * then it the full path is returned.
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param string $base
- * @param string $path
+ * @param string $base Base path.
+ * @param string $path Path relative to $base.
  * @return string The path with the base or absolute path.
  */
 function path_join( $base, $path ) {
  * @return string The path with the base or absolute path.
  */
 function path_join( $base, $path ) {
@@ -1495,8 +1575,8 @@ function path_join( $base, $path ) {
 /**
  * Normalize a filesystem path.
  *
 /**
  * Normalize a filesystem path.
  *
- * Replaces backslashes with forward slashes for Windows systems,
- * and ensures no duplicate slashes exist.
+ * Replaces backslashes with forward slashes for Windows systems, and ensures
+ * no duplicate slashes exist.
  *
  * @since 3.9.0
  *
  *
  * @since 3.9.0
  *
@@ -1510,18 +1590,18 @@ function wp_normalize_path( $path ) {
 }
 
 /**
 }
 
 /**
- * Determines a writable directory for temporary files.
- * Function's preference is the return value of <code>sys_get_temp_dir()</code>,
+ * Determine a writable directory for temporary files.
+ *
+ * Function's preference is the return value of sys_get_temp_dir(),
  * followed by your PHP temporary upload directory, followed by WP_CONTENT_DIR,
  * before finally defaulting to /tmp/
  *
  * In the event that this function does not find a writable location,
  * followed by your PHP temporary upload directory, followed by WP_CONTENT_DIR,
  * before finally defaulting to /tmp/
  *
  * In the event that this function does not find a writable location,
- * It may be overridden by the <code>WP_TEMP_DIR</code> constant in
- * your <code>wp-config.php</code> file.
+ * It may be overridden by the WP_TEMP_DIR constant in your wp-config.php file.
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @return string Writable temporary directory
+ * @return string Writable temporary directory.
  */
 function get_temp_dir() {
        static $temp;
  */
 function get_temp_dir() {
        static $temp;
@@ -1552,15 +1632,15 @@ function get_temp_dir() {
 /**
  * Determine if a directory is writable.
  *
 /**
  * Determine if a directory is writable.
  *
- * This function is used to work around certain ACL issues
- * in PHP primarily affecting Windows Servers.
- *
- * @see win_is_writable()
+ * This function is used to work around certain ACL issues in PHP primarily
+ * affecting Windows Servers.
  *
  * @since 3.6.0
  *
  *
  * @since 3.6.0
  *
- * @param string $path
- * @return bool
+ * @see win_is_writable()
+ *
+ * @param string $path Path to check for write-ability.
+ * @return bool Whether the path is writable.
  */
 function wp_is_writable( $path ) {
        if ( 'WIN' === strtoupper( substr( PHP_OS, 0, 3 ) ) )
  */
 function wp_is_writable( $path ) {
        if ( 'WIN' === strtoupper( substr( PHP_OS, 0, 3 ) ) )
@@ -1577,13 +1657,13 @@ function wp_is_writable( $path ) {
  * checking the ability to open files rather than relying
  * upon PHP to interprate the OS ACL.
  *
  * checking the ability to open files rather than relying
  * upon PHP to interprate the OS ACL.
  *
- * @link http://bugs.php.net/bug.php?id=27609
- * @link http://bugs.php.net/bug.php?id=30931
- *
  * @since 2.8.0
  *
  * @since 2.8.0
  *
- * @param string $path
- * @return bool
+ * @see http://bugs.php.net/bug.php?id=27609
+ * @see http://bugs.php.net/bug.php?id=30931
+ *
+ * @param string $path Windows path to check for write-ability.
+ * @return bool Whether the path is writable.
  */
 function win_is_writable( $path ) {
 
  */
 function win_is_writable( $path ) {
 
@@ -1632,7 +1712,7 @@ function win_is_writable( $path ) {
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param string $time Optional. Time formatted in 'yyyy/mm'.
+ * @param string $time Optional. Time formatted in 'yyyy/mm'. Default null.
  * @return array See above for description.
  */
 function wp_upload_dir( $time = null ) {
  * @return array See above for description.
  */
 function wp_upload_dir( $time = null ) {
@@ -1655,8 +1735,10 @@ function wp_upload_dir( $time = null ) {
                        $url = trailingslashit( $siteurl ) . $upload_path;
        }
 
                        $url = trailingslashit( $siteurl ) . $upload_path;
        }
 
-       // Obey the value of UPLOADS. This happens as long as ms-files rewriting is disabled.
-       // We also sometimes obey UPLOADS when rewriting is enabled -- see the next block.
+       /*
+        * Honor the value of UPLOADS. This happens as long as ms-files rewriting is disabled.
+        * We also sometimes obey UPLOADS when rewriting is enabled -- see the next block.
+        */
        if ( defined( 'UPLOADS' ) && ! ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) ) {
                $dir = ABSPATH . UPLOADS;
                $url = trailingslashit( $siteurl ) . UPLOADS;
        if ( defined( 'UPLOADS' ) && ! ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) ) {
                $dir = ABSPATH . UPLOADS;
                $url = trailingslashit( $siteurl ) . UPLOADS;
@@ -1666,11 +1748,14 @@ function wp_upload_dir( $time = null ) {
        if ( is_multisite() && ! ( is_main_network() && is_main_site() && defined( 'MULTISITE' ) ) ) {
 
                if ( ! get_site_option( 'ms_files_rewriting' ) ) {
        if ( is_multisite() && ! ( is_main_network() && is_main_site() && defined( 'MULTISITE' ) ) ) {
 
                if ( ! get_site_option( 'ms_files_rewriting' ) ) {
-                       // If ms-files rewriting is disabled (networks created post-3.5), it is fairly straightforward:
-                       // Append sites/%d if we're not on the main site (for post-MU networks). (The extra directory
-                       // prevents a four-digit ID from conflicting with a year-based directory for the main site.
-                       // But if a MU-era network has disabled ms-files rewriting manually, they don't need the extra
-                       // directory, as they never had wp-content/uploads for the main site.)
+                       /*
+                        * If ms-files rewriting is disabled (networks created post-3.5), it is fairly
+                        * straightforward: Append sites/%d if we're not on the main site (for post-MU
+                        * networks). (The extra directory prevents a four-digit ID from conflicting with
+                        * a year-based directory for the main site. But if a MU-era network has disabled
+                        * ms-files rewriting manually, they don't need the extra directory, as they never
+                        * had wp-content/uploads for the main site.)
+                        */
 
                        if ( defined( 'MULTISITE' ) )
                                $ms_dir = '/sites/' . get_current_blog_id();
 
                        if ( defined( 'MULTISITE' ) )
                                $ms_dir = '/sites/' . get_current_blog_id();
@@ -1681,17 +1766,19 @@ function wp_upload_dir( $time = null ) {
                        $url .= $ms_dir;
 
                } elseif ( defined( 'UPLOADS' ) && ! ms_is_switched() ) {
                        $url .= $ms_dir;
 
                } elseif ( defined( 'UPLOADS' ) && ! ms_is_switched() ) {
-                       // Handle the old-form ms-files.php rewriting if the network still has that enabled.
-                       // When ms-files rewriting is enabled, then we only listen to UPLOADS when:
-                       //   1) we are not on the main site in a post-MU network,
-                       //      as wp-content/uploads is used there, and
-                       //   2) we are not switched, as ms_upload_constants() hardcodes
-                       //      these constants to reflect the original blog ID.
-                       //
-                       // Rather than UPLOADS, we actually use BLOGUPLOADDIR if it is set, as it is absolute.
-                       // (And it will be set, see ms_upload_constants().) Otherwise, UPLOADS can be used, as
-                       // as it is relative to ABSPATH. For the final piece: when UPLOADS is used with ms-files
-                       // rewriting in multisite, the resulting URL is /files. (#WP22702 for background.)
+                       /*
+                        * Handle the old-form ms-files.php rewriting if the network still has that enabled.
+                        * When ms-files rewriting is enabled, then we only listen to UPLOADS when:
+                        * 1) We are not on the main site in a post-MU network, as wp-content/uploads is used
+                        *    there, and
+                        * 2) We are not switched, as ms_upload_constants() hardcodes these constants to reflect
+                        *    the original blog ID.
+                        *
+                        * Rather than UPLOADS, we actually use BLOGUPLOADDIR if it is set, as it is absolute.
+                        * (And it will be set, see ms_upload_constants().) Otherwise, UPLOADS can be used, as
+                        * as it is relative to ABSPATH. For the final piece: when UPLOADS is used with ms-files
+                        * rewriting in multisite, the resulting URL is /files. (#WP22702 for background.)
+                        */
 
                        if ( defined( 'BLOGUPLOADDIR' ) )
                                $dir = untrailingslashit( BLOGUPLOADDIR );
 
                        if ( defined( 'BLOGUPLOADDIR' ) )
                                $dir = untrailingslashit( BLOGUPLOADDIR );
@@ -1735,7 +1822,7 @@ function wp_upload_dir( $time = null ) {
                        'error'   => false,
                ) );
 
                        'error'   => false,
                ) );
 
-       // Make sure we have an uploads dir
+       // Make sure we have an uploads directory.
        if ( ! wp_mkdir_p( $uploads['path'] ) ) {
                if ( 0 === strpos( $uploads['basedir'], ABSPATH ) )
                        $error_path = str_replace( ABSPATH, '', $uploads['basedir'] ) . $uploads['subdir'];
        if ( ! wp_mkdir_p( $uploads['path'] ) ) {
                if ( 0 === strpos( $uploads['basedir'], ABSPATH ) )
                        $error_path = str_replace( ABSPATH, '', $uploads['basedir'] ) . $uploads['subdir'];
@@ -1761,36 +1848,39 @@ function wp_upload_dir( $time = null ) {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param string $dir
- * @param string $filename
- * @param mixed $unique_filename_callback Callback.
+ * @param string   $dir                      Directory.
+ * @param string   $filename                 File name.
+ * @param callback $unique_filename_callback Callback. Default null.
  * @return string New filename, if given wasn't unique.
  */
 function wp_unique_filename( $dir, $filename, $unique_filename_callback = null ) {
  * @return string New filename, if given wasn't unique.
  */
 function wp_unique_filename( $dir, $filename, $unique_filename_callback = null ) {
-       // sanitize the file name before we begin processing
+       // Sanitize the file name before we begin processing.
        $filename = sanitize_file_name($filename);
 
        $filename = sanitize_file_name($filename);
 
-       // separate the filename into a name and extension
+       // Separate the filename into a name and extension.
        $info = pathinfo($filename);
        $ext = !empty($info['extension']) ? '.' . $info['extension'] : '';
        $name = basename($filename, $ext);
 
        $info = pathinfo($filename);
        $ext = !empty($info['extension']) ? '.' . $info['extension'] : '';
        $name = basename($filename, $ext);
 
-       // edge case: if file is named '.ext', treat as an empty name
+       // Edge case: if file is named '.ext', treat as an empty name.
        if ( $name === $ext )
                $name = '';
 
        if ( $name === $ext )
                $name = '';
 
-       // Increment the file number until we have a unique file to save in $dir. Use callback if supplied.
+       /*
+        * Increment the file number until we have a unique file to save in $dir.
+        * Use callback if supplied.
+        */
        if ( $unique_filename_callback && is_callable( $unique_filename_callback ) ) {
                $filename = call_user_func( $unique_filename_callback, $dir, $name, $ext );
        } else {
                $number = '';
 
        if ( $unique_filename_callback && is_callable( $unique_filename_callback ) ) {
                $filename = call_user_func( $unique_filename_callback, $dir, $name, $ext );
        } else {
                $number = '';
 
-               // change '.ext' to lower case
+               // Change '.ext' to lower case.
                if ( $ext && strtolower($ext) != $ext ) {
                        $ext2 = strtolower($ext);
                        $filename2 = preg_replace( '|' . preg_quote($ext) . '$|', $ext2, $filename );
 
                if ( $ext && strtolower($ext) != $ext ) {
                        $ext2 = strtolower($ext);
                        $filename2 = preg_replace( '|' . preg_quote($ext) . '$|', $ext2, $filename );
 
-                       // check for both lower and upper case extension or image sub-sizes may be overwritten
+                       // Check for both lower and upper case extension or image sub-sizes may be overwritten.
                        while ( file_exists($dir . "/$filename") || file_exists($dir . "/$filename2") ) {
                                $new_number = $number + 1;
                                $filename = str_replace( "$number$ext", "$new_number$ext", $filename );
                        while ( file_exists($dir . "/$filename") || file_exists($dir . "/$filename2") ) {
                                $new_number = $number + 1;
                                $filename = str_replace( "$number$ext", "$new_number$ext", $filename );
@@ -1828,10 +1918,10 @@ function wp_unique_filename( $dir, $filename, $unique_filename_callback = null )
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param string $name
- * @param null $deprecated Never used. Set to null.
- * @param mixed $bits File content
- * @param string $time Optional. Time formatted in 'yyyy/mm'.
+ * @param string $name       Filename.
+ * @param null   $deprecated Never used. Set to null.
+ * @param mixed  $bits       File content
+ * @param string $time       Optional. Time formatted in 'yyyy/mm'. Default null.
  * @return array
  */
 function wp_upload_bits( $name, $deprecated, $bits, $time = null ) {
  * @return array
  */
 function wp_upload_bits( $name, $deprecated, $bits, $time = null ) {
@@ -1925,8 +2015,8 @@ function wp_ext2type( $ext ) {
        $ext2type = apply_filters( 'ext2type', array(
                'image'       => array( 'jpg', 'jpeg', 'jpe',  'gif',  'png',  'bmp',   'tif',  'tiff', 'ico' ),
                'audio'       => array( 'aac', 'ac3',  'aif',  'aiff', 'm3a',  'm4a',   'm4b',  'mka',  'mp1',  'mp2',  'mp3', 'ogg', 'oga', 'ram', 'wav', 'wma' ),
        $ext2type = apply_filters( 'ext2type', array(
                'image'       => array( 'jpg', 'jpeg', 'jpe',  'gif',  'png',  'bmp',   'tif',  'tiff', 'ico' ),
                'audio'       => array( 'aac', 'ac3',  'aif',  'aiff', 'm3a',  'm4a',   'm4b',  'mka',  'mp1',  'mp2',  'mp3', 'ogg', 'oga', 'ram', 'wav', 'wma' ),
-               'video'       => array( 'asf', 'avi',  'divx', 'dv',   'flv',  'm4v',   'mkv',  'mov',  'mp4',  'mpeg', 'mpg', 'mpv', 'ogm', 'ogv', 'qt',  'rm', 'vob', 'wmv' ),
-               'document'    => array( 'doc', 'docx', 'docm', 'dotm', 'odt',  'pages', 'pdf',  'rtf',  'wp',   'wpd' ),
+               'video'       => array( '3g2',  '3gp', '3gpp', 'asf', 'avi',  'divx', 'dv',   'flv',  'm4v',   'mkv',  'mov',  'mp4',  'mpeg', 'mpg', 'mpv', 'ogm', 'ogv', 'qt',  'rm', 'vob', 'wmv' ),
+               'document'    => array( 'doc', 'docx', 'docm', 'dotm', 'odt',  'pages', 'pdf',  'xps',  'oxps', 'rtf',  'wp',   'wpd' ),
                'spreadsheet' => array( 'numbers',     'ods',  'xls',  'xlsx', 'xlsm',  'xlsb' ),
                'interactive' => array( 'swf', 'key',  'ppt',  'pptx', 'pptm', 'pps',   'ppsx', 'ppsm', 'sldx', 'sldm', 'odp' ),
                'text'        => array( 'asc', 'csv',  'tsv',  'txt' ),
                'spreadsheet' => array( 'numbers',     'ods',  'xls',  'xlsx', 'xlsm',  'xlsb' ),
                'interactive' => array( 'swf', 'key',  'ppt',  'pptx', 'pptm', 'pps',   'ppsx', 'ppsm', 'sldx', 'sldm', 'odp' ),
                'text'        => array( 'asc', 'csv',  'tsv',  'txt' ),
@@ -1949,7 +2039,7 @@ function wp_ext2type( $ext ) {
  * @since 2.0.4
  *
  * @param string $filename File name or path.
  * @since 2.0.4
  *
  * @param string $filename File name or path.
- * @param array $mimes Optional. Key is the file extension with value as the mime type.
+ * @param array  $mimes    Optional. Key is the file extension with value as the mime type.
  * @return array Values with extension first and mime type.
  */
 function wp_check_filetype( $filename, $mimes = null ) {
  * @return array Values with extension first and mime type.
  */
 function wp_check_filetype( $filename, $mimes = null ) {
@@ -1972,6 +2062,7 @@ function wp_check_filetype( $filename, $mimes = null ) {
 
 /**
  * Attempt to determine the real file type of a file.
 
 /**
  * Attempt to determine the real file type of a file.
+ *
  * If unable to, the file name extension will be used to determine type.
  *
  * If it's determined that the extension does not match the file's real type,
  * If unable to, the file name extension will be used to determine type.
  *
  * If it's determined that the extension does not match the file's real type,
@@ -1981,10 +2072,12 @@ function wp_check_filetype( $filename, $mimes = null ) {
  *
  * @since 3.0.0
  *
  *
  * @since 3.0.0
  *
- * @param string $file Full path to the file.
- * @param string $filename The name of the file (may differ from $file due to $file being in a tmp directory)
- * @param array $mimes Optional. Key is the file extension with value as the mime type.
- * @return array Values for the extension, MIME, and either a corrected filename or false if original $filename is valid
+ * @param string $file     Full path to the file.
+ * @param string $filename The name of the file (may differ from $file due to $file being
+ *                         in a tmp directory).
+ * @param array   $mimes   Optional. Key is the file extension with value as the mime type.
+ * @return array Values for the extension, MIME, and either a corrected filename or false
+ *               if original $filename is valid.
  */
 function wp_check_filetype_and_ext( $file, $filename, $mimes = null ) {
 
  */
 function wp_check_filetype_and_ext( $file, $filename, $mimes = null ) {
 
@@ -1992,11 +2085,13 @@ function wp_check_filetype_and_ext( $file, $filename, $mimes = null ) {
 
        // Do basic extension validation and MIME mapping
        $wp_filetype = wp_check_filetype( $filename, $mimes );
 
        // Do basic extension validation and MIME mapping
        $wp_filetype = wp_check_filetype( $filename, $mimes );
-       extract( $wp_filetype );
+       $ext = $wp_filetype['ext'];
+       $type = $wp_filetype['type'];
 
        // We can't do any further validation without a file to work with
 
        // We can't do any further validation without a file to work with
-       if ( ! file_exists( $file ) )
+       if ( ! file_exists( $file ) ) {
                return compact( 'ext', 'type', 'proper_filename' );
                return compact( 'ext', 'type', 'proper_filename' );
+       }
 
        // We're able to validate images using GD
        if ( $type && 0 === strpos( $type, 'image/' ) && function_exists('getimagesize') ) {
 
        // We're able to validate images using GD
        if ( $type && 0 === strpos( $type, 'image/' ) && function_exists('getimagesize') ) {
@@ -2028,12 +2123,13 @@ function wp_check_filetype_and_ext( $file, $filename, $mimes = null ) {
                                $filename_parts[] = $mime_to_ext[ $imgstats['mime'] ];
                                $new_filename = implode( '.', $filename_parts );
 
                                $filename_parts[] = $mime_to_ext[ $imgstats['mime'] ];
                                $new_filename = implode( '.', $filename_parts );
 
-                               if ( $new_filename != $filename )
+                               if ( $new_filename != $filename ) {
                                        $proper_filename = $new_filename; // Mark that it changed
                                        $proper_filename = $new_filename; // Mark that it changed
-
+                               }
                                // Redefine the extension / MIME
                                $wp_filetype = wp_check_filetype( $new_filename, $mimes );
                                // Redefine the extension / MIME
                                $wp_filetype = wp_check_filetype( $new_filename, $mimes );
-                               extract( $wp_filetype );
+                               $ext = $wp_filetype['ext'];
+                               $type = $wp_filetype['type'];
                        }
                }
        }
                        }
                }
        }
@@ -2073,14 +2169,14 @@ function wp_get_mime_types() {
         *                                 corresponding to those types.
         */
        return apply_filters( 'mime_types', array(
         *                                 corresponding to those types.
         */
        return apply_filters( 'mime_types', array(
-       // Image formats
+       // Image formats.
        'jpg|jpeg|jpe' => 'image/jpeg',
        'gif' => 'image/gif',
        'png' => 'image/png',
        'bmp' => 'image/bmp',
        'tif|tiff' => 'image/tiff',
        'ico' => 'image/x-icon',
        'jpg|jpeg|jpe' => 'image/jpeg',
        'gif' => 'image/gif',
        'png' => 'image/png',
        'bmp' => 'image/bmp',
        'tif|tiff' => 'image/tiff',
        'ico' => 'image/x-icon',
-       // Video formats
+       // Video formats.
        'asf|asx' => 'video/x-ms-asf',
        'wmv' => 'video/x-ms-wmv',
        'wmx' => 'video/x-ms-wmx',
        'asf|asx' => 'video/x-ms-asf',
        'wmv' => 'video/x-ms-wmv',
        'wmx' => 'video/x-ms-wmx',
@@ -2094,8 +2190,10 @@ function wp_get_mime_types() {
        'ogv' => 'video/ogg',
        'webm' => 'video/webm',
        'mkv' => 'video/x-matroska',
        'ogv' => 'video/ogg',
        'webm' => 'video/webm',
        'mkv' => 'video/x-matroska',
-       // Text formats
-       'txt|asc|c|cc|h' => 'text/plain',
+       '3gp|3gpp' => 'video/3gpp', // Can also be audio
+       '3g2|3gp2' => 'video/3gpp2', // Can also be audio
+       // Text formats.
+       'txt|asc|c|cc|h|srt' => 'text/plain',
        'csv' => 'text/csv',
        'tsv' => 'text/tab-separated-values',
        'ics' => 'text/calendar',
        'csv' => 'text/csv',
        'tsv' => 'text/tab-separated-values',
        'ics' => 'text/calendar',
@@ -2103,7 +2201,8 @@ function wp_get_mime_types() {
        'css' => 'text/css',
        'htm|html' => 'text/html',
        'vtt' => 'text/vtt',
        'css' => 'text/css',
        'htm|html' => 'text/html',
        'vtt' => 'text/vtt',
-       // Audio formats
+       'dfxp' => 'application/ttaf+xml',
+       // Audio formats.
        'mp3|m4a|m4b' => 'audio/mpeg',
        'ra|ram' => 'audio/x-realaudio',
        'wav' => 'audio/wav',
        'mp3|m4a|m4b' => 'audio/mpeg',
        'ra|ram' => 'audio/x-realaudio',
        'wav' => 'audio/wav',
@@ -2112,7 +2211,7 @@ function wp_get_mime_types() {
        'wma' => 'audio/x-ms-wma',
        'wax' => 'audio/x-ms-wax',
        'mka' => 'audio/x-matroska',
        'wma' => 'audio/x-ms-wma',
        'wax' => 'audio/x-ms-wax',
        'mka' => 'audio/x-matroska',
-       // Misc application formats
+       // Misc application formats.
        'rtf' => 'application/rtf',
        'js' => 'application/javascript',
        'pdf' => 'application/pdf',
        'rtf' => 'application/rtf',
        'js' => 'application/javascript',
        'pdf' => 'application/pdf',
@@ -2124,7 +2223,7 @@ function wp_get_mime_types() {
        'rar' => 'application/rar',
        '7z' => 'application/x-7z-compressed',
        'exe' => 'application/x-msdownload',
        'rar' => 'application/rar',
        '7z' => 'application/x-7z-compressed',
        'exe' => 'application/x-msdownload',
-       // MS Office formats
+       // MS Office formats.
        'doc' => 'application/msword',
        'pot|pps|ppt' => 'application/vnd.ms-powerpoint',
        'wri' => 'application/vnd.ms-write',
        'doc' => 'application/msword',
        'pot|pps|ppt' => 'application/vnd.ms-powerpoint',
        'wri' => 'application/vnd.ms-write',
@@ -2151,7 +2250,9 @@ function wp_get_mime_types() {
        'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
        'sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12',
        'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
        'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
        'sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12',
        'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
-       // OpenOffice formats
+       'oxps' => 'application/oxps',
+       'xps' => 'application/vnd.ms-xpsdocument',
+       // OpenOffice formats.
        'odt' => 'application/vnd.oasis.opendocument.text',
        'odp' => 'application/vnd.oasis.opendocument.presentation',
        'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
        'odt' => 'application/vnd.oasis.opendocument.text',
        'odp' => 'application/vnd.oasis.opendocument.presentation',
        'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
@@ -2159,9 +2260,9 @@ function wp_get_mime_types() {
        'odc' => 'application/vnd.oasis.opendocument.chart',
        'odb' => 'application/vnd.oasis.opendocument.database',
        'odf' => 'application/vnd.oasis.opendocument.formula',
        'odc' => 'application/vnd.oasis.opendocument.chart',
        'odb' => 'application/vnd.oasis.opendocument.database',
        'odf' => 'application/vnd.oasis.opendocument.formula',
-       // WordPerfect formats
+       // WordPerfect formats.
        'wp|wpd' => 'application/wordperfect',
        'wp|wpd' => 'application/wordperfect',
-       // iWork formats
+       // iWork formats.
        'key' => 'application/vnd.apple.keynote',
        'numbers' => 'application/vnd.apple.numbers',
        'pages' => 'application/vnd.apple.pages',
        'key' => 'application/vnd.apple.keynote',
        'numbers' => 'application/vnd.apple.numbers',
        'pages' => 'application/vnd.apple.pages',
@@ -2175,7 +2276,8 @@ function wp_get_mime_types() {
  * @uses wp_get_upload_mime_types() to fetch the list of mime types
  *
  * @param int|WP_User $user Optional. User to check. Defaults to current user.
  * @uses wp_get_upload_mime_types() to fetch the list of mime types
  *
  * @param int|WP_User $user Optional. User to check. Defaults to current user.
- * @return array Array of mime types keyed by the file extension regex corresponding to those types.
+ * @return array Array of mime types keyed by the file extension regex corresponding
+ *               to those types.
  */
 function get_allowed_mime_types( $user = null ) {
        $t = wp_get_mime_types();
  */
 function get_allowed_mime_types( $user = null ) {
        $t = wp_get_mime_types();
@@ -2203,8 +2305,8 @@ function get_allowed_mime_types( $user = null ) {
 /**
  * Display "Are You Sure" message to confirm the action being taken.
  *
 /**
  * Display "Are You Sure" message to confirm the action being taken.
  *
- * If the action has the nonce explain message, then it will be displayed along
- * with the "Are you sure?" message.
+ * If the action has the nonce explain message, then it will be displayed
+ * along with the "Are you sure?" message.
  *
  * @since 2.0.4
  *
  *
  * @since 2.0.4
  *
@@ -2236,9 +2338,9 @@ function wp_nonce_ays( $action ) {
  *
  * @since 2.0.4
  *
  *
  * @since 2.0.4
  *
- * @param string $message Error message.
- * @param string $title Error title.
- * @param string|array $args Optional arguments to control behavior.
+ * @param string       $message Optional. Error message. Default empty.
+ * @param string       $title   Optional. Error title. Default empty.
+ * @param string|array $args    Optional. Arguments to control behavior. Default empty array.
  */
 function wp_die( $message = '', $title = '', $args = array() ) {
        if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
  */
 function wp_die( $message = '', $title = '', $args = array() ) {
        if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
@@ -2282,9 +2384,9 @@ function wp_die( $message = '', $title = '', $args = array() ) {
  * @since 3.0.0
  * @access private
  *
  * @since 3.0.0
  * @access private
  *
- * @param string $message Error message.
- * @param string $title Error title.
- * @param string|array $args Optional arguments to control behavior.
+ * @param string       $message Error message.
+ * @param string       $title   Optional. Error title. Default empty.
+ * @param string|array $args    Optional. Arguments to control behavior. Default empty array.
  */
 function _default_wp_die_handler( $message, $title = '', $args = array() ) {
        $defaults = array( 'response' => 500 );
  */
 function _default_wp_die_handler( $message, $title = '', $args = array() ) {
        $defaults = array( 'response' => 500 );
@@ -2299,7 +2401,7 @@ function _default_wp_die_handler( $message, $title = '', $args = array() ) {
                                $title = $error_data['title'];
                }
                $errors = $message->get_error_messages();
                                $title = $error_data['title'];
                }
                $errors = $message->get_error_messages();
-               switch ( count( $errors ) ) :
+               switch ( count( $errors ) ) {
                case 0 :
                        $message = '';
                        break;
                case 0 :
                        $message = '';
                        break;
@@ -2309,7 +2411,7 @@ function _default_wp_die_handler( $message, $title = '', $args = array() ) {
                default :
                        $message = "<ul>\n\t\t<li>" . join( "</li>\n\t\t<li>", $errors ) . "</li>\n\t</ul>";
                        break;
                default :
                        $message = "<ul>\n\t\t<li>" . join( "</li>\n\t\t<li>", $errors ) . "</li>\n\t</ul>";
                        break;
-               endswitch;
+               }
        } elseif ( is_string( $message ) ) {
                $message = "<p>$message</p>";
        }
        } elseif ( is_string( $message ) ) {
                $message = "<p>$message</p>";
        }
@@ -2460,9 +2562,9 @@ function _default_wp_die_handler( $message, $title = '', $args = array() ) {
  * @since 3.2.0
  * @access private
  *
  * @since 3.2.0
  * @access private
  *
- * @param string $message Error message.
- * @param string $title Error title.
- * @param string|array $args Optional arguments to control behavior.
+ * @param string       $message Error message.
+ * @param string       $title   Optional. Error title. Default empty.
+ * @param string|array $args    Optional. Arguments to control behavior. Default empty array.
  */
 function _xmlrpc_wp_die_handler( $message, $title = '', $args = array() ) {
        global $wp_xmlrpc_server;
  */
 function _xmlrpc_wp_die_handler( $message, $title = '', $args = array() ) {
        global $wp_xmlrpc_server;
@@ -2485,7 +2587,7 @@ function _xmlrpc_wp_die_handler( $message, $title = '', $args = array() ) {
  * @since 3.4.0
  * @access private
  *
  * @since 3.4.0
  * @access private
  *
- * @param string $message Optional. Response to print.
+ * @param string $message Optional. Response to print. Default empty.
  */
 function _ajax_wp_die_handler( $message = '' ) {
        if ( is_scalar( $message ) )
  */
 function _ajax_wp_die_handler( $message = '' ) {
        if ( is_scalar( $message ) )
@@ -2501,7 +2603,7 @@ function _ajax_wp_die_handler( $message = '' ) {
  * @since 3.4.0
  * @access private
  *
  * @since 3.4.0
  * @access private
  *
- * @param string $message Optional. Response to print.
+ * @param string $message Optional. Response to print. Default empty.
  */
 function _scalar_wp_die_handler( $message = '' ) {
        if ( is_scalar( $message ) )
  */
 function _scalar_wp_die_handler( $message = '' ) {
        if ( is_scalar( $message ) )
@@ -2514,7 +2616,8 @@ function _scalar_wp_die_handler( $message = '' ) {
  *
  * @since 3.5.0
  *
  *
  * @since 3.5.0
  *
- * @param mixed $response Variable (usually an array or object) to encode as JSON, then print and die.
+ * @param mixed $response Variable (usually an array or object) to encode as JSON,
+ *                        then print and die.
  */
 function wp_send_json( $response ) {
        @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
  */
 function wp_send_json( $response ) {
        @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
@@ -2560,14 +2663,16 @@ function wp_send_json_error( $data = null ) {
 /**
  * Retrieve the WordPress home page URL.
  *
 /**
  * Retrieve the WordPress home page URL.
  *
- * If the constant named 'WP_HOME' exists, then it will be used and returned by
- * the function. This can be used to counter the redirection on your local
+ * If the constant named 'WP_HOME' exists, then it will be used and returned
+ * by the function. This can be used to counter the redirection on your local
  * development environment.
  *
  * development environment.
  *
- * @access private
  * @since 2.2.0
  * @since 2.2.0
+ * @access private
  *
  *
- * @param string $url URL for the home location
+ * @see WP_HOME
+ *
+ * @param string $url URL for the home location.
  * @return string Homepage location.
  */
 function _config_wp_home( $url = '' ) {
  * @return string Homepage location.
  */
 function _config_wp_home( $url = '' ) {
@@ -2580,14 +2685,16 @@ function _config_wp_home( $url = '' ) {
  * Retrieve the WordPress site URL.
  *
  * If the constant named 'WP_SITEURL' is defined, then the value in that
  * Retrieve the WordPress site URL.
  *
  * If the constant named 'WP_SITEURL' is defined, then the value in that
- * constant will always be returned. This can be used for debugging a site on
- * your localhost while not having to change the database to your URL.
+ * constant will always be returned. This can be used for debugging a site
+ * on your localhost while not having to change the database to your URL.
  *
  *
- * @access private
  * @since 2.2.0
  * @since 2.2.0
+ * @access private
+ *
+ * @see WP_SITEURL
  *
  * @param string $url URL to set the WordPress site location.
  *
  * @param string $url URL to set the WordPress site location.
- * @return string The WordPress Site URL
+ * @return string The WordPress Site URL.
  */
 function _config_wp_siteurl( $url = '' ) {
        if ( defined( 'WP_SITEURL' ) )
  */
 function _config_wp_siteurl( $url = '' ) {
        if ( defined( 'WP_SITEURL' ) )
@@ -2598,15 +2705,16 @@ function _config_wp_siteurl( $url = '' ) {
 /**
  * Set the localized direction for MCE plugin.
  *
 /**
  * Set the localized direction for MCE plugin.
  *
- * Will only set the direction to 'rtl', if the WordPress locale has the text
- * direction set to 'rtl'.
+ * Will only set the direction to 'rtl', if the WordPress locale has
+ * the text direction set to 'rtl'.
  *
  *
- * Fills in the 'directionality' setting, enables the 'directionality' plugin,
- * and adds the 'ltr' button to 'toolbar1', formerly 'theme_advanced_buttons1' array
- * keys. These keys are then returned in the $input (TinyMCE settings) array.
+ * Fills in the 'directionality' setting, enables the 'directionality'
+ * plugin, and adds the 'ltr' button to 'toolbar1', formerly
+ * 'theme_advanced_buttons1' array keys. These keys are then returned
+ * in the $input (TinyMCE settings) array.
  *
  *
- * @access private
  * @since 2.1.0
  * @since 2.1.0
+ * @access private
  *
  * @param array $input MCE settings array.
  * @return array Direction set for 'rtl', if needed by locale.
  *
  * @param array $input MCE settings array.
  * @return array Direction set for 'rtl', if needed by locale.
@@ -2641,6 +2749,7 @@ function _mce_set_direction( $input ) {
  *
  * @global array $wpsmiliestrans
  * @global array $wp_smiliessearch
  *
  * @global array $wpsmiliestrans
  * @global array $wp_smiliessearch
+ *
  * @since 2.2.0
  */
 function smilies_init() {
  * @since 2.2.0
  */
 function smilies_init() {
@@ -2711,7 +2820,10 @@ function smilies_init() {
         */
        krsort($wpsmiliestrans);
 
         */
        krsort($wpsmiliestrans);
 
-       $wp_smiliessearch = '/((?:\s|^)';
+       $spaces = wp_spaces_regexp();
+
+       // Begin first "subpattern"
+       $wp_smiliessearch = '/(?<=' . $spaces . '|^)';
 
        $subchar = '';
        foreach ( (array) $wpsmiliestrans as $smiley => $img ) {
 
        $subchar = '';
        foreach ( (array) $wpsmiliestrans as $smiley => $img ) {
@@ -2721,7 +2833,8 @@ function smilies_init() {
                // new subpattern?
                if ($firstchar != $subchar) {
                        if ($subchar != '') {
                // new subpattern?
                if ($firstchar != $subchar) {
                        if ($subchar != '') {
-                               $wp_smiliessearch .= ')(?=\s|$))|((?:\s|^)'; ;
+                               $wp_smiliessearch .= ')(?=' . $spaces . '|$)';  // End previous "subpattern"
+                               $wp_smiliessearch .= '|(?<=' . $spaces . '|^)'; // Begin another "subpattern"
                        }
                        $subchar = $firstchar;
                        $wp_smiliessearch .= preg_quote($firstchar, '/') . '(?:';
                        }
                        $subchar = $firstchar;
                        $wp_smiliessearch .= preg_quote($firstchar, '/') . '(?:';
@@ -2731,7 +2844,7 @@ function smilies_init() {
                $wp_smiliessearch .= preg_quote($rest, '/');
        }
 
                $wp_smiliessearch .= preg_quote($rest, '/');
        }
 
-       $wp_smiliessearch .= ')(?=\s|$))/m';
+       $wp_smiliessearch .= ')(?=' . $spaces . '|$)/m';
 
 }
 
 
 }
 
@@ -2743,8 +2856,8 @@ function smilies_init() {
  *
  * @since 2.2.0
  *
  *
  * @since 2.2.0
  *
- * @param string|array $args Value to merge with $defaults
- * @param array $defaults Array that serves as the defaults.
+ * @param string|array $args     Value to merge with $defaults
+ * @param array        $defaults Optional. Array that serves as the defaults. Default empty.
  * @return array Merged user defined values with defaults.
  */
 function wp_parse_args( $args, $defaults = '' ) {
  * @return array Merged user defined values with defaults.
  */
 function wp_parse_args( $args, $defaults = '' ) {
@@ -2765,8 +2878,8 @@ function wp_parse_args( $args, $defaults = '' ) {
  *
  * @since 3.0.0
  *
  *
  * @since 3.0.0
  *
- * @param array|string $list
- * @return array Sanitized array of IDs
+ * @param array|string $list List of ids.
+ * @return array Sanitized array of IDs.
  */
 function wp_parse_id_list( $list ) {
        if ( !is_array($list) )
  */
 function wp_parse_id_list( $list ) {
        if ( !is_array($list) )
@@ -2780,9 +2893,9 @@ function wp_parse_id_list( $list ) {
  *
  * @since 3.1.0
  *
  *
  * @since 3.1.0
  *
- * @param array $array The original array
- * @param array $keys The list of keys
- * @return array The array slice
+ * @param array $array The original array.
+ * @param array $keys  The list of keys.
+ * @return array The array slice.
  */
 function wp_array_slice_assoc( $array, $keys ) {
        $slice = array();
  */
 function wp_array_slice_assoc( $array, $keys ) {
        $slice = array();
@@ -2798,12 +2911,15 @@ function wp_array_slice_assoc( $array, $keys ) {
  *
  * @since 3.0.0
  *
  *
  * @since 3.0.0
  *
- * @param array $list An array of objects to filter
- * @param array $args An array of key => value arguments to match against each object
- * @param string $operator The logical operation to perform. 'or' means only one element
- *     from the array needs to match; 'and' means all elements must match. The default is 'and'.
- * @param bool|string $field A field from the object to place instead of the entire object
- * @return array A list of objects or object fields
+ * @param array       $list     An array of objects to filter
+ * @param array       $args     Optional. An array of key => value arguments to match
+ *                              against each object. Default empty array.
+ * @param string      $operator Optional. The logical operation to perform. 'or' means
+ *                              only one element from the array needs to match; 'and'
+ *                              means all elements must match. Default 'and'.
+ * @param bool|string $field    A field from the object to place instead of the entire object.
+ *                              Default false.
+ * @return array A list of objects or object fields.
  */
 function wp_filter_object_list( $list, $args = array(), $operator = 'and', $field = false ) {
        if ( ! is_array( $list ) )
  */
 function wp_filter_object_list( $list, $args = array(), $operator = 'and', $field = false ) {
        if ( ! is_array( $list ) )
@@ -2822,14 +2938,14 @@ function wp_filter_object_list( $list, $args = array(), $operator = 'and', $fiel
  *
  * @since 3.1.0
  *
  *
  * @since 3.1.0
  *
- * @param array $list An array of objects to filter
- * @param array $args An array of key => value arguments to match against each object
- * @param string $operator The logical operation to perform:
- *    'AND' means all elements from the array must match;
- *    'OR' means only one element needs to match;
- *    'NOT' means no elements may match.
- *   The default is 'AND'.
- * @return array
+ * @param array  $list     An array of objects to filter.
+ * @param array  $args     Optional. An array of key => value arguments to match
+ *                         against each object. Default empty array.
+ * @param string $operator Optional. The logical operation to perform. 'AND' means
+ *                         all elements from the array must match. 'OR' means only
+ *                         one element needs to match. 'NOT' means no elements may
+ *                         match. Default 'AND'.
+ * @return array Array of found values.
  */
 function wp_list_filter( $list, $args = array(), $operator = 'AND' ) {
        if ( ! is_array( $list ) )
  */
 function wp_list_filter( $list, $args = array(), $operator = 'AND' ) {
        if ( ! is_array( $list ) )
@@ -2864,36 +2980,74 @@ function wp_list_filter( $list, $args = array(), $operator = 'AND' ) {
 /**
  * Pluck a certain field out of each object in a list.
  *
 /**
  * Pluck a certain field out of each object in a list.
  *
- * @since 3.1.0
+ * This has the same functionality and prototype of
+ * array_column() (PHP 5.5) but also supports objects.
  *
  *
- * @param array $list A list of objects or arrays
- * @param int|string $field A field from the object to place instead of the entire object
- * @return array
- */
-function wp_list_pluck( $list, $field ) {
-       foreach ( $list as $key => $value ) {
-               if ( is_object( $value ) )
-                       $list[ $key ] = $value->$field;
-               else
-                       $list[ $key ] = $value[ $field ];
+ * @since 3.1.0
+ * @since 4.0.0 $index_key parameter added.
+ *
+ * @param array      $list      List of objects or arrays
+ * @param int|string $field     Field from the object to place instead of the entire object
+ * @param int|string $index_key Optional. Field from the object to use as keys for the new array.
+ *                              Default null.
+ * @return array Array of found values. If $index_key is set, an array of found values with keys
+ *               corresponding to $index_key.
+ */
+function wp_list_pluck( $list, $field, $index_key = null ) {
+       if ( ! $index_key ) {
+               /*
+                * This is simple. Could at some point wrap array_column()
+                * if we knew we had an array of arrays.
+                */
+               foreach ( $list as $key => $value ) {
+                       if ( is_object( $value ) ) {
+                               $list[ $key ] = $value->$field;
+                       } else {
+                               $list[ $key ] = $value[ $field ];
+                       }
+               }
+               return $list;
        }
 
        }
 
-       return $list;
+       /*
+        * When index_key is not set for a particular item, push the value
+        * to the end of the stack. This is how array_column() behaves.
+        */
+       $newlist = array();
+       foreach ( $list as $value ) {
+               if ( is_object( $value ) ) {
+                       if ( isset( $value->$index_key ) ) {
+                               $newlist[ $value->$index_key ] = $value->$field;
+                       } else {
+                               $newlist[] = $value->$field;
+                       }
+               } else {
+                       if ( isset( $value[ $index_key ] ) ) {
+                               $newlist[ $value[ $index_key ] ] = $value[ $field ];
+                       } else {
+                               $newlist[] = $value[ $field ];
+                       }
+               }
+       }
+
+       return $newlist;
 }
 
 /**
  * Determines if Widgets library should be loaded.
  *
 }
 
 /**
  * Determines if Widgets library should be loaded.
  *
- * Checks to make sure that the widgets library hasn't already been loaded. If
- * it hasn't, then it will load the widgets library and run an action hook.
+ * Checks to make sure that the widgets library hasn't already been loaded.
+ * If it hasn't, then it will load the widgets library and run an action hook.
  *
  * @since 2.2.0
  *
  * @since 2.2.0
- * @uses add_action() Calls '_admin_menu' hook with 'wp_widgets_add_menu' value.
  */
 function wp_maybe_load_widgets() {
        /**
         * Filter whether to load the Widgets library.
         *
  */
 function wp_maybe_load_widgets() {
        /**
         * Filter whether to load the Widgets library.
         *
+        * Passing a falsey value to the filter will effectively short-circuit
+        * the Widgets library from loading.
+        *
         * @since 2.8.0
         *
         * @param bool $wp_maybe_load_widgets Whether to load the Widgets library.
         * @since 2.8.0
         *
         * @param bool $wp_maybe_load_widgets Whether to load the Widgets library.
@@ -2902,7 +3056,9 @@ function wp_maybe_load_widgets() {
        if ( ! apply_filters( 'load_default_widgets', true ) ) {
                return;
        }
        if ( ! apply_filters( 'load_default_widgets', true ) ) {
                return;
        }
+
        require_once( ABSPATH . WPINC . '/default-widgets.php' );
        require_once( ABSPATH . WPINC . '/default-widgets.php' );
+
        add_action( '_admin_menu', 'wp_widgets_add_menu' );
 }
 
        add_action( '_admin_menu', 'wp_widgets_add_menu' );
 }
 
@@ -2910,6 +3066,7 @@ function wp_maybe_load_widgets() {
  * Append the Widgets menu to the themes main menu.
  *
  * @since 2.2.0
  * Append the Widgets menu to the themes main menu.
  *
  * @since 2.2.0
+ *
  * @uses $submenu The administration submenu list.
  */
 function wp_widgets_add_menu() {
  * @uses $submenu The administration submenu list.
  */
 function wp_widgets_add_menu() {
@@ -2925,7 +3082,7 @@ function wp_widgets_add_menu() {
 /**
  * Flush all output buffers for PHP 5.2.
  *
 /**
  * Flush all output buffers for PHP 5.2.
  *
- * Make sure all output buffers are flushed before our singletons our destroyed.
+ * Make sure all output buffers are flushed before our singletons are destroyed.
  *
  * @since 2.2.0
  */
  *
  * @since 2.2.0
  */
@@ -2950,7 +3107,8 @@ function wp_ob_end_flush_all() {
  * in WordPress 2.5.0.
  *
  * @since 2.3.2
  * in WordPress 2.5.0.
  *
  * @since 2.3.2
- * @uses $wpdb
+ *
+ * @global wpdb $wpdb WordPress database access abstraction object.
  */
 function dead_db() {
        global $wpdb;
  */
 function dead_db() {
        global $wpdb;
@@ -2988,54 +3146,19 @@ function dead_db() {
 }
 
 /**
 }
 
 /**
- * Converts value to nonnegative integer.
+ * Convert a value to non-negative integer.
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param mixed $maybeint Data you wish to have converted to a nonnegative integer
- * @return int An nonnegative integer
+ * @param mixed $maybeint Data you wish to have converted to a non-negative integer.
+ * @return int A non-negative integer.
  */
 function absint( $maybeint ) {
        return abs( intval( $maybeint ) );
 }
 
 /**
  */
 function absint( $maybeint ) {
        return abs( intval( $maybeint ) );
 }
 
 /**
- * Determines if the blog can be accessed over SSL.
- *
- * Determines if blog can be accessed over SSL by using cURL to access the site
- * using the https in the siteurl. Requires cURL extension to work correctly.
- *
- * @since 2.5.0
- *
- * @param string $url
- * @return bool Whether SSL access is available
- */
-function url_is_accessable_via_ssl($url)
-{
-       if ( in_array( 'curl', get_loaded_extensions() ) ) {
-               $ssl = set_url_scheme( $url, 'https' );
-
-               $ch = curl_init();
-               curl_setopt($ch, CURLOPT_URL, $ssl);
-               curl_setopt($ch, CURLOPT_FAILONERROR, true);
-               curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-               curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
-               curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
-
-               curl_exec($ch);
-
-               $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
-               curl_close ($ch);
-
-               if ($status == 200 || $status == 401) {
-                       return true;
-               }
-       }
-       return false;
-}
-
-/**
- * Marks a function as deprecated and informs when it has been used.
+ * Mark a function as deprecated and inform when it has been used.
  *
  * There is a hook deprecated_function_run that will be called that can be used
  * to get the backtrace up to what file and function called the deprecated
  *
  * There is a hook deprecated_function_run that will be called that can be used
  * to get the backtrace up to what file and function called the deprecated
@@ -3048,9 +3171,9 @@ function url_is_accessable_via_ssl($url)
  * @since 2.5.0
  * @access private
  *
  * @since 2.5.0
  * @access private
  *
- * @param string $function The function that was called
- * @param string $version The version of WordPress that deprecated the function
- * @param string $replacement Optional. The function that should have been called
+ * @param string $function    The function that was called.
+ * @param string $version     The version of WordPress that deprecated the function.
+ * @param string $replacement Optional. The function that should have been called. Default null.
  */
 function _deprecated_function( $function, $version, $replacement = null ) {
 
  */
 function _deprecated_function( $function, $version, $replacement = null ) {
 
@@ -3088,7 +3211,7 @@ function _deprecated_function( $function, $version, $replacement = null ) {
 }
 
 /**
 }
 
 /**
- * Marks a file as deprecated and informs when it has been used.
+ * Mark a file as deprecated and inform when it has been used.
  *
  * There is a hook deprecated_file_included that will be called that can be used
  * to get the backtrace up to what file and function included the deprecated
  *
  * There is a hook deprecated_file_included that will be called that can be used
  * to get the backtrace up to what file and function included the deprecated
@@ -3101,10 +3224,11 @@ function _deprecated_function( $function, $version, $replacement = null ) {
  * @since 2.5.0
  * @access private
  *
  * @since 2.5.0
  * @access private
  *
- * @param string $file The file that was included
- * @param string $version The version of WordPress that deprecated the file
- * @param string $replacement Optional. The file that should have been included based on ABSPATH
- * @param string $message Optional. A message regarding the change
+ * @param string $file        The file that was included.
+ * @param string $version     The version of WordPress that deprecated the file.
+ * @param string $replacement Optional. The file that should have been included based on ABSPATH.
+ *                            Default null.
+ * @param string $message     Optional. A message regarding the change. Default empty.
  */
 function _deprecated_file( $file, $version, $replacement = null, $message = '' ) {
 
  */
 function _deprecated_file( $file, $version, $replacement = null, $message = '' ) {
 
@@ -3143,15 +3267,16 @@ function _deprecated_file( $file, $version, $replacement = null, $message = '' )
        }
 }
 /**
        }
 }
 /**
- * Marks a function argument as deprecated and informs when it has been used.
+ * Mark a function argument as deprecated and inform when it has been used.
  *
  * This function is to be used whenever a deprecated function argument is used.
  * Before this function is called, the argument must be checked for whether it was
  * used by comparing it to its default value or evaluating whether it is empty.
  * For example:
  * <code>
  *
  * This function is to be used whenever a deprecated function argument is used.
  * Before this function is called, the argument must be checked for whether it was
  * used by comparing it to its default value or evaluating whether it is empty.
  * For example:
  * <code>
- * if ( !empty($deprecated) )
+ * if ( ! empty( $deprecated ) ) {
  *     _deprecated_argument( __FUNCTION__, '3.0' );
  *     _deprecated_argument( __FUNCTION__, '3.0' );
+ * }
  * </code>
  *
  * There is a hook deprecated_argument_run that will be called that can be used
  * </code>
  *
  * There is a hook deprecated_argument_run that will be called that can be used
@@ -3163,9 +3288,9 @@ function _deprecated_file( $file, $version, $replacement = null, $message = '' )
  * @since 3.0.0
  * @access private
  *
  * @since 3.0.0
  * @access private
  *
- * @param string $function The function that was called
- * @param string $version The version of WordPress that deprecated the argument used
- * @param string $message Optional. A message regarding the change.
+ * @param string $function The function that was called.
+ * @param string $version  The version of WordPress that deprecated the argument used.
+ * @param string $message  Optional. A message regarding the change. Default null.
  */
 function _deprecated_argument( $function, $version, $message = null ) {
 
  */
 function _deprecated_argument( $function, $version, $message = null ) {
 
@@ -3203,7 +3328,7 @@ function _deprecated_argument( $function, $version, $message = null ) {
 }
 
 /**
 }
 
 /**
- * Marks something as being incorrectly called.
+ * Mark something as being incorrectly called.
  *
  * There is a hook doing_it_wrong_run that will be called that can be used
  * to get the backtrace up to what file and function called the deprecated
  *
  * There is a hook doing_it_wrong_run that will be called that can be used
  * to get the backtrace up to what file and function called the deprecated
@@ -3215,8 +3340,8 @@ function _deprecated_argument( $function, $version, $message = null ) {
  * @access private
  *
  * @param string $function The function that was called.
  * @access private
  *
  * @param string $function The function that was called.
- * @param string $message A message explaining what has been done incorrectly.
- * @param string $version The version of WordPress where the message was added.
+ * @param string $message  A message explaining what has been done incorrectly.
+ * @param string $version  The version of WordPress where the message was added.
  */
 function _doing_it_wrong( $function, $message, $version ) {
 
  */
 function _doing_it_wrong( $function, $message, $version ) {
 
@@ -3256,7 +3381,7 @@ function _doing_it_wrong( $function, $message, $version ) {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @return bool Whether the server is running lighttpd < 1.5.0
+ * @return bool Whether the server is running lighttpd < 1.5.0.
  */
 function is_lighttpd_before_150() {
        $server_parts = explode( '/', isset( $_SERVER['SERVER_SOFTWARE'] )? $_SERVER['SERVER_SOFTWARE'] : '' );
  */
 function is_lighttpd_before_150() {
        $server_parts = explode( '/', isset( $_SERVER['SERVER_SOFTWARE'] )? $_SERVER['SERVER_SOFTWARE'] : '' );
@@ -3269,9 +3394,9 @@ function is_lighttpd_before_150() {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param string $mod e.g. mod_rewrite
- * @param bool $default The default return value if the module is not found
- * @return bool
+ * @param string $mod     The module, e.g. mod_rewrite.
+ * @param bool   $default Optional. The default return value if the module is not found. Default false.
+ * @return bool Whether the specified module is loaded.
  */
 function apache_mod_loaded($mod, $default = false) {
        global $is_apache;
  */
 function apache_mod_loaded($mod, $default = false) {
        global $is_apache;
@@ -3279,11 +3404,11 @@ function apache_mod_loaded($mod, $default = false) {
        if ( !$is_apache )
                return false;
 
        if ( !$is_apache )
                return false;
 
-       if ( function_exists('apache_get_modules') ) {
+       if ( function_exists( 'apache_get_modules' ) ) {
                $mods = apache_get_modules();
                if ( in_array($mod, $mods) )
                        return true;
                $mods = apache_get_modules();
                if ( in_array($mod, $mods) )
                        return true;
-       } elseif ( function_exists('phpinfo') ) {
+       } elseif ( function_exists( 'phpinfo' ) && false === strpos( ini_get( 'disable_functions' ), 'phpinfo' ) ) {
                        ob_start();
                        phpinfo(8);
                        $phpinfo = ob_get_clean();
                        ob_start();
                        phpinfo(8);
                        $phpinfo = ob_get_clean();
@@ -3298,7 +3423,7 @@ function apache_mod_loaded($mod, $default = false) {
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
- * @return bool
+ * @return bool Whether IIS7 supports permalinks.
  */
 function iis7_supports_permalinks() {
        global $is_iis7;
  */
 function iis7_supports_permalinks() {
        global $is_iis7;
@@ -3381,19 +3506,13 @@ function is_ssl() {
  *
  * @since 2.6.0
  *
  *
  * @since 2.6.0
  *
- * @param string|bool $force Optional.
+ * @see force_ssl_admin()
+ *
+ * @param string|bool $force Optional Whether to force SSL login. Default null.
  * @return bool True if forced, false if not forced.
  */
 function force_ssl_login( $force = null ) {
  * @return bool True if forced, false if not forced.
  */
 function force_ssl_login( $force = null ) {
-       static $forced = false;
-
-       if ( !is_null( $force ) ) {
-               $old_forced = $forced;
-               $forced = $force;
-               return $old_forced;
-       }
-
-       return $forced;
+       return force_ssl_admin( $force );
 }
 
 /**
 }
 
 /**
@@ -3401,7 +3520,7 @@ function force_ssl_login( $force = null ) {
  *
  * @since 2.6.0
  *
  *
  * @since 2.6.0
  *
- * @param string|bool $force
+ * @param string|bool $force Optional. Whether to force SSL in admin screens. Default null.
  * @return bool True if forced, false if not forced.
  */
 function force_ssl_admin( $force = null ) {
  * @return bool True if forced, false if not forced.
  */
 function force_ssl_admin( $force = null ) {
@@ -3424,7 +3543,7 @@ function force_ssl_admin( $force = null ) {
  *
  * @since 2.6.0
  *
  *
  * @since 2.6.0
  *
- * @return string
+ * @return string The guessed URL.
  */
 function wp_guess_url() {
        if ( defined('WP_SITEURL') && '' != WP_SITEURL ) {
  */
 function wp_guess_url() {
        if ( defined('WP_SITEURL') && '' != WP_SITEURL ) {
@@ -3492,16 +3611,16 @@ function wp_suspend_cache_addition( $suspend = null ) {
 /**
  * Suspend cache invalidation.
  *
 /**
  * Suspend cache invalidation.
  *
- * Turns cache invalidation on and off. Useful during imports where you don't wont to do invalidations
- * every time a post is inserted. Callers must be sure that what they are doing won't lead to an inconsistent
- * cache when invalidation is suspended.
+ * Turns cache invalidation on and off. Useful during imports where you don't wont to do
+ * invalidations every time a post is inserted. Callers must be sure that what they are
+ * doing won't lead to an inconsistent cache when invalidation is suspended.
  *
  * @since 2.7.0
  *
  *
  * @since 2.7.0
  *
- * @param bool $suspend Whether to suspend or enable cache invalidation
- * @return bool The current suspend setting
+ * @param bool $suspend Optional. Whether to suspend or enable cache invalidation. Default true.
+ * @return bool The current suspend setting.
  */
  */
-function wp_suspend_cache_invalidation($suspend = true) {
+function wp_suspend_cache_invalidation( $suspend = true ) {
        global $_wp_suspend_cache_invalidation;
 
        $current_suspend = $_wp_suspend_cache_invalidation;
        global $_wp_suspend_cache_invalidation;
 
        $current_suspend = $_wp_suspend_cache_invalidation;
@@ -3510,12 +3629,14 @@ function wp_suspend_cache_invalidation($suspend = true) {
 }
 
 /**
 }
 
 /**
- * Whether a site is the main site of the current network.
+ * Determine whether a site is the main site of the current network.
  *
  * @since 3.0.0
  *
  * @param int $site_id Optional. Site ID to test. Defaults to current site.
  *
  * @since 3.0.0
  *
  * @param int $site_id Optional. Site ID to test. Defaults to current site.
- * @return bool True if $site_id is the main site of the network, or if not running multisite.
+ *                     Defaults to current site.
+ * @return bool True if $site_id is the main site of the network, or if not
+ *              running Multisite.
  */
 function is_main_site( $site_id = null ) {
        // This is the current network's information; 'site' is old terminology.
  */
 function is_main_site( $site_id = null ) {
        // This is the current network's information; 'site' is old terminology.
@@ -3531,12 +3652,12 @@ function is_main_site( $site_id = null ) {
 }
 
 /**
 }
 
 /**
- * Whether a network is the main network of the multisite install.
+ * Determine whether a network is the main network of the Multisite install.
  *
  * @since 3.7.0
  *
  * @param int $network_id Optional. Network ID to test. Defaults to current network.
  *
  * @since 3.7.0
  *
  * @param int $network_id Optional. Network ID to test. Defaults to current network.
- * @return bool True if $network_id is the main network, or if not running multisite.
+ * @return bool True if $network_id is the main network, or if not running Multisite.
  */
 function is_main_network( $network_id = null ) {
        global $wpdb;
  */
 function is_main_network( $network_id = null ) {
        global $wpdb;
@@ -3568,12 +3689,11 @@ function is_main_network( $network_id = null ) {
 }
 
 /**
 }
 
 /**
- * Whether global terms are enabled.
- *
+ * Determine whether global terms are enabled.
  *
  * @since 3.0.0
  *
  *
  * @since 3.0.0
  *
- * @return bool True if multisite and global terms enabled
+ * @return bool True if multisite and global terms enabled.
  */
 function global_terms_enabled() {
        if ( ! is_multisite() )
  */
 function global_terms_enabled() {
        if ( ! is_multisite() )
@@ -3608,7 +3728,7 @@ function global_terms_enabled() {
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
- * @return float|bool
+ * @return float|bool Timezone GMT offset, false otherwise.
  */
 function wp_timezone_override_offset() {
        if ( !$timezone_string = get_option( 'timezone_string' ) ) {
  */
 function wp_timezone_override_offset() {
        if ( !$timezone_string = get_option( 'timezone_string' ) ) {
@@ -3627,6 +3747,7 @@ function wp_timezone_override_offset() {
  * Sort-helper for timezones.
  *
  * @since 2.9.0
  * Sort-helper for timezones.
  *
  * @since 2.9.0
+ * @access private
  *
  * @param array $a
  * @param array $b
  *
  * @param array $a
  * @param array $b
@@ -3671,11 +3792,11 @@ function _wp_timezone_choice_usort_callback( $a, $b ) {
 }
 
 /**
 }
 
 /**
- * Gives a nicely formatted list of timezone strings.
+ * Gives a nicely-formatted list of timezone strings.
  *
  * @since 2.9.0
  *
  *
  * @since 2.9.0
  *
- * @param string $selected_zone Selected Zone
+ * @param string $selected_zone Selected timezone.
  * @return string
  */
 function wp_timezone_choice( $selected_zone ) {
  * @return string
  */
 function wp_timezone_choice( $selected_zone ) {
@@ -3801,19 +3922,22 @@ function wp_timezone_choice( $selected_zone ) {
 
 /**
  * Strip close comment and close php tags from file headers used by WP.
 
 /**
  * Strip close comment and close php tags from file headers used by WP.
- * See http://core.trac.wordpress.org/ticket/8497
  *
  * @since 2.8.0
  *
  * @since 2.8.0
+ * @access private
+ *
+ * @see http://core.trac.wordpress.org/ticket/8497
  *
  *
- * @param string $str
+ * @param string $str Header comment to clean up.
  * @return string
  */
  * @return string
  */
-function _cleanup_header_comment($str) {
+function _cleanup_header_comment( $str ) {
        return trim(preg_replace("/\s*(?:\*\/|\?>).*/", '', $str));
 }
 
 /**
        return trim(preg_replace("/\s*(?:\*\/|\?>).*/", '', $str));
 }
 
 /**
- * Permanently deletes posts, pages, attachments, and comments which have been in the trash for EMPTY_TRASH_DAYS.
+ * Permanently delete posts, pages, attachments, and comments which have been
+ * in the trash for EMPTY_TRASH_DAYS.
  *
  * @since 2.9.0
  */
  *
  * @since 2.9.0
  */
@@ -3870,9 +3994,10 @@ function wp_scheduled_delete() {
  * @see http://codex.wordpress.org/File_Header
  *
  * @since 2.9.0
  * @see http://codex.wordpress.org/File_Header
  *
  * @since 2.9.0
- * @param string $file Path to the file
- * @param array $default_headers List of headers, in the format array('HeaderKey' => 'Header Name')
- * @param string $context If specified adds filter hook "extra_{$context}_headers"
+ * @param string $file            Path to the file.
+ * @param array  $default_headers List of headers, in the format array('HeaderKey' => 'Header Name').
+ * @param string $context         Optional. If specified adds filter hook "extra_{$context}_headers".
+ *                                Default empty.
  */
 function get_file_data( $file, $default_headers, $context = '' ) {
        // We don't need to write to the file, so just open for reading.
  */
 function get_file_data( $file, $default_headers, $context = '' ) {
        // We don't need to write to the file, so just open for reading.
@@ -3920,8 +4045,10 @@ function get_file_data( $file, $default_headers, $context = '' ) {
  * Useful for returning true to filters easily.
  *
  * @since 3.0.0
  * Useful for returning true to filters easily.
  *
  * @since 3.0.0
+ *
  * @see __return_false()
  * @see __return_false()
- * @return bool true
+ *
+ * @return bool True.
  */
 function __return_true() {
        return true;
  */
 function __return_true() {
        return true;
@@ -3933,8 +4060,10 @@ function __return_true() {
  * Useful for returning false to filters easily.
  *
  * @since 3.0.0
  * Useful for returning false to filters easily.
  *
  * @since 3.0.0
+ *
  * @see __return_true()
  * @see __return_true()
- * @return bool false
+ *
+ * @return bool False.
  */
 function __return_false() {
        return false;
  */
 function __return_false() {
        return false;
@@ -3946,7 +4075,8 @@ function __return_false() {
  * Useful for returning 0 to filters easily.
  *
  * @since 3.0.0
  * Useful for returning 0 to filters easily.
  *
  * @since 3.0.0
- * @return int 0
+ *
+ * @return int 0.
  */
 function __return_zero() {
        return 0;
  */
 function __return_zero() {
        return 0;
@@ -3958,7 +4088,8 @@ function __return_zero() {
  * Useful for returning an empty array to filters easily.
  *
  * @since 3.0.0
  * Useful for returning an empty array to filters easily.
  *
  * @since 3.0.0
- * @return array Empty array
+ *
+ * @return array Empty array.
  */
 function __return_empty_array() {
        return array();
  */
 function __return_empty_array() {
        return array();
@@ -3970,7 +4101,8 @@ function __return_empty_array() {
  * Useful for returning null to filters easily.
  *
  * @since 3.4.0
  * Useful for returning null to filters easily.
  *
  * @since 3.4.0
- * @return null
+ *
+ * @return null Null value.
  */
 function __return_null() {
        return null;
  */
 function __return_null() {
        return null;
@@ -3982,8 +4114,10 @@ function __return_null() {
  * Useful for returning an empty string to filters easily.
  *
  * @since 3.7.0
  * Useful for returning an empty string to filters easily.
  *
  * @since 3.7.0
+ *
  * @see __return_null()
  * @see __return_null()
- * @return string Empty string
+ *
+ * @return string Empty string.
  */
 function __return_empty_string() {
        return '';
  */
 function __return_empty_string() {
        return '';
@@ -3992,29 +4126,26 @@ function __return_empty_string() {
 /**
  * Send a HTTP header to disable content type sniffing in browsers which support it.
  *
 /**
  * Send a HTTP header to disable content type sniffing in browsers which support it.
  *
- * @link http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx
- * @link http://src.chromium.org/viewvc/chrome?view=rev&revision=6985
- *
  * @since 3.0.0
  * @since 3.0.0
- * @return none
+ *
+ * @see http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx
+ * @see http://src.chromium.org/viewvc/chrome?view=rev&revision=6985
  */
 function send_nosniff_header() {
        @header( 'X-Content-Type-Options: nosniff' );
 }
 
 /**
  */
 function send_nosniff_header() {
        @header( 'X-Content-Type-Options: nosniff' );
 }
 
 /**
- * Returns a MySQL expression for selecting the week number based on the start_of_week option.
+ * Return a MySQL expression for selecting the week number based on the start_of_week option.
  *
  * @internal
  * @since 3.0.0
  *
  * @internal
  * @since 3.0.0
- * @param string $column
- * @return string
+ *
+ * @param string $column Database column.
+ * @return string SQL clause.
  */
 function _wp_mysql_week( $column ) {
        switch ( $start_of_week = (int) get_option( 'start_of_week' ) ) {
  */
 function _wp_mysql_week( $column ) {
        switch ( $start_of_week = (int) get_option( 'start_of_week' ) ) {
-       default :
-       case 0 :
-               return "WEEK( $column, 0 )";
        case 1 :
                return "WEEK( $column, 1 )";
        case 2 :
        case 1 :
                return "WEEK( $column, 1 )";
        case 2 :
@@ -4023,20 +4154,24 @@ function _wp_mysql_week( $column ) {
        case 5 :
        case 6 :
                return "WEEK( DATE_SUB( $column, INTERVAL $start_of_week DAY ), 0 )";
        case 5 :
        case 6 :
                return "WEEK( DATE_SUB( $column, INTERVAL $start_of_week DAY ), 0 )";
+       case 0 :
+       default :
+               return "WEEK( $column, 0 )";
        }
 }
 
 /**
        }
 }
 
 /**
- * Finds hierarchy loops using a callback function that maps object IDs to parent IDs.
+ * Find hierarchy loops using a callback function that maps object IDs to parent IDs.
  *
  * @since 3.1.0
  * @access private
  *
  *
  * @since 3.1.0
  * @access private
  *
- * @param callback $callback function that accepts ( ID, $callback_args ) and outputs parent_ID
- * @param int $start The ID to start the loop check at
- * @param int $start_parent the parent_ID of $start to use instead of calling $callback( $start ). Use null to always use $callback
- * @param array $callback_args optional additional arguments to send to $callback
- * @return array IDs of all members of loop
+ * @param callback $callback      Function that accepts ( ID, $callback_args ) and outputs parent_ID.
+ * @param int      $start         The ID to start the loop check at.
+ * @param int      $start_parent  The parent_ID of $start to use instead of calling $callback( $start ).
+ *                                Use null to always use $callback
+ * @param array    $callback_args Optional. Additional arguments to send to $callback.
+ * @return array IDs of all members of loop.
  */
 function wp_find_hierarchy_loop( $callback, $start, $start_parent, $callback_args = array() ) {
        $override = is_null( $start_parent ) ? array() : array( $start => $start_parent );
  */
 function wp_find_hierarchy_loop( $callback, $start, $start_parent, $callback_args = array() ) {
        $override = is_null( $start_parent ) ? array() : array( $start => $start_parent );
@@ -4048,7 +4183,7 @@ function wp_find_hierarchy_loop( $callback, $start, $start_parent, $callback_arg
 }
 
 /**
 }
 
 /**
- * Uses the "The Tortoise and the Hare" algorithm to detect loops.
+ * Use the "The Tortoise and the Hare" algorithm to detect loops.
  *
  * For every step of the algorithm, the hare takes two steps and the tortoise one.
  * If the hare ever laps the tortoise, there must be a loop.
  *
  * For every step of the algorithm, the hare takes two steps and the tortoise one.
  * If the hare ever laps the tortoise, there must be a loop.
@@ -4056,14 +4191,16 @@ function wp_find_hierarchy_loop( $callback, $start, $start_parent, $callback_arg
  * @since 3.1.0
  * @access private
  *
  * @since 3.1.0
  * @access private
  *
- * @param callback $callback function that accepts ( ID, callback_arg, ... ) and outputs parent_ID
- * @param int $start The ID to start the loop check at
- * @param array $override an array of ( ID => parent_ID, ... ) to use instead of $callback
- * @param array $callback_args optional additional arguments to send to $callback
- * @param bool $_return_loop Return loop members or just detect presence of loop?
- *             Only set to true if you already know the given $start is part of a loop
- *             (otherwise the returned array might include branches)
- * @return mixed scalar ID of some arbitrary member of the loop, or array of IDs of all members of loop if $_return_loop
+ * @param callback $callback      Function that accepts ( ID, callback_arg, ... ) and outputs parent_ID.
+ * @param int      $start         The ID to start the loop check at.
+ * @param array    $override      Optional. An array of ( ID => parent_ID, ... ) to use instead of $callback.
+ *                                Default empty array.
+ * @param array    $callback_args Optional. Additional arguments to send to $callback. Default empty array.
+ * @param bool     $_return_loop  Optional. Return loop members or just detect presence of loop? Only set
+ *                                to true if you already know the given $start is part of a loop (otherwise
+ *                                the returned array might include branches). Default false.
+ * @return mixed Scalar ID of some arbitrary member of the loop, or array of IDs of all members of loop if
+ *               $_return_loop
  */
 function wp_find_hierarchy_loop_tortoise_hare( $callback, $start, $override = array(), $callback_args = array(), $_return_loop = false ) {
        $tortoise = $hare = $evanescent_hare = $start;
  */
 function wp_find_hierarchy_loop_tortoise_hare( $callback, $start, $override = array(), $callback_args = array(), $_return_loop = false ) {
        $tortoise = $hare = $evanescent_hare = $start;
@@ -4095,10 +4232,9 @@ function wp_find_hierarchy_loop_tortoise_hare( $callback, $start, $override = ar
 /**
  * Send a HTTP header to limit rendering of pages to same origin iframes.
  *
 /**
  * Send a HTTP header to limit rendering of pages to same origin iframes.
  *
- * @link https://developer.mozilla.org/en/the_x-frame-options_response_header
- *
  * @since 3.1.3
  * @since 3.1.3
- * @return none
+ *
+ * @see https://developer.mozilla.org/en/the_x-frame-options_response_header
  */
 function send_frame_options_header() {
        @header( 'X-Frame-Options: SAMEORIGIN' );
  */
 function send_frame_options_header() {
        @header( 'X-Frame-Options: SAMEORIGIN' );
@@ -4108,10 +4244,11 @@ function send_frame_options_header() {
  * Retrieve a list of protocols to allow in HTML attributes.
  *
  * @since 3.3.0
  * Retrieve a list of protocols to allow in HTML attributes.
  *
  * @since 3.3.0
+ *
  * @see wp_kses()
  * @see esc_url()
  *
  * @see wp_kses()
  * @see esc_url()
  *
- * @return array Array of allowed protocols
+ * @return array Array of allowed protocols.
  */
 function wp_allowed_protocols() {
        static $protocols;
  */
 function wp_allowed_protocols() {
        static $protocols;
@@ -4121,8 +4258,8 @@ function wp_allowed_protocols() {
 
                /**
                 * Filter the list of protocols allowed in HTML attributes.
 
                /**
                 * Filter the list of protocols allowed in HTML attributes.
-                * 
-                * @since 3.0.0 
+                *
+                * @since 3.0.0
                 *
                 * @param array $protocols Array of allowed protocols e.g. 'http', 'ftp', 'tel', and more.
                 */
                 *
                 * @param array $protocols Array of allowed protocols e.g. 'http', 'ftp', 'tel', and more.
                 */
@@ -4133,15 +4270,21 @@ function wp_allowed_protocols() {
 }
 
 /**
 }
 
 /**
- * Return a comma separated string of functions that have been called to get to the current point in code.
+ * Return a comma-separated string of functions that have been called to get
+ * to the current point in code.
  *
  *
- * @link http://core.trac.wordpress.org/ticket/19589
  * @since 3.4.0
  *
  * @since 3.4.0
  *
- * @param string $ignore_class A class to ignore all function calls within - useful when you want to just give info about the callee
- * @param int $skip_frames A number of stack frames to skip - useful for unwinding back to the source of the issue
- * @param bool $pretty Whether or not you want a comma separated string or raw array returned
- * @return string|array Either a string containing a reversed comma separated trace or an array of individual calls.
+ * @see http://core.trac.wordpress.org/ticket/19589
+ *
+ * @param string $ignore_class Optional. A class to ignore all function calls within - useful
+ *                             when you want to just give info about the callee. Default null.
+ * @param int    $skip_frames  Optional. A number of stack frames to skip - useful for unwinding
+ *                             back to the source of the issue. Default 0.
+ * @param bool   $pretty       Optional. Whether or not you want a comma separated string or raw
+ *                             array returned. Default true.
+ * @return string|array Either a string containing a reversed comma separated trace or an array
+ *                      of individual calls.
  */
 function wp_debug_backtrace_summary( $ignore_class = null, $skip_frames = 0, $pretty = true ) {
        if ( version_compare( PHP_VERSION, '5.2.5', '>=' ) )
  */
 function wp_debug_backtrace_summary( $ignore_class = null, $skip_frames = 0, $pretty = true ) {
        if ( version_compare( PHP_VERSION, '5.2.5', '>=' ) )
@@ -4178,14 +4321,15 @@ function wp_debug_backtrace_summary( $ignore_class = null, $skip_frames = 0, $pr
 }
 
 /**
 }
 
 /**
- * Retrieve ids that are not already present in the cache
+ * Retrieve ids that are not already present in the cache.
  *
  * @since 3.4.0
  *
  * @since 3.4.0
+ * @access private
  *
  *
- * @param array $object_ids ID list
- * @param string $cache_key The cache bucket to check against
+ * @param array  $object_ids ID list.
+ * @param string $cache_key  The cache bucket to check against.
  *
  *
- * @return array
+ * @return array List of ids not present in the cache.
  */
 function _get_non_cached_ids( $object_ids, $cache_key ) {
        $clean = array();
  */
 function _get_non_cached_ids( $object_ids, $cache_key ) {
        $clean = array();
@@ -4205,7 +4349,7 @@ function _get_non_cached_ids( $object_ids, $cache_key ) {
  * @since 3.4.0
  * @access private
  *
  * @since 3.4.0
  * @access private
  *
- * @return bool true|false
+ * @return bool true|false Whether the device is able to upload files.
  */
 function _device_can_upload() {
        if ( ! wp_is_mobile() )
  */
 function _device_can_upload() {
        if ( ! wp_is_mobile() )
@@ -4225,8 +4369,8 @@ function _device_can_upload() {
 /**
  * Test if a given path is a stream URL
  *
 /**
  * Test if a given path is a stream URL
  *
- * @param string $path The resource path or URL
- * @return bool True if the path is a stream URL
+ * @param string $path The resource path or URL.
+ * @return bool True if the path is a stream URL.
  */
 function wp_is_stream( $path ) {
        $wrappers = stream_get_wrappers();
  */
 function wp_is_stream( $path ) {
        $wrappers = stream_get_wrappers();
@@ -4236,11 +4380,17 @@ function wp_is_stream( $path ) {
 }
 
 /**
 }
 
 /**
- * Test if the supplied date is valid for the Gregorian calendar
+ * Test if the supplied date is valid for the Gregorian calendar.
  *
  * @since 3.5.0
  *
  *
  * @since 3.5.0
  *
- * @return bool true|false
+ * @see checkdate()
+ *
+ * @param  int    $month       Month number.
+ * @param  int    $day         Day number.
+ * @param  int    $year        Year number.
+ * @param  string $source_date The date to filter.
+ * @return bool True if valid date, false if not valid date.
  */
 function wp_checkdate( $month, $day, $year, $source_date ) {
        /**
  */
 function wp_checkdate( $month, $day, $year, $source_date ) {
        /**
@@ -4279,6 +4429,9 @@ function wp_auth_check_load() {
        /**
         * Filter whether to load the authentication check.
         *
        /**
         * Filter whether to load the authentication check.
         *
+        * Passing a falsey value to the filter will effectively short-circuit
+        * loading the authentication check.
+        *
         * @since 3.6.0
         *
         * @param bool      $show   Whether to load the authentication check.
         * @since 3.6.0
         *
         * @param bool      $show   Whether to load the authentication check.
@@ -4303,9 +4456,6 @@ function wp_auth_check_html() {
        $current_domain = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'];
        $same_domain = ( strpos( $login_url, $current_domain ) === 0 );
 
        $current_domain = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'];
        $same_domain = ( strpos( $login_url, $current_domain ) === 0 );
 
-       if ( $same_domain && force_ssl_login() && ! force_ssl_admin() )
-               $same_domain = false;
-
        /**
         * Filter whether the authentication check originated at the same domain.
         *
        /**
         * Filter whether the authentication check originated at the same domain.
         *
@@ -4347,6 +4497,10 @@ function wp_auth_check_html() {
  * or if their cookie is within the grace period.
  *
  * @since 3.6.0
  * or if their cookie is within the grace period.
  *
  * @since 3.6.0
+ *
+ * @param array|object $response  The Heartbeat response object or array.
+ * @return array|object $response The Heartbeat response object or array with 'wp-auth-check'
+ *                                value set.
  */
 function wp_auth_check( $response ) {
        $response['wp-auth-check'] = is_user_logged_in() && empty( $GLOBALS['login_grace_period'] );
  */
 function wp_auth_check( $response ) {
        $response['wp-auth-check'] = is_user_logged_in() && empty( $GLOBALS['login_grace_period'] );
@@ -4354,17 +4508,20 @@ function wp_auth_check( $response ) {
 }
 
 /**
 }
 
 /**
- * Return RegEx body to liberally match an opening HTML tag that:
+ * Return RegEx body to liberally match an opening HTML tag.
+ *
+ * Matches an opening HTML tag that:
  * 1. Is self-closing or
  * 2. Has no body but has a closing tag of the same name or
  * 3. Contains a body and a closing tag of the same name
  *
  * 1. Is self-closing or
  * 2. Has no body but has a closing tag of the same name or
  * 3. Contains a body and a closing tag of the same name
  *
- * Note: this RegEx does not balance inner tags and does not attempt to produce valid HTML
+ * Note: this RegEx does not balance inner tags and does not attempt
+ * to produce valid HTML
  *
  * @since 3.6.0
  *
  *
  * @since 3.6.0
  *
- * @param string $tag An HTML tag name. Example: 'video'
- * @return string
+ * @param string $tag An HTML tag name. Example: 'video'.
+ * @return string Tag RegEx.
  */
 function get_tag_regex( $tag ) {
        if ( empty( $tag ) )
  */
 function get_tag_regex( $tag ) {
        if ( empty( $tag ) )
@@ -4373,14 +4530,16 @@ function get_tag_regex( $tag ) {
 }
 
 /**
 }
 
 /**
- * Return a canonical form of the provided charset appropriate for passing to PHP
+ * Retrieve a canonical form of the provided charset appropriate for passing to PHP
  * functions such as htmlspecialchars() and charset html attributes.
  *
  * functions such as htmlspecialchars() and charset html attributes.
  *
- * @link http://core.trac.wordpress.org/ticket/23688
  * @since 3.6.0
  * @since 3.6.0
+ * @access private
+ *
+ * @see http://core.trac.wordpress.org/ticket/23688
  *
  *
- * @param string A charset name
- * @return string The canonical form of the charset
+ * @param string $charset A charset name.
+ * @return string The canonical form of the charset.
  */
 function _canonical_charset( $charset ) {
        if ( 'UTF-8' === $charset || 'utf-8' === $charset || 'utf8' === $charset ||
  */
 function _canonical_charset( $charset ) {
        if ( 'UTF-8' === $charset || 'utf-8' === $charset || 'utf8' === $charset ||
@@ -4395,22 +4554,27 @@ function _canonical_charset( $charset ) {
 }
 
 /**
 }
 
 /**
- * Sets the mbstring internal encoding to a binary safe encoding whne func_overload is enabled.
- *
- * When mbstring.func_overload is in use for multi-byte encodings, the results from strlen() and
- * similar functions respect the utf8 characters, causing binary data to return incorrect lengths.
+ * Set the mbstring internal encoding to a binary safe encoding when func_overload
+ * is enabled.
  *
  *
- * This function overrides the mbstring encoding to a binary-safe encoding, and resets it to the
- * users expected encoding afterwards through the `reset_mbstring_encoding` function.
+ * When mbstring.func_overload is in use for multi-byte encodings, the results from
+ * strlen() and similar functions respect the utf8 characters, causing binary data
+ * to return incorrect lengths.
  *
  *
- * It is safe to recursively call this function, however each `mbstring_binary_safe_encoding()`
- * call must be followed up with an equal number of `reset_mbstring_encoding()` calls.
+ * This function overrides the mbstring encoding to a binary-safe encoding, and
+ * resets it to the users expected encoding afterwards through the
+ * `reset_mbstring_encoding` function.
  *
  *
- * @see reset_mbstring_encoding()
+ * It is safe to recursively call this function, however each
+ * `mbstring_binary_safe_encoding()` call must be followed up with an equal number
+ * of `reset_mbstring_encoding()` calls.
  *
  * @since 3.7.0
  *
  *
  * @since 3.7.0
  *
- * @param bool $reset Whether to reset the encoding back to a previously-set encoding.
+ * @see reset_mbstring_encoding()
+ *
+ * @param bool $reset Optional. Whether to reset the encoding back to a previously-set encoding.
+ *                    Default false.
  */
 function mbstring_binary_safe_encoding( $reset = false ) {
        static $encodings = array();
  */
 function mbstring_binary_safe_encoding( $reset = false ) {
        static $encodings = array();
@@ -4435,7 +4599,7 @@ function mbstring_binary_safe_encoding( $reset = false ) {
 }
 
 /**
 }
 
 /**
- * Resets the mbstring internal encoding to a users previously set encoding.
+ * Reset the mbstring internal encoding to a users previously set encoding.
  *
  * @see mbstring_binary_safe_encoding()
  *
  *
  * @see mbstring_binary_safe_encoding()
  *
@@ -4444,3 +4608,23 @@ function mbstring_binary_safe_encoding( $reset = false ) {
 function reset_mbstring_encoding() {
        mbstring_binary_safe_encoding( true );
 }
 function reset_mbstring_encoding() {
        mbstring_binary_safe_encoding( true );
 }
+
+/**
+ * Alternative to filter_var( $var, FILTER_VALIDATE_BOOLEAN ).
+ *
+ * @since 4.0.0
+ *
+ * @param mixed $var Boolean value to validate.
+ * @return bool Whether the value is validated.
+ */
+function wp_validate_boolean( $var ) {
+       if ( is_bool( $var ) ) {
+               return $var;
+       }
+
+       if ( 'false' === $var ) {
+               return false;
+       }
+
+       return (bool) $var;
+}
index f4d6f37d66bb94f6b271591d3b7e0b5e4d9484b1..61665ad5affe7cd8c9d3e658197a06889364be01 100644 (file)
@@ -544,21 +544,22 @@ function wp_register( $before = '<li>', $after = '</li>', $echo = true ) {
                $link = $before . '<a href="' . admin_url() . '">' . __('Site Admin') . '</a>' . $after;
        }
 
                $link = $before . '<a href="' . admin_url() . '">' . __('Site Admin') . '</a>' . $after;
        }
 
+       /**
+        * Filter the HTML link to the Registration or Admin page.
+        *
+        * Users are sent to the admin page if logged-in, or the registration page
+        * if enabled and logged-out.
+        *
+        * @since 1.5.0
+        *
+        * @param string $link The HTML code for the link to the Registration or Admin page.
+        */
+       $link = apply_filters( 'register', $link );
+
        if ( $echo ) {
        if ( $echo ) {
-               /**
-                * Filter the HTML link to the Registration or Admin page.
-                *
-                * Users are sent to the admin page if logged-in, or the registration page
-                * if enabled and logged-out.
-                *
-                * @since 1.5.0
-                *
-                * @param string $link The HTML code for the link to the Registration or Admin page.
-                */
-               echo apply_filters( 'register', $link );
+               echo $link;
        } else {
        } else {
-               /** This filter is documented in wp-includes/general-template.php */
-               return apply_filters( 'register', $link );
+               return $link;
        }
 }
 
        }
 }
 
@@ -752,7 +753,7 @@ function get_bloginfo( $show = '', $filter = 'raw' ) {
  * @return string|null String on retrieve, null when displaying.
  */
 function wp_title($sep = '&raquo;', $display = true, $seplocation = '') {
  * @return string|null String on retrieve, null when displaying.
  */
 function wp_title($sep = '&raquo;', $display = true, $seplocation = '') {
-       global $wpdb, $wp_locale;
+       global $wp_locale;
 
        $m = get_query_var('m');
        $year = get_query_var('year');
 
        $m = get_query_var('m');
        $year = get_query_var('year');
@@ -793,7 +794,7 @@ function wp_title($sep = '&raquo;', $display = true, $seplocation = '') {
        }
 
        // If there's an author
        }
 
        // If there's an author
-       if ( is_author() ) {
+       if ( is_author() && ! is_post_type_archive() ) {
                $author = get_queried_object();
                if ( $author )
                        $title = $author->display_name;
                $author = get_queried_object();
                if ( $author )
                        $title = $author->display_name;
@@ -835,13 +836,20 @@ function wp_title($sep = '&raquo;', $display = true, $seplocation = '') {
        if ( !empty($title) )
                $prefix = " $sep ";
 
        if ( !empty($title) )
                $prefix = " $sep ";
 
+       /**
+        * Filter the parts of the page title.
+        *
+        * @since 4.0.0
+        *
+        * @param array $title_array Parts of the page title.
+        */
+       $title_array = apply_filters( 'wp_title_parts', explode( $t_sep, $title ) );
+
        // Determines position of the separator and direction of the breadcrumb
        if ( 'right' == $seplocation ) { // sep on right, so reverse the order
        // Determines position of the separator and direction of the breadcrumb
        if ( 'right' == $seplocation ) { // sep on right, so reverse the order
-               $title_array = explode( $t_sep, $title );
                $title_array = array_reverse( $title_array );
                $title = implode( " $sep ", $title_array ) . $prefix;
        } else {
                $title_array = array_reverse( $title_array );
                $title = implode( " $sep ", $title_array ) . $prefix;
        } else {
-               $title_array = explode( $t_sep, $title );
                $title = $prefix . implode( " $sep ", $title_array );
        }
 
                $title = $prefix . implode( " $sep ", $title_array );
        }
 
@@ -1148,31 +1156,34 @@ function get_archives_link($url, $text, $format = 'html', $before = '', $after =
 /**
  * Display archive links based on type and format.
  *
 /**
  * Display archive links based on type and format.
  *
- * The 'type' argument offers a few choices and by default will display monthly
- * archive links. The other options for values are 'daily', 'weekly', 'monthly',
- * 'yearly', 'postbypost' or 'alpha'. Both 'postbypost' and 'alpha' display the
- * same archive link list, the difference between the two is that 'alpha'
- * will order by post title and 'postbypost' will order by post date.
- *
- * The date archives will logically display dates with links to the archive post
- * page. The 'postbypost' and 'alpha' values for 'type' argument will display
- * the post titles.
- *
- * The 'limit' argument will only display a limited amount of links, specified
- * by the 'limit' integer value. By default, there is no limit. The
- * 'show_post_count' argument will show how many posts are within the archive.
- * By default, the 'show_post_count' argument is set to false.
- *
- * For the 'format', 'before', and 'after' arguments, see {@link
- * get_archives_link()}. The values of these arguments have to do with that
- * function.
- *
  * @since 1.2.0
  *
  * @since 1.2.0
  *
- * @param string|array $args Optional. Override defaults.
+ * @see get_archives_link()
+ *
+ * @param string|array $args {
+ *     Default archive links arguments. Optional.
+ *
+ *     @type string     $type            Type of archive to retrieve. Accepts 'daily', 'weekly', 'monthly',
+ *                                       'yearly', 'postbypost', or 'alpha'. Both 'postbypost' and 'alpha'
+ *                                       display the same archive link list as well as post titles instead
+ *                                       of displaying dates. The difference between the two is that 'alpha'
+ *                                       will order by post title and 'postbypost' will order by post date.
+ *                                       Default 'monthly'.
+ *     @type string|int $limit           Number of links to limit the query to. Default empty (no limit).
+ *     @type string     $format          Format each link should take using the $before and $after args.
+ *                                       Accepts 'link' (`<link>` tag), 'option' (`<option>` tag), 'html'
+ *                                       (`<li>` tag), or a custom format, which generates a link anchor
+ *                                       with $before preceding and $after succeeding. Default 'html'.
+ *     @type string     $before          Markup to prepend to the beginning of each link. Default empty.
+ *     @type string     $after           Markup to append to the end of each link. Default empty.
+ *     @type bool       $show_post_count Whether to display the post count alongside the link. Default false.
+ *     @type bool       $echo            Whether to echo or return the links list. Default 1|true to echo.
+ *     @type string     $order           Whether to use ascending or descending order. Accepts 'ASC', or 'DESC'.
+ *                                       Default 'DESC'.
+ * }
  * @return string|null String when retrieving, null when displaying.
  */
  * @return string|null String when retrieving, null when displaying.
  */
-function wp_get_archives($args = '') {
+function wp_get_archives( $args = '' ) {
        global $wpdb, $wp_locale;
 
        $defaults = array(
        global $wpdb, $wp_locale;
 
        $defaults = array(
@@ -1183,19 +1194,20 @@ function wp_get_archives($args = '') {
        );
 
        $r = wp_parse_args( $args, $defaults );
        );
 
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
 
 
-       if ( '' == $type )
-               $type = 'monthly';
+       if ( '' == $r['type'] ) {
+               $r['type'] = 'monthly';
+       }
 
 
-       if ( '' != $limit ) {
-               $limit = absint($limit);
-               $limit = ' LIMIT '.$limit;
+       if ( ! empty( $r['limit'] ) ) {
+               $r['limit'] = absint( $r['limit'] );
+               $r['limit'] = ' LIMIT ' . $r['limit'];
        }
 
        }
 
-       $order = strtoupper( $order );
-       if ( $order !== 'ASC' )
+       $order = strtoupper( $r['order'] );
+       if ( $order !== 'ASC' ) {
                $order = 'DESC';
                $order = 'DESC';
+       }
 
        // this is what will separate dates on weekly archive links
        $archive_week_separator = '&#8211;';
 
        // this is what will separate dates on weekly archive links
        $archive_week_separator = '&#8211;';
@@ -1210,10 +1222,10 @@ function wp_get_archives($args = '') {
        $archive_week_start_date_format = 'Y/m/d';
        $archive_week_end_date_format   = 'Y/m/d';
 
        $archive_week_start_date_format = 'Y/m/d';
        $archive_week_end_date_format   = 'Y/m/d';
 
-       if ( !$archive_date_format_over_ride ) {
-               $archive_day_date_format = get_option('date_format');
-               $archive_week_start_date_format = get_option('date_format');
-               $archive_week_end_date_format = get_option('date_format');
+       if ( ! $archive_date_format_over_ride ) {
+               $archive_day_date_format = get_option( 'date_format' );
+               $archive_week_start_date_format = get_option( 'date_format' );
+               $archive_week_end_date_format = get_option( 'date_format' );
        }
 
        /**
        }
 
        /**
@@ -1244,7 +1256,9 @@ function wp_get_archives($args = '') {
                wp_cache_set( 'last_changed', $last_changed, 'posts' );
        }
 
                wp_cache_set( 'last_changed', $last_changed, 'posts' );
        }
 
-       if ( 'monthly' == $type ) {
+       $limit = $r['limit'];
+
+       if ( 'monthly' == $r['type'] ) {
                $query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date $order $limit";
                $key = md5( $query );
                $key = "wp_get_archives:$key:$last_changed";
                $query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date $order $limit";
                $key = md5( $query );
                $key = "wp_get_archives:$key:$last_changed";
@@ -1253,17 +1267,18 @@ function wp_get_archives($args = '') {
                        wp_cache_set( $key, $results, 'posts' );
                }
                if ( $results ) {
                        wp_cache_set( $key, $results, 'posts' );
                }
                if ( $results ) {
-                       $afterafter = $after;
+                       $after = $r['after'];
                        foreach ( (array) $results as $result ) {
                                $url = get_month_link( $result->year, $result->month );
                                /* translators: 1: month name, 2: 4-digit year */
                        foreach ( (array) $results as $result ) {
                                $url = get_month_link( $result->year, $result->month );
                                /* translators: 1: month name, 2: 4-digit year */
-                               $text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($result->month), $result->year);
-                               if ( $show_post_count )
-                                       $after = '&nbsp;('.$result->posts.')' . $afterafter;
-                               $output .= get_archives_link($url, $text, $format, $before, $after);
+                               $text = sprintf( __( '%1$s %2$d' ), $wp_locale->get_month( $result->month ), $result->year );
+                               if ( $r['show_post_count'] ) {
+                                       $r['after'] = '&nbsp;(' . $result->posts . ')' . $after;
+                               }
+                               $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
                        }
                }
                        }
                }
-       } elseif ('yearly' == $type) {
+       } elseif ( 'yearly' == $r['type'] ) {
                $query = "SELECT YEAR(post_date) AS `year`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date) ORDER BY post_date $order $limit";
                $key = md5( $query );
                $key = "wp_get_archives:$key:$last_changed";
                $query = "SELECT YEAR(post_date) AS `year`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date) ORDER BY post_date $order $limit";
                $key = md5( $query );
                $key = "wp_get_archives:$key:$last_changed";
@@ -1272,16 +1287,17 @@ function wp_get_archives($args = '') {
                        wp_cache_set( $key, $results, 'posts' );
                }
                if ( $results ) {
                        wp_cache_set( $key, $results, 'posts' );
                }
                if ( $results ) {
-                       $afterafter = $after;
+                       $after = $r['after'];
                        foreach ( (array) $results as $result) {
                        foreach ( (array) $results as $result) {
-                               $url = get_year_link($result->year);
-                               $text = sprintf('%d', $result->year);
-                               if ($show_post_count)
-                                       $after = '&nbsp;('.$result->posts.')' . $afterafter;
-                               $output .= get_archives_link($url, $text, $format, $before, $after);
+                               $url = get_year_link( $result->year );
+                               $text = sprintf( '%d', $result->year );
+                               if ( $r['show_post_count'] ) {
+                                       $r['after'] = '&nbsp;(' . $result->posts . ')' . $after;
+                               }
+                               $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
                        }
                }
                        }
                }
-       } elseif ( 'daily' == $type ) {
+       } elseif ( 'daily' == $r['type'] ) {
                $query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, DAYOFMONTH(post_date) AS `dayofmonth`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date), DAYOFMONTH(post_date) ORDER BY post_date $order $limit";
                $key = md5( $query );
                $key = "wp_get_archives:$key:$last_changed";
                $query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, DAYOFMONTH(post_date) AS `dayofmonth`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date), DAYOFMONTH(post_date) ORDER BY post_date $order $limit";
                $key = md5( $query );
                $key = "wp_get_archives:$key:$last_changed";
@@ -1291,17 +1307,18 @@ function wp_get_archives($args = '') {
                        wp_cache_set( $key, $results, 'posts' );
                }
                if ( $results ) {
                        wp_cache_set( $key, $results, 'posts' );
                }
                if ( $results ) {
-                       $afterafter = $after;
+                       $after = $r['after'];
                        foreach ( (array) $results as $result ) {
                        foreach ( (array) $results as $result ) {
-                               $url    = get_day_link($result->year, $result->month, $result->dayofmonth);
-                               $date = sprintf('%1$d-%2$02d-%3$02d 00:00:00', $result->year, $result->month, $result->dayofmonth);
-                               $text = mysql2date($archive_day_date_format, $date);
-                               if ($show_post_count)
-                                       $after = '&nbsp;('.$result->posts.')'.$afterafter;
-                               $output .= get_archives_link($url, $text, $format, $before, $after);
+                               $url  = get_day_link( $result->year, $result->month, $result->dayofmonth );
+                               $date = sprintf( '%1$d-%2$02d-%3$02d 00:00:00', $result->year, $result->month, $result->dayofmonth );
+                               $text = mysql2date( $archive_day_date_format, $date );
+                               if ( $r['show_post_count'] ) {
+                                       $r['after'] = '&nbsp;(' . $result->posts . ')' . $after;
+                               }
+                               $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
                        }
                }
                        }
                }
-       } elseif ( 'weekly' == $type ) {
+       } elseif ( 'weekly' == $r['type'] ) {
                $week = _wp_mysql_week( '`post_date`' );
                $query = "SELECT DISTINCT $week AS `week`, YEAR( `post_date` ) AS `yr`, DATE_FORMAT( `post_date`, '%Y-%m-%d' ) AS `yyyymmdd`, count( `ID` ) AS `posts` FROM `$wpdb->posts` $join $where GROUP BY $week, YEAR( `post_date` ) ORDER BY `post_date` $order $limit";
                $key = md5( $query );
                $week = _wp_mysql_week( '`post_date`' );
                $query = "SELECT DISTINCT $week AS `week`, YEAR( `post_date` ) AS `yr`, DATE_FORMAT( `post_date`, '%Y-%m-%d' ) AS `yyyymmdd`, count( `ID` ) AS `posts` FROM `$wpdb->posts` $join $where GROUP BY $week, YEAR( `post_date` ) ORDER BY `post_date` $order $limit";
                $key = md5( $query );
@@ -1311,25 +1328,26 @@ function wp_get_archives($args = '') {
                        wp_cache_set( $key, $results, 'posts' );
                }
                $arc_w_last = '';
                        wp_cache_set( $key, $results, 'posts' );
                }
                $arc_w_last = '';
-               $afterafter = $after;
                if ( $results ) {
                if ( $results ) {
-                               foreach ( (array) $results as $result ) {
-                                       if ( $result->week != $arc_w_last ) {
-                                               $arc_year = $result->yr;
-                                               $arc_w_last = $result->week;
-                                               $arc_week = get_weekstartend($result->yyyymmdd, get_option('start_of_week'));
-                                               $arc_week_start = date_i18n($archive_week_start_date_format, $arc_week['start']);
-                                               $arc_week_end = date_i18n($archive_week_end_date_format, $arc_week['end']);
-                                               $url  = sprintf('%1$s/%2$s%3$sm%4$s%5$s%6$sw%7$s%8$d', home_url(), '', '?', '=', $arc_year, '&amp;', '=', $result->week);
-                                               $text = $arc_week_start . $archive_week_separator . $arc_week_end;
-                                               if ($show_post_count)
-                                                       $after = '&nbsp;('.$result->posts.')'.$afterafter;
-                                               $output .= get_archives_link($url, $text, $format, $before, $after);
+                       $after = $r['after'];
+                       foreach ( (array) $results as $result ) {
+                               if ( $result->week != $arc_w_last ) {
+                                       $arc_year       = $result->yr;
+                                       $arc_w_last     = $result->week;
+                                       $arc_week       = get_weekstartend( $result->yyyymmdd, get_option( 'start_of_week' ) );
+                                       $arc_week_start = date_i18n( $archive_week_start_date_format, $arc_week['start'] );
+                                       $arc_week_end   = date_i18n( $archive_week_end_date_format, $arc_week['end'] );
+                                       $url            = sprintf( '%1$s/%2$s%3$sm%4$s%5$s%6$sw%7$s%8$d', home_url(), '', '?', '=', $arc_year, '&amp;', '=', $result->week );
+                                       $text           = $arc_week_start . $archive_week_separator . $arc_week_end;
+                                       if ( $r['show_post_count'] ) {
+                                               $r['after'] = '&nbsp;(' . $result->posts . ')' . $after;
                                        }
                                        }
+                                       $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
                                }
                                }
+                       }
                }
                }
-       } elseif ( ( 'postbypost' == $type ) || ('alpha' == $type) ) {
-               $orderby = ('alpha' == $type) ? 'post_title ASC ' : 'post_date DESC ';
+       } elseif ( ( 'postbypost' == $r['type'] ) || ('alpha' == $r['type'] ) ) {
+               $orderby = ( 'alpha' == $r['type'] ) ? 'post_title ASC ' : 'post_date DESC ';
                $query = "SELECT * FROM $wpdb->posts $join $where ORDER BY $orderby $limit";
                $key = md5( $query );
                $key = "wp_get_archives:$key:$last_changed";
                $query = "SELECT * FROM $wpdb->posts $join $where ORDER BY $orderby $limit";
                $key = md5( $query );
                $key = "wp_get_archives:$key:$last_changed";
@@ -1340,22 +1358,23 @@ function wp_get_archives($args = '') {
                if ( $results ) {
                        foreach ( (array) $results as $result ) {
                                if ( $result->post_date != '0000-00-00 00:00:00' ) {
                if ( $results ) {
                        foreach ( (array) $results as $result ) {
                                if ( $result->post_date != '0000-00-00 00:00:00' ) {
-                                       $url  = get_permalink( $result );
+                                       $url = get_permalink( $result );
                                        if ( $result->post_title ) {
                                                /** This filter is documented in wp-includes/post-template.php */
                                                $text = strip_tags( apply_filters( 'the_title', $result->post_title, $result->ID ) );
                                        } else {
                                                $text = $result->ID;
                                        }
                                        if ( $result->post_title ) {
                                                /** This filter is documented in wp-includes/post-template.php */
                                                $text = strip_tags( apply_filters( 'the_title', $result->post_title, $result->ID ) );
                                        } else {
                                                $text = $result->ID;
                                        }
-                                       $output .= get_archives_link($url, $text, $format, $before, $after);
+                                       $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
                                }
                        }
                }
        }
                                }
                        }
                }
        }
-       if ( $echo )
+       if ( $r['echo'] ) {
                echo $output;
                echo $output;
-       else
+       } else {
                return $output;
                return $output;
+       }
 }
 
 /**
 }
 
 /**
@@ -1387,7 +1406,6 @@ function calendar_week_mod($num) {
 function get_calendar($initial = true, $echo = true) {
        global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;
 
 function get_calendar($initial = true, $echo = true) {
        global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;
 
-       $cache = array();
        $key = md5( $m . $monthnum . $year );
        if ( $cache = wp_cache_get( 'get_calendar', 'calendar' ) ) {
                if ( is_array($cache) && isset( $cache[ $key ] ) ) {
        $key = md5( $m . $monthnum . $year );
        if ( $cache = wp_cache_get( 'get_calendar', 'calendar' ) ) {
                if ( is_array($cache) && isset( $cache[ $key ] ) ) {
@@ -1485,7 +1503,7 @@ function get_calendar($initial = true, $echo = true) {
        <tr>';
 
        if ( $previous ) {
        <tr>';
 
        if ( $previous ) {
-               $calendar_output .= "\n\t\t".'<td colspan="3" id="prev"><a href="' . get_month_link($previous->year, $previous->month) . '" title="' . esc_attr( sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($previous->month), date('Y', mktime(0, 0 , 0, $previous->month, 1, $previous->year)))) . '">&laquo; ' . $wp_locale->get_month_abbrev($wp_locale->get_month($previous->month)) . '</a></td>';
+               $calendar_output .= "\n\t\t".'<td colspan="3" id="prev"><a href="' . get_month_link($previous->year, $previous->month) . '">&laquo; ' . $wp_locale->get_month_abbrev($wp_locale->get_month($previous->month)) . '</a></td>';
        } else {
                $calendar_output .= "\n\t\t".'<td colspan="3" id="prev" class="pad">&nbsp;</td>';
        }
        } else {
                $calendar_output .= "\n\t\t".'<td colspan="3" id="prev" class="pad">&nbsp;</td>';
        }
@@ -1493,7 +1511,7 @@ function get_calendar($initial = true, $echo = true) {
        $calendar_output .= "\n\t\t".'<td class="pad">&nbsp;</td>';
 
        if ( $next ) {
        $calendar_output .= "\n\t\t".'<td class="pad">&nbsp;</td>';
 
        if ( $next ) {
-               $calendar_output .= "\n\t\t".'<td colspan="3" id="next"><a href="' . get_month_link($next->year, $next->month) . '" title="' . esc_attr( sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($next->month), date('Y', mktime(0, 0 , 0, $next->month, 1, $next->year))) ) . '">' . $wp_locale->get_month_abbrev($wp_locale->get_month($next->month)) . ' &raquo;</a></td>';
+               $calendar_output .= "\n\t\t".'<td colspan="3" id="next"><a href="' . get_month_link($next->year, $next->month) . '">' . $wp_locale->get_month_abbrev($wp_locale->get_month($next->month)) . ' &raquo;</a></td>';
        } else {
                $calendar_output .= "\n\t\t".'<td colspan="3" id="next" class="pad">&nbsp;</td>';
        }
        } else {
                $calendar_output .= "\n\t\t".'<td colspan="3" id="next" class="pad">&nbsp;</td>';
        }
@@ -1707,11 +1725,15 @@ function the_date( $d = '', $before = '', $after = '', $echo = true ) {
  *
  * @param  string      $d    Optional. PHP date format defaults to the date_format option if not specified.
  * @param  int|WP_Post $post Optional. Post ID or WP_Post object. Default current post.
  *
  * @param  string      $d    Optional. PHP date format defaults to the date_format option if not specified.
  * @param  int|WP_Post $post Optional. Post ID or WP_Post object. Default current post.
- * @return string Date the current post was written.
+ * @return string|bool Date the current post was written. False on failure.
  */
 function get_the_date( $d = '', $post = null ) {
        $post = get_post( $post );
 
  */
 function get_the_date( $d = '', $post = null ) {
        $post = get_post( $post );
 
+       if ( ! $post ) {
+               return false;
+       }
+
        if ( '' == $d ) {
                $the_date = mysql2date( get_option( 'date_format' ), $post->post_date );
        } else {
        if ( '' == $d ) {
                $the_date = mysql2date( get_option( 'date_format' ), $post->post_date );
        } else {
@@ -1821,11 +1843,15 @@ function the_time( $d = '' ) {
  *                          was written. Either 'G', 'U', or php date format defaults
  *                          to the value specified in the time_format option. Default empty.
  * @param int|WP_Post $post WP_Post object or ID. Default is global $post object.
  *                          was written. Either 'G', 'U', or php date format defaults
  *                          to the value specified in the time_format option. Default empty.
  * @param int|WP_Post $post WP_Post object or ID. Default is global $post object.
- * @return string|int Formatted date string, or Unix timestamp.
+ * @return string|int|bool Formatted date string or Unix timestamp. False on failure.
  */
 function get_the_time( $d = '', $post = null ) {
        $post = get_post($post);
 
  */
 function get_the_time( $d = '', $post = null ) {
        $post = get_post($post);
 
+       if ( ! $post ) {
+               return false;
+       }
+
        if ( '' == $d )
                $the_time = get_post_time(get_option('time_format'), false, $post, true);
        else
        if ( '' == $d )
                $the_time = get_post_time(get_option('time_format'), false, $post, true);
        else
@@ -1855,11 +1881,15 @@ function get_the_time( $d = '', $post = null ) {
  * @param bool        $gmt       Optional. Whether to retrieve the GMT time. Default false.
  * @param int|WP_Post $post      WP_Post object or ID. Default is global $post object.
  * @param bool        $translate Whether to translate the time string. Default false.
  * @param bool        $gmt       Optional. Whether to retrieve the GMT time. Default false.
  * @param int|WP_Post $post      WP_Post object or ID. Default is global $post object.
  * @param bool        $translate Whether to translate the time string. Default false.
- * @return string|int Formatted date string, or Unix timestamp.
+ * @return string|int|bool Formatted date string or Unix timestamp. False on failure.
  */
 function get_post_time( $d = 'U', $gmt = false, $post = null, $translate = false ) {
        $post = get_post($post);
 
  */
 function get_post_time( $d = 'U', $gmt = false, $post = null, $translate = false ) {
        $post = get_post($post);
 
+       if ( ! $post ) {
+               return false;
+       }
+
        if ( $gmt )
                $time = $post->post_date_gmt;
        else
        if ( $gmt )
                $time = $post->post_date_gmt;
        else
@@ -1933,15 +1963,20 @@ function get_the_modified_time($d = '') {
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param string $d Optional, default is 'U'. Either 'G', 'U', or php date format.
- * @param bool $gmt Optional, default is false. Whether to return the gmt time.
- * @param int|object $post Optional, default is global post object. A post_id or post object
- * @param bool $translate Optional, default is false. Whether to translate the result
- * @return string Returns timestamp
+ * @param string      $d         Optional. Format to use for retrieving the time the post
+ *                               was modified. Either 'G', 'U', or php date format. Default 'U'.
+ * @param bool        $gmt       Optional. Whether to retrieve the GMT time. Default false.
+ * @param int|WP_Post $post      WP_Post object or ID. Default is global $post object.
+ * @param bool        $translate Whether to translate the time string. Default false.
+ * @return string|int|bool Formatted date string or Unix timestamp. False on failure.
  */
 function get_post_modified_time( $d = 'U', $gmt = false, $post = null, $translate = false ) {
        $post = get_post($post);
 
  */
 function get_post_modified_time( $d = 'U', $gmt = false, $post = null, $translate = false ) {
        $post = get_post($post);
 
+       if ( ! $post ) {
+               return false;
+       }
+
        if ( $gmt )
                $time = $post->post_modified_gmt;
        else
        if ( $gmt )
                $time = $post->post_modified_gmt;
        else
@@ -1976,7 +2011,7 @@ function the_weekday() {
         *
         * @since 0.71
         *
         *
         * @since 0.71
         *
-        * @param string $the_weekday 
+        * @param string $the_weekday
         */
        $the_weekday = apply_filters( 'the_weekday', $the_weekday );
        echo $the_weekday;
         */
        $the_weekday = apply_filters( 'the_weekday', $the_weekday );
        echo $the_weekday;
@@ -2008,7 +2043,7 @@ function the_weekday_date($before='',$after='') {
         *
         * @since 0.71
         *
         *
         * @since 0.71
         *
-        * @param string $the_weekday_date 
+        * @param string $the_weekday_date
         * @param string $before           The HTML to output before the date.
         * @param string $after            The HTML to output after the date.
         */
         * @param string $before           The HTML to output before the date.
         * @param string $after            The HTML to output after the date.
         */
@@ -2163,8 +2198,8 @@ function rsd_link() {
  * @since 2.3.1
  */
 function wlwmanifest_link() {
  * @since 2.3.1
  */
 function wlwmanifest_link() {
-       echo '<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="'
-               . get_bloginfo('wpurl') . '/wp-includes/wlwmanifest.xml" /> ' . "\n";
+       echo '<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="',
+               includes_url( 'wlwmanifest.xml' ), '" /> ', "\n";
 }
 
 /**
 }
 
 /**
@@ -2243,7 +2278,7 @@ function user_can_richedit() {
  */
 function wp_default_editor() {
        $r = user_can_richedit() ? 'tinymce' : 'html'; // defaults
  */
 function wp_default_editor() {
        $r = user_can_richedit() ? 'tinymce' : 'html'; // defaults
-       if ( $user = wp_get_current_user() ) { // look for cookie
+       if ( wp_get_current_user() ) { // look for cookie
                $ed = get_user_setting('editor', 'tinymce');
                $r = ( in_array($ed, array('tinymce', 'html', 'test') ) ) ? $ed : $r;
        }
                $ed = get_user_setting('editor', 'tinymce');
                $r = ( in_array($ed, array('tinymce', 'html', 'test') ) ) ? $ed : $r;
        }
@@ -2344,7 +2379,6 @@ function the_search_query() {
  */
 function language_attributes($doctype = 'html') {
        $attributes = array();
  */
 function language_attributes($doctype = 'html') {
        $attributes = array();
-       $output = '';
 
        if ( function_exists( 'is_rtl' ) && is_rtl() )
                $attributes[] = 'dir="rtl"';
 
        if ( function_exists( 'is_rtl' ) && is_rtl() )
                $attributes[] = 'dir="rtl"';
@@ -2409,10 +2443,10 @@ function language_attributes($doctype = 'html') {
  * It is possible to add query vars to the link by using the 'add_args' argument
  * and see {@link add_query_arg()} for more information.
  *
  * It is possible to add query vars to the link by using the 'add_args' argument
  * and see {@link add_query_arg()} for more information.
  *
- * The 'before_page_number' and 'after_page_number' arguments allow users to 
+ * The 'before_page_number' and 'after_page_number' arguments allow users to
  * augment the links themselves. Typically this might be to add context to the
  * numbered links so that screen reader users understand what the links are for.
  * augment the links themselves. Typically this might be to add context to the
  * numbered links so that screen reader users understand what the links are for.
- * The text strings are added before and after the page number - within the 
+ * The text strings are added before and after the page number - within the
  * anchor tag.
  *
  * @since 2.1.0
  * anchor tag.
  *
  * @since 2.1.0
@@ -2421,11 +2455,29 @@ function language_attributes($doctype = 'html') {
  * @return array|string String of page links or array of page links.
  */
 function paginate_links( $args = '' ) {
  * @return array|string String of page links or array of page links.
  */
 function paginate_links( $args = '' ) {
+       global $wp_query, $wp_rewrite;
+
+       $total        = ( isset( $wp_query->max_num_pages ) ) ? $wp_query->max_num_pages : 1;
+       $current      = ( get_query_var( 'paged' ) ) ? intval( get_query_var( 'paged' ) ) : 1;
+       $pagenum_link = html_entity_decode( get_pagenum_link() );
+       $query_args   = array();
+       $url_parts    = explode( '?', $pagenum_link );
+
+       if ( isset( $url_parts[1] ) ) {
+               wp_parse_str( $url_parts[1], $query_args );
+       }
+
+       $pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link );
+       $pagenum_link = trailingslashit( $pagenum_link ) . '%_%';
+
+       $format  = $wp_rewrite->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : '';
+       $format .= $wp_rewrite->using_permalinks() ? user_trailingslashit( $wp_rewrite->pagination_base . '/%#%', 'paged' ) : '?paged=%#%';
+
        $defaults = array(
        $defaults = array(
-               'base' => '%_%', // http://example.com/all_posts.php%_% : %_% is replaced by format (below)
-               'format' => '?page=%#%', // ?page=%#% : %#% is replaced by the page number
-               'total' => 1,
-               'current' => 0,
+               'base' => $pagenum_link, // http://example.com/all_posts.php%_% : %_% is replaced by format (below)
+               'format' => $format, // ?page=%#% : %#% is replaced by the page number
+               'total' => $total,
+               'current' => $current,
                'show_all' => false,
                'prev_next' => true,
                'prev_text' => __('&laquo; Previous'),
                'show_all' => false,
                'prev_next' => true,
                'prev_text' => __('&laquo; Previous'),
@@ -2440,27 +2492,32 @@ function paginate_links( $args = '' ) {
        );
 
        $args = wp_parse_args( $args, $defaults );
        );
 
        $args = wp_parse_args( $args, $defaults );
-       extract($args, EXTR_SKIP);
 
        // Who knows what else people pass in $args
 
        // Who knows what else people pass in $args
-       $total = (int) $total;
-       if ( $total < 2 )
+       $total = (int) $args['total'];
+       if ( $total < 2 ) {
                return;
                return;
-       $current  = (int) $current;
-       $end_size = 0  < (int) $end_size ? (int) $end_size : 1; // Out of bounds?  Make it the default.
-       $mid_size = 0 <= (int) $mid_size ? (int) $mid_size : 2;
-       $add_args = is_array($add_args) ? $add_args : false;
+       }
+       $current  = (int) $args['current'];
+       $end_size = (int) $args['end_size']; // Out of bounds?  Make it the default.
+       if ( $end_size < 1 ) {
+               $end_size = 1;
+       }
+       $mid_size = (int) $args['mid_size'];
+       if ( $mid_size < 0 ) {
+               $mid_size = 2;
+       }
+       $add_args = is_array( $args['add_args'] ) ? $args['add_args'] : false;
        $r = '';
        $page_links = array();
        $r = '';
        $page_links = array();
-       $n = 0;
        $dots = false;
 
        $dots = false;
 
-       if ( $prev_next && $current && 1 < $current ) :
-               $link = str_replace('%_%', 2 == $current ? '' : $format, $base);
-               $link = str_replace('%#%', $current - 1, $link);
+       if ( $args['prev_next'] && $current && 1 < $current ) :
+               $link = str_replace( '%_%', 2 == $current ? '' : $args['format'], $args['base'] );
+               $link = str_replace( '%#%', $current - 1, $link );
                if ( $add_args )
                        $link = add_query_arg( $add_args, $link );
                if ( $add_args )
                        $link = add_query_arg( $add_args, $link );
-               $link .= $add_fragment;
+               $link .= $args['add_fragment'];
 
                /**
                 * Filter the paginated links for the given archive pages.
 
                /**
                 * Filter the paginated links for the given archive pages.
@@ -2469,52 +2526,53 @@ function paginate_links( $args = '' ) {
                 *
                 * @param string $link The paginated link URL.
                 */
                 *
                 * @param string $link The paginated link URL.
                 */
-               $page_links[] = '<a class="prev page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $prev_text . '</a>';
+               $page_links[] = '<a class="prev page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $args['prev_text'] . '</a>';
        endif;
        for ( $n = 1; $n <= $total; $n++ ) :
                if ( $n == $current ) :
        endif;
        for ( $n = 1; $n <= $total; $n++ ) :
                if ( $n == $current ) :
-                       $page_links[] = "<span class='page-numbers current'>" . $before_page_number . number_format_i18n( $n ) . $after_page_number . "</span>";
+                       $page_links[] = "<span class='page-numbers current'>" . $args['before_page_number'] . number_format_i18n( $n ) . $args['after_page_number'] . "</span>";
                        $dots = true;
                else :
                        $dots = true;
                else :
-                       if ( $show_all || ( $n <= $end_size || ( $current && $n >= $current - $mid_size && $n <= $current + $mid_size ) || $n > $total - $end_size ) ) :
-                               $link = str_replace('%_%', 1 == $n ? '' : $format, $base);
-                               $link = str_replace('%#%', $n, $link);
+                       if ( $args['show_all'] || ( $n <= $end_size || ( $current && $n >= $current - $mid_size && $n <= $current + $mid_size ) || $n > $total - $end_size ) ) :
+                               $link = str_replace( '%_%', 1 == $n ? '' : $args['format'], $args['base'] );
+                               $link = str_replace( '%#%', $n, $link );
                                if ( $add_args )
                                        $link = add_query_arg( $add_args, $link );
                                if ( $add_args )
                                        $link = add_query_arg( $add_args, $link );
-                               $link .= $add_fragment;
+                               $link .= $args['add_fragment'];
 
                                /** This filter is documented in wp-includes/general-template.php */
 
                                /** This filter is documented in wp-includes/general-template.php */
-                               $page_links[] = "<a class='page-numbers' href='" . esc_url( apply_filters( 'paginate_links', $link ) ) . "'>" . $before_page_number . number_format_i18n( $n ) . $after_page_number . "</a>";
+                               $page_links[] = "<a class='page-numbers' href='" . esc_url( apply_filters( 'paginate_links', $link ) ) . "'>" . $args['before_page_number'] . number_format_i18n( $n ) . $args['after_page_number'] . "</a>";
                                $dots = true;
                                $dots = true;
-                       elseif ( $dots && !$show_all ) :
+                       elseif ( $dots && ! $args['show_all'] ) :
                                $page_links[] = '<span class="page-numbers dots">' . __( '&hellip;' ) . '</span>';
                                $dots = false;
                        endif;
                endif;
        endfor;
                                $page_links[] = '<span class="page-numbers dots">' . __( '&hellip;' ) . '</span>';
                                $dots = false;
                        endif;
                endif;
        endfor;
-       if ( $prev_next && $current && ( $current < $total || -1 == $total ) ) :
-               $link = str_replace('%_%', $format, $base);
-               $link = str_replace('%#%', $current + 1, $link);
+       if ( $args['prev_next'] && $current && ( $current < $total || -1 == $total ) ) :
+               $link = str_replace( '%_%', $args['format'], $args['base'] );
+               $link = str_replace( '%#%', $current + 1, $link );
                if ( $add_args )
                        $link = add_query_arg( $add_args, $link );
                if ( $add_args )
                        $link = add_query_arg( $add_args, $link );
-               $link .= $add_fragment;
+               $link .= $args['add_fragment'];
 
                /** This filter is documented in wp-includes/general-template.php */
 
                /** This filter is documented in wp-includes/general-template.php */
-               $page_links[] = '<a class="next page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $next_text . '</a>';
+               $page_links[] = '<a class="next page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $args['next_text'] . '</a>';
        endif;
        endif;
-       switch ( $type ) :
+       switch ( $args['type'] ) {
                case 'array' :
                        return $page_links;
                case 'array' :
                        return $page_links;
-                       break;
+
                case 'list' :
                        $r .= "<ul class='page-numbers'>\n\t<li>";
                        $r .= join("</li>\n\t<li>", $page_links);
                        $r .= "</li>\n</ul>\n";
                        break;
                case 'list' :
                        $r .= "<ul class='page-numbers'>\n\t<li>";
                        $r .= join("</li>\n\t<li>", $page_links);
                        $r .= "</li>\n</ul>\n";
                        break;
+
                default :
                        $r = join("\n", $page_links);
                        break;
                default :
                        $r = join("\n", $page_links);
                        break;
-       endswitch;
+       }
        return $r;
 }
 
        return $r;
 }
 
index 57746ff8020e7d04f85510c9e372900949a01cf7..3a5f4ada909b58ef33293d53951879f6e575b895 100644 (file)
@@ -34,13 +34,13 @@ function _wp_http_get_object() {
  * This function is ideal when the HTTP request is being made to an arbitrary
  * URL. The URL is validated to avoid redirection and request forgery attacks.
  *
  * This function is ideal when the HTTP request is being made to an arbitrary
  * URL. The URL is validated to avoid redirection and request forgery attacks.
  *
- * @see wp_remote_request() For more information on the response array format
- *     and default arguments.
- *
  * @since 3.6.0
  *
  * @since 3.6.0
  *
- * @param string $url Site URL to retrieve.
- * @param array $args Optional. Override the defaults.
+ * @see wp_remote_request() For more information on the response array format.
+ * @see WP_Http::request() For default arguments information.
+ *
+ * @param string $url  Site URL to retrieve.
+ * @param array  $args Optional. Request arguments. Default empty array.
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_safe_remote_request( $url, $args = array() ) {
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_safe_remote_request( $url, $args = array() ) {
@@ -55,13 +55,13 @@ function wp_safe_remote_request( $url, $args = array() ) {
  * This function is ideal when the HTTP request is being made to an arbitrary
  * URL. The URL is validated to avoid redirection and request forgery attacks.
  *
  * This function is ideal when the HTTP request is being made to an arbitrary
  * URL. The URL is validated to avoid redirection and request forgery attacks.
  *
- * @see wp_remote_request() For more information on the response array format
- *     and default arguments.
- *
  * @since 3.6.0
  *
  * @since 3.6.0
  *
- * @param string $url Site URL to retrieve.
- * @param array $args Optional. Override the defaults.
+ * @see wp_remote_request() For more information on the response array format.
+ * @see WP_Http::request() For default arguments information.
+ *
+ * @param string $url  Site URL to retrieve.
+ * @param array  $args Optional. Request arguments. Default empty array.
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_safe_remote_get( $url, $args = array() ) {
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_safe_remote_get( $url, $args = array() ) {
@@ -76,13 +76,13 @@ function wp_safe_remote_get( $url, $args = array() ) {
  * This function is ideal when the HTTP request is being made to an arbitrary
  * URL. The URL is validated to avoid redirection and request forgery attacks.
  *
  * This function is ideal when the HTTP request is being made to an arbitrary
  * URL. The URL is validated to avoid redirection and request forgery attacks.
  *
- * @see wp_remote_request() For more information on the response array format
- *     and default arguments.
- *
  * @since 3.6.0
  *
  * @since 3.6.0
  *
- * @param string $url Site URL to retrieve.
- * @param array $args Optional. Override the defaults.
+ * @see wp_remote_request() For more information on the response array format.
+ * @see WP_Http::request() For default arguments information.
+ *
+ * @param string $url  Site URL to retrieve.
+ * @param array  $args Optional. Request arguments. Default empty array.
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_safe_remote_post( $url, $args = array() ) {
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_safe_remote_post( $url, $args = array() ) {
@@ -97,13 +97,13 @@ function wp_safe_remote_post( $url, $args = array() ) {
  * This function is ideal when the HTTP request is being made to an arbitrary
  * URL. The URL is validated to avoid redirection and request forgery attacks.
  *
  * This function is ideal when the HTTP request is being made to an arbitrary
  * URL. The URL is validated to avoid redirection and request forgery attacks.
  *
- * @see wp_remote_request() For more information on the response array format
- *     and default arguments.
- *
  * @since 3.6.0
  *
  * @since 3.6.0
  *
+ * @see wp_remote_request() For more information on the response array format.
+ * @see WP_Http::request() For default arguments information.
+ *
  * @param string $url Site URL to retrieve.
  * @param string $url Site URL to retrieve.
- * @param array $args Optional. Override the defaults.
+ * @param array $args Optional. Request arguments. Default empty array.
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_safe_remote_head( $url, $args = array() ) {
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_safe_remote_head( $url, $args = array() ) {
@@ -115,47 +115,37 @@ function wp_safe_remote_head( $url, $args = array() ) {
 /**
  * Retrieve the raw response from the HTTP request.
  *
 /**
  * Retrieve the raw response from the HTTP request.
  *
- * The array structure is a little complex.
+ * The array structure is a little complex:
  *
  *
- * <code>
- * $res = array( 'headers' => array(), 'response' => array('code' => int, 'message' => string) );
- * </code>
+ *     $res = array(
+ *         'headers'  => array(),
+ *         'response' => array(
+ *             'code'    => int,
+ *             'message' => string
+ *         )
+ *     );
  *
  * All of the headers in $res['headers'] are with the name as the key and the
  * value as the value. So to get the User-Agent, you would do the following.
  *
  *
  * All of the headers in $res['headers'] are with the name as the key and the
  * value as the value. So to get the User-Agent, you would do the following.
  *
- * <code>
- * $user_agent = $res['headers']['user-agent'];
- * </code>
+ *     $user_agent = $res['headers']['user-agent'];
  *
  * The body is the raw response content and can be retrieved from $res['body'].
  *
  * This function is called first to make the request and there are other API
  * functions to abstract out the above convoluted setup.
  *
  *
  * The body is the raw response content and can be retrieved from $res['body'].
  *
  * This function is called first to make the request and there are other API
  * functions to abstract out the above convoluted setup.
  *
- * List of default arguments:
- * 'method'      => 'GET'
+ * Request method defaults for helper functions:
  *  - Default 'GET'  for wp_remote_get()
  *  - Default 'POST' for wp_remote_post()
  *  - Default 'HEAD' for wp_remote_head()
  *  - Default 'GET'  for wp_remote_get()
  *  - Default 'POST' for wp_remote_post()
  *  - Default 'HEAD' for wp_remote_head()
- * 'timeout'     => 5
- * 'redirection' => 5
- * 'httpversion' => '1.0'
- * 'user-agent'  => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
- * 'blocking'    => true
- * 'headers'     => array()
- * 'cookies'     => array()
- * 'body'        => null
- * 'compress'    => false,
- * 'decompress'  => true,
- * 'sslverify'   => true,
- * 'stream'      => false,
- * 'filename'    => null
  *
  * @since 2.7.0
  *
  *
  * @since 2.7.0
  *
- * @param string $url Site URL to retrieve.
- * @param array $args Optional. Override the defaults.
+ * @see WP_Http::request() For additional information on default arguments.
+ *
+ * @param string $url  Site URL to retrieve.
+ * @param array  $args Optional. Request arguments. Default empty array.
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_remote_request($url, $args = array()) {
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_remote_request($url, $args = array()) {
@@ -166,12 +156,13 @@ function wp_remote_request($url, $args = array()) {
 /**
  * Retrieve the raw response from the HTTP request using the GET method.
  *
 /**
  * Retrieve the raw response from the HTTP request using the GET method.
  *
- * @see wp_remote_request() For more information on the response array format and default arguments.
- *
  * @since 2.7.0
  *
  * @since 2.7.0
  *
- * @param string $url Site URL to retrieve.
- * @param array $args Optional. Override the defaults.
+ * @see wp_remote_request() For more information on the response array format.
+ * @see WP_Http::request() For default arguments information.
+ *
+ * @param string $url  Site URL to retrieve.
+ * @param array  $args Optional. Request arguments. Default empty array.
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_remote_get($url, $args = array()) {
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_remote_get($url, $args = array()) {
@@ -182,12 +173,13 @@ function wp_remote_get($url, $args = array()) {
 /**
  * Retrieve the raw response from the HTTP request using the POST method.
  *
 /**
  * Retrieve the raw response from the HTTP request using the POST method.
  *
- * @see wp_remote_request() For more information on the response array format and default arguments.
- *
  * @since 2.7.0
  *
  * @since 2.7.0
  *
- * @param string $url Site URL to retrieve.
- * @param array $args Optional. Override the defaults.
+ * @see wp_remote_request() For more information on the response array format.
+ * @see WP_Http::request() For default arguments information.
+ *
+ * @param string $url  Site URL to retrieve.
+ * @param array  $args Optional. Request arguments. Default empty array.
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_remote_post($url, $args = array()) {
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_remote_post($url, $args = array()) {
@@ -198,12 +190,13 @@ function wp_remote_post($url, $args = array()) {
 /**
  * Retrieve the raw response from the HTTP request using the HEAD method.
  *
 /**
  * Retrieve the raw response from the HTTP request using the HEAD method.
  *
- * @see wp_remote_request() For more information on the response array format and default arguments.
- *
  * @since 2.7.0
  *
  * @since 2.7.0
  *
- * @param string $url Site URL to retrieve.
- * @param array $args Optional. Override the defaults.
+ * @see wp_remote_request() For more information on the response array format.
+ * @see WP_Http::request() For default arguments information.
+ *
+ * @param string $url  Site URL to retrieve.
+ * @param array  $args Optional. Request arguments. Default empty array.
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_remote_head($url, $args = array()) {
  * @return WP_Error|array The response or WP_Error on failure.
  */
 function wp_remote_head($url, $args = array()) {
@@ -219,7 +212,7 @@ function wp_remote_head($url, $args = array()) {
  * @param array $response HTTP response.
  * @return array The headers of the response. Empty array if incorrect parameter given.
  */
  * @param array $response HTTP response.
  * @return array The headers of the response. Empty array if incorrect parameter given.
  */
-function wp_remote_retrieve_headers(&$response) {
+function wp_remote_retrieve_headers( $response ) {
        if ( is_wp_error($response) || ! isset($response['headers']) || ! is_array($response['headers']))
                return array();
 
        if ( is_wp_error($response) || ! isset($response['headers']) || ! is_array($response['headers']))
                return array();
 
@@ -235,7 +228,7 @@ function wp_remote_retrieve_headers(&$response) {
  * @param string $header Header name to retrieve value from.
  * @return string The header value. Empty string on if incorrect parameter given, or if the header doesn't exist.
  */
  * @param string $header Header name to retrieve value from.
  * @return string The header value. Empty string on if incorrect parameter given, or if the header doesn't exist.
  */
-function wp_remote_retrieve_header(&$response, $header) {
+function wp_remote_retrieve_header( $response, $header ) {
        if ( is_wp_error($response) || ! isset($response['headers']) || ! is_array($response['headers']))
                return '';
 
        if ( is_wp_error($response) || ! isset($response['headers']) || ! is_array($response['headers']))
                return '';
 
@@ -255,7 +248,7 @@ function wp_remote_retrieve_header(&$response, $header) {
  * @param array $response HTTP response.
  * @return string the response code. Empty string on incorrect parameter given.
  */
  * @param array $response HTTP response.
  * @return string the response code. Empty string on incorrect parameter given.
  */
-function wp_remote_retrieve_response_code(&$response) {
+function wp_remote_retrieve_response_code( $response ) {
        if ( is_wp_error($response) || ! isset($response['response']) || ! is_array($response['response']))
                return '';
 
        if ( is_wp_error($response) || ! isset($response['response']) || ! is_array($response['response']))
                return '';
 
@@ -272,7 +265,7 @@ function wp_remote_retrieve_response_code(&$response) {
  * @param array $response HTTP response.
  * @return string The response message. Empty string on incorrect parameter given.
  */
  * @param array $response HTTP response.
  * @return string The response message. Empty string on incorrect parameter given.
  */
-function wp_remote_retrieve_response_message(&$response) {
+function wp_remote_retrieve_response_message( $response ) {
        if ( is_wp_error($response) || ! isset($response['response']) || ! is_array($response['response']))
                return '';
 
        if ( is_wp_error($response) || ! isset($response['response']) || ! is_array($response['response']))
                return '';
 
@@ -287,7 +280,7 @@ function wp_remote_retrieve_response_message(&$response) {
  * @param array $response HTTP response.
  * @return string The body of the response. Empty string if no body or incorrect parameter given.
  */
  * @param array $response HTTP response.
  * @return string The body of the response. Empty string if no body or incorrect parameter given.
  */
-function wp_remote_retrieve_body(&$response) {
+function wp_remote_retrieve_body( $response ) {
        if ( is_wp_error($response) || ! isset($response['body']) )
                return '';
 
        if ( is_wp_error($response) || ! isset($response['body']) )
                return '';
 
index def54298ebc05d03b997a3821b0c9f5f8d573ca9..b338e949828f1ff2651fd471fcc4425a95e3d2a7 100644 (file)
@@ -211,7 +211,7 @@ window.autosave = function() {
                                var postData, compareString,
                                        result = false;
 
                                var postData, compareString,
                                        result = false;
 
-                               if ( isSuspended ) {
+                               if ( isSuspended || ! hasStorage ) {
                                        return false;
                                }
 
                                        return false;
                                }
 
@@ -286,7 +286,7 @@ window.autosave = function() {
                                                });
                                        }
 
                                                });
                                        }
 
-                                       wpCookies.set( 'wp-saving-post-' + post_id, 'check' );
+                                       wpCookies.set( 'wp-saving-post', post_id + '-check', 24 * 60 * 60 );
                                });
                        }
 
                                });
                        }
 
@@ -309,20 +309,17 @@ window.autosave = function() {
                        function checkPost() {
                                var content, post_title, excerpt, $notice,
                                        postData = getSavedPostData(),
                        function checkPost() {
                                var content, post_title, excerpt, $notice,
                                        postData = getSavedPostData(),
-                                       cookie = wpCookies.get( 'wp-saving-post-' + post_id );
+                                       cookie = wpCookies.get( 'wp-saving-post' );
 
 
-                               if ( ! postData ) {
+                               if ( cookie === post_id + '-saved' ) {
+                                       wpCookies.remove( 'wp-saving-post' );
+                                       // The post was saved properly, remove old data and bail
+                                       setData( false );
                                        return;
                                }
 
                                        return;
                                }
 
-                               if ( cookie ) {
-                                       wpCookies.remove( 'wp-saving-post-' + post_id );
-
-                                       if ( cookie === 'saved' ) {
-                                               // The post was saved properly, remove old data and bail
-                                               setData( false );
-                                               return;
-                                       }
+                               if ( ! postData ) {
+                                       return;
                                }
 
                                // There is a newer autosave. Don't show two "restore" notices at the same time.
                                }
 
                                // There is a newer autosave. Don't show two "restore" notices at the same time.
@@ -334,9 +331,8 @@ window.autosave = function() {
                                post_title = $( '#title' ).val() || '';
                                excerpt = $( '#excerpt' ).val() || '';
 
                                post_title = $( '#title' ).val() || '';
                                excerpt = $( '#excerpt' ).val() || '';
 
-                               // cookie == 'check' means the post was not saved properly, always show #local-storage-notice
-                               if ( cookie !== 'check' && compare( content, postData.content ) &&
-                                       compare( post_title, postData.post_title ) && compare( excerpt, postData.excerpt ) ) {
+                               if ( compare( content, postData.content ) && compare( post_title, postData.post_title ) &&
+                                       compare( excerpt, postData.excerpt ) ) {
 
                                        return;
                                }
 
                                        return;
                                }
@@ -399,21 +395,15 @@ window.autosave = function() {
                                return false;
                        }
 
                                return false;
                        }
 
-                       // Initialize and run checkPost() on loading the script (before TinyMCE init)
                        blog_id = typeof window.autosaveL10n !== 'undefined' && window.autosaveL10n.blog_id;
 
                        blog_id = typeof window.autosaveL10n !== 'undefined' && window.autosaveL10n.blog_id;
 
-                       // Check if the browser supports sessionStorage and it's not disabled
-                       if ( ! checkStorage() ) {
-                               return;
-                       }
-
+                       // Check if the browser supports sessionStorage and it's not disabled,
+                       // then initialize and run checkPost().
                        // Don't run if the post type supports neither 'editor' (textarea#content) nor 'excerpt'.
                        // Don't run if the post type supports neither 'editor' (textarea#content) nor 'excerpt'.
-                       if ( ! blog_id || ( ! $('#content').length && ! $('#excerpt').length ) ) {
-                               return;
+                       if ( checkStorage() && blog_id && ( $('#content').length || $('#excerpt').length ) ) {
+                               $document.ready( run );
                        }
 
                        }
 
-                       $document.ready( run );
-
                        return {
                                hasStorage: hasStorage,
                                getSavedPostData: getSavedPostData,
                        return {
                                hasStorage: hasStorage,
                                getSavedPostData: getSavedPostData,
index 45d24f9a9bf7a6bf22f907566885567b83787eec..c244ef8aab777e7837a4cf9ffcb62ceba8121b3a 100644 (file)
@@ -1 +1 @@
-window.autosave=function(){return!0},function(a,b){function c(){function c(b){var c,d,e,f=(new Date).getTime(),g=[],h="undefined"!=typeof tinymce&&tinymce.get("content");return h&&!h.isHidden()&&f-3e3>j&&(h.save(),j=f),e={post_id:a("#post_ID").val()||0,post_type:a("#post_type").val()||"",post_author:a("#post_author").val()||"",post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""},"local"===b?e:(a('input[id^="in-category-"]:checked').each(function(){g.push(this.value)}),e.catslist=g.join(","),(c=a("#post_name").val())&&(e.post_name=c),(d=a("#parent_id").val())&&(e.parent_id=d),a("#comment_status").prop("checked")&&(e.comment_status="open"),a("#ping_status").prop("checked")&&(e.ping_status="open"),"1"===a("#auto_draft").val()&&(e.auto_draft="1"),e)}function d(b){return"object"==typeof b?(b.post_title||"")+"::"+(b.content||"")+"::"+(b.excerpt||""):(a("#title").val()||"")+"::"+(a("#content").val()||"")+"::"+(a("#excerpt").val()||"")}function e(){k.trigger("autosave-disable-buttons"),setTimeout(f,5e3)}function f(){k.trigger("autosave-enable-buttons")}function g(){function e(){var a=Math.random().toString(),c=!1;try{b.sessionStorage.setItem("wp-test",a),c=b.sessionStorage.getItem("wp-test")===a,b.sessionStorage.removeItem("wp-test")}catch(d){}return w=c,c}function f(){var a=!1;return w&&u&&(a=sessionStorage.getItem("wp-autosave-"+u),a=a?JSON.parse(a):{}),a}function g(a){var b;return w&&u?(b="wp-autosave-"+u,sessionStorage.setItem(b,JSON.stringify(a)),null!==sessionStorage.getItem(b)):!1}function h(){var a=f();return a&&v?a["post_"+v]||!1:!1}function j(a){var b=f();if(!b||!v)return!1;if(a)b["post_"+v]=a;else{if(!b.hasOwnProperty("post_"+v))return!1;delete b["post_"+v]}return g(b)}function l(){z=!0}function m(){z=!1}function n(b){var e,f,g=!1;return z?!1:(b?(e=h()||{},a.extend(e,b)):e=c("local"),f=d(e),"undefined"==typeof y&&(y=i),f===y?!1:(e.save_time=(new Date).getTime(),e.status=a("#post_status").val()||"",g=j(e),g&&(y=f),g))}function o(){v=a("#post_ID").val()||0,a("#wp-content-wrap").hasClass("tmce-active")?k.on("tinymce-editor-init.autosave",function(){b.setTimeout(function(){q()},1500)}):q(),x=b.setInterval(n,15e3),a("form#post").on("submit.autosave-local",function(){var b="undefined"!=typeof tinymce&&tinymce.get("content"),c=a("#post_ID").val()||0;b&&!b.isHidden()?b.on("submit",function(){n({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""})}):n({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""}),wpCookies.set("wp-saving-post-"+c,"check")})}function p(a,b){function c(a){return a.toString().replace(/[\x20\t\r\n\f]+/g,"")}return c(a||"")===c(b||"")}function q(){var b,c,d,e,f=h(),g=wpCookies.get("wp-saving-post-"+v);if(f)return g&&(wpCookies.remove("wp-saving-post-"+v),"saved"===g)?void j(!1):void(a("#has-newer-autosave").length||(b=a("#content").val()||"",c=a("#title").val()||"",d=a("#excerpt").val()||"","check"!==g&&p(b,f.content)&&p(c,f.post_title)&&p(d,f.excerpt)||(s=f,t={content:b,post_title:c,excerpt:d},e=a("#local-storage-notice"),a(".wrap h2").first().after(e.addClass("updated").show()),e.on("click.autosave-local",function(b){var c=a(b.target);c.hasClass("restore-backup")?(r(s),c.parent().hide(),a(this).find("p.undo-restore").show()):c.hasClass("undo-restore-backup")&&(r(t),c.parent().hide(),a(this).find("p.local-restore").show()),b.preventDefault()}))))}function r(b){var c;return b?(y=d(b),a("#title").val()!==b.post_title&&a("#title").focus().val(b.post_title||""),a("#excerpt").val(b.excerpt||""),c="undefined"!=typeof tinymce&&tinymce.get("content"),c&&!c.isHidden()&&"undefined"!=typeof switchEditors?(c.undoManager.add(),c.setContent(b.content?switchEditors.wpautop(b.content):"")):(a("#content-html").click(),a("#content").val(b.content)),!0):!1}var s,t,u,v,w,x,y,z=!1;return u="undefined"!=typeof b.autosaveL10n&&b.autosaveL10n.blog_id,e()&&u&&(a("#content").length||a("#excerpt").length)?(k.ready(o),{hasStorage:w,getSavedPostData:h,save:n,suspend:l,resume:m}):void 0}function h(){function g(){q=!0,b.clearTimeout(r),r=b.setTimeout(function(){q=!1},1e4)}function h(){v=!0}function j(){v=!1}function l(b){p(),q=!1,t=s,s="",k.trigger("after-autosave",[b]),f(),b.success&&a("#auto_draft").val("")}function m(){u=0,wp.heartbeat.connectNow()}function n(){return d()!==i}function o(){var f,h;return v||q||!b.autosave()?!1:(new Date).getTime()<u?!1:(f=c(),h=d(f),"undefined"==typeof t&&(t=i),h===t?!1:(s=h,g(),e(),k.trigger("wpcountwords",[f.content]).trigger("before-autosave",[f]),f._wpnonce=a("#_wpnonce").val()||"",f))}function p(){u=(new Date).getTime()+1e3*autosaveL10n.autosaveInterval||6e4}var q,r,s,t,u=0,v=!1;return k.on("heartbeat-send.autosave",function(a,b){var c=o();c&&(b.wp_autosave=c)}).on("heartbeat-tick.autosave",function(a,b){b.wp_autosave&&l(b.wp_autosave)}).on("heartbeat-connection-lost.autosave",function(b,c,d){if("timeout"===c||603===d){var f=a("#lost-connection-notice");wp.autosave.local.hasStorage||f.find(".hide-if-no-sessionstorage").hide(),f.show(),e()}}).on("heartbeat-connection-restored.autosave",function(){a("#lost-connection-notice").hide(),f()}).ready(function(){p()}),{tempBlockSave:g,triggerSave:m,postChanged:n,suspend:h,resume:j}}var i,j=0,k=a(document);return k.on("tinymce-editor-init.autosave",function(a,c){"content"===c.id&&b.setTimeout(function(){c.save(),i=d()},1e3)}).ready(function(){i=d()}),{getPostData:c,getCompareString:d,disableButtons:e,enableButtons:f,local:g(),server:h()}}b.wp=b.wp||{},b.wp.autosave=c()}(jQuery,window);
\ No newline at end of file
+window.autosave=function(){return!0},function(a,b){function c(){function c(b){var c,d,e,f=(new Date).getTime(),g=[],h="undefined"!=typeof tinymce&&tinymce.get("content");return h&&!h.isHidden()&&f-3e3>j&&(h.save(),j=f),e={post_id:a("#post_ID").val()||0,post_type:a("#post_type").val()||"",post_author:a("#post_author").val()||"",post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""},"local"===b?e:(a('input[id^="in-category-"]:checked').each(function(){g.push(this.value)}),e.catslist=g.join(","),(c=a("#post_name").val())&&(e.post_name=c),(d=a("#parent_id").val())&&(e.parent_id=d),a("#comment_status").prop("checked")&&(e.comment_status="open"),a("#ping_status").prop("checked")&&(e.ping_status="open"),"1"===a("#auto_draft").val()&&(e.auto_draft="1"),e)}function d(b){return"object"==typeof b?(b.post_title||"")+"::"+(b.content||"")+"::"+(b.excerpt||""):(a("#title").val()||"")+"::"+(a("#content").val()||"")+"::"+(a("#excerpt").val()||"")}function e(){k.trigger("autosave-disable-buttons"),setTimeout(f,5e3)}function f(){k.trigger("autosave-enable-buttons")}function g(){function e(){var a=Math.random().toString(),c=!1;try{b.sessionStorage.setItem("wp-test",a),c=b.sessionStorage.getItem("wp-test")===a,b.sessionStorage.removeItem("wp-test")}catch(d){}return w=c,c}function f(){var a=!1;return w&&u&&(a=sessionStorage.getItem("wp-autosave-"+u),a=a?JSON.parse(a):{}),a}function g(a){var b;return w&&u?(b="wp-autosave-"+u,sessionStorage.setItem(b,JSON.stringify(a)),null!==sessionStorage.getItem(b)):!1}function h(){var a=f();return a&&v?a["post_"+v]||!1:!1}function j(a){var b=f();if(!b||!v)return!1;if(a)b["post_"+v]=a;else{if(!b.hasOwnProperty("post_"+v))return!1;delete b["post_"+v]}return g(b)}function l(){z=!0}function m(){z=!1}function n(b){var e,f,g=!1;return z||!w?!1:(b?(e=h()||{},a.extend(e,b)):e=c("local"),f=d(e),"undefined"==typeof y&&(y=i),f===y?!1:(e.save_time=(new Date).getTime(),e.status=a("#post_status").val()||"",g=j(e),g&&(y=f),g))}function o(){v=a("#post_ID").val()||0,a("#wp-content-wrap").hasClass("tmce-active")?k.on("tinymce-editor-init.autosave",function(){b.setTimeout(function(){q()},1500)}):q(),x=b.setInterval(n,15e3),a("form#post").on("submit.autosave-local",function(){var b="undefined"!=typeof tinymce&&tinymce.get("content"),c=a("#post_ID").val()||0;b&&!b.isHidden()?b.on("submit",function(){n({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""})}):n({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""}),wpCookies.set("wp-saving-post",c+"-check",86400)})}function p(a,b){function c(a){return a.toString().replace(/[\x20\t\r\n\f]+/g,"")}return c(a||"")===c(b||"")}function q(){var b,c,d,e,f=h(),g=wpCookies.get("wp-saving-post");return g===v+"-saved"?(wpCookies.remove("wp-saving-post"),void j(!1)):void(f&&(a("#has-newer-autosave").length||(b=a("#content").val()||"",c=a("#title").val()||"",d=a("#excerpt").val()||"",p(b,f.content)&&p(c,f.post_title)&&p(d,f.excerpt)||(s=f,t={content:b,post_title:c,excerpt:d},e=a("#local-storage-notice"),a(".wrap h2").first().after(e.addClass("updated").show()),e.on("click.autosave-local",function(b){var c=a(b.target);c.hasClass("restore-backup")?(r(s),c.parent().hide(),a(this).find("p.undo-restore").show()):c.hasClass("undo-restore-backup")&&(r(t),c.parent().hide(),a(this).find("p.local-restore").show()),b.preventDefault()})))))}function r(b){var c;return b?(y=d(b),a("#title").val()!==b.post_title&&a("#title").focus().val(b.post_title||""),a("#excerpt").val(b.excerpt||""),c="undefined"!=typeof tinymce&&tinymce.get("content"),c&&!c.isHidden()&&"undefined"!=typeof switchEditors?(c.undoManager.add(),c.setContent(b.content?switchEditors.wpautop(b.content):"")):(a("#content-html").click(),a("#content").val(b.content)),!0):!1}var s,t,u,v,w,x,y,z=!1;return u="undefined"!=typeof b.autosaveL10n&&b.autosaveL10n.blog_id,e()&&u&&(a("#content").length||a("#excerpt").length)&&k.ready(o),{hasStorage:w,getSavedPostData:h,save:n,suspend:l,resume:m}}function h(){function g(){q=!0,b.clearTimeout(r),r=b.setTimeout(function(){q=!1},1e4)}function h(){v=!0}function j(){v=!1}function l(b){p(),q=!1,t=s,s="",k.trigger("after-autosave",[b]),f(),b.success&&a("#auto_draft").val("")}function m(){u=0,wp.heartbeat.connectNow()}function n(){return d()!==i}function o(){var f,h;return v||q||!b.autosave()?!1:(new Date).getTime()<u?!1:(f=c(),h=d(f),"undefined"==typeof t&&(t=i),h===t?!1:(s=h,g(),e(),k.trigger("wpcountwords",[f.content]).trigger("before-autosave",[f]),f._wpnonce=a("#_wpnonce").val()||"",f))}function p(){u=(new Date).getTime()+1e3*autosaveL10n.autosaveInterval||6e4}var q,r,s,t,u=0,v=!1;return k.on("heartbeat-send.autosave",function(a,b){var c=o();c&&(b.wp_autosave=c)}).on("heartbeat-tick.autosave",function(a,b){b.wp_autosave&&l(b.wp_autosave)}).on("heartbeat-connection-lost.autosave",function(b,c,d){if("timeout"===c||603===d){var f=a("#lost-connection-notice");wp.autosave.local.hasStorage||f.find(".hide-if-no-sessionstorage").hide(),f.show(),e()}}).on("heartbeat-connection-restored.autosave",function(){a("#lost-connection-notice").hide(),f()}).ready(function(){p()}),{tempBlockSave:g,triggerSave:m,postChanged:n,suspend:h,resume:j}}var i,j=0,k=a(document);return k.on("tinymce-editor-init.autosave",function(a,c){"content"===c.id&&b.setTimeout(function(){c.save(),i=d()},1e3)}).ready(function(){i=d()}),{getPostData:c,getCompareString:d,disableButtons:e,enableButtons:f,local:g(),server:h()}}b.wp=b.wp||{},b.wp.autosave=c()}(jQuery,window);
\ No newline at end of file
index db573b5fcaad836e430fb0e12771ccdde15f30cb..6c41b40c43d52c2e7e8730d9170f46d1dd928c77 100644 (file)
@@ -1,25 +1,22 @@
 window.wp = window.wp || {};
 
 (function( exports, $ ){
 window.wp = window.wp || {};
 
 (function( exports, $ ){
-       var api, extend, ctor, inherits,
+       var api = {}, ctor, inherits,
                slice = Array.prototype.slice;
 
                slice = Array.prototype.slice;
 
-       /* =====================================================================
-        * Micro-inheritance - thank you, backbone.js.
-        * ===================================================================== */
-
-       extend = function( protoProps, classProps ) {
-               var child = inherits( this, protoProps, classProps );
-               child.extend = this.extend;
-               return child;
-       };
-
        // Shared empty constructor function to aid in prototype-chain creation.
        ctor = function() {};
 
        // Shared empty constructor function to aid in prototype-chain creation.
        ctor = function() {};
 
-       // Helper function to correctly set up the prototype chain, for subclasses.
-       // Similar to `goog.inherits`, but uses a hash of prototype properties and
-       // class properties to be extended.
+       /**
+        * Helper function to correctly set up the prototype chain, for subclasses.
+        * Similar to `goog.inherits`, but uses a hash of prototype properties and
+        * class properties to be extended.
+        *
+        * @param  object parent      Parent class constructor to inherit from.
+        * @param  object protoProps  Properties to apply to the prototype for use as class instance properties.
+        * @param  object staticProps Properties to apply directly to the class constructor.
+        * @return child              The subclassed constructor.
+        */
        inherits = function( parent, protoProps, staticProps ) {
                var child;
 
        inherits = function( parent, protoProps, staticProps ) {
                var child;
 
@@ -65,12 +62,9 @@ window.wp = window.wp || {};
                return child;
        };
 
                return child;
        };
 
-       api = {};
-
-       /* =====================================================================
-        * Base class.
-        * ===================================================================== */
-
+       /**
+        * Base class for object inheritance.
+        */
        api.Class = function( applicator, argsArray, options ) {
                var magic, args = arguments;
 
        api.Class = function( applicator, argsArray, options ) {
                var magic, args = arguments;
 
@@ -92,6 +86,19 @@ window.wp = window.wp || {};
                return magic;
        };
 
                return magic;
        };
 
+       /**
+        * Creates a subclass of the class.
+        *
+        * @param  object protoProps  Properties to apply to the prototype.
+        * @param  object staticProps Properties to apply directly to the class.
+        * @return child              The subclass.
+        */
+       api.Class.extend = function( protoProps, classProps ) {
+               var child = inherits( this, protoProps, classProps );
+               child.extend = this.extend;
+               return child;
+       };
+
        api.Class.applicator = {};
 
        api.Class.prototype.initialize = function() {};
        api.Class.applicator = {};
 
        api.Class.prototype.initialize = function() {};
@@ -116,12 +123,11 @@ window.wp = window.wp || {};
                return false;
        };
 
                return false;
        };
 
-       api.Class.extend = extend;
-
-       /* =====================================================================
-        * Events mixin.
-        * ===================================================================== */
-
+       /**
+        * An events manager object, offering the ability to bind to and trigger events.
+        *
+        * Used as a mixin.
+        */
        api.Events = {
                trigger: function( id ) {
                        if ( this.topics && this.topics[ id ] )
        api.Events = {
                trigger: function( id ) {
                        if ( this.topics && this.topics[ id ] )
@@ -143,10 +149,11 @@ window.wp = window.wp || {};
                }
        };
 
                }
        };
 
-       /* =====================================================================
+       /**
         * Observable values that support two-way binding.
         * Observable values that support two-way binding.
-        * ===================================================================== */
-
+        *
+        * @constuctor
+        */
        api.Value = api.Class.extend({
                initialize: function( initial, options ) {
                        this._value = initial; // @todo: potentially change this to a this.set() call.
        api.Value = api.Class.extend({
                initialize: function( initial, options ) {
                        this._value = initial; // @todo: potentially change this to a this.set() call.
@@ -254,10 +261,13 @@ window.wp = window.wp || {};
                }
        });
 
                }
        });
 
-       /* =====================================================================
+       /**
         * A collection of observable values.
         * A collection of observable values.
-        * ===================================================================== */
-
+        *
+        * @constuctor
+        * @augments wp.customize.Class
+        * @mixes wp.customize.Events
+        */
        api.Values = api.Class.extend({
                defaultConstructor: api.Value,
 
        api.Values = api.Class.extend({
                defaultConstructor: api.Value,
 
@@ -379,16 +389,25 @@ window.wp = window.wp || {};
 
        $.extend( api.Values.prototype, api.Events );
 
 
        $.extend( api.Values.prototype, api.Events );
 
-       /* =====================================================================
-        * An observable value that syncs with an element.
-        *
-        * Handles inputs, selects, and textareas by default.
-        * ===================================================================== */
 
 
+       /**
+        * Cast a string to a jQuery collection if it isn't already.
+        *
+        * @param {string|jQuery collection} element
+        */
        api.ensure = function( element ) {
                return typeof element == 'string' ? $( element ) : element;
        };
 
        api.ensure = function( element ) {
                return typeof element == 'string' ? $( element ) : element;
        };
 
+       /**
+        * An observable value that syncs with an element.
+        *
+        * Handles inputs, selects, and textareas by default.
+        *
+        * @constuctor
+        * @augments wp.customize.Value
+        * @augments wp.customize.Class
+        */
        api.Element = api.Value.extend({
                initialize: function( element, options ) {
                        var self = this,
        api.Element = api.Value.extend({
                initialize: function( element, options ) {
                        var self = this,
@@ -442,7 +461,7 @@ window.wp = window.wp || {};
 
        api.Element.synchronizer = {};
 
 
        api.Element.synchronizer = {};
 
-       $.each( [ 'html', 'val' ], function( i, method ) {
+       $.each( [ 'html', 'val' ], function( index, method ) {
                api.Element.synchronizer[ method ] = {
                        update: function( to ) {
                                this.element[ method ]( to );
                api.Element.synchronizer[ method ] = {
                        update: function( to ) {
                                this.element[ method ]( to );
@@ -473,13 +492,24 @@ window.wp = window.wp || {};
                }
        };
 
                }
        };
 
-       /* =====================================================================
-        * Messenger for postMessage.
-        * ===================================================================== */
-
        $.support.postMessage = !! window.postMessage;
 
        $.support.postMessage = !! window.postMessage;
 
+       /**
+        * Messenger for postMessage.
+        *
+        * @constuctor
+        * @augments wp.customize.Class
+        * @mixes wp.customize.Events
+        */
        api.Messenger = api.Class.extend({
        api.Messenger = api.Class.extend({
+               /**
+                * Create a new Value.
+                *
+                * @param  {string} key     Unique identifier.
+                * @param  {mixed}  initial Initial value.
+                * @param  {mixed}  options Options hash. Optional.
+                * @return {Value}          Class instance of the Value.
+                */
                add: function( key, initial, options ) {
                        return this[ key ] = new api.Value( initial, options );
                },
                add: function( key, initial, options ) {
                        return this[ key ] = new api.Value( initial, options );
                },
@@ -570,10 +600,7 @@ window.wp = window.wp || {};
        // Add the Events mixin to api.Messenger.
        $.extend( api.Messenger.prototype, api.Events );
 
        // Add the Events mixin to api.Messenger.
        $.extend( api.Messenger.prototype, api.Events );
 
-       /* =====================================================================
-        * Core customize object.
-        * ===================================================================== */
-
+       // Core customize object.
        api = $.extend( new api.Values(), api );
        api.get = function() {
                var result = {};
        api = $.extend( new api.Values(), api );
        api.get = function() {
                var result = {};
@@ -585,6 +612,6 @@ window.wp = window.wp || {};
                return result;
        };
 
                return result;
        };
 
-       // Expose the API to the world.
+       // Expose the API publicly on window.wp.customize
        exports.customize = api;
 })( wp, jQuery );
        exports.customize = api;
 })( wp, jQuery );
index 35b0d112fc2a8cf18e11e4502b2f74c67f2bbd6c..5889a60d58469a529262aa169f7d150d6b4d28f5 100644 (file)
@@ -1 +1 @@
-window.wp=window.wp||{},function(a,b){var c,d,e,f,g=Array.prototype.slice;d=function(a,b){var c=f(this,a,b);return c.extend=this.extend,c},e=function(){},f=function(a,c,d){var f;return f=c&&c.hasOwnProperty("constructor")?c.constructor:function(){var b=a.apply(this,arguments);return b},b.extend(f,a),e.prototype=a.prototype,f.prototype=new e,c&&b.extend(f.prototype,c),d&&b.extend(f,d),f.prototype.constructor=f,f.__super__=a.prototype,f},c={},c.Class=function(a,d,e){var f,g=arguments;return a&&d&&c.Class.applicator===a&&(g=d,b.extend(this,e||{})),f=this,this.instance&&(f=function(){return f.instance.apply(f,arguments)},b.extend(f,this)),f.initialize.apply(f,g),f},c.Class.applicator={},c.Class.prototype.initialize=function(){},c.Class.prototype.extended=function(a){for(var b=this;"undefined"!=typeof b.constructor;){if(b.constructor===a)return!0;if("undefined"==typeof b.constructor.__super__)return!1;b=b.constructor.__super__}return!1},c.Class.extend=d,c.Events={trigger:function(a){return this.topics&&this.topics[a]&&this.topics[a].fireWith(this,g.call(arguments,1)),this},bind:function(a){return this.topics=this.topics||{},this.topics[a]=this.topics[a]||b.Callbacks(),this.topics[a].add.apply(this.topics[a],g.call(arguments,1)),this},unbind:function(a){return this.topics&&this.topics[a]&&this.topics[a].remove.apply(this.topics[a],g.call(arguments,1)),this}},c.Value=c.Class.extend({initialize:function(a,c){this._value=a,this.callbacks=b.Callbacks(),b.extend(this,c||{}),this.set=b.proxy(this.set,this)},instance:function(){return arguments.length?this.set.apply(this,arguments):this.get()},get:function(){return this._value},set:function(a){var b=this._value;return a=this._setter.apply(this,arguments),a=this.validate(a),null===a||this._value===a?this:(this._value=a,this.callbacks.fireWith(this,[a,b]),this)},_setter:function(a){return a},setter:function(a){var b=this.get();return this._setter=a,this._value=null,this.set(b),this},resetSetter:function(){return this._setter=this.constructor.prototype._setter,this.set(this.get()),this},validate:function(a){return a},bind:function(){return this.callbacks.add.apply(this.callbacks,arguments),this},unbind:function(){return this.callbacks.remove.apply(this.callbacks,arguments),this},link:function(){var a=this.set;return b.each(arguments,function(){this.bind(a)}),this},unlink:function(){var a=this.set;return b.each(arguments,function(){this.unbind(a)}),this},sync:function(){var a=this;return b.each(arguments,function(){a.link(this),this.link(a)}),this},unsync:function(){var a=this;return b.each(arguments,function(){a.unlink(this),this.unlink(a)}),this}}),c.Values=c.Class.extend({defaultConstructor:c.Value,initialize:function(a){b.extend(this,a||{}),this._value={},this._deferreds={}},instance:function(a){return 1===arguments.length?this.value(a):this.when.apply(this,arguments)},value:function(a){return this._value[a]},has:function(a){return"undefined"!=typeof this._value[a]},add:function(a,b){return this.has(a)?this.value(a):(this._value[a]=b,b.parent=this,b.extended(c.Value)&&b.bind(this._change),this.trigger("add",b),this._deferreds[a]&&this._deferreds[a].resolve(),this._value[a])},create:function(a){return this.add(a,new this.defaultConstructor(c.Class.applicator,g.call(arguments,1)))},each:function(a,c){c="undefined"==typeof c?this:c,b.each(this._value,function(b,d){a.call(c,d,b)})},remove:function(a){var b;this.has(a)&&(b=this.value(a),this.trigger("remove",b),b.extended(c.Value)&&b.unbind(this._change),delete b.parent),delete this._value[a],delete this._deferreds[a]},when:function(){var a=this,c=g.call(arguments),d=b.Deferred();return b.isFunction(c[c.length-1])&&d.done(c.pop()),b.when.apply(b,b.map(c,function(c){return a.has(c)?void 0:a._deferreds[c]=a._deferreds[c]||b.Deferred()})).done(function(){var e=b.map(c,function(b){return a(b)});return e.length!==c.length?void a.when.apply(a,c).done(function(){d.resolveWith(a,e)}):void d.resolveWith(a,e)}),d.promise()},_change:function(){this.parent.trigger("change",this)}}),b.extend(c.Values.prototype,c.Events),c.ensure=function(a){return"string"==typeof a?b(a):a},c.Element=c.Value.extend({initialize:function(a,d){var e,f,g,h=this,i=c.Element.synchronizer.html;this.element=c.ensure(a),this.events="",this.element.is("input, select, textarea")&&(this.events+="change",i=c.Element.synchronizer.val,this.element.is("input")?(e=this.element.prop("type"),c.Element.synchronizer[e]&&(i=c.Element.synchronizer[e]),("text"===e||"password"===e)&&(this.events+=" keyup")):this.element.is("textarea")&&(this.events+=" keyup")),c.Value.prototype.initialize.call(this,null,b.extend(d||{},i)),this._value=this.get(),f=this.update,g=this.refresh,this.update=function(a){a!==g.call(h)&&f.apply(this,arguments)},this.refresh=function(){h.set(g.call(h))},this.bind(this.update),this.element.bind(this.events,this.refresh)},find:function(a){return b(a,this.element)},refresh:function(){},update:function(){}}),c.Element.synchronizer={},b.each(["html","val"],function(a,b){c.Element.synchronizer[b]={update:function(a){this.element[b](a)},refresh:function(){return this.element[b]()}}}),c.Element.synchronizer.checkbox={update:function(a){this.element.prop("checked",a)},refresh:function(){return this.element.prop("checked")}},c.Element.synchronizer.radio={update:function(a){this.element.filter(function(){return this.value===a}).prop("checked",!0)},refresh:function(){return this.element.filter(":checked").val()}},b.support.postMessage=!!window.postMessage,c.Messenger=c.Class.extend({add:function(a,b,d){return this[a]=new c.Value(b,d)},initialize:function(a,c){var d=window.parent==window?null:window.parent;b.extend(this,c||{}),this.add("channel",a.channel),this.add("url",a.url||""),this.add("targetWindow",a.targetWindow||d),this.add("origin",this.url()).link(this.url).setter(function(a){return a.replace(/([^:]+:\/\/[^\/]+).*/,"$1")}),this.receive=b.proxy(this.receive,this),this.receive.guid=b.guid++,b(window).on("message",this.receive)},destroy:function(){b(window).off("message",this.receive)},receive:function(a){var b;a=a.originalEvent,this.targetWindow()&&(this.origin()&&a.origin!==this.origin()||"string"==typeof a.data&&"{"===a.data[0]&&(b=JSON.parse(a.data),b&&b.id&&"undefined"!=typeof b.data&&(!b.channel&&!this.channel()||this.channel()===b.channel)&&this.trigger(b.id,b.data)))},send:function(a,b){var c;b="undefined"==typeof b?null:b,this.url()&&this.targetWindow()&&(c={id:a,data:b},this.channel()&&(c.channel=this.channel()),this.targetWindow().postMessage(JSON.stringify(c),this.origin()))}}),b.extend(c.Messenger.prototype,c.Events),c=b.extend(new c.Values,c),c.get=function(){var a={};return this.each(function(b,c){a[c]=b.get()}),a},a.customize=c}(wp,jQuery);
\ No newline at end of file
+window.wp=window.wp||{},function(a,b){var c,d,e={},f=Array.prototype.slice;c=function(){},d=function(a,d,e){var f;return f=d&&d.hasOwnProperty("constructor")?d.constructor:function(){var b=a.apply(this,arguments);return b},b.extend(f,a),c.prototype=a.prototype,f.prototype=new c,d&&b.extend(f.prototype,d),e&&b.extend(f,e),f.prototype.constructor=f,f.__super__=a.prototype,f},e.Class=function(a,c,d){var f,g=arguments;return a&&c&&e.Class.applicator===a&&(g=c,b.extend(this,d||{})),f=this,this.instance&&(f=function(){return f.instance.apply(f,arguments)},b.extend(f,this)),f.initialize.apply(f,g),f},e.Class.extend=function(a,b){var c=d(this,a,b);return c.extend=this.extend,c},e.Class.applicator={},e.Class.prototype.initialize=function(){},e.Class.prototype.extended=function(a){for(var b=this;"undefined"!=typeof b.constructor;){if(b.constructor===a)return!0;if("undefined"==typeof b.constructor.__super__)return!1;b=b.constructor.__super__}return!1},e.Events={trigger:function(a){return this.topics&&this.topics[a]&&this.topics[a].fireWith(this,f.call(arguments,1)),this},bind:function(a){return this.topics=this.topics||{},this.topics[a]=this.topics[a]||b.Callbacks(),this.topics[a].add.apply(this.topics[a],f.call(arguments,1)),this},unbind:function(a){return this.topics&&this.topics[a]&&this.topics[a].remove.apply(this.topics[a],f.call(arguments,1)),this}},e.Value=e.Class.extend({initialize:function(a,c){this._value=a,this.callbacks=b.Callbacks(),b.extend(this,c||{}),this.set=b.proxy(this.set,this)},instance:function(){return arguments.length?this.set.apply(this,arguments):this.get()},get:function(){return this._value},set:function(a){var b=this._value;return a=this._setter.apply(this,arguments),a=this.validate(a),null===a||this._value===a?this:(this._value=a,this.callbacks.fireWith(this,[a,b]),this)},_setter:function(a){return a},setter:function(a){var b=this.get();return this._setter=a,this._value=null,this.set(b),this},resetSetter:function(){return this._setter=this.constructor.prototype._setter,this.set(this.get()),this},validate:function(a){return a},bind:function(){return this.callbacks.add.apply(this.callbacks,arguments),this},unbind:function(){return this.callbacks.remove.apply(this.callbacks,arguments),this},link:function(){var a=this.set;return b.each(arguments,function(){this.bind(a)}),this},unlink:function(){var a=this.set;return b.each(arguments,function(){this.unbind(a)}),this},sync:function(){var a=this;return b.each(arguments,function(){a.link(this),this.link(a)}),this},unsync:function(){var a=this;return b.each(arguments,function(){a.unlink(this),this.unlink(a)}),this}}),e.Values=e.Class.extend({defaultConstructor:e.Value,initialize:function(a){b.extend(this,a||{}),this._value={},this._deferreds={}},instance:function(a){return 1===arguments.length?this.value(a):this.when.apply(this,arguments)},value:function(a){return this._value[a]},has:function(a){return"undefined"!=typeof this._value[a]},add:function(a,b){return this.has(a)?this.value(a):(this._value[a]=b,b.parent=this,b.extended(e.Value)&&b.bind(this._change),this.trigger("add",b),this._deferreds[a]&&this._deferreds[a].resolve(),this._value[a])},create:function(a){return this.add(a,new this.defaultConstructor(e.Class.applicator,f.call(arguments,1)))},each:function(a,c){c="undefined"==typeof c?this:c,b.each(this._value,function(b,d){a.call(c,d,b)})},remove:function(a){var b;this.has(a)&&(b=this.value(a),this.trigger("remove",b),b.extended(e.Value)&&b.unbind(this._change),delete b.parent),delete this._value[a],delete this._deferreds[a]},when:function(){var a=this,c=f.call(arguments),d=b.Deferred();return b.isFunction(c[c.length-1])&&d.done(c.pop()),b.when.apply(b,b.map(c,function(c){return a.has(c)?void 0:a._deferreds[c]=a._deferreds[c]||b.Deferred()})).done(function(){var e=b.map(c,function(b){return a(b)});return e.length!==c.length?void a.when.apply(a,c).done(function(){d.resolveWith(a,e)}):void d.resolveWith(a,e)}),d.promise()},_change:function(){this.parent.trigger("change",this)}}),b.extend(e.Values.prototype,e.Events),e.ensure=function(a){return"string"==typeof a?b(a):a},e.Element=e.Value.extend({initialize:function(a,c){var d,f,g,h=this,i=e.Element.synchronizer.html;this.element=e.ensure(a),this.events="",this.element.is("input, select, textarea")&&(this.events+="change",i=e.Element.synchronizer.val,this.element.is("input")?(d=this.element.prop("type"),e.Element.synchronizer[d]&&(i=e.Element.synchronizer[d]),("text"===d||"password"===d)&&(this.events+=" keyup")):this.element.is("textarea")&&(this.events+=" keyup")),e.Value.prototype.initialize.call(this,null,b.extend(c||{},i)),this._value=this.get(),f=this.update,g=this.refresh,this.update=function(a){a!==g.call(h)&&f.apply(this,arguments)},this.refresh=function(){h.set(g.call(h))},this.bind(this.update),this.element.bind(this.events,this.refresh)},find:function(a){return b(a,this.element)},refresh:function(){},update:function(){}}),e.Element.synchronizer={},b.each(["html","val"],function(a,b){e.Element.synchronizer[b]={update:function(a){this.element[b](a)},refresh:function(){return this.element[b]()}}}),e.Element.synchronizer.checkbox={update:function(a){this.element.prop("checked",a)},refresh:function(){return this.element.prop("checked")}},e.Element.synchronizer.radio={update:function(a){this.element.filter(function(){return this.value===a}).prop("checked",!0)},refresh:function(){return this.element.filter(":checked").val()}},b.support.postMessage=!!window.postMessage,e.Messenger=e.Class.extend({add:function(a,b,c){return this[a]=new e.Value(b,c)},initialize:function(a,c){var d=window.parent==window?null:window.parent;b.extend(this,c||{}),this.add("channel",a.channel),this.add("url",a.url||""),this.add("targetWindow",a.targetWindow||d),this.add("origin",this.url()).link(this.url).setter(function(a){return a.replace(/([^:]+:\/\/[^\/]+).*/,"$1")}),this.receive=b.proxy(this.receive,this),this.receive.guid=b.guid++,b(window).on("message",this.receive)},destroy:function(){b(window).off("message",this.receive)},receive:function(a){var b;a=a.originalEvent,this.targetWindow()&&(this.origin()&&a.origin!==this.origin()||"string"==typeof a.data&&"{"===a.data[0]&&(b=JSON.parse(a.data),b&&b.id&&"undefined"!=typeof b.data&&(!b.channel&&!this.channel()||this.channel()===b.channel)&&this.trigger(b.id,b.data)))},send:function(a,b){var c;b="undefined"==typeof b?null:b,this.url()&&this.targetWindow()&&(c={id:a,data:b},this.channel()&&(c.channel=this.channel()),this.targetWindow().postMessage(JSON.stringify(c),this.origin()))}}),b.extend(e.Messenger.prototype,e.Events),e=b.extend(new e.Values,e),e.get=function(){var a={};return this.each(function(b,c){a[c]=b.get()}),a},a.customize=e}(wp,jQuery);
\ No newline at end of file
index cccf71acc8c536fac03b4c7daaf5176f39f0dc90..2ee0c0f90b0ea87b560a60bc719374c7cc37596b 100644 (file)
@@ -1,4 +1,4 @@
-/* global _wpCustomizeLoaderSettings */
+/* global _wpCustomizeLoaderSettings, confirm */
 window.wp = window.wp || {};
 
 (function( exports, $ ){
 window.wp = window.wp || {};
 
 (function( exports, $ ){
@@ -10,7 +10,20 @@ window.wp = window.wp || {};
                hashchange: ('onhashchange' in window) && (document.documentMode === undefined || document.documentMode > 7)
        });
 
                hashchange: ('onhashchange' in window) && (document.documentMode === undefined || document.documentMode > 7)
        });
 
+       /**
+        * Allows the Customizer to be overlayed on any page.
+        *
+        * By default, any element in the body with the load-customize class will open
+        * the Customizer overlay with the URL specified.
+        *
+        *     e.g. <a class="load-customize" href="http://siteurl.com/2014/01/02/post">Open customizer</a>
+        *
+        * @augments wp.customize.Events
+        */
        Loader = $.extend( {}, api.Events, {
        Loader = $.extend( {}, api.Events, {
+               /**
+                * Setup the Loader; triggered on document#ready.
+                */
                initialize: function() {
                        this.body = $( document.body );
 
                initialize: function() {
                        this.body = $( document.body );
 
@@ -23,9 +36,12 @@ window.wp = window.wp || {};
                        this.window  = $( window );
                        this.element = $( '<div id="customize-container" />' ).appendTo( this.body );
 
                        this.window  = $( window );
                        this.element = $( '<div id="customize-container" />' ).appendTo( this.body );
 
+                       // Bind events for opening and closing the overlay.
                        this.bind( 'open', this.overlay.show );
                        this.bind( 'close', this.overlay.hide );
 
                        this.bind( 'open', this.overlay.show );
                        this.bind( 'close', this.overlay.hide );
 
+                       // Any element in the body with the `load-customize` class opens
+                       // the Customizer.
                        $('#wpbody').on( 'click', '.load-customize', function( event ) {
                                event.preventDefault();
 
                        $('#wpbody').on( 'click', '.load-customize', function( event ) {
                                event.preventDefault();
 
@@ -36,8 +52,9 @@ window.wp = window.wp || {};
                        });
 
                        // Add navigation listeners.
                        });
 
                        // Add navigation listeners.
-                       if ( $.support.history )
+                       if ( $.support.history ) {
                                this.window.on( 'popstate', Loader.popstate );
                                this.window.on( 'popstate', Loader.popstate );
+                       }
 
                        if ( $.support.hashchange ) {
                                this.window.on( 'hashchange', Loader.hashchange );
 
                        if ( $.support.hashchange ) {
                                this.window.on( 'hashchange', Loader.hashchange );
@@ -47,35 +64,53 @@ window.wp = window.wp || {};
 
                popstate: function( e ) {
                        var state = e.originalEvent.state;
 
                popstate: function( e ) {
                        var state = e.originalEvent.state;
-                       if ( state && state.customize )
+                       if ( state && state.customize ) {
                                Loader.open( state.customize );
                                Loader.open( state.customize );
-                       else if ( Loader.active )
+                       } else if ( Loader.active ) {
                                Loader.close();
                                Loader.close();
+                       }
                },
 
                hashchange: function() {
                        var hash = window.location.toString().split('#')[1];
 
                },
 
                hashchange: function() {
                        var hash = window.location.toString().split('#')[1];
 
-                       if ( hash && 0 === hash.indexOf( 'wp_customize=on' ) )
+                       if ( hash && 0 === hash.indexOf( 'wp_customize=on' ) ) {
                                Loader.open( Loader.settings.url + '?' + hash );
                                Loader.open( Loader.settings.url + '?' + hash );
+                       }
 
 
-                       if ( ! hash && ! $.support.history )
+                       if ( ! hash && ! $.support.history ){
                                Loader.close();
                                Loader.close();
+                       }
+               },
+
+               beforeunload: function () {
+                       if ( ! Loader.saved() ) {
+                               return Loader.settings.l10n.saveAlert;
+                       }
                },
 
                },
 
+               /**
+                * Open the customizer overlay for a specific URL.
+                *
+                * @param  string src URL to load in the Customizer.
+                */
                open: function( src ) {
                open: function( src ) {
-                       var hash;
 
 
-                       if ( this.active )
+                       if ( this.active ) {
                                return;
                                return;
+                       }
 
                        // Load the full page on mobile devices.
 
                        // Load the full page on mobile devices.
-                       if ( Loader.settings.browser.mobile )
+                       if ( Loader.settings.browser.mobile ) {
                                return window.location = src;
                                return window.location = src;
+                       }
 
                        this.active = true;
                        this.body.addClass('customize-loading');
 
 
                        this.active = true;
                        this.body.addClass('customize-loading');
 
+                       // Dirty state of customizer in iframe
+                       this.saved = new api.Value( true );
+
                        this.iframe = $( '<iframe />', { src: src }).appendTo( this.element );
                        this.iframe.one( 'load', this.loaded );
 
                        this.iframe = $( '<iframe />', { src: src }).appendTo( this.element );
                        this.iframe.one( 'load', this.loaded );
 
@@ -92,58 +127,103 @@ window.wp = window.wp || {};
                        });
 
                        this.messenger.bind( 'close', function() {
                        });
 
                        this.messenger.bind( 'close', function() {
-                               if ( $.support.history )
+                               if ( $.support.history ) {
                                        history.back();
                                        history.back();
-                               else if ( $.support.hashchange )
+                               } else if ( $.support.hashchange ) {
                                        window.location.hash = '';
                                        window.location.hash = '';
-                               else
+                               } else {
                                        Loader.close();
                                        Loader.close();
-                       });
+                               }
+                       } );
+
+                       // Prompt AYS dialog when navigating away
+                       $( window ).on( 'beforeunload', this.beforeunload );
 
                        this.messenger.bind( 'activated', function( location ) {
 
                        this.messenger.bind( 'activated', function( location ) {
-                               if ( location )
+                               if ( location ) {
                                        window.location = location;
                                        window.location = location;
+                               }
                        });
 
                        });
 
-                       hash = src.split('?')[1];
+                       this.messenger.bind( 'saved', function () {
+                               Loader.saved( true );
+                       } );
+                       this.messenger.bind( 'change', function () {
+                               Loader.saved( false );
+                       } );
+
+                       this.pushState( src );
+
+                       this.trigger( 'open' );
+               },
+
+               pushState: function ( src ) {
+                       var hash;
 
                        // Ensure we don't call pushState if the user hit the forward button.
 
                        // Ensure we don't call pushState if the user hit the forward button.
-                       if ( $.support.history && window.location.href !== src )
+                       if ( $.support.history && window.location.href !== src ) {
                                history.pushState( { customize: src }, '', src );
                                history.pushState( { customize: src }, '', src );
-                       else if ( ! $.support.history && $.support.hashchange && hash )
+                       } else if ( ! $.support.history && $.support.hashchange && hash ) {
+                               hash = src.split( '?' )[1];
                                window.location.hash = 'wp_customize=on&' + hash;
                                window.location.hash = 'wp_customize=on&' + hash;
-
-                       this.trigger( 'open' );
+                       }
                },
 
                },
 
+               /**
+                * Callback after the customizer has been opened.
+                */
                opened: function() {
                        Loader.body.addClass( 'customize-active full-overlay-active' );
                },
 
                opened: function() {
                        Loader.body.addClass( 'customize-active full-overlay-active' );
                },
 
+               /**
+                * Close the Customizer overlay and return focus to the link that opened it.
+                */
                close: function() {
                close: function() {
-                       if ( ! this.active )
+                       if ( ! this.active ) {
+                               return;
+                       }
+
+                       // Display AYS dialog if customizer is dirty
+                       if ( ! this.saved() && ! confirm( Loader.settings.l10n.saveAlert ) ) {
+                               // Go forward since Customizer is exited by history.back()
+                               history.forward();
                                return;
                                return;
+                       }
+
                        this.active = false;
 
                        this.trigger( 'close' );
 
                        // Return focus to link that was originally clicked.
                        this.active = false;
 
                        this.trigger( 'close' );
 
                        // Return focus to link that was originally clicked.
-                       if ( this.link )
+                       if ( this.link ) {
                                this.link.focus();
                                this.link.focus();
+                       }
                },
 
                },
 
+               /**
+                * Callback after the customizer has been closed.
+                */
                closed: function() {
                        Loader.iframe.remove();
                        Loader.messenger.destroy();
                        Loader.iframe    = null;
                        Loader.messenger = null;
                closed: function() {
                        Loader.iframe.remove();
                        Loader.messenger.destroy();
                        Loader.iframe    = null;
                        Loader.messenger = null;
+                       Loader.saved     = null;
                        Loader.body.removeClass( 'customize-active full-overlay-active' ).removeClass( 'customize-loading' );
                        Loader.body.removeClass( 'customize-active full-overlay-active' ).removeClass( 'customize-loading' );
+                       $( window ).off( 'beforeunload', Loader.beforeunload );
                },
 
                },
 
+               /**
+                * Callback for the `load` event on the Customizer iframe.
+                */
                loaded: function() {
                        Loader.body.removeClass('customize-loading');
                },
 
                loaded: function() {
                        Loader.body.removeClass('customize-loading');
                },
 
+               /**
+                * Overlay hide/show utility methods.
+                */
                overlay: {
                        show: function() {
                                this.element.fadeIn( 200, Loader.opened );
                overlay: {
                        show: function() {
                                this.element.fadeIn( 200, Loader.opened );
@@ -155,11 +235,12 @@ window.wp = window.wp || {};
                }
        });
 
                }
        });
 
+       // Bootstrap the Loader on document#ready.
        $( function() {
                Loader.settings = _wpCustomizeLoaderSettings;
                Loader.initialize();
        });
 
        $( function() {
                Loader.settings = _wpCustomizeLoaderSettings;
                Loader.initialize();
        });
 
-       // Expose the API to the world.
+       // Expose the API publicly on window.wp.customize.Loader
        api.Loader = Loader;
 })( wp, jQuery );
        api.Loader = Loader;
 })( wp, jQuery );
index 1ece98489a7537a44fb345f86baa5da00d078018..fc32b05b757f4084842686d6cfac030b3e7be9a3 100644 (file)
@@ -1 +1 @@
-window.wp=window.wp||{},function(a,b){var c,d=wp.customize;b.extend(b.support,{history:!(!window.history||!history.pushState),hashchange:"onhashchange"in window&&(void 0===document.documentMode||document.documentMode>7)}),c=b.extend({},d.Events,{initialize:function(){this.body=b(document.body),c.settings&&b.support.postMessage&&(b.support.cors||!c.settings.isCrossDomain)&&(this.window=b(window),this.element=b('<div id="customize-container" />').appendTo(this.body),this.bind("open",this.overlay.show),this.bind("close",this.overlay.hide),b("#wpbody").on("click",".load-customize",function(a){a.preventDefault(),c.link=b(this),c.open(c.link.attr("href"))}),b.support.history&&this.window.on("popstate",c.popstate),b.support.hashchange&&(this.window.on("hashchange",c.hashchange),this.window.triggerHandler("hashchange")))},popstate:function(a){var b=a.originalEvent.state;b&&b.customize?c.open(b.customize):c.active&&c.close()},hashchange:function(){var a=window.location.toString().split("#")[1];a&&0===a.indexOf("wp_customize=on")&&c.open(c.settings.url+"?"+a),a||b.support.history||c.close()},open:function(a){var e;if(!this.active){if(c.settings.browser.mobile)return window.location=a;this.active=!0,this.body.addClass("customize-loading"),this.iframe=b("<iframe />",{src:a}).appendTo(this.element),this.iframe.one("load",this.loaded),this.messenger=new d.Messenger({url:a,channel:"loader",targetWindow:this.iframe[0].contentWindow}),this.messenger.bind("ready",function(){c.messenger.send("back")}),this.messenger.bind("close",function(){b.support.history?history.back():b.support.hashchange?window.location.hash="":c.close()}),this.messenger.bind("activated",function(a){a&&(window.location=a)}),e=a.split("?")[1],b.support.history&&window.location.href!==a?history.pushState({customize:a},"",a):!b.support.history&&b.support.hashchange&&e&&(window.location.hash="wp_customize=on&"+e),this.trigger("open")}},opened:function(){c.body.addClass("customize-active full-overlay-active")},close:function(){this.active&&(this.active=!1,this.trigger("close"),this.link&&this.link.focus())},closed:function(){c.iframe.remove(),c.messenger.destroy(),c.iframe=null,c.messenger=null,c.body.removeClass("customize-active full-overlay-active").removeClass("customize-loading")},loaded:function(){c.body.removeClass("customize-loading")},overlay:{show:function(){this.element.fadeIn(200,c.opened)},hide:function(){this.element.fadeOut(200,c.closed)}}}),b(function(){c.settings=_wpCustomizeLoaderSettings,c.initialize()}),d.Loader=c}(wp,jQuery);
\ No newline at end of file
+window.wp=window.wp||{},function(a,b){var c,d=wp.customize;b.extend(b.support,{history:!(!window.history||!history.pushState),hashchange:"onhashchange"in window&&(void 0===document.documentMode||document.documentMode>7)}),c=b.extend({},d.Events,{initialize:function(){this.body=b(document.body),c.settings&&b.support.postMessage&&(b.support.cors||!c.settings.isCrossDomain)&&(this.window=b(window),this.element=b('<div id="customize-container" />').appendTo(this.body),this.bind("open",this.overlay.show),this.bind("close",this.overlay.hide),b("#wpbody").on("click",".load-customize",function(a){a.preventDefault(),c.link=b(this),c.open(c.link.attr("href"))}),b.support.history&&this.window.on("popstate",c.popstate),b.support.hashchange&&(this.window.on("hashchange",c.hashchange),this.window.triggerHandler("hashchange")))},popstate:function(a){var b=a.originalEvent.state;b&&b.customize?c.open(b.customize):c.active&&c.close()},hashchange:function(){var a=window.location.toString().split("#")[1];a&&0===a.indexOf("wp_customize=on")&&c.open(c.settings.url+"?"+a),a||b.support.history||c.close()},beforeunload:function(){return c.saved()?void 0:c.settings.l10n.saveAlert},open:function(a){if(!this.active){if(c.settings.browser.mobile)return window.location=a;this.active=!0,this.body.addClass("customize-loading"),this.saved=new d.Value(!0),this.iframe=b("<iframe />",{src:a}).appendTo(this.element),this.iframe.one("load",this.loaded),this.messenger=new d.Messenger({url:a,channel:"loader",targetWindow:this.iframe[0].contentWindow}),this.messenger.bind("ready",function(){c.messenger.send("back")}),this.messenger.bind("close",function(){b.support.history?history.back():b.support.hashchange?window.location.hash="":c.close()}),b(window).on("beforeunload",this.beforeunload),this.messenger.bind("activated",function(a){a&&(window.location=a)}),this.messenger.bind("saved",function(){c.saved(!0)}),this.messenger.bind("change",function(){c.saved(!1)}),this.pushState(a),this.trigger("open")}},pushState:function(a){var c;b.support.history&&window.location.href!==a?history.pushState({customize:a},"",a):!b.support.history&&b.support.hashchange&&c&&(c=a.split("?")[1],window.location.hash="wp_customize=on&"+c)},opened:function(){c.body.addClass("customize-active full-overlay-active")},close:function(){if(this.active){if(!this.saved()&&!confirm(c.settings.l10n.saveAlert))return void history.forward();this.active=!1,this.trigger("close"),this.link&&this.link.focus()}},closed:function(){c.iframe.remove(),c.messenger.destroy(),c.iframe=null,c.messenger=null,c.saved=null,c.body.removeClass("customize-active full-overlay-active").removeClass("customize-loading"),b(window).off("beforeunload",c.beforeunload)},loaded:function(){c.body.removeClass("customize-loading")},overlay:{show:function(){this.element.fadeIn(200,c.opened)},hide:function(){this.element.fadeOut(200,c.closed)}}}),b(function(){c.settings=_wpCustomizeLoaderSettings,c.initialize()}),d.Loader=c}(wp,jQuery);
\ No newline at end of file
index cccc5962f8dd40a5741f7cd87f09d3f40fef14ad..92267e88fb3317d040d7b594009bba6cba7b8a48 100644 (file)
                        this.buildWidgetSelectors();
                        this.highlightControls();
 
                        this.buildWidgetSelectors();
                        this.highlightControls();
 
-                       this.preview.bind( 'active', function() {
-                               self.preview.send( 'rendered-sidebars', self.renderedSidebars ); // @todo Only send array of IDs
-                               self.preview.send( 'rendered-widgets', self.renderedWidgets ); // @todo Only send array of IDs
-                       } );
-
                        this.preview.bind( 'highlight-widget', self.highlightWidget );
                },
 
                        this.preview.bind( 'highlight-widget', self.highlightWidget );
                },
 
index 890f5b5487d2ae9d70e4be4a26588952acc8b956..6659171bbcf3deb477befb1000f3c501ba9eb21a 100644 (file)
@@ -1 +1 @@
-!function(a,b){if(a&&a.customize){var c,d=a.customize;d.WidgetCustomizerPreview={renderedSidebars:{},renderedWidgets:{},registeredSidebars:[],registeredWidgets:{},widgetSelectors:[],preview:null,l10n:{},init:function(){var a=this;this.buildWidgetSelectors(),this.highlightControls(),this.preview.bind("active",function(){a.preview.send("rendered-sidebars",a.renderedSidebars),a.preview.send("rendered-widgets",a.renderedWidgets)}),this.preview.bind("highlight-widget",a.highlightWidget)},buildWidgetSelectors:function(){var a=this;b.each(this.registeredSidebars,function(c,d){var e,f,g,h=[d.before_widget.replace("%1$s","").replace("%2$s",""),d.before_title,d.after_title,d.after_widget].join("");e=b(h),f=e.prop("tagName"),g=e.prop("className"),g&&(g=g.replace(/^\s+|\s+$/g,""),g&&(f+="."+g.split(/\s+/).join(".")),a.widgetSelectors.push(f))})},highlightWidget:function(a){var c=b(document.body),d=b("#"+a);c.find(".widget-customizer-highlighted-widget").removeClass("widget-customizer-highlighted-widget"),d.addClass("widget-customizer-highlighted-widget"),setTimeout(function(){d.removeClass("widget-customizer-highlighted-widget")},500)},highlightControls:function(){var a=this,c=this.widgetSelectors.join(",");b(c).attr("title",this.l10n.widgetTooltip),b(document).on("mouseenter",c,function(){a.preview.send("highlight-widget-control",b(this).prop("id"))}),b(document).on("click",c,function(c){c.shiftKey&&(c.preventDefault(),a.preview.send("focus-widget-control",b(this).prop("id")))})}},c=d.Preview,d.Preview=c.extend({initialize:function(a,b){d.WidgetCustomizerPreview.preview=this,c.prototype.initialize.call(this,a,b)}}),b(function(){var a=window._wpWidgetCustomizerPreviewSettings;a&&(b.extend(d.WidgetCustomizerPreview,a),d.WidgetCustomizerPreview.init())})}}(window.wp,jQuery);
\ No newline at end of file
+!function(a,b){if(a&&a.customize){var c,d=a.customize;d.WidgetCustomizerPreview={renderedSidebars:{},renderedWidgets:{},registeredSidebars:[],registeredWidgets:{},widgetSelectors:[],preview:null,l10n:{},init:function(){var a=this;this.buildWidgetSelectors(),this.highlightControls(),this.preview.bind("highlight-widget",a.highlightWidget)},buildWidgetSelectors:function(){var a=this;b.each(this.registeredSidebars,function(c,d){var e,f,g,h=[d.before_widget.replace("%1$s","").replace("%2$s",""),d.before_title,d.after_title,d.after_widget].join("");e=b(h),f=e.prop("tagName"),g=e.prop("className"),g&&(g=g.replace(/^\s+|\s+$/g,""),g&&(f+="."+g.split(/\s+/).join(".")),a.widgetSelectors.push(f))})},highlightWidget:function(a){var c=b(document.body),d=b("#"+a);c.find(".widget-customizer-highlighted-widget").removeClass("widget-customizer-highlighted-widget"),d.addClass("widget-customizer-highlighted-widget"),setTimeout(function(){d.removeClass("widget-customizer-highlighted-widget")},500)},highlightControls:function(){var a=this,c=this.widgetSelectors.join(",");b(c).attr("title",this.l10n.widgetTooltip),b(document).on("mouseenter",c,function(){a.preview.send("highlight-widget-control",b(this).prop("id"))}),b(document).on("click",c,function(c){c.shiftKey&&(c.preventDefault(),a.preview.send("focus-widget-control",b(this).prop("id")))})}},c=d.Preview,d.Preview=c.extend({initialize:function(a,b){d.WidgetCustomizerPreview.preview=this,c.prototype.initialize.call(this,a,b)}}),b(function(){var a=window._wpWidgetCustomizerPreviewSettings;a&&(b.extend(d.WidgetCustomizerPreview,a),d.WidgetCustomizerPreview.init())})}}(window.wp,jQuery);
\ No newline at end of file
index 1d274f9c643b06509649da2f97e68351d62bc2c9..6da26f47a0ea994141d2f2e1945ed25ad53b258d 100644 (file)
@@ -2,6 +2,11 @@
        var api = wp.customize,
                debounce;
 
        var api = wp.customize,
                debounce;
 
+       /**
+        * Returns a debounced version of the function.
+        *
+        * @todo Require Underscore.js for this file and retire this.
+        */
        debounce = function( fn, delay, context ) {
                var timeout;
                return function() {
        debounce = function( fn, delay, context ) {
                var timeout;
                return function() {
                };
        };
 
                };
        };
 
+       /**
+        * @constructor
+        * @augments wp.customize.Messenger
+        * @augments wp.customize.Class
+        * @mixes wp.customize.Events
+        */
        api.Preview = api.Messenger.extend({
                /**
                 * Requires params:
        api.Preview = api.Messenger.extend({
                /**
                 * Requires params:
                 preview.send( 'nonce', api.settings.nonce );
         });
 
                 preview.send( 'nonce', api.settings.nonce );
         });
 
-               preview.send( 'ready' );
+               preview.send( 'ready', {
+                       activeControls: api.settings.activeControls
+               } );
 
                /* Custom Backgrounds */
                bg = $.map(['color', 'image', 'position_x', 'repeat', 'attachment'], function( prop ) {
 
                /* Custom Backgrounds */
                bg = $.map(['color', 'image', 'position_x', 'repeat', 'attachment'], function( prop ) {
index 27a42c4823f238df2bfb9fafd810f32a3c298ee7..fabf2965474c3be7b3aa7786a42bda5cc0fc4222 100644 (file)
@@ -1 +1 @@
-!function(a,b){var c,d=wp.customize;c=function(a,b,c){var d;return function(){var e=arguments;c=c||this,clearTimeout(d),d=setTimeout(function(){d=null,a.apply(c,e)},b)}},d.Preview=d.Messenger.extend({initialize:function(a,e){var f=this;d.Messenger.prototype.initialize.call(this,a,e),this.body=b(document.body),this.body.on("click.preview","a",function(a){a.preventDefault(),f.send("scroll",0),f.send("url",b(this).prop("href"))}),this.body.on("submit.preview","form",function(a){a.preventDefault()}),this.window=b(window),this.window.on("scroll.preview",c(function(){f.send("scroll",f.window.scrollTop())},200)),this.bind("scroll",function(a){f.window.scrollTop(a)})}}),b(function(){if(d.settings=window._wpCustomizeSettings,d.settings){var a,c;a=new d.Preview({url:window.location.href,channel:d.settings.channel}),a.bind("settings",function(a){b.each(a,function(a,b){d.has(a)?d(a).set(b):d.create(a,b)})}),a.trigger("settings",d.settings.values),a.bind("setting",function(a){var b;a=a.slice(),(b=d(a.shift()))&&b.set.apply(b,a)}),a.bind("sync",function(c){b.each(c,function(b,c){a.trigger(b,c)}),a.send("synced")}),a.bind("active",function(){d.settings.nonce&&a.send("nonce",d.settings.nonce)}),a.send("ready"),c=b.map(["color","image","position_x","repeat","attachment"],function(a){return"background_"+a}),d.when.apply(d,c).done(function(a,c,d,e,f){var g,h=b(document.body),i=b("head"),j=b("#custom-background-css");g=function(){var g="";h.toggleClass("custom-background",!(!a()&&!c())),a()&&(g+="background-color: "+a()+";"),c()&&(g+='background-image: url("'+c()+'");',g+="background-position: top "+d()+";",g+="background-repeat: "+e()+";",g+="background-attachment: "+f()+";"),j.remove(),j=b('<style type="text/css" id="custom-background-css">body.custom-background { '+g+" }</style>").appendTo(i)},b.each(arguments,function(){this.bind(g)})})}})}(wp,jQuery);
\ No newline at end of file
+!function(a,b){var c,d=wp.customize;c=function(a,b,c){var d;return function(){var e=arguments;c=c||this,clearTimeout(d),d=setTimeout(function(){d=null,a.apply(c,e)},b)}},d.Preview=d.Messenger.extend({initialize:function(a,e){var f=this;d.Messenger.prototype.initialize.call(this,a,e),this.body=b(document.body),this.body.on("click.preview","a",function(a){a.preventDefault(),f.send("scroll",0),f.send("url",b(this).prop("href"))}),this.body.on("submit.preview","form",function(a){a.preventDefault()}),this.window=b(window),this.window.on("scroll.preview",c(function(){f.send("scroll",f.window.scrollTop())},200)),this.bind("scroll",function(a){f.window.scrollTop(a)})}}),b(function(){if(d.settings=window._wpCustomizeSettings,d.settings){var a,c;a=new d.Preview({url:window.location.href,channel:d.settings.channel}),a.bind("settings",function(a){b.each(a,function(a,b){d.has(a)?d(a).set(b):d.create(a,b)})}),a.trigger("settings",d.settings.values),a.bind("setting",function(a){var b;a=a.slice(),(b=d(a.shift()))&&b.set.apply(b,a)}),a.bind("sync",function(c){b.each(c,function(b,c){a.trigger(b,c)}),a.send("synced")}),a.bind("active",function(){d.settings.nonce&&a.send("nonce",d.settings.nonce)}),a.send("ready",{activeControls:d.settings.activeControls}),c=b.map(["color","image","position_x","repeat","attachment"],function(a){return"background_"+a}),d.when.apply(d,c).done(function(a,c,d,e,f){var g,h=b(document.body),i=b("head"),j=b("#custom-background-css");g=function(){var g="";h.toggleClass("custom-background",!(!a()&&!c())),a()&&(g+="background-color: "+a()+";"),c()&&(g+='background-image: url("'+c()+'");',g+="background-position: top "+d()+";",g+="background-repeat: "+e()+";",g+="background-attachment: "+f()+";"),j.remove(),j=b('<style type="text/css" id="custom-background-css">body.custom-background { '+g+" }</style>").appendTo(i)},b.each(arguments,function(){this.bind(g)})})}})}(wp,jQuery);
\ No newline at end of file
index c097973f13e98491e48c35801c5f632c403793b4..63ee4f523c22c139c837763dd94579d68d59d35b 100644 (file)
@@ -63,7 +63,7 @@
                                // Whether a connection is currently in progress
                                connecting: false,
 
                                // Whether a connection is currently in progress
                                connecting: false,
 
-                               // Whether a connection error occured
+                               // Whether a connection error occurred
                                connectionError: false,
 
                                // Used to track non-critical errors
                                connectionError: false,
 
                                // Used to track non-critical errors
index 4ea18eb80f55b6cd077ee22045436f8c95c52621..e4155d36907934e4f991ff7e21f4e597f657522d 100644 (file)
@@ -1,5 +1,5 @@
-/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="<select t=''><option selected=''></option></select>",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=jb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=kb(b);function nb(){}nb.prototype=d.filters=d.pseudos,d.setFilters=new nb;function ob(a,b){var c,e,f,g,h,i,j,k=x[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=Q.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?db.error(a):x(a,i).slice(0)}function pb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f
-}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},W=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a>",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=$.test(e)?this.mouseHooks:Z.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||z),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||z,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==db()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===db()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=z.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===L&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&(a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault())?bb:cb):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:cb,isPropagationStopped:cb,isImmediatePropagationStopped:cb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=bb,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=bb,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submitBubbles||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?b.form:void 0;c&&!n._data(c,"submitBubbles")&&(n.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),n._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.changeBubbles||(n.event.special.change={setup:function(){return Y.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),n.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),n.event.simulate("change",this,a,!0)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;Y.test(b.nodeName)&&!n._data(b,"changeBubbles")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a,!0)}),n._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!Y.test(this.nodeName)}}),l.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=cb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return n().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=cb),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});function eb(a){var b=fb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var fb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gb=/ jQuery\d+="(?:null|\d+)"/g,hb=new RegExp("<(?:"+fb+")[\\s/>]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/<tbody/i,mb=/<|&#?\w+;/,nb=/<(?:script|style|link)/i,ob=/checked\s*(?:[^=]|=\s*.checked.)/i,pb=/^$|\/(?:java|ecma)script/i,qb=/^true\/(.*)/,rb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,sb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1></$2>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?"<table>"!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Db[0].contentWindow||Db[0].contentDocument).document,b.write(),b.close(),c=Fb(a,b),Db.detach()),Eb[a]=c),c}!function(){var a,b,c=z.createElement("div"),d="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";c.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],a.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(a.style.opacity),l.cssFloat=!!a.style.cssFloat,c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===c.style.backgroundClip,a=c=null,l.shrinkWrapBlocks=function(){var a,c,e,f;if(null==b){if(a=z.getElementsByTagName("body")[0],!a)return;f="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",c=z.createElement("div"),e=z.createElement("div"),a.appendChild(c).appendChild(e),b=!1,typeof e.style.zoom!==L&&(e.style.cssText=d+";width:1px;padding:1px;zoom:1",e.innerHTML="<div></div>",e.firstChild.style.width="5px",b=3!==e.offsetWidth),a.removeChild(c),a=c=e=null}return b}}();var Hb=/^margin/,Ib=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Jb,Kb,Lb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Jb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),Ib.test(g)&&Hb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):z.documentElement.currentStyle&&(Jb=function(a){return a.currentStyle},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ib.test(g)&&!Lb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Mb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h=z.createElement("div"),i="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",j="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";h.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",b=h.getElementsByTagName("a")[0],b.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(b.style.opacity),l.cssFloat=!!b.style.cssFloat,h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===h.style.backgroundClip,b=h=null,n.extend(l,{reliableHiddenOffsets:function(){if(null!=c)return c;var a,b,d,e=z.createElement("div"),f=z.getElementsByTagName("body")[0];if(f)return e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=z.createElement("div"),a.style.cssText=i,f.appendChild(a).appendChild(e),e.innerHTML="<table><tr><td></td><td>t</td></tr></table>",b=e.getElementsByTagName("td"),b[0].style.cssText="padding:0;margin:0;border:0;display:none",d=0===b[0].offsetHeight,b[0].style.display="",b[1].style.display="none",c=d&&0===b[0].offsetHeight,f.removeChild(a),e=f=null,c},boxSizing:function(){return null==d&&k(),d},boxSizingReliable:function(){return null==e&&k(),e},pixelPosition:function(){return null==f&&k(),f},reliableMarginRight:function(){var b,c,d,e;if(null==g&&a.getComputedStyle){if(b=z.getElementsByTagName("body")[0],!b)return;c=z.createElement("div"),d=z.createElement("div"),c.style.cssText=i,b.appendChild(c).appendChild(d),e=d.appendChild(z.createElement("div")),e.style.cssText=d.style.cssText=j,e.style.marginRight=e.style.width="0",d.style.width="1px",g=!parseFloat((a.getComputedStyle(e,null)||{}).marginRight),b.removeChild(c)}return g}});function k(){var b,c,h=z.getElementsByTagName("body")[0];h&&(b=z.createElement("div"),c=z.createElement("div"),b.style.cssText=i,h.appendChild(b).appendChild(c),c.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%",n.swap(h,null!=h.style.zoom?{zoom:1}:{},function(){d=4===c.offsetWidth}),e=!0,f=!1,g=!0,a.getComputedStyle&&(f="1%"!==(a.getComputedStyle(c,null)||{}).top,e="4px"===(a.getComputedStyle(c,null)||{width:"4px"}).width),h.removeChild(b),c=h=null)}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Nb=/alpha\([^)]*\)/i,Ob=/opacity\s*=\s*([^)]*)/,Pb=/^(none|table(?!-c[ea]).+)/,Qb=new RegExp("^("+T+")(.*)$","i"),Rb=new RegExp("^([+-])=("+T+")","i"),Sb={position:"absolute",visibility:"hidden",display:"block"},Tb={letterSpacing:0,fontWeight:400},Ub=["Webkit","O","Moz","ms"];function Vb(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ub.length;while(e--)if(b=Ub[e]+c,b in a)return b;return d}function Wb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=n._data(d,"olddisplay",Gb(d.nodeName)))):f[g]||(e=V(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Xb(a,b,c){var d=Qb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Yb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function Zb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Jb(a),g=l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Kb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ib.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Yb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Kb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=Vb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Rb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]="",i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Vb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Kb(a,b,d)),"normal"===f&&b in Tb&&(f=Tb[b]),""===c||c?(e=parseFloat(f),c===!0||n.isNumeric(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?0===a.offsetWidth&&Pb.test(n.css(a,"display"))?n.swap(a,Sb,function(){return Zb(a,b,d)}):Zb(a,b,d):void 0},set:function(a,c,d){var e=d&&Jb(a);return Xb(a,c,d?Yb(a,b,d,l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Ob.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Nb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Nb.test(f)?f.replace(Nb,e):f+" "+e)}}),n.cssHooks.marginRight=Mb(l.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},Kb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Hb.test(a)||(n.cssHooks[a+b].set=Xb)}),n.fn.extend({css:function(a,b){return W(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Jb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)
-},a,b,arguments.length>1)},show:function(){return Wb(this,!0)},hide:function(){return Wb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function $b(a,b,c,d,e){return new $b.prototype.init(a,b,c,d,e)}n.Tween=$b,$b.prototype={constructor:$b,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=$b.propHooks[this.prop];return a&&a.get?a.get(this):$b.propHooks._default.get(this)},run:function(a){var b,c=$b.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):$b.propHooks._default.set(this),this}},$b.prototype.init.prototype=$b.prototype,$b.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},$b.propHooks.scrollTop=$b.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=$b.prototype.init,n.fx.step={};var _b,ac,bc=/^(?:toggle|show|hide)$/,cc=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),dc=/queueHooks$/,ec=[jc],fc={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=cc.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&cc.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function gc(){return setTimeout(function(){_b=void 0}),_b=n.now()}function hc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=U[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function ic(a,b,c){for(var d,e=(fc[b]||[]).concat(fc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function jc(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&V(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k=Gb(a.nodeName),"none"===j&&(j=k),"inline"===j&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==k?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],bc.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}if(!n.isEmptyObject(o)){r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=ic(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function kc(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function lc(a,b,c){var d,e,f=0,g=ec.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=_b||gc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:_b||gc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(kc(k,j.opts.specialEasing);g>f;f++)if(d=ec[f].call(j,a,k,j.opts))return d;return n.map(k,ic,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(lc,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],fc[c]=fc[c]||[],fc[c].unshift(b)},prefilter:function(a,b){b?ec.unshift(a):ec.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(V).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=lc(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&dc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(hc(b,!0),a,d,e)}}),n.each({slideDown:hc("show"),slideUp:hc("hide"),slideToggle:hc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(_b=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),_b=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ac||(ac=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(ac),ac=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e=z.createElement("div");e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=e.getElementsByTagName("a")[0],c=z.createElement("select"),d=c.appendChild(z.createElement("option")),b=e.getElementsByTagName("input")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==e.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=d.selected,l.enctype=!!z.createElement("form").enctype,c.disabled=!0,l.optDisabled=!d.disabled,b=z.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value,a=b=c=d=e=null}();var mc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(mc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.text(a)}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(l.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var nc,oc,pc=n.expr.attrHandle,qc=/^(?:checked|selected)$/i,rc=l.getSetAttribute,sc=l.input;n.fn.extend({attr:function(a,b){return W(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===L?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?oc:nc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(F);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?sc&&rc||!qc.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(rc?c:d)},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),oc={set:function(a,b,c){return b===!1?n.removeAttr(a,c):sc&&rc||!qc.test(c)?a.setAttribute(!rc&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=pc[b]||n.find.attr;pc[b]=sc&&rc||!qc.test(b)?function(a,b,d){var e,f;return d||(f=pc[b],pc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,pc[b]=f),e}:function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),sc&&rc||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):nc&&nc.set(a,b,c)}}),rc||(nc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},pc.id=pc.name=pc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:nc.set},n.attrHooks.contenteditable={set:function(a,b,c){nc.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var tc=/^(?:input|select|textarea|button|object)$/i,uc=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return W(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):tc.test(a.nodeName)||uc.test(a.nodeName)&&a.href?0:-1}}}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var vc=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(F)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===L||"boolean"===c)&&(this.className&&n._data(this,"__className__",this.className),this.className=this.className||a===!1?"":n._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(vc," ").indexOf(b)>=0)return!0;return!1}}),n.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 contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var wc=n.now(),xc=/\?/,yc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(yc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var zc,Ac,Bc=/#.*$/,Cc=/([?&])_=[^&]*/,Dc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ec=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Fc=/^(?:GET|HEAD)$/,Gc=/^\/\//,Hc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ic={},Jc={},Kc="*/".concat("*");try{Ac=location.href}catch(Lc){Ac=z.createElement("a"),Ac.href="",Ac=Ac.href}zc=Hc.exec(Ac.toLowerCase())||[];function Mc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(F)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nc(a,b,c,d){var e={},f=a===Jc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Oc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Pc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Qc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ac,type:"GET",isLocal:Ec.test(zc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Oc(Oc(a,n.ajaxSettings),b):Oc(n.ajaxSettings,a)},ajaxPrefilter:Mc(Ic),ajaxTransport:Mc(Jc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Dc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||Ac)+"").replace(Bc,"").replace(Gc,zc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(F)||[""],null==k.crossDomain&&(c=Hc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===zc[1]&&c[2]===zc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(zc[3]||("http:"===zc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),Nc(Ic,k,b,v),2===t)return v;h=k.global,h&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Fc.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(xc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Cc.test(e)?e.replace(Cc,"$1_="+wc++):e+(xc.test(e)?"&":"?")+"_="+wc++)),k.ifModified&&(n.lastModified[e]&&v.setRequestHeader("If-Modified-Since",n.lastModified[e]),n.etag[e]&&v.setRequestHeader("If-None-Match",n.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Kc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Nc(Jc,k,b,v)){v.readyState=1,h&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Pc(k,v,c)),u=Qc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(n.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!l.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||n.css(a,"display"))},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var Rc=/%20/g,Sc=/\[\]$/,Tc=/\r?\n/g,Uc=/^(?:submit|button|image|reset|file)$/i,Vc=/^(?:input|select|textarea|keygen)/i;function Wc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||Sc.test(a)?d(a,e):Wc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Wc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Wc(c,a[c],b,e);return d.join("&").replace(Rc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Vc.test(this.nodeName)&&!Uc.test(a)&&(this.checked||!X.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(Tc,"\r\n")}}):{name:b.name,value:c.replace(Tc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&$c()||_c()}:$c;var Xc=0,Yc={},Zc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Yc)Yc[a](void 0,!0)}),l.cors=!!Zc&&"withCredentials"in Zc,Zc=l.ajax=!!Zc,Zc&&n.ajaxTransport(function(a){if(!a.crossDomain||l.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Xc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Yc[g],b=void 0,f.onreadystatechange=n.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Yc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function $c(){try{return new a.XMLHttpRequest}catch(b){}}function _c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||n("head")[0]||z.documentElement;return{send:function(d,e){b=z.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var ad=[],bd=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=ad.pop()||n.expando+"_"+wc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(bd.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&bd.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(bd,"$1"+e):b.jsonp!==!1&&(b.url+=(xc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,ad.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||z;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var cd=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&cd)return cd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=a.slice(h,a.length),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&n.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return W(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});
+/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;
+if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")
+},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.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 contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
 jQuery.noConflict();
 jQuery.noConflict();
index 60e15c1f8cd2da988a9b1a393decd673dd5f26d3..87f30122cafe1be3b7bbc47a0b95d2130adcf580 100644 (file)
                        if ($currentResult) {
                                if ( options.multiple ) {
                                        if ( $input.val().indexOf(options.multipleSep) != -1 ) {
                        if ($currentResult) {
                                if ( options.multiple ) {
                                        if ( $input.val().indexOf(options.multipleSep) != -1 ) {
-                                               $currentVal = $input.val().substr( 0, ( $input.val().lastIndexOf(options.multipleSep) + options.multipleSep.length ) );
+                                               $currentVal = $input.val().substr( 0, ( $input.val().lastIndexOf(options.multipleSep) + options.multipleSep.length ) ) + ' ';
                                        } else {
                                                $currentVal = "";
                                        }
                                        } else {
                                                $currentVal = "";
                                        }
-                                       $input.val( $currentVal + $currentResult.text() + options.multipleSep);
+                                       $input.val( $currentVal + $currentResult.text() + options.multipleSep + ' ' );
                                        $input.focus();
                                } else {
                                        $input.val($currentResult.text());
                                        $input.focus();
                                } else {
                                        $input.val($currentResult.text());
 
                options = options || {};
                options.multiple = options.multiple || false;
 
                options = options || {};
                options.multiple = options.multiple || false;
-               options.multipleSep = options.multipleSep || ", ";
+               options.multipleSep = options.multipleSep || ",";
                options.source = source;
                options.delay = options.delay || 100;
                options.resultsClass = options.resultsClass || 'ac_results';
                options.source = source;
                options.delay = options.delay || 100;
                options.resultsClass = options.resultsClass || 'ac_results';
index ec167ca47c586226a96af37a57cd66d904fd1312..85484ef42b9eb3307b17556a88be1b6691e497fd 100644 (file)
@@ -1,4 +1,4 @@
-/* global tinymce, MediaElementPlayer, WPPlaylistView */
+/* global tinymce */
 /**
  * Note: this API is "experimental" meaning that it will probably change
  * in the next few releases based on feedback from 3.9.0.
 /**
  * Note: this API is "experimental" meaning that it will probably change
  * in the next few releases based on feedback from 3.9.0.
@@ -8,7 +8,9 @@
 // Ensure the global `wp` object exists.
 window.wp = window.wp || {};
 
 // Ensure the global `wp` object exists.
 window.wp = window.wp || {};
 
-(function($){
+( function( $ ) {
+       'use strict';
+
        var views = {},
                instances = {},
                media = wp.media,
        var views = {},
                instances = {},
                media = wp.media,
@@ -22,34 +24,237 @@ window.wp = window.wp || {};
         *
         * A Backbone-like View constructor intended for use when rendering a TinyMCE View. The main difference is
         * that the TinyMCE View is not tied to a particular DOM node.
         *
         * A Backbone-like View constructor intended for use when rendering a TinyMCE View. The main difference is
         * that the TinyMCE View is not tied to a particular DOM node.
+        *
+        * @param {Object} [options={}]
         */
        wp.mce.View = function( options ) {
         */
        wp.mce.View = function( options ) {
-               options || (options = {});
-               _.extend(this, _.pick(options, viewOptions));
-               this.initialize.apply(this, arguments);
+               options = options || {};
+               this.type = options.type;
+               _.extend( this, _.pick( options, viewOptions ) );
+               this.initialize.apply( this, arguments );
        };
 
        _.extend( wp.mce.View.prototype, {
                initialize: function() {},
        };
 
        _.extend( wp.mce.View.prototype, {
                initialize: function() {},
-               getHtml: function() {},
-               render: function() {
-                       var html = this.getHtml();
-                       // Search all tinymce editor instances and update the placeholders
+               getHtml: function() {
+                       return '';
+               },
+               loadingPlaceholder: function() {
+                       return '' +
+                               '<div class="loading-placeholder">' +
+                                       '<div class="dashicons dashicons-admin-media"></div>' +
+                                       '<div class="wpview-loading"><ins></ins></div>' +
+                               '</div>';
+               },
+               render: function( force ) {
+                       if ( force || ! this.rendered() ) {
+                               this.unbind();
+
+                               this.setContent(
+                                       '<p class="wpview-selection-before">\u00a0</p>' +
+                                       '<div class="wpview-body" contenteditable="false">' +
+                                               '<div class="toolbar">' +
+                                                       ( _.isFunction( views[ this.type ].edit ) ? '<div class="dashicons dashicons-edit edit"></div>' : '' ) +
+                                                       '<div class="dashicons dashicons-no-alt remove"></div>' +
+                                               '</div>' +
+                                               '<div class="wpview-content wpview-type-' + this.type + '">' +
+                                                       ( this.getHtml() || this.loadingPlaceholder() ) +
+                                               '</div>' +
+                                               ( this.overlay ? '<div class="wpview-overlay"></div>' : '' ) +
+                                       '</div>' +
+                                       '<p class="wpview-selection-after">\u00a0</p>',
+                                       'wrap'
+                               );
+
+                               $( this ).trigger( 'ready' );
+
+                               this.rendered( true );
+                       }
+               },
+               unbind: function() {},
+               getEditors: function( callback ) {
+                       var editors = [];
+
                        _.each( tinymce.editors, function( editor ) {
                        _.each( tinymce.editors, function( editor ) {
-                               var doc, self = this;
                                if ( editor.plugins.wpview ) {
                                if ( editor.plugins.wpview ) {
-                                       doc = editor.getDoc();
-                                       $( doc ).find( '[data-wpview-text="' + this.encodedText + '"]' ).each(function (i, elem) {
-                                               var node = $( elem );
-                                               // The <ins> is used to mark the end of the wrapper div. Needed when comparing
-                                               // the content as string for preventing extra undo levels.
-                                               node.html( html ).append( '<ins data-wpview-end="1"></ins>' );
-                                               $( self ).trigger( 'ready', elem );
-                                       });
+                                       if ( callback ) {
+                                               callback( editor );
+                                       }
+
+                                       editors.push( editor );
                                }
                        }, this );
                                }
                        }, this );
+
+                       return editors;
                },
                },
-               unbind: function() {}
+               getNodes: function( callback ) {
+                       var nodes = [],
+                               self = this;
+
+                       this.getEditors( function( editor ) {
+                               $( editor.getBody() )
+                               .find( '[data-wpview-text="' + self.encodedText + '"]' )
+                               .each( function ( i, node ) {
+                                       if ( callback ) {
+                                               callback( editor, node, $( node ).find( '.wpview-content' ).get( 0 ) );
+                                       }
+
+                                       nodes.push( node );
+                               } );
+                       } );
+
+                       return nodes;
+               },
+               setContent: function( html, option ) {
+                       this.getNodes( function ( editor, node, content ) {
+                               var el = ( option === 'wrap' || option === 'replace' ) ? node : content,
+                                       insert = html;
+
+                               if ( _.isString( insert ) ) {
+                                       insert = editor.dom.createFragment( insert );
+                               }
+
+                               if ( option === 'replace' ) {
+                                       editor.dom.replace( insert, el );
+                               } else {
+                                       el.innerHTML = '';
+                                       el.appendChild( insert );
+                               }
+                       } );
+               },
+               /* jshint scripturl: true */
+               setIframes: function ( head, body ) {
+                       var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
+                               importStyles = this.type === 'video' || this.type === 'audio' || this.type === 'playlist';
+
+                       if ( head || body.indexOf( '<script' ) !== -1 ) {
+                               this.getNodes( function ( editor, node, content ) {
+                                       var dom = editor.dom,
+                                               styles = '',
+                                               bodyClasses = editor.getBody().className || '',
+                                               iframe, iframeDoc, i, resize;
+
+                                       content.innerHTML = '';
+                                       head = head || '';
+
+                                       if ( importStyles ) {
+                                               if ( ! wp.mce.views.sandboxStyles ) {
+                                                       tinymce.each( dom.$( 'link[rel="stylesheet"]', editor.getDoc().head ), function( link ) {
+                                                               if ( link.href && link.href.indexOf( 'skins/lightgray/content.min.css' ) === -1 &&
+                                                                       link.href.indexOf( 'skins/wordpress/wp-content.css' ) === -1 ) {
+
+                                                                       styles += dom.getOuterHTML( link ) + '\n';
+                                                               }
+                                                       });
+
+                                                       wp.mce.views.sandboxStyles = styles;
+                                               } else {
+                                                       styles = wp.mce.views.sandboxStyles;
+                                               }
+                                       }
+
+                                       // Seems Firefox needs a bit of time to insert/set the view nodes, or the iframe will fail
+                                       // especially when switching Text => Visual.
+                                       setTimeout( function() {
+                                               iframe = dom.add( content, 'iframe', {
+                                                       src: tinymce.Env.ie ? 'javascript:""' : '',
+                                                       frameBorder: '0',
+                                                       allowTransparency: 'true',
+                                                       scrolling: 'no',
+                                                       'class': 'wpview-sandbox',
+                                                       style: {
+                                                               width: '100%',
+                                                               display: 'block'
+                                                       }
+                                               } );
+
+                                               iframeDoc = iframe.contentWindow.document;
+
+                                               iframeDoc.open();
+                                               iframeDoc.write(
+                                                       '<!DOCTYPE html>' +
+                                                       '<html>' +
+                                                               '<head>' +
+                                                                       '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' +
+                                                                       head +
+                                                                       styles +
+                                                                       '<style>' +
+                                                                               'html {' +
+                                                                                       'background: transparent;' +
+                                                                                       'padding: 0;' +
+                                                                                       'margin: 0;' +
+                                                                               '}' +
+                                                                               'body#wpview-iframe-sandbox {' +
+                                                                                       'background: transparent;' +
+                                                                                       'padding: 1px 0 !important;' +
+                                                                                       'margin: -1px 0 0 !important;' +
+                                                                               '}' +
+                                                                               'body#wpview-iframe-sandbox:before,' +
+                                                                               'body#wpview-iframe-sandbox:after {' +
+                                                                                       'display: none;' +
+                                                                                       'content: "";' +
+                                                                               '}' +
+                                                                       '</style>' +
+                                                               '</head>' +
+                                                               '<body id="wpview-iframe-sandbox" class="' + bodyClasses + '">' +
+                                                                       body +
+                                                               '</body>' +
+                                                       '</html>'
+                                               );
+                                               iframeDoc.close();
+
+                                               resize = function() {
+                                                       // Make sure the iframe still exists.
+                                                       iframe.contentWindow && $( iframe ).height( $( iframeDoc.body ).height() );
+                                               };
+
+                                               if ( MutationObserver ) {
+                                                       new MutationObserver( _.debounce( function() {
+                                                               resize();
+                                                       }, 100 ) )
+                                                       .observe( iframeDoc.body, {
+                                                               attributes: true,
+                                                               childList: true,
+                                                               subtree: true
+                                                       } );
+                                               } else {
+                                                       for ( i = 1; i < 6; i++ ) {
+                                                               setTimeout( resize, i * 700 );
+                                                       }
+                                               }
+
+                                               if ( importStyles ) {
+                                                       editor.on( 'wp-body-class-change', function() {
+                                                               iframeDoc.body.className = editor.getBody().className;
+                                                       });
+                                               }
+                                       }, 50 );
+                               });
+                       } else {
+                               this.setContent( body );
+                       }
+               },
+               setError: function( message, dashicon ) {
+                       this.setContent(
+                               '<div class="wpview-error">' +
+                                       '<div class="dashicons dashicons-' + ( dashicon ? dashicon : 'no' ) + '"></div>' +
+                                       '<p>' + message + '</p>' +
+                               '</div>'
+                       );
+               },
+               rendered: function( value ) {
+                       var notRendered;
+
+                       this.getNodes( function( editor, node ) {
+                               if ( value != null ) {
+                                       $( node ).data( 'rendered', value === true );
+                               } else {
+                                       notRendered = notRendered || ! $( node ).data( 'rendered' );
+                               }
+                       } );
+
+                       return ! notRendered;
+               }
        } );
 
        // take advantage of the Backbone extend method
        } );
 
        // take advantage of the Backbone extend method
@@ -74,6 +279,29 @@ window.wp = window.wp || {};
                 *
                 */
                register: function( type, constructor ) {
                 *
                 */
                register: function( type, constructor ) {
+                       var defaultConstructor = {
+                                       type: type,
+                                       View: {},
+                                       toView: function( content ) {
+                                               var match = wp.shortcode.next( this.type, content );
+
+                                               if ( ! match ) {
+                                                       return;
+                                               }
+
+                                               return {
+                                                       index: match.index,
+                                                       content: match.content,
+                                                       options: {
+                                                               shortcode: match.shortcode
+                                                       }
+                                               };
+                                       }
+                               };
+
+                       constructor = _.defaults( constructor, defaultConstructor );
+                       constructor.View = wp.mce.View.extend( constructor.View );
+
                        views[ type ] = constructor;
                },
 
                        views[ type ] = constructor;
                },
 
@@ -81,6 +309,8 @@ window.wp = window.wp || {};
                 * wp.mce.views.get( id )
                 *
                 * Returns a TinyMCE view constructor.
                 * wp.mce.views.get( id )
                 *
                 * Returns a TinyMCE view constructor.
+                *
+                * @param type
                 */
                get: function( type ) {
                        return views[ type ];
                 */
                get: function( type ) {
                        return views[ type ];
@@ -90,6 +320,8 @@ window.wp = window.wp || {};
                 * wp.mce.views.unregister( type )
                 *
                 * Unregisters a TinyMCE view.
                 * wp.mce.views.unregister( type )
                 *
                 * Unregisters a TinyMCE view.
+                *
+                * @param type
                 */
                unregister: function( type ) {
                        delete views[ type ];
                 */
                unregister: function( type ) {
                        delete views[ type ];
@@ -112,6 +344,7 @@ window.wp = window.wp || {};
                 * matches with wrapper elements, and creates a new instance for
                 * every match, which triggers the related data to be fetched.
                 *
                 * matches with wrapper elements, and creates a new instance for
                 * every match, which triggers the related data to be fetched.
                 *
+                * @param content
                 */
                toViews: function( content ) {
                        var pieces = [ { content: content } ],
                 */
                toViews: function( content ) {
                        var pieces = [ { content: content } ],
@@ -180,6 +413,7 @@ window.wp = window.wp || {};
 
                        if ( ! wp.mce.views.getInstance( encodedText ) ) {
                                viewOptions = options;
 
                        if ( ! wp.mce.views.getInstance( encodedText ) ) {
                                viewOptions = options;
+                               viewOptions.type = viewType;
                                viewOptions.encodedText = encodedText;
                                instance = new view.View( viewOptions );
                                instances[ encodedText ] = instance;
                                viewOptions.encodedText = encodedText;
                                instance = new view.View( viewOptions );
                                instances[ encodedText ] = instance;
@@ -189,10 +423,9 @@ window.wp = window.wp || {};
                                tag: 'div',
 
                                attrs: {
                                tag: 'div',
 
                                attrs: {
-                                       'class': 'wpview-wrap wpview-type-' + viewType,
+                                       'class': 'wpview-wrap',
                                        'data-wpview-text': encodedText,
                                        'data-wpview-text': encodedText,
-                                       'data-wpview-type': viewType,
-                                       'contenteditable': 'false'
+                                       'data-wpview-type': viewType
                                },
 
                                content: '\u00a0'
                                },
 
                                content: '\u00a0'
@@ -215,12 +448,13 @@ window.wp = window.wp || {};
                        if ( ! instance ) {
                                result = view.toView( text );
                                viewOptions = result.options;
                        if ( ! instance ) {
                                result = view.toView( text );
                                viewOptions = result.options;
+                               viewOptions.type = view.type;
                                viewOptions.encodedText = encodedText;
                                instance = new view.View( viewOptions );
                                instances[ encodedText ] = instance;
                        }
 
                                viewOptions.encodedText = encodedText;
                                instance = new view.View( viewOptions );
                                instances[ encodedText ] = instance;
                        }
 
-                       wp.mce.views.render();
+                       instance.render();
                },
 
                getInstance: function( encodedText ) {
                },
 
                getInstance: function( encodedText ) {
@@ -236,9 +470,9 @@ window.wp = window.wp || {};
                 * To generate wrapper elements, pass your content through
                 * `wp.mce.view.toViews( content )`.
                 */
                 * To generate wrapper elements, pass your content through
                 * `wp.mce.view.toViews( content )`.
                 */
-               render: function() {
+               render: function( force ) {
                        _.each( instances, function( instance ) {
                        _.each( instances, function( instance ) {
-                               instance.render();
+                               instance.render( force );
                        } );
                },
 
                        } );
                },
 
@@ -252,26 +486,9 @@ window.wp = window.wp || {};
                }
        };
 
                }
        };
 
-       wp.mce.gallery = {
-               shortcode: 'gallery',
-               toView:  function( content ) {
-                       var match = wp.shortcode.next( this.shortcode, content );
-
-                       if ( ! match ) {
-                               return;
-                       }
-
-                       return {
-                               index:   match.index,
-                               content: match.content,
-                               options: {
-                                       shortcode: match.shortcode
-                               }
-                       };
-               },
-               View: wp.mce.View.extend({
-                       className: 'editor-gallery',
-                       template:  media.template('editor-gallery'),
+       wp.mce.views.register( 'gallery', {
+               View: {
+                       template: media.template( 'editor-gallery' ),
 
                        // The fallback post ID to use as a parent for galleries that don't
                        // specify the `ids` or `include` parameters.
 
                        // The fallback post ID to use as a parent for galleries that don't
                        // specify the `ids` or `include` parameters.
@@ -285,8 +502,12 @@ window.wp = window.wp || {};
                        },
 
                        fetch: function() {
                        },
 
                        fetch: function() {
+                               var self = this;
+
                                this.attachments = wp.media.gallery.attachments( this.shortcode, this.postID );
                                this.attachments = wp.media.gallery.attachments( this.shortcode, this.postID );
-                               this.dfd = this.attachments.more().done( _.bind( this.render, this ) );
+                               this.dfd = this.attachments.more().done( function() {
+                                       self.render( true );
+                               } );
                        },
 
                        getHtml: function() {
                        },
 
                        getHtml: function() {
@@ -296,7 +517,7 @@ window.wp = window.wp || {};
 
                                // Don't render errors while still fetching attachments
                                if ( this.dfd && 'pending' === this.dfd.state() && ! this.attachments.length ) {
 
                                // Don't render errors while still fetching attachments
                                if ( this.dfd && 'pending' === this.dfd.state() && ! this.attachments.length ) {
-                                       return;
+                                       return '';
                                }
 
                                if ( this.attachments.length ) {
                                }
 
                                if ( this.attachments.length ) {
@@ -315,13 +536,12 @@ window.wp = window.wp || {};
 
                                options = {
                                        attachments: attachments,
 
                                options = {
                                        attachments: attachments,
-                                       columns: attrs.columns ? parseInt( attrs.columns, 10 ) : 3
+                                       columns: attrs.columns ? parseInt( attrs.columns, 10 ) : wp.media.galleryDefaults.columns
                                };
 
                                return this.template( options );
                                };
 
                                return this.template( options );
-
                        }
                        }
-               }),
+               },
 
                edit: function( node ) {
                        var gallery = wp.media.gallery,
 
                edit: function( node ) {
                        var gallery = wp.media.gallery,
@@ -335,45 +555,122 @@ window.wp = window.wp || {};
                                var shortcode = gallery.shortcode( selection ).string();
                                $( node ).attr( 'data-wpview-text', window.encodeURIComponent( shortcode ) );
                                wp.mce.views.refreshView( self, shortcode );
                                var shortcode = gallery.shortcode( selection ).string();
                                $( node ).attr( 'data-wpview-text', window.encodeURIComponent( shortcode ) );
                                wp.mce.views.refreshView( self, shortcode );
+                       });
+
+                       frame.on( 'close', function() {
                                frame.detach();
                        });
                }
                                frame.detach();
                        });
                }
-
-       };
-       wp.mce.views.register( 'gallery', wp.mce.gallery );
-
-       /**
-        * Tiny MCE Views for Audio / Video
-        *
-        */
+       } );
 
        /**
 
        /**
-        * These are base methods that are shared by each shortcode's MCE controller
+        * These are base methods that are shared by the audio and video shortcode's MCE controller.
         *
         * @mixin
         */
         *
         * @mixin
         */
-       wp.mce.media = {
-               loaded: false,
-               /**
-                * @global wp.shortcode
-                *
-                * @param {string} content
-                * @returns {Object}
-                */
-               toView:  function( content ) {
-                       var match = wp.shortcode.next( this.shortcode, content );
+       wp.mce.av = {
+               View: {
+                       overlay: true,
 
 
-                       if ( ! match ) {
-                               return;
-                       }
+                       action: 'parse-media-shortcode',
 
 
-                       return {
-                               index:   match.index,
-                               content: match.content,
-                               options: {
-                                       shortcode: match.shortcode
+                       initialize: function( options ) {
+                               var self = this;
+
+                               this.shortcode = options.shortcode;
+
+                               _.bindAll( this, 'setIframes', 'setNodes', 'fetch', 'stopPlayers' );
+                               $( this ).on( 'ready', this.setNodes );
+
+                               $( document ).on( 'media:edit', this.stopPlayers );
+
+                               this.fetch();
+
+                               this.getEditors( function( editor ) {
+                                       editor.on( 'hide', self.stopPlayers );
+                               });
+                       },
+
+                       setNodes: function () {
+                               if ( this.parsed ) {
+                                       this.setIframes( this.parsed.head, this.parsed.body );
+                               } else {
+                                       this.fail();
                                }
                                }
-                       };
+                       },
+
+                       fetch: function () {
+                               var self = this;
+
+                               wp.ajax.send( this.action, {
+                                       data: {
+                                               post_ID: $( '#post_ID' ).val() || 0,
+                                               type: this.shortcode.tag,
+                                               shortcode: this.shortcode.string()
+                                       }
+                               } )
+                               .done( function( response ) {
+                                       if ( response ) {
+                                               self.parsed = response;
+                                               self.setIframes( response.head, response.body );
+                                       } else {
+                                               self.fail( true );
+                                       }
+                               } )
+                               .fail( function( response ) {
+                                       self.fail( response || true );
+                               } );
+                       },
+
+                       fail: function( error ) {
+                               if ( ! this.error ) {
+                                       if ( error ) {
+                                               this.error = error;
+                                       } else {
+                                               return;
+                                       }
+                               }
+
+                               if ( this.error.message ) {
+                                       if ( ( this.error.type === 'not-embeddable' && this.type === 'embed' ) || this.error.type === 'not-ssl' ||
+                                               this.error.type === 'no-items' ) {
+
+                                               this.setError( this.error.message, 'admin-media' );
+                                       } else {
+                                               this.setContent( '<p>' + this.original + '</p>', 'replace' );
+                                       }
+                               } else if ( this.error.statusText ) {
+                                       this.setError( this.error.statusText, 'admin-media' );
+                               } else if ( this.original ) {
+                                       this.setContent( '<p>' + this.original + '</p>', 'replace' );
+                               }
+                       },
+
+                       stopPlayers: function( remove ) {
+                               var rem = remove === 'remove';
+
+                               this.getNodes( function( editor, node, content ) {
+                                       var p, win,
+                                               iframe = $( 'iframe.wpview-sandbox', content ).get(0);
+
+                                       if ( iframe && ( win = iframe.contentWindow ) && win.mejs ) {
+                                               // Sometimes ME.js may show a "Download File" placeholder and player.remove() doesn't exist there.
+                                               try {
+                                                       for ( p in win.mejs.players ) {
+                                                               win.mejs.players[p].pause();
+
+                                                               if ( rem ) {
+                                                                       win.mejs.players[p].remove();
+                                                               }
+                                                       }
+                                               } catch( er ) {}
+                                       }
+                               });
+                       },
+
+                       unbind: function() {
+                               this.stopPlayers( 'remove' );
+                       }
                },
 
                /**
                },
 
                /**
@@ -387,11 +684,11 @@ window.wp = window.wp || {};
                 * @param {HTMLElement} node
                 */
                edit: function( node ) {
                 * @param {HTMLElement} node
                 */
                edit: function( node ) {
-                       var media = wp.media[ this.shortcode ],
+                       var media = wp.media[ this.type ],
                                self = this,
                                frame, data, callback;
 
                                self = this,
                                frame, data, callback;
 
-                       wp.media.mixin.pauseAllPlayers();
+                       $( document ).trigger( 'media:edit' );
 
                        data = window.decodeURIComponent( $( node ).attr('data-wpview-text') );
                        frame = media.edit( data );
 
                        data = window.decodeURIComponent( $( node ).attr('data-wpview-text') );
                        frame = media.edit( data );
@@ -400,7 +697,7 @@ window.wp = window.wp || {};
                        } );
 
                        callback = function( selection ) {
                        } );
 
                        callback = function( selection ) {
-                               var shortcode = wp.media[ self.shortcode ].shortcode( selection ).string();
+                               var shortcode = wp.media[ self.type ].shortcode( selection ).string();
                                $( node ).attr( 'data-wpview-text', window.encodeURIComponent( shortcode ) );
                                wp.mce.views.refreshView( self, shortcode );
                                frame.detach();
                                $( node ).attr( 'data-wpview-text', window.encodeURIComponent( shortcode ) );
                                wp.mce.views.refreshView( self, shortcode );
                                frame.detach();
@@ -416,278 +713,113 @@ window.wp = window.wp || {};
                }
        };
 
                }
        };
 
-       /**
-        * Base View class for audio and video shortcodes
-        *
-        * @constructor
-        * @augments wp.mce.View
-        * @mixes wp.media.mixin
-        */
-       wp.mce.media.View = wp.mce.View.extend({
-               initialize: function( options ) {
-                       this.players = [];
-                       this.shortcode = options.shortcode;
-                       _.bindAll( this, 'setPlayer' );
-                       $(this).on( 'ready', this.setPlayer );
-               },
-
-               /**
-                * Creates the player instance for the current node
-                *
-                * @global MediaElementPlayer
-                * @global _wpmejsSettings
-                *
-                * @param {Event} e
-                * @param {HTMLElement} node
-                */
-               setPlayer: function(e, node) {
-                       // if the ready event fires on an empty node
-                       if ( ! node ) {
-                               return;
-                       }
-
-                       var self = this,
-                               media,
-                               firefox = this.ua.is( 'ff' ),
-                               className = '.wp-' +  this.shortcode.tag + '-shortcode';
-
-                       media = $( node ).find( className );
-
-                       if ( ! this.isCompatible( media ) ) {
-                               media.closest( '.wpview-wrap' ).addClass( 'wont-play' );
-                               if ( ! media.parent().hasClass( 'wpview-wrap' ) ) {
-                                       media.parent().replaceWith( media );
-                               }
-                               media.replaceWith( '<p>' + media.find( 'source' ).eq(0).prop( 'src' ) + '</p>' );
-                               return;
-                       } else {
-                               media.closest( '.wpview-wrap' ).removeClass( 'wont-play' );
-                               if ( firefox ) {
-                                       media.prop( 'preload', 'metadata' );
-                               } else {
-                                       media.prop( 'preload', 'none' );
-                               }
-                       }
-
-                       media = wp.media.view.MediaDetails.prepareSrc( media.get(0) );
-
-                       setTimeout( function() {
-                               wp.mce.media.loaded = true;
-                               self.players.push( new MediaElementPlayer( media, self.mejsSettings ) );
-                       }, wp.mce.media.loaded ? 10 : 500 );
-               },
-
-               /**
-                * Pass data to the View's Underscore template and return the compiled output
-                *
-                * @returns {string}
-                */
-               getHtml: function() {
-                       var attrs = this.shortcode.attrs.named;
-                       attrs.content = this.shortcode.content;
-
-                       return this.template({ model: _.defaults(
-                               attrs,
-                               wp.media[ this.shortcode.tag ].defaults )
-                       });
-               },
-
-               unbind: function() {
-                       this.unsetPlayers();
-               }
-       });
-       _.extend( wp.mce.media.View.prototype, wp.media.mixin );
-
        /**
         * TinyMCE handler for the video shortcode
         *
        /**
         * TinyMCE handler for the video shortcode
         *
-        * @mixes wp.mce.media
+        * @mixes wp.mce.av
         */
         */
-       wp.mce.video = _.extend( {}, wp.mce.media, {
-               shortcode: 'video',
-               state: 'video-details',
-               View: wp.mce.media.View.extend({
-                       className: 'editor-video',
-                       template:  media.template('editor-video')
-               })
-       } );
-       wp.mce.views.register( 'video', wp.mce.video );
+       wp.mce.views.register( 'video', _.extend( {}, wp.mce.av, {
+               state: 'video-details'
+       } ) );
 
        /**
         * TinyMCE handler for the audio shortcode
         *
 
        /**
         * TinyMCE handler for the audio shortcode
         *
-        * @mixes wp.mce.media
+        * @mixes wp.mce.av
         */
         */
-       wp.mce.audio = _.extend( {}, wp.mce.media, {
-               shortcode: 'audio',
-               state: 'audio-details',
-               View: wp.mce.media.View.extend({
-                       className: 'editor-audio',
-                       template:  media.template('editor-audio')
-               })
-       } );
-       wp.mce.views.register( 'audio', wp.mce.audio );
+       wp.mce.views.register( 'audio', _.extend( {}, wp.mce.av, {
+               state: 'audio-details'
+       } ) );
 
        /**
 
        /**
-        * Base View class for playlist shortcodes
+        * TinyMCE handler for the playlist shortcode
         *
         *
-        * @constructor
-        * @augments wp.mce.View
-        * @mixes wp.media.mixin
+        * @mixes wp.mce.av
         */
         */
-       wp.mce.media.PlaylistView = wp.mce.View.extend({
-               className: 'editor-playlist',
-               template:  media.template('editor-playlist'),
-
-               initialize: function( options ) {
-                       this.players = [];
-                       this.data = {};
-                       this.attachments = [];
-                       this.shortcode = options.shortcode;
-                       this.fetch();
-               },
-
-               /**
-                * Asynchronously fetch the shortcode's attachments
-                */
-               fetch: function() {
-                       this.attachments = wp.media.playlist.attachments( this.shortcode );
-                       this.dfd = this.attachments.more().done( _.bind( this.render, this ) );
-               },
-
-               /**
-                * Get the HTML for the view (which also set's the data), replace the
-                *   current HTML, and then invoke the WPPlaylistView instance to render
-                *   the playlist in the editor
-                *
-                * @global WPPlaylistView
-                * @global tinymce.editors
-                */
-               render: function() {
-                       var html = this.getHtml(), self = this;
-
-                       _.each( tinymce.editors, function( editor ) {
-                               var doc;
-                               if ( editor.plugins.wpview ) {
-                                       doc = editor.getDoc();
-                                       $( doc ).find( '[data-wpview-text="' + this.encodedText + '"]' ).each(function (i, elem) {
-                                               var node = $( elem );
-
-                                               // The <ins> is used to mark the end of the wrapper div. Needed when comparing
-                                               // the content as string for preventing extra undo levels.
-                                               node.html( html ).append( '<ins data-wpview-end="1"></ins>' );
+       wp.mce.views.register( 'playlist', _.extend( {}, wp.mce.av, {
+               state: [ 'playlist-edit', 'video-playlist-edit' ]
+       } ) );
 
 
-                                               if ( ! self.data.tracks ) {
-                                                       return;
-                                               }
+       /**
+        * TinyMCE handler for the embed shortcode
+        */
+       wp.mce.embedMixin = {
+               View: _.extend( {}, wp.mce.av.View, {
+                       overlay: true,
+                       action: 'parse-embed',
+                       initialize: function( options ) {
+                               this.content = options.content;
+                               this.original = options.url || options.shortcode.string();
 
 
-                                               self.players.push( new WPPlaylistView({
-                                                       el: $( elem ).find( '.wp-playlist' ).get(0),
-                                                       metadata: self.data
-                                               }).player );
-                                       });
+                               if ( options.url ) {
+                                       this.shortcode = media.embed.shortcode( {
+                                               url: options.url
+                                       } );
+                               } else {
+                                       this.shortcode = options.shortcode;
                                }
                                }
-                       }, this );
-               },
-
-               /**
-                * Set the data that will be used to compile the Underscore template,
-                *  compile the template, and then return it.
-                *
-                * @returns {string}
-                */
-               getHtml: function() {
-                       var data = this.shortcode.attrs.named,
-                               model = wp.media.playlist,
-                               options,
-                               attachments,
-                               tracks = [];
-
-                       // Don't render errors while still fetching attachments
-                       if ( this.dfd && 'pending' === this.dfd.state() && ! this.attachments.length ) {
-                               return;
-                       }
-
-                       _.each( model.defaults, function( value, key ) {
-                               data[ key ] = model.coerce( data, key );
-                       });
 
 
-                       options = {
-                               type: data.type,
-                               style: data.style,
-                               tracklist: data.tracklist,
-                               tracknumbers: data.tracknumbers,
-                               images: data.images,
-                               artists: data.artists
-                       };
+                               _.bindAll( this, 'setIframes', 'setNodes', 'fetch' );
+                               $( this ).on( 'ready', this.setNodes );
 
 
-                       if ( ! this.attachments.length ) {
-                               return this.template( options );
+                               this.fetch();
                        }
                        }
+               } ),
+               edit: function( node ) {
+                       var embed = media.embed,
+                               self = this,
+                               frame,
+                               data,
+                               isURL = 'embedURL' === this.type;
 
 
-                       attachments = this.attachments.toJSON();
+                       $( document ).trigger( 'media:edit' );
 
 
-                       _.each( attachments, function( attachment ) {
-                               var size = {}, resize = {}, track = {
-                                       src : attachment.url,
-                                       type : attachment.mime,
-                                       title : attachment.title,
-                                       caption : attachment.caption,
-                                       description : attachment.description,
-                                       meta : attachment.meta
-                               };
+                       data = window.decodeURIComponent( $( node ).attr('data-wpview-text') );
+                       frame = embed.edit( data, isURL );
+                       frame.on( 'close', function() {
+                               frame.detach();
+                       } );
+                       frame.state( 'embed' ).props.on( 'change:url', function (model, url) {
+                               if ( ! url ) {
+                                       return;
+                               }
+                               frame.state( 'embed' ).metadata = model.toJSON();
+                       } );
+                       frame.state( 'embed' ).on( 'select', function() {
+                               var shortcode;
 
 
-                               if ( 'video' === data.type ) {
-                                       size.width = attachment.width;
-                                       size.height = attachment.height;
-                                       if ( media.view.settings.contentWidth ) {
-                                               resize.width = media.view.settings.contentWidth - 22;
-                                               resize.height = Math.ceil( ( size.height * resize.width ) / size.width );
-                                               if ( ! options.width ) {
-                                                       options.width = resize.width;
-                                                       options.height = resize.height;
-                                               }
-                                       } else {
-                                               if ( ! options.width ) {
-                                                       options.width = attachment.width;
-                                                       options.height = attachment.height;
-                                               }
-                                       }
-                                       track.dimensions = {
-                                               original : size,
-                                               resized : _.isEmpty( resize ) ? size : resize
-                                       };
+                               if ( isURL ) {
+                                       shortcode = frame.state( 'embed' ).metadata.url;
                                } else {
                                } else {
-                                       options.width = 400;
+                                       shortcode = embed.shortcode( frame.state( 'embed' ).metadata ).string();
                                }
                                }
-
-                               track.image = attachment.image;
-                               track.thumb = attachment.thumb;
-
-                               tracks.push( track );
+                               $( node ).attr( 'data-wpview-text', window.encodeURIComponent( shortcode ) );
+                               wp.mce.views.refreshView( self, shortcode );
+                               frame.detach();
                        } );
                        } );
+                       frame.open();
+               }
+       };
 
 
-                       options.tracks = tracks;
-                       this.data = options;
+       wp.mce.views.register( 'embed', _.extend( {}, wp.mce.embedMixin ) );
 
 
-                       return this.template( options );
-               },
+       wp.mce.views.register( 'embedURL', _.extend( {}, wp.mce.embedMixin, {
+               toView: function( content ) {
+                       var re = /(?:^|<p>)(https?:\/\/[^\s"]+?)(?:<\/p>\s*|$)/gi,
+                               match = re.exec( tinymce.trim( content ) );
 
 
-               unbind: function() {
-                       this.unsetPlayers();
+                       if ( ! match ) {
+                               return;
+                       }
+
+                       return {
+                               index: match.index,
+                               content: match[0],
+                               options: {
+                                       url: match[1]
+                               }
+                       };
                }
                }
-       });
-       _.extend( wp.mce.media.PlaylistView.prototype, wp.media.mixin );
+       } ) );
 
 
-       /**
-        * TinyMCE handler for the playlist shortcode
-        *
-        * @mixes wp.mce.media
-        */
-       wp.mce.playlist = _.extend( {}, wp.mce.media, {
-               shortcode: 'playlist',
-               state: ['playlist-edit', 'video-playlist-edit'],
-               View: wp.mce.media.PlaylistView
-       } );
-       wp.mce.views.register( 'playlist', wp.mce.playlist );
 }(jQuery));
 }(jQuery));
index 147f2a3d0d3405527bb07727d1de3182cf257959..685d42f12b8a7710e7040f9f3a55605d515118be 100644 (file)
@@ -1 +1 @@
-window.wp=window.wp||{},function(a){var b={},c={},d=wp.media,e=["encodedText"];wp.mce=wp.mce||{},wp.mce.View=function(a){a||(a={}),_.extend(this,_.pick(a,e)),this.initialize.apply(this,arguments)},_.extend(wp.mce.View.prototype,{initialize:function(){},getHtml:function(){},render:function(){var b=this.getHtml();_.each(tinymce.editors,function(c){var d,e=this;c.plugins.wpview&&(d=c.getDoc(),a(d).find('[data-wpview-text="'+this.encodedText+'"]').each(function(c,d){var f=a(d);f.html(b).append('<ins data-wpview-end="1"></ins>'),a(e).trigger("ready",d)}))},this)},unbind:function(){}}),wp.mce.View.extend=Backbone.View.extend,wp.mce.views={register:function(a,c){b[a]=c},get:function(a){return b[a]},unregister:function(a){delete b[a]},unbind:function(){_.each(c,function(a){a.unbind()})},toViews:function(a){var c,d=[{content:a}];return _.each(b,function(a,b){c=d.slice(),d=[],_.each(c,function(c){var e,f=c.content;if(c.processed)return void d.push(c);for(;f&&(e=a.toView(f));)e.index&&d.push({content:f.substring(0,e.index)}),d.push({content:wp.mce.views.toView(b,e.content,e.options),processed:!0}),f=f.slice(e.index+e.content.length);f&&d.push({content:f})})}),_.pluck(d,"content").join("")},toView:function(a,b,d){var e,f,g=wp.mce.views.get(a),h=window.encodeURIComponent(b);return g?(wp.mce.views.getInstance(h)||(f=d,f.encodedText=h,e=new g.View(f),c[h]=e),wp.html.string({tag:"div",attrs:{"class":"wpview-wrap wpview-type-"+a,"data-wpview-text":h,"data-wpview-type":a,contenteditable:"false"},content:" "})):b},refreshView:function(a,b){var d,e,f,g=window.encodeURIComponent(b);f=wp.mce.views.getInstance(g),f||(e=a.toView(b),d=e.options,d.encodedText=g,f=new a.View(d),c[g]=f),wp.mce.views.render()},getInstance:function(a){return c[a]},render:function(){_.each(c,function(a){a.render()})},edit:function(b){var c=a(b).data("wpview-type"),d=wp.mce.views.get(c);d&&d.edit(b)}},wp.mce.gallery={shortcode:"gallery",toView:function(a){var b=wp.shortcode.next(this.shortcode,a);if(b)return{index:b.index,content:b.content,options:{shortcode:b.shortcode}}},View:wp.mce.View.extend({className:"editor-gallery",template:d.template("editor-gallery"),postID:a("#post_ID").val(),initialize:function(a){this.shortcode=a.shortcode,this.fetch()},fetch:function(){this.attachments=wp.media.gallery.attachments(this.shortcode,this.postID),this.dfd=this.attachments.more().done(_.bind(this.render,this))},getHtml:function(){var a,b=this.shortcode.attrs.named,c=!1;if(!this.dfd||"pending"!==this.dfd.state()||this.attachments.length)return this.attachments.length&&(c=this.attachments.toJSON(),_.each(c,function(a){a.sizes&&(a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))})),a={attachments:c,columns:b.columns?parseInt(b.columns,10):3},this.template(a)}}),edit:function(b){var c,d,e=wp.media.gallery,f=this;d=window.decodeURIComponent(a(b).attr("data-wpview-text")),c=e.edit(d),c.state("gallery-edit").on("update",function(d){var g=e.shortcode(d).string();a(b).attr("data-wpview-text",window.encodeURIComponent(g)),wp.mce.views.refreshView(f,g),c.detach()})}},wp.mce.views.register("gallery",wp.mce.gallery),wp.mce.media={loaded:!1,toView:function(a){var b=wp.shortcode.next(this.shortcode,a);if(b)return{index:b.index,content:b.content,options:{shortcode:b.shortcode}}},edit:function(b){var c,d,e,f=wp.media[this.shortcode],g=this;wp.media.mixin.pauseAllPlayers(),d=window.decodeURIComponent(a(b).attr("data-wpview-text")),c=f.edit(d),c.on("close",function(){c.detach()}),e=function(d){var e=wp.media[g.shortcode].shortcode(d).string();a(b).attr("data-wpview-text",window.encodeURIComponent(e)),wp.mce.views.refreshView(g,e),c.detach()},_.isArray(g.state)?_.each(g.state,function(a){c.state(a).on("update",e)}):c.state(g.state).on("update",e),c.open()}},wp.mce.media.View=wp.mce.View.extend({initialize:function(b){this.players=[],this.shortcode=b.shortcode,_.bindAll(this,"setPlayer"),a(this).on("ready",this.setPlayer)},setPlayer:function(b,c){if(c){var d,e=this,f=this.ua.is("ff"),g=".wp-"+this.shortcode.tag+"-shortcode";if(d=a(c).find(g),!this.isCompatible(d))return d.closest(".wpview-wrap").addClass("wont-play"),d.parent().hasClass("wpview-wrap")||d.parent().replaceWith(d),void d.replaceWith("<p>"+d.find("source").eq(0).prop("src")+"</p>");d.closest(".wpview-wrap").removeClass("wont-play"),f?d.prop("preload","metadata"):d.prop("preload","none"),d=wp.media.view.MediaDetails.prepareSrc(d.get(0)),setTimeout(function(){wp.mce.media.loaded=!0,e.players.push(new MediaElementPlayer(d,e.mejsSettings))},wp.mce.media.loaded?10:500)}},getHtml:function(){var a=this.shortcode.attrs.named;return a.content=this.shortcode.content,this.template({model:_.defaults(a,wp.media[this.shortcode.tag].defaults)})},unbind:function(){this.unsetPlayers()}}),_.extend(wp.mce.media.View.prototype,wp.media.mixin),wp.mce.video=_.extend({},wp.mce.media,{shortcode:"video",state:"video-details",View:wp.mce.media.View.extend({className:"editor-video",template:d.template("editor-video")})}),wp.mce.views.register("video",wp.mce.video),wp.mce.audio=_.extend({},wp.mce.media,{shortcode:"audio",state:"audio-details",View:wp.mce.media.View.extend({className:"editor-audio",template:d.template("editor-audio")})}),wp.mce.views.register("audio",wp.mce.audio),wp.mce.media.PlaylistView=wp.mce.View.extend({className:"editor-playlist",template:d.template("editor-playlist"),initialize:function(a){this.players=[],this.data={},this.attachments=[],this.shortcode=a.shortcode,this.fetch()},fetch:function(){this.attachments=wp.media.playlist.attachments(this.shortcode),this.dfd=this.attachments.more().done(_.bind(this.render,this))},render:function(){var b=this.getHtml(),c=this;_.each(tinymce.editors,function(d){var e;d.plugins.wpview&&(e=d.getDoc(),a(e).find('[data-wpview-text="'+this.encodedText+'"]').each(function(d,e){var f=a(e);f.html(b).append('<ins data-wpview-end="1"></ins>'),c.data.tracks&&c.players.push(new WPPlaylistView({el:a(e).find(".wp-playlist").get(0),metadata:c.data}).player)}))},this)},getHtml:function(){var a,b,c=this.shortcode.attrs.named,e=wp.media.playlist,f=[];if(!this.dfd||"pending"!==this.dfd.state()||this.attachments.length)return _.each(e.defaults,function(a,b){c[b]=e.coerce(c,b)}),a={type:c.type,style:c.style,tracklist:c.tracklist,tracknumbers:c.tracknumbers,images:c.images,artists:c.artists},this.attachments.length?(b=this.attachments.toJSON(),_.each(b,function(b){var e={},g={},h={src:b.url,type:b.mime,title:b.title,caption:b.caption,description:b.description,meta:b.meta};"video"===c.type?(e.width=b.width,e.height=b.height,d.view.settings.contentWidth?(g.width=d.view.settings.contentWidth-22,g.height=Math.ceil(e.height*g.width/e.width),a.width||(a.width=g.width,a.height=g.height)):a.width||(a.width=b.width,a.height=b.height),h.dimensions={original:e,resized:_.isEmpty(g)?e:g}):a.width=400,h.image=b.image,h.thumb=b.thumb,f.push(h)}),a.tracks=f,this.data=a,this.template(a)):this.template(a)},unbind:function(){this.unsetPlayers()}}),_.extend(wp.mce.media.PlaylistView.prototype,wp.media.mixin),wp.mce.playlist=_.extend({},wp.mce.media,{shortcode:"playlist",state:["playlist-edit","video-playlist-edit"],View:wp.mce.media.PlaylistView}),wp.mce.views.register("playlist",wp.mce.playlist)}(jQuery);
\ No newline at end of file
+window.wp=window.wp||{},function(a){"use strict";var b={},c={},d=wp.media,e=["encodedText"];wp.mce=wp.mce||{},wp.mce.View=function(a){a=a||{},this.type=a.type,_.extend(this,_.pick(a,e)),this.initialize.apply(this,arguments)},_.extend(wp.mce.View.prototype,{initialize:function(){},getHtml:function(){return""},loadingPlaceholder:function(){return'<div class="loading-placeholder"><div class="dashicons dashicons-admin-media"></div><div class="wpview-loading"><ins></ins></div></div>'},render:function(c){(c||!this.rendered())&&(this.unbind(),this.setContent('<p class="wpview-selection-before"> </p><div class="wpview-body" contenteditable="false"><div class="toolbar">'+(_.isFunction(b[this.type].edit)?'<div class="dashicons dashicons-edit edit"></div>':"")+'<div class="dashicons dashicons-no-alt remove"></div></div><div class="wpview-content wpview-type-'+this.type+'">'+(this.getHtml()||this.loadingPlaceholder())+"</div>"+(this.overlay?'<div class="wpview-overlay"></div>':"")+'</div><p class="wpview-selection-after"> </p>',"wrap"),a(this).trigger("ready"),this.rendered(!0))},unbind:function(){},getEditors:function(a){var b=[];return _.each(tinymce.editors,function(c){c.plugins.wpview&&(a&&a(c),b.push(c))},this),b},getNodes:function(b){var c=[],d=this;return this.getEditors(function(e){a(e.getBody()).find('[data-wpview-text="'+d.encodedText+'"]').each(function(d,f){b&&b(e,f,a(f).find(".wpview-content").get(0)),c.push(f)})}),c},setContent:function(a,b){this.getNodes(function(c,d,e){var f="wrap"===b||"replace"===b?d:e,g=a;_.isString(g)&&(g=c.dom.createFragment(g)),"replace"===b?c.dom.replace(g,f):(f.innerHTML="",f.appendChild(g))})},setIframes:function(b,c){var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,e="video"===this.type||"audio"===this.type||"playlist"===this.type;b||-1!==c.indexOf("<script")?this.getNodes(function(f,g,h){var i,j,k,l,m=f.dom,n="",o=f.getBody().className||"";h.innerHTML="",b=b||"",e&&(wp.mce.views.sandboxStyles?n=wp.mce.views.sandboxStyles:(tinymce.each(m.$('link[rel="stylesheet"]',f.getDoc().head),function(a){a.href&&-1===a.href.indexOf("skins/lightgray/content.min.css")&&-1===a.href.indexOf("skins/wordpress/wp-content.css")&&(n+=m.getOuterHTML(a)+"\n")}),wp.mce.views.sandboxStyles=n)),setTimeout(function(){if(i=m.add(h,"iframe",{src:tinymce.Env.ie?'javascript:""':"",frameBorder:"0",allowTransparency:"true",scrolling:"no","class":"wpview-sandbox",style:{width:"100%",display:"block"}}),j=i.contentWindow.document,j.open(),j.write('<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'+b+n+'<style>html {background: transparent;padding: 0;margin: 0;}body#wpview-iframe-sandbox {background: transparent;padding: 1px 0 !important;margin: -1px 0 0 !important;}body#wpview-iframe-sandbox:before,body#wpview-iframe-sandbox:after {display: none;content: "";}</style></head><body id="wpview-iframe-sandbox" class="'+o+'">'+c+"</body></html>"),j.close(),l=function(){i.contentWindow&&a(i).height(a(j.body).height())},d)new d(_.debounce(function(){l()},100)).observe(j.body,{attributes:!0,childList:!0,subtree:!0});else for(k=1;6>k;k++)setTimeout(l,700*k);e&&f.on("wp-body-class-change",function(){j.body.className=f.getBody().className})},50)}):this.setContent(c)},setError:function(a,b){this.setContent('<div class="wpview-error"><div class="dashicons dashicons-'+(b?b:"no")+'"></div><p>'+a+"</p></div>")},rendered:function(b){var c;return this.getNodes(function(d,e){null!=b?a(e).data("rendered",b===!0):c=c||!a(e).data("rendered")}),!c}}),wp.mce.View.extend=Backbone.View.extend,wp.mce.views={register:function(a,c){var d={type:a,View:{},toView:function(a){var b=wp.shortcode.next(this.type,a);if(b)return{index:b.index,content:b.content,options:{shortcode:b.shortcode}}}};c=_.defaults(c,d),c.View=wp.mce.View.extend(c.View),b[a]=c},get:function(a){return b[a]},unregister:function(a){delete b[a]},unbind:function(){_.each(c,function(a){a.unbind()})},toViews:function(a){var c,d=[{content:a}];return _.each(b,function(a,b){c=d.slice(),d=[],_.each(c,function(c){var e,f=c.content;if(c.processed)return void d.push(c);for(;f&&(e=a.toView(f));)e.index&&d.push({content:f.substring(0,e.index)}),d.push({content:wp.mce.views.toView(b,e.content,e.options),processed:!0}),f=f.slice(e.index+e.content.length);f&&d.push({content:f})})}),_.pluck(d,"content").join("")},toView:function(a,b,d){var e,f,g=wp.mce.views.get(a),h=window.encodeURIComponent(b);return g?(wp.mce.views.getInstance(h)||(f=d,f.type=a,f.encodedText=h,e=new g.View(f),c[h]=e),wp.html.string({tag:"div",attrs:{"class":"wpview-wrap","data-wpview-text":h,"data-wpview-type":a},content:" "})):b},refreshView:function(a,b){var d,e,f,g=window.encodeURIComponent(b);f=wp.mce.views.getInstance(g),f||(e=a.toView(b),d=e.options,d.type=a.type,d.encodedText=g,f=new a.View(d),c[g]=f),f.render()},getInstance:function(a){return c[a]},render:function(a){_.each(c,function(b){b.render(a)})},edit:function(b){var c=a(b).data("wpview-type"),d=wp.mce.views.get(c);d&&d.edit(b)}},wp.mce.views.register("gallery",{View:{template:d.template("editor-gallery"),postID:a("#post_ID").val(),initialize:function(a){this.shortcode=a.shortcode,this.fetch()},fetch:function(){var a=this;this.attachments=wp.media.gallery.attachments(this.shortcode,this.postID),this.dfd=this.attachments.more().done(function(){a.render(!0)})},getHtml:function(){var a,b=this.shortcode.attrs.named,c=!1;return this.dfd&&"pending"===this.dfd.state()&&!this.attachments.length?"":(this.attachments.length&&(c=this.attachments.toJSON(),_.each(c,function(a){a.sizes&&(a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))})),a={attachments:c,columns:b.columns?parseInt(b.columns,10):wp.media.galleryDefaults.columns},this.template(a))}},edit:function(b){var c,d,e=wp.media.gallery,f=this;d=window.decodeURIComponent(a(b).attr("data-wpview-text")),c=e.edit(d),c.state("gallery-edit").on("update",function(c){var d=e.shortcode(c).string();a(b).attr("data-wpview-text",window.encodeURIComponent(d)),wp.mce.views.refreshView(f,d)}),c.on("close",function(){c.detach()})}}),wp.mce.av={View:{overlay:!0,action:"parse-media-shortcode",initialize:function(b){var c=this;this.shortcode=b.shortcode,_.bindAll(this,"setIframes","setNodes","fetch","stopPlayers"),a(this).on("ready",this.setNodes),a(document).on("media:edit",this.stopPlayers),this.fetch(),this.getEditors(function(a){a.on("hide",c.stopPlayers)})},setNodes:function(){this.parsed?this.setIframes(this.parsed.head,this.parsed.body):this.fail()},fetch:function(){var b=this;wp.ajax.send(this.action,{data:{post_ID:a("#post_ID").val()||0,type:this.shortcode.tag,shortcode:this.shortcode.string()}}).done(function(a){a?(b.parsed=a,b.setIframes(a.head,a.body)):b.fail(!0)}).fail(function(a){b.fail(a||!0)})},fail:function(a){if(!this.error){if(!a)return;this.error=a}this.error.message?"not-embeddable"===this.error.type&&"embed"===this.type||"not-ssl"===this.error.type||"no-items"===this.error.type?this.setError(this.error.message,"admin-media"):this.setContent("<p>"+this.original+"</p>","replace"):this.error.statusText?this.setError(this.error.statusText,"admin-media"):this.original&&this.setContent("<p>"+this.original+"</p>","replace")},stopPlayers:function(b){var c="remove"===b;this.getNodes(function(b,d,e){var f,g,h=a("iframe.wpview-sandbox",e).get(0);if(h&&(g=h.contentWindow)&&g.mejs)try{for(f in g.mejs.players)g.mejs.players[f].pause(),c&&g.mejs.players[f].remove()}catch(i){}})},unbind:function(){this.stopPlayers("remove")}},edit:function(b){var c,d,e,f=wp.media[this.type],g=this;a(document).trigger("media:edit"),d=window.decodeURIComponent(a(b).attr("data-wpview-text")),c=f.edit(d),c.on("close",function(){c.detach()}),e=function(d){var e=wp.media[g.type].shortcode(d).string();a(b).attr("data-wpview-text",window.encodeURIComponent(e)),wp.mce.views.refreshView(g,e),c.detach()},_.isArray(g.state)?_.each(g.state,function(a){c.state(a).on("update",e)}):c.state(g.state).on("update",e),c.open()}},wp.mce.views.register("video",_.extend({},wp.mce.av,{state:"video-details"})),wp.mce.views.register("audio",_.extend({},wp.mce.av,{state:"audio-details"})),wp.mce.views.register("playlist",_.extend({},wp.mce.av,{state:["playlist-edit","video-playlist-edit"]})),wp.mce.embedMixin={View:_.extend({},wp.mce.av.View,{overlay:!0,action:"parse-embed",initialize:function(b){this.content=b.content,this.original=b.url||b.shortcode.string(),this.shortcode=b.url?d.embed.shortcode({url:b.url}):b.shortcode,_.bindAll(this,"setIframes","setNodes","fetch"),a(this).on("ready",this.setNodes),this.fetch()}}),edit:function(b){var c,e,f=d.embed,g=this,h="embedURL"===this.type;a(document).trigger("media:edit"),e=window.decodeURIComponent(a(b).attr("data-wpview-text")),c=f.edit(e,h),c.on("close",function(){c.detach()}),c.state("embed").props.on("change:url",function(a,b){b&&(c.state("embed").metadata=a.toJSON())}),c.state("embed").on("select",function(){var d;d=h?c.state("embed").metadata.url:f.shortcode(c.state("embed").metadata).string(),a(b).attr("data-wpview-text",window.encodeURIComponent(d)),wp.mce.views.refreshView(g,d),c.detach()}),c.open()}},wp.mce.views.register("embed",_.extend({},wp.mce.embedMixin)),wp.mce.views.register("embedURL",_.extend({},wp.mce.embedMixin,{toView:function(a){var b=/(?:^|<p>)(https?:\/\/[^\s"]+?)(?:<\/p>\s*|$)/gi,c=b.exec(tinymce.trim(a));if(c)return{index:c.index,content:c[0],options:{url:c[1]}}}}))}(jQuery);
\ No newline at end of file
index 47f6d36813a44f12fb25bc2d98aca809997e61fa..73f81a88207b2995112bbfbc7e3391b72373a99e 100644 (file)
@@ -6,7 +6,7 @@
                l10n = typeof _wpMediaViewsL10n === 'undefined' ? {} : _wpMediaViewsL10n;
 
        if ( ! _.isUndefined( window._wpmejsSettings ) ) {
                l10n = typeof _wpMediaViewsL10n === 'undefined' ? {} : _wpMediaViewsL10n;
 
        if ( ! _.isUndefined( window._wpmejsSettings ) ) {
-               baseSettings.pluginPath = _wpmejsSettings.pluginPath;
+               baseSettings = _wpmejsSettings;
        }
 
        /**
        }
 
        /**
         */
        wp.media.mixin = {
                mejsSettings: baseSettings,
         */
        wp.media.mixin = {
                mejsSettings: baseSettings,
-               /**
-                * Pauses every instance of MediaElementPlayer
-                */
-               pauseAllPlayers: function() {
+
+               removeAllPlayers: function() {
                        var p;
                        var p;
+
                        if ( window.mejs && window.mejs.players ) {
                                for ( p in window.mejs.players ) {
                                        window.mejs.players[p].pause();
                        if ( window.mejs && window.mejs.players ) {
                                for ( p in window.mejs.players ) {
                                        window.mejs.players[p].pause();
+                                       this.removePlayer( window.mejs.players[p] );
                                }
                        }
                },
 
                                }
                        }
                },
 
-               /**
-                * Utility to identify the user's browser
-                */
-               ua: {
-                       is : function( browser ) {
-                               var passes = false, ua = window.navigator.userAgent;
-
-                               switch ( browser ) {
-                                       case 'oldie':
-                                               passes = ua.match(/MSIE [6-8]/gi) !== null;
-                                       break;
-                                       case 'ie':
-                                               passes = ua.match(/MSIE/gi) !== null;
-                                       break;
-                                       case 'ff':
-                                               passes = ua.match(/firefox/gi) !== null;
-                                       break;
-                                       case 'opera':
-                                               passes = ua.match(/OPR/) !== null;
-                                       break;
-                                       case 'safari':
-                                               passes = ua.match(/safari/gi) !== null && ua.match(/chrome/gi) === null;
-                                       break;
-                                       case 'chrome':
-                                               passes = ua.match(/safari/gi) !== null && ua.match(/chrome/gi) !== null;
-                                       break;
-                               }
-
-                               return passes;
-                       }
-               },
-
-               /**
-                * Specify compatibility for native playback by browser
-                */
-               compat :{
-                       'opera' : {
-                               audio: ['ogg', 'wav'],
-                               video: ['ogg', 'webm']
-                       },
-                       'chrome' : {
-                               audio: ['ogg', 'mpeg'],
-                               video: ['ogg', 'webm', 'mp4', 'm4v', 'mpeg']
-                       },
-                       'ff' : {
-                               audio: ['ogg', 'mpeg'],
-                               video: ['ogg', 'webm']
-                       },
-                       'safari' : {
-                               audio: ['mpeg', 'wav'],
-                               video: ['mp4', 'm4v', 'mpeg', 'x-ms-wmv', 'quicktime']
-                       },
-                       'ie' : {
-                               audio: ['mpeg'],
-                               video: ['mp4', 'm4v', 'mpeg']
-                       }
-               },
-
-               /**
-                * Determine if the passed media contains a <source> that provides
-                *  native playback in the user's browser
-                *
-                * @param {jQuery} media
-                * @returns {Boolean}
-                */
-               isCompatible: function( media ) {
-                       if ( ! media.find( 'source' ).length ) {
-                               return false;
-                       }
-
-                       var ua = this.ua, test = false, found = false, sources;
-
-                       if ( ua.is( 'oldIE' ) ) {
-                               return false;
-                       }
-
-                       sources = media.find( 'source' );
-
-                       _.find( this.compat, function( supports, browser ) {
-                               if ( ua.is( browser ) ) {
-                                       found = true;
-                                       _.each( sources, function( elem ) {
-                                               var audio = new RegExp( 'audio\/(' + supports.audio.join('|') + ')', 'gi' ),
-                                                       video = new RegExp( 'video\/(' + supports.video.join('|') + ')', 'gi' );
-
-                                               if ( elem.type.match( video ) !== null || elem.type.match( audio ) !== null ) {
-                                                       test = true;
-                                               }
-                                       } );
-                               }
-
-                               return test || found;
-                       } );
-
-                       return test;
-               },
-
                /**
                 * Override the MediaElement method for removing a player.
                 *      MediaElement tries to pull the audio/video tag out of
                /**
                 * Override the MediaElement method for removing a player.
                 *      MediaElement tries to pull the audio/video tag out of
                removePlayer: function(t) {
                        var featureIndex, feature;
 
                removePlayer: function(t) {
                        var featureIndex, feature;
 
+                       if ( ! t.options ) {
+                               return;
+                       }
+
                        // invoke features cleanup
                        for ( featureIndex in t.options.features ) {
                                feature = t.options.features[featureIndex];
                        // invoke features cleanup
                        for ( featureIndex in t.options.features ) {
                                feature = t.options.features[featureIndex];
                 */
                unsetPlayers : function() {
                        if ( this.players && this.players.length ) {
                 */
                unsetPlayers : function() {
                        if ( this.players && this.players.length ) {
-                               wp.media.mixin.pauseAllPlayers();
                                _.each( this.players, function (player) {
                                _.each( this.players, function (player) {
+                                       player.pause();
                                        wp.media.mixin.removePlayer( player );
                                } );
                                this.players = [];
                                        wp.media.mixin.removePlayer( player );
                                } );
                                this.players = [];
 
                renderSelectPosterImageToolbar: function() {
                        this.setPrimaryButton( l10n.videoSelectPosterImageTitle, function( controller, state ) {
 
                renderSelectPosterImageToolbar: function() {
                        this.setPrimaryButton( l10n.videoSelectPosterImageTitle, function( controller, state ) {
-                               var attachment = state.get( 'selection' ).single();
+                               var urls = [], attachment = state.get( 'selection' ).single();
 
                                controller.media.set( 'poster', attachment.get( 'url' ) );
                                state.trigger( 'set-poster-image', controller.media.toJSON() );
 
                                controller.media.set( 'poster', attachment.get( 'url' ) );
                                state.trigger( 'set-poster-image', controller.media.toJSON() );
+
+                               _.each( wp.media.view.settings.embedExts, function (ext) {
+                                       if ( controller.media.get( ext ) ) {
+                                               urls.push( controller.media.get( ext ) );
+                                       }
+                               } );
+
+                               wp.ajax.send( 'set-attachment-thumbnail', {
+                                       data : {
+                                               urls: urls,
+                                               thumbnail_id: attachment.get( 'id' )
+                                       }
+                               } );
                        } );
                },
 
                        } );
                },
 
        /**
         * wp.media.view.MediaDetails
         *
        /**
         * wp.media.view.MediaDetails
         *
-        * @contructor
+        * @constructor
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
         * @augments wp.media.View
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
         * @augments wp.media.View
                        this.events = _.extend( this.events, {
                                'click .remove-setting' : 'removeSetting',
                                'change .content-track' : 'setTracks',
                        this.events = _.extend( this.events, {
                                'click .remove-setting' : 'removeSetting',
                                'change .content-track' : 'setTracks',
-                               'click .remove-track' : 'setTracks'
+                               'click .remove-track' : 'setTracks',
+                               'click .add-media-source' : 'addSource'
                        } );
 
                        media.view.Settings.AttachmentDisplay.prototype.initialize.apply( this, arguments );
                        } );
 
                        media.view.Settings.AttachmentDisplay.prototype.initialize.apply( this, arguments );
                        this.trigger( 'media:setting:remove', this );
                },
 
                        this.trigger( 'media:setting:remove', this );
                },
 
+               addSource : function( e ) {
+                       this.controller.lastMime = $( e.currentTarget ).data( 'mime' );
+                       this.controller.setState( 'add-' + this.controller.defaults.id + '-source' );
+               },
+
                /**
                 * @global MediaElementPlayer
                 */
                /**
                 * @global MediaElementPlayer
                 */
        /**
         * wp.media.view.AudioDetails
         *
        /**
         * wp.media.view.AudioDetails
         *
-        * @contructor
+        * @constructor
         * @augments wp.media.view.MediaDetails
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
         * @augments wp.media.view.MediaDetails
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
        /**
         * wp.media.view.VideoDetails
         *
        /**
         * wp.media.view.VideoDetails
         *
-        * @contructor
+        * @constructor
         * @augments wp.media.view.MediaDetails
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
         * @augments wp.media.view.MediaDetails
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
                }
        });
 
                }
        });
 
-       /**
-        * Event binding
-        */
-       function init() {
-               $(document.body)
-                       .on( 'click', '.wp-switch-editor', wp.media.mixin.pauseAllPlayers )
-                       .on( 'click', '.add-media-source', function( e ) {
-                               media.frame.lastMime = $( e.currentTarget ).data( 'mime' );
-                               media.frame.setState( 'add-' + media.frame.defaults.id + '-source' );
-                       } );
-       }
-
-       $( init );
-
 }(jQuery, _, Backbone));
 }(jQuery, _, Backbone));
index 09930fdb9a963e62adc24863d44d23d44fbcc057..e4c4e4e8105566961dc02ce007a5483aa2e58667 100644 (file)
@@ -1 +1 @@
-!function(a,b,c){function d(){a(document.body).on("click",".wp-switch-editor",wp.media.mixin.pauseAllPlayers).on("click",".add-media-source",function(b){e.frame.lastMime=a(b.currentTarget).data("mime"),e.frame.setState("add-"+e.frame.defaults.id+"-source")})}var e=wp.media,f={},g="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n;b.isUndefined(window._wpmejsSettings)||(f.pluginPath=_wpmejsSettings.pluginPath),wp.media.mixin={mejsSettings:f,pauseAllPlayers:function(){var a;if(window.mejs&&window.mejs.players)for(a in window.mejs.players)window.mejs.players[a].pause()},ua:{is:function(a){var b=!1,c=window.navigator.userAgent;switch(a){case"oldie":b=null!==c.match(/MSIE [6-8]/gi);break;case"ie":b=null!==c.match(/MSIE/gi);break;case"ff":b=null!==c.match(/firefox/gi);break;case"opera":b=null!==c.match(/OPR/);break;case"safari":b=null!==c.match(/safari/gi)&&null===c.match(/chrome/gi);break;case"chrome":b=null!==c.match(/safari/gi)&&null!==c.match(/chrome/gi)}return b}},compat:{opera:{audio:["ogg","wav"],video:["ogg","webm"]},chrome:{audio:["ogg","mpeg"],video:["ogg","webm","mp4","m4v","mpeg"]},ff:{audio:["ogg","mpeg"],video:["ogg","webm"]},safari:{audio:["mpeg","wav"],video:["mp4","m4v","mpeg","x-ms-wmv","quicktime"]},ie:{audio:["mpeg"],video:["mp4","m4v","mpeg"]}},isCompatible:function(a){if(!a.find("source").length)return!1;var c,d=this.ua,e=!1,f=!1;return d.is("oldIE")?!1:(c=a.find("source"),b.find(this.compat,function(a,g){return d.is(g)&&(f=!0,b.each(c,function(b){var c=new RegExp("audio/("+a.audio.join("|")+")","gi"),d=new RegExp("video/("+a.video.join("|")+")","gi");(null!==b.type.match(d)||null!==b.type.match(c))&&(e=!0)})),e||f}),e)},removePlayer:function(a){var b,c;for(b in a.options.features)if(c=a.options.features[b],a["clean"+c])try{a["clean"+c](a)}catch(d){}a.isDynamic||a.$node.remove(),"native"!==a.media.pluginType&&a.media.remove(),delete window.mejs.players[a.id],a.container.remove(),a.globalUnbind(),delete a.node.player},unsetPlayers:function(){this.players&&this.players.length&&(wp.media.mixin.pauseAllPlayers(),b.each(this.players,function(a){wp.media.mixin.removePlayer(a)}),this.players=[])}},wp.media.playlist=new wp.media.collection({tag:"playlist",editTitle:g.editPlaylistTitle,defaults:{id:wp.media.view.settings.post.id,style:"light",tracklist:!0,tracknumbers:!0,images:!0,artists:!0,type:"audio"}}),wp.media.audio={coerce:wp.media.coerce,defaults:{id:wp.media.view.settings.post.id,src:"",loop:!1,autoplay:!1,preload:"none",width:400},edit:function(a){var c,d=wp.shortcode.next("audio",a).shortcode;return c=wp.media({frame:"audio",state:"audio-details",metadata:b.defaults(d.attrs.named,this.defaults)})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.content,delete a.content,new wp.shortcode({tag:"audio",attrs:a,content:c})}},wp.media.video={coerce:wp.media.coerce,defaults:{id:wp.media.view.settings.post.id,src:"",poster:"",loop:!1,autoplay:!1,preload:"metadata",content:"",width:640,height:360},edit:function(a){var c,d,e=wp.shortcode.next("video",a).shortcode;return d=e.attrs.named,d.content=e.content,c=wp.media({frame:"video",state:"video-details",metadata:b.defaults(d,this.defaults)})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.content,delete a.content,new wp.shortcode({tag:"video",attrs:a,content:c})}},e.model.PostMedia=c.Model.extend({initialize:function(){this.attachment=!1},setSource:function(a){this.attachment=a,this.extension=a.get("filename").split(".").pop(),this.get("src")&&this.extension===this.get("src").split(".").pop()&&this.unset("src"),b.contains(wp.media.view.settings.embedExts,this.extension)?this.set(this.extension,this.attachment.get("url")):this.unset(this.extension)},changeAttachment:function(a){var c=this;this.setSource(a),this.unset("src"),b.each(b.without(wp.media.view.settings.embedExts,this.extension),function(a){c.unset(a)})}}),e.controller.AudioDetails=e.controller.State.extend({defaults:{id:"audio-details",toolbar:"audio-details",title:g.audioDetailsTitle,content:"audio-details",menu:"audio-details",router:!1,priority:60},initialize:function(a){this.media=a.media,e.controller.State.prototype.initialize.apply(this,arguments)}}),e.controller.VideoDetails=e.controller.State.extend({defaults:{id:"video-details",toolbar:"video-details",title:g.videoDetailsTitle,content:"video-details",menu:"video-details",router:!1,priority:60},initialize:function(a){this.media=a.media,e.controller.State.prototype.initialize.apply(this,arguments)}}),e.view.MediaFrame.MediaDetails=e.view.MediaFrame.Select.extend({defaults:{id:"media",url:"",menu:"media-details",content:"media-details",toolbar:"media-details",type:"link",priority:120},initialize:function(a){this.DetailsView=a.DetailsView,this.cancelText=a.cancelText,this.addText=a.addText,this.media=new e.model.PostMedia(a.metadata),this.options.selection=new e.model.Selection(this.media.attachment,{multiple:!1}),e.view.MediaFrame.Select.prototype.initialize.apply(this,arguments)},bindHandlers:function(){var a=this.defaults.menu;e.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:"+a,this.createMenu,this),this.on("content:render:"+a,this.renderDetailsContent,this),this.on("menu:render:"+a,this.renderMenu,this),this.on("toolbar:render:"+a,this.renderDetailsToolbar,this)},renderDetailsContent:function(){var a=new this.DetailsView({controller:this,model:this.state().media,attachment:this.state().media.attachment}).render();this.content.set(a)},renderMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:this.cancelText,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new e.View({className:"separator",priority:40})})},setPrimaryButton:function(a,b){this.toolbar.set(new e.view.Toolbar({controller:this,items:{button:{style:"primary",text:a,priority:80,click:function(){var a=this.controller;b.call(this,a,a.state()),a.setState(a.options.state),a.reset()}}}}))},renderDetailsToolbar:function(){this.setPrimaryButton(g.update,function(a,b){a.close(),b.trigger("update",a.media.toJSON())})},renderReplaceToolbar:function(){this.setPrimaryButton(g.replace,function(a,b){var c=b.get("selection").single();a.media.changeAttachment(c),b.trigger("replace",a.media.toJSON())})},renderAddSourceToolbar:function(){this.setPrimaryButton(this.addText,function(a,b){var c=b.get("selection").single();a.media.setSource(c),b.trigger("add-source",a.media.toJSON())})}}),e.view.MediaFrame.AudioDetails=e.view.MediaFrame.MediaDetails.extend({defaults:{id:"audio",url:"",menu:"audio-details",content:"audio-details",toolbar:"audio-details",type:"link",title:g.audioDetailsTitle,priority:120},initialize:function(a){a.DetailsView=e.view.AudioDetails,a.cancelText=g.audioDetailsCancel,a.addText=g.audioAddSourceTitle,e.view.MediaFrame.MediaDetails.prototype.initialize.call(this,a)},bindHandlers:function(){e.view.MediaFrame.MediaDetails.prototype.bindHandlers.apply(this,arguments),this.on("toolbar:render:replace-audio",this.renderReplaceToolbar,this),this.on("toolbar:render:add-audio-source",this.renderAddSourceToolbar,this)},createStates:function(){this.states.add([new e.controller.AudioDetails({media:this.media}),new e.controller.MediaLibrary({type:"audio",id:"replace-audio",title:g.audioReplaceTitle,toolbar:"replace-audio",media:this.media,menu:"audio-details"}),new e.controller.MediaLibrary({type:"audio",id:"add-audio-source",title:g.audioAddSourceTitle,toolbar:"add-audio-source",media:this.media,menu:!1})])}}),e.view.MediaFrame.VideoDetails=e.view.MediaFrame.MediaDetails.extend({defaults:{id:"video",url:"",menu:"video-details",content:"video-details",toolbar:"video-details",type:"link",title:g.videoDetailsTitle,priority:120},initialize:function(a){a.DetailsView=e.view.VideoDetails,a.cancelText=g.videoDetailsCancel,a.addText=g.videoAddSourceTitle,e.view.MediaFrame.MediaDetails.prototype.initialize.call(this,a)},bindHandlers:function(){e.view.MediaFrame.MediaDetails.prototype.bindHandlers.apply(this,arguments),this.on("toolbar:render:replace-video",this.renderReplaceToolbar,this),this.on("toolbar:render:add-video-source",this.renderAddSourceToolbar,this),this.on("toolbar:render:select-poster-image",this.renderSelectPosterImageToolbar,this),this.on("toolbar:render:add-track",this.renderAddTrackToolbar,this)},createStates:function(){this.states.add([new e.controller.VideoDetails({media:this.media}),new e.controller.MediaLibrary({type:"video",id:"replace-video",title:g.videoReplaceTitle,toolbar:"replace-video",media:this.media,menu:"video-details"}),new e.controller.MediaLibrary({type:"video",id:"add-video-source",title:g.videoAddSourceTitle,toolbar:"add-video-source",media:this.media,menu:!1}),new e.controller.MediaLibrary({type:"image",id:"select-poster-image",title:g.videoSelectPosterImageTitle,toolbar:"select-poster-image",media:this.media,menu:"video-details"}),new e.controller.MediaLibrary({type:"text",id:"add-track",title:g.videoAddTrackTitle,toolbar:"add-track",media:this.media,menu:"video-details"})])},renderSelectPosterImageToolbar:function(){this.setPrimaryButton(g.videoSelectPosterImageTitle,function(a,b){var c=b.get("selection").single();a.media.set("poster",c.get("url")),b.trigger("set-poster-image",a.media.toJSON())})},renderAddTrackToolbar:function(){this.setPrimaryButton(g.videoAddTrackTitle,function(a,b){var c=b.get("selection").single(),d=a.media.get("content");-1===d.indexOf(c.get("url"))&&(d+=['<track srclang="en" label="English"kind="subtitles" src="',c.get("url"),'" />'].join(""),a.media.set("content",d)),b.trigger("add-track",a.media.toJSON())})}}),e.view.MediaDetails=e.view.Settings.AttachmentDisplay.extend({initialize:function(){b.bindAll(this,"success"),this.players=[],this.listenTo(this.controller,"close",e.mixin.unsetPlayers),this.on("ready",this.setPlayer),this.on("media:setting:remove",e.mixin.unsetPlayers,this),this.on("media:setting:remove",this.render),this.on("media:setting:remove",this.setPlayer),this.events=b.extend(this.events,{"click .remove-setting":"removeSetting","change .content-track":"setTracks","click .remove-track":"setTracks"}),e.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments)},prepare:function(){return b.defaults({model:this.model.toJSON()},this.options)},removeSetting:function(b){var c,d=a(b.currentTarget).parent();c=d.find("input").data("setting"),c&&(this.model.unset(c),this.trigger("media:setting:remove",this)),d.remove()},setTracks:function(){var c="";b.each(this.$(".content-track"),function(b){c+=a(b).val()}),this.model.set("content",c),this.trigger("media:setting:remove",this)},setPlayer:function(){!this.players.length&&this.media&&this.players.push(new MediaElementPlayer(this.media,this.settings))},setMedia:function(){return this},success:function(a){var b=a.attributes.autoplay&&"false"!==a.attributes.autoplay;"flash"===a.pluginType&&b&&a.addEventListener("canplay",function(){a.play()},!1),this.mejs=a},render:function(){var a=this;return e.view.Settings.AttachmentDisplay.prototype.render.apply(this,arguments),setTimeout(function(){a.resetFocus()},10),this.settings=b.defaults({success:this.success},f),this.setMedia()},resetFocus:function(){this.$(".embed-media-settings").scrollTop(0)}},{instances:0,prepareSrc:function(c){var d=e.view.MediaDetails.instances++;return b.each(a(c).find("source"),function(a){a.src=[a.src,a.src.indexOf("?")>-1?"&":"?","_=",d].join("")}),c}}),e.view.AudioDetails=e.view.MediaDetails.extend({className:"audio-details",template:e.template("audio-details"),setMedia:function(){var a=this.$(".wp-audio-shortcode");return a.find("source").length?(a.is(":hidden")&&a.show(),this.media=e.view.MediaDetails.prepareSrc(a.get(0))):(a.hide(),this.media=!1),this}}),e.view.VideoDetails=e.view.MediaDetails.extend({className:"video-details",template:e.template("video-details"),setMedia:function(){var a=this.$(".wp-video-shortcode");return a.find("source").length?(a.is(":hidden")&&a.show(),this.media=a.hasClass("youtube-video")?a.get(0):e.view.MediaDetails.prepareSrc(a.get(0))):(a.hide(),this.media=!1),this}}),a(d)}(jQuery,_,Backbone);
\ No newline at end of file
+!function(a,b,c){var d=wp.media,e={},f="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n;b.isUndefined(window._wpmejsSettings)||(e=_wpmejsSettings),wp.media.mixin={mejsSettings:e,removeAllPlayers:function(){var a;if(window.mejs&&window.mejs.players)for(a in window.mejs.players)window.mejs.players[a].pause(),this.removePlayer(window.mejs.players[a])},removePlayer:function(a){var b,c;if(a.options){for(b in a.options.features)if(c=a.options.features[b],a["clean"+c])try{a["clean"+c](a)}catch(d){}a.isDynamic||a.$node.remove(),"native"!==a.media.pluginType&&a.media.remove(),delete window.mejs.players[a.id],a.container.remove(),a.globalUnbind(),delete a.node.player}},unsetPlayers:function(){this.players&&this.players.length&&(b.each(this.players,function(a){a.pause(),wp.media.mixin.removePlayer(a)}),this.players=[])}},wp.media.playlist=new wp.media.collection({tag:"playlist",editTitle:f.editPlaylistTitle,defaults:{id:wp.media.view.settings.post.id,style:"light",tracklist:!0,tracknumbers:!0,images:!0,artists:!0,type:"audio"}}),wp.media.audio={coerce:wp.media.coerce,defaults:{id:wp.media.view.settings.post.id,src:"",loop:!1,autoplay:!1,preload:"none",width:400},edit:function(a){var c,d=wp.shortcode.next("audio",a).shortcode;return c=wp.media({frame:"audio",state:"audio-details",metadata:b.defaults(d.attrs.named,this.defaults)})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.content,delete a.content,new wp.shortcode({tag:"audio",attrs:a,content:c})}},wp.media.video={coerce:wp.media.coerce,defaults:{id:wp.media.view.settings.post.id,src:"",poster:"",loop:!1,autoplay:!1,preload:"metadata",content:"",width:640,height:360},edit:function(a){var c,d,e=wp.shortcode.next("video",a).shortcode;return d=e.attrs.named,d.content=e.content,c=wp.media({frame:"video",state:"video-details",metadata:b.defaults(d,this.defaults)})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.content,delete a.content,new wp.shortcode({tag:"video",attrs:a,content:c})}},d.model.PostMedia=c.Model.extend({initialize:function(){this.attachment=!1},setSource:function(a){this.attachment=a,this.extension=a.get("filename").split(".").pop(),this.get("src")&&this.extension===this.get("src").split(".").pop()&&this.unset("src"),b.contains(wp.media.view.settings.embedExts,this.extension)?this.set(this.extension,this.attachment.get("url")):this.unset(this.extension)},changeAttachment:function(a){var c=this;this.setSource(a),this.unset("src"),b.each(b.without(wp.media.view.settings.embedExts,this.extension),function(a){c.unset(a)})}}),d.controller.AudioDetails=d.controller.State.extend({defaults:{id:"audio-details",toolbar:"audio-details",title:f.audioDetailsTitle,content:"audio-details",menu:"audio-details",router:!1,priority:60},initialize:function(a){this.media=a.media,d.controller.State.prototype.initialize.apply(this,arguments)}}),d.controller.VideoDetails=d.controller.State.extend({defaults:{id:"video-details",toolbar:"video-details",title:f.videoDetailsTitle,content:"video-details",menu:"video-details",router:!1,priority:60},initialize:function(a){this.media=a.media,d.controller.State.prototype.initialize.apply(this,arguments)}}),d.view.MediaFrame.MediaDetails=d.view.MediaFrame.Select.extend({defaults:{id:"media",url:"",menu:"media-details",content:"media-details",toolbar:"media-details",type:"link",priority:120},initialize:function(a){this.DetailsView=a.DetailsView,this.cancelText=a.cancelText,this.addText=a.addText,this.media=new d.model.PostMedia(a.metadata),this.options.selection=new d.model.Selection(this.media.attachment,{multiple:!1}),d.view.MediaFrame.Select.prototype.initialize.apply(this,arguments)},bindHandlers:function(){var a=this.defaults.menu;d.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:"+a,this.createMenu,this),this.on("content:render:"+a,this.renderDetailsContent,this),this.on("menu:render:"+a,this.renderMenu,this),this.on("toolbar:render:"+a,this.renderDetailsToolbar,this)},renderDetailsContent:function(){var a=new this.DetailsView({controller:this,model:this.state().media,attachment:this.state().media.attachment}).render();this.content.set(a)},renderMenu:function(a){var b=this.lastState(),c=b&&b.id,e=this;a.set({cancel:{text:this.cancelText,priority:20,click:function(){c?e.setState(c):e.close()}},separateCancel:new d.View({className:"separator",priority:40})})},setPrimaryButton:function(a,b){this.toolbar.set(new d.view.Toolbar({controller:this,items:{button:{style:"primary",text:a,priority:80,click:function(){var a=this.controller;b.call(this,a,a.state()),a.setState(a.options.state),a.reset()}}}}))},renderDetailsToolbar:function(){this.setPrimaryButton(f.update,function(a,b){a.close(),b.trigger("update",a.media.toJSON())})},renderReplaceToolbar:function(){this.setPrimaryButton(f.replace,function(a,b){var c=b.get("selection").single();a.media.changeAttachment(c),b.trigger("replace",a.media.toJSON())})},renderAddSourceToolbar:function(){this.setPrimaryButton(this.addText,function(a,b){var c=b.get("selection").single();a.media.setSource(c),b.trigger("add-source",a.media.toJSON())})}}),d.view.MediaFrame.AudioDetails=d.view.MediaFrame.MediaDetails.extend({defaults:{id:"audio",url:"",menu:"audio-details",content:"audio-details",toolbar:"audio-details",type:"link",title:f.audioDetailsTitle,priority:120},initialize:function(a){a.DetailsView=d.view.AudioDetails,a.cancelText=f.audioDetailsCancel,a.addText=f.audioAddSourceTitle,d.view.MediaFrame.MediaDetails.prototype.initialize.call(this,a)},bindHandlers:function(){d.view.MediaFrame.MediaDetails.prototype.bindHandlers.apply(this,arguments),this.on("toolbar:render:replace-audio",this.renderReplaceToolbar,this),this.on("toolbar:render:add-audio-source",this.renderAddSourceToolbar,this)},createStates:function(){this.states.add([new d.controller.AudioDetails({media:this.media}),new d.controller.MediaLibrary({type:"audio",id:"replace-audio",title:f.audioReplaceTitle,toolbar:"replace-audio",media:this.media,menu:"audio-details"}),new d.controller.MediaLibrary({type:"audio",id:"add-audio-source",title:f.audioAddSourceTitle,toolbar:"add-audio-source",media:this.media,menu:!1})])}}),d.view.MediaFrame.VideoDetails=d.view.MediaFrame.MediaDetails.extend({defaults:{id:"video",url:"",menu:"video-details",content:"video-details",toolbar:"video-details",type:"link",title:f.videoDetailsTitle,priority:120},initialize:function(a){a.DetailsView=d.view.VideoDetails,a.cancelText=f.videoDetailsCancel,a.addText=f.videoAddSourceTitle,d.view.MediaFrame.MediaDetails.prototype.initialize.call(this,a)},bindHandlers:function(){d.view.MediaFrame.MediaDetails.prototype.bindHandlers.apply(this,arguments),this.on("toolbar:render:replace-video",this.renderReplaceToolbar,this),this.on("toolbar:render:add-video-source",this.renderAddSourceToolbar,this),this.on("toolbar:render:select-poster-image",this.renderSelectPosterImageToolbar,this),this.on("toolbar:render:add-track",this.renderAddTrackToolbar,this)},createStates:function(){this.states.add([new d.controller.VideoDetails({media:this.media}),new d.controller.MediaLibrary({type:"video",id:"replace-video",title:f.videoReplaceTitle,toolbar:"replace-video",media:this.media,menu:"video-details"}),new d.controller.MediaLibrary({type:"video",id:"add-video-source",title:f.videoAddSourceTitle,toolbar:"add-video-source",media:this.media,menu:!1}),new d.controller.MediaLibrary({type:"image",id:"select-poster-image",title:f.videoSelectPosterImageTitle,toolbar:"select-poster-image",media:this.media,menu:"video-details"}),new d.controller.MediaLibrary({type:"text",id:"add-track",title:f.videoAddTrackTitle,toolbar:"add-track",media:this.media,menu:"video-details"})])},renderSelectPosterImageToolbar:function(){this.setPrimaryButton(f.videoSelectPosterImageTitle,function(a,c){var d=[],e=c.get("selection").single();a.media.set("poster",e.get("url")),c.trigger("set-poster-image",a.media.toJSON()),b.each(wp.media.view.settings.embedExts,function(b){a.media.get(b)&&d.push(a.media.get(b))}),wp.ajax.send("set-attachment-thumbnail",{data:{urls:d,thumbnail_id:e.get("id")}})})},renderAddTrackToolbar:function(){this.setPrimaryButton(f.videoAddTrackTitle,function(a,b){var c=b.get("selection").single(),d=a.media.get("content");-1===d.indexOf(c.get("url"))&&(d+=['<track srclang="en" label="English"kind="subtitles" src="',c.get("url"),'" />'].join(""),a.media.set("content",d)),b.trigger("add-track",a.media.toJSON())})}}),d.view.MediaDetails=d.view.Settings.AttachmentDisplay.extend({initialize:function(){b.bindAll(this,"success"),this.players=[],this.listenTo(this.controller,"close",d.mixin.unsetPlayers),this.on("ready",this.setPlayer),this.on("media:setting:remove",d.mixin.unsetPlayers,this),this.on("media:setting:remove",this.render),this.on("media:setting:remove",this.setPlayer),this.events=b.extend(this.events,{"click .remove-setting":"removeSetting","change .content-track":"setTracks","click .remove-track":"setTracks","click .add-media-source":"addSource"}),d.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments)},prepare:function(){return b.defaults({model:this.model.toJSON()},this.options)},removeSetting:function(b){var c,d=a(b.currentTarget).parent();c=d.find("input").data("setting"),c&&(this.model.unset(c),this.trigger("media:setting:remove",this)),d.remove()},setTracks:function(){var c="";b.each(this.$(".content-track"),function(b){c+=a(b).val()}),this.model.set("content",c),this.trigger("media:setting:remove",this)},addSource:function(b){this.controller.lastMime=a(b.currentTarget).data("mime"),this.controller.setState("add-"+this.controller.defaults.id+"-source")},setPlayer:function(){!this.players.length&&this.media&&this.players.push(new MediaElementPlayer(this.media,this.settings))},setMedia:function(){return this},success:function(a){var b=a.attributes.autoplay&&"false"!==a.attributes.autoplay;"flash"===a.pluginType&&b&&a.addEventListener("canplay",function(){a.play()},!1),this.mejs=a},render:function(){var a=this;return d.view.Settings.AttachmentDisplay.prototype.render.apply(this,arguments),setTimeout(function(){a.resetFocus()},10),this.settings=b.defaults({success:this.success},e),this.setMedia()},resetFocus:function(){this.$(".embed-media-settings").scrollTop(0)}},{instances:0,prepareSrc:function(c){var e=d.view.MediaDetails.instances++;return b.each(a(c).find("source"),function(a){a.src=[a.src,a.src.indexOf("?")>-1?"&":"?","_=",e].join("")}),c}}),d.view.AudioDetails=d.view.MediaDetails.extend({className:"audio-details",template:d.template("audio-details"),setMedia:function(){var a=this.$(".wp-audio-shortcode");return a.find("source").length?(a.is(":hidden")&&a.show(),this.media=d.view.MediaDetails.prepareSrc(a.get(0))):(a.hide(),this.media=!1),this}}),d.view.VideoDetails=d.view.MediaDetails.extend({className:"video-details",template:d.template("video-details"),setMedia:function(){var a=this.$(".wp-video-shortcode");return a.find("source").length?(a.is(":hidden")&&a.show(),this.media=a.hasClass("youtube-video")?a.get(0):d.view.MediaDetails.prepareSrc(a.get(0))):(a.hide(),this.media=!1),this}})}(jQuery,_,Backbone);
\ No newline at end of file
index eb1efbcbc4a95b07c179e59f84dffde245c1e944..2db4440da4ac59ca20dd2a894615728493add6d5 100644 (file)
@@ -1,4 +1,4 @@
-/* global getUserSetting, tinymce, QTags, wpActiveEditor */
+/* global getUserSetting, tinymce, QTags */
 
 // WordPress, TinyMCE, and Media
 // -----------------------------
 
 // WordPress, TinyMCE, and Media
 // -----------------------------
                }
        };
 
                }
        };
 
+       wp.media.embed = {
+               coerce : wp.media.coerce,
+
+               defaults : {
+                       url : '',
+                       width: '',
+                       height: ''
+               },
+
+               edit : function( data, isURL ) {
+                       var frame, props = {}, shortcode;
+
+                       if ( isURL ) {
+                               props.url = data.replace(/<[^>]+>/g, '');
+                       } else {
+                               shortcode = wp.shortcode.next( 'embed', data ).shortcode;
+
+                               props = _.defaults( shortcode.attrs.named, this.defaults );
+                               if ( shortcode.content ) {
+                                       props.url = shortcode.content;
+                               }
+                       }
+
+                       frame = wp.media({
+                               frame: 'post',
+                               state: 'embed',
+                               metadata: props
+                       });
+
+                       return frame;
+               },
+
+               shortcode : function( model ) {
+                       var self = this, content;
+
+                       _.each( this.defaults, function( value, key ) {
+                               model[ key ] = self.coerce( model, key );
+
+                               if ( value === model[ key ] ) {
+                                       delete model[ key ];
+                               }
+                       });
+
+                       content = model.url;
+                       delete model.url;
+
+                       return new wp.shortcode({
+                               tag: 'embed',
+                               attrs: model,
+                               content: content
+                       });
+               }
+       };
+
        wp.media.collection = function(attributes) {
                var collections = {};
 
        wp.media.collection = function(attributes) {
                var collections = {};
 
-               return _.extend( attributes, {
+               return _.extend( {
                        coerce : wp.media.coerce,
                        /**
                         * Retrieve attachments based on the properties of the passed shortcode
                        coerce : wp.media.coerce,
                        /**
                         * Retrieve attachments based on the properties of the passed shortcode
                        shortcode: function( attachments ) {
                                var props = attachments.props.toJSON(),
                                        attrs = _.pick( props, 'orderby', 'order' ),
                        shortcode: function( attachments ) {
                                var props = attachments.props.toJSON(),
                                        attrs = _.pick( props, 'orderby', 'order' ),
-                                       shortcode, clone, self = this;
+                                       shortcode, clone;
 
                                if ( attachments.type ) {
                                        attrs.type = attachments.type;
 
                                if ( attachments.type ) {
                                        attrs.type = attachments.type;
                                        delete attrs.orderby;
                                }
 
                                        delete attrs.orderby;
                                }
 
-                               // Remove default attributes from the shortcode.
-                               _.each( this.defaults, function( value, key ) {
-                                       attrs[ key ] = self.coerce( attrs, key );
-                                       if ( value === attrs[ key ] ) {
-                                               delete attrs[ key ];
-                                       }
-                               });
+                               attrs = this.setDefaults( attrs );
 
                                shortcode = new wp.shortcode({
                                        tag:    this.tag,
 
                                shortcode = new wp.shortcode({
                                        tag:    this.tag,
                                }).open();
 
                                return this.frame;
                                }).open();
 
                                return this.frame;
+                       },
+
+                       setDefaults: function( attrs ) {
+                               var self = this;
+                               // Remove default attributes from the shortcode.
+                               _.each( this.defaults, function( value, key ) {
+                                       attrs[ key ] = self.coerce( attrs, key );
+                                       if ( value === attrs[ key ] ) {
+                                               delete attrs[ key ];
+                                       }
+                               });
+
+                               return attrs;
                        }
                        }
-               });
+               }, attributes );
+       };
+
+       wp.media._galleryDefaults = {
+               itemtag: 'dl',
+               icontag: 'dt',
+               captiontag: 'dd',
+               columns: '3',
+               link: 'post',
+               size: 'thumbnail',
+               order: 'ASC',
+               id: wp.media.view.settings.post && wp.media.view.settings.post.id,
+               orderby : 'menu_order ID'
        };
 
        };
 
+       if ( wp.media.view.settings.galleryDefaults ) {
+               wp.media.galleryDefaults = _.extend( {}, wp.media._galleryDefaults, wp.media.view.settings.galleryDefaults );
+       } else {
+               wp.media.galleryDefaults = wp.media._galleryDefaults;
+       }
+
        wp.media.gallery = new wp.media.collection({
                tag: 'gallery',
                type : 'image',
                editTitle : wp.media.view.l10n.editGalleryTitle,
        wp.media.gallery = new wp.media.collection({
                tag: 'gallery',
                type : 'image',
                editTitle : wp.media.view.l10n.editGalleryTitle,
-               defaults : {
-                       itemtag: 'dl',
-                       icontag: 'dt',
-                       captiontag: 'dd',
-                       columns: '3',
-                       link: 'post',
-                       size: 'thumbnail',
-                       order: 'ASC',
-                       id: wp.media.view.settings.post && wp.media.view.settings.post.id,
-                       orderby : 'menu_order ID'
+               defaults : wp.media.galleryDefaults,
+
+               setDefaults: function( attrs ) {
+                       var self = this, changed = ! _.isEqual( wp.media.galleryDefaults, wp.media._galleryDefaults );
+                       _.each( this.defaults, function( value, key ) {
+                               attrs[ key ] = self.coerce( attrs, key );
+                               if ( value === attrs[ key ] && ( ! changed || value === wp.media._galleryDefaults[ key ] ) ) {
+                                       delete attrs[ key ];
+                               }
+                       } );
+                       return attrs;
                }
        });
 
                }
        });
 
                 * @param {string} html Content to send to the editor
                 */
                insert: function( html ) {
                 * @param {string} html Content to send to the editor
                 */
                insert: function( html ) {
-                       var editor,
+                       var editor, wpActiveEditor,
                                hasTinymce = ! _.isUndefined( window.tinymce ),
                                hasTinymce = ! _.isUndefined( window.tinymce ),
-                               hasQuicktags = ! _.isUndefined( window.QTags ),
+                               hasQuicktags = ! _.isUndefined( window.QTags );
+
+                       if ( this.activeEditor ) {
+                               wpActiveEditor = window.wpActiveEditor = this.activeEditor;
+                       } else {
                                wpActiveEditor = window.wpActiveEditor;
                                wpActiveEditor = window.wpActiveEditor;
+                       }
 
                        // Delegate to the global `send_to_editor` if it exists.
                        // This attempts to play nice with any themes/plugins that have
 
                        // Delegate to the global `send_to_editor` if it exists.
                        // This attempts to play nice with any themes/plugins that have
                        }
 
                        // If an empty `id` is provided, default to `wpActiveEditor`.
                        }
 
                        // If an empty `id` is provided, default to `wpActiveEditor`.
-                       id = wpActiveEditor;
+                       id = window.wpActiveEditor;
 
                        // If that doesn't work, fall back to `tinymce.activeEditor.id`.
                        if ( ! id && ! _.isUndefined( window.tinymce ) && tinymce.activeEditor ) {
 
                        // If that doesn't work, fall back to `tinymce.activeEditor.id`.
                        if ( ! id && ! _.isUndefined( window.tinymce ) && tinymce.activeEditor ) {
                        options = options || {};
 
                        id = this.id( id );
                        options = options || {};
 
                        id = this.id( id );
-/*
-                       // Save a bookmark of the caret position in IE.
-                       if ( ! _.isUndefined( window.tinymce ) ) {
-                               editor = tinymce.get( id );
-
-                               if ( tinymce.isIE && editor && ! editor.isHidden() ) {
-                                       editor.focus();
-                                       editor.windowManager.insertimagebookmark = editor.selection.getBookmark();
-                               }
-                       }
-*/
+                       this.activeEditor = id;
+
                        workflow = this.get( id );
 
                        // Redo workflow if state has changed
                        workflow = this.get( id );
 
                        // Redo workflow if state has changed
index 3237c3e50efd2aad2beabe9cbf7c02eca2b3cbe0..d9aba4e7def07f25e6b6c6deccb7d8e889ed8093 100644 (file)
@@ -1 +1 @@
-!function(a,b){var c={};wp.media.coerce=function(a,c){return b.isUndefined(a[c])&&!b.isUndefined(this.defaults[c])?a[c]=this.defaults[c]:"true"===a[c]?a[c]=!0:"false"===a[c]&&(a[c]=!1),a[c]},wp.media.string={props:function(a,c){var d,e,f,g,h,i=wp.media.view.settings.defaultProps;return h=function(a){return"image"!==a.type||a.alt||(a.alt=a.caption||a.title||"",a.alt=a.alt.replace(/<\/?[^>]+>/g,""),a.alt=a.alt.replace(/[\r\n]+/g," ")),a},a=a?b.clone(a):{},c&&c.type&&(a.type=c.type),"image"===a.type&&(a=b.defaults(a||{},{align:i.align||getUserSetting("align","none"),size:i.size||getUserSetting("imgsize","medium"),url:"",classes:[]})),c?(a.title=a.title||c.title,d=a.link||i.link||getUserSetting("urlbutton","file"),"file"===d||"embed"===d?e=c.url:"post"===d?e=c.link:"custom"===d&&(e=a.linkUrl),a.linkUrl=e||"","image"===c.type?(a.classes.push("wp-image-"+c.id),g=c.sizes,f=g&&g[a.size]?g[a.size]:c,b.extend(a,b.pick(c,"align","caption","alt"),{width:f.width,height:f.height,src:f.url,captionId:"attachment_"+c.id})):"video"===c.type||"audio"===c.type?b.extend(a,b.pick(c,"title","type","icon","mime")):(a.title=a.title||c.filename,a.rel=a.rel||"attachment wp-att-"+c.id),h(a)):h(a)},link:function(a,b){var c;return a=wp.media.string.props(a,b),c={tag:"a",content:a.title,attrs:{href:a.linkUrl}},a.rel&&(c.attrs.rel=a.rel),wp.html.string(c)},audio:function(a,b){return wp.media.string._audioVideo("audio",a,b)},video:function(a,b){return wp.media.string._audioVideo("video",a,b)},_audioVideo:function(a,c,d){var e,f,g;return c=wp.media.string.props(c,d),"embed"!==c.link?wp.media.string.link(c):(e={},"video"===a&&(d.image&&-1===d.image.src.indexOf(d.icon)&&(e.poster=d.image.src),d.width&&(e.width=d.width),d.height&&(e.height=d.height)),g=d.filename.split(".").pop(),b.contains(wp.media.view.settings.embedExts,g)?(e[g]=d.url,f=wp.shortcode.string({tag:a,attrs:e})):wp.media.string.link(c))},image:function(a,c){var d,e,f,g,h={};return a=wp.media.string.props(a,c),e=a.classes||[],h.src=b.isUndefined(c)?a.url:c.url,b.extend(h,b.pick(a,"width","height","alt")),a.align&&!a.caption&&e.push("align"+a.align),a.size&&e.push("size-"+a.size),h["class"]=b.compact(e).join(" "),d={tag:"img",attrs:h,single:!0},a.linkUrl&&(d={tag:"a",attrs:{href:a.linkUrl},content:d}),g=wp.html.string(d),a.caption&&(f={},h.width&&(f.width=h.width),a.captionId&&(f.id=a.captionId),a.align&&(f.align="align"+a.align),g=wp.shortcode.string({tag:"caption",attrs:f,content:g+" "+a.caption})),g}},wp.media.collection=function(a){var c={};return b.extend(a,{coerce:wp.media.coerce,attachments:function(a){var d,e,f,g,h=a.string(),i=c[h],j=this;return delete c[h],i?i:(d=b.defaults(a.attrs.named,this.defaults),e=b.pick(d,"orderby","order"),e.type=this.type,e.perPage=-1,void 0!==d.orderby&&(d._orderByField=d.orderby),"rand"===d.orderby&&(d._orderbyRandom=!0),(!d.orderby||/^menu_order(?: ID)?$/i.test(d.orderby))&&(e.orderby="menuOrder"),d.ids?(e.post__in=d.ids.split(","),e.orderby="post__in"):d.include&&(e.post__in=d.include.split(",")),d.exclude&&(e.post__not_in=d.exclude.split(",")),e.post__in||(e.uploadedTo=d.id),g=b.omit(d,"id","ids","include","exclude","orderby","order"),b.each(this.defaults,function(a,b){g[b]=j.coerce(g,b)}),f=wp.media.query(e),f[this.tag]=new Backbone.Model(g),f)},shortcode:function(a){var d,e,f=a.props.toJSON(),g=b.pick(f,"orderby","order"),h=this;return a.type&&(g.type=a.type,delete a.type),a[this.tag]&&b.extend(g,a[this.tag].toJSON()),g.ids=a.pluck("id"),f.uploadedTo&&(g.id=f.uploadedTo),delete g.orderby,g._orderbyRandom?g.orderby="rand":g._orderByField&&"rand"!=g._orderByField&&(g.orderby=g._orderByField),delete g._orderbyRandom,delete g._orderByField,g.ids&&"post__in"===g.orderby&&delete g.orderby,b.each(this.defaults,function(a,b){g[b]=h.coerce(g,b),a===g[b]&&delete g[b]}),d=new wp.shortcode({tag:this.tag,attrs:g,type:"single"}),e=new wp.media.model.Attachments(a.models,{props:f}),e[this.tag]=a[this.tag],c[d.string()]=e,d},edit:function(a){var c,d,e,f=wp.shortcode.next(this.tag,a),g=this.defaults.id;if(f&&f.content===a)return f=f.shortcode,b.isUndefined(f.get("id"))&&!b.isUndefined(g)&&f.set("id",g),c=this.attachments(f),d=new wp.media.model.Selection(c.models,{props:c.props.toJSON(),multiple:!0}),d[this.tag]=c[this.tag],d.more().done(function(){d.props.set({query:!1}),d.unmirror(),d.props.unset("orderby")}),this.frame&&this.frame.dispose(),e=f.attrs.named.type&&"video"===f.attrs.named.type?"video-"+this.tag+"-edit":this.tag+"-edit",this.frame=wp.media({frame:"post",state:e,title:this.editTitle,editing:!0,multiple:!0,selection:d}).open(),this.frame}})},wp.media.gallery=new wp.media.collection({tag:"gallery",type:"image",editTitle:wp.media.view.l10n.editGalleryTitle,defaults:{itemtag:"dl",icontag:"dt",captiontag:"dd",columns:"3",link:"post",size:"thumbnail",order:"ASC",id:wp.media.view.settings.post&&wp.media.view.settings.post.id,orderby:"menu_order ID"}}),wp.media.featuredImage={get:function(){return wp.media.view.settings.post.featuredImageId},set:function(b){var c=wp.media.view.settings;c.post.featuredImageId=b,wp.media.post("set-post-thumbnail",{json:!0,post_id:c.post.id,thumbnail_id:c.post.featuredImageId,_wpnonce:c.post.nonce}).done(function(b){a(".inside","#postimagediv").html(b)})},frame:function(){return this._frame?this._frame:(this._frame=wp.media({state:"featured-image",states:[new wp.media.controller.FeaturedImage,new wp.media.controller.EditImage]}),this._frame.on("toolbar:create:featured-image",function(a){this.createSelectToolbar(a,{text:wp.media.view.l10n.setFeaturedImage})},this._frame),this._frame.on("content:render:edit-image",function(){var a=this.state("featured-image").get("selection"),b=new wp.media.view.EditImage({model:a.single(),controller:this}).render();this.content.set(b),b.loadEditor()},this._frame),this._frame.state("featured-image").on("select",this.select),this._frame)},select:function(){var a=this.get("selection").single();wp.media.view.settings.post.featuredImageId&&wp.media.featuredImage.set(a?a.id:-1)},init:function(){a("#postimagediv").on("click","#set-post-thumbnail",function(a){a.preventDefault(),a.stopPropagation(),wp.media.featuredImage.frame().open()}).on("click","#remove-post-thumbnail",function(){wp.media.view.settings.post.featuredImageId=-1})}},a(wp.media.featuredImage.init),wp.media.editor={insert:function(a){var c,d=!b.isUndefined(window.tinymce),e=!b.isUndefined(window.QTags),f=window.wpActiveEditor;if(window.send_to_editor)return window.send_to_editor.apply(this,arguments);if(f)d&&(c=tinymce.get(f));else if(d&&tinymce.activeEditor)c=tinymce.activeEditor,f=window.wpActiveEditor=c.id;else if(!e)return!1;if(c&&!c.isHidden()?c.execCommand("mceInsertContent",!1,a):e?QTags.insertContent(a):document.getElementById(f).value+=a,window.tb_remove)try{window.tb_remove()}catch(g){}},add:function(d,e){var f=this.get(d);return f?f:(f=c[d]=wp.media(b.defaults(e||{},{frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0})),f.on("insert",function(c){var d=f.state();c=c||d.get("selection"),c&&a.when.apply(a,c.map(function(a){var b=d.display(a).toJSON();return this.send.attachment(b,a.toJSON())},this)).done(function(){wp.media.editor.insert(b.toArray(arguments).join("\n\n"))})},this),f.state("gallery-edit").on("update",function(a){this.insert(wp.media.gallery.shortcode(a).string())},this),f.state("playlist-edit").on("update",function(a){this.insert(wp.media.playlist.shortcode(a).string())},this),f.state("video-playlist-edit").on("update",function(a){this.insert(wp.media.playlist.shortcode(a).string())},this),f.state("embed").on("select",function(){var a=f.state(),c=a.get("type"),d=a.props.toJSON();d.url=d.url||"","link"===c?(b.defaults(d,{title:d.url,linkUrl:d.url}),this.send.link(d).done(function(a){wp.media.editor.insert(a)})):"image"===c&&(b.defaults(d,{title:d.url,linkUrl:"",align:"none",link:"none"}),"none"===d.link?d.linkUrl="":"file"===d.link&&(d.linkUrl=d.url),this.insert(wp.media.string.image(d)))},this),f.state("featured-image").on("select",wp.media.featuredImage.select),f.setState(f.options.state),f)},id:function(a){return a?a:(a=wpActiveEditor,a||b.isUndefined(window.tinymce)||!tinymce.activeEditor||(a=tinymce.activeEditor.id),a=a||"")},get:function(a){return a=this.id(a),c[a]},remove:function(a){a=this.id(a),delete c[a]},send:{attachment:function(a,c){var d,e,f=c.caption;return wp.media.view.settings.captions||delete c.caption,a=wp.media.string.props(a,c),d={id:c.id,post_content:c.description,post_excerpt:f},a.linkUrl&&(d.url=a.linkUrl),"image"===c.type?(e=wp.media.string.image(a),b.each({align:"align",size:"image-size",alt:"image_alt"},function(b,c){a[c]&&(d[b]=a[c])})):"video"===c.type?e=wp.media.string.video(a,c):"audio"===c.type?e=wp.media.string.audio(a,c):(e=wp.media.string.link(a),d.post_title=a.title),wp.media.post("send-attachment-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,attachment:d,html:e,post_id:wp.media.view.settings.post.id})},link:function(a){return wp.media.post("send-link-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,src:a.linkUrl,title:a.title,html:wp.media.string.link(a),post_id:wp.media.view.settings.post.id})}},open:function(a,b){var c;return b=b||{},a=this.id(a),c=this.get(a),(!c||c.options&&b.state!==c.options.state)&&(c=this.add(a,b)),c.open()},init:function(){a(document.body).on("click",".insert-media",function(b){var c=a(b.currentTarget),d=c.data("editor"),e={frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0};b.preventDefault(),c.blur(),c.hasClass("gallery")&&(e.state="gallery",e.title=wp.media.view.l10n.createGalleryTitle),wp.media.editor.open(d,e)}),(new wp.media.view.EditorUploader).render()}},b.bindAll(wp.media.editor,"open"),a(wp.media.editor.init)}(jQuery,_);
\ No newline at end of file
+!function(a,b){var c={};wp.media.coerce=function(a,c){return b.isUndefined(a[c])&&!b.isUndefined(this.defaults[c])?a[c]=this.defaults[c]:"true"===a[c]?a[c]=!0:"false"===a[c]&&(a[c]=!1),a[c]},wp.media.string={props:function(a,c){var d,e,f,g,h,i=wp.media.view.settings.defaultProps;return h=function(a){return"image"!==a.type||a.alt||(a.alt=a.caption||a.title||"",a.alt=a.alt.replace(/<\/?[^>]+>/g,""),a.alt=a.alt.replace(/[\r\n]+/g," ")),a},a=a?b.clone(a):{},c&&c.type&&(a.type=c.type),"image"===a.type&&(a=b.defaults(a||{},{align:i.align||getUserSetting("align","none"),size:i.size||getUserSetting("imgsize","medium"),url:"",classes:[]})),c?(a.title=a.title||c.title,d=a.link||i.link||getUserSetting("urlbutton","file"),"file"===d||"embed"===d?e=c.url:"post"===d?e=c.link:"custom"===d&&(e=a.linkUrl),a.linkUrl=e||"","image"===c.type?(a.classes.push("wp-image-"+c.id),g=c.sizes,f=g&&g[a.size]?g[a.size]:c,b.extend(a,b.pick(c,"align","caption","alt"),{width:f.width,height:f.height,src:f.url,captionId:"attachment_"+c.id})):"video"===c.type||"audio"===c.type?b.extend(a,b.pick(c,"title","type","icon","mime")):(a.title=a.title||c.filename,a.rel=a.rel||"attachment wp-att-"+c.id),h(a)):h(a)},link:function(a,b){var c;return a=wp.media.string.props(a,b),c={tag:"a",content:a.title,attrs:{href:a.linkUrl}},a.rel&&(c.attrs.rel=a.rel),wp.html.string(c)},audio:function(a,b){return wp.media.string._audioVideo("audio",a,b)},video:function(a,b){return wp.media.string._audioVideo("video",a,b)},_audioVideo:function(a,c,d){var e,f,g;return c=wp.media.string.props(c,d),"embed"!==c.link?wp.media.string.link(c):(e={},"video"===a&&(d.image&&-1===d.image.src.indexOf(d.icon)&&(e.poster=d.image.src),d.width&&(e.width=d.width),d.height&&(e.height=d.height)),g=d.filename.split(".").pop(),b.contains(wp.media.view.settings.embedExts,g)?(e[g]=d.url,f=wp.shortcode.string({tag:a,attrs:e})):wp.media.string.link(c))},image:function(a,c){var d,e,f,g,h={};return a=wp.media.string.props(a,c),e=a.classes||[],h.src=b.isUndefined(c)?a.url:c.url,b.extend(h,b.pick(a,"width","height","alt")),a.align&&!a.caption&&e.push("align"+a.align),a.size&&e.push("size-"+a.size),h["class"]=b.compact(e).join(" "),d={tag:"img",attrs:h,single:!0},a.linkUrl&&(d={tag:"a",attrs:{href:a.linkUrl},content:d}),g=wp.html.string(d),a.caption&&(f={},h.width&&(f.width=h.width),a.captionId&&(f.id=a.captionId),a.align&&(f.align="align"+a.align),g=wp.shortcode.string({tag:"caption",attrs:f,content:g+" "+a.caption})),g}},wp.media.embed={coerce:wp.media.coerce,defaults:{url:"",width:"",height:""},edit:function(a,c){var d,e,f={};return c?f.url=a.replace(/<[^>]+>/g,""):(e=wp.shortcode.next("embed",a).shortcode,f=b.defaults(e.attrs.named,this.defaults),e.content&&(f.url=e.content)),d=wp.media({frame:"post",state:"embed",metadata:f})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.url,delete a.url,new wp.shortcode({tag:"embed",attrs:a,content:c})}},wp.media.collection=function(a){var c={};return b.extend({coerce:wp.media.coerce,attachments:function(a){var d,e,f,g,h=a.string(),i=c[h],j=this;return delete c[h],i?i:(d=b.defaults(a.attrs.named,this.defaults),e=b.pick(d,"orderby","order"),e.type=this.type,e.perPage=-1,void 0!==d.orderby&&(d._orderByField=d.orderby),"rand"===d.orderby&&(d._orderbyRandom=!0),(!d.orderby||/^menu_order(?: ID)?$/i.test(d.orderby))&&(e.orderby="menuOrder"),d.ids?(e.post__in=d.ids.split(","),e.orderby="post__in"):d.include&&(e.post__in=d.include.split(",")),d.exclude&&(e.post__not_in=d.exclude.split(",")),e.post__in||(e.uploadedTo=d.id),g=b.omit(d,"id","ids","include","exclude","orderby","order"),b.each(this.defaults,function(a,b){g[b]=j.coerce(g,b)}),f=wp.media.query(e),f[this.tag]=new Backbone.Model(g),f)},shortcode:function(a){var d,e,f=a.props.toJSON(),g=b.pick(f,"orderby","order");return a.type&&(g.type=a.type,delete a.type),a[this.tag]&&b.extend(g,a[this.tag].toJSON()),g.ids=a.pluck("id"),f.uploadedTo&&(g.id=f.uploadedTo),delete g.orderby,g._orderbyRandom?g.orderby="rand":g._orderByField&&"rand"!=g._orderByField&&(g.orderby=g._orderByField),delete g._orderbyRandom,delete g._orderByField,g.ids&&"post__in"===g.orderby&&delete g.orderby,g=this.setDefaults(g),d=new wp.shortcode({tag:this.tag,attrs:g,type:"single"}),e=new wp.media.model.Attachments(a.models,{props:f}),e[this.tag]=a[this.tag],c[d.string()]=e,d},edit:function(a){var c,d,e,f=wp.shortcode.next(this.tag,a),g=this.defaults.id;if(f&&f.content===a)return f=f.shortcode,b.isUndefined(f.get("id"))&&!b.isUndefined(g)&&f.set("id",g),c=this.attachments(f),d=new wp.media.model.Selection(c.models,{props:c.props.toJSON(),multiple:!0}),d[this.tag]=c[this.tag],d.more().done(function(){d.props.set({query:!1}),d.unmirror(),d.props.unset("orderby")}),this.frame&&this.frame.dispose(),e=f.attrs.named.type&&"video"===f.attrs.named.type?"video-"+this.tag+"-edit":this.tag+"-edit",this.frame=wp.media({frame:"post",state:e,title:this.editTitle,editing:!0,multiple:!0,selection:d}).open(),this.frame},setDefaults:function(a){var c=this;return b.each(this.defaults,function(b,d){a[d]=c.coerce(a,d),b===a[d]&&delete a[d]}),a}},a)},wp.media._galleryDefaults={itemtag:"dl",icontag:"dt",captiontag:"dd",columns:"3",link:"post",size:"thumbnail",order:"ASC",id:wp.media.view.settings.post&&wp.media.view.settings.post.id,orderby:"menu_order ID"},wp.media.galleryDefaults=wp.media.view.settings.galleryDefaults?b.extend({},wp.media._galleryDefaults,wp.media.view.settings.galleryDefaults):wp.media._galleryDefaults,wp.media.gallery=new wp.media.collection({tag:"gallery",type:"image",editTitle:wp.media.view.l10n.editGalleryTitle,defaults:wp.media.galleryDefaults,setDefaults:function(a){var c=this,d=!b.isEqual(wp.media.galleryDefaults,wp.media._galleryDefaults);return b.each(this.defaults,function(b,e){a[e]=c.coerce(a,e),b!==a[e]||d&&b!==wp.media._galleryDefaults[e]||delete a[e]}),a}}),wp.media.featuredImage={get:function(){return wp.media.view.settings.post.featuredImageId},set:function(b){var c=wp.media.view.settings;c.post.featuredImageId=b,wp.media.post("set-post-thumbnail",{json:!0,post_id:c.post.id,thumbnail_id:c.post.featuredImageId,_wpnonce:c.post.nonce}).done(function(b){a(".inside","#postimagediv").html(b)})},frame:function(){return this._frame?this._frame:(this._frame=wp.media({state:"featured-image",states:[new wp.media.controller.FeaturedImage,new wp.media.controller.EditImage]}),this._frame.on("toolbar:create:featured-image",function(a){this.createSelectToolbar(a,{text:wp.media.view.l10n.setFeaturedImage})},this._frame),this._frame.on("content:render:edit-image",function(){var a=this.state("featured-image").get("selection"),b=new wp.media.view.EditImage({model:a.single(),controller:this}).render();this.content.set(b),b.loadEditor()},this._frame),this._frame.state("featured-image").on("select",this.select),this._frame)},select:function(){var a=this.get("selection").single();wp.media.view.settings.post.featuredImageId&&wp.media.featuredImage.set(a?a.id:-1)},init:function(){a("#postimagediv").on("click","#set-post-thumbnail",function(a){a.preventDefault(),a.stopPropagation(),wp.media.featuredImage.frame().open()}).on("click","#remove-post-thumbnail",function(){wp.media.view.settings.post.featuredImageId=-1})}},a(wp.media.featuredImage.init),wp.media.editor={insert:function(a){var c,d,e=!b.isUndefined(window.tinymce),f=!b.isUndefined(window.QTags);if(d=this.activeEditor?window.wpActiveEditor=this.activeEditor:window.wpActiveEditor,window.send_to_editor)return window.send_to_editor.apply(this,arguments);if(d)e&&(c=tinymce.get(d));else if(e&&tinymce.activeEditor)c=tinymce.activeEditor,d=window.wpActiveEditor=c.id;else if(!f)return!1;if(c&&!c.isHidden()?c.execCommand("mceInsertContent",!1,a):f?QTags.insertContent(a):document.getElementById(d).value+=a,window.tb_remove)try{window.tb_remove()}catch(g){}},add:function(d,e){var f=this.get(d);return f?f:(f=c[d]=wp.media(b.defaults(e||{},{frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0})),f.on("insert",function(c){var d=f.state();c=c||d.get("selection"),c&&a.when.apply(a,c.map(function(a){var b=d.display(a).toJSON();return this.send.attachment(b,a.toJSON())},this)).done(function(){wp.media.editor.insert(b.toArray(arguments).join("\n\n"))})},this),f.state("gallery-edit").on("update",function(a){this.insert(wp.media.gallery.shortcode(a).string())},this),f.state("playlist-edit").on("update",function(a){this.insert(wp.media.playlist.shortcode(a).string())},this),f.state("video-playlist-edit").on("update",function(a){this.insert(wp.media.playlist.shortcode(a).string())},this),f.state("embed").on("select",function(){var a=f.state(),c=a.get("type"),d=a.props.toJSON();d.url=d.url||"","link"===c?(b.defaults(d,{title:d.url,linkUrl:d.url}),this.send.link(d).done(function(a){wp.media.editor.insert(a)})):"image"===c&&(b.defaults(d,{title:d.url,linkUrl:"",align:"none",link:"none"}),"none"===d.link?d.linkUrl="":"file"===d.link&&(d.linkUrl=d.url),this.insert(wp.media.string.image(d)))},this),f.state("featured-image").on("select",wp.media.featuredImage.select),f.setState(f.options.state),f)},id:function(a){return a?a:(a=window.wpActiveEditor,a||b.isUndefined(window.tinymce)||!tinymce.activeEditor||(a=tinymce.activeEditor.id),a=a||"")},get:function(a){return a=this.id(a),c[a]},remove:function(a){a=this.id(a),delete c[a]},send:{attachment:function(a,c){var d,e,f=c.caption;return wp.media.view.settings.captions||delete c.caption,a=wp.media.string.props(a,c),d={id:c.id,post_content:c.description,post_excerpt:f},a.linkUrl&&(d.url=a.linkUrl),"image"===c.type?(e=wp.media.string.image(a),b.each({align:"align",size:"image-size",alt:"image_alt"},function(b,c){a[c]&&(d[b]=a[c])})):"video"===c.type?e=wp.media.string.video(a,c):"audio"===c.type?e=wp.media.string.audio(a,c):(e=wp.media.string.link(a),d.post_title=a.title),wp.media.post("send-attachment-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,attachment:d,html:e,post_id:wp.media.view.settings.post.id})},link:function(a){return wp.media.post("send-link-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,src:a.linkUrl,title:a.title,html:wp.media.string.link(a),post_id:wp.media.view.settings.post.id})}},open:function(a,b){var c;return b=b||{},a=this.id(a),this.activeEditor=a,c=this.get(a),(!c||c.options&&b.state!==c.options.state)&&(c=this.add(a,b)),c.open()},init:function(){a(document.body).on("click",".insert-media",function(b){var c=a(b.currentTarget),d=c.data("editor"),e={frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0};b.preventDefault(),c.blur(),c.hasClass("gallery")&&(e.state="gallery",e.title=wp.media.view.l10n.createGalleryTitle),wp.media.editor.open(d,e)}),(new wp.media.view.EditorUploader).render()}},b.bindAll(wp.media.editor,"open"),a(wp.media.editor.init)}(jQuery,_);
\ No newline at end of file
diff --git a/wp-includes/js/media-grid.js b/wp-includes/js/media-grid.js
new file mode 100644 (file)
index 0000000..043702c
--- /dev/null
@@ -0,0 +1,712 @@
+/* global _wpMediaViewsL10n, MediaElementPlayer, _wpMediaGridSettings */
+(function($, _, Backbone, wp) {
+       // Local reference to the WordPress media namespace.
+       var media = wp.media, l10n;
+
+       // Link localized strings and settings.
+       if ( media.view.l10n ) {
+               l10n = media.view.l10n;
+       } else {
+               l10n = media.view.l10n = typeof _wpMediaViewsL10n === 'undefined' ? {} : _wpMediaViewsL10n;
+               delete l10n.settings;
+       }
+
+       /**
+        * wp.media.controller.EditAttachmentMetadata
+        *
+        * A state for editing an attachment's metadata.
+        *
+        * @constructor
+        * @augments wp.media.controller.State
+        * @augments Backbone.Model
+        */
+       media.controller.EditAttachmentMetadata = media.controller.State.extend({
+               defaults: {
+                       id:      'edit-attachment',
+                       // Title string passed to the frame's title region view.
+                       title:   l10n.attachmentDetails,
+                       // Region mode defaults.
+                       content: 'edit-metadata',
+                       menu:    false,
+                       toolbar: false,
+                       router:  false
+               }
+       });
+
+       /**
+        * wp.media.view.MediaFrame.Manage
+        *
+        * A generic management frame workflow.
+        *
+        * Used in the media grid view.
+        *
+        * @constructor
+        * @augments wp.media.view.MediaFrame
+        * @augments wp.media.view.Frame
+        * @augments wp.media.View
+        * @augments wp.Backbone.View
+        * @augments Backbone.View
+        * @mixes wp.media.controller.StateMachine
+        */
+       media.view.MediaFrame.Manage = media.view.MediaFrame.extend({
+               /**
+                * @global wp.Uploader
+                */
+               initialize: function() {
+                       var self = this;
+                       _.defaults( this.options, {
+                               title:     '',
+                               modal:     false,
+                               selection: [],
+                               library:   {}, // Options hash for the query to the media library.
+                               multiple:  'add',
+                               state:     'library',
+                               uploader:  true,
+                               mode:      [ 'grid', 'edit' ]
+                       });
+
+                       this.$body = $( document.body );
+                       this.$window = $( window );
+                       this.$adminBar = $( '#wpadminbar' );
+                       this.$window.on( 'scroll resize', _.debounce( _.bind( this.fixPosition, this ), 15 ) );
+                       $( document ).on( 'click', '.add-new-h2', _.bind( this.addNewClickHandler, this ) );
+
+                       // Ensure core and media grid view UI is enabled.
+                       this.$el.addClass('wp-core-ui');
+
+                       // Force the uploader off if the upload limit has been exceeded or
+                       // if the browser isn't supported.
+                       if ( wp.Uploader.limitExceeded || ! wp.Uploader.browser.supported ) {
+                               this.options.uploader = false;
+                       }
+
+                       // Initialize a window-wide uploader.
+                       if ( this.options.uploader ) {
+                               this.uploader = new media.view.UploaderWindow({
+                                       controller: this,
+                                       uploader: {
+                                               dropzone:  document.body,
+                                               container: document.body
+                                       }
+                               }).render();
+                               this.uploader.ready();
+                               $('body').append( this.uploader.el );
+
+                               this.options.uploader = false;
+                       }
+
+                       this.gridRouter = new media.view.MediaFrame.Manage.Router();
+
+                       // Call 'initialize' directly on the parent class.
+                       media.view.MediaFrame.prototype.initialize.apply( this, arguments );
+
+                       // Append the frame view directly the supplied container.
+                       this.$el.appendTo( this.options.container );
+
+                       this.createStates();
+                       this.bindRegionModeHandlers();
+                       this.render();
+
+                       // Update the URL when entering search string (at most once per second)
+                       $( '#media-search-input' ).on( 'input', _.debounce( function(e) {
+                               var val = $( e.currentTarget ).val(), url = '';
+                               if ( val ) {
+                                       url += '?search=' + val;
+                               }
+                               self.gridRouter.navigate( self.gridRouter.baseUrl( url ) );
+                       }, 1000 ) );
+               },
+
+               /**
+                * Create the default states for the frame.
+                */
+               createStates: function() {
+                       var options = this.options;
+
+                       if ( this.options.states ) {
+                               return;
+                       }
+
+                       // Add the default states.
+                       this.states.add([
+                               new media.controller.Library({
+                                       library:            media.query( options.library ),
+                                       multiple:           options.multiple,
+                                       title:              options.title,
+                                       content:            'browse',
+                                       toolbar:            'select',
+                                       contentUserSetting: false,
+                                       filterable:         'all',
+                                       autoSelect:         false
+                               })
+                       ]);
+               },
+
+               /**
+                * Bind region mode activation events to proper handlers.
+                */
+               bindRegionModeHandlers: function() {
+                       this.on( 'content:create:browse', this.browseContent, this );
+
+                       // Handle a frame-level event for editing an attachment.
+                       this.on( 'edit:attachment', this.openEditAttachmentModal, this );
+
+                       this.on( 'select:activate', this.bindKeydown, this );
+                       this.on( 'select:deactivate', this.unbindKeydown, this );
+               },
+
+               handleKeydown: function( e ) {
+                       if ( 27 === e.which ) {
+                               e.preventDefault();
+                               this.deactivateMode( 'select' ).activateMode( 'edit' );
+                       }
+               },
+
+               bindKeydown: function() {
+                       this.$body.on( 'keydown.select', _.bind( this.handleKeydown, this ) );
+               },
+
+               unbindKeydown: function() {
+                       this.$body.off( 'keydown.select' );
+               },
+
+               fixPosition: function() {
+                       var $browser, $toolbar;
+                       if ( ! this.isModeActive( 'select' ) ) {
+                               return;
+                       }
+
+                       $browser = this.$('.attachments-browser');
+                       $toolbar = $browser.find('.media-toolbar');
+
+                       // Offset doesn't appear to take top margin into account, hence +16
+                       if ( ( $browser.offset().top + 16 ) < this.$window.scrollTop() + this.$adminBar.height() ) {
+                               $browser.addClass( 'fixed' );
+                               $toolbar.css('width', $browser.width() + 'px');
+                       } else {
+                               $browser.removeClass( 'fixed' );
+                               $toolbar.css('width', '');
+                       }
+               },
+
+               /**
+                * Click handler for the `Add New` button.
+                */
+               addNewClickHandler: function( event ) {
+                       event.preventDefault();
+                       this.trigger( 'toggle:upload:attachment' );
+               },
+
+               /**
+                * Open the Edit Attachment modal.
+                */
+               openEditAttachmentModal: function( model ) {
+                       // Create a new EditAttachment frame, passing along the library and the attachment model.
+                       wp.media( {
+                               frame:       'edit-attachments',
+                               controller:  this,
+                               library:     this.state().get('library'),
+                               model:       model
+                       } );
+               },
+
+               /**
+                * Create an attachments browser view within the content region.
+                *
+                * @param {Object} contentRegion Basic object with a `view` property, which
+                *                               should be set with the proper region view.
+                * @this wp.media.controller.Region
+                */
+               browseContent: function( contentRegion ) {
+                       var state = this.state();
+
+                       // Browse our library of attachments.
+                       this.browserView = contentRegion.view = new media.view.AttachmentsBrowser({
+                               controller: this,
+                               collection: state.get('library'),
+                               selection:  state.get('selection'),
+                               model:      state,
+                               sortable:   state.get('sortable'),
+                               search:     state.get('searchable'),
+                               filters:    state.get('filterable'),
+                               display:    state.get('displaySettings'),
+                               dragInfo:   state.get('dragInfo'),
+                               sidebar:    'errors',
+
+                               suggestedWidth:  state.get('suggestedWidth'),
+                               suggestedHeight: state.get('suggestedHeight'),
+
+                               AttachmentView: state.get('AttachmentView'),
+
+                               scrollElement: document
+                       });
+                       this.browserView.on( 'ready', _.bind( this.bindDeferred, this ) );
+
+                       this.errors = wp.Uploader.errors;
+                       this.errors.on( 'add remove reset', this.sidebarVisibility, this );
+               },
+
+               sidebarVisibility: function() {
+                       this.browserView.$( '.media-sidebar' ).toggle( !! this.errors.length );
+               },
+
+               bindDeferred: function() {
+                       if ( ! this.browserView.dfd ) {
+                               return;
+                       }
+                       this.browserView.dfd.done( _.bind( this.startHistory, this ) );
+               },
+
+               startHistory: function() {
+                       // Verify pushState support and activate
+                       if ( window.history && window.history.pushState ) {
+                               Backbone.history.start( {
+                                       root: _wpMediaGridSettings.adminUrl,
+                                       pushState: true
+                               } );
+                       }
+               }
+       });
+
+       /**
+        * A similar view to media.view.Attachment.Details
+        * for use in the Edit Attachment modal.
+        *
+        * @constructor
+        * @augments wp.media.view.Attachment.Details
+        * @augments wp.media.view.Attachment
+        * @augments wp.media.View
+        * @augments wp.Backbone.View
+        * @augments Backbone.View
+        */
+       media.view.Attachment.Details.TwoColumn = media.view.Attachment.Details.extend({
+               template: media.template( 'attachment-details-two-column' ),
+
+               editAttachment: function( event ) {
+                       event.preventDefault();
+                       this.controller.content.mode( 'edit-image' );
+               },
+
+               /**
+                * Noop this from parent class, doesn't apply here.
+                */
+               toggleSelectionHandler: function() {},
+
+               render: function() {
+                       media.view.Attachment.Details.prototype.render.apply( this, arguments );
+
+                       media.mixin.removeAllPlayers();
+                       this.$( 'audio, video' ).each( function (i, elem) {
+                               var el = media.view.MediaDetails.prepareSrc( elem );
+                               new MediaElementPlayer( el, media.mixin.mejsSettings );
+                       } );
+               }
+       });
+
+       /**
+        * A router for handling the browser history and application state.
+        *
+        * @constructor
+        * @augments Backbone.Router
+        */
+       media.view.MediaFrame.Manage.Router = Backbone.Router.extend({
+               routes: {
+                       'upload.php?item=:slug':    'showItem',
+                       'upload.php?search=:query': 'search'
+               },
+
+               // Map routes against the page URL
+               baseUrl: function( url ) {
+                       return 'upload.php' + url;
+               },
+
+               // Respond to the search route by filling the search field and trigggering the input event
+               search: function( query ) {
+                       $( '#media-search-input' ).val( query ).trigger( 'input' );
+               },
+
+               // Show the modal with a specific item
+               showItem: function( query ) {
+                       var library = media.frame.state().get('library'), item;
+
+                       // Trigger the media frame to open the correct item
+                       item = library.findWhere( { id: parseInt( query, 10 ) } );
+                       if ( item ) {
+                               media.frame.trigger( 'edit:attachment', item );
+                       } else {
+                               item = media.attachment( query );
+                               media.frame.listenTo( item, 'change', function( model ) {
+                                       media.frame.stopListening( item );
+                                       media.frame.trigger( 'edit:attachment', model );
+                               } );
+                               item.fetch();
+                       }
+               }
+       });
+
+       media.view.EditImage.Details = media.view.EditImage.extend({
+               initialize: function( options ) {
+                       this.editor = window.imageEdit;
+                       this.frame = options.frame;
+                       this.controller = options.controller;
+                       media.View.prototype.initialize.apply( this, arguments );
+               },
+
+               back: function() {
+                       this.frame.content.mode( 'edit-metadata' );
+               },
+
+               save: function() {
+                       var self = this;
+
+                       this.model.fetch().done( function() {
+                               self.frame.content.mode( 'edit-metadata' );
+                       });
+               }
+       });
+
+       /**
+        * A frame for editing the details of a specific media item.
+        *
+        * Opens in a modal by default.
+        *
+        * Requires an attachment model to be passed in the options hash under `model`.
+        *
+        * @constructor
+        * @augments wp.media.view.Frame
+        * @augments wp.media.View
+        * @augments wp.Backbone.View
+        * @augments Backbone.View
+        * @mixes wp.media.controller.StateMachine
+        */
+       media.view.MediaFrame.EditAttachments = media.view.MediaFrame.extend({
+
+               className: 'edit-attachment-frame',
+               template: media.template( 'edit-attachment-frame' ),
+               regions:   [ 'title', 'content' ],
+
+               events: {
+                       'click .left':  'previousMediaItem',
+                       'click .right': 'nextMediaItem',
+                       'keydown':      'keyEvent'
+               },
+
+               initialize: function() {
+                       media.view.Frame.prototype.initialize.apply( this, arguments );
+
+                       _.defaults( this.options, {
+                               modal: true,
+                               state: 'edit-attachment'
+                       });
+
+                       this.controller = this.options.controller;
+                       this.gridRouter = this.controller.gridRouter;
+                       this.library = this.options.library;
+
+                       if ( this.options.model ) {
+                               this.model = this.options.model;
+                       }
+
+                       this.bindHandlers();
+                       this.createStates();
+                       this.createModal();
+
+                       this.title.mode( 'default' );
+                       this.toggleNav();
+               },
+
+               bindHandlers: function() {
+                       // Bind default title creation.
+                       this.on( 'title:create:default', this.createTitle, this );
+
+                       // Close the modal if the attachment is deleted.
+                       this.listenTo( this.model, 'change:status destroy', this.close, this );
+
+                       this.on( 'content:create:edit-metadata', this.editMetadataMode, this );
+                       this.on( 'content:create:edit-image', this.editImageMode, this );
+                       this.on( 'content:render:edit-image', this.editImageModeRender, this );
+                       this.on( 'close', this.detach );
+               },
+
+               createModal: function() {
+                       var self = this;
+
+                       // Initialize modal container view.
+                       if ( this.options.modal ) {
+                               this.modal = new media.view.Modal({
+                                       controller: this,
+                                       title:      this.options.title
+                               });
+
+                               this.modal.on( 'open', function () {
+                                       $( 'body' ).on( 'keydown.media-modal', _.bind( self.keyEvent, self ) );
+                               } );
+
+                               // Completely destroy the modal DOM element when closing it.
+                               this.modal.on( 'close', function() {
+                                       self.modal.remove();
+                                       $( 'body' ).off( 'keydown.media-modal' ); /* remove the keydown event */
+                                       // Restore the original focus item if possible
+                                       $( 'li.attachment[data-id="' + self.model.get( 'id' ) +'"]' ).focus();
+                                       self.resetRoute();
+                               } );
+
+                               // Set this frame as the modal's content.
+                               this.modal.content( this );
+                               this.modal.open();
+                       }
+               },
+
+               /**
+                * Add the default states to the frame.
+                */
+               createStates: function() {
+                       this.states.add([
+                               new media.controller.EditAttachmentMetadata( { model: this.model } )
+                       ]);
+               },
+
+               /**
+                * Content region rendering callback for the `edit-metadata` mode.
+                *
+                * @param {Object} contentRegion Basic object with a `view` property, which
+                *                               should be set with the proper region view.
+                */
+               editMetadataMode: function( contentRegion ) {
+                       contentRegion.view = new media.view.Attachment.Details.TwoColumn({
+                               controller: this,
+                               model:      this.model
+                       });
+
+                       /**
+                        * Attach a subview to display fields added via the
+                        * `attachment_fields_to_edit` filter.
+                        */
+                       contentRegion.view.views.set( '.attachment-compat', new media.view.AttachmentCompat({
+                               controller: this,
+                               model:      this.model
+                       }) );
+
+                       // Update browser url when navigating media details
+                       if ( this.model ) {
+                               this.gridRouter.navigate( this.gridRouter.baseUrl( '?item=' + this.model.id ) );
+                       }
+               },
+
+               /**
+                * Render the EditImage view into the frame's content region.
+                *
+                * @param {Object} contentRegion Basic object with a `view` property, which
+                *                               should be set with the proper region view.
+                */
+               editImageMode: function( contentRegion ) {
+                       var editImageController = new media.controller.EditImage( {
+                               model: this.model,
+                               frame: this
+                       } );
+                       // Noop some methods.
+                       editImageController._toolbar = function() {};
+                       editImageController._router = function() {};
+                       editImageController._menu = function() {};
+
+                       contentRegion.view = new media.view.EditImage.Details( {
+                               model: this.model,
+                               frame: this,
+                               controller: editImageController
+                       } );
+               },
+
+               editImageModeRender: function( view ) {
+                       view.on( 'ready', view.loadEditor );
+               },
+
+               toggleNav: function() {
+                       this.$('.left').toggleClass( 'disabled', ! this.hasPrevious() );
+                       this.$('.right').toggleClass( 'disabled', ! this.hasNext() );
+               },
+
+               /**
+                * Rerender the view.
+                */
+               rerender: function() {
+                       // Only rerender the `content` region.
+                       if ( this.content.mode() !== 'edit-metadata' ) {
+                               this.content.mode( 'edit-metadata' );
+                       } else {
+                               this.content.render();
+                       }
+
+                       this.toggleNav();
+               },
+
+               /**
+                * Click handler to switch to the previous media item.
+                */
+               previousMediaItem: function() {
+                       if ( ! this.hasPrevious() ) {
+                               this.$( '.left' ).blur();
+                               return;
+                       }
+                       this.model = this.library.at( this.getCurrentIndex() - 1 );
+                       this.rerender();
+                       this.$( '.left' ).focus();
+               },
+
+               /**
+                * Click handler to switch to the next media item.
+                */
+               nextMediaItem: function() {
+                       if ( ! this.hasNext() ) {
+                               this.$( '.right' ).blur();
+                               return;
+                       }
+                       this.model = this.library.at( this.getCurrentIndex() + 1 );
+                       this.rerender();
+                       this.$( '.right' ).focus();
+               },
+
+               getCurrentIndex: function() {
+                       return this.library.indexOf( this.model );
+               },
+
+               hasNext: function() {
+                       return ( this.getCurrentIndex() + 1 ) < this.library.length;
+               },
+
+               hasPrevious: function() {
+                       return ( this.getCurrentIndex() - 1 ) > -1;
+               },
+               /**
+                * Respond to the keyboard events: right arrow, left arrow, escape.
+                */
+               keyEvent: function( event ) {
+                       if ( 'INPUT' === event.target.tagName && ! ( event.target.readOnly || event.target.disabled ) ) {
+                               return;
+                       }
+
+                       // The right arrow key
+                       if ( 39 === event.keyCode ) {
+                               this.nextMediaItem();
+                       }
+                       // The left arrow key
+                       if ( 37 === event.keyCode ) {
+                               this.previousMediaItem();
+                       }
+               },
+
+               resetRoute: function() {
+                       this.gridRouter.navigate( this.gridRouter.baseUrl( '' ) );
+               }
+       });
+
+       media.view.SelectModeToggleButton = media.view.Button.extend({
+               initialize: function() {
+                       media.view.Button.prototype.initialize.apply( this, arguments );
+                       this.listenTo( this.controller, 'select:activate select:deactivate', this.toggleBulkEditHandler );
+                       this.listenTo( this.controller, 'selection:action:done', this.back );
+               },
+
+               back: function () {
+                       this.controller.deactivateMode( 'select' ).activateMode( 'edit' );
+               },
+
+               click: function() {
+                       media.view.Button.prototype.click.apply( this, arguments );
+                       if ( this.controller.isModeActive( 'select' ) ) {
+                               this.back();
+                       } else {
+                               this.controller.deactivateMode( 'edit' ).activateMode( 'select' );
+                       }
+               },
+
+               render: function() {
+                       media.view.Button.prototype.render.apply( this, arguments );
+                       this.$el.addClass( 'select-mode-toggle-button' );
+                       return this;
+               },
+
+               toggleBulkEditHandler: function() {
+                       var toolbar = this.controller.content.get().toolbar, children;
+
+                       children = toolbar.$( '.media-toolbar-secondary > *, .media-toolbar-primary > *');
+
+                       if ( this.controller.isModeActive( 'select' ) ) {
+                               this.model.set( 'text', l10n.cancelSelection );
+                               children.not( '.delete-selected-button' ).hide();
+                               toolbar.$( '.select-mode-toggle-button' ).show();
+                               toolbar.$( '.delete-selected-button' ).removeClass( 'hidden' );
+                       } else {
+                               this.model.set( 'text', l10n.bulkSelect );
+                               this.controller.content.get().$el.removeClass('fixed');
+                               toolbar.$el.css('width', '');
+                               toolbar.$( '.delete-selected-button' ).addClass( 'hidden' );
+                               children.not( '.spinner, .delete-selected-button' ).show();
+                               this.controller.state().get( 'selection' ).reset();
+                       }
+               }
+       });
+
+       media.view.DeleteSelectedButton = media.view.Button.extend({
+               initialize: function() {
+                       media.view.Button.prototype.initialize.apply( this, arguments );
+                       if ( this.options.filters ) {
+                               this.listenTo( this.options.filters.model, 'change', this.filterChange );
+                       }
+                       this.listenTo( this.controller, 'selection:toggle', this.toggleDisabled );
+               },
+
+               filterChange: function( model ) {
+                       if ( 'trash' === model.get( 'status' ) ) {
+                               this.model.set( 'text', l10n.untrashSelected );
+                       } else if ( media.view.settings.mediaTrash ) {
+                               this.model.set( 'text', l10n.trashSelected );
+                       } else {
+                               this.model.set( 'text', l10n.deleteSelected );
+                       }
+               },
+
+               toggleDisabled: function() {
+                       this.model.set( 'disabled', ! this.controller.state().get( 'selection' ).length );
+               },
+
+               render: function() {
+                       media.view.Button.prototype.render.apply( this, arguments );
+                       if ( this.controller.isModeActive( 'select' ) ) {
+                               this.$el.addClass( 'delete-selected-button' );
+                       } else {
+                               this.$el.addClass( 'delete-selected-button hidden' );
+                       }
+                       return this;
+               }
+       });
+
+       /**
+        * A filter dropdown for month/dates.
+        */
+       media.view.DateFilter = media.view.AttachmentFilters.extend({
+               id: 'media-attachment-date-filters',
+
+               createFilters: function() {
+                       var filters = {};
+                       _.each( media.view.settings.months || {}, function( value, index ) {
+                               filters[ index ] = {
+                                       text: value.text,
+                                       props: {
+                                               year: value.year,
+                                               monthnum: value.month
+                                       }
+                               };
+                       });
+                       filters.all = {
+                               text:  l10n.allDates,
+                               props: {
+                                       monthnum: false,
+                                       year:  false
+                               },
+                               priority: 10
+                       };
+                       this.filters = filters;
+               }
+       });
+
+}(jQuery, _, Backbone, wp));
diff --git a/wp-includes/js/media-grid.min.js b/wp-includes/js/media-grid.min.js
new file mode 100644 (file)
index 0000000..5d1d765
--- /dev/null
@@ -0,0 +1 @@
+!function(a,b,c,d){var e,f=d.media;f.view.l10n?e=f.view.l10n:(e=f.view.l10n="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n,delete e.settings),f.controller.EditAttachmentMetadata=f.controller.State.extend({defaults:{id:"edit-attachment",title:e.attachmentDetails,content:"edit-metadata",menu:!1,toolbar:!1,router:!1}}),f.view.MediaFrame.Manage=f.view.MediaFrame.extend({initialize:function(){var c=this;b.defaults(this.options,{title:"",modal:!1,selection:[],library:{},multiple:"add",state:"library",uploader:!0,mode:["grid","edit"]}),this.$body=a(document.body),this.$window=a(window),this.$adminBar=a("#wpadminbar"),this.$window.on("scroll resize",b.debounce(b.bind(this.fixPosition,this),15)),a(document).on("click",".add-new-h2",b.bind(this.addNewClickHandler,this)),this.$el.addClass("wp-core-ui"),(d.Uploader.limitExceeded||!d.Uploader.browser.supported)&&(this.options.uploader=!1),this.options.uploader&&(this.uploader=new f.view.UploaderWindow({controller:this,uploader:{dropzone:document.body,container:document.body}}).render(),this.uploader.ready(),a("body").append(this.uploader.el),this.options.uploader=!1),this.gridRouter=new f.view.MediaFrame.Manage.Router,f.view.MediaFrame.prototype.initialize.apply(this,arguments),this.$el.appendTo(this.options.container),this.createStates(),this.bindRegionModeHandlers(),this.render(),a("#media-search-input").on("input",b.debounce(function(b){var d=a(b.currentTarget).val(),e="";d&&(e+="?search="+d),c.gridRouter.navigate(c.gridRouter.baseUrl(e))},1e3))},createStates:function(){var a=this.options;this.options.states||this.states.add([new f.controller.Library({library:f.query(a.library),multiple:a.multiple,title:a.title,content:"browse",toolbar:"select",contentUserSetting:!1,filterable:"all",autoSelect:!1})])},bindRegionModeHandlers:function(){this.on("content:create:browse",this.browseContent,this),this.on("edit:attachment",this.openEditAttachmentModal,this),this.on("select:activate",this.bindKeydown,this),this.on("select:deactivate",this.unbindKeydown,this)},handleKeydown:function(a){27===a.which&&(a.preventDefault(),this.deactivateMode("select").activateMode("edit"))},bindKeydown:function(){this.$body.on("keydown.select",b.bind(this.handleKeydown,this))},unbindKeydown:function(){this.$body.off("keydown.select")},fixPosition:function(){var a,b;this.isModeActive("select")&&(a=this.$(".attachments-browser"),b=a.find(".media-toolbar"),a.offset().top+16<this.$window.scrollTop()+this.$adminBar.height()?(a.addClass("fixed"),b.css("width",a.width()+"px")):(a.removeClass("fixed"),b.css("width","")))},addNewClickHandler:function(a){a.preventDefault(),this.trigger("toggle:upload:attachment")},openEditAttachmentModal:function(a){d.media({frame:"edit-attachments",controller:this,library:this.state().get("library"),model:a})},browseContent:function(a){var c=this.state();this.browserView=a.view=new f.view.AttachmentsBrowser({controller:this,collection:c.get("library"),selection:c.get("selection"),model:c,sortable:c.get("sortable"),search:c.get("searchable"),filters:c.get("filterable"),display:c.get("displaySettings"),dragInfo:c.get("dragInfo"),sidebar:"errors",suggestedWidth:c.get("suggestedWidth"),suggestedHeight:c.get("suggestedHeight"),AttachmentView:c.get("AttachmentView"),scrollElement:document}),this.browserView.on("ready",b.bind(this.bindDeferred,this)),this.errors=d.Uploader.errors,this.errors.on("add remove reset",this.sidebarVisibility,this)},sidebarVisibility:function(){this.browserView.$(".media-sidebar").toggle(!!this.errors.length)},bindDeferred:function(){this.browserView.dfd&&this.browserView.dfd.done(b.bind(this.startHistory,this))},startHistory:function(){window.history&&window.history.pushState&&c.history.start({root:_wpMediaGridSettings.adminUrl,pushState:!0})}}),f.view.Attachment.Details.TwoColumn=f.view.Attachment.Details.extend({template:f.template("attachment-details-two-column"),editAttachment:function(a){a.preventDefault(),this.controller.content.mode("edit-image")},toggleSelectionHandler:function(){},render:function(){f.view.Attachment.Details.prototype.render.apply(this,arguments),f.mixin.removeAllPlayers(),this.$("audio, video").each(function(a,b){var c=f.view.MediaDetails.prepareSrc(b);new MediaElementPlayer(c,f.mixin.mejsSettings)})}}),f.view.MediaFrame.Manage.Router=c.Router.extend({routes:{"upload.php?item=:slug":"showItem","upload.php?search=:query":"search"},baseUrl:function(a){return"upload.php"+a},search:function(b){a("#media-search-input").val(b).trigger("input")},showItem:function(a){var b,c=f.frame.state().get("library");b=c.findWhere({id:parseInt(a,10)}),b?f.frame.trigger("edit:attachment",b):(b=f.attachment(a),f.frame.listenTo(b,"change",function(a){f.frame.stopListening(b),f.frame.trigger("edit:attachment",a)}),b.fetch())}}),f.view.EditImage.Details=f.view.EditImage.extend({initialize:function(a){this.editor=window.imageEdit,this.frame=a.frame,this.controller=a.controller,f.View.prototype.initialize.apply(this,arguments)},back:function(){this.frame.content.mode("edit-metadata")},save:function(){var a=this;this.model.fetch().done(function(){a.frame.content.mode("edit-metadata")})}}),f.view.MediaFrame.EditAttachments=f.view.MediaFrame.extend({className:"edit-attachment-frame",template:f.template("edit-attachment-frame"),regions:["title","content"],events:{"click .left":"previousMediaItem","click .right":"nextMediaItem",keydown:"keyEvent"},initialize:function(){f.view.Frame.prototype.initialize.apply(this,arguments),b.defaults(this.options,{modal:!0,state:"edit-attachment"}),this.controller=this.options.controller,this.gridRouter=this.controller.gridRouter,this.library=this.options.library,this.options.model&&(this.model=this.options.model),this.bindHandlers(),this.createStates(),this.createModal(),this.title.mode("default"),this.toggleNav()},bindHandlers:function(){this.on("title:create:default",this.createTitle,this),this.listenTo(this.model,"change:status destroy",this.close,this),this.on("content:create:edit-metadata",this.editMetadataMode,this),this.on("content:create:edit-image",this.editImageMode,this),this.on("content:render:edit-image",this.editImageModeRender,this),this.on("close",this.detach)},createModal:function(){var c=this;this.options.modal&&(this.modal=new f.view.Modal({controller:this,title:this.options.title}),this.modal.on("open",function(){a("body").on("keydown.media-modal",b.bind(c.keyEvent,c))}),this.modal.on("close",function(){c.modal.remove(),a("body").off("keydown.media-modal"),a('li.attachment[data-id="'+c.model.get("id")+'"]').focus(),c.resetRoute()}),this.modal.content(this),this.modal.open())},createStates:function(){this.states.add([new f.controller.EditAttachmentMetadata({model:this.model})])},editMetadataMode:function(a){a.view=new f.view.Attachment.Details.TwoColumn({controller:this,model:this.model}),a.view.views.set(".attachment-compat",new f.view.AttachmentCompat({controller:this,model:this.model})),this.model&&this.gridRouter.navigate(this.gridRouter.baseUrl("?item="+this.model.id))},editImageMode:function(a){var b=new f.controller.EditImage({model:this.model,frame:this});b._toolbar=function(){},b._router=function(){},b._menu=function(){},a.view=new f.view.EditImage.Details({model:this.model,frame:this,controller:b})},editImageModeRender:function(a){a.on("ready",a.loadEditor)},toggleNav:function(){this.$(".left").toggleClass("disabled",!this.hasPrevious()),this.$(".right").toggleClass("disabled",!this.hasNext())},rerender:function(){"edit-metadata"!==this.content.mode()?this.content.mode("edit-metadata"):this.content.render(),this.toggleNav()},previousMediaItem:function(){return this.hasPrevious()?(this.model=this.library.at(this.getCurrentIndex()-1),this.rerender(),void this.$(".left").focus()):void this.$(".left").blur()},nextMediaItem:function(){return this.hasNext()?(this.model=this.library.at(this.getCurrentIndex()+1),this.rerender(),void this.$(".right").focus()):void this.$(".right").blur()},getCurrentIndex:function(){return this.library.indexOf(this.model)},hasNext:function(){return this.getCurrentIndex()+1<this.library.length},hasPrevious:function(){return this.getCurrentIndex()-1>-1},keyEvent:function(a){("INPUT"!==a.target.tagName||a.target.readOnly||a.target.disabled)&&(39===a.keyCode&&this.nextMediaItem(),37===a.keyCode&&this.previousMediaItem())},resetRoute:function(){this.gridRouter.navigate(this.gridRouter.baseUrl(""))}}),f.view.SelectModeToggleButton=f.view.Button.extend({initialize:function(){f.view.Button.prototype.initialize.apply(this,arguments),this.listenTo(this.controller,"select:activate select:deactivate",this.toggleBulkEditHandler),this.listenTo(this.controller,"selection:action:done",this.back)},back:function(){this.controller.deactivateMode("select").activateMode("edit")},click:function(){f.view.Button.prototype.click.apply(this,arguments),this.controller.isModeActive("select")?this.back():this.controller.deactivateMode("edit").activateMode("select")},render:function(){return f.view.Button.prototype.render.apply(this,arguments),this.$el.addClass("select-mode-toggle-button"),this},toggleBulkEditHandler:function(){var a,b=this.controller.content.get().toolbar;a=b.$(".media-toolbar-secondary > *, .media-toolbar-primary > *"),this.controller.isModeActive("select")?(this.model.set("text",e.cancelSelection),a.not(".delete-selected-button").hide(),b.$(".select-mode-toggle-button").show(),b.$(".delete-selected-button").removeClass("hidden")):(this.model.set("text",e.bulkSelect),this.controller.content.get().$el.removeClass("fixed"),b.$el.css("width",""),b.$(".delete-selected-button").addClass("hidden"),a.not(".spinner, .delete-selected-button").show(),this.controller.state().get("selection").reset())}}),f.view.DeleteSelectedButton=f.view.Button.extend({initialize:function(){f.view.Button.prototype.initialize.apply(this,arguments),this.options.filters&&this.listenTo(this.options.filters.model,"change",this.filterChange),this.listenTo(this.controller,"selection:toggle",this.toggleDisabled)},filterChange:function(a){"trash"===a.get("status")?this.model.set("text",e.untrashSelected):f.view.settings.mediaTrash?this.model.set("text",e.trashSelected):this.model.set("text",e.deleteSelected)},toggleDisabled:function(){this.model.set("disabled",!this.controller.state().get("selection").length)},render:function(){return f.view.Button.prototype.render.apply(this,arguments),this.$el.addClass(this.controller.isModeActive("select")?"delete-selected-button":"delete-selected-button hidden"),this}}),f.view.DateFilter=f.view.AttachmentFilters.extend({id:"media-attachment-date-filters",createFilters:function(){var a={};b.each(f.view.settings.months||{},function(b,c){a[c]={text:b.text,props:{year:b.year,monthnum:b.month}}}),a.all={text:e.allDates,props:{monthnum:!1,year:!1},priority:10},this.filters=a}})}(jQuery,_,Backbone,wp);
\ No newline at end of file
index 1dd719688ecbad869b9983a4878f633abeb4be7b..ac7ee938d6af31f6ab0b5d26c4d6c7f175a74012 100644 (file)
@@ -5,7 +5,7 @@ window.wp = window.wp || {};
        var Attachment, Attachments, Query, PostImage, compare, l10n, media;
 
        /**
        var Attachment, Attachments, Query, PostImage, compare, l10n, media;
 
        /**
-        * wp.media( attributes )
+        * Create and return a media frame.
         *
         * Handles the default media experience. Automatically creates
         * and opens a media frame, and returns the result.
         *
         * Handles the default media experience. Automatically creates
         * and opens a media frame, and returns the result.
@@ -30,12 +30,16 @@ window.wp = window.wp || {};
                        frame = new MediaFrame.Select( attributes );
                } else if ( 'post' === attributes.frame && MediaFrame.Post ) {
                        frame = new MediaFrame.Post( attributes );
                        frame = new MediaFrame.Select( attributes );
                } else if ( 'post' === attributes.frame && MediaFrame.Post ) {
                        frame = new MediaFrame.Post( attributes );
+               } else if ( 'manage' === attributes.frame && MediaFrame.Manage ) {
+                       frame = new MediaFrame.Manage( attributes );
                } else if ( 'image' === attributes.frame && MediaFrame.ImageDetails ) {
                        frame = new MediaFrame.ImageDetails( attributes );
                } else if ( 'audio' === attributes.frame && MediaFrame.AudioDetails ) {
                        frame = new MediaFrame.AudioDetails( attributes );
                } else if ( 'video' === attributes.frame && MediaFrame.VideoDetails ) {
                        frame = new MediaFrame.VideoDetails( attributes );
                } else if ( 'image' === attributes.frame && MediaFrame.ImageDetails ) {
                        frame = new MediaFrame.ImageDetails( attributes );
                } else if ( 'audio' === attributes.frame && MediaFrame.AudioDetails ) {
                        frame = new MediaFrame.AudioDetails( attributes );
                } else if ( 'video' === attributes.frame && MediaFrame.VideoDetails ) {
                        frame = new MediaFrame.VideoDetails( attributes );
+               } else if ( 'edit-attachments' === attributes.frame && MediaFrame.EditAttachments ) {
+                       frame = new MediaFrame.EditAttachments( attributes );
                }
 
                delete attributes.frame;
                }
 
                delete attributes.frame;
@@ -820,9 +824,12 @@ window.wp = window.wp || {};
                /**
                 * @access private
                 */
                /**
                 * @access private
                 */
-               _requery: function() {
+               _requery: function( refresh ) {
+                       var props;
                        if ( this.props.get('query') ) {
                        if ( this.props.get('query') ) {
-                               this.mirror( Query.get( this.props.toJSON() ) );
+                               props = this.props.toJSON();
+                               props.cache = ( true !== refresh );
+                               this.mirror( Query.get( props ) );
                        }
                },
                /**
                        }
                },
                /**
@@ -943,6 +950,22 @@ window.wp = window.wp || {};
                                }
 
                                return uploadedTo === attachment.get('uploadedTo');
                                }
 
                                return uploadedTo === attachment.get('uploadedTo');
+                       },
+                       /**
+                        * @static
+                        * @param {wp.media.model.Attachment} attachment
+                        *
+                        * @this wp.media.model.Attachments
+                        *
+                        * @returns {Boolean}
+                        */
+                       status: function( attachment ) {
+                               var status = this.props.get('status');
+                               if ( _.isUndefined( status ) ) {
+                                       return true;
+                               }
+
+                               return status === attachment.get('status');
                        }
                }
        });
                        }
                }
        });
@@ -1140,7 +1163,8 @@ window.wp = window.wp || {};
                        'type':      'post_mime_type',
                        'perPage':   'posts_per_page',
                        'menuOrder': 'menu_order',
                        'type':      'post_mime_type',
                        'perPage':   'posts_per_page',
                        'menuOrder': 'menu_order',
-                       'uploadedTo': 'post_parent'
+                       'uploadedTo': 'post_parent',
+                       'status':     'post_status'
                },
                /**
                 * @static
                },
                /**
                 * @static
@@ -1165,11 +1189,13 @@ window.wp = window.wp || {};
                                var args     = {},
                                        orderby  = Query.orderby,
                                        defaults = Query.defaultProps,
                                var args     = {},
                                        orderby  = Query.orderby,
                                        defaults = Query.defaultProps,
-                                       query;
+                                       query,
+                                       cache    = !! props.cache || _.isUndefined( props.cache );
 
                                // Remove the `query` property. This isn't linked to a query,
                                // this *is* the query.
                                delete props.query;
 
                                // Remove the `query` property. This isn't linked to a query,
                                // this *is* the query.
                                delete props.query;
+                               delete props.cache;
 
                                // Fill default args.
                                _.defaults( props, defaults );
 
                                // Fill default args.
                                _.defaults( props, defaults );
@@ -1203,9 +1229,13 @@ window.wp = window.wp || {};
                                args.orderby = orderby.valuemap[ props.orderby ] || props.orderby;
 
                                // Search the query cache for matches.
                                args.orderby = orderby.valuemap[ props.orderby ] || props.orderby;
 
                                // Search the query cache for matches.
-                               query = _.find( queries, function( query ) {
-                                       return _.isEqual( query.args, args );
-                               });
+                               if ( cache ) {
+                                       query = _.find( queries, function( query ) {
+                                               return _.isEqual( query.args, args );
+                                       });
+                               } else {
+                                       queries = [];
+                               }
 
                                // Otherwise, create a new query and add it to the cache.
                                if ( ! query ) {
 
                                // Otherwise, create a new query and add it to the cache.
                                if ( ! query ) {
index 41349fcdd3b7ae0a69fe5544cef0dd976a3432a3..1cff4d3acfdb71b2405109c72e8fddb5efebb73d 100644 (file)
@@ -1 +1 @@
-window.wp=window.wp||{},function(a){var b,c,d,e,f,g,h;h=wp.media=function(a){var b,c=h.view.MediaFrame;if(c)return a=_.defaults(a||{},{frame:"select"}),"select"===a.frame&&c.Select?b=new c.Select(a):"post"===a.frame&&c.Post?b=new c.Post(a):"image"===a.frame&&c.ImageDetails?b=new c.ImageDetails(a):"audio"===a.frame&&c.AudioDetails?b=new c.AudioDetails(a):"video"===a.frame&&c.VideoDetails&&(b=new c.VideoDetails(a)),delete a.frame,h.frame=b,b},_.extend(h,{model:{},view:{},controller:{},frames:{}}),g=h.model.l10n="undefined"==typeof _wpMediaModelsL10n?{}:_wpMediaModelsL10n,h.model.settings=g.settings||{},delete g.settings,f=function(a,b,c,d){return _.isEqual(a,b)?c===d?0:c>d?-1:1:a>b?-1:1},_.extend(h,{template:wp.template,post:wp.ajax.post,ajax:wp.ajax.send,fit:function(a){var b,c=a.width,d=a.height,e=a.maxWidth,f=a.maxHeight;return _.isUndefined(e)||_.isUndefined(f)?_.isUndefined(f)?b="width":_.isUndefined(e)&&d>f&&(b="height"):b=c/d>e/f?"width":"height","width"===b&&c>e?{width:e,height:Math.round(e*d/c)}:"height"===b&&d>f?{width:Math.round(f*c/d),height:f}:{width:c,height:d}},truncate:function(a,b,c){return b=b||30,c=c||"&hellip;",a.length<=b?a:a.substr(0,b/2)+c+a.substr(-1*b/2)}}),h.attachment=function(a){return b.get(a)},b=h.model.Attachment=Backbone.Model.extend({sync:function(b,c,d){return _.isUndefined(this.id)?a.Deferred().rejectWith(this).promise():"read"===b?(d=d||{},d.context=this,d.data=_.extend(d.data||{},{action:"get-attachment",id:this.id}),h.ajax(d)):"update"===b?this.get("nonces")&&this.get("nonces").update?(d=d||{},d.context=this,d.data=_.extend(d.data||{},{action:"save-attachment",id:this.id,nonce:this.get("nonces").update,post_id:h.model.settings.post.id}),c.hasChanged()&&(d.data.changes={},_.each(c.changed,function(a,b){d.data.changes[b]=this.get(b)},this)),h.ajax(d)):a.Deferred().rejectWith(this).promise():"delete"===b?(d=d||{},d.wait||(this.destroyed=!0),d.context=this,d.data=_.extend(d.data||{},{action:"delete-post",id:this.id,_wpnonce:this.get("nonces")["delete"]}),h.ajax(d).done(function(){this.destroyed=!0}).fail(function(){this.destroyed=!1})):Backbone.Model.prototype.sync.apply(this,arguments)},parse:function(a){return a?(a.date=new Date(a.date),a.modified=new Date(a.modified),a):a},saveCompat:function(b,c){var d=this;return this.get("nonces")&&this.get("nonces").update?h.post("save-attachment-compat",_.defaults({id:this.id,nonce:this.get("nonces").update,post_id:h.model.settings.post.id},b)).done(function(a,b,e){d.set(d.parse(a,e),c)}):a.Deferred().rejectWith(this).promise()}},{create:function(a){return c.all.push(a)},get:_.memoize(function(a,b){return c.all.push(b||{id:a})})}),e=h.model.PostImage=Backbone.Model.extend({initialize:function(c){this.attachment=!1,c.attachment_id&&(this.attachment=b.get(c.attachment_id),this.attachment.get("url")?(this.dfd=a.Deferred(),this.dfd.resolve()):this.dfd=this.attachment.fetch(),this.bindAttachmentListeners()),this.on("change:link",this.updateLinkUrl,this),this.on("change:size",this.updateSize,this),this.setLinkTypeFromUrl(),this.setAspectRatio(),this.set("originalUrl",c.url)},bindAttachmentListeners:function(){this.listenTo(this.attachment,"sync",this.setLinkTypeFromUrl),this.listenTo(this.attachment,"sync",this.setAspectRatio),this.listenTo(this.attachment,"change",this.updateSize)},changeAttachment:function(a,b){this.stopListening(this.attachment),this.attachment=a,this.bindAttachmentListeners(),this.set("attachment_id",this.attachment.get("id")),this.set("caption",this.attachment.get("caption")),this.set("alt",this.attachment.get("alt")),this.set("size",b.get("size")),this.set("align",b.get("align")),this.set("link",b.get("link")),this.updateLinkUrl(),this.updateSize()},setLinkTypeFromUrl:function(){var a,b=this.get("linkUrl");return b?(a="custom",this.attachment?this.attachment.get("url")===b?a="file":this.attachment.get("link")===b&&(a="post"):this.get("url")===b&&(a="file"),void this.set("link",a)):void this.set("link","none")},updateLinkUrl:function(){var a,b=this.get("link");switch(b){case"file":a=this.attachment?this.attachment.get("url"):this.get("url"),this.set("linkUrl",a);break;case"post":this.set("linkUrl",this.attachment.get("link"));break;case"none":this.set("linkUrl","")}},updateSize:function(){var a;if(this.attachment){if("custom"===this.get("size"))return this.set("width",this.get("customWidth")),this.set("height",this.get("customHeight")),void this.set("url",this.get("originalUrl"));a=this.attachment.get("sizes")[this.get("size")],a&&(this.set("url",a.url),this.set("width",a.width),this.set("height",a.height))}},setAspectRatio:function(){var a;return this.attachment&&this.attachment.get("sizes")&&(a=this.attachment.get("sizes").full)?void this.set("aspectRatio",a.width/a.height):void this.set("aspectRatio",this.get("customWidth")/this.get("customHeight"))}}),c=h.model.Attachments=Backbone.Collection.extend({model:b,initialize:function(a,b){b=b||{},this.props=new Backbone.Model,this.filters=b.filters||{},this.props.on("change",this._changeFilteredProps,this),this.props.on("change:order",this._changeOrder,this),this.props.on("change:orderby",this._changeOrderby,this),this.props.on("change:query",this._changeQuery,this),this.props.set(_.defaults(b.props||{})),b.observe&&this.observe(b.observe)},_changeOrder:function(){this.comparator&&this.sort()},_changeOrderby:function(a,b){this.comparator&&this.comparator!==c.comparator||(b&&"post__in"!==b?this.comparator=c.comparator:delete this.comparator)},_changeQuery:function(a,b){b?(this.props.on("change",this._requery,this),this._requery()):this.props.off("change",this._requery,this)},_changeFilteredProps:function(a){if(!this.props.get("query")){var b=_.chain(a.changed).map(function(b,d){var e=c.filters[d],f=a.get(d);if(e){if(f&&!this.filters[d])this.filters[d]=e;else{if(f||this.filters[d]!==e)return;delete this.filters[d]}return!0}},this).any().value();b&&(this._source||(this._source=new c(this.models)),this.reset(this._source.filter(this.validator,this)))}},validateDestroyed:!1,validator:function(a){return!this.validateDestroyed&&a.destroyed?!1:_.all(this.filters,function(b){return!!b.call(this,a)},this)},validate:function(a,b){var c=this.validator(a),d=!!this.get(a.cid);return!c&&d?this.remove(a,b):c&&!d&&this.add(a,b),this},validateAll:function(a,b){return b=b||{},_.each(a.models,function(a){this.validate(a,{silent:!0})},this),b.silent||this.trigger("reset",this,b),this},observe:function(a){return this.observers=this.observers||[],this.observers.push(a),a.on("add change remove",this._validateHandler,this),a.on("reset",this._validateAllHandler,this),this.validateAll(a),this},unobserve:function(a){return a?(a.off(null,null,this),this.observers=_.without(this.observers,a)):(_.each(this.observers,function(a){a.off(null,null,this)},this),delete this.observers),this},_validateHandler:function(a,b,c){return c=b===this.mirroring?c:{silent:c&&c.silent},this.validate(a,c)},_validateAllHandler:function(a,b){return this.validateAll(a,b)},mirror:function(a){return this.mirroring&&this.mirroring===a?this:(this.unmirror(),this.mirroring=a,this.reset([],{silent:!0}),this.observe(a),this)},unmirror:function(){this.mirroring&&(this.unobserve(this.mirroring),delete this.mirroring)},more:function(b){var c=a.Deferred(),d=this.mirroring,e=this;return d&&d.more?(d.more(b).done(function(){this===e.mirroring&&c.resolveWith(this)}),c.promise()):c.resolveWith(this).promise()},hasMore:function(){return this.mirroring?this.mirroring.hasMore():!1},parse:function(a,c){return _.isArray(a)||(a=[a]),_.map(a,function(a){var d,e,f;return a instanceof Backbone.Model?(d=a.get("id"),a=a.attributes):d=a.id,e=b.get(d),f=e.parse(a,c),_.isEqual(e.attributes,f)||e.set(f),e})},_requery:function(){this.props.get("query")&&this.mirror(d.get(this.props.toJSON()))},saveMenuOrder:function(){if("menuOrder"===this.props.get("orderby")){var a=this.chain().filter(function(a){return!_.isUndefined(a.id)}).map(function(a,b){return b+=1,a.set("menuOrder",b),[a.id,b]}).object().value();if(!_.isEmpty(a))return h.post("save-attachment-order",{nonce:h.model.settings.post.nonce,post_id:h.model.settings.post.id,attachments:a})}}},{comparator:function(a,b,c){var d=this.props.get("orderby"),e=this.props.get("order")||"DESC",g=a.cid,h=b.cid;return a=a.get(d),b=b.get(d),("date"===d||"modified"===d)&&(a=a||new Date,b=b||new Date),c&&c.ties&&(g=h=null),"DESC"===e?f(a,b,g,h):f(b,a,h,g)},filters:{search:function(a){return this.props.get("search")?_.any(["title","filename","description","caption","name"],function(b){var c=a.get(b);return c&&-1!==c.search(this.props.get("search"))},this):!0},type:function(a){var b=this.props.get("type");return!b||-1!==b.indexOf(a.get("type"))},uploadedTo:function(a){var b=this.props.get("uploadedTo");return _.isUndefined(b)?!0:b===a.get("uploadedTo")}}}),c.all=new c,h.query=function(a){return new c(null,{props:_.extend(_.defaults(a||{},{orderby:"date"}),{query:!0})})},d=h.model.Query=c.extend({initialize:function(a,b){var d;b=b||{},c.prototype.initialize.apply(this,arguments),this.args=b.args,this._hasMore=!0,this.created=new Date,this.filters.order=function(a){var b=this.props.get("orderby"),c=this.props.get("order");return this.comparator?this.length?1!==this.comparator(a,this.last(),{ties:!0}):"DESC"!==c||"date"!==b&&"modified"!==b?"ASC"===c&&"menuOrder"===b?0===a.get(b):!1:a.get(b)>=this.created:!0},d=["s","order","orderby","posts_per_page","post_mime_type","post_parent"],wp.Uploader&&_(this.args).chain().keys().difference(d).isEmpty().value()&&this.observe(wp.Uploader.queue)},hasMore:function(){return this._hasMore},more:function(b){var c=this;return this._more&&"pending"===this._more.state()?this._more:this.hasMore()?(b=b||{},b.remove=!1,this._more=this.fetch(b).done(function(a){(_.isEmpty(a)||-1===this.args.posts_per_page||a.length<this.args.posts_per_page)&&(c._hasMore=!1)})):a.Deferred().resolveWith(this).promise()},sync:function(a,b,d){var e,f;return"read"===a?(d=d||{},d.context=this,d.data=_.extend(d.data||{},{action:"query-attachments",post_id:h.model.settings.post.id}),e=_.clone(this.args),-1!==e.posts_per_page&&(e.paged=Math.floor(this.length/e.posts_per_page)+1),d.data.query=e,h.ajax(d)):(f=c.prototype.sync?c.prototype:Backbone,f.sync.apply(this,arguments))}},{defaultProps:{orderby:"date",order:"DESC"},defaultArgs:{posts_per_page:40},orderby:{allowed:["name","author","date","title","modified","uploadedTo","id","post__in","menuOrder"],valuemap:{id:"ID",uploadedTo:"parent",menuOrder:"menu_order ID"}},propmap:{search:"s",type:"post_mime_type",perPage:"posts_per_page",menuOrder:"menu_order",uploadedTo:"post_parent"},get:function(){var a=[];return function(b,c){var e,f={},g=d.orderby,h=d.defaultProps;return delete b.query,_.defaults(b,h),b.order=b.order.toUpperCase(),"DESC"!==b.order&&"ASC"!==b.order&&(b.order=h.order.toUpperCase()),_.contains(g.allowed,b.orderby)||(b.orderby=h.orderby),_.each(b,function(a,b){_.isNull(a)||(f[d.propmap[b]||b]=a)}),_.defaults(f,d.defaultArgs),f.orderby=g.valuemap[b.orderby]||b.orderby,e=_.find(a,function(a){return _.isEqual(a.args,f)}),e||(e=new d([],_.extend(c||{},{props:b,args:f})),a.push(e)),e}}()}),h.model.Selection=c.extend({initialize:function(a,b){c.prototype.initialize.apply(this,arguments),this.multiple=b&&b.multiple,this.on("add remove reset",_.bind(this.single,this,!1))},add:function(a,b){return this.multiple||this.remove(this.models),c.prototype.add.call(this,a,b)},single:function(a){var b=this._single;return a&&(this._single=a),this._single&&!this.get(this._single.cid)&&delete this._single,this._single=this._single||this.last(),this._single!==b&&(b&&(b.trigger("selection:unsingle",b,this),this.get(b.cid)||this.trigger("selection:unsingle",b,this)),this._single&&this._single.trigger("selection:single",this._single,this)),this._single}}),a(window).on("unload",function(){window.wp=null})}(jQuery);
\ No newline at end of file
+window.wp=window.wp||{},function(a){var b,c,d,e,f,g,h;h=wp.media=function(a){var b,c=h.view.MediaFrame;if(c)return a=_.defaults(a||{},{frame:"select"}),"select"===a.frame&&c.Select?b=new c.Select(a):"post"===a.frame&&c.Post?b=new c.Post(a):"manage"===a.frame&&c.Manage?b=new c.Manage(a):"image"===a.frame&&c.ImageDetails?b=new c.ImageDetails(a):"audio"===a.frame&&c.AudioDetails?b=new c.AudioDetails(a):"video"===a.frame&&c.VideoDetails?b=new c.VideoDetails(a):"edit-attachments"===a.frame&&c.EditAttachments&&(b=new c.EditAttachments(a)),delete a.frame,h.frame=b,b},_.extend(h,{model:{},view:{},controller:{},frames:{}}),g=h.model.l10n="undefined"==typeof _wpMediaModelsL10n?{}:_wpMediaModelsL10n,h.model.settings=g.settings||{},delete g.settings,f=function(a,b,c,d){return _.isEqual(a,b)?c===d?0:c>d?-1:1:a>b?-1:1},_.extend(h,{template:wp.template,post:wp.ajax.post,ajax:wp.ajax.send,fit:function(a){var b,c=a.width,d=a.height,e=a.maxWidth,f=a.maxHeight;return _.isUndefined(e)||_.isUndefined(f)?_.isUndefined(f)?b="width":_.isUndefined(e)&&d>f&&(b="height"):b=c/d>e/f?"width":"height","width"===b&&c>e?{width:e,height:Math.round(e*d/c)}:"height"===b&&d>f?{width:Math.round(f*c/d),height:f}:{width:c,height:d}},truncate:function(a,b,c){return b=b||30,c=c||"&hellip;",a.length<=b?a:a.substr(0,b/2)+c+a.substr(-1*b/2)}}),h.attachment=function(a){return b.get(a)},b=h.model.Attachment=Backbone.Model.extend({sync:function(b,c,d){return _.isUndefined(this.id)?a.Deferred().rejectWith(this).promise():"read"===b?(d=d||{},d.context=this,d.data=_.extend(d.data||{},{action:"get-attachment",id:this.id}),h.ajax(d)):"update"===b?this.get("nonces")&&this.get("nonces").update?(d=d||{},d.context=this,d.data=_.extend(d.data||{},{action:"save-attachment",id:this.id,nonce:this.get("nonces").update,post_id:h.model.settings.post.id}),c.hasChanged()&&(d.data.changes={},_.each(c.changed,function(a,b){d.data.changes[b]=this.get(b)},this)),h.ajax(d)):a.Deferred().rejectWith(this).promise():"delete"===b?(d=d||{},d.wait||(this.destroyed=!0),d.context=this,d.data=_.extend(d.data||{},{action:"delete-post",id:this.id,_wpnonce:this.get("nonces")["delete"]}),h.ajax(d).done(function(){this.destroyed=!0}).fail(function(){this.destroyed=!1})):Backbone.Model.prototype.sync.apply(this,arguments)},parse:function(a){return a?(a.date=new Date(a.date),a.modified=new Date(a.modified),a):a},saveCompat:function(b,c){var d=this;return this.get("nonces")&&this.get("nonces").update?h.post("save-attachment-compat",_.defaults({id:this.id,nonce:this.get("nonces").update,post_id:h.model.settings.post.id},b)).done(function(a,b,e){d.set(d.parse(a,e),c)}):a.Deferred().rejectWith(this).promise()}},{create:function(a){return c.all.push(a)},get:_.memoize(function(a,b){return c.all.push(b||{id:a})})}),e=h.model.PostImage=Backbone.Model.extend({initialize:function(c){this.attachment=!1,c.attachment_id&&(this.attachment=b.get(c.attachment_id),this.attachment.get("url")?(this.dfd=a.Deferred(),this.dfd.resolve()):this.dfd=this.attachment.fetch(),this.bindAttachmentListeners()),this.on("change:link",this.updateLinkUrl,this),this.on("change:size",this.updateSize,this),this.setLinkTypeFromUrl(),this.setAspectRatio(),this.set("originalUrl",c.url)},bindAttachmentListeners:function(){this.listenTo(this.attachment,"sync",this.setLinkTypeFromUrl),this.listenTo(this.attachment,"sync",this.setAspectRatio),this.listenTo(this.attachment,"change",this.updateSize)},changeAttachment:function(a,b){this.stopListening(this.attachment),this.attachment=a,this.bindAttachmentListeners(),this.set("attachment_id",this.attachment.get("id")),this.set("caption",this.attachment.get("caption")),this.set("alt",this.attachment.get("alt")),this.set("size",b.get("size")),this.set("align",b.get("align")),this.set("link",b.get("link")),this.updateLinkUrl(),this.updateSize()},setLinkTypeFromUrl:function(){var a,b=this.get("linkUrl");return b?(a="custom",this.attachment?this.attachment.get("url")===b?a="file":this.attachment.get("link")===b&&(a="post"):this.get("url")===b&&(a="file"),void this.set("link",a)):void this.set("link","none")},updateLinkUrl:function(){var a,b=this.get("link");switch(b){case"file":a=this.attachment?this.attachment.get("url"):this.get("url"),this.set("linkUrl",a);break;case"post":this.set("linkUrl",this.attachment.get("link"));break;case"none":this.set("linkUrl","")}},updateSize:function(){var a;if(this.attachment){if("custom"===this.get("size"))return this.set("width",this.get("customWidth")),this.set("height",this.get("customHeight")),void this.set("url",this.get("originalUrl"));a=this.attachment.get("sizes")[this.get("size")],a&&(this.set("url",a.url),this.set("width",a.width),this.set("height",a.height))}},setAspectRatio:function(){var a;return this.attachment&&this.attachment.get("sizes")&&(a=this.attachment.get("sizes").full)?void this.set("aspectRatio",a.width/a.height):void this.set("aspectRatio",this.get("customWidth")/this.get("customHeight"))}}),c=h.model.Attachments=Backbone.Collection.extend({model:b,initialize:function(a,b){b=b||{},this.props=new Backbone.Model,this.filters=b.filters||{},this.props.on("change",this._changeFilteredProps,this),this.props.on("change:order",this._changeOrder,this),this.props.on("change:orderby",this._changeOrderby,this),this.props.on("change:query",this._changeQuery,this),this.props.set(_.defaults(b.props||{})),b.observe&&this.observe(b.observe)},_changeOrder:function(){this.comparator&&this.sort()},_changeOrderby:function(a,b){this.comparator&&this.comparator!==c.comparator||(b&&"post__in"!==b?this.comparator=c.comparator:delete this.comparator)},_changeQuery:function(a,b){b?(this.props.on("change",this._requery,this),this._requery()):this.props.off("change",this._requery,this)},_changeFilteredProps:function(a){if(!this.props.get("query")){var b=_.chain(a.changed).map(function(b,d){var e=c.filters[d],f=a.get(d);if(e){if(f&&!this.filters[d])this.filters[d]=e;else{if(f||this.filters[d]!==e)return;delete this.filters[d]}return!0}},this).any().value();b&&(this._source||(this._source=new c(this.models)),this.reset(this._source.filter(this.validator,this)))}},validateDestroyed:!1,validator:function(a){return!this.validateDestroyed&&a.destroyed?!1:_.all(this.filters,function(b){return!!b.call(this,a)},this)},validate:function(a,b){var c=this.validator(a),d=!!this.get(a.cid);return!c&&d?this.remove(a,b):c&&!d&&this.add(a,b),this},validateAll:function(a,b){return b=b||{},_.each(a.models,function(a){this.validate(a,{silent:!0})},this),b.silent||this.trigger("reset",this,b),this},observe:function(a){return this.observers=this.observers||[],this.observers.push(a),a.on("add change remove",this._validateHandler,this),a.on("reset",this._validateAllHandler,this),this.validateAll(a),this},unobserve:function(a){return a?(a.off(null,null,this),this.observers=_.without(this.observers,a)):(_.each(this.observers,function(a){a.off(null,null,this)},this),delete this.observers),this},_validateHandler:function(a,b,c){return c=b===this.mirroring?c:{silent:c&&c.silent},this.validate(a,c)},_validateAllHandler:function(a,b){return this.validateAll(a,b)},mirror:function(a){return this.mirroring&&this.mirroring===a?this:(this.unmirror(),this.mirroring=a,this.reset([],{silent:!0}),this.observe(a),this)},unmirror:function(){this.mirroring&&(this.unobserve(this.mirroring),delete this.mirroring)},more:function(b){var c=a.Deferred(),d=this.mirroring,e=this;return d&&d.more?(d.more(b).done(function(){this===e.mirroring&&c.resolveWith(this)}),c.promise()):c.resolveWith(this).promise()},hasMore:function(){return this.mirroring?this.mirroring.hasMore():!1},parse:function(a,c){return _.isArray(a)||(a=[a]),_.map(a,function(a){var d,e,f;return a instanceof Backbone.Model?(d=a.get("id"),a=a.attributes):d=a.id,e=b.get(d),f=e.parse(a,c),_.isEqual(e.attributes,f)||e.set(f),e})},_requery:function(a){var b;this.props.get("query")&&(b=this.props.toJSON(),b.cache=!0!==a,this.mirror(d.get(b)))},saveMenuOrder:function(){if("menuOrder"===this.props.get("orderby")){var a=this.chain().filter(function(a){return!_.isUndefined(a.id)}).map(function(a,b){return b+=1,a.set("menuOrder",b),[a.id,b]}).object().value();if(!_.isEmpty(a))return h.post("save-attachment-order",{nonce:h.model.settings.post.nonce,post_id:h.model.settings.post.id,attachments:a})}}},{comparator:function(a,b,c){var d=this.props.get("orderby"),e=this.props.get("order")||"DESC",g=a.cid,h=b.cid;return a=a.get(d),b=b.get(d),("date"===d||"modified"===d)&&(a=a||new Date,b=b||new Date),c&&c.ties&&(g=h=null),"DESC"===e?f(a,b,g,h):f(b,a,h,g)},filters:{search:function(a){return this.props.get("search")?_.any(["title","filename","description","caption","name"],function(b){var c=a.get(b);return c&&-1!==c.search(this.props.get("search"))},this):!0},type:function(a){var b=this.props.get("type");return!b||-1!==b.indexOf(a.get("type"))},uploadedTo:function(a){var b=this.props.get("uploadedTo");return _.isUndefined(b)?!0:b===a.get("uploadedTo")},status:function(a){var b=this.props.get("status");return _.isUndefined(b)?!0:b===a.get("status")}}}),c.all=new c,h.query=function(a){return new c(null,{props:_.extend(_.defaults(a||{},{orderby:"date"}),{query:!0})})},d=h.model.Query=c.extend({initialize:function(a,b){var d;b=b||{},c.prototype.initialize.apply(this,arguments),this.args=b.args,this._hasMore=!0,this.created=new Date,this.filters.order=function(a){var b=this.props.get("orderby"),c=this.props.get("order");return this.comparator?this.length?1!==this.comparator(a,this.last(),{ties:!0}):"DESC"!==c||"date"!==b&&"modified"!==b?"ASC"===c&&"menuOrder"===b?0===a.get(b):!1:a.get(b)>=this.created:!0},d=["s","order","orderby","posts_per_page","post_mime_type","post_parent"],wp.Uploader&&_(this.args).chain().keys().difference(d).isEmpty().value()&&this.observe(wp.Uploader.queue)},hasMore:function(){return this._hasMore},more:function(b){var c=this;return this._more&&"pending"===this._more.state()?this._more:this.hasMore()?(b=b||{},b.remove=!1,this._more=this.fetch(b).done(function(a){(_.isEmpty(a)||-1===this.args.posts_per_page||a.length<this.args.posts_per_page)&&(c._hasMore=!1)})):a.Deferred().resolveWith(this).promise()},sync:function(a,b,d){var e,f;return"read"===a?(d=d||{},d.context=this,d.data=_.extend(d.data||{},{action:"query-attachments",post_id:h.model.settings.post.id}),e=_.clone(this.args),-1!==e.posts_per_page&&(e.paged=Math.floor(this.length/e.posts_per_page)+1),d.data.query=e,h.ajax(d)):(f=c.prototype.sync?c.prototype:Backbone,f.sync.apply(this,arguments))}},{defaultProps:{orderby:"date",order:"DESC"},defaultArgs:{posts_per_page:40},orderby:{allowed:["name","author","date","title","modified","uploadedTo","id","post__in","menuOrder"],valuemap:{id:"ID",uploadedTo:"parent",menuOrder:"menu_order ID"}},propmap:{search:"s",type:"post_mime_type",perPage:"posts_per_page",menuOrder:"menu_order",uploadedTo:"post_parent",status:"post_status"},get:function(){var a=[];return function(b,c){var e,f={},g=d.orderby,h=d.defaultProps,i=!!b.cache||_.isUndefined(b.cache);return delete b.query,delete b.cache,_.defaults(b,h),b.order=b.order.toUpperCase(),"DESC"!==b.order&&"ASC"!==b.order&&(b.order=h.order.toUpperCase()),_.contains(g.allowed,b.orderby)||(b.orderby=h.orderby),_.each(b,function(a,b){_.isNull(a)||(f[d.propmap[b]||b]=a)}),_.defaults(f,d.defaultArgs),f.orderby=g.valuemap[b.orderby]||b.orderby,i?e=_.find(a,function(a){return _.isEqual(a.args,f)}):a=[],e||(e=new d([],_.extend(c||{},{props:b,args:f})),a.push(e)),e}}()}),h.model.Selection=c.extend({initialize:function(a,b){c.prototype.initialize.apply(this,arguments),this.multiple=b&&b.multiple,this.on("add remove reset",_.bind(this.single,this,!1))},add:function(a,b){return this.multiple||this.remove(this.models),c.prototype.add.call(this,a,b)},single:function(a){var b=this._single;return a&&(this._single=a),this._single&&!this.get(this._single.cid)&&delete this._single,this._single=this._single||this.last(),this._single!==b&&(b&&(b.trigger("selection:unsingle",b,this),this.get(b.cid)||this.trigger("selection:unsingle",b,this)),this._single&&this._single.trigger("selection:single",this._single,this)),this._single}}),a(window).on("unload",function(){window.wp=null})}(jQuery);
\ No newline at end of file
index 0d70ebf2381a164c76862dee14cb6e1205faf2d7..84e1f3655dda83c6a4397fa0a2e44f4c8ab8e387 100644 (file)
@@ -1,6 +1,8 @@
 /* global _wpMediaViewsL10n, confirm, getUserSetting, setUserSetting */
 /* global _wpMediaViewsL10n, confirm, getUserSetting, setUserSetting */
-(function($, _){
-       var media = wp.media, l10n;
+( function( $, _ ) {
+       var l10n,
+               media = wp.media,
+               isTouchDevice = ( 'ontouchend' in document );
 
        // Link any localized strings.
        l10n = media.view.l10n = typeof _wpMediaViewsL10n === 'undefined' ? {} : _wpMediaViewsL10n;
 
        // Link any localized strings.
        l10n = media.view.l10n = typeof _wpMediaViewsL10n === 'undefined' ? {} : _wpMediaViewsL10n;
 
        _.extend( media.controller.Region.prototype, {
                /**
 
        _.extend( media.controller.Region.prototype, {
                /**
-                * Switch modes
+                * Activate a mode.
                 *
                 * @param {string} mode
                 *
                 *
                 * @param {string} mode
                 *
-                * @fires wp.media.controller.Region#{id}:activate:{mode}
-                * @fires wp.media.controller.Region#{id}:deactivate:{mode}
+                * @fires this.view#{this.id}:activate:{this._mode}
+                * @fires this.view#{this.id}:activate
+                * @fires this.view#{this.id}:deactivate:{this._mode}
+                * @fires this.view#{this.id}:deactivate
                 *
                 *
-                * @returns {wp.media.controller.Region} Returns itself to allow chaining
+                * @returns {wp.media.controller.Region} Returns itself to allow chaining.
                 */
                mode: function( mode ) {
                        if ( ! mode ) {
                 */
                mode: function( mode ) {
                        if ( ! mode ) {
                                return this;
                        }
 
                                return this;
                        }
 
+                       /**
+                        * Region mode deactivation event.
+                        *
+                        * @event this.view#{this.id}:deactivate:{this._mode}
+                        * @event this.view#{this.id}:deactivate
+                        */
                        this.trigger('deactivate');
                        this.trigger('deactivate');
+
                        this._mode = mode;
                        this.render( mode );
                        this._mode = mode;
                        this.render( mode );
+
+                       /**
+                        * Region mode activation event.
+                        *
+                        * @event this.view#{this.id}:activate:{this._mode}
+                        * @event this.view#{this.id}:activate
+                        */
                        this.trigger('activate');
                        return this;
                },
                /**
                        this.trigger('activate');
                        return this;
                },
                /**
-                * Render a new mode, the view is set in the `create` callback method
-                *   of the extending class
-                *
-                * If no mode is provided, just re-render the current mode.
-                * If the provided mode isn't active, perform a full switch.
+                * Render a mode.
                 *
                 * @param {string} mode
                 *
                 *
                 * @param {string} mode
                 *
-                * @fires wp.media.controller.Region#{id}:create:{mode}
-                * @fires wp.media.controller.Region#{id}:render:{mode}
+                * @fires this.view#{this.id}:create:{this._mode}
+                * @fires this.view#{this.id}:create
+                * @fires this.view#{this.id}:render:{this._mode}
+                * @fires this.view#{this.id}:render
                 *
                 * @returns {wp.media.controller.Region} Returns itself to allow chaining
                 */
                render: function( mode ) {
                 *
                 * @returns {wp.media.controller.Region} Returns itself to allow chaining
                 */
                render: function( mode ) {
+                       // If the mode isn't active, activate it.
                        if ( mode && mode !== this._mode ) {
                                return this.mode( mode );
                        }
                        if ( mode && mode !== this._mode ) {
                                return this.mode( mode );
                        }
                        var set = { view: null },
                                view;
 
                        var set = { view: null },
                                view;
 
+                       /**
+                        * Create region view event.
+                        *
+                        * Region view creation takes place in an event callback on the frame.
+                        *
+                        * @event this.view#{this.id}:create:{this._mode}
+                        * @event this.view#{this.id}:create
+                        */
                        this.trigger( 'create', set );
                        view = set.view;
                        this.trigger( 'create', set );
                        view = set.view;
+
+                       /**
+                        * Render region view event.
+                        *
+                        * Region view creation takes place in an event callback on the frame.
+                        *
+                        * @event this.view#{this.id}:create:{this._mode}
+                        * @event this.view#{this.id}:create
+                        */
                        this.trigger( 'render', view );
                        if ( view ) {
                                this.set( view );
                        this.trigger( 'render', view );
                        if ( view ) {
                                this.set( view );
                },
 
                /**
                },
 
                /**
-                * @returns {wp.media.View} Returns the selector's first subview
+                * Get the region's view.
+                *
+                * @returns {wp.media.View}
                 */
                get: function() {
                        return this.view.views.first( this.selector );
                },
 
                /**
                 */
                get: function() {
                        return this.view.views.first( this.selector );
                },
 
                /**
+                * Set the region's view as a subview of the frame.
+                *
                 * @param {Array|Object} views
                 * @param {Object} [options={}]
                 * @returns {wp.Backbone.Subviews} Subviews is returned to allow chaining
                 * @param {Array|Object} views
                 * @param {Object} [options={}]
                 * @returns {wp.Backbone.Subviews} Subviews is returned to allow chaining
                },
 
                /**
                },
 
                /**
-                * Helper function to trigger view events based on {id}:{event}:{mode}
+                * Trigger regional view events on the frame.
                 *
                 * @param {string} event
                 *
                 * @param {string} event
-                * @returns {undefined|wp.media.controller.Region} Returns itself to allow chaining
+                * @returns {undefined|wp.media.controller.Region} Returns itself to allow chaining.
                 */
                trigger: function( event ) {
                        var base, args;
                 */
                trigger: function( event ) {
                        var base, args;
                        args = _.toArray( arguments );
                        base = this.id + ':' + event;
 
                        args = _.toArray( arguments );
                        base = this.id + ':' + event;
 
-                       // Trigger `region:action:mode` event.
+                       // Trigger `{this.id}:{event}:{this._mode}` event on the frame.
                        args[0] = base + ':' + this._mode;
                        this.view.trigger.apply( this.view, args );
 
                        args[0] = base + ':' + this._mode;
                        this.view.trigger.apply( this.view, args );
 
-                       // Trigger `region:action` event.
+                       // Trigger `{this.id}:{event}` event on the frame.
                        args[0] = base;
                        this.view.trigger.apply( this.view, args );
                        return this;
                        args[0] = base;
                        this.view.trigger.apply( this.view, args );
                        return this;
        // Use Backbone's self-propagating `extend` inheritance method.
        media.controller.StateMachine.extend = Backbone.Model.extend;
 
        // Use Backbone's self-propagating `extend` inheritance method.
        media.controller.StateMachine.extend = Backbone.Model.extend;
 
-       // Add events to the `StateMachine`.
        _.extend( media.controller.StateMachine.prototype, Backbone.Events, {
                /**
                 * Fetch a state.
        _.extend( media.controller.StateMachine.prototype, Backbone.Events, {
                /**
                 * Fetch a state.
                }
        });
 
                }
        });
 
-       // Map methods from the `states` collection to the `StateMachine` itself.
+       // Map all event binding and triggering on a StateMachine to its `states` collection.
        _.each([ 'on', 'off', 'trigger' ], function( method ) {
                /**
        _.each([ 'on', 'off', 'trigger' ], function( method ) {
                /**
-                * @returns {wp.media.controller.StateMachine} Returns itself to allow chaining
+                * @returns {wp.media.controller.StateMachine} Returns itself to allow chaining.
                 */
                media.controller.StateMachine.prototype[ method ] = function() {
                        // Ensure that the `states` collection exists so the `StateMachine`
                 */
                media.controller.StateMachine.prototype[ method ] = function() {
                        // Ensure that the `states` collection exists so the `StateMachine`
        /**
         * wp.media.controller.State
         *
        /**
         * wp.media.controller.State
         *
-        * A state is a step in a workflow that when set will trigger
-        * the controllers for the regions to be updated as specified. This
-        * class is the base class that the various states used in the media
-        * modals extend.
+        * A state is a step in a workflow that when set will trigger the controllers
+        * for the regions to be updated as specified in the frame. This is the base
+        * class that the various states used in wp.media extend.
         *
         * @constructor
         * @augments Backbone.Model
         *
         * @constructor
         * @augments Backbone.Model
                        Backbone.Model.apply( this, arguments );
                        this.on( 'change:menu', this._updateMenu, this );
                },
                        Backbone.Model.apply( this, arguments );
                        this.on( 'change:menu', this._updateMenu, this );
                },
-
                /**
                 * @abstract
                 */
                /**
                 * @abstract
                 */
                },
                /**
                 * @access private
                },
                /**
                 * @access private
-                */
+               */
                _preActivate: function() {
                        this.active = true;
                },
                _preActivate: function() {
                        this.active = true;
                },
                                mode = this.get('menu'),
                                view;
 
                                mode = this.get('menu'),
                                view;
 
+                       this.frame.$el.toggleClass( 'hide-menu', ! mode );
                        if ( ! mode ) {
                                return;
                        }
                        if ( ! mode ) {
                                return;
                        }
        };
 
        /**
        };
 
        /**
-        * wp.media.controller.Library
+        * A state for choosing an attachment from the media library.
         *
         * @constructor
         * @augments wp.media.controller.State
         *
         * @constructor
         * @augments wp.media.controller.State
         */
        media.controller.Library = media.controller.State.extend({
                defaults: {
         */
        media.controller.Library = media.controller.State.extend({
                defaults: {
-                       id:         'library',
-                       multiple:   false, // false, 'add', 'reset'
-                       describe:   false,
-                       toolbar:    'select',
-                       sidebar:    'settings',
-                       content:    'upload',
-                       router:     'browse',
-                       menu:       'default',
-                       searchable: true,
-                       filterable: false,
-                       sortable:   true,
-                       title:      l10n.mediaLibraryTitle,
-
+                       id:                 'library',
+                       title:              l10n.mediaLibraryTitle,
+                       // Selection defaults. @see media.model.Selection
+                       multiple:           false,
+                       // Initial region modes.
+                       content:            'upload',
+                       menu:               'default',
+                       router:             'browse',
+                       toolbar:            'select',
+                       // Attachments browser defaults. @see media.view.AttachmentsBrowser
+                       searchable:         true,
+                       filterable:         false,
+                       sortable:           true,
+
+                       autoSelect:         true,
+                       describe:           false,
                        // Uses a user setting to override the content mode.
                        contentUserSetting: true,
                        // Uses a user setting to override the content mode.
                        contentUserSetting: true,
-
                        // Sync the selection from the last state when 'multiple' matches.
                        // Sync the selection from the last state when 'multiple' matches.
-                       syncSelection: true
+                       syncSelection:      true
                },
 
                /**
                },
 
                /**
                                }) );
                        }
 
                                }) );
                        }
 
-                       if ( ! this.get('edge') ) {
-                               this.set( 'edge', 120 );
-                       }
-
-                       if ( ! this.get('gutter') ) {
-                               this.set( 'gutter', 8 );
-                       }
-
                        this.resetDisplays();
                },
 
                        this.resetDisplays();
                },
 
 
                        this.get('selection').on( 'add remove reset', this.refreshContent, this );
 
 
                        this.get('selection').on( 'add remove reset', this.refreshContent, this );
 
-                       if ( this.get('contentUserSetting') ) {
+                       if ( this.get( 'router' ) && this.get('contentUserSetting') ) {
                                this.frame.on( 'content:activate', this.saveContentMode, this );
                                this.set( 'content', getUserSetting( 'libraryContent', this.get('content') ) );
                        }
                                this.frame.on( 'content:activate', this.saveContentMode, this );
                                this.set( 'content', getUserSetting( 'libraryContent', this.get('content') ) );
                        }
                        if ( 'upload' === content.mode() ) {
                                this.frame.content.mode('browse');
                        }
                        if ( 'upload' === content.mode() ) {
                                this.frame.content.mode('browse');
                        }
-                       this.get('selection').add( attachment );
+
+                       if ( this.get( 'autoSelect' ) ) {
+                               this.get('selection').add( attachment );
+                               this.frame.trigger( 'library:selection:add' );
+                       }
                },
 
                /**
                },
 
                /**
        _.extend( media.controller.Library.prototype, media.selectionSync );
 
        /**
        _.extend( media.controller.Library.prototype, media.selectionSync );
 
        /**
-        * wp.media.controller.ImageDetails
+        * A state for editing the settings of an image within a content editor.
         *
         * @constructor
         * @augments wp.media.controller.State
         *
         * @constructor
         * @augments wp.media.controller.State
         */
        media.controller.ImageDetails = media.controller.State.extend({
                defaults: _.defaults({
         */
        media.controller.ImageDetails = media.controller.State.extend({
                defaults: _.defaults({
-                       id: 'image-details',
-                       toolbar: 'image-details',
-                       title: l10n.imageDetailsTitle,
-                       content: 'image-details',
-                       menu: 'image-details',
-                       router: false,
-                       attachment: false,
-                       priority: 60,
-                       editing: false
+                       id:       'image-details',
+                       title:    l10n.imageDetailsTitle,
+                       // Initial region modes.
+                       content:  'image-details',
+                       menu:     false,
+                       router:   false,
+                       toolbar:  'image-details',
+
+                       editing:  false,
+                       priority: 60
                }, media.controller.Library.prototype.defaults ),
 
                initialize: function( options ) {
                }, media.controller.Library.prototype.defaults ),
 
                initialize: function( options ) {
        });
 
        /**
        });
 
        /**
-        * wp.media.controller.GalleryEdit
+        * A state for editing a gallery's images and settings.
         *
         * @constructor
         * @augments wp.media.controller.Library
         *
         * @constructor
         * @augments wp.media.controller.Library
         */
        media.controller.GalleryEdit = media.controller.Library.extend({
                defaults: {
         */
        media.controller.GalleryEdit = media.controller.Library.extend({
                defaults: {
-                       id:         'gallery-edit',
-                       multiple:   false,
-                       describe:   true,
-                       edge:       199,
-                       editing:    false,
-                       sortable:   true,
-                       searchable: false,
-                       toolbar:    'gallery-edit',
-                       content:    'browse',
-                       title:      l10n.editGalleryTitle,
-                       priority:   60,
-                       dragInfo:   true,
+                       id:              'gallery-edit',
+                       title:           l10n.editGalleryTitle,
+                       // Selection defaults. @see media.model.Selection
+                       multiple:        false,
+                       // Attachments browser defaults. @see media.view.AttachmentsBrowser
+                       searchable:      false,
+                       sortable:        true,
+                       display:         false,
+                       // Initial region modes.
+                       content:         'browse',
+                       toolbar:         'gallery-edit',
+
+                       describe:         true,
+                       displaySettings:  true,
+                       dragInfo:         true,
+                       idealColumnWidth: 170,
+                       editing:          false,
+                       priority:         60,
 
                        // Don't sync the selection, as the Edit Gallery library
                        // *is* the selection.
 
                        // Don't sync the selection, as the Edit Gallery library
                        // *is* the selection.
                },
 
                gallerySettings: function( browser ) {
                },
 
                gallerySettings: function( browser ) {
+                       if ( ! this.get('displaySettings') ) {
+                               return;
+                       }
+
                        var library = this.get('library');
 
                        var library = this.get('library');
 
-                       if ( ! library || ! browser )
+                       if ( ! library || ! browser ) {
                                return;
                                return;
+                       }
 
                        library.gallery = library.gallery || new Backbone.Model();
 
 
                        library.gallery = library.gallery || new Backbone.Model();
 
        });
 
        /**
        });
 
        /**
-        * wp.media.controller.GalleryAdd
+        * A state for adding an image to a gallery.
         *
         * @constructor
         * @augments wp.media.controller.Library
         *
         * @constructor
         * @augments wp.media.controller.Library
         */
        media.controller.GalleryAdd = media.controller.Library.extend({
                defaults: _.defaults({
         */
        media.controller.GalleryAdd = media.controller.Library.extend({
                defaults: _.defaults({
-                       id:           'gallery-library',
-                       filterable:   'uploaded',
-                       multiple:     'add',
-                       menu:         'gallery',
-                       toolbar:      'gallery-add',
-                       title:        l10n.addToGalleryTitle,
-                       priority:     100,
+                       id:            'gallery-library',
+                       title:         l10n.addToGalleryTitle,
+                       // Selection defaults. @see media.model.Selection
+                       multiple:      'add',
+                       // Attachments browser defaults. @see media.view.AttachmentsBrowser
+                       filterable:    'uploaded',
+                       // Initial region modes.
+                       menu:          'gallery',
+                       toolbar:       'gallery-add',
 
 
+                       priority:      100,
                        // Don't sync the selection, as the Edit Gallery library
                        // *is* the selection.
                        syncSelection: false
                        // Don't sync the selection, as the Edit Gallery library
                        // *is* the selection.
                        syncSelection: false
         */
        media.controller.CollectionEdit = media.controller.Library.extend({
                defaults: {
         */
        media.controller.CollectionEdit = media.controller.Library.extend({
                defaults: {
+                       // Selection defaults. @see media.model.Selection
                        multiple:     false,
                        multiple:     false,
-                       describe:     true,
-                       edge:         199,
-                       editing:      false,
+                       // Attachments browser defaults. @see media.view.AttachmentsBrowser
                        sortable:     true,
                        searchable:   false,
                        sortable:     true,
                        searchable:   false,
+                       // Region mode defaults.
                        content:      'browse',
                        content:      'browse',
-                       priority:     60,
-                       dragInfo:     true,
-                       SettingsView: false,
+
+                       describe:         true,
+                       dragInfo:         true,
+                       idealColumnWidth: 170,
+                       editing:          false,
+                       priority:         60,
+                       SettingsView:     false,
 
                        // Don't sync the selection, as the Edit {Collection} library
                        // *is* the selection.
 
                        // Don't sync the selection, as the Edit {Collection} library
                        // *is* the selection.
         */
        media.controller.CollectionAdd = media.controller.Library.extend({
                defaults: _.defaults( {
         */
        media.controller.CollectionAdd = media.controller.Library.extend({
                defaults: _.defaults( {
-                       filterable:    'uploaded',
+                       // Selection defaults. @see media.model.Selection
                        multiple:      'add',
                        multiple:      'add',
+                       // Attachments browser defaults. @see media.view.AttachmentsBrowser
+                       filterable:    'uploaded',
+
                        priority:      100,
                        syncSelection: false
                }, media.controller.Library.prototype.defaults ),
                        priority:      100,
                        syncSelection: false
                }, media.controller.Library.prototype.defaults ),
        });
 
        /**
        });
 
        /**
-        * wp.media.controller.FeaturedImage
+        * A state for selecting a featured image for a post.
         *
         * @constructor
         * @augments wp.media.controller.Library
         *
         * @constructor
         * @augments wp.media.controller.Library
         */
        media.controller.FeaturedImage = media.controller.Library.extend({
                defaults: _.defaults({
         */
        media.controller.FeaturedImage = media.controller.Library.extend({
                defaults: _.defaults({
-                       id:         'featured-image',
-                       filterable: 'uploaded',
-                       multiple:   false,
-                       toolbar:    'featured-image',
-                       title:      l10n.setFeaturedImageTitle,
-                       priority:   60,
+                       id:            'featured-image',
+                       title:         l10n.setFeaturedImageTitle,
+                       // Selection defaults. @see media.model.Selection
+                       multiple:      false,
+                       // Attachments browser defaults. @see media.view.AttachmentsBrowser
+                       filterable:    'uploaded',
+                       // Region mode defaults.
+                       toolbar:       'featured-image',
+
+                       priority:      60,
                        syncSelection: true
                }, media.controller.Library.prototype.defaults ),
 
                        syncSelection: true
                }, media.controller.Library.prototype.defaults ),
 
        });
 
        /**
        });
 
        /**
-        * wp.media.controller.ReplaceImage
-        *
-        * Replace a selected single image
+        * A state for replacing an image.
         *
         * @constructor
         * @augments wp.media.controller.Library
         *
         * @constructor
         * @augments wp.media.controller.Library
         */
        media.controller.ReplaceImage = media.controller.Library.extend({
                defaults: _.defaults({
         */
        media.controller.ReplaceImage = media.controller.Library.extend({
                defaults: _.defaults({
-                       id:         'replace-image',
-                       filterable: 'uploaded',
-                       multiple:   false,
-                       toolbar:    'replace',
-                       title:      l10n.replaceImageTitle,
-                       priority:   60,
+                       id:            'replace-image',
+                       title:         l10n.replaceImageTitle,
+                       // Selection defaults. @see media.model.Selection
+                       multiple:      false,
+                       // Attachments browser defaults. @see media.view.AttachmentsBrowser
+                       filterable:    'uploaded',
+                       // Region mode defaults.
+                       toolbar:       'replace',
+                       menu:          false,
+
+                       priority:      60,
                        syncSelection: true
                }, media.controller.Library.prototype.defaults ),
 
                        syncSelection: true
                }, media.controller.Library.prototype.defaults ),
 
        });
 
        /**
        });
 
        /**
-        * wp.media.controller.EditImage
+        * A state for editing (cropping, etc.) an image.
         *
         * @constructor
         * @augments wp.media.controller.State
         *
         * @constructor
         * @augments wp.media.controller.State
         */
        media.controller.EditImage = media.controller.State.extend({
                defaults: {
         */
        media.controller.EditImage = media.controller.State.extend({
                defaults: {
-                       id: 'edit-image',
-                       url: '',
-                       menu: false,
+                       id:      'edit-image',
+                       title:   l10n.editImage,
+                       // Region mode defaults.
+                       menu:    false,
                        toolbar: 'edit-image',
                        toolbar: 'edit-image',
-                       title: l10n.editImage,
-                       content: 'edit-image'
+                       content: 'edit-image',
+
+                       url:     ''
                },
 
                activate: function() {
                },
 
                activate: function() {
         */
        media.controller.MediaLibrary = media.controller.Library.extend({
                defaults: _.defaults({
         */
        media.controller.MediaLibrary = media.controller.Library.extend({
                defaults: _.defaults({
-                       filterable: 'uploaded',
-                       priority:   80,
-                       syncSelection: false,
-                       displaySettings: false
+                       // Attachments browser defaults. @see media.view.AttachmentsBrowser
+                       filterable:      'uploaded',
+
+                       displaySettings: false,
+                       priority:        80,
+                       syncSelection:   false
                }, media.controller.Library.prototype.defaults ),
 
                initialize: function( options ) {
                }, media.controller.Library.prototype.defaults ),
 
                initialize: function( options ) {
         */
        media.controller.Embed = media.controller.State.extend({
                defaults: {
         */
        media.controller.Embed = media.controller.State.extend({
                defaults: {
-                       id:      'embed',
-                       url:     '',
-                       menu:    'default',
-                       content: 'embed',
-                       toolbar: 'main-embed',
-                       type:    'link',
-
+                       id:       'embed',
                        title:    l10n.insertFromUrlTitle,
                        title:    l10n.insertFromUrlTitle,
-                       priority: 120
+                       // Region mode defaults.
+                       content:  'embed',
+                       menu:     'default',
+                       toolbar:  'main-embed',
+
+                       priority: 120,
+                       type:     'link',
+                       url:      '',
+                       metadata: {}
                },
 
                // The amount of time used when debouncing the scan.
                sensitivity: 200,
 
                },
 
                // The amount of time used when debouncing the scan.
                sensitivity: 200,
 
-               initialize: function() {
+               initialize: function(options) {
+                       this.metadata = options.metadata;
                        this.debouncedScan = _.debounce( _.bind( this.scan, this ), this.sensitivity );
                        this.debouncedScan = _.debounce( _.bind( this.scan, this ), this.sensitivity );
-                       this.props = new Backbone.Model({ url: '' });
+                       this.props = new Backbone.Model( this.metadata || { url: '' });
                        this.props.on( 'change:url', this.debouncedScan, this );
                        this.props.on( 'change:url', this.refresh, this );
                        this.on( 'scan', this.scanImage, this );
                        this.props.on( 'change:url', this.debouncedScan, this );
                        this.props.on( 'change:url', this.refresh, this );
                        this.on( 'scan', this.scanImage, this );
         */
        media.controller.Cropper = media.controller.State.extend({
                defaults: {
         */
        media.controller.Cropper = media.controller.State.extend({
                defaults: {
-                       id: 'cropper',
-                       title: l10n.cropImage,
-                       toolbar: 'crop',
-                       content: 'crop',
-                       router: false,
+                       id:          'cropper',
+                       title:       l10n.cropImage,
+                       // Region mode defaults.
+                       toolbar:     'crop',
+                       content:     'crop',
+                       router:      false,
+
                        canSkipCrop: false
                },
 
                        canSkipCrop: false
                },
 
         */
        media.view.Frame = media.View.extend({
                initialize: function() {
         */
        media.view.Frame = media.View.extend({
                initialize: function() {
+                       _.defaults( this.options, {
+                               mode: [ 'select' ]
+                       });
                        this._createRegions();
                        this._createStates();
                        this._createRegions();
                        this._createStates();
+                       this._createModes();
                },
 
                _createRegions: function() {
                },
 
                _createRegions: function() {
                                this.states.add( this.options.states );
                        }
                },
                                this.states.add( this.options.states );
                        }
                },
+               _createModes: function() {
+                       // Store active "modes" that the frame is in. Unrelated to region modes.
+                       this.activeModes = new Backbone.Collection();
+                       this.activeModes.on( 'add remove reset', _.bind( this.triggerModeEvents, this ) );
+
+                       _.each( this.options.mode, function( mode ) {
+                               this.activateMode( mode );
+                       }, this );
+               },
                /**
                 * @returns {wp.media.view.Frame} Returns itself to allow chaining
                 */
                reset: function() {
                        this.states.invoke( 'trigger', 'reset' );
                        return this;
                /**
                 * @returns {wp.media.view.Frame} Returns itself to allow chaining
                 */
                reset: function() {
                        this.states.invoke( 'trigger', 'reset' );
                        return this;
+               },
+               /**
+                * Map activeMode collection events to the frame.
+                */
+               triggerModeEvents: function( model, collection, options ) {
+                       var collectionEvent,
+                               modeEventMap = {
+                                       add: 'activate',
+                                       remove: 'deactivate'
+                               },
+                               eventToTrigger;
+                       // Probably a better way to do this.
+                       _.each( options, function( value, key ) {
+                               if ( value ) {
+                                       collectionEvent = key;
+                               }
+                       } );
+
+                       if ( ! _.has( modeEventMap, collectionEvent ) ) {
+                               return;
+                       }
+
+                       eventToTrigger = model.get('id') + ':' + modeEventMap[collectionEvent];
+                       this.trigger( eventToTrigger );
+               },
+               /**
+                * Activate a mode on the frame.
+                *
+                * @param string mode Mode ID.
+                * @returns {this} Returns itself to allow chaining.
+                */
+               activateMode: function( mode ) {
+                       // Bail if the mode is already active.
+                       if ( this.isModeActive( mode ) ) {
+                               return;
+                       }
+                       this.activeModes.add( [ { id: mode } ] );
+                       // Add a CSS class to the frame so elements can be styled for the mode.
+                       this.$el.addClass( 'mode-' + mode );
+
+                       return this;
+               },
+               /**
+                * Deactivate a mode on the frame.
+                *
+                * @param string mode Mode ID.
+                * @returns {this} Returns itself to allow chaining.
+                */
+               deactivateMode: function( mode ) {
+                       // Bail if the mode isn't active.
+                       if ( ! this.isModeActive( mode ) ) {
+                               return this;
+                       }
+                       this.activeModes.remove( this.activeModes.where( { id: mode } ) );
+                       this.$el.removeClass( 'mode-' + mode );
+                       /**
+                        * Frame mode deactivation event.
+                        *
+                        * @event this#{mode}:deactivate
+                        */
+                       this.trigger( mode + ':deactivate' );
+
+                       return this;
+               },
+               /**
+                * Check if a mode is enabled on the frame.
+                *
+                * @param  string mode Mode ID.
+                * @return bool
+                */
+               isModeActive: function( mode ) {
+                       return Boolean( this.activeModes.where( { id: mode } ).length );
                }
        });
 
                }
        });
 
                template:  media.template('media-frame'),
                regions:   ['menu','title','content','toolbar','router'],
 
                template:  media.template('media-frame'),
                regions:   ['menu','title','content','toolbar','router'],
 
+               events: {
+                       'click div.media-frame-title h1': 'toggleMenu'
+               },
+
                /**
                 * @global wp.Uploader
                 */
                initialize: function() {
                /**
                 * @global wp.Uploader
                 */
                initialize: function() {
-
                        media.view.Frame.prototype.initialize.apply( this, arguments );
 
                        _.defaults( this.options, {
                        media.view.Frame.prototype.initialize.apply( this, arguments );
 
                        _.defaults( this.options, {
                        this.on( 'title:create:default', this.createTitle, this );
                        this.title.mode('default');
 
                        this.on( 'title:create:default', this.createTitle, this );
                        this.title.mode('default');
 
+                       this.on( 'title:render', function( view ) {
+                               view.$el.append( '<span class="dashicons dashicons-arrow-down"></span>' );
+                       });
+
                        // Bind default menu.
                        this.on( 'menu:create:default', this.createMenu, this );
                },
                        // Bind default menu.
                        this.on( 'menu:create:default', this.createMenu, this );
                },
                                controller: this
                        });
                },
                                controller: this
                        });
                },
+
+               toggleMenu: function() {
+                       this.$el.find( '.media-menu' ).toggleClass( 'visible' );
+               },
+
                /**
                 * @param {Object} toolbar
                 * @this wp.media.controller.Region
                /**
                 * @param {Object} toolbar
                 * @this wp.media.controller.Region
                        this.bindHandlers();
                },
 
                        this.bindHandlers();
                },
 
+               /**
+                * Attach a selection collection to the frame.
+                *
+                * A selection is a collection of attachments used for a specific purpose
+                * by a media frame. e.g. Selecting an attachment (or many) to insert into
+                * post content.
+                *
+                * @see media.model.Selection
+                */
                createSelection: function() {
                        var selection = this.options.selection;
 
                createSelection: function() {
                        var selection = this.options.selection;
 
                        };
                },
 
                        };
                },
 
+               /**
+                * Create the default states on the frame.
+                */
                createStates: function() {
                        var options = this.options;
 
                createStates: function() {
                        var options = this.options;
 
                        ]);
                },
 
                        ]);
                },
 
+               /**
+                * Bind region mode event callbacks.
+                *
+                * @see media.controller.Region.render
+                */
                bindHandlers: function() {
                        this.on( 'router:create:browse', this.createRouter, this );
                        this.on( 'router:render:browse', this.browseRouter, this );
                bindHandlers: function() {
                        this.on( 'router:create:browse', this.createRouter, this );
                        this.on( 'router:render:browse', this.browseRouter, this );
                        this.on( 'toolbar:create:select', this.createSelectToolbar, this );
                },
 
                        this.on( 'toolbar:create:select', this.createSelectToolbar, this );
                },
 
-               // Routers
-               browseRouter: function( view ) {
-                       view.set({
+               /**
+                * Render callback for the router region in the `browse` mode.
+                *
+                * @param {wp.media.view.Router} routerView
+                */
+               browseRouter: function( routerView ) {
+                       routerView.set({
                                upload: {
                                        text:     l10n.uploadFilesTitle,
                                        priority: 20
                                upload: {
                                        text:     l10n.uploadFilesTitle,
                                        priority: 20
                },
 
                /**
                },
 
                /**
-                * Content
+                * Render callback for the content region in the `browse` mode.
                 *
                 *
-                * @param {Object} content
-                * @this wp.media.controller.Region
+                * @param {wp.media.controller.Region} contentRegion
                 */
                 */
-               browseContent: function( content ) {
+               browseContent: function( contentRegion ) {
                        var state = this.state();
 
                        this.$el.removeClass('hide-toolbar');
 
                        // Browse our library of attachments.
                        var state = this.state();
 
                        this.$el.removeClass('hide-toolbar');
 
                        // Browse our library of attachments.
-                       content.view = new media.view.AttachmentsBrowser({
+                       contentRegion.view = new media.view.AttachmentsBrowser({
                                controller: this,
                                collection: state.get('library'),
                                selection:  state.get('selection'),
                                controller: this,
                                collection: state.get('library'),
                                selection:  state.get('selection'),
                                sortable:   state.get('sortable'),
                                search:     state.get('searchable'),
                                filters:    state.get('filterable'),
                                sortable:   state.get('sortable'),
                                search:     state.get('searchable'),
                                filters:    state.get('filterable'),
-                               display:    state.get('displaySettings'),
+                               display:    state.has('display') ? state.get('display') : state.get('displaySettings'),
                                dragInfo:   state.get('dragInfo'),
 
                                dragInfo:   state.get('dragInfo'),
 
-                               suggestedWidth:  state.get('suggestedWidth'),
-                               suggestedHeight: state.get('suggestedHeight'),
+                               idealColumnWidth: state.get('idealColumnWidth'),
+                               suggestedWidth:   state.get('suggestedWidth'),
+                               suggestedHeight:  state.get('suggestedHeight'),
 
                                AttachmentView: state.get('AttachmentView')
                        });
                },
 
                /**
 
                                AttachmentView: state.get('AttachmentView')
                        });
                },
 
                /**
-                *
-                * @this wp.media.controller.Region
+                * Render callback for the content region in the `upload` mode.
                 */
                uploadContent: function() {
                 */
                uploadContent: function() {
-                       this.$el.removeClass('hide-toolbar');
+                       this.$el.removeClass( 'hide-toolbar' );
                        this.content.set( new media.view.UploaderInline({
                                controller: this
                        }) );
                        this.content.set( new media.view.UploaderInline({
                                controller: this
                        }) );
                        _.defaults( this.options, {
                                multiple:  true,
                                editing:   false,
                        _.defaults( this.options, {
                                multiple:  true,
                                editing:   false,
-                               state:    'insert'
+                               state:    'insert',
+                               metadata:  {}
                        });
                        /**
                         * call 'initialize' directly on the parent class
                        });
                        /**
                         * call 'initialize' directly on the parent class
                                }),
 
                                // Embed states.
                                }),
 
                                // Embed states.
-                               new media.controller.Embed(),
+                               new media.controller.Embed( { metadata: options.metadata } ),
 
                                new media.controller.EditImage( { model: options.editImage } ),
 
 
                                new media.controller.EditImage( { model: options.editImage } ),
 
                                                } else {
                                                        frame.close();
                                                }
                                                } else {
                                                        frame.close();
                                                }
+
+                                               // Keep focus inside media modal
+                                               // after canceling a gallery
+                                               this.controller.modal.focusManager.focus();
                                        }
                                },
                                separateCancel: new media.View({
                                        }
                                },
                                separateCancel: new media.View({
                        }).render();
 
                        this.content.set( view );
                        }).render();
 
                        this.content.set( view );
-                       view.url.focus();
+
+                       if ( ! isTouchDevice ) {
+                               view.url.focus();
+                       }
                },
 
                editSelectionContent: function() {
                },
 
                editSelectionContent: function() {
                                        }) );
 
                                        this.controller.setState('gallery-edit');
                                        }) );
 
                                        this.controller.setState('gallery-edit');
+
+                                       // Keep focus inside media modal
+                                       // after jumping to gallery view
+                                       this.controller.modal.focusManager.focus();
                                }
                        });
                },
                                }
                        });
                },
                                        }) );
 
                                        this.controller.setState('playlist-edit');
                                        }) );
 
                                        this.controller.setState('playlist-edit');
+
+                                       // Keep focus inside media modal
+                                       // after jumping to playlist view
+                                       this.controller.modal.focusManager.focus();
                                }
                        });
                },
                                }
                        });
                },
                                        }) );
 
                                        this.controller.setState('video-playlist-edit');
                                        }) );
 
                                        this.controller.setState('video-playlist-edit');
+
+                                       // Keep focus inside media modal
+                                       // after jumping to video playlist view
+                                       this.controller.modal.focusManager.focus();
                                }
                        });
                },
                                }
                        });
                },
                        this.on( 'menu:create:image-details', this.createMenu, this );
                        this.on( 'content:create:image-details', this.imageDetailsContent, this );
                        this.on( 'content:render:edit-image', this.editImageContent, this );
                        this.on( 'menu:create:image-details', this.createMenu, this );
                        this.on( 'content:create:image-details', this.imageDetailsContent, this );
                        this.on( 'content:render:edit-image', this.editImageContent, this );
-                       this.on( 'menu:render:image-details', this.renderMenu, this );
                        this.on( 'toolbar:render:image-details', this.renderImageDetailsToolbar, this );
                        // override the select toolbar
                        this.on( 'toolbar:render:replace', this.renderReplaceImageToolbar, this );
                        this.on( 'toolbar:render:image-details', this.renderImageDetailsToolbar, this );
                        // override the select toolbar
                        this.on( 'toolbar:render:replace', this.renderReplaceImageToolbar, this );
                        this.states.add([
                                new media.controller.ImageDetails({
                                        image: this.image,
                        this.states.add([
                                new media.controller.ImageDetails({
                                        image: this.image,
-                                       editable: false,
-                                       menu: 'image-details'
+                                       editable: false
                                }),
                                new media.controller.ReplaceImage({
                                        id: 'replace-image',
                                }),
                                new media.controller.ReplaceImage({
                                        id: 'replace-image',
                                        image: this.image,
                                        multiple:  false,
                                        title:     l10n.imageReplaceTitle,
                                        image: this.image,
                                        multiple:  false,
                                        title:     l10n.imageReplaceTitle,
-                                       menu: 'image-details',
                                        toolbar: 'replace',
                                        priority:  80,
                                        displaySettings: true
                                        toolbar: 'replace',
                                        priority:  80,
                                        displaySettings: true
 
                },
 
 
                },
 
-               renderMenu: function( view ) {
-                       var lastState = this.lastState(),
-                               previous = lastState && lastState.id,
-                               frame = this;
-
-                       view.set({
-                               cancel: {
-                                       text:     l10n.imageDetailsCancel,
-                                       priority: 20,
-                                       click:    function() {
-                                               if ( previous ) {
-                                                       frame.setState( previous );
-                                               } else {
-                                                       frame.close();
-                                               }
-                                       }
-                               },
-                               separateCancel: new media.View({
-                                       className: 'separator',
-                                       priority: 40
-                               })
-                       });
-
-               },
-
                renderImageDetailsToolbar: function() {
                        this.toolbar.set( new media.view.Toolbar({
                                controller: this,
                renderImageDetailsToolbar: function() {
                        this.toolbar.set( new media.view.Toolbar({
                                controller: this,
                                propagate: true,
                                freeze:    true
                        });
                                propagate: true,
                                freeze:    true
                        });
+
+                       this.focusManager = new media.view.FocusManager({
+                               el: this.el
+                       });
                },
                /**
                 * @returns {Object}
                },
                /**
                 * @returns {Object}
                 */
                open: function() {
                        var $el = this.$el,
                 */
                open: function() {
                        var $el = this.$el,
-                               options = this.options;
+                               options = this.options,
+                               mceEditor;
 
                        if ( $el.is(':visible') ) {
                                return this;
 
                        if ( $el.is(':visible') ) {
                                return this;
                                };
                        }
 
                                };
                        }
 
-                       $el.show().focus();
+                       // Disable page scrolling.
+                       $( 'body' ).addClass( 'modal-open' );
+
+                       $el.show();
+
+                       // Try to close the onscreen keyboard
+                       if ( 'ontouchend' in document ) {
+                               if ( ( mceEditor = window.tinymce && window.tinymce.activeEditor )  && ! mceEditor.isHidden() && mceEditor.iframeElement ) {
+                                       mceEditor.iframeElement.focus();
+                                       mceEditor.iframeElement.blur();
+
+                                       setTimeout( function() {
+                                               mceEditor.iframeElement.blur();
+                                       }, 100 );
+                               }
+                       }
+
+                       this.$el.focus();
+
                        return this.propagate('open');
                },
 
                        return this.propagate('open');
                },
 
                                return this;
                        }
 
                                return this;
                        }
 
-                       this.$el.hide();
+                       // Enable page scrolling.
+                       $( 'body' ).removeClass( 'modal-open' );
+
+                       // Hide modal and remove restricted media modal tab focus once it's closed
+                       this.$el.hide().undelegate( 'keydown' );
+
+                       // Put focus back in useful location once modal is closed
+                       $('#wpbody-content').focus();
+
                        this.propagate('close');
 
                        // If the `freeze` option is set, restore the container's scroll position.
                        this.propagate('close');
 
                        // If the `freeze` option is set, restore the container's scroll position.
         * @augments Backbone.View
         */
        media.view.FocusManager = media.View.extend({
         * @augments Backbone.View
         */
        media.view.FocusManager = media.View.extend({
+
                events: {
                events: {
-                       keydown: 'recordTab',
-                       focusin: 'updateIndex'
+                       'keydown': 'constrainTabbing'
                },
 
                },
 
-               focus: function() {
-                       if ( _.isUndefined( this.index ) ) {
-                               return;
-                       }
-
-                       // Update our collection of `$tabbables`.
-                       this.$tabbables = this.$(':tabbable');
-
-                       // If tab is saved, focus it.
-                       this.$tabbables.eq( this.index ).focus();
+               focus: function() { // Reset focus on first left menu item
+                       this.$('.media-menu-item').first().focus();
                },
                /**
                 * @param {Object} event
                 */
                },
                /**
                 * @param {Object} event
                 */
-               recordTab: function( event ) {
+               constrainTabbing: function( event ) {
+                       var tabbables;
+
                        // Look for the tab key.
                        if ( 9 !== event.keyCode ) {
                                return;
                        }
 
                        // Look for the tab key.
                        if ( 9 !== event.keyCode ) {
                                return;
                        }
 
-                       // First try to update the index.
-                       if ( _.isUndefined( this.index ) ) {
-                               this.updateIndex( event );
-                       }
-
-                       // If we still don't have an index, bail.
-                       if ( _.isUndefined( this.index ) ) {
-                               return;
-                       }
-
-                       var index = this.index + ( event.shiftKey ? -1 : 1 );
-
-                       if ( index >= 0 && index < this.$tabbables.length ) {
-                               this.index = index;
-                       } else {
-                               delete this.index;
-                       }
-               },
-               /**
-                * @param {Object} event
-                */
-               updateIndex: function( event ) {
-                       this.$tabbables = this.$(':tabbable');
-
-                       var index = this.$tabbables.index( event.target );
+                       tabbables = this.$( ':tabbable' );
 
 
-                       if ( -1 === index ) {
-                               delete this.index;
-                       } else {
-                               this.index = index;
+                       // Keep tab focus within media modal while it's open
+                       if ( tabbables.last()[0] === event.target && ! event.shiftKey ) {
+                               tabbables.first().focus();
+                               return false;
+                       } else if ( tabbables.first()[0] === event.target && event.shiftKey ) {
+                               tabbables.last().focus();
+                               return false;
                        }
                }
                        }
                }
+
        });
 
        /**
        });
 
        /**
                                        $el.hide();
                                }
                        });
                                        $el.hide();
                                }
                        });
+
+                       // https://core.trac.wordpress.org/ticket/27341
+                       _.delay( function() {
+                               if ( '0' === $el.css('opacity') && $el.is(':visible') ) {
+                                       $el.hide();
+                               }
+                       }, 500 );
                }
        });
 
                }
        });
 
                className: 'uploader-inline',
                template:  media.template('uploader-inline'),
 
                className: 'uploader-inline',
                template:  media.template('uploader-inline'),
 
+               events: {
+                       'click .close': 'hide'
+               },
+
                initialize: function() {
                        _.defaults( this.options, {
                                message: '',
                initialize: function() {
                        _.defaults( this.options, {
                                message: '',
-                               status:  true
+                               status:  true,
+                               canClose: false
                        });
 
                        if ( ! this.options.$browser && this.controller.uploader ) {
                        });
 
                        if ( ! this.options.$browser && this.controller.uploader ) {
 
                prepare: function() {
                        var suggestedWidth = this.controller.state().get('suggestedWidth'),
 
                prepare: function() {
                        var suggestedWidth = this.controller.state().get('suggestedWidth'),
-                               suggestedHeight = this.controller.state().get('suggestedHeight');
+                               suggestedHeight = this.controller.state().get('suggestedHeight'),
+                               data = {};
+
+                       data.message = this.options.message;
+                       data.canClose = this.options.canClose;
 
                        if ( suggestedWidth && suggestedHeight ) {
 
                        if ( suggestedWidth && suggestedHeight ) {
-                               return {
-                                       suggestedWidth: suggestedWidth,
-                                       suggestedHeight: suggestedHeight
-                               };
+                               data.suggestedWidth = suggestedWidth;
+                               data.suggestedHeight = suggestedHeight;
                        }
                        }
+
+                       return data;
                },
                /**
                 * @returns {wp.media.view.UploaderInline} Returns itself to allow chaining
                },
                /**
                 * @returns {wp.media.view.UploaderInline} Returns itself to allow chaining
 
                        this.refresh();
                        return this;
 
                        this.refresh();
                        return this;
+               },
+               show: function() {
+                       this.$el.removeClass( 'hidden' );
+               },
+               hide: function() {
+                       this.$el.addClass( 'hidden' );
                }
                }
+
        });
 
        /**
        });
 
        /**
                        // The toolbar is composed of two `PriorityList` views.
                        this.primary   = new media.view.PriorityList();
                        this.secondary = new media.view.PriorityList();
                        // The toolbar is composed of two `PriorityList` views.
                        this.primary   = new media.view.PriorityList();
                        this.secondary = new media.view.PriorityList();
-                       this.primary.$el.addClass('media-toolbar-primary');
+                       this.primary.$el.addClass('media-toolbar-primary search-form');
                        this.secondary.$el.addClass('media-toolbar-secondary');
 
                        this.views.set([ this.secondary, this.primary ]);
                        this.secondary.$el.addClass('media-toolbar-secondary');
 
                        this.views.set([ this.secondary, this.primary ]);
                        } else {
                                this.click();
                        }
                        } else {
                                this.click();
                        }
+
+                       // When selecting a tab along the left side,
+                       // focus should be transferred into the main panel
+                       if ( ! isTouchDevice ) {
+                               $('.media-frame-content input').first().focus();
+                       }
                },
 
                click: function() {
                        var state = this.options.state;
                },
 
                click: function() {
                        var state = this.options.state;
+
                        if ( state ) {
                                this.controller.setState( state );
                        if ( state ) {
                                this.controller.setState( state );
+                               this.views.parent.$el.removeClass( 'visible' ); // TODO: or hide on any click, see below
                        }
                },
                /**
                        }
                },
                /**
                property:  'state',
                ItemView:  media.view.MenuItem,
                region:    'menu',
                property:  'state',
                ItemView:  media.view.MenuItem,
                region:    'menu',
+
+               /* TODO: alternatively hide on any click anywhere
+               events: {
+                       'click': 'click'
+               },
+
+               click: function() {
+                       this.$el.removeClass( 'visible' );
+               },
+               */
+
                /**
                 * @param {Object} options
                 * @param {string} id
                /**
                 * @param {Object} options
                 * @param {string} id
         * @augments Backbone.View
         */
        media.view.RouterItem = media.view.MenuItem.extend({
         * @augments Backbone.View
         */
        media.view.RouterItem = media.view.MenuItem.extend({
+               /**
+                * On click handler to activate the content region's corresponding mode.
+                */
                click: function() {
                        var contentMode = this.options.contentMode;
                        if ( contentMode ) {
                click: function() {
                        var contentMode = this.options.contentMode;
                        if ( contentMode ) {
                className: 'attachment',
                template:  media.template('attachment'),
 
                className: 'attachment',
                template:  media.template('attachment'),
 
+               attributes: function() {
+                       return {
+                               'tabIndex':     0,
+                               'role':         'checkbox',
+                               'aria-label':   this.model.get( 'title' ),
+                               'aria-checked': false,
+                               'data-id':      this.model.get( 'id' )
+                       };
+               },
+
                events: {
                events: {
-                       'click .attachment-preview':      'toggleSelectionHandler',
+                       'click .js--select-attachment':   'toggleSelectionHandler',
                        'change [data-setting]':          'updateSetting',
                        'change [data-setting] input':    'updateSetting',
                        'change [data-setting] select':   'updateSetting',
                        'change [data-setting] textarea': 'updateSetting',
                        'click .close':                   'removeFromLibrary',
                        'change [data-setting]':          'updateSetting',
                        'change [data-setting] input':    'updateSetting',
                        'change [data-setting] select':   'updateSetting',
                        'change [data-setting] textarea': 'updateSetting',
                        'click .close':                   'removeFromLibrary',
-                       'click .check':                   'removeFromSelection',
-                       'click a':                        'preventDefault'
+                       'click .check':                   'checkClickHandler',
+                       'click a':                        'preventDefault',
+                       'keydown':                        'toggleSelectionHandler'
                },
 
                buttons: {},
 
                initialize: function() {
                },
 
                buttons: {},
 
                initialize: function() {
-                       var selection = this.options.selection;
+                       var selection = this.options.selection,
+                               options = _.defaults( this.options, {
+                                       rerenderOnModelChange: true
+                               } );
 
 
-                       this.model.on( 'change:sizes change:uploading', this.render, this );
+                       if ( options.rerenderOnModelChange ) {
+                               this.model.on( 'change', this.render, this );
+                       } else {
+                               this.model.on( 'change:percent', this.progress, this );
+                       }
                        this.model.on( 'change:title', this._syncTitle, this );
                        this.model.on( 'change:caption', this._syncCaption, this );
                        this.model.on( 'change:title', this._syncTitle, this );
                        this.model.on( 'change:caption', this._syncCaption, this );
-                       this.model.on( 'change:percent', this.progress, this );
+                       this.model.on( 'change:artist', this._syncArtist, this );
+                       this.model.on( 'change:album', this._syncAlbum, this );
 
                        // Update the selection.
                        this.model.on( 'add', this.select, this );
                        this.model.on( 'remove', this.deselect, this );
                        if ( selection ) {
                                selection.on( 'reset', this.updateSelect, this );
 
                        // Update the selection.
                        this.model.on( 'add', this.select, this );
                        this.model.on( 'remove', this.deselect, this );
                        if ( selection ) {
                                selection.on( 'reset', this.updateSelect, this );
+                               // Update the model's details view.
+                               this.model.on( 'selection:single selection:unsingle', this.details, this );
+                               this.details( this.model, this.controller.state().get('selection') );
                        }
                        }
-
-                       // Update the model's details view.
-                       this.model.on( 'selection:single selection:unsingle', this.details, this );
-                       this.details( this.model, this.controller.state().get('selection') );
                },
                /**
                 * @returns {wp.media.view.Attachment} Returns itself to allow chaining
                },
                /**
                 * @returns {wp.media.view.Attachment} Returns itself to allow chaining
                                        compat:        false,
                                        alt:           '',
                                        description:   ''
                                        compat:        false,
                                        alt:           '',
                                        description:   ''
-                               });
+                               }, this.options );
 
                        options.buttons  = this.buttons;
                        options.describe = this.controller.state().get('describe');
 
                        options.buttons  = this.buttons;
                        options.describe = this.controller.state().get('describe');
                                options.allowLocalEdits = true;
                        }
 
                                options.allowLocalEdits = true;
                        }
 
+                       if ( options.uploading && ! options.percent ) {
+                               options.percent = 0;
+                       }
+
                        this.views.detach();
                        this.$el.html( this.template( options ) );
 
                        this.$el.toggleClass( 'uploading', options.uploading );
                        this.views.detach();
                        this.$el.html( this.template( options ) );
 
                        this.$el.toggleClass( 'uploading', options.uploading );
+
                        if ( options.uploading ) {
                                this.$bar = this.$('.media-progress-bar div');
                        } else {
                        if ( options.uploading ) {
                                this.$bar = this.$('.media-progress-bar div');
                        } else {
                                this.$bar.width( this.model.get('percent') + '%' );
                        }
                },
                                this.$bar.width( this.model.get('percent') + '%' );
                        }
                },
+
                /**
                 * @param {Object} event
                 */
                toggleSelectionHandler: function( event ) {
                        var method;
 
                /**
                 * @param {Object} event
                 */
                toggleSelectionHandler: function( event ) {
                        var method;
 
+                       // Don't do anything inside inputs.
+                       if ( 'INPUT' === event.target.nodeName ) {
+                               return;
+                       }
+
+                       // Catch arrow events
+                       if ( 37 === event.keyCode || 38 === event.keyCode || 39 === event.keyCode || 40 === event.keyCode ) {
+                               this.controller.trigger( 'attachment:keydown:arrow', event );
+                               return;
+                       }
+
+                       // Catch enter and space events
+                       if ( 'keydown' === event.type && 13 !== event.keyCode && 32 !== event.keyCode ) {
+                               return;
+                       }
+
+                       // In the grid view, bubble up an edit:attachment event to the controller.
+                       if ( this.controller.isModeActive( 'grid' ) ) {
+                               if ( this.controller.isModeActive( 'edit' ) ) {
+                                       // Pass the current target to restore focus when closing
+                                       this.controller.trigger( 'edit:attachment', this.model, event.currentTarget );
+
+                                       // Don't scroll the view and don't attempt to submit anything.
+                                       event.stopPropagation();
+                                       return;
+                               }
+
+                               if ( this.controller.isModeActive( 'select' ) ) {
+                                       method = 'toggle';
+                               }
+                       }
+
                        if ( event.shiftKey ) {
                                method = 'between';
                        } else if ( event.ctrlKey || event.metaKey ) {
                        if ( event.shiftKey ) {
                                method = 'between';
                        } else if ( event.ctrlKey || event.metaKey ) {
                        this.toggleSelection({
                                method: method
                        });
                        this.toggleSelection({
                                method: method
                        });
-               },
+
+                       this.controller.trigger( 'selection:toggle' );
+
+                       // Don't scroll the view and don't attempt to submit anything.
+                       event.stopPropagation();
+               },
                /**
                 * @param {Object} options
                 */
                /**
                 * @param {Object} options
                 */
                                selection[ this.selected() ? 'remove' : 'add' ]( model );
                                selection.single( model );
                                return;
                                selection[ this.selected() ? 'remove' : 'add' ]( model );
                                selection.single( model );
                                return;
+                       } else if ( 'add' === method ) {
+                               selection.add( model );
+                               selection.single( model );
+                               return;
+                       }
+
+                       // Fixes bug that loses focus when selecting a featured image
+                       if ( ! method ) {
+                               method = 'add';
                        }
 
                        if ( method !== 'add' ) {
                        }
 
                        if ( method !== 'add' ) {
                 * @param {Backbone.Collection} collection
                 */
                select: function( model, collection ) {
                 * @param {Backbone.Collection} collection
                 */
                select: function( model, collection ) {
-                       var selection = this.options.selection;
+                       var selection = this.options.selection,
+                               controller = this.controller;
 
                        // Check if a selection exists and if it's the collection provided.
                        // If they're not the same collection, bail; we're in another
 
                        // Check if a selection exists and if it's the collection provided.
                        // If they're not the same collection, bail; we're in another
                                return;
                        }
 
                                return;
                        }
 
-                       this.$el.addClass('selected');
+                       // Bail if the model is already selected.
+                       if ( this.$el.hasClass( 'selected' ) ) {
+                               return;
+                       }
+
+                       // Add 'selected' class to model, set aria-checked to true.
+                       this.$el.addClass( 'selected' ).attr( 'aria-checked', true );
+                       //  Make the checkbox tabable, except in media grid (bulk select mode).
+                       if ( ! ( controller.isModeActive( 'grid' ) && controller.isModeActive( 'select' ) ) ) {
+                               this.$( '.check' ).attr( 'tabindex', '0' );
+                       }
                },
                /**
                 * @param {Backbone.Model} model
                },
                /**
                 * @param {Backbone.Model} model
                        if ( ! selection || ( collection && collection !== selection ) ) {
                                return;
                        }
                        if ( ! selection || ( collection && collection !== selection ) ) {
                                return;
                        }
-                       this.$el.removeClass('selected');
+                       this.$el.removeClass( 'selected' ).attr( 'aria-checked', false )
+                               .find( '.check' ).attr( 'tabindex', '-1' );
                },
                /**
                 * @param {Backbone.Model} model
                },
                /**
                 * @param {Backbone.Model} model
 
                        this.collection.remove( this.model );
                },
 
                        this.collection.remove( this.model );
                },
+
                /**
                /**
-                * @param {Object} event
+                * Add the model if it isn't in the selection, if it is in the selection,
+                * remove it.
+                *
+                * @param  {[type]} event [description]
+                * @return {[type]}       [description]
                 */
                 */
-               removeFromSelection: function( event ) {
+               checkClickHandler: function ( event ) {
                        var selection = this.options.selection;
                        if ( ! selection ) {
                                return;
                        }
                        var selection = this.options.selection;
                        if ( ! selection ) {
                                return;
                        }
-
-                       // Stop propagation so the model isn't selected.
                        event.stopPropagation();
                        event.stopPropagation();
-
-                       selection.remove( this.model );
+                       if ( selection.where( { id: this.model.get( 'id' ) } ).length ) {
+                               selection.remove( this.model );
+                               // Move focus back to the attachment tile (from the check).
+                               this.$el.focus();
+                       } else {
+                               selection.add( this.model );
+                       }
                }
        });
 
        // Ensure settings remain in sync between attachment views.
        _.each({
                caption: '_syncCaption',
                }
        });
 
        // Ensure settings remain in sync between attachment views.
        _.each({
                caption: '_syncCaption',
-               title:   '_syncTitle'
+               title:   '_syncTitle',
+               artist:  '_syncArtist',
+               album:   '_syncAlbum'
        }, function( method, setting ) {
                /**
                 * @param {Backbone.Model} model
        }, function( method, setting ) {
                /**
                 * @param {Backbone.Model} model
                tagName:   'ul',
                className: 'attachments',
 
                tagName:   'ul',
                className: 'attachments',
 
-               cssTemplate: media.template('attachments-css'),
-
-               events: {
-                       'scroll': 'scroll'
+               attributes: {
+                       tabIndex: -1
                },
 
                initialize: function() {
                        this.el.id = _.uniqueId('__attachments-view-');
 
                        _.defaults( this.options, {
                },
 
                initialize: function() {
                        this.el.id = _.uniqueId('__attachments-view-');
 
                        _.defaults( this.options, {
-                               refreshSensitivity: 200,
+                               refreshSensitivity: isTouchDevice ? 300 : 200,
                                refreshThreshold:   3,
                                AttachmentView:     media.view.Attachment,
                                sortable:           false,
                                refreshThreshold:   3,
                                AttachmentView:     media.view.Attachment,
                                sortable:           false,
-                               resize:             true
+                               resize:             true,
+                               idealColumnWidth:   $( window ).width() < 640 ? 135 : 150
                        });
 
                        this._viewsByCid = {};
                        });
 
                        this._viewsByCid = {};
+                       this.$window = $( window );
+                       this.resizeEvent = 'resize.media-modal-columns';
 
                        this.collection.on( 'add', function( attachment ) {
                                this.views.add( this.createAttachmentView( attachment ), {
 
                        this.collection.on( 'add', function( attachment ) {
                                this.views.add( this.createAttachmentView( attachment ), {
 
                        this.collection.on( 'reset', this.render, this );
 
 
                        this.collection.on( 'reset', this.render, this );
 
-                       // Throttle the scroll handler.
+                       this.listenTo( this.controller, 'library:selection:add',    this.attachmentFocus );
+
+                       // Throttle the scroll handler and bind this.
                        this.scroll = _.chain( this.scroll ).bind( this ).throttle( this.options.refreshSensitivity ).value();
 
                        this.scroll = _.chain( this.scroll ).bind( this ).throttle( this.options.refreshSensitivity ).value();
 
+                       this.options.scrollElement = this.options.scrollElement || this.el;
+                       $( this.options.scrollElement ).on( 'scroll', this.scroll );
+
                        this.initSortable();
 
                        this.initSortable();
 
-                       _.bindAll( this, 'css' );
-                       this.model.on( 'change:edge change:gutter', this.css, this );
-                       this._resizeCss = _.debounce( _.bind( this.css, this ), this.refreshSensitivity );
+                       _.bindAll( this, 'setColumns' );
+
                        if ( this.options.resize ) {
                        if ( this.options.resize ) {
-                               $(window).on( 'resize.attachments', this._resizeCss );
+                               this.on( 'ready', this.bindEvents );
+                               this.controller.on( 'open', this.setColumns );
+
+                               // Call this.setColumns() after this view has been rendered in the DOM so
+                               // attachments get proper width applied.
+                               _.defer( this.setColumns, this );
+                       }
+               },
+
+               bindEvents: function() {
+                       this.$window.off( this.resizeEvent ).on( this.resizeEvent, _.debounce( this.setColumns, 50 ) );
+               },
+
+               attachmentFocus: function() {
+                       this.$( 'li:first' ).focus();
+               },
+
+               restoreFocus: function() {
+                       this.$( 'li.selected:first' ).focus();
+               },
+
+               arrowEvent: function( event ) {
+                       var attachments = this.$el.children( 'li' ),
+                               perRow = this.columns,
+                               index = attachments.filter( ':focus' ).index(),
+                               row = ( index + 1 ) <= perRow ? 1 : Math.ceil( ( index + 1 ) / perRow );
+
+                       if ( index === -1 ) {
+                               return;
+                       }
+
+                       // Left arrow
+                       if ( 37 === event.keyCode ) {
+                               if ( 0 === index ) {
+                                       return;
+                               }
+                               attachments.eq( index - 1 ).focus();
+                       }
+
+                       // Up arrow
+                       if ( 38 === event.keyCode ) {
+                               if ( 1 === row ) {
+                                       return;
+                               }
+                               attachments.eq( index - perRow ).focus();
+                       }
+
+                       // Right arrow
+                       if ( 39 === event.keyCode ) {
+                               if ( attachments.length === index ) {
+                                       return;
+                               }
+                               attachments.eq( index + 1 ).focus();
+                       }
+
+                       // Down arrow
+                       if ( 40 === event.keyCode ) {
+                               if ( Math.ceil( attachments.length / perRow ) === row ) {
+                                       return;
+                               }
+                               attachments.eq( index + perRow ).focus();
                        }
                        }
-                       this.css();
                },
 
                dispose: function() {
                        this.collection.props.off( null, null, this );
                },
 
                dispose: function() {
                        this.collection.props.off( null, null, this );
-                       $(window).off( 'resize.attachments', this._resizeCss );
+                       if ( this.options.resize ) {
+                               this.$window.off( this.resizeEvent );
+                       }
+
                        /**
                         * call 'dispose' directly on the parent class
                         */
                        media.View.prototype.dispose.apply( this, arguments );
                },
 
                        /**
                         * call 'dispose' directly on the parent class
                         */
                        media.View.prototype.dispose.apply( this, arguments );
                },
 
-               css: function() {
-                       var $css = $( '#' + this.el.id + '-css' );
+               setColumns: function() {
+                       var prev = this.columns,
+                               width = this.$el.width();
 
 
-                       if ( $css.length ) {
-                               $css.remove();
-                       }
+                       if ( width ) {
+                               this.columns = Math.min( Math.round( width / this.options.idealColumnWidth ), 12 ) || 1;
 
 
-                       media.view.Attachments.$head().append( this.cssTemplate({
-                               id:     this.el.id,
-                               edge:   this.edge(),
-                               gutter: this.model.get('gutter')
-                       }) );
-               },
-               /**
-                * @returns {Number}
-                */
-               edge: function() {
-                       var edge = this.model.get('edge'),
-                               gutter, width, columns;
-
-                       if ( ! this.$el.is(':visible') ) {
-                               return edge;
+                               if ( ! prev || prev !== this.columns ) {
+                                       this.$el.closest( '.media-frame-content' ).attr( 'data-columns', this.columns );
+                               }
                        }
                        }
-
-                       gutter  = this.model.get('gutter') * 2;
-                       width   = this.$el.width() - gutter;
-                       columns = Math.ceil( width / ( edge + gutter ) );
-                       edge = Math.floor( ( width - ( columns * gutter ) ) / columns );
-                       return edge;
                },
 
                initSortable: function() {
                        var collection = this.collection;
 
                },
 
                initSortable: function() {
                        var collection = this.collection;
 
-                       if ( ! this.options.sortable || ! $.fn.sortable ) {
+                       if ( isTouchDevice || ! this.options.sortable || ! $.fn.sortable ) {
                                return;
                        }
 
                                return;
                        }
 
                },
 
                refreshSortable: function() {
                },
 
                refreshSortable: function() {
-                       if ( ! this.options.sortable || ! $.fn.sortable ) {
+                       if ( isTouchDevice || ! this.options.sortable || ! $.fn.sortable ) {
                                return;
                        }
 
                                return;
                        }
 
                 */
                createAttachmentView: function( attachment ) {
                        var view = new this.options.AttachmentView({
                 */
                createAttachmentView: function( attachment ) {
                        var view = new this.options.AttachmentView({
-                               controller: this.controller,
-                               model:      attachment,
-                               collection: this.collection,
-                               selection:  this.options.selection
+                               controller:           this.controller,
+                               model:                attachment,
+                               collection:           this.collection,
+                               selection:            this.options.selection
                        });
 
                        return this._viewsByCid[ attachment.cid ] = view;
                        });
 
                        return this._viewsByCid[ attachment.cid ] = view;
 
                scroll: function() {
                        var view = this,
 
                scroll: function() {
                        var view = this,
+                               el = this.options.scrollElement,
+                               scrollTop = el.scrollTop,
                                toolbar;
 
                                toolbar;
 
-                       if ( ! this.$el.is(':visible') || ! this.collection.hasMore() ) {
+                       // The scroll event occurs on the document, but the element
+                       // that should be checked is the document body.
+                       if ( el == document ) {
+                               el = document.body;
+                               scrollTop = $(document).scrollTop();
+                       }
+
+                       if ( ! $(el).is(':visible') || ! this.collection.hasMore() ) {
                                return;
                        }
 
                        toolbar = this.views.parent.toolbar;
 
                        // Show the spinner only if we are close to the bottom.
                                return;
                        }
 
                        toolbar = this.views.parent.toolbar;
 
                        // Show the spinner only if we are close to the bottom.
-                       if ( this.el.scrollHeight - ( this.el.scrollTop + this.el.clientHeight ) < this.el.clientHeight / 3 ) {
+                       if ( el.scrollHeight - ( scrollTop + el.clientHeight ) < el.clientHeight / 3 ) {
                                toolbar.get('spinner').show();
                        }
 
                                toolbar.get('spinner').show();
                        }
 
-                       if ( this.el.scrollHeight < this.el.scrollTop + ( this.el.clientHeight * this.options.refreshThreshold ) ) {
+                       if ( el.scrollHeight < scrollTop + ( el.clientHeight * this.options.refreshThreshold ) ) {
                                this.collection.more().done(function() {
                                        view.scroll();
                                        toolbar.get('spinner').hide();
                                });
                        }
                }
                                this.collection.more().done(function() {
                                        view.scroll();
                                        toolbar.get('spinner').hide();
                                });
                        }
                }
-       }, {
-               $head: (function() {
-                       var $head;
-                       return function() {
-                               return $head = $head || $('head');
-                       };
-               }())
        });
 
        /**
        });
 
        /**
        media.view.Search = media.View.extend({
                tagName:   'input',
                className: 'search',
        media.view.Search = media.View.extend({
                tagName:   'input',
                className: 'search',
+               id:        'media-search-input',
 
                attributes: {
                        type:        'search',
 
                attributes: {
                        type:        'search',
        media.view.AttachmentFilters = media.View.extend({
                tagName:   'select',
                className: 'attachment-filters',
        media.view.AttachmentFilters = media.View.extend({
                tagName:   'select',
                className: 'attachment-filters',
+               id:        'media-attachment-filters',
 
                events: {
                        change: 'change'
 
                events: {
                        change: 'change'
                        this.select();
                },
 
                        this.select();
                },
 
+               /**
+                * @abstract
+                */
                createFilters: function() {
                        this.filters = {};
                },
 
                createFilters: function() {
                        this.filters = {};
                },
 
+               /**
+                * When the selection changes, set the Query properties
+                * accordingly for the selected filter.
+                */
                change: function() {
                        var filter = this.filters[ this.el.value ];
                change: function() {
                        var filter = this.filters[ this.el.value ];
-
                        if ( filter ) {
                                this.model.set( filter.props );
                        }
                        if ( filter ) {
                                this.model.set( filter.props );
                        }
                                filters[ key ] = {
                                        text: text,
                                        props: {
                                filters[ key ] = {
                                        text: text,
                                        props: {
+                                               status:  null,
                                                type:    key,
                                                uploadedTo: null,
                                                orderby: 'date',
                                                type:    key,
                                                uploadedTo: null,
                                                orderby: 'date',
                        filters.all = {
                                text:  l10n.allMediaItems,
                                props: {
                        filters.all = {
                                text:  l10n.allMediaItems,
                                props: {
+                                       status:  null,
                                        type:    null,
                                        uploadedTo: null,
                                        orderby: 'date',
                                        type:    null,
                                        uploadedTo: null,
                                        orderby: 'date',
                                priority: 10
                        };
 
                                priority: 10
                        };
 
-                       filters.uploaded = {
-                               text:  l10n.uploadedToThisPost,
+                       if ( media.view.settings.post.id ) {
+                               filters.uploaded = {
+                                       text:  l10n.uploadedToThisPost,
+                                       props: {
+                                               status:  null,
+                                               type:    null,
+                                               uploadedTo: media.view.settings.post.id,
+                                               orderby: 'menuOrder',
+                                               order:   'ASC'
+                                       },
+                                       priority: 20
+                               };
+                       }
+
+                       filters.unattached = {
+                               text:  l10n.unattached,
                                props: {
                                props: {
-                                       type:    null,
-                                       uploadedTo: media.view.settings.post.id,
-                                       orderby: 'menuOrder',
-                                       order:   'ASC'
+                                       status:     null,
+                                       uploadedTo: 0,
+                                       type:       null,
+                                       orderby:    'menuOrder',
+                                       order:      'ASC'
                                },
                                },
-                               priority: 20
+                               priority: 50
                        };
 
                        };
 
+                       if ( media.view.settings.mediaTrash &&
+                               this.controller.isModeActive( 'grid' ) ) {
+
+                               filters.trash = {
+                                       text:  l10n.trash,
+                                       props: {
+                                               uploadedTo: null,
+                                               status:     'trash',
+                                               type:       null,
+                                               orderby:    'date',
+                                               order:      'DESC'
+                                       },
+                                       priority: 50
+                               };
+                       }
+
                        this.filters = filters;
                }
        });
 
                        this.filters = filters;
                }
        });
 
-
        /**
         * wp.media.view.AttachmentsBrowser
         *
        /**
         * wp.media.view.AttachmentsBrowser
         *
                                filters: false,
                                search:  true,
                                display: false,
                                filters: false,
                                search:  true,
                                display: false,
-
+                               sidebar: true,
                                AttachmentView: media.view.Attachment.Library
                        });
 
                                AttachmentView: media.view.Attachment.Library
                        });
 
+                       this.listenTo( this.controller, 'toggle:upload:attachment', _.bind( this.toggleUploader, this ) );
+
                        this.createToolbar();
                        this.createToolbar();
+                       if ( this.options.sidebar ) {
+                               this.createSidebar();
+                       }
+                       this.createUploader();
+                       this.createAttachments();
                        this.updateContent();
                        this.updateContent();
-                       this.createSidebar();
+
+                       if ( ! this.options.sidebar || 'errors' === this.options.sidebar ) {
+                               this.$el.addClass( 'hide-sidebar' );
+
+                               if ( 'errors' === this.options.sidebar ) {
+                                       this.$el.addClass( 'sidebar-for-errors' );
+                               }
+                       }
 
                        this.collection.on( 'add remove reset', this.updateContent, this );
                },
 
                        this.collection.on( 'add remove reset', this.updateContent, this );
                },
                },
 
                createToolbar: function() {
                },
 
                createToolbar: function() {
-                       var filters, FiltersConstructor;
+                       var LibraryViewSwitcher, Filters, toolbarOptions;
 
 
-                       /**
-                        * @member {wp.media.view.Toolbar}
-                        */
-                       this.toolbar = new media.view.Toolbar({
+                       toolbarOptions = {
                                controller: this.controller
                                controller: this.controller
-                       });
+                       };
+
+                       if ( this.controller.isModeActive( 'grid' ) ) {
+                               toolbarOptions.className = 'media-toolbar wp-filter';
+                       }
+
+                       /**
+                       * @member {wp.media.view.Toolbar}
+                       */
+                       this.toolbar = new media.view.Toolbar( toolbarOptions );
 
                        this.views.add( this.toolbar );
 
 
                        this.views.add( this.toolbar );
 
-                       filters = this.options.filters;
-                       if ( 'uploaded' === filters ) {
-                               FiltersConstructor = media.view.AttachmentFilters.Uploaded;
-                       } else if ( 'all' === filters ) {
-                               FiltersConstructor = media.view.AttachmentFilters.All;
+                       this.toolbar.set( 'spinner', new media.view.Spinner({
+                               priority: -60
+                       }) );
+
+                       if ( -1 !== $.inArray( this.options.filters, [ 'uploaded', 'all' ] ) ) {
+                               // "Filters" will return a <select>, need to render
+                               // screen reader text before
+                               this.toolbar.set( 'filtersLabel', new media.view.Label({
+                                       value: l10n.filterByType,
+                                       attributes: {
+                                               'for':  'media-attachment-filters'
+                                       },
+                                       priority:   -80
+                               }).render() );
+
+                               if ( 'uploaded' === this.options.filters ) {
+                                       this.toolbar.set( 'filters', new media.view.AttachmentFilters.Uploaded({
+                                               controller: this.controller,
+                                               model:      this.collection.props,
+                                               priority:   -80
+                                       }).render() );
+                               } else {
+                                       Filters = new media.view.AttachmentFilters.All({
+                                               controller: this.controller,
+                                               model:      this.collection.props,
+                                               priority:   -80
+                                       });
+
+                                       this.toolbar.set( 'filters', Filters.render() );
+                               }
                        }
 
                        }
 
-                       if ( FiltersConstructor ) {
-                               this.toolbar.set( 'filters', new FiltersConstructor({
+                       // Feels odd to bring the global media library switcher into the Attachment
+                       // browser view. Is this a use case for doAction( 'add:toolbar-items:attachments-browser', this.toolbar );
+                       // which the controller can tap into and add this view?
+                       if ( this.controller.isModeActive( 'grid' ) ) {
+                               LibraryViewSwitcher = media.View.extend({
+                                       className: 'view-switch media-grid-view-switch',
+                                       template: media.template( 'media-library-view-switcher')
+                               });
+
+                               this.toolbar.set( 'libraryViewSwitcher', new LibraryViewSwitcher({
+                                       controller: this.controller,
+                                       priority: -90
+                               }).render() );
+
+                               // DateFilter is a <select>, screen reader text needs to be rendered before
+                               this.toolbar.set( 'dateFilterLabel', new media.view.Label({
+                                       value: l10n.filterByDate,
+                                       attributes: {
+                                               'for': 'media-attachment-date-filters'
+                                       },
+                                       priority: -75
+                               }).render() );
+                               this.toolbar.set( 'dateFilter', new media.view.DateFilter({
                                        controller: this.controller,
                                        model:      this.collection.props,
                                        controller: this.controller,
                                        model:      this.collection.props,
-                                       priority:   -80
+                                       priority: -75
                                }).render() );
                                }).render() );
-                       }
 
 
-                       this.toolbar.set( 'spinner', new media.view.Spinner({
-                               priority: -70
-                       }) );
+                               // BulkSelection is a <div> with subviews, including screen reader text
+                               this.toolbar.set( 'selectModeToggleButton', new media.view.SelectModeToggleButton({
+                                       text: l10n.bulkSelect,
+                                       controller: this.controller,
+                                       priority: -70
+                               }).render() );
+
+                               this.toolbar.set( 'deleteSelectedButton', new media.view.DeleteSelectedButton({
+                                       filters: Filters,
+                                       style: 'primary',
+                                       disabled: true,
+                                       text: media.view.settings.mediaTrash ? l10n.trashSelected : l10n.deleteSelected,
+                                       controller: this.controller,
+                                       priority: -60,
+                                       click: function() {
+                                               var model, changed = [], self = this,
+                                                       selection = this.controller.state().get( 'selection' ),
+                                                       library = this.controller.state().get( 'library' );
+
+                                               if ( ! selection.length ) {
+                                                       return;
+                                               }
+
+                                               if ( ! media.view.settings.mediaTrash && ! confirm( l10n.warnBulkDelete ) ) {
+                                                       return;
+                                               }
+
+                                               if ( media.view.settings.mediaTrash &&
+                                                       'trash' !== selection.at( 0 ).get( 'status' ) &&
+                                                       ! confirm( l10n.warnBulkTrash ) ) {
+
+                                                       return;
+                                               }
+
+                                               while ( selection.length > 0 ) {
+                                                       model = selection.at( 0 );
+                                                       if ( media.view.settings.mediaTrash && 'trash' === model.get( 'status' ) ) {
+                                                               model.set( 'status', 'inherit' );
+                                                               changed.push( model.save() );
+                                                               selection.remove( model );
+                                                       } else if ( media.view.settings.mediaTrash ) {
+                                                               model.set( 'status', 'trash' );
+                                                               changed.push( model.save() );
+                                                               selection.remove( model );
+                                                       } else {
+                                                               model.destroy();
+                                                       }
+                                               }
+
+                                               if ( changed.length ) {
+                                                       $.when.apply( null, changed ).then( function() {
+                                                               library._requery( true );
+                                                               self.controller.trigger( 'selection:action:done' );
+                                                       } );
+                                               } else {
+                                                       this.controller.trigger( 'selection:action:done' );
+                                               }
+                                       }
+                               }).render() );
+                       }
 
                        if ( this.options.search ) {
 
                        if ( this.options.search ) {
+                               // Search is an input, screen reader text needs to be rendered before
+                               this.toolbar.set( 'searchLabel', new media.view.Label({
+                                       value: l10n.searchMediaLabel,
+                                       attributes: {
+                                               'for': 'media-search-input'
+                                       },
+                                       priority:   60
+                               }).render() );
                                this.toolbar.set( 'search', new media.view.Search({
                                        controller: this.controller,
                                        model:      this.collection.props,
                                this.toolbar.set( 'search', new media.view.Search({
                                        controller: this.controller,
                                        model:      this.collection.props,
                },
 
                updateContent: function() {
                },
 
                updateContent: function() {
-                       var view = this;
+                       var view = this,
+                               noItemsView;
 
 
-                       if( ! this.attachments ) {
-                               this.createAttachments();
+                       if ( this.controller.isModeActive( 'grid' ) ) {
+                               noItemsView = view.attachmentsNoResults;
+                       } else {
+                               noItemsView = view.uploader;
                        }
 
                        if ( ! this.collection.length ) {
                                this.toolbar.get( 'spinner' ).show();
                        }
 
                        if ( ! this.collection.length ) {
                                this.toolbar.get( 'spinner' ).show();
-                               this.collection.more().done(function() {
+                               this.dfd = this.collection.more().done( function() {
                                        if ( ! view.collection.length ) {
                                        if ( ! view.collection.length ) {
-                                               view.createUploader();
+                                               noItemsView.$el.removeClass( 'hidden' );
+                                       } else {
+                                               noItemsView.$el.addClass( 'hidden' );
                                        }
                                        view.toolbar.get( 'spinner' ).hide();
                                        }
                                        view.toolbar.get( 'spinner' ).hide();
-                               });
+                               } );
                        } else {
                        } else {
+                               noItemsView.$el.addClass( 'hidden' );
                                view.toolbar.get( 'spinner' ).hide();
                        }
                },
 
                                view.toolbar.get( 'spinner' ).hide();
                        }
                },
 
-               removeContent: function() {
-                       _.each(['attachments','uploader'], function( key ) {
-                               if ( this[ key ] ) {
-                                       this[ key ].remove();
-                                       delete this[ key ];
-                               }
-                       }, this );
-               },
-
                createUploader: function() {
                createUploader: function() {
-                       this.removeContent();
-
                        this.uploader = new media.view.UploaderInline({
                                controller: this.controller,
                                status:     false,
                        this.uploader = new media.view.UploaderInline({
                                controller: this.controller,
                                status:     false,
-                               message:    l10n.noItemsFound
+                               message:    this.controller.isModeActive( 'grid' ) ? '' : l10n.noItemsFound,
+                               canClose:   this.controller.isModeActive( 'grid' )
                        });
 
                        });
 
+                       this.uploader.hide();
                        this.views.add( this.uploader );
                },
 
                        this.views.add( this.uploader );
                },
 
-               createAttachments: function() {
-                       this.removeContent();
+               toggleUploader: function() {
+                       if ( this.uploader.$el.hasClass( 'hidden' ) ) {
+                               this.uploader.show();
+                       } else {
+                               this.uploader.hide();
+                       }
+               },
 
 
+               createAttachments: function() {
                        this.attachments = new media.view.Attachments({
                        this.attachments = new media.view.Attachments({
-                               controller: this.controller,
-                               collection: this.collection,
-                               selection:  this.options.selection,
-                               model:      this.model,
-                               sortable:   this.options.sortable,
+                               controller:           this.controller,
+                               collection:           this.collection,
+                               selection:            this.options.selection,
+                               model:                this.model,
+                               sortable:             this.options.sortable,
+                               scrollElement:        this.options.scrollElement,
+                               idealColumnWidth:     this.options.idealColumnWidth,
 
                                // The single `Attachment` view to be used in the `Attachments` view.
                                AttachmentView: this.options.AttachmentView
                        });
 
 
                                // The single `Attachment` view to be used in the `Attachments` view.
                                AttachmentView: this.options.AttachmentView
                        });
 
+                       // Add keydown listener to the instance of the Attachments view
+                       this.attachments.listenTo( this.controller, 'attachment:keydown:arrow',     this.attachments.arrowEvent );
+                       this.attachments.listenTo( this.controller, 'attachment:details:shift-tab', this.attachments.restoreFocus );
+
                        this.views.add( this.attachments );
                        this.views.add( this.attachments );
+
+
+                       if ( this.controller.isModeActive( 'grid' ) ) {
+                               this.attachmentsNoResults = new media.View({
+                                       controller: this.controller,
+                                       tagName: 'p'
+                               });
+
+                               this.attachmentsNoResults.$el.addClass( 'hidden no-media' );
+                               this.attachmentsNoResults.$el.html( l10n.noMedia );
+
+                               this.views.add( this.attachmentsNoResults );
+                       }
                },
 
                createSidebar: function() {
                },
 
                createSidebar: function() {
                                        userSettings: this.model.get('displayUserSettings')
                                }) );
                        }
                                        userSettings: this.model.get('displayUserSettings')
                                }) );
                        }
+
+                       // Show the sidebar on mobile
+                       if ( this.model.id === 'insert' ) {
+                               sidebar.$el.addClass( 'visible' );
+                       }
                },
 
                disposeSingle: function() {
                },
 
                disposeSingle: function() {
                        sidebar.unset('details');
                        sidebar.unset('compat');
                        sidebar.unset('display');
                        sidebar.unset('details');
                        sidebar.unset('compat');
                        sidebar.unset('display');
+                       // Hide the sidebar on mobile
+                       sidebar.$el.removeClass( 'visible' );
                }
        });
 
                }
        });
 
                                controller: this.controller,
                                collection: this.collection,
                                selection:  this.collection,
                                controller: this.controller,
                                collection: this.collection,
                                selection:  this.collection,
-                               model:      new Backbone.Model({
-                                       edge:   40,
-                                       gutter: 5
-                               })
+                               model:      new Backbone.Model()
                        });
 
                        this.views.set( '.selection-view', this.attachments );
                        });
 
                        this.views.set( '.selection-view', this.attachments );
                clear: function( event ) {
                        event.preventDefault();
                        this.collection.reset();
                clear: function( event ) {
                        event.preventDefault();
                        this.collection.reset();
+
+                       // Keep focus inside media modal
+                       // after clear link is selected
+                       this.controller.modal.focusManager.focus();
                }
        });
 
                }
        });
 
                                }
                        // Handle checkboxes.
                        } else if ( $setting.is('input[type="checkbox"]') ) {
                                }
                        // Handle checkboxes.
                        } else if ( $setting.is('input[type="checkbox"]') ) {
-                               $setting.prop( 'checked', !! value );
+                               $setting.prop( 'checked', !! value && 'false' !== value );
                        }
                },
                /**
                        }
                },
                /**
                        $input.removeClass( 'hidden' );
 
                        // If the input is visible, focus and select its contents.
                        $input.removeClass( 'hidden' );
 
                        // If the input is visible, focus and select its contents.
-                       if ( $input.is(':visible') ) {
+                       if ( ! isTouchDevice && $input.is(':visible') ) {
                                $input.focus()[0].select();
                        }
                }
                                $input.focus()[0].select();
                        }
                }
                        'change [data-setting] textarea': 'updateSetting',
                        'click .delete-attachment':       'deleteAttachment',
                        'click .trash-attachment':        'trashAttachment',
                        'change [data-setting] textarea': 'updateSetting',
                        'click .delete-attachment':       'deleteAttachment',
                        'click .trash-attachment':        'trashAttachment',
+                       'click .untrash-attachment':      'untrashAttachment',
                        'click .edit-attachment':         'editAttachment',
                        'click .edit-attachment':         'editAttachment',
-                       'click .refresh-attachment':      'refreshAttachment'
+                       'click .refresh-attachment':      'refreshAttachment',
+                       'keydown':                        'toggleSelectionHandler'
                },
 
                initialize: function() {
                },
 
                initialize: function() {
-                       /**
-                        * @member {wp.media.view.FocusManager}
-                        */
-                       this.focusManager = new media.view.FocusManager({
-                               el: this.el
+                       this.options = _.defaults( this.options, {
+                               rerenderOnModelChange: false
                        });
                        });
+
+                       this.on( 'ready', this.initialFocus );
                        /**
                         * call 'initialize' directly on the parent class
                         */
                        media.view.Attachment.prototype.initialize.apply( this, arguments );
                },
                        /**
                         * call 'initialize' directly on the parent class
                         */
                        media.view.Attachment.prototype.initialize.apply( this, arguments );
                },
-               /**
-                * @returns {wp.media.view..Attachment.Details} Returns itself to allow chaining
-                */
-               render: function() {
-                       /**
-                        * call 'render' directly on the parent class
-                        */
-                       media.view.Attachment.prototype.render.apply( this, arguments );
-                       this.focusManager.focus();
-                       return this;
+
+               initialFocus: function() {
+                       if ( ! isTouchDevice ) {
+                               this.$( ':input' ).eq( 0 ).focus();
+                       }
                },
                /**
                 * @param {Object} event
                },
                /**
                 * @param {Object} event
 
                        if ( confirm( l10n.warnDelete ) ) {
                                this.model.destroy();
 
                        if ( confirm( l10n.warnDelete ) ) {
                                this.model.destroy();
+                               // Keep focus inside media modal
+                               // after image is deleted
+                               this.controller.modal.focusManager.focus();
                        }
                },
                /**
                 * @param {Object} event
                 */
                trashAttachment: function( event ) {
                        }
                },
                /**
                 * @param {Object} event
                 */
                trashAttachment: function( event ) {
+                       var library = this.controller.library;
                        event.preventDefault();
 
                        event.preventDefault();
 
-                       this.model.destroy();
+                       if ( media.view.settings.mediaTrash &&
+                               'edit-metadata' === this.controller.content.mode() ) {
+
+                               this.model.set( 'status', 'trash' );
+                               this.model.save().done( function() {
+                                       library._requery( true );
+                               } );
+                       }  else {
+                               this.model.destroy();
+                       }
+               },
+               /**
+                * @param {Object} event
+                */
+               untrashAttachment: function( event ) {
+                       var library = this.controller.library;
+                       event.preventDefault();
+
+                       this.model.set( 'status', 'inherit' );
+                       this.model.save().done( function() {
+                               library._requery( true );
+                       } );
                },
                /**
                 * @param {Object} event
                },
                /**
                 * @param {Object} event
                        this.$el.removeClass('needs-refresh');
                        event.preventDefault();
                        this.model.fetch();
                        this.$el.removeClass('needs-refresh');
                        event.preventDefault();
                        this.model.fetch();
-               }
+               },
+               /**
+                * When reverse tabbing(shift+tab) out of the right details panel, deliver
+                * the focus to the item in the list that was being edited.
+                *
+                * @param {Object} event
+                */
+               toggleSelectionHandler: function( event ) {
+                       if ( 'keydown' === event.type && 9 === event.keyCode && event.shiftKey && event.target === this.$( ':tabbable' ).get( 0 ) ) {
+                               this.controller.trigger( 'attachment:details:shift-tab', event );
+                               return false;
+                       }
 
 
+                       if ( 37 === event.keyCode || 38 === event.keyCode || 39 === event.keyCode || 40 === event.keyCode ) {
+                               this.controller.trigger( 'attachment:keydown:arrow', event );
+                               return;
+                       }
+               }
        });
 
        /**
         * wp.media.view.AttachmentCompat
         *
        });
 
        /**
         * wp.media.view.AttachmentCompat
         *
+        * A view to display fields added via the `attachment_fields_to_edit` filter.
+        *
         * @constructor
         * @augments wp.media.View
         * @augments wp.Backbone.View
         * @constructor
         * @augments wp.media.View
         * @augments wp.Backbone.View
                },
 
                initialize: function() {
                },
 
                initialize: function() {
-                       /**
-                        * @member {wp.media.view.FocusManager}
-                        */
-                       this.focusManager = new media.view.FocusManager({
-                               el: this.el
-                       });
-
                        this.model.on( 'change:compat', this.render, this );
                },
                /**
                        this.model.on( 'change:compat', this.render, this );
                },
                /**
                        this.views.detach();
                        this.$el.html( compat.item );
                        this.views.render();
                        this.views.detach();
                        this.$el.html( compat.item );
                        this.views.render();
-
-                       this.focusManager.focus();
                        return this;
                },
                /**
                        return this;
                },
                /**
                }
        });
 
                }
        });
 
+       /**
+        * @constructor
+        * @augments wp.media.View
+        * @augments wp.Backbone.View
+        * @augments Backbone.View
+        */
+       media.view.Label = media.View.extend({
+               tagName: 'label',
+               className: 'screen-reader-text',
+
+               initialize: function() {
+                       this.value = this.options.value;
+               },
+
+               render: function() {
+                       this.$el.html( this.value );
+
+                       return this;
+               }
+       });
+
        /**
         * wp.media.view.EmbedUrl
         *
        /**
         * wp.media.view.EmbedUrl
         *
                },
 
                initialize: function() {
                },
 
                initialize: function() {
-                       this.$input = $('<input/>').attr( 'type', 'text' ).val( this.model.get('url') );
+                       var self = this;
+
+                       this.$input = $('<input id="embed-url-field" type="url" />').val( this.model.get('url') );
                        this.input = this.$input[0];
 
                        this.spinner = $('<span class="spinner" />')[0];
                        this.$el.append([ this.input, this.spinner ]);
 
                        this.model.on( 'change:url', this.render, this );
                        this.input = this.$input[0];
 
                        this.spinner = $('<span class="spinner" />')[0];
                        this.$el.append([ this.input, this.spinner ]);
 
                        this.model.on( 'change:url', this.render, this );
+
+                       if ( this.model.get( 'url' ) ) {
+                               _.delay( function () {
+                                       self.model.trigger( 'change:url' );
+                               }, 500 );
+                       }
                },
                /**
                 * @returns {wp.media.view.EmbedUrl} Returns itself to allow chaining
                },
                /**
                 * @returns {wp.media.view.EmbedUrl} Returns itself to allow chaining
                },
 
                ready: function() {
                },
 
                ready: function() {
-                       this.focus();
+                       if ( ! isTouchDevice ) {
+                               this.focus();
+                       }
                },
 
                url: function( event ) {
                },
 
                url: function( event ) {
         */
        media.view.EmbedLink = media.view.Settings.extend({
                className: 'embed-link-settings',
         */
        media.view.EmbedLink = media.view.Settings.extend({
                className: 'embed-link-settings',
-               template:  media.template('embed-link-settings')
+               template:  media.template('embed-link-settings'),
+
+               initialize: function() {
+                       this.spinner = $('<span class="spinner" />');
+                       this.$el.append( this.spinner[0] );
+                       this.listenTo( this.model, 'change:url', this.updateoEmbed );
+               },
+
+               updateoEmbed: function() {
+                       var url = this.model.get( 'url' );
+
+                       this.$('.setting.title').show();
+                       // clear out previous results
+                       this.$('.embed-container').hide().find('.embed-preview').html('');
+
+                       // only proceed with embed if the field contains more than 6 characters
+                       if ( url && url.length < 6 ) {
+                               return;
+                       }
+
+                       this.spinner.show();
+
+                       setTimeout( _.bind( this.fetch, this ), 500 );
+               },
+
+               fetch: function() {
+                       // check if they haven't typed in 500 ms
+                       if ( $('#embed-url-field').val() !== this.model.get('url') ) {
+                               return;
+                       }
+
+                       wp.ajax.send( 'parse-embed', {
+                               data : {
+                                       post_ID: media.view.settings.post.id,
+                                       shortcode: '[embed]' + this.model.get('url') + '[/embed]'
+                               }
+                       } ).done( _.bind( this.renderoEmbed, this ) );
+               },
+
+               renderoEmbed: function( response ) {
+                       var html = ( response && response.body ) || '';
+
+                       this.spinner.hide();
+
+                       this.$('.setting.title').hide();
+                       this.$('.embed-container').show().find('.embed-preview').html( html );
+               }
        });
 
        /**
         * wp.media.view.EmbedImage
         *
        });
 
        /**
         * wp.media.view.EmbedImage
         *
-        * @contructor
+        * @constructor
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
         * @augments wp.media.View
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
         * @augments wp.media.View
        /**
         * wp.media.view.ImageDetails
         *
        /**
         * wp.media.view.ImageDetails
         *
-        * @contructor
+        * @constructor
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
         * @augments wp.media.View
         * @augments wp.media.view.Settings.AttachmentDisplay
         * @augments wp.media.view.Settings
         * @augments wp.media.View
                                value = Math.round( this.model.get( 'aspectRatio' ) * num );
                                this.model.set( 'customWidth', value, { silent: true  } );
                                this.$( '[data-setting="customWidth"]' ).val( value );
                                value = Math.round( this.model.get( 'aspectRatio' ) * num );
                                this.model.set( 'customWidth', value, { silent: true  } );
                                this.$( '[data-setting="customWidth"]' ).val( value );
-
                        }
                },
 
                        }
                },
 
                },
 
                loadEditor: function() {
                },
 
                loadEditor: function() {
-                       this.editor.open( this.model.get('id'), this.model.get('nonces').edit, this );
+                       var dfd = this.editor.open( this.model.get('id'), this.model.get('nonces').edit, this );
+                       dfd.done( _.bind( this.focus, this ) );
+               },
+
+               focus: function() {
+                       this.$( '.imgedit-submit .button' ).eq( 0 ).focus();
                },
 
                back: function() {
                },
 
                back: function() {
index ee8908dccfb779255d7676e80975b2d28f277cc3..28a939a85905e1870ae7937f8eb444f6d3b0f650 100644 (file)
@@ -1,3 +1,3 @@
-!function(a,b){var c,d=wp.media;c=d.view.l10n="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n,d.view.settings=c.settings||{},delete c.settings,d.model.settings.post=d.view.settings.post,a.support.transition=function(){var a,c=document.documentElement.style,d={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};return a=b.find(b.keys(d),function(a){return!b.isUndefined(c[a])}),a&&{end:d[a]}}(),d.events=b.extend({},Backbone.Events),d.transition=function(c,d){var e=a.Deferred();return d=d||2e3,a.support.transition?(c instanceof a||(c=a(c)),c.first().one(a.support.transition.end,e.resolve),b.delay(e.resolve,d)):e.resolve(),e.promise()},d.controller.Region=function(a){b.extend(this,b.pick(a||{},"id","view","selector"))},d.controller.Region.extend=Backbone.Model.extend,b.extend(d.controller.Region.prototype,{mode:function(a){return a?a===this._mode?this:(this.trigger("deactivate"),this._mode=a,this.render(a),this.trigger("activate"),this):this._mode},render:function(a){if(a&&a!==this._mode)return this.mode(a);var b,c={view:null};return this.trigger("create",c),b=c.view,this.trigger("render",b),b&&this.set(b),this},get:function(){return this.view.views.first(this.selector)},set:function(a,b){return b&&(b.add=!1),this.view.views.set(this.selector,a,b)},trigger:function(a){var c,d;if(this._mode)return d=b.toArray(arguments),c=this.id+":"+a,d[0]=c+":"+this._mode,this.view.trigger.apply(this.view,d),d[0]=c,this.view.trigger.apply(this.view,d),this}}),d.controller.StateMachine=function(a){this.states=new Backbone.Collection(a)},d.controller.StateMachine.extend=Backbone.Model.extend,b.extend(d.controller.StateMachine.prototype,Backbone.Events,{state:function(a){return this.states=this.states||new Backbone.Collection,a=a||this._state,a&&!this.states.get(a)&&this.states.add({id:a}),this.states.get(a)},setState:function(a){var b=this.state();return b&&a===b.id||!this.states||!this.states.get(a)?this:(b&&(b.trigger("deactivate"),this._lastState=b.id),this._state=a,this.state().trigger("activate"),this)},lastState:function(){return this._lastState?this.state(this._lastState):void 0}}),b.each(["on","off","trigger"],function(a){d.controller.StateMachine.prototype[a]=function(){return this.states=this.states||new Backbone.Collection,this.states[a].apply(this.states,arguments),this}}),d.controller.State=Backbone.Model.extend({constructor:function(){this.on("activate",this._preActivate,this),this.on("activate",this.activate,this),this.on("activate",this._postActivate,this),this.on("deactivate",this._deactivate,this),this.on("deactivate",this.deactivate,this),this.on("reset",this.reset,this),this.on("ready",this._ready,this),this.on("ready",this.ready,this),Backbone.Model.apply(this,arguments),this.on("change:menu",this._updateMenu,this)},ready:function(){},activate:function(){},deactivate:function(){},reset:function(){},_ready:function(){this._updateMenu()},_preActivate:function(){this.active=!0},_postActivate:function(){this.on("change:menu",this._menu,this),this.on("change:titleMode",this._title,this),this.on("change:content",this._content,this),this.on("change:toolbar",this._toolbar,this),this.frame.on("title:render:default",this._renderTitle,this),this._title(),this._menu(),this._toolbar(),this._content(),this._router()},_deactivate:function(){this.active=!1,this.frame.off("title:render:default",this._renderTitle,this),this.off("change:menu",this._menu,this),this.off("change:titleMode",this._title,this),this.off("change:content",this._content,this),this.off("change:toolbar",this._toolbar,this)},_title:function(){this.frame.title.render(this.get("titleMode")||"default")},_renderTitle:function(a){a.$el.text(this.get("title")||"")},_router:function(){var a,b=this.frame.router,c=this.get("router");this.frame.$el.toggleClass("hide-router",!c),c&&(this.frame.router.render(c),a=b.get(),a&&a.select&&a.select(this.frame.content.mode()))},_menu:function(){var a,b=this.frame.menu,c=this.get("menu");c&&(b.mode(c),a=b.get(),a&&a.select&&a.select(this.id))},_updateMenu:function(){var a=this.previous("menu"),b=this.get("menu");a&&this.frame.off("menu:render:"+a,this._renderMenu,this),b&&this.frame.on("menu:render:"+b,this._renderMenu,this)},_renderMenu:function(a){var b=this.get("menuItem"),c=this.get("title"),d=this.get("priority");!b&&c&&(b={text:c},d&&(b.priority=d)),b&&a.set(this.id,b)}}),b.each(["toolbar","content"],function(a){d.controller.State.prototype["_"+a]=function(){var b=this.get(a);b&&this.frame[a].render(b)}}),d.selectionSync={syncSelection:function(){var a=this.get("selection"),c=this.frame._selection;this.get("syncSelection")&&c&&a&&(a.multiple&&(a.reset([],{silent:!0}),a.validateAll(c.attachments),c.difference=b.difference(c.attachments.models,a.models)),a.single(c.single))},recordSelection:function(){var a=this.get("selection"),b=this.frame._selection;this.get("syncSelection")&&b&&a&&(a.multiple?(b.attachments.reset(a.toArray().concat(b.difference)),b.difference=[]):b.attachments.add(a.toArray()),b.single=a._single)}},d.controller.Library=d.controller.State.extend({defaults:{id:"library",multiple:!1,describe:!1,toolbar:"select",sidebar:"settings",content:"upload",router:"browse",menu:"default",searchable:!0,filterable:!1,sortable:!0,title:c.mediaLibraryTitle,contentUserSetting:!0,syncSelection:!0},initialize:function(){var a,c=this.get("selection");this.get("library")||this.set("library",d.query()),c instanceof d.model.Selection||(a=c,a||(a=this.get("library").props.toJSON(),a=b.omit(a,"orderby","query")),this.set("selection",new d.model.Selection(null,{multiple:this.get("multiple"),props:a}))),this.get("edge")||this.set("edge",120),this.get("gutter")||this.set("gutter",8),this.resetDisplays()},activate:function(){this.syncSelection(),wp.Uploader.queue.on("add",this.uploading,this),this.get("selection").on("add remove reset",this.refreshContent,this),this.get("contentUserSetting")&&(this.frame.on("content:activate",this.saveContentMode,this),this.set("content",getUserSetting("libraryContent",this.get("content"))))},deactivate:function(){this.recordSelection(),this.frame.off("content:activate",this.saveContentMode,this),this.get("selection").off(null,null,this),wp.Uploader.queue.off(null,null,this)},reset:function(){this.get("selection").reset(),this.resetDisplays(),this.refreshContent()},resetDisplays:function(){var a=d.view.settings.defaultProps;this._displays=[],this._defaultDisplaySettings={align:a.align||getUserSetting("align","none"),size:a.size||getUserSetting("imgsize","medium"),link:a.link||getUserSetting("urlbutton","file")}},display:function(a){var b=this._displays;return b[a.cid]||(b[a.cid]=new Backbone.Model(this.defaultDisplaySettings(a))),b[a.cid]},defaultDisplaySettings:function(a){var b=this._defaultDisplaySettings;return(b.canEmbed=this.canEmbed(a))&&(b.link="embed"),b},canEmbed:function(a){if(!a.get("uploading")){var c=a.get("type");if("audio"!==c&&"video"!==c)return!1}return b.contains(d.view.settings.embedExts,a.get("filename").split(".").pop())},refreshContent:function(){var a=this.get("selection"),b=this.frame,c=b.router.get(),d=b.content.mode();this.active&&!a.length&&c&&!c.get(d)&&this.frame.content.render(this.get("content"))},uploading:function(a){var b=this.frame.content;"upload"===b.mode()&&this.frame.content.mode("browse"),this.get("selection").add(a)},saveContentMode:function(){if("browse"===this.get("router")){var a=this.frame.content.mode(),b=this.frame.router.get();b&&b.get(a)&&setUserSetting("libraryContent",a)}}}),b.extend(d.controller.Library.prototype,d.selectionSync),d.controller.ImageDetails=d.controller.State.extend({defaults:b.defaults({id:"image-details",toolbar:"image-details",title:c.imageDetailsTitle,content:"image-details",menu:"image-details",router:!1,attachment:!1,priority:60,editing:!1},d.controller.Library.prototype.defaults),initialize:function(a){this.image=a.image,d.controller.State.prototype.initialize.apply(this,arguments)},activate:function(){this.frame.modal.$el.addClass("image-details")}}),d.controller.GalleryEdit=d.controller.Library.extend({defaults:{id:"gallery-edit",multiple:!1,describe:!0,edge:199,editing:!1,sortable:!0,searchable:!1,toolbar:"gallery-edit",content:"browse",title:c.editGalleryTitle,priority:60,dragInfo:!0,syncSelection:!1},initialize:function(){this.get("library")||this.set("library",new d.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",d.view.Attachment.EditLibrary),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type","image"),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.gallerySettings,this),d.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.gallerySettings,this),d.controller.Library.prototype.deactivate.apply(this,arguments)},gallerySettings:function(a){var b=this.get("library");b&&a&&(b.gallery=b.gallery||new Backbone.Model,a.sidebar.set({gallery:new d.view.Settings.Gallery({controller:this,model:b.gallery,priority:40})}),a.toolbar.set("reverse",{text:c.reverseOrder,priority:80,click:function(){b.reset(b.toArray().reverse())}}))}}),d.controller.GalleryAdd=d.controller.Library.extend({defaults:b.defaults({id:"gallery-library",filterable:"uploaded",multiple:"add",menu:"gallery",toolbar:"gallery-add",title:c.addToGalleryTitle,priority:100,syncSelection:!1},d.controller.Library.prototype.defaults),initialize:function(){this.get("library")||this.set("library",d.query({type:"image"})),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.frame.state("gallery-edit").get("library");this.editLibrary&&this.editLibrary!==b&&a.unobserve(this.editLibrary),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!b.get(a.cid)&&d.model.Selection.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(b),this.editLibrary=b,d.controller.Library.prototype.activate.apply(this,arguments)}}),d.controller.CollectionEdit=d.controller.Library.extend({defaults:{multiple:!1,describe:!0,edge:199,editing:!1,sortable:!0,searchable:!1,content:"browse",priority:60,dragInfo:!0,SettingsView:!1,syncSelection:!1},initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-edit"),this.set("toolbar",a+"-edit"),this.get("library")||this.set("library",new d.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",d.view.Attachment.EditLibrary),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type",this.get("type")),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.renderSettings,this),d.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.renderSettings,this),d.controller.Library.prototype.deactivate.apply(this,arguments)},renderSettings:function(b){var e=this.get("library"),f=this.get("collectionType"),g=this.get("dragInfoText"),h=this.get("SettingsView"),i={};e&&b&&(e[f]=e[f]||new Backbone.Model,i[f]=new h({controller:this,model:e[f],priority:40}),b.sidebar.set(i),g&&b.toolbar.set("dragInfo",new d.View({el:a('<div class="instructions">'+g+"</div>")[0],priority:-40})),b.toolbar.set("reverse",{text:c.reverseOrder,priority:80,click:function(){e.reset(e.toArray().reverse())}}))}}),d.controller.CollectionAdd=d.controller.Library.extend({defaults:b.defaults({filterable:"uploaded",multiple:"add",priority:100,syncSelection:!1},d.controller.Library.prototype.defaults),initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-library"),this.set("toolbar",a+"-add"),this.set("menu",a),this.get("library")||this.set("library",d.query({type:this.get("type")})),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.get("editLibrary"),c=this.frame.state(this.get("collectionType")+"-edit").get("library");b&&b!==c&&a.unobserve(b),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!c.get(a.cid)&&d.model.Selection.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(c),this.set("editLibrary",c),d.controller.Library.prototype.activate.apply(this,arguments)}}),d.controller.FeaturedImage=d.controller.Library.extend({defaults:b.defaults({id:"featured-image",filterable:"uploaded",multiple:!1,toolbar:"featured-image",title:c.setFeaturedImageTitle,priority:60,syncSelection:!0},d.controller.Library.prototype.defaults),initialize:function(){var a,b;this.get("library")||this.set("library",d.query({type:"image"})),d.controller.Library.prototype.initialize.apply(this,arguments),a=this.get("library"),b=a.comparator,a.comparator=function(a,c){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(c.cid);return!d&&e?-1:d&&!e?1:b.apply(this,arguments)},a.observe(this.get("selection"))},activate:function(){this.updateSelection(),this.frame.on("open",this.updateSelection,this),d.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.frame.off("open",this.updateSelection,this),d.controller.Library.prototype.deactivate.apply(this,arguments)},updateSelection:function(){var a,b=this.get("selection"),c=d.view.settings.post.featuredImageId;""!==c&&-1!==c&&(a=d.model.Attachment.get(c),a.fetch()),b.reset(a?[a]:[])}}),d.controller.ReplaceImage=d.controller.Library.extend({defaults:b.defaults({id:"replace-image",filterable:"uploaded",multiple:!1,toolbar:"replace",title:c.replaceImageTitle,priority:60,syncSelection:!0},d.controller.Library.prototype.defaults),initialize:function(a){var b,c;this.image=a.image,this.get("library")||this.set("library",d.query({type:"image"})),d.controller.Library.prototype.initialize.apply(this,arguments),b=this.get("library"),c=b.comparator,b.comparator=function(a,b){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(b.cid);return!d&&e?-1:d&&!e?1:c.apply(this,arguments)},b.observe(this.get("selection"))},activate:function(){this.updateSelection(),d.controller.Library.prototype.activate.apply(this,arguments)},updateSelection:function(){var a=this.get("selection"),b=this.image.attachment;a.reset(b?[b]:[])}}),d.controller.EditImage=d.controller.State.extend({defaults:{id:"edit-image",url:"",menu:!1,toolbar:"edit-image",title:c.editImage,content:"edit-image"},activate:function(){this.listenTo(this.frame,"toolbar:render:edit-image",this.toolbar)},deactivate:function(){this.stopListening(this.frame)},toolbar:function(){var a=this.frame,b=a.lastState(),e=b&&b.id;a.toolbar.set(new d.view.Toolbar({controller:a,items:{back:{style:"primary",text:c.back,priority:20,click:function(){e?a.setState(e):a.close()}}}}))}}),d.controller.MediaLibrary=d.controller.Library.extend({defaults:b.defaults({filterable:"uploaded",priority:80,syncSelection:!1,displaySettings:!1},d.controller.Library.prototype.defaults),initialize:function(a){this.media=a.media,this.type=a.type,this.set("library",d.query({type:this.type})),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){d.frame.lastMime&&(this.set("library",d.query({type:d.frame.lastMime})),delete d.frame.lastMime),d.controller.Library.prototype.activate.apply(this,arguments)}}),d.controller.Embed=d.controller.State.extend({defaults:{id:"embed",url:"",menu:"default",content:"embed",toolbar:"main-embed",type:"link",title:c.insertFromUrlTitle,priority:120},sensitivity:200,initialize:function(){this.debouncedScan=b.debounce(b.bind(this.scan,this),this.sensitivity),this.props=new Backbone.Model({url:""}),this.props.on("change:url",this.debouncedScan,this),this.props.on("change:url",this.refresh,this),this.on("scan",this.scanImage,this)},scan:function(){var b,c=this,d={type:"link",scanners:[]};this.props.get("url")&&this.trigger("scan",d),d.scanners.length?(b=d.scanners=a.when.apply(a,d.scanners),b.always(function(){c.get("scanners")===b&&c.set("loading",!1)})):d.scanners=null,d.loading=!!d.scanners,this.set(d)},scanImage:function(b){var c=this.frame,d=this,e=this.props.get("url"),f=new Image,g=a.Deferred();b.scanners.push(g.promise()),f.onload=function(){g.resolve(),d===c.state()&&e===d.props.get("url")&&(d.set({type:"image"}),d.props.set({width:f.width,height:f.height}))},f.onerror=g.reject,f.src=e},refresh:function(){this.frame.toolbar.get().refresh()},reset:function(){this.props.clear().set({url:""}),this.active&&this.refresh()}}),d.controller.Cropper=d.controller.State.extend({defaults:{id:"cropper",title:c.cropImage,toolbar:"crop",content:"crop",router:!1,canSkipCrop:!1},activate:function(){this.frame.on("content:create:crop",this.createCropContent,this),this.frame.on("close",this.removeCropper,this),this.set("selection",new Backbone.Collection(this.frame._selection.single))},deactivate:function(){this.frame.toolbar.mode("browse")},createCropContent:function(){this.cropperView=new wp.media.view.Cropper({controller:this,attachment:this.get("selection").first()}),this.cropperView.on("image-loaded",this.createCropToolbar,this),this.frame.content.set(this.cropperView)},removeCropper:function(){this.imgSelect.cancelSelection(),this.imgSelect.setOptions({remove:!0}),this.imgSelect.update(),this.cropperView.remove()},createCropToolbar:function(){var a,d;a=this.get("canSkipCrop")||!1,d={controller:this.frame,items:{insert:{style:"primary",text:c.cropImage,priority:80,requires:{library:!1,selection:!1},click:function(){var a=this,b=this.controller.state().get("selection").first();b.set({cropDetails:this.controller.state().imgSelect.getSelection()}),this.$el.text(c.cropping),this.$el.attr("disabled",!0),this.controller.state().doCrop(b).done(function(b){a.controller.trigger("cropped",b),a.controller.close()}).fail(function(){a.controller.trigger("content:error:crop")})}}}},a&&b.extend(d.items,{skip:{style:"secondary",text:c.skipCropping,priority:70,requires:{library:!1,selection:!1},click:function(){var a=this.controller.state().get("selection").first();this.controller.state().cropperView.remove(),this.controller.trigger("skippedcrop",a),this.controller.close()}}}),this.frame.toolbar.set(new wp.media.view.Toolbar(d))},doCrop:function(a){return wp.ajax.post("custom-header-crop",{nonce:a.get("nonces").edit,id:a.get("id"),cropDetails:a.get("cropDetails")})}}),d.View=wp.Backbone.View.extend({constructor:function(a){a&&a.controller&&(this.controller=a.controller),wp.Backbone.View.apply(this,arguments)},dispose:function(){return this.undelegateEvents(),this.model&&this.model.off&&this.model.off(null,null,this),this.collection&&this.collection.off&&this.collection.off(null,null,this),this.controller&&this.controller.off&&this.controller.off(null,null,this),this},remove:function(){return this.dispose(),wp.Backbone.View.prototype.remove.apply(this,arguments)}}),d.view.Frame=d.View.extend({initialize:function(){this._createRegions(),this._createStates()},_createRegions:function(){this.regions=this.regions?this.regions.slice():[],b.each(this.regions,function(a){this[a]=new d.controller.Region({view:this,id:a,selector:".media-frame-"+a})},this)},_createStates:function(){this.states=new Backbone.Collection(null,{model:d.controller.State}),this.states.on("add",function(a){a.frame=this,a.trigger("ready")},this),this.options.states&&this.states.add(this.options.states)},reset:function(){return this.states.invoke("trigger","reset"),this}}),b.extend(d.view.Frame.prototype,d.controller.StateMachine.prototype),d.view.MediaFrame=d.view.Frame.extend({className:"media-frame",template:d.template("media-frame"),regions:["menu","title","content","toolbar","router"],initialize:function(){d.view.Frame.prototype.initialize.apply(this,arguments),b.defaults(this.options,{title:"",modal:!0,uploader:!0}),this.$el.addClass("wp-core-ui"),this.options.modal&&(this.modal=new d.view.Modal({controller:this,title:this.options.title}),this.modal.content(this)),(wp.Uploader.limitExceeded||!wp.Uploader.browser.supported)&&(this.options.uploader=!1),this.options.uploader&&(this.uploader=new d.view.UploaderWindow({controller:this,uploader:{dropzone:this.modal?this.modal.$el:this.$el,container:this.$el}}),this.views.set(".media-frame-uploader",this.uploader)),this.on("attach",b.bind(this.views.ready,this.views),this),this.on("title:create:default",this.createTitle,this),this.title.mode("default"),this.on("menu:create:default",this.createMenu,this)},render:function(){return!this.state()&&this.options.state&&this.setState(this.options.state),d.view.Frame.prototype.render.apply(this,arguments)},createTitle:function(a){a.view=new d.View({controller:this,tagName:"h1"})},createMenu:function(a){a.view=new d.view.Menu({controller:this})},createToolbar:function(a){a.view=new d.view.Toolbar({controller:this})},createRouter:function(a){a.view=new d.view.Router({controller:this})},createIframeStates:function(c){var e,f=d.view.settings,g=f.tabs,h=f.tabUrl;g&&h&&(e=a("#post_ID"),e.length&&(h+="&post_id="+e.val()),b.each(g,function(a,d){this.state("iframe:"+d).set(b.defaults({tab:d,src:h+"&tab="+d,title:a,content:"iframe",menu:"default"},c))},this),this.on("content:create:iframe",this.iframeContent,this),this.on("menu:render:default",this.iframeMenu,this),this.on("open",this.hijackThickbox,this),this.on("close",this.restoreThickbox,this))},iframeContent:function(a){this.$el.addClass("hide-toolbar"),a.view=new d.view.Iframe({controller:this})},iframeMenu:function(a){var c={};a&&(b.each(d.view.settings.tabs,function(a,b){c["iframe:"+b]={text:this.state("iframe:"+b).get("title"),priority:200}},this),a.set(c))},hijackThickbox:function(){var a=this;window.tb_remove&&!this._tb_remove&&(this._tb_remove=window.tb_remove,window.tb_remove=function(){a.close(),a.reset(),a.setState(a.options.state),a._tb_remove.call(window)})},restoreThickbox:function(){this._tb_remove&&(window.tb_remove=this._tb_remove,delete this._tb_remove)}}),b.each(["open","close","attach","detach","escape"],function(a){d.view.MediaFrame.prototype[a]=function(){return this.modal&&this.modal[a].apply(this.modal,arguments),this}}),d.view.MediaFrame.Select=d.view.MediaFrame.extend({initialize:function(){d.view.MediaFrame.prototype.initialize.apply(this,arguments),b.defaults(this.options,{selection:[],library:{},multiple:!1,state:"library"}),this.createSelection(),this.createStates(),this.bindHandlers()},createSelection:function(){var a=this.options.selection;a instanceof d.model.Selection||(this.options.selection=new d.model.Selection(a,{multiple:this.options.multiple})),this._selection={attachments:new d.model.Attachments,difference:[]}},createStates:function(){var a=this.options;this.options.states||this.states.add([new d.controller.Library({library:d.query(a.library),multiple:a.multiple,title:a.title,priority:20})])},bindHandlers:function(){this.on("router:create:browse",this.createRouter,this),this.on("router:render:browse",this.browseRouter,this),this.on("content:create:browse",this.browseContent,this),this.on("content:render:upload",this.uploadContent,this),this.on("toolbar:create:select",this.createSelectToolbar,this)},browseRouter:function(a){a.set({upload:{text:c.uploadFilesTitle,priority:20},browse:{text:c.mediaLibraryTitle,priority:40}})},browseContent:function(a){var b=this.state();this.$el.removeClass("hide-toolbar"),a.view=new d.view.AttachmentsBrowser({controller:this,collection:b.get("library"),selection:b.get("selection"),model:b,sortable:b.get("sortable"),search:b.get("searchable"),filters:b.get("filterable"),display:b.get("displaySettings"),dragInfo:b.get("dragInfo"),suggestedWidth:b.get("suggestedWidth"),suggestedHeight:b.get("suggestedHeight"),AttachmentView:b.get("AttachmentView")})},uploadContent:function(){this.$el.removeClass("hide-toolbar"),this.content.set(new d.view.UploaderInline({controller:this}))},createSelectToolbar:function(a,b){b=b||this.options.button||{},b.controller=this,a.view=new d.view.Toolbar.Select(b)}}),d.view.MediaFrame.Post=d.view.MediaFrame.Select.extend({initialize:function(){this.counts={audio:{count:d.view.settings.attachmentCounts.audio,state:"playlist"},video:{count:d.view.settings.attachmentCounts.video,state:"video-playlist"}},b.defaults(this.options,{multiple:!0,editing:!1,state:"insert"}),d.view.MediaFrame.Select.prototype.initialize.apply(this,arguments),this.createIframeStates()},createStates:function(){var a=this.options;this.states.add([new d.controller.Library({id:"insert",title:c.insertMediaTitle,priority:20,toolbar:"main-insert",filterable:"all",library:d.query(a.library),multiple:a.multiple?"reset":!1,editable:!0,allowLocalEdits:!0,displaySettings:!0,displayUserSettings:!0}),new d.controller.Library({id:"gallery",title:c.createGalleryTitle,priority:40,toolbar:"main-gallery",filterable:"uploaded",multiple:"add",editable:!1,library:d.query(b.defaults({type:"image"},a.library))}),new d.controller.Embed,new d.controller.EditImage({model:a.editImage}),new d.controller.GalleryEdit({library:a.selection,editing:a.editing,menu:"gallery"}),new d.controller.GalleryAdd,new d.controller.Library({id:"playlist",title:c.createPlaylistTitle,priority:60,toolbar:"main-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:d.query(b.defaults({type:"audio"},a.library))}),new d.controller.CollectionEdit({type:"audio",collectionType:"playlist",title:c.editPlaylistTitle,SettingsView:d.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"playlist",dragInfoText:c.playlistDragInfo,dragInfo:!1}),new d.controller.CollectionAdd({type:"audio",collectionType:"playlist",title:c.addToPlaylistTitle}),new d.controller.Library({id:"video-playlist",title:c.createVideoPlaylistTitle,priority:60,toolbar:"main-video-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:d.query(b.defaults({type:"video"},a.library))}),new d.controller.CollectionEdit({type:"video",collectionType:"playlist",title:c.editVideoPlaylistTitle,SettingsView:d.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"video-playlist",dragInfoText:c.videoPlaylistDragInfo,dragInfo:!1}),new d.controller.CollectionAdd({type:"video",collectionType:"playlist",title:c.addToVideoPlaylistTitle})]),d.view.settings.post.featuredImageId&&this.states.add(new d.controller.FeaturedImage)},bindHandlers:function(){var a,c;d.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("activate",this.activate,this),c=b.find(this.counts,function(a){return 0===a.count}),"undefined"!=typeof c&&this.listenTo(d.model.Attachments.all,"change:type",this.mediaTypeCounts),this.on("menu:create:gallery",this.createMenu,this),this.on("menu:create:playlist",this.createMenu,this),this.on("menu:create:video-playlist",this.createMenu,this),this.on("toolbar:create:main-insert",this.createToolbar,this),this.on("toolbar:create:main-gallery",this.createToolbar,this),this.on("toolbar:create:main-playlist",this.createToolbar,this),this.on("toolbar:create:main-video-playlist",this.createToolbar,this),this.on("toolbar:create:featured-image",this.featuredImageToolbar,this),this.on("toolbar:create:main-embed",this.mainEmbedToolbar,this),a={menu:{"default":"mainMenu",gallery:"galleryMenu",playlist:"playlistMenu","video-playlist":"videoPlaylistMenu"},content:{embed:"embedContent","edit-image":"editImageContent","edit-selection":"editSelectionContent"},toolbar:{"main-insert":"mainInsertToolbar","main-gallery":"mainGalleryToolbar","gallery-edit":"galleryEditToolbar","gallery-add":"galleryAddToolbar","main-playlist":"mainPlaylistToolbar","playlist-edit":"playlistEditToolbar","playlist-add":"playlistAddToolbar","main-video-playlist":"mainVideoPlaylistToolbar","video-playlist-edit":"videoPlaylistEditToolbar","video-playlist-add":"videoPlaylistAddToolbar"}},b.each(a,function(a,c){b.each(a,function(a,b){this.on(c+":render:"+b,this[a],this)},this)},this)},activate:function(){b.each(this.counts,function(a){a.count<1&&this.menuItemVisibility(a.state,"hide")},this)},mediaTypeCounts:function(a,b){"undefined"!=typeof this.counts[b]&&this.counts[b].count<1&&(this.counts[b].count++,this.menuItemVisibility(this.counts[b].state,"show"))},mainMenu:function(a){a.set({"library-separator":new d.View({className:"separator",priority:100})})},menuItemVisibility:function(a,b){var c=this.menu.get();"hide"===b?c.hide(a):"show"===b&&c.show(a)},galleryMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.cancelGalleryTitle,priority:20,click:function(){e?f.setState(e):f.close()}},separateCancel:new d.View({className:"separator",priority:40})})},playlistMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.cancelPlaylistTitle,priority:20,click:function(){e?f.setState(e):f.close()}},separateCancel:new d.View({className:"separator",priority:40})})},videoPlaylistMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.cancelVideoPlaylistTitle,priority:20,click:function(){e?f.setState(e):f.close()}},separateCancel:new d.View({className:"separator",priority:40})})},embedContent:function(){var a=new d.view.Embed({controller:this,model:this.state()}).render();this.content.set(a),a.url.focus()},editSelectionContent:function(){var a,b=this.state(),e=b.get("selection");a=new d.view.AttachmentsBrowser({controller:this,collection:e,selection:e,model:b,sortable:!0,search:!1,dragInfo:!0,AttachmentView:d.view.Attachment.EditSelection}).render(),a.toolbar.set("backToLibrary",{text:c.returnToLibrary,priority:-100,click:function(){this.controller.content.mode("browse")}}),this.content.set(a)},editImageContent:function(){var a=this.state().get("image"),b=new d.view.EditImage({model:a,controller:this}).render();this.content.set(b),b.loadEditor()},selectionStatusToolbar:function(a){var b=this.state().get("editable");a.set("selection",new d.view.Selection({controller:this,collection:this.state().get("selection"),priority:-40,editable:b&&function(){this.controller.content.mode("edit-selection")}}).render())},mainInsertToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("insert",{style:"primary",priority:80,text:c.insertIntoPost,requires:{selection:!0},click:function(){var a=b.state(),c=a.get("selection");b.close(),a.trigger("insert",c).reset()}})},mainGalleryToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("gallery",{style:"primary",text:c.createNewGallery,priority:60,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("gallery-edit"),e=a.where({type:"image"});c.set("library",new d.model.Selection(e,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("gallery-edit")}})},mainPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("playlist",{style:"primary",text:c.createNewPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("playlist-edit"),e=a.where({type:"audio"});c.set("library",new d.model.Selection(e,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("playlist-edit")}})},mainVideoPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("video-playlist",{style:"primary",text:c.createNewVideoPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("video-playlist-edit"),e=a.where({type:"video"});c.set("library",new d.model.Selection(e,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("video-playlist-edit")}})},featuredImageToolbar:function(a){this.createSelectToolbar(a,{text:c.setFeaturedImage,state:this.options.state})},mainEmbedToolbar:function(a){a.view=new d.view.Toolbar.Embed({controller:this})},galleryEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?c.updateGallery:c.insertGallery,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();
-a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},galleryAddToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:c.addToGallery,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("gallery-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("gallery-edit")}}}}))},playlistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?c.updatePlaylist:c.insertPlaylist,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},playlistAddToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:c.addToPlaylist,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("playlist-edit")}}}}))},videoPlaylistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?c.updateVideoPlaylist:c.insertVideoPlaylist,priority:140,requires:{library:!0},click:function(){var a=this.controller,b=a.state(),c=b.get("library");c.type="video",a.close(),b.trigger("update",c),a.setState(a.options.state),a.reset()}}}}))},videoPlaylistAddToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:c.addToVideoPlaylist,priority:140,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("video-playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("video-playlist-edit")}}}}))}}),d.view.MediaFrame.ImageDetails=d.view.MediaFrame.Select.extend({defaults:{id:"image",url:"",menu:"image-details",content:"image-details",toolbar:"image-details",type:"link",title:c.imageDetailsTitle,priority:120},initialize:function(a){this.image=new d.model.PostImage(a.metadata),this.options.selection=new d.model.Selection(this.image.attachment,{multiple:!1}),d.view.MediaFrame.Select.prototype.initialize.apply(this,arguments)},bindHandlers:function(){d.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:image-details",this.createMenu,this),this.on("content:create:image-details",this.imageDetailsContent,this),this.on("content:render:edit-image",this.editImageContent,this),this.on("menu:render:image-details",this.renderMenu,this),this.on("toolbar:render:image-details",this.renderImageDetailsToolbar,this),this.on("toolbar:render:replace",this.renderReplaceImageToolbar,this)},createStates:function(){this.states.add([new d.controller.ImageDetails({image:this.image,editable:!1,menu:"image-details"}),new d.controller.ReplaceImage({id:"replace-image",library:d.query({type:"image"}),image:this.image,multiple:!1,title:c.imageReplaceTitle,menu:"image-details",toolbar:"replace",priority:80,displaySettings:!0}),new d.controller.EditImage({image:this.image,selection:this.options.selection})])},imageDetailsContent:function(a){a.view=new d.view.ImageDetails({controller:this,model:this.state().image,attachment:this.state().image.attachment})},editImageContent:function(){var a,b=this.state(),c=b.get("image");c&&(a=new d.view.EditImage({model:c,controller:this}).render(),this.content.set(a),a.loadEditor())},renderMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.imageDetailsCancel,priority:20,click:function(){e?f.setState(e):f.close()}},separateCancel:new d.View({className:"separator",priority:40})})},renderImageDetailsToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{select:{style:"primary",text:c.update,priority:80,click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))},renderReplaceImageToolbar:function(){var a=this,b=a.lastState(),e=b&&b.id;this.toolbar.set(new d.view.Toolbar({controller:this,items:{back:{text:c.back,priority:20,click:function(){e?a.setState(e):a.close()}},replace:{style:"primary",text:c.replace,priority:80,click:function(){var a=this.controller,b=a.state(),c=b.get("selection"),d=c.single();a.close(),a.image.changeAttachment(d,b.display(d)),b.trigger("replace",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))}}),d.view.Modal=d.View.extend({tagName:"div",template:d.template("media-modal"),attributes:{tabindex:0},events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler",keydown:"keydown"},initialize:function(){b.defaults(this.options,{container:document.body,title:"",propagate:!0,freeze:!0})},prepare:function(){return{title:this.options.title}},attach:function(){return this.views.attached?this:(this.views.rendered||this.render(),this.$el.appendTo(this.options.container),this.views.attached=!0,this.views.ready(),this.propagate("attach"))},detach:function(){return this.$el.is(":visible")&&this.close(),this.$el.detach(),this.views.attached=!1,this.propagate("detach")},open:function(){var b=this.$el,c=this.options;return b.is(":visible")?this:(this.views.attached||this.attach(),c.freeze&&(this._freeze={scrollTop:a(window).scrollTop()}),b.show().focus(),this.propagate("open"))},close:function(b){var c=this._freeze;return this.views.attached&&this.$el.is(":visible")?(this.$el.hide(),this.propagate("close"),c&&a(window).scrollTop(c.scrollTop),b&&b.escape&&this.propagate("escape"),this):this},escape:function(){return this.close({escape:!0})},escapeHandler:function(a){a.preventDefault(),this.escape()},content:function(a){return this.views.set(".media-modal-content",a),this},propagate:function(a){return this.trigger(a),this.options.propagate&&this.controller.trigger(a),this},keydown:function(a){27===a.which&&this.$el.is(":visible")&&(this.escape(),a.stopImmediatePropagation())}}),d.view.FocusManager=d.View.extend({events:{keydown:"recordTab",focusin:"updateIndex"},focus:function(){b.isUndefined(this.index)||(this.$tabbables=this.$(":tabbable"),this.$tabbables.eq(this.index).focus())},recordTab:function(a){if(9===a.keyCode&&(b.isUndefined(this.index)&&this.updateIndex(a),!b.isUndefined(this.index))){var c=this.index+(a.shiftKey?-1:1);c>=0&&c<this.$tabbables.length?this.index=c:delete this.index}},updateIndex:function(a){this.$tabbables=this.$(":tabbable");var b=this.$tabbables.index(a.target);-1===b?delete this.index:this.index=b}}),d.view.UploaderWindow=d.View.extend({tagName:"div",className:"uploader-window",template:d.template("uploader-window"),initialize:function(){var c;this.$browser=a('<a href="#" class="browser" />').hide().appendTo("body"),c=this.options.uploader=b.defaults(this.options.uploader||{},{dropzone:this.$el,browser:this.$browser,params:{}}),!c.dropzone||c.dropzone instanceof a||(c.dropzone=a(c.dropzone)),this.controller.on("activate",this.refresh,this),this.controller.on("detach",function(){this.$browser.remove()},this)},refresh:function(){this.uploader&&this.uploader.refresh()},ready:function(){var c,e=d.view.settings.post.id;this.uploader||(e&&(this.options.uploader.params.post_id=e),this.uploader=new wp.Uploader(this.options.uploader),c=this.uploader.dropzone,c.on("dropzone:enter",b.bind(this.show,this)),c.on("dropzone:leave",b.bind(this.hide,this)),a(this.uploader).on("uploader:ready",b.bind(this._ready,this)))},_ready:function(){this.controller.trigger("uploader:ready")},show:function(){var a=this.$el.show();b.defer(function(){a.css({opacity:1})})},hide:function(){var a=this.$el.css({opacity:0});d.transition(a).done(function(){"0"===a.css("opacity")&&a.hide()})}}),d.view.EditorUploader=d.View.extend({tagName:"div",className:"uploader-editor",template:d.template("uploader-editor"),localDrag:!1,overContainer:!1,overDropzone:!1,draggingFile:null,initialize:function(){var c=this;return this.initialized=!1,window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&this.browserSupport()?(this.$document=a(document),this.dropzones=[],this.files=[],this.$document.on("drop",".uploader-editor",b.bind(this.drop,this)),this.$document.on("dragover",".uploader-editor",b.bind(this.dropzoneDragover,this)),this.$document.on("dragleave",".uploader-editor",b.bind(this.dropzoneDragleave,this)),this.$document.on("click",".uploader-editor",b.bind(this.click,this)),this.$document.on("dragover",b.bind(this.containerDragover,this)),this.$document.on("dragleave",b.bind(this.containerDragleave,this)),this.$document.on("dragstart dragend drop",function(a){c.localDrag="dragstart"===a.type}),this.initialized=!0,this):this},browserSupport:function(){var a=!1,b=document.createElement("div");return a="draggable"in b||"ondragstart"in b&&"ondrop"in b,a=a&&!!(window.File&&window.FileList&&window.FileReader)},isDraggingFile:function(a){return null!==this.draggingFile?this.draggingFile:b.isUndefined(a.originalEvent)||b.isUndefined(a.originalEvent.dataTransfer)?!1:(this.draggingFile=b.indexOf(a.originalEvent.dataTransfer.types,"Files")>-1&&-1===b.indexOf(a.originalEvent.dataTransfer.types,"text/plain"),this.draggingFile)},refresh:function(c){var d;for(d in this.dropzones)this.dropzones[d].toggle(this.overContainer||this.overDropzone);return b.isUndefined(c)||a(c.target).closest(".uploader-editor").toggleClass("droppable",this.overDropzone),this.overContainer||this.overDropzone||(this.draggingFile=null),this},render:function(){return this.initialized?(d.View.prototype.render.apply(this,arguments),a(".wp-editor-wrap, #wp-fullscreen-body").each(b.bind(this.attach,this)),this):this},attach:function(b,c){var d=this.$el.clone();return this.dropzones.push(d),a(c).append(d),this},drop:function(b){var c=null;return this.containerDragleave(b),this.dropzoneDragleave(b),this.files=b.originalEvent.dataTransfer.files,this.files.length<1?void 0:(c=a(b.target).parents(".wp-editor-wrap"),c.length>0&&c[0].id&&(window.wpActiveEditor=c[0].id.slice(3,-5)),this.workflow?(this.workflow.state().reset(),this.addFiles.apply(this),this.workflow.open()):(this.workflow=wp.media.editor.open("content",{frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0}),this.workflow.on("uploader:ready",this.addFiles,this)),!1)},addFiles:function(){return this.files.length&&(this.workflow.uploader.uploader.uploader.addFile(b.toArray(this.files)),this.files=[]),this},containerDragover:function(a){!this.localDrag&&this.isDraggingFile(a)&&(this.overContainer=!0,this.refresh())},containerDragleave:function(){this.overContainer=!1,b.delay(b.bind(this.refresh,this),50)},dropzoneDragover:function(a){return!this.localDrag&&this.isDraggingFile(a)?(this.overDropzone=!0,this.refresh(a),!1):void 0},dropzoneDragleave:function(a){this.overDropzone=!1,b.delay(b.bind(this.refresh,this,a),50)},click:function(a){this.containerDragleave(a),this.dropzoneDragleave(a),this.localDrag=!1}}),d.view.UploaderInline=d.View.extend({tagName:"div",className:"uploader-inline",template:d.template("uploader-inline"),initialize:function(){b.defaults(this.options,{message:"",status:!0}),!this.options.$browser&&this.controller.uploader&&(this.options.$browser=this.controller.uploader.$browser),b.isUndefined(this.options.postId)&&(this.options.postId=d.view.settings.post.id),this.options.status&&this.views.set(".upload-inline-status",new d.view.UploaderStatus({controller:this.controller}))},prepare:function(){var a=this.controller.state().get("suggestedWidth"),b=this.controller.state().get("suggestedHeight");return a&&b?{suggestedWidth:a,suggestedHeight:b}:void 0},dispose:function(){return this.disposing?d.View.prototype.dispose.apply(this,arguments):(this.disposing=!0,this.remove())},remove:function(){var a=d.View.prototype.remove.apply(this,arguments);return b.defer(b.bind(this.refresh,this)),a},refresh:function(){var a=this.controller.uploader;a&&a.refresh()},ready:function(){var a,b=this.options.$browser;if(this.controller.uploader){if(a=this.$(".browser"),a[0]===b[0])return;b.detach().text(a.text()),b[0].className=a[0].className,a.replaceWith(b.show())}return this.refresh(),this}}),d.view.UploaderStatus=d.View.extend({className:"media-uploader-status",template:d.template("uploader-status"),events:{"click .upload-dismiss-errors":"dismiss"},initialize:function(){this.queue=wp.Uploader.queue,this.queue.on("add remove reset",this.visibility,this),this.queue.on("add remove reset change:percent",this.progress,this),this.queue.on("add remove reset change:uploading",this.info,this),this.errors=wp.Uploader.errors,this.errors.reset(),this.errors.on("add remove reset",this.visibility,this),this.errors.on("add",this.error,this)},dispose:function(){return wp.Uploader.queue.off(null,null,this),d.View.prototype.dispose.apply(this,arguments),this},visibility:function(){this.$el.toggleClass("uploading",!!this.queue.length),this.$el.toggleClass("errors",!!this.errors.length),this.$el.toggle(!!this.queue.length||!!this.errors.length)},ready:function(){b.each({$bar:".media-progress-bar div",$index:".upload-index",$total:".upload-total",$filename:".upload-filename"},function(a,b){this[b]=this.$(a)},this),this.visibility(),this.progress(),this.info()},progress:function(){var a=this.queue,c=this.$bar;c&&a.length&&c.width(a.reduce(function(a,c){if(!c.get("uploading"))return a+100;var d=c.get("percent");return a+(b.isNumber(d)?d:100)},0)/a.length+"%")},info:function(){var a,b=this.queue,c=0;b.length&&(a=this.queue.find(function(a,b){return c=b,a.get("uploading")}),this.$index.text(c+1),this.$total.text(b.length),this.$filename.html(a?this.filename(a.get("filename")):""))},filename:function(a){return d.truncate(b.escape(a),24)},error:function(a){this.views.add(".upload-errors",new d.view.UploaderStatusError({filename:this.filename(a.get("file").name),message:a.get("message")}),{at:0})},dismiss:function(a){var c=this.views.get(".upload-errors");a.preventDefault(),c&&b.invoke(c,"remove"),wp.Uploader.errors.reset()}}),d.view.UploaderStatusError=d.View.extend({className:"upload-error",template:d.template("uploader-status-error")}),d.view.Toolbar=d.View.extend({tagName:"div",className:"media-toolbar",initialize:function(){var a=this.controller.state(),b=this.selection=a.get("selection"),c=this.library=a.get("library");this._views={},this.primary=new d.view.PriorityList,this.secondary=new d.view.PriorityList,this.primary.$el.addClass("media-toolbar-primary"),this.secondary.$el.addClass("media-toolbar-secondary"),this.views.set([this.secondary,this.primary]),this.options.items&&this.set(this.options.items,{silent:!0}),this.options.silent||this.render(),b&&b.on("add remove reset",this.refresh,this),c&&c.on("add remove reset",this.refresh,this)},dispose:function(){return this.selection&&this.selection.off(null,null,this),this.library&&this.library.off(null,null,this),d.View.prototype.dispose.apply(this,arguments)},ready:function(){this.refresh()},set:function(a,c,e){var f;return e=e||{},b.isObject(a)?b.each(a,function(a,b){this.set(b,a,{silent:!0})},this):(c instanceof Backbone.View||(c.classes=["media-button-"+a].concat(c.classes||[]),c=new d.view.Button(c).render()),c.controller=c.controller||this.controller,this._views[a]=c,f=c.options.priority<0?"secondary":"primary",this[f].set(a,c,e)),e.silent||this.refresh(),this},get:function(a){return this._views[a]},unset:function(a,b){return delete this._views[a],this.primary.unset(a,b),this.secondary.unset(a,b),b&&b.silent||this.refresh(),this},refresh:function(){var a=this.controller.state(),c=a.get("library"),d=a.get("selection");b.each(this._views,function(a){if(a.model&&a.options&&a.options.requires){var e=a.options.requires,f=!1;f=b.some(d.models,function(a){return a.get("uploading")===!0}),e.selection&&d&&!d.length?f=!0:e.library&&c&&!c.length&&(f=!0),a.model.set("disabled",f)}})}}),d.view.Toolbar.Select=d.view.Toolbar.extend({initialize:function(){var a=this.options;b.bindAll(this,"clickSelect"),b.defaults(a,{event:"select",state:!1,reset:!0,close:!0,text:c.select,requires:{selection:!0}}),a.items=b.defaults(a.items||{},{select:{style:"primary",text:a.text,priority:80,click:this.clickSelect,requires:a.requires}}),d.view.Toolbar.prototype.initialize.apply(this,arguments)},clickSelect:function(){var a=this.options,b=this.controller;a.close&&b.close(),a.event&&b.state().trigger(a.event),a.state&&b.setState(a.state),a.reset&&b.reset()}}),d.view.Toolbar.Embed=d.view.Toolbar.Select.extend({initialize:function(){b.defaults(this.options,{text:c.insertIntoPost,requires:!1}),d.view.Toolbar.Select.prototype.initialize.apply(this,arguments)},refresh:function(){var a=this.controller.state().props.get("url");this.get("select").model.set("disabled",!a||"http://"===a),d.view.Toolbar.Select.prototype.refresh.apply(this,arguments)}}),d.view.Button=d.View.extend({tagName:"a",className:"media-button",attributes:{href:"#"},events:{click:"click"},defaults:{text:"",style:"",size:"large",disabled:!1},initialize:function(){this.model=new Backbone.Model(this.defaults),b.each(this.defaults,function(a,c){var d=this.options[c];b.isUndefined(d)||(this.model.set(c,d),delete this.options[c])},this),this.model.on("change",this.render,this)},render:function(){var a=["button",this.className],c=this.model.toJSON();return c.style&&a.push("button-"+c.style),c.size&&a.push("button-"+c.size),a=b.uniq(a.concat(this.options.classes)),this.el.className=a.join(" "),this.$el.attr("disabled",c.disabled),this.$el.text(this.model.get("text")),this},click:function(a){"#"===this.attributes.href&&a.preventDefault(),this.options.click&&!this.model.get("disabled")&&this.options.click.apply(this,arguments)}}),d.view.ButtonGroup=d.View.extend({tagName:"div",className:"button-group button-large media-button-group",initialize:function(){this.buttons=b.map(this.options.buttons||[],function(a){return a instanceof Backbone.View?a:new d.view.Button(a).render()}),delete this.options.buttons,this.options.classes&&this.$el.addClass(this.options.classes)},render:function(){return this.$el.html(a(b.pluck(this.buttons,"el")).detach()),this}}),d.view.PriorityList=d.View.extend({tagName:"div",initialize:function(){this._views={},this.set(b.extend({},this._views,this.options.views),{silent:!0}),delete this.options.views,this.options.silent||this.render()},set:function(a,c,d){var e,f,g;return d=d||{},b.isObject(a)?(b.each(a,function(a,b){this.set(b,a)},this),this):(c instanceof Backbone.View||(c=this.toView(c,a,d)),c.controller=c.controller||this.controller,this.unset(a),e=c.options.priority||10,f=this.views.get()||[],b.find(f,function(a,b){return a.options.priority>e?(g=b,!0):void 0}),this._views[a]=c,this.views.add(c,{at:b.isNumber(g)?g:f.length||0}),this)},get:function(a){return this._views[a]},unset:function(a){var b=this.get(a);return b&&b.remove(),delete this._views[a],this},toView:function(a){return new d.View(a)}}),d.view.MenuItem=d.View.extend({tagName:"a",className:"media-menu-item",attributes:{href:"#"},events:{click:"_click"},_click:function(a){var b=this.options.click;a&&a.preventDefault(),b?b.call(this):this.click()},click:function(){var a=this.options.state;a&&this.controller.setState(a)},render:function(){var a=this.options;return a.text?this.$el.text(a.text):a.html&&this.$el.html(a.html),this}}),d.view.Menu=d.view.PriorityList.extend({tagName:"div",className:"media-menu",property:"state",ItemView:d.view.MenuItem,region:"menu",toView:function(a,b){return a=a||{},a[this.property]=a[this.property]||b,new this.ItemView(a).render()},ready:function(){d.view.PriorityList.prototype.ready.apply(this,arguments),this.visibility()},set:function(){d.view.PriorityList.prototype.set.apply(this,arguments),this.visibility()},unset:function(){d.view.PriorityList.prototype.unset.apply(this,arguments),this.visibility()},visibility:function(){var a=this.region,b=this.controller[a].get(),c=this.views.get(),d=!c||c.length<2;this===b&&this.controller.$el.toggleClass("hide-"+a,d)},select:function(a){var b=this.get(a);b&&(this.deselect(),b.$el.addClass("active"))},deselect:function(){this.$el.children().removeClass("active")},hide:function(a){var b=this.get(a);b&&b.$el.addClass("hidden")},show:function(a){var b=this.get(a);b&&b.$el.removeClass("hidden")}}),d.view.RouterItem=d.view.MenuItem.extend({click:function(){var a=this.options.contentMode;a&&this.controller.content.mode(a)}}),d.view.Router=d.view.Menu.extend({tagName:"div",className:"media-router",property:"contentMode",ItemView:d.view.RouterItem,region:"router",initialize:function(){this.controller.on("content:render",this.update,this),d.view.Menu.prototype.initialize.apply(this,arguments)},update:function(){var a=this.controller.content.mode();a&&this.select(a)}}),d.view.Sidebar=d.view.PriorityList.extend({className:"media-sidebar"}),d.view.Attachment=d.View.extend({tagName:"li",className:"attachment",template:d.template("attachment"),events:{"click .attachment-preview":"toggleSelectionHandler","change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .close":"removeFromLibrary","click .check":"removeFromSelection","click a":"preventDefault"},buttons:{},initialize:function(){var a=this.options.selection;this.model.on("change:sizes change:uploading",this.render,this),this.model.on("change:title",this._syncTitle,this),this.model.on("change:caption",this._syncCaption,this),this.model.on("change:percent",this.progress,this),this.model.on("add",this.select,this),this.model.on("remove",this.deselect,this),a&&a.on("reset",this.updateSelect,this),this.model.on("selection:single selection:unsingle",this.details,this),this.details(this.model,this.controller.state().get("selection"))},dispose:function(){var a=this.options.selection;return this.updateAll(),a&&a.off(null,null,this),d.View.prototype.dispose.apply(this,arguments),this},render:function(){var a=b.defaults(this.model.toJSON(),{orientation:"landscape",uploading:!1,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:!1,alt:"",description:""});return a.buttons=this.buttons,a.describe=this.controller.state().get("describe"),"image"===a.type&&(a.size=this.imageSize()),a.can={},a.nonces&&(a.can.remove=!!a.nonces["delete"],a.can.save=!!a.nonces.update),this.controller.state().get("allowLocalEdits")&&(a.allowLocalEdits=!0),this.views.detach(),this.$el.html(this.template(a)),this.$el.toggleClass("uploading",a.uploading),a.uploading?this.$bar=this.$(".media-progress-bar div"):delete this.$bar,this.updateSelect(),this.updateSave(),this.views.render(),this},progress:function(){this.$bar&&this.$bar.length&&this.$bar.width(this.model.get("percent")+"%")},toggleSelectionHandler:function(a){var b;a.shiftKey?b="between":(a.ctrlKey||a.metaKey)&&(b="toggle"),this.toggleSelection({method:b})},toggleSelection:function(a){var c,d,e,f,g=this.collection,h=this.options.selection,i=this.model,j=a&&a.method;if(h){if(c=h.single(),j=b.isUndefined(j)?h.multiple:j,"between"===j&&c&&h.multiple){if(c===i)return;return e=g.indexOf(c),f=g.indexOf(this.model),d=f>e?g.models.slice(e,f+1):g.models.slice(f,e+1),h.add(d),void h.single(i)}if("toggle"===j)return h[this.selected()?"remove":"add"](i),void h.single(i);"add"!==j&&(j="reset"),this.selected()?h[c===i?"remove":"single"](i):(h[j](i),h.single(i))}},updateSelect:function(){this[this.selected()?"select":"deselect"]()},selected:function(){var a=this.options.selection;return a?!!a.get(this.model.cid):void 0},select:function(a,b){var c=this.options.selection;!c||b&&b!==c||this.$el.addClass("selected")},deselect:function(a,b){var c=this.options.selection;!c||b&&b!==c||this.$el.removeClass("selected")},details:function(a,b){var c,d=this.options.selection;d===b&&(c=d.single(),this.$el.toggleClass("details",c===this.model))},preventDefault:function(a){a.preventDefault()},imageSize:function(a){var c=this.model.get("sizes");return a=a||"medium",c&&c[a]?b.clone(c[a]):{url:this.model.get("url"),width:this.model.get("width"),height:this.model.get("height"),orientation:this.model.get("orientation")}},updateSetting:function(b){var c,d,e=a(b.target).closest("[data-setting]");e.length&&(c=e.data("setting"),d=b.target.value,this.model.get(c)!==d&&this.save(c,d))},save:function(){var b=this,c=this._save=this._save||{status:"ready"},d=this.model.save.apply(this.model,arguments),e=c.requests?a.when(d,c.requests):d;c.savedTimer&&clearTimeout(c.savedTimer),this.updateSave("waiting"),c.requests=e,e.always(function(){c.requests===e&&(b.updateSave("resolved"===e.state()?"complete":"error"),c.savedTimer=setTimeout(function(){b.updateSave("ready"),delete c.savedTimer},2e3))})},updateSave:function(a){var b=this._save=this._save||{status:"ready"};return a&&a!==b.status&&(this.$el.removeClass("save-"+b.status),b.status=a),this.$el.addClass("save-"+b.status),this},updateAll:function(){var c,d=this.$("[data-setting]"),e=this.model;c=b.chain(d).map(function(b){var c,d,f=a("input, textarea, select, [value]",b);if(f.length)return c=a(b).data("setting"),d=f.val(),e.get(c)!==d?[c,d]:void 0}).compact().object().value(),b.isEmpty(c)||e.save(c)},removeFromLibrary:function(a){a.stopPropagation(),this.collection.remove(this.model)},removeFromSelection:function(a){var b=this.options.selection;b&&(a.stopPropagation(),b.remove(this.model))}}),b.each({caption:"_syncCaption",title:"_syncTitle"},function(a,b){d.view.Attachment.prototype[a]=function(a,c){var d=this.$('[data-setting="'+b+'"]');return d.length?c===d.find("input, textarea, select, [value]").val()?this:this.render():this}}),d.view.Attachment.Library=d.view.Attachment.extend({buttons:{check:!0}}),d.view.Attachment.EditLibrary=d.view.Attachment.extend({buttons:{close:!0}}),d.view.Attachments=d.View.extend({tagName:"ul",className:"attachments",cssTemplate:d.template("attachments-css"),events:{scroll:"scroll"},initialize:function(){this.el.id=b.uniqueId("__attachments-view-"),b.defaults(this.options,{refreshSensitivity:200,refreshThreshold:3,AttachmentView:d.view.Attachment,sortable:!1,resize:!0}),this._viewsByCid={},this.collection.on("add",function(a){this.views.add(this.createAttachmentView(a),{at:this.collection.indexOf(a)})},this),this.collection.on("remove",function(a){var b=this._viewsByCid[a.cid];delete this._viewsByCid[a.cid],b&&b.remove()},this),this.collection.on("reset",this.render,this),this.scroll=b.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.initSortable(),b.bindAll(this,"css"),this.model.on("change:edge change:gutter",this.css,this),this._resizeCss=b.debounce(b.bind(this.css,this),this.refreshSensitivity),this.options.resize&&a(window).on("resize.attachments",this._resizeCss),this.css()},dispose:function(){this.collection.props.off(null,null,this),a(window).off("resize.attachments",this._resizeCss),d.View.prototype.dispose.apply(this,arguments)},css:function(){var b=a("#"+this.el.id+"-css");b.length&&b.remove(),d.view.Attachments.$head().append(this.cssTemplate({id:this.el.id,edge:this.edge(),gutter:this.model.get("gutter")}))},edge:function(){var a,b,c,d=this.model.get("edge");return this.$el.is(":visible")?(a=2*this.model.get("gutter"),b=this.$el.width()-a,c=Math.ceil(b/(d+a)),d=Math.floor((b-c*a)/c)):d},initSortable:function(){var c=this.collection;this.options.sortable&&a.fn.sortable&&(this.$el.sortable(b.extend({disabled:!!c.comparator,containment:this.$el,tolerance:"pointer",start:function(a,b){b.item.data("sortableIndexStart",b.item.index())},update:function(a,b){var d=c.at(b.item.data("sortableIndexStart")),e=c.comparator;delete c.comparator,c.remove(d,{silent:!0}),c.add(d,{silent:!0,at:b.item.index()}),c.comparator=e,c.trigger("reset",c),c.saveMenuOrder()}},this.options.sortable)),c.props.on("change:orderby",function(){this.$el.sortable("option","disabled",!!c.comparator)},this),this.collection.props.on("change:orderby",this.refreshSortable,this),this.refreshSortable())},refreshSortable:function(){if(this.options.sortable&&a.fn.sortable){var b=this.collection,c=b.props.get("orderby"),d="menuOrder"===c||!b.comparator;this.$el.sortable("option","disabled",!d)}},createAttachmentView:function(a){var b=new this.options.AttachmentView({controller:this.controller,model:a,collection:this.collection,selection:this.options.selection});return this._viewsByCid[a.cid]=b},prepare:function(){this.collection.length?this.views.set(this.collection.map(this.createAttachmentView,this)):(this.views.unset(),this.collection.more().done(this.scroll))},ready:function(){this.scroll()},scroll:function(){var a,b=this;this.$el.is(":visible")&&this.collection.hasMore()&&(a=this.views.parent.toolbar,this.el.scrollHeight-(this.el.scrollTop+this.el.clientHeight)<this.el.clientHeight/3&&a.get("spinner").show(),this.el.scrollHeight<this.el.scrollTop+this.el.clientHeight*this.options.refreshThreshold&&this.collection.more().done(function(){b.scroll(),a.get("spinner").hide()}))}},{$head:function(){var b;return function(){return b=b||a("head")}}()}),d.view.Search=d.View.extend({tagName:"input",className:"search",attributes:{type:"search",placeholder:c.search},events:{input:"search",keyup:"search",change:"search",search:"search"},render:function(){return this.el.value=this.model.escape("search"),this},search:function(a){a.target.value?this.model.set("search",a.target.value):this.model.unset("search")}}),d.view.AttachmentFilters=d.View.extend({tagName:"select",className:"attachment-filters",events:{change:"change"},keys:[],initialize:function(){this.createFilters(),b.extend(this.filters,this.options.filters),this.$el.html(b.chain(this.filters).map(function(b,c){return{el:a("<option></option>").val(c).html(b.text)[0],priority:b.priority||50}},this).sortBy("priority").pluck("el").value()),this.model.on("change",this.select,this),this.select()},createFilters:function(){this.filters={}},change:function(){var a=this.filters[this.el.value];a&&this.model.set(a.props)},select:function(){var a=this.model,c="all",d=a.toJSON();b.find(this.filters,function(a,e){var f=b.all(a.props,function(a,c){return a===(b.isUndefined(d[c])?null:d[c])});return f?c=e:void 0}),this.$el.val(c)}}),d.view.AttachmentFilters.Uploaded=d.view.AttachmentFilters.extend({createFilters:function(){var a,b=this.model.get("type"),e=d.view.settings.mimeTypes;e&&b&&(a=e[b]),this.filters={all:{text:a||c.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC"},priority:10},uploaded:{text:c.uploadedToThisPost,props:{uploadedTo:d.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}}}}),d.view.AttachmentFilters.All=d.view.AttachmentFilters.extend({createFilters:function(){var a={};b.each(d.view.settings.mimeTypes||{},function(b,c){a[c]={text:b,props:{type:c,uploadedTo:null,orderby:"date",order:"DESC"}}}),a.all={text:c.allMediaItems,props:{type:null,uploadedTo:null,orderby:"date",order:"DESC"},priority:10},a.uploaded={text:c.uploadedToThisPost,props:{type:null,uploadedTo:d.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20},this.filters=a}}),d.view.AttachmentsBrowser=d.View.extend({tagName:"div",className:"attachments-browser",initialize:function(){b.defaults(this.options,{filters:!1,search:!0,display:!1,AttachmentView:d.view.Attachment.Library}),this.createToolbar(),this.updateContent(),this.createSidebar(),this.collection.on("add remove reset",this.updateContent,this)},dispose:function(){return this.options.selection.off(null,null,this),d.View.prototype.dispose.apply(this,arguments),this},createToolbar:function(){var b,e;this.toolbar=new d.view.Toolbar({controller:this.controller}),this.views.add(this.toolbar),b=this.options.filters,"uploaded"===b?e=d.view.AttachmentFilters.Uploaded:"all"===b&&(e=d.view.AttachmentFilters.All),e&&this.toolbar.set("filters",new e({controller:this.controller,model:this.collection.props,priority:-80}).render()),this.toolbar.set("spinner",new d.view.Spinner({priority:-70})),this.options.search&&this.toolbar.set("search",new d.view.Search({controller:this.controller,model:this.collection.props,priority:60}).render()),this.options.dragInfo&&this.toolbar.set("dragInfo",new d.View({el:a('<div class="instructions">'+c.dragInfo+"</div>")[0],priority:-40})),this.options.suggestedWidth&&this.options.suggestedHeight&&this.toolbar.set("suggestedDimensions",new d.View({el:a('<div class="instructions">'+c.suggestedDimensions+" "+this.options.suggestedWidth+" &times; "+this.options.suggestedHeight+"</div>")[0],priority:-40}))
-},updateContent:function(){var a=this;this.attachments||this.createAttachments(),this.collection.length?a.toolbar.get("spinner").hide():(this.toolbar.get("spinner").show(),this.collection.more().done(function(){a.collection.length||a.createUploader(),a.toolbar.get("spinner").hide()}))},removeContent:function(){b.each(["attachments","uploader"],function(a){this[a]&&(this[a].remove(),delete this[a])},this)},createUploader:function(){this.removeContent(),this.uploader=new d.view.UploaderInline({controller:this.controller,status:!1,message:c.noItemsFound}),this.views.add(this.uploader)},createAttachments:function(){this.removeContent(),this.attachments=new d.view.Attachments({controller:this.controller,collection:this.collection,selection:this.options.selection,model:this.model,sortable:this.options.sortable,AttachmentView:this.options.AttachmentView}),this.views.add(this.attachments)},createSidebar:function(){var a=this.options,b=a.selection,c=this.sidebar=new d.view.Sidebar({controller:this.controller});this.views.add(c),this.controller.uploader&&c.set("uploads",new d.view.UploaderStatus({controller:this.controller,priority:40})),b.on("selection:single",this.createSingle,this),b.on("selection:unsingle",this.disposeSingle,this),b.single()&&this.createSingle()},createSingle:function(){var a=this.sidebar,b=this.options.selection.single();a.set("details",new d.view.Attachment.Details({controller:this.controller,model:b,priority:80})),a.set("compat",new d.view.AttachmentCompat({controller:this.controller,model:b,priority:120})),this.options.display&&a.set("display",new d.view.Settings.AttachmentDisplay({controller:this.controller,model:this.model.display(b),attachment:b,priority:160,userSettings:this.model.get("displayUserSettings")}))},disposeSingle:function(){var a=this.sidebar;a.unset("details"),a.unset("compat"),a.unset("display")}}),d.view.Selection=d.View.extend({tagName:"div",className:"media-selection",template:d.template("media-selection"),events:{"click .edit-selection":"edit","click .clear-selection":"clear"},initialize:function(){b.defaults(this.options,{editable:!1,clearable:!0}),this.attachments=new d.view.Attachments.Selection({controller:this.controller,collection:this.collection,selection:this.collection,model:new Backbone.Model({edge:40,gutter:5})}),this.views.set(".selection-view",this.attachments),this.collection.on("add remove reset",this.refresh,this),this.controller.on("content:activate",this.refresh,this)},ready:function(){this.refresh()},refresh:function(){if(this.$el.children().length){var a=this.collection,b="edit-selection"===this.controller.content.mode();this.$el.toggleClass("empty",!a.length),this.$el.toggleClass("one",1===a.length),this.$el.toggleClass("editing",b),this.$(".count").text(c.selected.replace("%d",a.length))}},edit:function(a){a.preventDefault(),this.options.editable&&this.options.editable.call(this,this.collection)},clear:function(a){a.preventDefault(),this.collection.reset()}}),d.view.Attachment.Selection=d.view.Attachment.extend({className:"attachment selection",toggleSelection:function(){this.options.selection.single(this.model)}}),d.view.Attachments.Selection=d.view.Attachments.extend({events:{},initialize:function(){return b.defaults(this.options,{sortable:!0,resize:!1,AttachmentView:d.view.Attachment.Selection}),d.view.Attachments.prototype.initialize.apply(this,arguments)}}),d.view.Attachment.EditSelection=d.view.Attachment.Selection.extend({buttons:{close:!0}}),d.view.Settings=d.View.extend({events:{"click button":"updateHandler","change input":"updateHandler","change select":"updateHandler","change textarea":"updateHandler"},initialize:function(){this.model=this.model||new Backbone.Model,this.model.on("change",this.updateChanges,this)},prepare:function(){return b.defaults({model:this.model.toJSON()},this.options)},render:function(){return d.View.prototype.render.apply(this,arguments),b(this.model.attributes).chain().keys().each(this.update,this),this},update:function(a){var b,c,d=this.model.get(a),e=this.$('[data-setting="'+a+'"]');e.length&&(e.is("select")?(c=e.find('[value="'+d+'"]'),c.length?(e.find("option").prop("selected",!1),c.prop("selected",!0)):this.model.set(a,e.find(":selected").val())):e.hasClass("button-group")?(b=e.find("button").removeClass("active"),b.filter('[value="'+d+'"]').addClass("active")):e.is('input[type="text"], textarea')?e.is(":focus")||e.val(d):e.is('input[type="checkbox"]')&&e.prop("checked",!!d))},updateHandler:function(b){var c,d=a(b.target).closest("[data-setting]"),e=b.target.value;b.preventDefault(),d.length&&(d.is('input[type="checkbox"]')&&(e=d[0].checked),this.model.set(d.data("setting"),e),(c=d.data("userSetting"))&&setUserSetting(c,e))},updateChanges:function(a){a.hasChanged()&&b(a.changed).chain().keys().each(this.update,this)}}),d.view.Settings.AttachmentDisplay=d.view.Settings.extend({className:"attachment-display-settings",template:d.template("attachment-display-settings"),initialize:function(){var a=this.options.attachment;b.defaults(this.options,{userSettings:!1}),d.view.Settings.prototype.initialize.apply(this,arguments),this.model.on("change:link",this.updateLinkTo,this),a&&a.on("change:uploading",this.render,this)},dispose:function(){var a=this.options.attachment;a&&a.off(null,null,this),d.view.Settings.prototype.dispose.apply(this,arguments)},render:function(){var a=this.options.attachment;return a&&b.extend(this.options,{sizes:a.get("sizes"),type:a.get("type")}),d.view.Settings.prototype.render.call(this),this.updateLinkTo(),this},updateLinkTo:function(){var a=this.model.get("link"),b=this.$(".link-to-custom"),c=this.options.attachment;return"none"===a||"embed"===a||!c&&"custom"!==a?void b.addClass("hidden"):(c&&("post"===a?b.val(c.get("link")):"file"===a?b.val(c.get("url")):this.model.get("linkUrl")||b.val("http://"),b.prop("readonly","custom"!==a)),b.removeClass("hidden"),void(b.is(":visible")&&b.focus()[0].select()))}}),d.view.Settings.Gallery=d.view.Settings.extend({className:"collection-settings gallery-settings",template:d.template("gallery-settings")}),d.view.Settings.Playlist=d.view.Settings.extend({className:"collection-settings playlist-settings",template:d.template("playlist-settings")}),d.view.Attachment.Details=d.view.Attachment.extend({tagName:"div",className:"attachment-details",template:d.template("attachment-details"),events:{"change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .delete-attachment":"deleteAttachment","click .trash-attachment":"trashAttachment","click .edit-attachment":"editAttachment","click .refresh-attachment":"refreshAttachment"},initialize:function(){this.focusManager=new d.view.FocusManager({el:this.el}),d.view.Attachment.prototype.initialize.apply(this,arguments)},render:function(){return d.view.Attachment.prototype.render.apply(this,arguments),this.focusManager.focus(),this},deleteAttachment:function(a){a.preventDefault(),confirm(c.warnDelete)&&this.model.destroy()},trashAttachment:function(a){a.preventDefault(),this.model.destroy()},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b?(a.preventDefault(),b.set("image",this.model),this.controller.setState("edit-image")):this.$el.addClass("needs-refresh")},refreshAttachment:function(a){this.$el.removeClass("needs-refresh"),a.preventDefault(),this.model.fetch()}}),d.view.AttachmentCompat=d.View.extend({tagName:"form",className:"compat-item",events:{submit:"preventDefault","change input":"save","change select":"save","change textarea":"save"},initialize:function(){this.focusManager=new d.view.FocusManager({el:this.el}),this.model.on("change:compat",this.render,this)},dispose:function(){return this.$(":focus").length&&this.save(),d.View.prototype.dispose.apply(this,arguments)},render:function(){var a=this.model.get("compat");if(a&&a.item)return this.views.detach(),this.$el.html(a.item),this.views.render(),this.focusManager.focus(),this},preventDefault:function(a){a.preventDefault()},save:function(a){var c={};a&&a.preventDefault(),b.each(this.$el.serializeArray(),function(a){c[a.name]=a.value}),this.model.saveCompat(c)}}),d.view.Iframe=d.View.extend({className:"media-iframe",render:function(){return this.views.detach(),this.$el.html('<iframe src="'+this.controller.state().get("src")+'" />'),this.views.render(),this}}),d.view.Embed=d.View.extend({className:"media-embed",initialize:function(){this.url=new d.view.EmbedUrl({controller:this.controller,model:this.model.props}).render(),this.views.set([this.url]),this.refresh(),this.model.on("change:type",this.refresh,this),this.model.on("change:loading",this.loading,this)},settings:function(a){this._settings&&this._settings.remove(),this._settings=a,this.views.add(a)},refresh:function(){var a,b=this.model.get("type");if("image"===b)a=d.view.EmbedImage;else{if("link"!==b)return;a=d.view.EmbedLink}this.settings(new a({controller:this.controller,model:this.model.props,priority:40}))},loading:function(){this.$el.toggleClass("embed-loading",this.model.get("loading"))}}),d.view.EmbedUrl=d.View.extend({tagName:"label",className:"embed-url",events:{input:"url",keyup:"url",change:"url"},initialize:function(){this.$input=a("<input/>").attr("type","text").val(this.model.get("url")),this.input=this.$input[0],this.spinner=a('<span class="spinner" />')[0],this.$el.append([this.input,this.spinner]),this.model.on("change:url",this.render,this)},render:function(){var a=this.$input;if(!a.is(":focus"))return this.input.value=this.model.get("url")||"http://",d.View.prototype.render.apply(this,arguments),this},ready:function(){this.focus()},url:function(a){this.model.set("url",a.target.value)},focus:function(){var a=this.$input;a.is(":visible")&&a.focus()[0].select()}}),d.view.EmbedLink=d.view.Settings.extend({className:"embed-link-settings",template:d.template("embed-link-settings")}),d.view.EmbedImage=d.view.Settings.AttachmentDisplay.extend({className:"embed-media-settings",template:d.template("embed-image-settings"),initialize:function(){d.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments),this.model.on("change:url",this.updateImage,this)},updateImage:function(){this.$("img").attr("src",this.model.get("url"))}}),d.view.ImageDetails=d.view.Settings.AttachmentDisplay.extend({className:"image-details",template:d.template("image-details"),events:b.defaults(d.view.Settings.AttachmentDisplay.prototype.events,{"click .edit-attachment":"editAttachment","click .replace-attachment":"replaceAttachment","click .advanced-toggle":"onToggleAdvanced",'change [data-setting="customWidth"]':"onCustomSize",'change [data-setting="customHeight"]':"onCustomSize",'keyup [data-setting="customWidth"]':"onCustomSize",'keyup [data-setting="customHeight"]':"onCustomSize"}),initialize:function(){this.options.attachment=this.model.attachment,this.listenTo(this.model,"change:url",this.updateUrl),this.listenTo(this.model,"change:link",this.toggleLinkSettings),this.listenTo(this.model,"change:size",this.toggleCustomSize),d.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments)},prepare:function(){var a=!1;return this.model.attachment&&(a=this.model.attachment.toJSON()),b.defaults({model:this.model.toJSON(),attachment:a},this.options)},render:function(){var a=this,b=arguments;return this.model.attachment&&"pending"===this.model.dfd.state()?this.model.dfd.done(function(){d.view.Settings.AttachmentDisplay.prototype.render.apply(a,b),a.postRender()}).fail(function(){a.model.attachment=!1,d.view.Settings.AttachmentDisplay.prototype.render.apply(a,b),a.postRender()}):(d.view.Settings.AttachmentDisplay.prototype.render.apply(this,arguments),this.postRender()),this},postRender:function(){setTimeout(b.bind(this.resetFocus,this),10),this.toggleLinkSettings(),"show"===getUserSetting("advImgDetails")&&this.toggleAdvanced(!0),this.trigger("post-render")},resetFocus:function(){this.$(".link-to-custom").blur(),this.$(".embed-media-settings").scrollTop(0)},updateUrl:function(){this.$(".image img").attr("src",this.model.get("url")),this.$(".url").val(this.model.get("url"))},toggleLinkSettings:function(){"none"===this.model.get("link")?this.$(".link-settings").addClass("hidden"):this.$(".link-settings").removeClass("hidden")},toggleCustomSize:function(){"custom"!==this.model.get("size")?this.$(".custom-size").addClass("hidden"):this.$(".custom-size").removeClass("hidden")},onCustomSize:function(b){var c,d=a(b.target).data("setting"),e=a(b.target).val();return!/^\d+/.test(e)||parseInt(e,10)<1?void b.preventDefault():void("customWidth"===d?(c=Math.round(1/this.model.get("aspectRatio")*e),this.model.set("customHeight",c,{silent:!0}),this.$('[data-setting="customHeight"]').val(c)):(c=Math.round(this.model.get("aspectRatio")*e),this.model.set("customWidth",c,{silent:!0}),this.$('[data-setting="customWidth"]').val(c)))},onToggleAdvanced:function(a){a.preventDefault(),this.toggleAdvanced()},toggleAdvanced:function(a){var b,c=this.$el.find(".advanced-section");c.hasClass("advanced-visible")||a===!1?(c.removeClass("advanced-visible"),c.find(".advanced-settings").addClass("hidden"),b="hide"):(c.addClass("advanced-visible"),c.find(".advanced-settings").removeClass("hidden"),b="show"),setUserSetting("advImgDetails",b)},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b&&(a.preventDefault(),b.set("image",this.model.attachment),this.controller.setState("edit-image"))},replaceAttachment:function(a){a.preventDefault(),this.controller.setState("replace-image")}}),d.view.Cropper=d.View.extend({className:"crop-content",template:d.template("crop-content"),initialize:function(){b.bindAll(this,"onImageLoad")},ready:function(){this.controller.frame.on("content:error:crop",this.onError,this),this.$image=this.$el.find(".crop-image"),this.$image.on("load",this.onImageLoad),a(window).on("resize.cropper",b.debounce(this.onImageLoad,250))},remove:function(){a(window).off("resize.cropper"),this.$el.remove(),this.$el.off(),wp.media.View.prototype.remove.apply(this,arguments)},prepare:function(){return{title:c.cropYourImage,url:this.options.attachment.get("url")}},onImageLoad:function(){var a=this.controller.get("imgSelectOptions");"function"==typeof a&&(a=a(this.options.attachment,this.controller)),a=b.extend(a,{parent:this.$el}),this.trigger("image-loaded"),this.controller.imgSelect=this.$image.imgAreaSelect(a)},onError:function(){var a=this.options.attachment.get("filename");this.views.add(".upload-errors",new d.view.UploaderStatusError({filename:d.view.UploaderStatus.prototype.filename(a),message:_wpMediaViewsL10n.cropError}),{at:0})}}),d.view.EditImage=d.View.extend({className:"image-editor",template:d.template("image-editor"),initialize:function(a){this.editor=window.imageEdit,this.controller=a.controller,d.View.prototype.initialize.apply(this,arguments)},prepare:function(){return this.model.toJSON()},render:function(){return d.View.prototype.render.apply(this,arguments),this},loadEditor:function(){this.editor.open(this.model.get("id"),this.model.get("nonces").edit,this)},back:function(){var a=this.controller.lastState();this.controller.setState(a)},refresh:function(){this.model.fetch()},save:function(){var a=this,b=this.controller.lastState();this.model.fetch().done(function(){a.controller.setState(b)})}}),d.view.Spinner=d.View.extend({tagName:"span",className:"spinner",spinnerTimeout:!1,delay:400,show:function(){return this.spinnerTimeout||(this.spinnerTimeout=b.delay(function(a){a.show()},this.delay,this.$el)),this},hide:function(){return this.$el.hide(),this.spinnerTimeout=clearTimeout(this.spinnerTimeout),this}})}(jQuery,_);
\ No newline at end of file
+!function(a,b){var c,d=wp.media,e="ontouchend"in document;c=d.view.l10n="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n,d.view.settings=c.settings||{},delete c.settings,d.model.settings.post=d.view.settings.post,a.support.transition=function(){var a,c=document.documentElement.style,d={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};return a=b.find(b.keys(d),function(a){return!b.isUndefined(c[a])}),a&&{end:d[a]}}(),d.events=b.extend({},Backbone.Events),d.transition=function(c,d){var e=a.Deferred();return d=d||2e3,a.support.transition?(c instanceof a||(c=a(c)),c.first().one(a.support.transition.end,e.resolve),b.delay(e.resolve,d)):e.resolve(),e.promise()},d.controller.Region=function(a){b.extend(this,b.pick(a||{},"id","view","selector"))},d.controller.Region.extend=Backbone.Model.extend,b.extend(d.controller.Region.prototype,{mode:function(a){return a?a===this._mode?this:(this.trigger("deactivate"),this._mode=a,this.render(a),this.trigger("activate"),this):this._mode},render:function(a){if(a&&a!==this._mode)return this.mode(a);var b,c={view:null};return this.trigger("create",c),b=c.view,this.trigger("render",b),b&&this.set(b),this},get:function(){return this.view.views.first(this.selector)},set:function(a,b){return b&&(b.add=!1),this.view.views.set(this.selector,a,b)},trigger:function(a){var c,d;if(this._mode)return d=b.toArray(arguments),c=this.id+":"+a,d[0]=c+":"+this._mode,this.view.trigger.apply(this.view,d),d[0]=c,this.view.trigger.apply(this.view,d),this}}),d.controller.StateMachine=function(a){this.states=new Backbone.Collection(a)},d.controller.StateMachine.extend=Backbone.Model.extend,b.extend(d.controller.StateMachine.prototype,Backbone.Events,{state:function(a){return this.states=this.states||new Backbone.Collection,a=a||this._state,a&&!this.states.get(a)&&this.states.add({id:a}),this.states.get(a)},setState:function(a){var b=this.state();return b&&a===b.id||!this.states||!this.states.get(a)?this:(b&&(b.trigger("deactivate"),this._lastState=b.id),this._state=a,this.state().trigger("activate"),this)},lastState:function(){return this._lastState?this.state(this._lastState):void 0}}),b.each(["on","off","trigger"],function(a){d.controller.StateMachine.prototype[a]=function(){return this.states=this.states||new Backbone.Collection,this.states[a].apply(this.states,arguments),this}}),d.controller.State=Backbone.Model.extend({constructor:function(){this.on("activate",this._preActivate,this),this.on("activate",this.activate,this),this.on("activate",this._postActivate,this),this.on("deactivate",this._deactivate,this),this.on("deactivate",this.deactivate,this),this.on("reset",this.reset,this),this.on("ready",this._ready,this),this.on("ready",this.ready,this),Backbone.Model.apply(this,arguments),this.on("change:menu",this._updateMenu,this)},ready:function(){},activate:function(){},deactivate:function(){},reset:function(){},_ready:function(){this._updateMenu()},_preActivate:function(){this.active=!0},_postActivate:function(){this.on("change:menu",this._menu,this),this.on("change:titleMode",this._title,this),this.on("change:content",this._content,this),this.on("change:toolbar",this._toolbar,this),this.frame.on("title:render:default",this._renderTitle,this),this._title(),this._menu(),this._toolbar(),this._content(),this._router()},_deactivate:function(){this.active=!1,this.frame.off("title:render:default",this._renderTitle,this),this.off("change:menu",this._menu,this),this.off("change:titleMode",this._title,this),this.off("change:content",this._content,this),this.off("change:toolbar",this._toolbar,this)},_title:function(){this.frame.title.render(this.get("titleMode")||"default")},_renderTitle:function(a){a.$el.text(this.get("title")||"")},_router:function(){var a,b=this.frame.router,c=this.get("router");this.frame.$el.toggleClass("hide-router",!c),c&&(this.frame.router.render(c),a=b.get(),a&&a.select&&a.select(this.frame.content.mode()))},_menu:function(){var a,b=this.frame.menu,c=this.get("menu");this.frame.$el.toggleClass("hide-menu",!c),c&&(b.mode(c),a=b.get(),a&&a.select&&a.select(this.id))},_updateMenu:function(){var a=this.previous("menu"),b=this.get("menu");a&&this.frame.off("menu:render:"+a,this._renderMenu,this),b&&this.frame.on("menu:render:"+b,this._renderMenu,this)},_renderMenu:function(a){var b=this.get("menuItem"),c=this.get("title"),d=this.get("priority");!b&&c&&(b={text:c},d&&(b.priority=d)),b&&a.set(this.id,b)}}),b.each(["toolbar","content"],function(a){d.controller.State.prototype["_"+a]=function(){var b=this.get(a);b&&this.frame[a].render(b)}}),d.selectionSync={syncSelection:function(){var a=this.get("selection"),c=this.frame._selection;this.get("syncSelection")&&c&&a&&(a.multiple&&(a.reset([],{silent:!0}),a.validateAll(c.attachments),c.difference=b.difference(c.attachments.models,a.models)),a.single(c.single))},recordSelection:function(){var a=this.get("selection"),b=this.frame._selection;this.get("syncSelection")&&b&&a&&(a.multiple?(b.attachments.reset(a.toArray().concat(b.difference)),b.difference=[]):b.attachments.add(a.toArray()),b.single=a._single)}},d.controller.Library=d.controller.State.extend({defaults:{id:"library",title:c.mediaLibraryTitle,multiple:!1,content:"upload",menu:"default",router:"browse",toolbar:"select",searchable:!0,filterable:!1,sortable:!0,autoSelect:!0,describe:!1,contentUserSetting:!0,syncSelection:!0},initialize:function(){var a,c=this.get("selection");this.get("library")||this.set("library",d.query()),c instanceof d.model.Selection||(a=c,a||(a=this.get("library").props.toJSON(),a=b.omit(a,"orderby","query")),this.set("selection",new d.model.Selection(null,{multiple:this.get("multiple"),props:a}))),this.resetDisplays()},activate:function(){this.syncSelection(),wp.Uploader.queue.on("add",this.uploading,this),this.get("selection").on("add remove reset",this.refreshContent,this),this.get("router")&&this.get("contentUserSetting")&&(this.frame.on("content:activate",this.saveContentMode,this),this.set("content",getUserSetting("libraryContent",this.get("content"))))},deactivate:function(){this.recordSelection(),this.frame.off("content:activate",this.saveContentMode,this),this.get("selection").off(null,null,this),wp.Uploader.queue.off(null,null,this)},reset:function(){this.get("selection").reset(),this.resetDisplays(),this.refreshContent()},resetDisplays:function(){var a=d.view.settings.defaultProps;this._displays=[],this._defaultDisplaySettings={align:a.align||getUserSetting("align","none"),size:a.size||getUserSetting("imgsize","medium"),link:a.link||getUserSetting("urlbutton","file")}},display:function(a){var b=this._displays;return b[a.cid]||(b[a.cid]=new Backbone.Model(this.defaultDisplaySettings(a))),b[a.cid]},defaultDisplaySettings:function(a){var b=this._defaultDisplaySettings;return(b.canEmbed=this.canEmbed(a))&&(b.link="embed"),b},canEmbed:function(a){if(!a.get("uploading")){var c=a.get("type");if("audio"!==c&&"video"!==c)return!1}return b.contains(d.view.settings.embedExts,a.get("filename").split(".").pop())},refreshContent:function(){var a=this.get("selection"),b=this.frame,c=b.router.get(),d=b.content.mode();this.active&&!a.length&&c&&!c.get(d)&&this.frame.content.render(this.get("content"))},uploading:function(a){var b=this.frame.content;"upload"===b.mode()&&this.frame.content.mode("browse"),this.get("autoSelect")&&(this.get("selection").add(a),this.frame.trigger("library:selection:add"))},saveContentMode:function(){if("browse"===this.get("router")){var a=this.frame.content.mode(),b=this.frame.router.get();b&&b.get(a)&&setUserSetting("libraryContent",a)}}}),b.extend(d.controller.Library.prototype,d.selectionSync),d.controller.ImageDetails=d.controller.State.extend({defaults:b.defaults({id:"image-details",title:c.imageDetailsTitle,content:"image-details",menu:!1,router:!1,toolbar:"image-details",editing:!1,priority:60},d.controller.Library.prototype.defaults),initialize:function(a){this.image=a.image,d.controller.State.prototype.initialize.apply(this,arguments)},activate:function(){this.frame.modal.$el.addClass("image-details")}}),d.controller.GalleryEdit=d.controller.Library.extend({defaults:{id:"gallery-edit",title:c.editGalleryTitle,multiple:!1,searchable:!1,sortable:!0,display:!1,content:"browse",toolbar:"gallery-edit",describe:!0,displaySettings:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,syncSelection:!1},initialize:function(){this.get("library")||this.set("library",new d.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",d.view.Attachment.EditLibrary),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type","image"),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.gallerySettings,this),d.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.gallerySettings,this),d.controller.Library.prototype.deactivate.apply(this,arguments)},gallerySettings:function(a){if(this.get("displaySettings")){var b=this.get("library");b&&a&&(b.gallery=b.gallery||new Backbone.Model,a.sidebar.set({gallery:new d.view.Settings.Gallery({controller:this,model:b.gallery,priority:40})}),a.toolbar.set("reverse",{text:c.reverseOrder,priority:80,click:function(){b.reset(b.toArray().reverse())}}))}}}),d.controller.GalleryAdd=d.controller.Library.extend({defaults:b.defaults({id:"gallery-library",title:c.addToGalleryTitle,multiple:"add",filterable:"uploaded",menu:"gallery",toolbar:"gallery-add",priority:100,syncSelection:!1},d.controller.Library.prototype.defaults),initialize:function(){this.get("library")||this.set("library",d.query({type:"image"})),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.frame.state("gallery-edit").get("library");this.editLibrary&&this.editLibrary!==b&&a.unobserve(this.editLibrary),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!b.get(a.cid)&&d.model.Selection.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(b),this.editLibrary=b,d.controller.Library.prototype.activate.apply(this,arguments)}}),d.controller.CollectionEdit=d.controller.Library.extend({defaults:{multiple:!1,sortable:!0,searchable:!1,content:"browse",describe:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,SettingsView:!1,syncSelection:!1},initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-edit"),this.set("toolbar",a+"-edit"),this.get("library")||this.set("library",new d.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",d.view.Attachment.EditLibrary),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type",this.get("type")),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.renderSettings,this),d.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.renderSettings,this),d.controller.Library.prototype.deactivate.apply(this,arguments)},renderSettings:function(b){var e=this.get("library"),f=this.get("collectionType"),g=this.get("dragInfoText"),h=this.get("SettingsView"),i={};e&&b&&(e[f]=e[f]||new Backbone.Model,i[f]=new h({controller:this,model:e[f],priority:40}),b.sidebar.set(i),g&&b.toolbar.set("dragInfo",new d.View({el:a('<div class="instructions">'+g+"</div>")[0],priority:-40})),b.toolbar.set("reverse",{text:c.reverseOrder,priority:80,click:function(){e.reset(e.toArray().reverse())}}))}}),d.controller.CollectionAdd=d.controller.Library.extend({defaults:b.defaults({multiple:"add",filterable:"uploaded",priority:100,syncSelection:!1},d.controller.Library.prototype.defaults),initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-library"),this.set("toolbar",a+"-add"),this.set("menu",a),this.get("library")||this.set("library",d.query({type:this.get("type")})),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.get("editLibrary"),c=this.frame.state(this.get("collectionType")+"-edit").get("library");b&&b!==c&&a.unobserve(b),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!c.get(a.cid)&&d.model.Selection.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(c),this.set("editLibrary",c),d.controller.Library.prototype.activate.apply(this,arguments)}}),d.controller.FeaturedImage=d.controller.Library.extend({defaults:b.defaults({id:"featured-image",title:c.setFeaturedImageTitle,multiple:!1,filterable:"uploaded",toolbar:"featured-image",priority:60,syncSelection:!0},d.controller.Library.prototype.defaults),initialize:function(){var a,b;this.get("library")||this.set("library",d.query({type:"image"})),d.controller.Library.prototype.initialize.apply(this,arguments),a=this.get("library"),b=a.comparator,a.comparator=function(a,c){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(c.cid);return!d&&e?-1:d&&!e?1:b.apply(this,arguments)},a.observe(this.get("selection"))},activate:function(){this.updateSelection(),this.frame.on("open",this.updateSelection,this),d.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.frame.off("open",this.updateSelection,this),d.controller.Library.prototype.deactivate.apply(this,arguments)},updateSelection:function(){var a,b=this.get("selection"),c=d.view.settings.post.featuredImageId;""!==c&&-1!==c&&(a=d.model.Attachment.get(c),a.fetch()),b.reset(a?[a]:[])}}),d.controller.ReplaceImage=d.controller.Library.extend({defaults:b.defaults({id:"replace-image",title:c.replaceImageTitle,multiple:!1,filterable:"uploaded",toolbar:"replace",menu:!1,priority:60,syncSelection:!0},d.controller.Library.prototype.defaults),initialize:function(a){var b,c;this.image=a.image,this.get("library")||this.set("library",d.query({type:"image"})),d.controller.Library.prototype.initialize.apply(this,arguments),b=this.get("library"),c=b.comparator,b.comparator=function(a,b){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(b.cid);return!d&&e?-1:d&&!e?1:c.apply(this,arguments)},b.observe(this.get("selection"))},activate:function(){this.updateSelection(),d.controller.Library.prototype.activate.apply(this,arguments)},updateSelection:function(){var a=this.get("selection"),b=this.image.attachment;a.reset(b?[b]:[])}}),d.controller.EditImage=d.controller.State.extend({defaults:{id:"edit-image",title:c.editImage,menu:!1,toolbar:"edit-image",content:"edit-image",url:""},activate:function(){this.listenTo(this.frame,"toolbar:render:edit-image",this.toolbar)},deactivate:function(){this.stopListening(this.frame)},toolbar:function(){var a=this.frame,b=a.lastState(),e=b&&b.id;a.toolbar.set(new d.view.Toolbar({controller:a,items:{back:{style:"primary",text:c.back,priority:20,click:function(){e?a.setState(e):a.close()}}}}))}}),d.controller.MediaLibrary=d.controller.Library.extend({defaults:b.defaults({filterable:"uploaded",displaySettings:!1,priority:80,syncSelection:!1},d.controller.Library.prototype.defaults),initialize:function(a){this.media=a.media,this.type=a.type,this.set("library",d.query({type:this.type})),d.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){d.frame.lastMime&&(this.set("library",d.query({type:d.frame.lastMime})),delete d.frame.lastMime),d.controller.Library.prototype.activate.apply(this,arguments)}}),d.controller.Embed=d.controller.State.extend({defaults:{id:"embed",title:c.insertFromUrlTitle,content:"embed",menu:"default",toolbar:"main-embed",priority:120,type:"link",url:"",metadata:{}},sensitivity:200,initialize:function(a){this.metadata=a.metadata,this.debouncedScan=b.debounce(b.bind(this.scan,this),this.sensitivity),this.props=new Backbone.Model(this.metadata||{url:""}),this.props.on("change:url",this.debouncedScan,this),this.props.on("change:url",this.refresh,this),this.on("scan",this.scanImage,this)},scan:function(){var b,c=this,d={type:"link",scanners:[]};this.props.get("url")&&this.trigger("scan",d),d.scanners.length?(b=d.scanners=a.when.apply(a,d.scanners),b.always(function(){c.get("scanners")===b&&c.set("loading",!1)})):d.scanners=null,d.loading=!!d.scanners,this.set(d)},scanImage:function(b){var c=this.frame,d=this,e=this.props.get("url"),f=new Image,g=a.Deferred();b.scanners.push(g.promise()),f.onload=function(){g.resolve(),d===c.state()&&e===d.props.get("url")&&(d.set({type:"image"}),d.props.set({width:f.width,height:f.height}))},f.onerror=g.reject,f.src=e},refresh:function(){this.frame.toolbar.get().refresh()},reset:function(){this.props.clear().set({url:""}),this.active&&this.refresh()}}),d.controller.Cropper=d.controller.State.extend({defaults:{id:"cropper",title:c.cropImage,toolbar:"crop",content:"crop",router:!1,canSkipCrop:!1},activate:function(){this.frame.on("content:create:crop",this.createCropContent,this),this.frame.on("close",this.removeCropper,this),this.set("selection",new Backbone.Collection(this.frame._selection.single))},deactivate:function(){this.frame.toolbar.mode("browse")},createCropContent:function(){this.cropperView=new wp.media.view.Cropper({controller:this,attachment:this.get("selection").first()}),this.cropperView.on("image-loaded",this.createCropToolbar,this),this.frame.content.set(this.cropperView)},removeCropper:function(){this.imgSelect.cancelSelection(),this.imgSelect.setOptions({remove:!0}),this.imgSelect.update(),this.cropperView.remove()},createCropToolbar:function(){var a,d;a=this.get("canSkipCrop")||!1,d={controller:this.frame,items:{insert:{style:"primary",text:c.cropImage,priority:80,requires:{library:!1,selection:!1},click:function(){var a=this,b=this.controller.state().get("selection").first();b.set({cropDetails:this.controller.state().imgSelect.getSelection()}),this.$el.text(c.cropping),this.$el.attr("disabled",!0),this.controller.state().doCrop(b).done(function(b){a.controller.trigger("cropped",b),a.controller.close()}).fail(function(){a.controller.trigger("content:error:crop")})}}}},a&&b.extend(d.items,{skip:{style:"secondary",text:c.skipCropping,priority:70,requires:{library:!1,selection:!1},click:function(){var a=this.controller.state().get("selection").first();this.controller.state().cropperView.remove(),this.controller.trigger("skippedcrop",a),this.controller.close()}}}),this.frame.toolbar.set(new wp.media.view.Toolbar(d))},doCrop:function(a){return wp.ajax.post("custom-header-crop",{nonce:a.get("nonces").edit,id:a.get("id"),cropDetails:a.get("cropDetails")})}}),d.View=wp.Backbone.View.extend({constructor:function(a){a&&a.controller&&(this.controller=a.controller),wp.Backbone.View.apply(this,arguments)},dispose:function(){return this.undelegateEvents(),this.model&&this.model.off&&this.model.off(null,null,this),this.collection&&this.collection.off&&this.collection.off(null,null,this),this.controller&&this.controller.off&&this.controller.off(null,null,this),this},remove:function(){return this.dispose(),wp.Backbone.View.prototype.remove.apply(this,arguments)}}),d.view.Frame=d.View.extend({initialize:function(){b.defaults(this.options,{mode:["select"]}),this._createRegions(),this._createStates(),this._createModes()},_createRegions:function(){this.regions=this.regions?this.regions.slice():[],b.each(this.regions,function(a){this[a]=new d.controller.Region({view:this,id:a,selector:".media-frame-"+a})},this)},_createStates:function(){this.states=new Backbone.Collection(null,{model:d.controller.State}),this.states.on("add",function(a){a.frame=this,a.trigger("ready")},this),this.options.states&&this.states.add(this.options.states)},_createModes:function(){this.activeModes=new Backbone.Collection,this.activeModes.on("add remove reset",b.bind(this.triggerModeEvents,this)),b.each(this.options.mode,function(a){this.activateMode(a)},this)},reset:function(){return this.states.invoke("trigger","reset"),this},triggerModeEvents:function(a,c,d){var e,f,g={add:"activate",remove:"deactivate"};b.each(d,function(a,b){a&&(e=b)}),b.has(g,e)&&(f=a.get("id")+":"+g[e],this.trigger(f))},activateMode:function(a){return this.isModeActive(a)?void 0:(this.activeModes.add([{id:a}]),this.$el.addClass("mode-"+a),this)},deactivateMode:function(a){return this.isModeActive(a)?(this.activeModes.remove(this.activeModes.where({id:a})),this.$el.removeClass("mode-"+a),this.trigger(a+":deactivate"),this):this},isModeActive:function(a){return Boolean(this.activeModes.where({id:a}).length)}}),b.extend(d.view.Frame.prototype,d.controller.StateMachine.prototype),d.view.MediaFrame=d.view.Frame.extend({className:"media-frame",template:d.template("media-frame"),regions:["menu","title","content","toolbar","router"],events:{"click div.media-frame-title h1":"toggleMenu"},initialize:function(){d.view.Frame.prototype.initialize.apply(this,arguments),b.defaults(this.options,{title:"",modal:!0,uploader:!0}),this.$el.addClass("wp-core-ui"),this.options.modal&&(this.modal=new d.view.Modal({controller:this,title:this.options.title}),this.modal.content(this)),(wp.Uploader.limitExceeded||!wp.Uploader.browser.supported)&&(this.options.uploader=!1),this.options.uploader&&(this.uploader=new d.view.UploaderWindow({controller:this,uploader:{dropzone:this.modal?this.modal.$el:this.$el,container:this.$el}}),this.views.set(".media-frame-uploader",this.uploader)),this.on("attach",b.bind(this.views.ready,this.views),this),this.on("title:create:default",this.createTitle,this),this.title.mode("default"),this.on("title:render",function(a){a.$el.append('<span class="dashicons dashicons-arrow-down"></span>')}),this.on("menu:create:default",this.createMenu,this)},render:function(){return!this.state()&&this.options.state&&this.setState(this.options.state),d.view.Frame.prototype.render.apply(this,arguments)},createTitle:function(a){a.view=new d.View({controller:this,tagName:"h1"})},createMenu:function(a){a.view=new d.view.Menu({controller:this})},toggleMenu:function(){this.$el.find(".media-menu").toggleClass("visible")},createToolbar:function(a){a.view=new d.view.Toolbar({controller:this})},createRouter:function(a){a.view=new d.view.Router({controller:this})},createIframeStates:function(c){var e,f=d.view.settings,g=f.tabs,h=f.tabUrl;g&&h&&(e=a("#post_ID"),e.length&&(h+="&post_id="+e.val()),b.each(g,function(a,d){this.state("iframe:"+d).set(b.defaults({tab:d,src:h+"&tab="+d,title:a,content:"iframe",menu:"default"},c))},this),this.on("content:create:iframe",this.iframeContent,this),this.on("menu:render:default",this.iframeMenu,this),this.on("open",this.hijackThickbox,this),this.on("close",this.restoreThickbox,this))},iframeContent:function(a){this.$el.addClass("hide-toolbar"),a.view=new d.view.Iframe({controller:this})},iframeMenu:function(a){var c={};a&&(b.each(d.view.settings.tabs,function(a,b){c["iframe:"+b]={text:this.state("iframe:"+b).get("title"),priority:200}},this),a.set(c))},hijackThickbox:function(){var a=this;window.tb_remove&&!this._tb_remove&&(this._tb_remove=window.tb_remove,window.tb_remove=function(){a.close(),a.reset(),a.setState(a.options.state),a._tb_remove.call(window)})},restoreThickbox:function(){this._tb_remove&&(window.tb_remove=this._tb_remove,delete this._tb_remove)}}),b.each(["open","close","attach","detach","escape"],function(a){d.view.MediaFrame.prototype[a]=function(){return this.modal&&this.modal[a].apply(this.modal,arguments),this}}),d.view.MediaFrame.Select=d.view.MediaFrame.extend({initialize:function(){d.view.MediaFrame.prototype.initialize.apply(this,arguments),b.defaults(this.options,{selection:[],library:{},multiple:!1,state:"library"}),this.createSelection(),this.createStates(),this.bindHandlers()},createSelection:function(){var a=this.options.selection;a instanceof d.model.Selection||(this.options.selection=new d.model.Selection(a,{multiple:this.options.multiple})),this._selection={attachments:new d.model.Attachments,difference:[]}},createStates:function(){var a=this.options;this.options.states||this.states.add([new d.controller.Library({library:d.query(a.library),multiple:a.multiple,title:a.title,priority:20})])},bindHandlers:function(){this.on("router:create:browse",this.createRouter,this),this.on("router:render:browse",this.browseRouter,this),this.on("content:create:browse",this.browseContent,this),this.on("content:render:upload",this.uploadContent,this),this.on("toolbar:create:select",this.createSelectToolbar,this)},browseRouter:function(a){a.set({upload:{text:c.uploadFilesTitle,priority:20},browse:{text:c.mediaLibraryTitle,priority:40}})},browseContent:function(a){var b=this.state();this.$el.removeClass("hide-toolbar"),a.view=new d.view.AttachmentsBrowser({controller:this,collection:b.get("library"),selection:b.get("selection"),model:b,sortable:b.get("sortable"),search:b.get("searchable"),filters:b.get("filterable"),display:b.get(b.has("display")?"display":"displaySettings"),dragInfo:b.get("dragInfo"),idealColumnWidth:b.get("idealColumnWidth"),suggestedWidth:b.get("suggestedWidth"),suggestedHeight:b.get("suggestedHeight"),AttachmentView:b.get("AttachmentView")})},uploadContent:function(){this.$el.removeClass("hide-toolbar"),this.content.set(new d.view.UploaderInline({controller:this}))},createSelectToolbar:function(a,b){b=b||this.options.button||{},b.controller=this,a.view=new d.view.Toolbar.Select(b)}}),d.view.MediaFrame.Post=d.view.MediaFrame.Select.extend({initialize:function(){this.counts={audio:{count:d.view.settings.attachmentCounts.audio,state:"playlist"},video:{count:d.view.settings.attachmentCounts.video,state:"video-playlist"}},b.defaults(this.options,{multiple:!0,editing:!1,state:"insert",metadata:{}}),d.view.MediaFrame.Select.prototype.initialize.apply(this,arguments),this.createIframeStates()},createStates:function(){var a=this.options;this.states.add([new d.controller.Library({id:"insert",title:c.insertMediaTitle,priority:20,toolbar:"main-insert",filterable:"all",library:d.query(a.library),multiple:a.multiple?"reset":!1,editable:!0,allowLocalEdits:!0,displaySettings:!0,displayUserSettings:!0}),new d.controller.Library({id:"gallery",title:c.createGalleryTitle,priority:40,toolbar:"main-gallery",filterable:"uploaded",multiple:"add",editable:!1,library:d.query(b.defaults({type:"image"},a.library))}),new d.controller.Embed({metadata:a.metadata}),new d.controller.EditImage({model:a.editImage}),new d.controller.GalleryEdit({library:a.selection,editing:a.editing,menu:"gallery"}),new d.controller.GalleryAdd,new d.controller.Library({id:"playlist",title:c.createPlaylistTitle,priority:60,toolbar:"main-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:d.query(b.defaults({type:"audio"},a.library))}),new d.controller.CollectionEdit({type:"audio",collectionType:"playlist",title:c.editPlaylistTitle,SettingsView:d.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"playlist",dragInfoText:c.playlistDragInfo,dragInfo:!1}),new d.controller.CollectionAdd({type:"audio",collectionType:"playlist",title:c.addToPlaylistTitle}),new d.controller.Library({id:"video-playlist",title:c.createVideoPlaylistTitle,priority:60,toolbar:"main-video-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:d.query(b.defaults({type:"video"},a.library))}),new d.controller.CollectionEdit({type:"video",collectionType:"playlist",title:c.editVideoPlaylistTitle,SettingsView:d.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"video-playlist",dragInfoText:c.videoPlaylistDragInfo,dragInfo:!1}),new d.controller.CollectionAdd({type:"video",collectionType:"playlist",title:c.addToVideoPlaylistTitle})]),d.view.settings.post.featuredImageId&&this.states.add(new d.controller.FeaturedImage)},bindHandlers:function(){var a,c;d.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("activate",this.activate,this),c=b.find(this.counts,function(a){return 0===a.count}),"undefined"!=typeof c&&this.listenTo(d.model.Attachments.all,"change:type",this.mediaTypeCounts),this.on("menu:create:gallery",this.createMenu,this),this.on("menu:create:playlist",this.createMenu,this),this.on("menu:create:video-playlist",this.createMenu,this),this.on("toolbar:create:main-insert",this.createToolbar,this),this.on("toolbar:create:main-gallery",this.createToolbar,this),this.on("toolbar:create:main-playlist",this.createToolbar,this),this.on("toolbar:create:main-video-playlist",this.createToolbar,this),this.on("toolbar:create:featured-image",this.featuredImageToolbar,this),this.on("toolbar:create:main-embed",this.mainEmbedToolbar,this),a={menu:{"default":"mainMenu",gallery:"galleryMenu",playlist:"playlistMenu","video-playlist":"videoPlaylistMenu"},content:{embed:"embedContent","edit-image":"editImageContent","edit-selection":"editSelectionContent"},toolbar:{"main-insert":"mainInsertToolbar","main-gallery":"mainGalleryToolbar","gallery-edit":"galleryEditToolbar","gallery-add":"galleryAddToolbar","main-playlist":"mainPlaylistToolbar","playlist-edit":"playlistEditToolbar","playlist-add":"playlistAddToolbar","main-video-playlist":"mainVideoPlaylistToolbar","video-playlist-edit":"videoPlaylistEditToolbar","video-playlist-add":"videoPlaylistAddToolbar"}},b.each(a,function(a,c){b.each(a,function(a,b){this.on(c+":render:"+b,this[a],this)},this)},this)},activate:function(){b.each(this.counts,function(a){a.count<1&&this.menuItemVisibility(a.state,"hide")},this)},mediaTypeCounts:function(a,b){"undefined"!=typeof this.counts[b]&&this.counts[b].count<1&&(this.counts[b].count++,this.menuItemVisibility(this.counts[b].state,"show"))},mainMenu:function(a){a.set({"library-separator":new d.View({className:"separator",priority:100})})},menuItemVisibility:function(a,b){var c=this.menu.get();"hide"===b?c.hide(a):"show"===b&&c.show(a)},galleryMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.cancelGalleryTitle,priority:20,click:function(){e?f.setState(e):f.close(),this.controller.modal.focusManager.focus()}},separateCancel:new d.View({className:"separator",priority:40})})},playlistMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.cancelPlaylistTitle,priority:20,click:function(){e?f.setState(e):f.close()}},separateCancel:new d.View({className:"separator",priority:40})})},videoPlaylistMenu:function(a){var b=this.lastState(),e=b&&b.id,f=this;a.set({cancel:{text:c.cancelVideoPlaylistTitle,priority:20,click:function(){e?f.setState(e):f.close()}},separateCancel:new d.View({className:"separator",priority:40})})},embedContent:function(){var a=new d.view.Embed({controller:this,model:this.state()}).render();this.content.set(a),e||a.url.focus()},editSelectionContent:function(){var a,b=this.state(),e=b.get("selection");a=new d.view.AttachmentsBrowser({controller:this,collection:e,selection:e,model:b,sortable:!0,search:!1,dragInfo:!0,AttachmentView:d.view.Attachment.EditSelection}).render(),a.toolbar.set("backToLibrary",{text:c.returnToLibrary,priority:-100,click:function(){this.controller.content.mode("browse")}}),this.content.set(a)},editImageContent:function(){var a=this.state().get("image"),b=new d.view.EditImage({model:a,controller:this}).render();this.content.set(b),b.loadEditor()},selectionStatusToolbar:function(a){var b=this.state().get("editable");a.set("selection",new d.view.Selection({controller:this,collection:this.state().get("selection"),priority:-40,editable:b&&function(){this.controller.content.mode("edit-selection")}}).render())},mainInsertToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("insert",{style:"primary",priority:80,text:c.insertIntoPost,requires:{selection:!0},click:function(){var a=b.state(),c=a.get("selection");b.close(),a.trigger("insert",c).reset()}})},mainGalleryToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("gallery",{style:"primary",text:c.createNewGallery,priority:60,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("gallery-edit"),e=a.where({type:"image"});
+c.set("library",new d.model.Selection(e,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("gallery-edit"),this.controller.modal.focusManager.focus()}})},mainPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("playlist",{style:"primary",text:c.createNewPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("playlist-edit"),e=a.where({type:"audio"});c.set("library",new d.model.Selection(e,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("playlist-edit"),this.controller.modal.focusManager.focus()}})},mainVideoPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("video-playlist",{style:"primary",text:c.createNewVideoPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("video-playlist-edit"),e=a.where({type:"video"});c.set("library",new d.model.Selection(e,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("video-playlist-edit"),this.controller.modal.focusManager.focus()}})},featuredImageToolbar:function(a){this.createSelectToolbar(a,{text:c.setFeaturedImage,state:this.options.state})},mainEmbedToolbar:function(a){a.view=new d.view.Toolbar.Embed({controller:this})},galleryEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?c.updateGallery:c.insertGallery,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},galleryAddToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:c.addToGallery,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("gallery-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("gallery-edit")}}}}))},playlistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?c.updatePlaylist:c.insertPlaylist,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},playlistAddToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:c.addToPlaylist,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("playlist-edit")}}}}))},videoPlaylistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?c.updateVideoPlaylist:c.insertVideoPlaylist,priority:140,requires:{library:!0},click:function(){var a=this.controller,b=a.state(),c=b.get("library");c.type="video",a.close(),b.trigger("update",c),a.setState(a.options.state),a.reset()}}}}))},videoPlaylistAddToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{insert:{style:"primary",text:c.addToVideoPlaylist,priority:140,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("video-playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("video-playlist-edit")}}}}))}}),d.view.MediaFrame.ImageDetails=d.view.MediaFrame.Select.extend({defaults:{id:"image",url:"",menu:"image-details",content:"image-details",toolbar:"image-details",type:"link",title:c.imageDetailsTitle,priority:120},initialize:function(a){this.image=new d.model.PostImage(a.metadata),this.options.selection=new d.model.Selection(this.image.attachment,{multiple:!1}),d.view.MediaFrame.Select.prototype.initialize.apply(this,arguments)},bindHandlers:function(){d.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:image-details",this.createMenu,this),this.on("content:create:image-details",this.imageDetailsContent,this),this.on("content:render:edit-image",this.editImageContent,this),this.on("toolbar:render:image-details",this.renderImageDetailsToolbar,this),this.on("toolbar:render:replace",this.renderReplaceImageToolbar,this)},createStates:function(){this.states.add([new d.controller.ImageDetails({image:this.image,editable:!1}),new d.controller.ReplaceImage({id:"replace-image",library:d.query({type:"image"}),image:this.image,multiple:!1,title:c.imageReplaceTitle,toolbar:"replace",priority:80,displaySettings:!0}),new d.controller.EditImage({image:this.image,selection:this.options.selection})])},imageDetailsContent:function(a){a.view=new d.view.ImageDetails({controller:this,model:this.state().image,attachment:this.state().image.attachment})},editImageContent:function(){var a,b=this.state(),c=b.get("image");c&&(a=new d.view.EditImage({model:c,controller:this}).render(),this.content.set(a),a.loadEditor())},renderImageDetailsToolbar:function(){this.toolbar.set(new d.view.Toolbar({controller:this,items:{select:{style:"primary",text:c.update,priority:80,click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))},renderReplaceImageToolbar:function(){var a=this,b=a.lastState(),e=b&&b.id;this.toolbar.set(new d.view.Toolbar({controller:this,items:{back:{text:c.back,priority:20,click:function(){e?a.setState(e):a.close()}},replace:{style:"primary",text:c.replace,priority:80,click:function(){var a=this.controller,b=a.state(),c=b.get("selection"),d=c.single();a.close(),a.image.changeAttachment(d,b.display(d)),b.trigger("replace",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))}}),d.view.Modal=d.View.extend({tagName:"div",template:d.template("media-modal"),attributes:{tabindex:0},events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler",keydown:"keydown"},initialize:function(){b.defaults(this.options,{container:document.body,title:"",propagate:!0,freeze:!0}),this.focusManager=new d.view.FocusManager({el:this.el})},prepare:function(){return{title:this.options.title}},attach:function(){return this.views.attached?this:(this.views.rendered||this.render(),this.$el.appendTo(this.options.container),this.views.attached=!0,this.views.ready(),this.propagate("attach"))},detach:function(){return this.$el.is(":visible")&&this.close(),this.$el.detach(),this.views.attached=!1,this.propagate("detach")},open:function(){var b,c=this.$el,d=this.options;return c.is(":visible")?this:(this.views.attached||this.attach(),d.freeze&&(this._freeze={scrollTop:a(window).scrollTop()}),a("body").addClass("modal-open"),c.show(),"ontouchend"in document&&(b=window.tinymce&&window.tinymce.activeEditor)&&!b.isHidden()&&b.iframeElement&&(b.iframeElement.focus(),b.iframeElement.blur(),setTimeout(function(){b.iframeElement.blur()},100)),this.$el.focus(),this.propagate("open"))},close:function(b){var c=this._freeze;return this.views.attached&&this.$el.is(":visible")?(a("body").removeClass("modal-open"),this.$el.hide().undelegate("keydown"),a("#wpbody-content").focus(),this.propagate("close"),c&&a(window).scrollTop(c.scrollTop),b&&b.escape&&this.propagate("escape"),this):this},escape:function(){return this.close({escape:!0})},escapeHandler:function(a){a.preventDefault(),this.escape()},content:function(a){return this.views.set(".media-modal-content",a),this},propagate:function(a){return this.trigger(a),this.options.propagate&&this.controller.trigger(a),this},keydown:function(a){27===a.which&&this.$el.is(":visible")&&(this.escape(),a.stopImmediatePropagation())}}),d.view.FocusManager=d.View.extend({events:{keydown:"constrainTabbing"},focus:function(){this.$(".media-menu-item").first().focus()},constrainTabbing:function(a){var b;if(9===a.keyCode)return b=this.$(":tabbable"),b.last()[0]!==a.target||a.shiftKey?b.first()[0]===a.target&&a.shiftKey?(b.last().focus(),!1):void 0:(b.first().focus(),!1)}}),d.view.UploaderWindow=d.View.extend({tagName:"div",className:"uploader-window",template:d.template("uploader-window"),initialize:function(){var c;this.$browser=a('<a href="#" class="browser" />').hide().appendTo("body"),c=this.options.uploader=b.defaults(this.options.uploader||{},{dropzone:this.$el,browser:this.$browser,params:{}}),!c.dropzone||c.dropzone instanceof a||(c.dropzone=a(c.dropzone)),this.controller.on("activate",this.refresh,this),this.controller.on("detach",function(){this.$browser.remove()},this)},refresh:function(){this.uploader&&this.uploader.refresh()},ready:function(){var c,e=d.view.settings.post.id;this.uploader||(e&&(this.options.uploader.params.post_id=e),this.uploader=new wp.Uploader(this.options.uploader),c=this.uploader.dropzone,c.on("dropzone:enter",b.bind(this.show,this)),c.on("dropzone:leave",b.bind(this.hide,this)),a(this.uploader).on("uploader:ready",b.bind(this._ready,this)))},_ready:function(){this.controller.trigger("uploader:ready")},show:function(){var a=this.$el.show();b.defer(function(){a.css({opacity:1})})},hide:function(){var a=this.$el.css({opacity:0});d.transition(a).done(function(){"0"===a.css("opacity")&&a.hide()}),b.delay(function(){"0"===a.css("opacity")&&a.is(":visible")&&a.hide()},500)}}),d.view.EditorUploader=d.View.extend({tagName:"div",className:"uploader-editor",template:d.template("uploader-editor"),localDrag:!1,overContainer:!1,overDropzone:!1,draggingFile:null,initialize:function(){var c=this;return this.initialized=!1,window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&this.browserSupport()?(this.$document=a(document),this.dropzones=[],this.files=[],this.$document.on("drop",".uploader-editor",b.bind(this.drop,this)),this.$document.on("dragover",".uploader-editor",b.bind(this.dropzoneDragover,this)),this.$document.on("dragleave",".uploader-editor",b.bind(this.dropzoneDragleave,this)),this.$document.on("click",".uploader-editor",b.bind(this.click,this)),this.$document.on("dragover",b.bind(this.containerDragover,this)),this.$document.on("dragleave",b.bind(this.containerDragleave,this)),this.$document.on("dragstart dragend drop",function(a){c.localDrag="dragstart"===a.type}),this.initialized=!0,this):this},browserSupport:function(){var a=!1,b=document.createElement("div");return a="draggable"in b||"ondragstart"in b&&"ondrop"in b,a=a&&!!(window.File&&window.FileList&&window.FileReader)},isDraggingFile:function(a){return null!==this.draggingFile?this.draggingFile:b.isUndefined(a.originalEvent)||b.isUndefined(a.originalEvent.dataTransfer)?!1:(this.draggingFile=b.indexOf(a.originalEvent.dataTransfer.types,"Files")>-1&&-1===b.indexOf(a.originalEvent.dataTransfer.types,"text/plain"),this.draggingFile)},refresh:function(c){var d;for(d in this.dropzones)this.dropzones[d].toggle(this.overContainer||this.overDropzone);return b.isUndefined(c)||a(c.target).closest(".uploader-editor").toggleClass("droppable",this.overDropzone),this.overContainer||this.overDropzone||(this.draggingFile=null),this},render:function(){return this.initialized?(d.View.prototype.render.apply(this,arguments),a(".wp-editor-wrap, #wp-fullscreen-body").each(b.bind(this.attach,this)),this):this},attach:function(b,c){var d=this.$el.clone();return this.dropzones.push(d),a(c).append(d),this},drop:function(b){var c=null;return this.containerDragleave(b),this.dropzoneDragleave(b),this.files=b.originalEvent.dataTransfer.files,this.files.length<1?void 0:(c=a(b.target).parents(".wp-editor-wrap"),c.length>0&&c[0].id&&(window.wpActiveEditor=c[0].id.slice(3,-5)),this.workflow?(this.workflow.state().reset(),this.addFiles.apply(this),this.workflow.open()):(this.workflow=wp.media.editor.open("content",{frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0}),this.workflow.on("uploader:ready",this.addFiles,this)),!1)},addFiles:function(){return this.files.length&&(this.workflow.uploader.uploader.uploader.addFile(b.toArray(this.files)),this.files=[]),this},containerDragover:function(a){!this.localDrag&&this.isDraggingFile(a)&&(this.overContainer=!0,this.refresh())},containerDragleave:function(){this.overContainer=!1,b.delay(b.bind(this.refresh,this),50)},dropzoneDragover:function(a){return!this.localDrag&&this.isDraggingFile(a)?(this.overDropzone=!0,this.refresh(a),!1):void 0},dropzoneDragleave:function(a){this.overDropzone=!1,b.delay(b.bind(this.refresh,this,a),50)},click:function(a){this.containerDragleave(a),this.dropzoneDragleave(a),this.localDrag=!1}}),d.view.UploaderInline=d.View.extend({tagName:"div",className:"uploader-inline",template:d.template("uploader-inline"),events:{"click .close":"hide"},initialize:function(){b.defaults(this.options,{message:"",status:!0,canClose:!1}),!this.options.$browser&&this.controller.uploader&&(this.options.$browser=this.controller.uploader.$browser),b.isUndefined(this.options.postId)&&(this.options.postId=d.view.settings.post.id),this.options.status&&this.views.set(".upload-inline-status",new d.view.UploaderStatus({controller:this.controller}))},prepare:function(){var a=this.controller.state().get("suggestedWidth"),b=this.controller.state().get("suggestedHeight"),c={};return c.message=this.options.message,c.canClose=this.options.canClose,a&&b&&(c.suggestedWidth=a,c.suggestedHeight=b),c},dispose:function(){return this.disposing?d.View.prototype.dispose.apply(this,arguments):(this.disposing=!0,this.remove())},remove:function(){var a=d.View.prototype.remove.apply(this,arguments);return b.defer(b.bind(this.refresh,this)),a},refresh:function(){var a=this.controller.uploader;a&&a.refresh()},ready:function(){var a,b=this.options.$browser;if(this.controller.uploader){if(a=this.$(".browser"),a[0]===b[0])return;b.detach().text(a.text()),b[0].className=a[0].className,a.replaceWith(b.show())}return this.refresh(),this},show:function(){this.$el.removeClass("hidden")},hide:function(){this.$el.addClass("hidden")}}),d.view.UploaderStatus=d.View.extend({className:"media-uploader-status",template:d.template("uploader-status"),events:{"click .upload-dismiss-errors":"dismiss"},initialize:function(){this.queue=wp.Uploader.queue,this.queue.on("add remove reset",this.visibility,this),this.queue.on("add remove reset change:percent",this.progress,this),this.queue.on("add remove reset change:uploading",this.info,this),this.errors=wp.Uploader.errors,this.errors.reset(),this.errors.on("add remove reset",this.visibility,this),this.errors.on("add",this.error,this)},dispose:function(){return wp.Uploader.queue.off(null,null,this),d.View.prototype.dispose.apply(this,arguments),this},visibility:function(){this.$el.toggleClass("uploading",!!this.queue.length),this.$el.toggleClass("errors",!!this.errors.length),this.$el.toggle(!!this.queue.length||!!this.errors.length)},ready:function(){b.each({$bar:".media-progress-bar div",$index:".upload-index",$total:".upload-total",$filename:".upload-filename"},function(a,b){this[b]=this.$(a)},this),this.visibility(),this.progress(),this.info()},progress:function(){var a=this.queue,c=this.$bar;c&&a.length&&c.width(a.reduce(function(a,c){if(!c.get("uploading"))return a+100;var d=c.get("percent");return a+(b.isNumber(d)?d:100)},0)/a.length+"%")},info:function(){var a,b=this.queue,c=0;b.length&&(a=this.queue.find(function(a,b){return c=b,a.get("uploading")}),this.$index.text(c+1),this.$total.text(b.length),this.$filename.html(a?this.filename(a.get("filename")):""))},filename:function(a){return d.truncate(b.escape(a),24)},error:function(a){this.views.add(".upload-errors",new d.view.UploaderStatusError({filename:this.filename(a.get("file").name),message:a.get("message")}),{at:0})},dismiss:function(a){var c=this.views.get(".upload-errors");a.preventDefault(),c&&b.invoke(c,"remove"),wp.Uploader.errors.reset()}}),d.view.UploaderStatusError=d.View.extend({className:"upload-error",template:d.template("uploader-status-error")}),d.view.Toolbar=d.View.extend({tagName:"div",className:"media-toolbar",initialize:function(){var a=this.controller.state(),b=this.selection=a.get("selection"),c=this.library=a.get("library");this._views={},this.primary=new d.view.PriorityList,this.secondary=new d.view.PriorityList,this.primary.$el.addClass("media-toolbar-primary search-form"),this.secondary.$el.addClass("media-toolbar-secondary"),this.views.set([this.secondary,this.primary]),this.options.items&&this.set(this.options.items,{silent:!0}),this.options.silent||this.render(),b&&b.on("add remove reset",this.refresh,this),c&&c.on("add remove reset",this.refresh,this)},dispose:function(){return this.selection&&this.selection.off(null,null,this),this.library&&this.library.off(null,null,this),d.View.prototype.dispose.apply(this,arguments)},ready:function(){this.refresh()},set:function(a,c,e){var f;return e=e||{},b.isObject(a)?b.each(a,function(a,b){this.set(b,a,{silent:!0})},this):(c instanceof Backbone.View||(c.classes=["media-button-"+a].concat(c.classes||[]),c=new d.view.Button(c).render()),c.controller=c.controller||this.controller,this._views[a]=c,f=c.options.priority<0?"secondary":"primary",this[f].set(a,c,e)),e.silent||this.refresh(),this},get:function(a){return this._views[a]},unset:function(a,b){return delete this._views[a],this.primary.unset(a,b),this.secondary.unset(a,b),b&&b.silent||this.refresh(),this},refresh:function(){var a=this.controller.state(),c=a.get("library"),d=a.get("selection");b.each(this._views,function(a){if(a.model&&a.options&&a.options.requires){var e=a.options.requires,f=!1;f=b.some(d.models,function(a){return a.get("uploading")===!0}),e.selection&&d&&!d.length?f=!0:e.library&&c&&!c.length&&(f=!0),a.model.set("disabled",f)}})}}),d.view.Toolbar.Select=d.view.Toolbar.extend({initialize:function(){var a=this.options;b.bindAll(this,"clickSelect"),b.defaults(a,{event:"select",state:!1,reset:!0,close:!0,text:c.select,requires:{selection:!0}}),a.items=b.defaults(a.items||{},{select:{style:"primary",text:a.text,priority:80,click:this.clickSelect,requires:a.requires}}),d.view.Toolbar.prototype.initialize.apply(this,arguments)},clickSelect:function(){var a=this.options,b=this.controller;a.close&&b.close(),a.event&&b.state().trigger(a.event),a.state&&b.setState(a.state),a.reset&&b.reset()}}),d.view.Toolbar.Embed=d.view.Toolbar.Select.extend({initialize:function(){b.defaults(this.options,{text:c.insertIntoPost,requires:!1}),d.view.Toolbar.Select.prototype.initialize.apply(this,arguments)},refresh:function(){var a=this.controller.state().props.get("url");this.get("select").model.set("disabled",!a||"http://"===a),d.view.Toolbar.Select.prototype.refresh.apply(this,arguments)}}),d.view.Button=d.View.extend({tagName:"a",className:"media-button",attributes:{href:"#"},events:{click:"click"},defaults:{text:"",style:"",size:"large",disabled:!1},initialize:function(){this.model=new Backbone.Model(this.defaults),b.each(this.defaults,function(a,c){var d=this.options[c];b.isUndefined(d)||(this.model.set(c,d),delete this.options[c])},this),this.model.on("change",this.render,this)},render:function(){var a=["button",this.className],c=this.model.toJSON();return c.style&&a.push("button-"+c.style),c.size&&a.push("button-"+c.size),a=b.uniq(a.concat(this.options.classes)),this.el.className=a.join(" "),this.$el.attr("disabled",c.disabled),this.$el.text(this.model.get("text")),this},click:function(a){"#"===this.attributes.href&&a.preventDefault(),this.options.click&&!this.model.get("disabled")&&this.options.click.apply(this,arguments)}}),d.view.ButtonGroup=d.View.extend({tagName:"div",className:"button-group button-large media-button-group",initialize:function(){this.buttons=b.map(this.options.buttons||[],function(a){return a instanceof Backbone.View?a:new d.view.Button(a).render()}),delete this.options.buttons,this.options.classes&&this.$el.addClass(this.options.classes)},render:function(){return this.$el.html(a(b.pluck(this.buttons,"el")).detach()),this}}),d.view.PriorityList=d.View.extend({tagName:"div",initialize:function(){this._views={},this.set(b.extend({},this._views,this.options.views),{silent:!0}),delete this.options.views,this.options.silent||this.render()},set:function(a,c,d){var e,f,g;return d=d||{},b.isObject(a)?(b.each(a,function(a,b){this.set(b,a)},this),this):(c instanceof Backbone.View||(c=this.toView(c,a,d)),c.controller=c.controller||this.controller,this.unset(a),e=c.options.priority||10,f=this.views.get()||[],b.find(f,function(a,b){return a.options.priority>e?(g=b,!0):void 0}),this._views[a]=c,this.views.add(c,{at:b.isNumber(g)?g:f.length||0}),this)},get:function(a){return this._views[a]},unset:function(a){var b=this.get(a);return b&&b.remove(),delete this._views[a],this},toView:function(a){return new d.View(a)}}),d.view.MenuItem=d.View.extend({tagName:"a",className:"media-menu-item",attributes:{href:"#"},events:{click:"_click"},_click:function(b){var c=this.options.click;b&&b.preventDefault(),c?c.call(this):this.click(),e||a(".media-frame-content input").first().focus()},click:function(){var a=this.options.state;a&&(this.controller.setState(a),this.views.parent.$el.removeClass("visible"))},render:function(){var a=this.options;return a.text?this.$el.text(a.text):a.html&&this.$el.html(a.html),this}}),d.view.Menu=d.view.PriorityList.extend({tagName:"div",className:"media-menu",property:"state",ItemView:d.view.MenuItem,region:"menu",toView:function(a,b){return a=a||{},a[this.property]=a[this.property]||b,new this.ItemView(a).render()},ready:function(){d.view.PriorityList.prototype.ready.apply(this,arguments),this.visibility()},set:function(){d.view.PriorityList.prototype.set.apply(this,arguments),this.visibility()},unset:function(){d.view.PriorityList.prototype.unset.apply(this,arguments),this.visibility()},visibility:function(){var a=this.region,b=this.controller[a].get(),c=this.views.get(),d=!c||c.length<2;this===b&&this.controller.$el.toggleClass("hide-"+a,d)},select:function(a){var b=this.get(a);b&&(this.deselect(),b.$el.addClass("active"))},deselect:function(){this.$el.children().removeClass("active")},hide:function(a){var b=this.get(a);b&&b.$el.addClass("hidden")},show:function(a){var b=this.get(a);b&&b.$el.removeClass("hidden")}}),d.view.RouterItem=d.view.MenuItem.extend({click:function(){var a=this.options.contentMode;a&&this.controller.content.mode(a)}}),d.view.Router=d.view.Menu.extend({tagName:"div",className:"media-router",property:"contentMode",ItemView:d.view.RouterItem,region:"router",initialize:function(){this.controller.on("content:render",this.update,this),d.view.Menu.prototype.initialize.apply(this,arguments)},update:function(){var a=this.controller.content.mode();a&&this.select(a)}}),d.view.Sidebar=d.view.PriorityList.extend({className:"media-sidebar"}),d.view.Attachment=d.View.extend({tagName:"li",className:"attachment",template:d.template("attachment"),attributes:function(){return{tabIndex:0,role:"checkbox","aria-label":this.model.get("title"),"aria-checked":!1,"data-id":this.model.get("id")}},events:{"click .js--select-attachment":"toggleSelectionHandler","change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .close":"removeFromLibrary","click .check":"checkClickHandler","click a":"preventDefault",keydown:"toggleSelectionHandler"},buttons:{},initialize:function(){var a=this.options.selection,c=b.defaults(this.options,{rerenderOnModelChange:!0});c.rerenderOnModelChange?this.model.on("change",this.render,this):this.model.on("change:percent",this.progress,this),this.model.on("change:title",this._syncTitle,this),this.model.on("change:caption",this._syncCaption,this),this.model.on("change:artist",this._syncArtist,this),this.model.on("change:album",this._syncAlbum,this),this.model.on("add",this.select,this),this.model.on("remove",this.deselect,this),a&&(a.on("reset",this.updateSelect,this),this.model.on("selection:single selection:unsingle",this.details,this),this.details(this.model,this.controller.state().get("selection")))},dispose:function(){var a=this.options.selection;return this.updateAll(),a&&a.off(null,null,this),d.View.prototype.dispose.apply(this,arguments),this},render:function(){var a=b.defaults(this.model.toJSON(),{orientation:"landscape",uploading:!1,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:!1,alt:"",description:""},this.options);return a.buttons=this.buttons,a.describe=this.controller.state().get("describe"),"image"===a.type&&(a.size=this.imageSize()),a.can={},a.nonces&&(a.can.remove=!!a.nonces["delete"],a.can.save=!!a.nonces.update),this.controller.state().get("allowLocalEdits")&&(a.allowLocalEdits=!0),a.uploading&&!a.percent&&(a.percent=0),this.views.detach(),this.$el.html(this.template(a)),this.$el.toggleClass("uploading",a.uploading),a.uploading?this.$bar=this.$(".media-progress-bar div"):delete this.$bar,this.updateSelect(),this.updateSave(),this.views.render(),this},progress:function(){this.$bar&&this.$bar.length&&this.$bar.width(this.model.get("percent")+"%")},toggleSelectionHandler:function(a){var b;if("INPUT"!==a.target.nodeName){if(37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode)return void this.controller.trigger("attachment:keydown:arrow",a);if("keydown"!==a.type||13===a.keyCode||32===a.keyCode){if(this.controller.isModeActive("grid")){if(this.controller.isModeActive("edit"))return this.controller.trigger("edit:attachment",this.model,a.currentTarget),void a.stopPropagation();this.controller.isModeActive("select")&&(b="toggle")}a.shiftKey?b="between":(a.ctrlKey||a.metaKey)&&(b="toggle"),this.toggleSelection({method:b}),this.controller.trigger("selection:toggle"),a.stopPropagation()}}},toggleSelection:function(a){var c,d,e,f,g=this.collection,h=this.options.selection,i=this.model,j=a&&a.method;if(h){if(c=h.single(),j=b.isUndefined(j)?h.multiple:j,"between"===j&&c&&h.multiple){if(c===i)return;return e=g.indexOf(c),f=g.indexOf(this.model),d=f>e?g.models.slice(e,f+1):g.models.slice(f,e+1),h.add(d),void h.single(i)}if("toggle"===j)return h[this.selected()?"remove":"add"](i),void h.single(i);if("add"===j)return h.add(i),void h.single(i);j||(j="add"),"add"!==j&&(j="reset"),this.selected()?h[c===i?"remove":"single"](i):(h[j](i),h.single(i))}},updateSelect:function(){this[this.selected()?"select":"deselect"]()},selected:function(){var a=this.options.selection;return a?!!a.get(this.model.cid):void 0},select:function(a,b){var c=this.options.selection,d=this.controller;!c||b&&b!==c||this.$el.hasClass("selected")||(this.$el.addClass("selected").attr("aria-checked",!0),d.isModeActive("grid")&&d.isModeActive("select")||this.$(".check").attr("tabindex","0"))},deselect:function(a,b){var c=this.options.selection;!c||b&&b!==c||this.$el.removeClass("selected").attr("aria-checked",!1).find(".check").attr("tabindex","-1")},details:function(a,b){var c,d=this.options.selection;d===b&&(c=d.single(),this.$el.toggleClass("details",c===this.model))},preventDefault:function(a){a.preventDefault()},imageSize:function(a){var c=this.model.get("sizes");return a=a||"medium",c&&c[a]?b.clone(c[a]):{url:this.model.get("url"),width:this.model.get("width"),height:this.model.get("height"),orientation:this.model.get("orientation")}},updateSetting:function(b){var c,d,e=a(b.target).closest("[data-setting]");e.length&&(c=e.data("setting"),d=b.target.value,this.model.get(c)!==d&&this.save(c,d))},save:function(){var b=this,c=this._save=this._save||{status:"ready"},d=this.model.save.apply(this.model,arguments),e=c.requests?a.when(d,c.requests):d;c.savedTimer&&clearTimeout(c.savedTimer),this.updateSave("waiting"),c.requests=e,e.always(function(){c.requests===e&&(b.updateSave("resolved"===e.state()?"complete":"error"),c.savedTimer=setTimeout(function(){b.updateSave("ready"),delete c.savedTimer},2e3))})},updateSave:function(a){var b=this._save=this._save||{status:"ready"};return a&&a!==b.status&&(this.$el.removeClass("save-"+b.status),b.status=a),this.$el.addClass("save-"+b.status),this},updateAll:function(){var c,d=this.$("[data-setting]"),e=this.model;c=b.chain(d).map(function(b){var c,d,f=a("input, textarea, select, [value]",b);if(f.length)return c=a(b).data("setting"),d=f.val(),e.get(c)!==d?[c,d]:void 0}).compact().object().value(),b.isEmpty(c)||e.save(c)},removeFromLibrary:function(a){a.stopPropagation(),this.collection.remove(this.model)},checkClickHandler:function(a){var b=this.options.selection;b&&(a.stopPropagation(),b.where({id:this.model.get("id")}).length?(b.remove(this.model),this.$el.focus()):b.add(this.model))}}),b.each({caption:"_syncCaption",title:"_syncTitle",artist:"_syncArtist",album:"_syncAlbum"},function(a,b){d.view.Attachment.prototype[a]=function(a,c){var d=this.$('[data-setting="'+b+'"]');return d.length?c===d.find("input, textarea, select, [value]").val()?this:this.render():this}}),d.view.Attachment.Library=d.view.Attachment.extend({buttons:{check:!0}}),d.view.Attachment.EditLibrary=d.view.Attachment.extend({buttons:{close:!0}}),d.view.Attachments=d.View.extend({tagName:"ul",className:"attachments",attributes:{tabIndex:-1},initialize:function(){this.el.id=b.uniqueId("__attachments-view-"),b.defaults(this.options,{refreshSensitivity:e?300:200,refreshThreshold:3,AttachmentView:d.view.Attachment,sortable:!1,resize:!0,idealColumnWidth:a(window).width()<640?135:150}),this._viewsByCid={},this.$window=a(window),this.resizeEvent="resize.media-modal-columns",this.collection.on("add",function(a){this.views.add(this.createAttachmentView(a),{at:this.collection.indexOf(a)})},this),this.collection.on("remove",function(a){var b=this._viewsByCid[a.cid];delete this._viewsByCid[a.cid],b&&b.remove()},this),this.collection.on("reset",this.render,this),this.listenTo(this.controller,"library:selection:add",this.attachmentFocus),this.scroll=b.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.options.scrollElement=this.options.scrollElement||this.el,a(this.options.scrollElement).on("scroll",this.scroll),this.initSortable(),b.bindAll(this,"setColumns"),this.options.resize&&(this.on("ready",this.bindEvents),this.controller.on("open",this.setColumns),b.defer(this.setColumns,this))},bindEvents:function(){this.$window.off(this.resizeEvent).on(this.resizeEvent,b.debounce(this.setColumns,50))},attachmentFocus:function(){this.$("li:first").focus()},restoreFocus:function(){this.$("li.selected:first").focus()},arrowEvent:function(a){var b=this.$el.children("li"),c=this.columns,d=b.filter(":focus").index(),e=c>=d+1?1:Math.ceil((d+1)/c);if(-1!==d){if(37===a.keyCode){if(0===d)return;b.eq(d-1).focus()}if(38===a.keyCode){if(1===e)return;b.eq(d-c).focus()}if(39===a.keyCode){if(b.length===d)return;b.eq(d+1).focus()}if(40===a.keyCode){if(Math.ceil(b.length/c)===e)return;b.eq(d+c).focus()}}},dispose:function(){this.collection.props.off(null,null,this),this.options.resize&&this.$window.off(this.resizeEvent),d.View.prototype.dispose.apply(this,arguments)},setColumns:function(){var a=this.columns,b=this.$el.width();b&&(this.columns=Math.min(Math.round(b/this.options.idealColumnWidth),12)||1,a&&a===this.columns||this.$el.closest(".media-frame-content").attr("data-columns",this.columns))},initSortable:function(){var c=this.collection;!e&&this.options.sortable&&a.fn.sortable&&(this.$el.sortable(b.extend({disabled:!!c.comparator,containment:this.$el,tolerance:"pointer",start:function(a,b){b.item.data("sortableIndexStart",b.item.index())},update:function(a,b){var d=c.at(b.item.data("sortableIndexStart")),e=c.comparator;delete c.comparator,c.remove(d,{silent:!0}),c.add(d,{silent:!0,at:b.item.index()}),c.comparator=e,c.trigger("reset",c),c.saveMenuOrder()}},this.options.sortable)),c.props.on("change:orderby",function(){this.$el.sortable("option","disabled",!!c.comparator)},this),this.collection.props.on("change:orderby",this.refreshSortable,this),this.refreshSortable())},refreshSortable:function(){if(!e&&this.options.sortable&&a.fn.sortable){var b=this.collection,c=b.props.get("orderby"),d="menuOrder"===c||!b.comparator;this.$el.sortable("option","disabled",!d)
+}},createAttachmentView:function(a){var b=new this.options.AttachmentView({controller:this.controller,model:a,collection:this.collection,selection:this.options.selection});return this._viewsByCid[a.cid]=b},prepare:function(){this.collection.length?this.views.set(this.collection.map(this.createAttachmentView,this)):(this.views.unset(),this.collection.more().done(this.scroll))},ready:function(){this.scroll()},scroll:function(){var b,c=this,d=this.options.scrollElement,e=d.scrollTop;d==document&&(d=document.body,e=a(document).scrollTop()),a(d).is(":visible")&&this.collection.hasMore()&&(b=this.views.parent.toolbar,d.scrollHeight-(e+d.clientHeight)<d.clientHeight/3&&b.get("spinner").show(),d.scrollHeight<e+d.clientHeight*this.options.refreshThreshold&&this.collection.more().done(function(){c.scroll(),b.get("spinner").hide()}))}}),d.view.Search=d.View.extend({tagName:"input",className:"search",id:"media-search-input",attributes:{type:"search",placeholder:c.search},events:{input:"search",keyup:"search",change:"search",search:"search"},render:function(){return this.el.value=this.model.escape("search"),this},search:function(a){a.target.value?this.model.set("search",a.target.value):this.model.unset("search")}}),d.view.AttachmentFilters=d.View.extend({tagName:"select",className:"attachment-filters",id:"media-attachment-filters",events:{change:"change"},keys:[],initialize:function(){this.createFilters(),b.extend(this.filters,this.options.filters),this.$el.html(b.chain(this.filters).map(function(b,c){return{el:a("<option></option>").val(c).html(b.text)[0],priority:b.priority||50}},this).sortBy("priority").pluck("el").value()),this.model.on("change",this.select,this),this.select()},createFilters:function(){this.filters={}},change:function(){var a=this.filters[this.el.value];a&&this.model.set(a.props)},select:function(){var a=this.model,c="all",d=a.toJSON();b.find(this.filters,function(a,e){var f=b.all(a.props,function(a,c){return a===(b.isUndefined(d[c])?null:d[c])});return f?c=e:void 0}),this.$el.val(c)}}),d.view.AttachmentFilters.Uploaded=d.view.AttachmentFilters.extend({createFilters:function(){var a,b=this.model.get("type"),e=d.view.settings.mimeTypes;e&&b&&(a=e[b]),this.filters={all:{text:a||c.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC"},priority:10},uploaded:{text:c.uploadedToThisPost,props:{uploadedTo:d.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}}}}),d.view.AttachmentFilters.All=d.view.AttachmentFilters.extend({createFilters:function(){var a={};b.each(d.view.settings.mimeTypes||{},function(b,c){a[c]={text:b,props:{status:null,type:c,uploadedTo:null,orderby:"date",order:"DESC"}}}),a.all={text:c.allMediaItems,props:{status:null,type:null,uploadedTo:null,orderby:"date",order:"DESC"},priority:10},d.view.settings.post.id&&(a.uploaded={text:c.uploadedToThisPost,props:{status:null,type:null,uploadedTo:d.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}),a.unattached={text:c.unattached,props:{status:null,uploadedTo:0,type:null,orderby:"menuOrder",order:"ASC"},priority:50},d.view.settings.mediaTrash&&this.controller.isModeActive("grid")&&(a.trash={text:c.trash,props:{uploadedTo:null,status:"trash",type:null,orderby:"date",order:"DESC"},priority:50}),this.filters=a}}),d.view.AttachmentsBrowser=d.View.extend({tagName:"div",className:"attachments-browser",initialize:function(){b.defaults(this.options,{filters:!1,search:!0,display:!1,sidebar:!0,AttachmentView:d.view.Attachment.Library}),this.listenTo(this.controller,"toggle:upload:attachment",b.bind(this.toggleUploader,this)),this.createToolbar(),this.options.sidebar&&this.createSidebar(),this.createUploader(),this.createAttachments(),this.updateContent(),this.options.sidebar&&"errors"!==this.options.sidebar||(this.$el.addClass("hide-sidebar"),"errors"===this.options.sidebar&&this.$el.addClass("sidebar-for-errors")),this.collection.on("add remove reset",this.updateContent,this)},dispose:function(){return this.options.selection.off(null,null,this),d.View.prototype.dispose.apply(this,arguments),this},createToolbar:function(){var b,e,f;f={controller:this.controller},this.controller.isModeActive("grid")&&(f.className="media-toolbar wp-filter"),this.toolbar=new d.view.Toolbar(f),this.views.add(this.toolbar),this.toolbar.set("spinner",new d.view.Spinner({priority:-60})),-1!==a.inArray(this.options.filters,["uploaded","all"])&&(this.toolbar.set("filtersLabel",new d.view.Label({value:c.filterByType,attributes:{"for":"media-attachment-filters"},priority:-80}).render()),"uploaded"===this.options.filters?this.toolbar.set("filters",new d.view.AttachmentFilters.Uploaded({controller:this.controller,model:this.collection.props,priority:-80}).render()):(e=new d.view.AttachmentFilters.All({controller:this.controller,model:this.collection.props,priority:-80}),this.toolbar.set("filters",e.render()))),this.controller.isModeActive("grid")&&(b=d.View.extend({className:"view-switch media-grid-view-switch",template:d.template("media-library-view-switcher")}),this.toolbar.set("libraryViewSwitcher",new b({controller:this.controller,priority:-90}).render()),this.toolbar.set("dateFilterLabel",new d.view.Label({value:c.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new d.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render()),this.toolbar.set("selectModeToggleButton",new d.view.SelectModeToggleButton({text:c.bulkSelect,controller:this.controller,priority:-70}).render()),this.toolbar.set("deleteSelectedButton",new d.view.DeleteSelectedButton({filters:e,style:"primary",disabled:!0,text:d.view.settings.mediaTrash?c.trashSelected:c.deleteSelected,controller:this.controller,priority:-60,click:function(){var b,e=[],f=this,g=this.controller.state().get("selection"),h=this.controller.state().get("library");if(g.length&&(d.view.settings.mediaTrash||confirm(c.warnBulkDelete))&&(!d.view.settings.mediaTrash||"trash"===g.at(0).get("status")||confirm(c.warnBulkTrash))){for(;g.length>0;)b=g.at(0),d.view.settings.mediaTrash&&"trash"===b.get("status")?(b.set("status","inherit"),e.push(b.save()),g.remove(b)):d.view.settings.mediaTrash?(b.set("status","trash"),e.push(b.save()),g.remove(b)):b.destroy();e.length?a.when.apply(null,e).then(function(){h._requery(!0),f.controller.trigger("selection:action:done")}):this.controller.trigger("selection:action:done")}}}).render())),this.options.search&&(this.toolbar.set("searchLabel",new d.view.Label({value:c.searchMediaLabel,attributes:{"for":"media-search-input"},priority:60}).render()),this.toolbar.set("search",new d.view.Search({controller:this.controller,model:this.collection.props,priority:60}).render())),this.options.dragInfo&&this.toolbar.set("dragInfo",new d.View({el:a('<div class="instructions">'+c.dragInfo+"</div>")[0],priority:-40})),this.options.suggestedWidth&&this.options.suggestedHeight&&this.toolbar.set("suggestedDimensions",new d.View({el:a('<div class="instructions">'+c.suggestedDimensions+" "+this.options.suggestedWidth+" &times; "+this.options.suggestedHeight+"</div>")[0],priority:-40}))},updateContent:function(){var a,b=this;a=this.controller.isModeActive("grid")?b.attachmentsNoResults:b.uploader,this.collection.length?(a.$el.addClass("hidden"),b.toolbar.get("spinner").hide()):(this.toolbar.get("spinner").show(),this.dfd=this.collection.more().done(function(){b.collection.length?a.$el.addClass("hidden"):a.$el.removeClass("hidden"),b.toolbar.get("spinner").hide()}))},createUploader:function(){this.uploader=new d.view.UploaderInline({controller:this.controller,status:!1,message:this.controller.isModeActive("grid")?"":c.noItemsFound,canClose:this.controller.isModeActive("grid")}),this.uploader.hide(),this.views.add(this.uploader)},toggleUploader:function(){this.uploader.$el.hasClass("hidden")?this.uploader.show():this.uploader.hide()},createAttachments:function(){this.attachments=new d.view.Attachments({controller:this.controller,collection:this.collection,selection:this.options.selection,model:this.model,sortable:this.options.sortable,scrollElement:this.options.scrollElement,idealColumnWidth:this.options.idealColumnWidth,AttachmentView:this.options.AttachmentView}),this.attachments.listenTo(this.controller,"attachment:keydown:arrow",this.attachments.arrowEvent),this.attachments.listenTo(this.controller,"attachment:details:shift-tab",this.attachments.restoreFocus),this.views.add(this.attachments),this.controller.isModeActive("grid")&&(this.attachmentsNoResults=new d.View({controller:this.controller,tagName:"p"}),this.attachmentsNoResults.$el.addClass("hidden no-media"),this.attachmentsNoResults.$el.html(c.noMedia),this.views.add(this.attachmentsNoResults))},createSidebar:function(){var a=this.options,b=a.selection,c=this.sidebar=new d.view.Sidebar({controller:this.controller});this.views.add(c),this.controller.uploader&&c.set("uploads",new d.view.UploaderStatus({controller:this.controller,priority:40})),b.on("selection:single",this.createSingle,this),b.on("selection:unsingle",this.disposeSingle,this),b.single()&&this.createSingle()},createSingle:function(){var a=this.sidebar,b=this.options.selection.single();a.set("details",new d.view.Attachment.Details({controller:this.controller,model:b,priority:80})),a.set("compat",new d.view.AttachmentCompat({controller:this.controller,model:b,priority:120})),this.options.display&&a.set("display",new d.view.Settings.AttachmentDisplay({controller:this.controller,model:this.model.display(b),attachment:b,priority:160,userSettings:this.model.get("displayUserSettings")})),"insert"===this.model.id&&a.$el.addClass("visible")},disposeSingle:function(){var a=this.sidebar;a.unset("details"),a.unset("compat"),a.unset("display"),a.$el.removeClass("visible")}}),d.view.Selection=d.View.extend({tagName:"div",className:"media-selection",template:d.template("media-selection"),events:{"click .edit-selection":"edit","click .clear-selection":"clear"},initialize:function(){b.defaults(this.options,{editable:!1,clearable:!0}),this.attachments=new d.view.Attachments.Selection({controller:this.controller,collection:this.collection,selection:this.collection,model:new Backbone.Model}),this.views.set(".selection-view",this.attachments),this.collection.on("add remove reset",this.refresh,this),this.controller.on("content:activate",this.refresh,this)},ready:function(){this.refresh()},refresh:function(){if(this.$el.children().length){var a=this.collection,b="edit-selection"===this.controller.content.mode();this.$el.toggleClass("empty",!a.length),this.$el.toggleClass("one",1===a.length),this.$el.toggleClass("editing",b),this.$(".count").text(c.selected.replace("%d",a.length))}},edit:function(a){a.preventDefault(),this.options.editable&&this.options.editable.call(this,this.collection)},clear:function(a){a.preventDefault(),this.collection.reset(),this.controller.modal.focusManager.focus()}}),d.view.Attachment.Selection=d.view.Attachment.extend({className:"attachment selection",toggleSelection:function(){this.options.selection.single(this.model)}}),d.view.Attachments.Selection=d.view.Attachments.extend({events:{},initialize:function(){return b.defaults(this.options,{sortable:!0,resize:!1,AttachmentView:d.view.Attachment.Selection}),d.view.Attachments.prototype.initialize.apply(this,arguments)}}),d.view.Attachment.EditSelection=d.view.Attachment.Selection.extend({buttons:{close:!0}}),d.view.Settings=d.View.extend({events:{"click button":"updateHandler","change input":"updateHandler","change select":"updateHandler","change textarea":"updateHandler"},initialize:function(){this.model=this.model||new Backbone.Model,this.model.on("change",this.updateChanges,this)},prepare:function(){return b.defaults({model:this.model.toJSON()},this.options)},render:function(){return d.View.prototype.render.apply(this,arguments),b(this.model.attributes).chain().keys().each(this.update,this),this},update:function(a){var b,c,d=this.model.get(a),e=this.$('[data-setting="'+a+'"]');e.length&&(e.is("select")?(c=e.find('[value="'+d+'"]'),c.length?(e.find("option").prop("selected",!1),c.prop("selected",!0)):this.model.set(a,e.find(":selected").val())):e.hasClass("button-group")?(b=e.find("button").removeClass("active"),b.filter('[value="'+d+'"]').addClass("active")):e.is('input[type="text"], textarea')?e.is(":focus")||e.val(d):e.is('input[type="checkbox"]')&&e.prop("checked",!!d&&"false"!==d))},updateHandler:function(b){var c,d=a(b.target).closest("[data-setting]"),e=b.target.value;b.preventDefault(),d.length&&(d.is('input[type="checkbox"]')&&(e=d[0].checked),this.model.set(d.data("setting"),e),(c=d.data("userSetting"))&&setUserSetting(c,e))},updateChanges:function(a){a.hasChanged()&&b(a.changed).chain().keys().each(this.update,this)}}),d.view.Settings.AttachmentDisplay=d.view.Settings.extend({className:"attachment-display-settings",template:d.template("attachment-display-settings"),initialize:function(){var a=this.options.attachment;b.defaults(this.options,{userSettings:!1}),d.view.Settings.prototype.initialize.apply(this,arguments),this.model.on("change:link",this.updateLinkTo,this),a&&a.on("change:uploading",this.render,this)},dispose:function(){var a=this.options.attachment;a&&a.off(null,null,this),d.view.Settings.prototype.dispose.apply(this,arguments)},render:function(){var a=this.options.attachment;return a&&b.extend(this.options,{sizes:a.get("sizes"),type:a.get("type")}),d.view.Settings.prototype.render.call(this),this.updateLinkTo(),this},updateLinkTo:function(){var a=this.model.get("link"),b=this.$(".link-to-custom"),c=this.options.attachment;return"none"===a||"embed"===a||!c&&"custom"!==a?void b.addClass("hidden"):(c&&("post"===a?b.val(c.get("link")):"file"===a?b.val(c.get("url")):this.model.get("linkUrl")||b.val("http://"),b.prop("readonly","custom"!==a)),b.removeClass("hidden"),void(!e&&b.is(":visible")&&b.focus()[0].select()))}}),d.view.Settings.Gallery=d.view.Settings.extend({className:"collection-settings gallery-settings",template:d.template("gallery-settings")}),d.view.Settings.Playlist=d.view.Settings.extend({className:"collection-settings playlist-settings",template:d.template("playlist-settings")}),d.view.Attachment.Details=d.view.Attachment.extend({tagName:"div",className:"attachment-details",template:d.template("attachment-details"),events:{"change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .delete-attachment":"deleteAttachment","click .trash-attachment":"trashAttachment","click .untrash-attachment":"untrashAttachment","click .edit-attachment":"editAttachment","click .refresh-attachment":"refreshAttachment",keydown:"toggleSelectionHandler"},initialize:function(){this.options=b.defaults(this.options,{rerenderOnModelChange:!1}),this.on("ready",this.initialFocus),d.view.Attachment.prototype.initialize.apply(this,arguments)},initialFocus:function(){e||this.$(":input").eq(0).focus()},deleteAttachment:function(a){a.preventDefault(),confirm(c.warnDelete)&&(this.model.destroy(),this.controller.modal.focusManager.focus())},trashAttachment:function(a){var b=this.controller.library;a.preventDefault(),d.view.settings.mediaTrash&&"edit-metadata"===this.controller.content.mode()?(this.model.set("status","trash"),this.model.save().done(function(){b._requery(!0)})):this.model.destroy()},untrashAttachment:function(a){var b=this.controller.library;a.preventDefault(),this.model.set("status","inherit"),this.model.save().done(function(){b._requery(!0)})},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b?(a.preventDefault(),b.set("image",this.model),this.controller.setState("edit-image")):this.$el.addClass("needs-refresh")},refreshAttachment:function(a){this.$el.removeClass("needs-refresh"),a.preventDefault(),this.model.fetch()},toggleSelectionHandler:function(a){return"keydown"===a.type&&9===a.keyCode&&a.shiftKey&&a.target===this.$(":tabbable").get(0)?(this.controller.trigger("attachment:details:shift-tab",a),!1):37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode?void this.controller.trigger("attachment:keydown:arrow",a):void 0}}),d.view.AttachmentCompat=d.View.extend({tagName:"form",className:"compat-item",events:{submit:"preventDefault","change input":"save","change select":"save","change textarea":"save"},initialize:function(){this.model.on("change:compat",this.render,this)},dispose:function(){return this.$(":focus").length&&this.save(),d.View.prototype.dispose.apply(this,arguments)},render:function(){var a=this.model.get("compat");if(a&&a.item)return this.views.detach(),this.$el.html(a.item),this.views.render(),this},preventDefault:function(a){a.preventDefault()},save:function(a){var c={};a&&a.preventDefault(),b.each(this.$el.serializeArray(),function(a){c[a.name]=a.value}),this.model.saveCompat(c)}}),d.view.Iframe=d.View.extend({className:"media-iframe",render:function(){return this.views.detach(),this.$el.html('<iframe src="'+this.controller.state().get("src")+'" />'),this.views.render(),this}}),d.view.Embed=d.View.extend({className:"media-embed",initialize:function(){this.url=new d.view.EmbedUrl({controller:this.controller,model:this.model.props}).render(),this.views.set([this.url]),this.refresh(),this.model.on("change:type",this.refresh,this),this.model.on("change:loading",this.loading,this)},settings:function(a){this._settings&&this._settings.remove(),this._settings=a,this.views.add(a)},refresh:function(){var a,b=this.model.get("type");if("image"===b)a=d.view.EmbedImage;else{if("link"!==b)return;a=d.view.EmbedLink}this.settings(new a({controller:this.controller,model:this.model.props,priority:40}))},loading:function(){this.$el.toggleClass("embed-loading",this.model.get("loading"))}}),d.view.Label=d.View.extend({tagName:"label",className:"screen-reader-text",initialize:function(){this.value=this.options.value},render:function(){return this.$el.html(this.value),this}}),d.view.EmbedUrl=d.View.extend({tagName:"label",className:"embed-url",events:{input:"url",keyup:"url",change:"url"},initialize:function(){var c=this;this.$input=a('<input id="embed-url-field" type="url" />').val(this.model.get("url")),this.input=this.$input[0],this.spinner=a('<span class="spinner" />')[0],this.$el.append([this.input,this.spinner]),this.model.on("change:url",this.render,this),this.model.get("url")&&b.delay(function(){c.model.trigger("change:url")},500)},render:function(){var a=this.$input;if(!a.is(":focus"))return this.input.value=this.model.get("url")||"http://",d.View.prototype.render.apply(this,arguments),this},ready:function(){e||this.focus()},url:function(a){this.model.set("url",a.target.value)},focus:function(){var a=this.$input;a.is(":visible")&&a.focus()[0].select()}}),d.view.EmbedLink=d.view.Settings.extend({className:"embed-link-settings",template:d.template("embed-link-settings"),initialize:function(){this.spinner=a('<span class="spinner" />'),this.$el.append(this.spinner[0]),this.listenTo(this.model,"change:url",this.updateoEmbed)},updateoEmbed:function(){var a=this.model.get("url");this.$(".setting.title").show(),this.$(".embed-container").hide().find(".embed-preview").html(""),a&&a.length<6||(this.spinner.show(),setTimeout(b.bind(this.fetch,this),500))},fetch:function(){a("#embed-url-field").val()===this.model.get("url")&&wp.ajax.send("parse-embed",{data:{post_ID:d.view.settings.post.id,shortcode:"[embed]"+this.model.get("url")+"[/embed]"}}).done(b.bind(this.renderoEmbed,this))},renderoEmbed:function(a){var b=a&&a.body||"";this.spinner.hide(),this.$(".setting.title").hide(),this.$(".embed-container").show().find(".embed-preview").html(b)}}),d.view.EmbedImage=d.view.Settings.AttachmentDisplay.extend({className:"embed-media-settings",template:d.template("embed-image-settings"),initialize:function(){d.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments),this.model.on("change:url",this.updateImage,this)},updateImage:function(){this.$("img").attr("src",this.model.get("url"))}}),d.view.ImageDetails=d.view.Settings.AttachmentDisplay.extend({className:"image-details",template:d.template("image-details"),events:b.defaults(d.view.Settings.AttachmentDisplay.prototype.events,{"click .edit-attachment":"editAttachment","click .replace-attachment":"replaceAttachment","click .advanced-toggle":"onToggleAdvanced",'change [data-setting="customWidth"]':"onCustomSize",'change [data-setting="customHeight"]':"onCustomSize",'keyup [data-setting="customWidth"]':"onCustomSize",'keyup [data-setting="customHeight"]':"onCustomSize"}),initialize:function(){this.options.attachment=this.model.attachment,this.listenTo(this.model,"change:url",this.updateUrl),this.listenTo(this.model,"change:link",this.toggleLinkSettings),this.listenTo(this.model,"change:size",this.toggleCustomSize),d.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments)},prepare:function(){var a=!1;return this.model.attachment&&(a=this.model.attachment.toJSON()),b.defaults({model:this.model.toJSON(),attachment:a},this.options)},render:function(){var a=this,b=arguments;return this.model.attachment&&"pending"===this.model.dfd.state()?this.model.dfd.done(function(){d.view.Settings.AttachmentDisplay.prototype.render.apply(a,b),a.postRender()}).fail(function(){a.model.attachment=!1,d.view.Settings.AttachmentDisplay.prototype.render.apply(a,b),a.postRender()}):(d.view.Settings.AttachmentDisplay.prototype.render.apply(this,arguments),this.postRender()),this},postRender:function(){setTimeout(b.bind(this.resetFocus,this),10),this.toggleLinkSettings(),"show"===getUserSetting("advImgDetails")&&this.toggleAdvanced(!0),this.trigger("post-render")},resetFocus:function(){this.$(".link-to-custom").blur(),this.$(".embed-media-settings").scrollTop(0)},updateUrl:function(){this.$(".image img").attr("src",this.model.get("url")),this.$(".url").val(this.model.get("url"))},toggleLinkSettings:function(){"none"===this.model.get("link")?this.$(".link-settings").addClass("hidden"):this.$(".link-settings").removeClass("hidden")},toggleCustomSize:function(){"custom"!==this.model.get("size")?this.$(".custom-size").addClass("hidden"):this.$(".custom-size").removeClass("hidden")},onCustomSize:function(b){var c,d=a(b.target).data("setting"),e=a(b.target).val();return!/^\d+/.test(e)||parseInt(e,10)<1?void b.preventDefault():void("customWidth"===d?(c=Math.round(1/this.model.get("aspectRatio")*e),this.model.set("customHeight",c,{silent:!0}),this.$('[data-setting="customHeight"]').val(c)):(c=Math.round(this.model.get("aspectRatio")*e),this.model.set("customWidth",c,{silent:!0}),this.$('[data-setting="customWidth"]').val(c)))},onToggleAdvanced:function(a){a.preventDefault(),this.toggleAdvanced()},toggleAdvanced:function(a){var b,c=this.$el.find(".advanced-section");c.hasClass("advanced-visible")||a===!1?(c.removeClass("advanced-visible"),c.find(".advanced-settings").addClass("hidden"),b="hide"):(c.addClass("advanced-visible"),c.find(".advanced-settings").removeClass("hidden"),b="show"),setUserSetting("advImgDetails",b)},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b&&(a.preventDefault(),b.set("image",this.model.attachment),this.controller.setState("edit-image"))},replaceAttachment:function(a){a.preventDefault(),this.controller.setState("replace-image")}}),d.view.Cropper=d.View.extend({className:"crop-content",template:d.template("crop-content"),initialize:function(){b.bindAll(this,"onImageLoad")},ready:function(){this.controller.frame.on("content:error:crop",this.onError,this),this.$image=this.$el.find(".crop-image"),this.$image.on("load",this.onImageLoad),a(window).on("resize.cropper",b.debounce(this.onImageLoad,250))},remove:function(){a(window).off("resize.cropper"),this.$el.remove(),this.$el.off(),wp.media.View.prototype.remove.apply(this,arguments)},prepare:function(){return{title:c.cropYourImage,url:this.options.attachment.get("url")}},onImageLoad:function(){var a=this.controller.get("imgSelectOptions");"function"==typeof a&&(a=a(this.options.attachment,this.controller)),a=b.extend(a,{parent:this.$el}),this.trigger("image-loaded"),this.controller.imgSelect=this.$image.imgAreaSelect(a)},onError:function(){var a=this.options.attachment.get("filename");this.views.add(".upload-errors",new d.view.UploaderStatusError({filename:d.view.UploaderStatus.prototype.filename(a),message:_wpMediaViewsL10n.cropError}),{at:0})}}),d.view.EditImage=d.View.extend({className:"image-editor",template:d.template("image-editor"),initialize:function(a){this.editor=window.imageEdit,this.controller=a.controller,d.View.prototype.initialize.apply(this,arguments)},prepare:function(){return this.model.toJSON()},render:function(){return d.View.prototype.render.apply(this,arguments),this},loadEditor:function(){var a=this.editor.open(this.model.get("id"),this.model.get("nonces").edit,this);a.done(b.bind(this.focus,this))},focus:function(){this.$(".imgedit-submit .button").eq(0).focus()},back:function(){var a=this.controller.lastState();this.controller.setState(a)},refresh:function(){this.model.fetch()},save:function(){var a=this,b=this.controller.lastState();this.model.fetch().done(function(){a.controller.setState(b)})}}),d.view.Spinner=d.View.extend({tagName:"span",className:"spinner",spinnerTimeout:!1,delay:400,show:function(){return this.spinnerTimeout||(this.spinnerTimeout=b.delay(function(a){a.show()},this.delay,this.$el)),this},hide:function(){return this.$el.hide(),this.spinnerTimeout=clearTimeout(this.spinnerTimeout),this}})}(jQuery,_);
\ No newline at end of file
index c2f62bbc0d426c68f7d482c3ad6f459280b725fa..cae6814884fd075b73118adde47d0dbe0bbbcc9b 100644 (file)
@@ -1 +1 @@
-<?xml version="1.0" standalone="no"?>\r<!-- Generator: Adobe Fireworks CS6, Export SVG Extension by Aaron Beall (http://fireworks.abeall.com) . Version: 0.6.1  -->\r<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r<svg id="bigplay-gradient.fw-Page%201" viewBox="0 0 100 200" style="background-color:#ffffff00" version="1.1"\r   xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"\r     x="0px" y="0px" width="100px" height="200px"\r>\r <defs>\r         <radialGradient id="gradient1" cx="50%" cy="50%" r="50%">\r                      <stop stop-color="#222222" stop-opacity="0" offset="70%"/>\r                     <stop stop-color="#222222" stop-opacity="0.0118" offset="70.202%"/>\r                    <stop stop-color="#333333" stop-opacity="1" offset="85%"/>\r                     <stop stop-color="#333333" stop-opacity="0" offset="100%"/>\r            </radialGradient>\r              <radialGradient id="gradient2" cx="50%" cy="50%" r="50%">\r                      <stop stop-color="#bbbbbb" stop-opacity="0" offset="70%"/>\r                     <stop stop-color="#bbbbbb" stop-opacity="0.0118" offset="70.202%"/>\r                    <stop stop-color="#bbbbbb" stop-opacity="1" offset="85%"/>\r                     <stop stop-color="#bbbbbb" stop-opacity="0" offset="100%"/>\r            </radialGradient>\r              <filter id="filter1" x="-100%" y="-100%" width="300%" height="300%">\r                   <!-- Glow -->\r                  <feColorMatrix result="out" in="SourceGraphic" type="matrix" values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.251 0"/>\r                 <feMorphology result="out" in="out" operator="dilate" radius="3"/>\r                     <feGaussianBlur result="out" in="out" stdDeviation="1.5"/>\r                     <feBlend in="SourceGraphic" in2="out" mode="normal" result="Glow1"/>\r           </filter>\r              <filter id="filter2" x="-100%" y="-100%" width="300%" height="300%">\r                   <!-- Glow -->\r                  <feColorMatrix result="out" in="SourceGraphic" type="matrix" values="0 0 0 0.8667 0  0 0 0 0.8667 0  0 0 0 0.8667 0  0 0 0 0.251 0"/>\r                  <feMorphology result="out" in="out" operator="dilate" radius="3"/>\r                     <feGaussianBlur result="out" in="out" stdDeviation="1.5"/>\r                     <feBlend in="SourceGraphic" in2="out" mode="normal" result="Glow2"/>\r           </filter>\r      </defs>\r        <g id="Background">\r    </g>\r   <g id="dark%20shadow">\r         <path d="M 22 50 C 22 34.5358 34.5358 22 50 22 C 65.4642 22 78 34.5358 78 50 C 78 65.4642 65.4642 78 50 78 C 34.5358 78 22 65.4642 22 50 ZM 5 50 C 5 74.8531 25.1469 95 50 95 C 74.8531 95 95 74.8531 95 50 C 95 25.1469 74.8531 5 50 5 C 25.1469 5 5 25.1469 5 50 Z" fill="url(#gradient1)"/>\r         <path d="M 22 150 C 22 134.5358 34.5358 122 50 122 C 65.4642 122 78 134.5358 78 150 C 78 165.4642 65.4642 178 50 178 C 34.5358 178 22 165.4642 22 150 ZM 5 150 C 5 174.8531 25.1469 195 50 195 C 74.8531 195 95 174.8531 95 150 C 95 125.1469 74.8531 105 50 105 C 25.1469 105 5 125.1469 5 150 Z" fill="url(#gradient2)"/>\r    </g>\r   <g id="dark">\r          <path id="Polygon" filter="url(#filter1)" d="M 72.5 49.5 L 38.75 68.9856 L 38.75 30.0144 L 72.5 49.5 Z" fill="#ffffff"/>\r               <path id="Ellipse" d="M 13 50.5 C 13 29.7891 29.7891 13 50.5 13 C 71.2109 13 88 29.7891 88 50.5 C 88 71.2109 71.2109 88 50.5 88 C 29.7891 88 13 71.2109 13 50.5 Z" stroke="#ffffff" stroke-width="5" fill="none"/>\r     </g>\r   <g id="light">\r         <path id="Polygon2" filter="url(#filter2)" d="M 72.5 149.5 L 38.75 168.9856 L 38.75 130.0144 L 72.5 149.5 Z" fill="#ffffff"/>\r          <path id="Ellipse2" d="M 13 150.5 C 13 129.7891 29.7891 113 50.5 113 C 71.2109 113 88 129.7891 88 150.5 C 88 171.211 71.2109 188 50.5 188 C 29.7891 188 13 171.211 13 150.5 Z" stroke="#ffffff" stroke-width="5" fill="none"/>\r </g>\r</svg>
\ No newline at end of file
+<?xml version="1.0" standalone="no"?>\r<svg id="bigplay" viewBox="0 0 100 200" style="background-color:#ffffff00" version="1.1"\r        xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"\r     x="0px" y="0px" width="100px" height="200px"\r>\r <g id="dark">\r          <path id="Polygon"  d="M 72.5 49.5 L 38.75 68.9856 L 38.75 30.0144 L 72.5 49.5 Z" fill="#ffffff" opacity="0.75" />\r             <path id="Ellipse" d="M 13 50.5 C 13 29.7891 29.7891 13 50.5 13 C 71.2109 13 88 29.7891 88 50.5 C 88 71.2109 71.2109 88 50.5 88 C 29.7891 88 13 71.2109 13 50.5 Z" stroke="#ffffff" stroke-width="5" fill="none" opacity="0.75"/>\r      </g>\r   <g id="light">\r         <path id="Polygon2"  d="M 72.5 149.5 L 38.75 168.9856 L 38.75 130.0144 L 72.5 149.5 Z" fill="#ffffff" opacity="1.0" />\r         <path id="Ellipse2" d="M 13 150.5 C 13 129.7891 29.7891 113 50.5 113 C 71.2109 113 88 129.7891 88 150.5 C 88 171.211 71.2109 188 50.5 188 C 29.7891 188 13 171.211 13 150.5 Z" stroke="#ffffff" stroke-width="5" fill="none" opacity="1.0"/>\r   </g>\r</svg>
\ No newline at end of file
index 2a5cb8da778c1659dbf164ce9d5fb19d246e20d6..528cc791d011b82ed61d61ad252efc98ec236f9b 100644 (file)
Binary files a/wp-includes/js/mediaelement/flashmediaelement.swf and b/wp-includes/js/mediaelement/flashmediaelement.swf differ
index 131fedc7476ea9e85f04f6659b177b938d76d12a..5916bfd14ae06b639df1e8dc69d752a615f9ba79 100644 (file)
@@ -10,9 +10,9 @@
 * Copyright 2010-2014, John Dyer (http://j.hn)
 * License: MIT
 *
 * Copyright 2010-2014, John Dyer (http://j.hn)
 * License: MIT
 *
-*/var mejs=mejs||{};mejs.version="2.14.2";mejs.meIndex=0;
-mejs.plugins={silverlight:[{version:[3,0],types:["video/mp4","video/m4v","video/mov","video/wmv","audio/wma","audio/m4a","audio/mp3","audio/wav","audio/mpeg"]}],flash:[{version:[9,0,124],types:["video/mp4","video/m4v","video/mov","video/flv","video/rtmp","video/x-flv","audio/flv","audio/x-flv","audio/mp3","audio/m4a","audio/mpeg","video/youtube","video/x-youtube"]}],youtube:[{version:null,types:["video/youtube","video/x-youtube","audio/youtube","audio/x-youtube"]}],vimeo:[{version:null,types:["video/vimeo",
-"video/x-vimeo"]}]};
+*/var mejs=mejs||{};mejs.version="2.15.0";mejs.meIndex=0;
+mejs.plugins={silverlight:[{version:[3,0],types:["video/mp4","video/m4v","video/mov","video/wmv","audio/wma","audio/m4a","audio/mp3","audio/wav","audio/mpeg"]}],flash:[{version:[9,0,124],types:["video/mp4","video/m4v","video/mov","video/flv","video/rtmp","video/x-flv","audio/flv","audio/x-flv","audio/mp3","audio/m4a","audio/mpeg","video/youtube","video/x-youtube","application/x-mpegURL"]}],youtube:[{version:null,types:["video/youtube","video/x-youtube","audio/youtube","audio/x-youtube"]}],vimeo:[{version:null,
+types:["video/vimeo","video/x-vimeo"]}]};
 mejs.Utility={encodeUrl:function(a){return encodeURIComponent(a)},escapeHTML:function(a){return a.toString().split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")},absolutizeUrl:function(a){var b=document.createElement("div");b.innerHTML='<a href="'+this.escapeHTML(a)+'">x</a>';return b.firstChild.href},getScriptPath:function(a){for(var b=0,c,d="",e="",g,f,i=document.getElementsByTagName("script"),k=i.length,h=a.length;b<k;b++){g=i[b].src;c=g.lastIndexOf("/");if(c>-1){f=g.substring(c+
 1);g=g.substring(0,c+1)}else{f=g;g=""}for(c=0;c<h;c++){e=a[c];e=f.indexOf(e);if(e>-1){d=g;break}}if(d!=="")break}return d},secondsToTimeCode:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d=="undefined")d=25;var e=Math.floor(a/3600)%24,g=Math.floor(a/60)%60,f=Math.floor(a%60);a=Math.floor((a%1*d).toFixed(3));return(b||e>0?(e<10?"0"+e:e)+":":"")+(g<10?"0"+g:g)+":"+(f<10?"0"+f:f)+(c?":"+(a<10?"0"+a:a):"")},timeCodeToSeconds:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d==
 "undefined")d=25;a=a.split(":");b=parseInt(a[0],10);var e=parseInt(a[1],10),g=parseInt(a[2],10),f=0,i=0;if(c)f=parseInt(a[3])/d;return i=b*3600+e*60+g+f},convertSMPTEtoSeconds:function(a){if(typeof a!="string")return false;a=a.replace(",",".");var b=0,c=a.indexOf(".")!=-1?a.split(".")[1].length:0,d=1;a=a.split(":").reverse();for(var e=0;e<a.length;e++){d=1;if(e>0)d=Math.pow(60,e);b+=Number(a[e])*d}return Number(b.toFixed(c))},removeSwf:function(a){var b=document.getElementById(a);if(b&&/object|embed/i.test(b.nodeName))if(mejs.MediaFeatures.isIE){b.style.display=
 mejs.Utility={encodeUrl:function(a){return encodeURIComponent(a)},escapeHTML:function(a){return a.toString().split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")},absolutizeUrl:function(a){var b=document.createElement("div");b.innerHTML='<a href="'+this.escapeHTML(a)+'">x</a>';return b.firstChild.href},getScriptPath:function(a){for(var b=0,c,d="",e="",g,f,i=document.getElementsByTagName("script"),k=i.length,h=a.length;b<k;b++){g=i[b].src;c=g.lastIndexOf("/");if(c>-1){f=g.substring(c+
 1);g=g.substring(0,c+1)}else{f=g;g=""}for(c=0;c<h;c++){e=a[c];e=f.indexOf(e);if(e>-1){d=g;break}}if(d!=="")break}return d},secondsToTimeCode:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d=="undefined")d=25;var e=Math.floor(a/3600)%24,g=Math.floor(a/60)%60,f=Math.floor(a%60);a=Math.floor((a%1*d).toFixed(3));return(b||e>0?(e<10?"0"+e:e)+":":"")+(g<10?"0"+g:g)+":"+(f<10?"0"+f:f)+(c?":"+(a<10?"0"+a:a):"")},timeCodeToSeconds:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d==
 "undefined")d=25;a=a.split(":");b=parseInt(a[0],10);var e=parseInt(a[1],10),g=parseInt(a[2],10),f=0,i=0;if(c)f=parseInt(a[3])/d;return i=b*3600+e*60+g+f},convertSMPTEtoSeconds:function(a){if(typeof a!="string")return false;a=a.replace(",",".");var b=0,c=a.indexOf(".")!=-1?a.split(".")[1].length:0,d=1;a=a.split(":").reverse();for(var e=0;e<a.length;e++){d=1;if(e>0)d=Math.pow(60,e);b+=Number(a[e])*d}return Number(b.toFixed(c))},removeSwf:function(a){var b=document.getElementById(a);if(b&&/object|embed/i.test(b.nodeName))if(mejs.MediaFeatures.isIE){b.style.display=
@@ -22,19 +22,19 @@ mejs.PluginDetector={hasPluginVersion:function(a,b){var c=this.plugins[a];b[1]=b
 mejs.PluginDetector.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(a){var b=[];if(a=a.GetVariable("$version")){a=a.split(" ")[1].split(",");b=[parseInt(a[0],10),parseInt(a[1],10),parseInt(a[2],10)]}return b});
 mejs.PluginDetector.addPlugin("silverlight","Silverlight Plug-In","application/x-silverlight-2","AgControl.AgControl",function(a){var b=[0,0,0,0],c=function(d,e,g,f){for(;d.isVersionSupported(e[0]+"."+e[1]+"."+e[2]+"."+e[3]);)e[g]+=f;e[g]-=f};c(a,b,0,1);c(a,b,1,1);c(a,b,2,1E4);c(a,b,2,1E3);c(a,b,2,100);c(a,b,2,10);c(a,b,2,1);c(a,b,3,1);return b});
 mejs.MediaFeatures={init:function(){var a=this,b=document,c=mejs.PluginDetector.nav,d=mejs.PluginDetector.ua.toLowerCase(),e,g=["source","track","audio","video"];a.isiPad=d.match(/ipad/i)!==null;a.isiPhone=d.match(/iphone/i)!==null;a.isiOS=a.isiPhone||a.isiPad;a.isAndroid=d.match(/android/i)!==null;a.isBustedAndroid=d.match(/android 2\.[12]/)!==null;a.isBustedNativeHTTPS=location.protocol==="https:"&&(d.match(/android [12]\./)!==null||d.match(/macintosh.* version.* safari/)!==null);a.isIE=c.appName.toLowerCase().indexOf("microsoft")!=
 mejs.PluginDetector.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(a){var b=[];if(a=a.GetVariable("$version")){a=a.split(" ")[1].split(",");b=[parseInt(a[0],10),parseInt(a[1],10),parseInt(a[2],10)]}return b});
 mejs.PluginDetector.addPlugin("silverlight","Silverlight Plug-In","application/x-silverlight-2","AgControl.AgControl",function(a){var b=[0,0,0,0],c=function(d,e,g,f){for(;d.isVersionSupported(e[0]+"."+e[1]+"."+e[2]+"."+e[3]);)e[g]+=f;e[g]-=f};c(a,b,0,1);c(a,b,1,1);c(a,b,2,1E4);c(a,b,2,1E3);c(a,b,2,100);c(a,b,2,10);c(a,b,2,1);c(a,b,3,1);return b});
 mejs.MediaFeatures={init:function(){var a=this,b=document,c=mejs.PluginDetector.nav,d=mejs.PluginDetector.ua.toLowerCase(),e,g=["source","track","audio","video"];a.isiPad=d.match(/ipad/i)!==null;a.isiPhone=d.match(/iphone/i)!==null;a.isiOS=a.isiPhone||a.isiPad;a.isAndroid=d.match(/android/i)!==null;a.isBustedAndroid=d.match(/android 2\.[12]/)!==null;a.isBustedNativeHTTPS=location.protocol==="https:"&&(d.match(/android [12]\./)!==null||d.match(/macintosh.* version.* safari/)!==null);a.isIE=c.appName.toLowerCase().indexOf("microsoft")!=
--1||c.appName.toLowerCase().match(/trident/gi)!==null;a.isChrome=d.match(/chrome/gi)!==null;a.isFirefox=d.match(/firefox/gi)!==null;a.isWebkit=d.match(/webkit/gi)!==null;a.isGecko=d.match(/gecko/gi)!==null&&!a.isWebkit&&!a.isIE;a.isOpera=d.match(/opera/gi)!==null;a.hasTouch="ontouchstart"in window;a.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect;for(c=0;c<g.length;c++)e=document.createElement(g[c]);a.supportsMediaTag=typeof e.canPlayType!==
-"undefined"||a.isBustedAndroid;try{e.canPlayType("video/mp4")}catch(f){a.supportsMediaTag=false}a.hasSemiNativeFullScreen=typeof e.webkitEnterFullscreen!=="undefined";a.hasNativeFullscreen=typeof e.requestFullscreen!=="undefined";a.hasWebkitNativeFullScreen=typeof e.webkitRequestFullScreen!=="undefined";a.hasMozNativeFullScreen=typeof e.mozRequestFullScreen!=="undefined";a.hasMsNativeFullScreen=typeof e.msRequestFullscreen!=="undefined";a.hasTrueNativeFullScreen=a.hasWebkitNativeFullScreen||a.hasMozNativeFullScreen||
-a.hasMsNativeFullScreen;a.nativeFullScreenEnabled=a.hasTrueNativeFullScreen;if(a.hasMozNativeFullScreen)a.nativeFullScreenEnabled=document.mozFullScreenEnabled;else if(a.hasMsNativeFullScreen)a.nativeFullScreenEnabled=document.msFullscreenEnabled;if(a.isChrome)a.hasSemiNativeFullScreen=false;if(a.hasTrueNativeFullScreen){a.fullScreenEventName="";if(a.hasWebkitNativeFullScreen)a.fullScreenEventName="webkitfullscreenchange";else if(a.hasMozNativeFullScreen)a.fullScreenEventName="mozfullscreenchange";
-else if(a.hasMsNativeFullScreen)a.fullScreenEventName="MSFullscreenChange";a.isFullScreen=function(){if(e.mozRequestFullScreen)return b.mozFullScreen;else if(e.webkitRequestFullScreen)return b.webkitIsFullScreen;else if(e.hasMsNativeFullScreen)return b.msFullscreenElement!==null};a.requestFullScreen=function(i){if(a.hasWebkitNativeFullScreen)i.webkitRequestFullScreen();else if(a.hasMozNativeFullScreen)i.mozRequestFullScreen();else a.hasMsNativeFullScreen&&i.msRequestFullscreen()};a.cancelFullScreen=
-function(){if(a.hasWebkitNativeFullScreen)document.webkitCancelFullScreen();else if(a.hasMozNativeFullScreen)document.mozCancelFullScreen();else a.hasMsNativeFullScreen&&document.msExitFullscreen()}}if(a.hasSemiNativeFullScreen&&d.match(/mac os x 10_5/i)){a.hasNativeFullScreen=false;a.hasSemiNativeFullScreen=false}}};mejs.MediaFeatures.init();
+-1||c.appName.toLowerCase().match(/trident/gi)!==null;a.isChrome=d.match(/chrome/gi)!==null;a.isFirefox=d.match(/firefox/gi)!==null;a.isWebkit=d.match(/webkit/gi)!==null;a.isGecko=d.match(/gecko/gi)!==null&&!a.isWebkit&&!a.isIE;a.isOpera=d.match(/opera/gi)!==null;a.hasTouch="ontouchstart"in window;a.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect;for(c=0;c<g.length;c++)e=document.createElement(g[c]);
+a.supportsMediaTag=typeof e.canPlayType!=="undefined"||a.isBustedAndroid;try{e.canPlayType("video/mp4")}catch(f){a.supportsMediaTag=false}a.hasSemiNativeFullScreen=typeof e.webkitEnterFullscreen!=="undefined";a.hasNativeFullscreen=typeof e.requestFullscreen!=="undefined";a.hasWebkitNativeFullScreen=typeof e.webkitRequestFullScreen!=="undefined";a.hasMozNativeFullScreen=typeof e.mozRequestFullScreen!=="undefined";a.hasMsNativeFullScreen=typeof e.msRequestFullscreen!=="undefined";a.hasTrueNativeFullScreen=
+a.hasWebkitNativeFullScreen||a.hasMozNativeFullScreen||a.hasMsNativeFullScreen;a.nativeFullScreenEnabled=a.hasTrueNativeFullScreen;if(a.hasMozNativeFullScreen)a.nativeFullScreenEnabled=document.mozFullScreenEnabled;else if(a.hasMsNativeFullScreen)a.nativeFullScreenEnabled=document.msFullscreenEnabled;if(a.isChrome)a.hasSemiNativeFullScreen=false;if(a.hasTrueNativeFullScreen){a.fullScreenEventName="";if(a.hasWebkitNativeFullScreen)a.fullScreenEventName="webkitfullscreenchange";else if(a.hasMozNativeFullScreen)a.fullScreenEventName=
+"mozfullscreenchange";else if(a.hasMsNativeFullScreen)a.fullScreenEventName="MSFullscreenChange";a.isFullScreen=function(){if(a.hasMozNativeFullScreen)return b.mozFullScreen;else if(a.hasWebkitNativeFullScreen)return b.webkitIsFullScreen;else if(a.hasMsNativeFullScreen)return b.msFullscreenElement!==null};a.requestFullScreen=function(i){if(a.hasWebkitNativeFullScreen)i.webkitRequestFullScreen();else if(a.hasMozNativeFullScreen)i.mozRequestFullScreen();else a.hasMsNativeFullScreen&&i.msRequestFullscreen()};
+a.cancelFullScreen=function(){if(a.hasWebkitNativeFullScreen)document.webkitCancelFullScreen();else if(a.hasMozNativeFullScreen)document.mozCancelFullScreen();else a.hasMsNativeFullScreen&&document.msExitFullscreen()}}if(a.hasSemiNativeFullScreen&&d.match(/mac os x 10_5/i)){a.hasNativeFullScreen=false;a.hasSemiNativeFullScreen=false}}};mejs.MediaFeatures.init();
 mejs.HtmlMediaElement={pluginType:"native",isFullScreen:false,setCurrentTime:function(a){this.currentTime=a},setMuted:function(a){this.muted=a},setVolume:function(a){this.volume=a},stop:function(){this.pause()},setSrc:function(a){for(var b=this.getElementsByTagName("source");b.length>0;)this.removeChild(b[0]);if(typeof a=="string")this.src=a;else{var c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.src=c.src;break}}}},setVideoSize:function(a,b){this.width=a;this.height=b}};
 mejs.PluginMediaElement=function(a,b,c){this.id=a;this.pluginType=b;this.src=c;this.events={};this.attributes={}};
 mejs.PluginMediaElement.prototype={pluginElement:null,pluginType:"",isFullScreen:false,playbackRate:-1,defaultPlaybackRate:-1,seekable:[],played:[],paused:true,ended:false,seeking:false,duration:0,error:null,tagName:"",muted:false,volume:1,currentTime:0,play:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.playVideo():this.pluginApi.playMedia();this.paused=false}},load:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType==
 "vimeo"||this.pluginApi.loadMedia();this.paused=false}},pause:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.pauseVideo():this.pluginApi.pauseMedia();this.paused=true}},stop:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.stopVideo():this.pluginApi.stopMedia();this.paused=true}},canPlayType:function(a){var b,c,d,e=mejs.plugins[this.pluginType];for(b=0;b<e.length;b++){d=e[b];if(mejs.PluginDetector.hasPluginVersion(this.pluginType,
 d.version))for(c=0;c<d.types.length;c++)if(a==d.types[c])return"probably"}return""},positionFullscreenButton:function(a,b,c){this.pluginApi!=null&&this.pluginApi.positionFullscreenButton&&this.pluginApi.positionFullscreenButton(Math.floor(a),Math.floor(b),c)},hideFullscreenButton:function(){this.pluginApi!=null&&this.pluginApi.hideFullscreenButton&&this.pluginApi.hideFullscreenButton()},setSrc:function(a){if(typeof a=="string"){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a));this.src=mejs.Utility.absolutizeUrl(a)}else{var b,
 mejs.HtmlMediaElement={pluginType:"native",isFullScreen:false,setCurrentTime:function(a){this.currentTime=a},setMuted:function(a){this.muted=a},setVolume:function(a){this.volume=a},stop:function(){this.pause()},setSrc:function(a){for(var b=this.getElementsByTagName("source");b.length>0;)this.removeChild(b[0]);if(typeof a=="string")this.src=a;else{var c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.src=c.src;break}}}},setVideoSize:function(a,b){this.width=a;this.height=b}};
 mejs.PluginMediaElement=function(a,b,c){this.id=a;this.pluginType=b;this.src=c;this.events={};this.attributes={}};
 mejs.PluginMediaElement.prototype={pluginElement:null,pluginType:"",isFullScreen:false,playbackRate:-1,defaultPlaybackRate:-1,seekable:[],played:[],paused:true,ended:false,seeking:false,duration:0,error:null,tagName:"",muted:false,volume:1,currentTime:0,play:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.playVideo():this.pluginApi.playMedia();this.paused=false}},load:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType==
 "vimeo"||this.pluginApi.loadMedia();this.paused=false}},pause:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.pauseVideo():this.pluginApi.pauseMedia();this.paused=true}},stop:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.stopVideo():this.pluginApi.stopMedia();this.paused=true}},canPlayType:function(a){var b,c,d,e=mejs.plugins[this.pluginType];for(b=0;b<e.length;b++){d=e[b];if(mejs.PluginDetector.hasPluginVersion(this.pluginType,
 d.version))for(c=0;c<d.types.length;c++)if(a==d.types[c])return"probably"}return""},positionFullscreenButton:function(a,b,c){this.pluginApi!=null&&this.pluginApi.positionFullscreenButton&&this.pluginApi.positionFullscreenButton(Math.floor(a),Math.floor(b),c)},hideFullscreenButton:function(){this.pluginApi!=null&&this.pluginApi.hideFullscreenButton&&this.pluginApi.hideFullscreenButton()},setSrc:function(a){if(typeof a=="string"){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a));this.src=mejs.Utility.absolutizeUrl(a)}else{var b,
-c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(c.src));this.src=mejs.Utility.absolutizeUrl(a);break}}}},setCurrentTime:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.seekTo(a):this.pluginApi.setCurrentTime(a);this.currentTime=a}},setVolume:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.setVolume(a*100):this.pluginApi.setVolume(a);
-this.volume=a}},setMuted:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"||this.pluginType=="vimeo"){a?this.pluginApi.mute():this.pluginApi.unMute();this.muted=a;this.dispatchEvent("volumechange")}else this.pluginApi.setMuted(a);this.muted=a}},setVideoSize:function(a,b){if(this.pluginElement.style){this.pluginElement.style.width=a+"px";this.pluginElement.style.height=b+"px"}this.pluginApi!=null&&this.pluginApi.setVideoSize&&this.pluginApi.setVideoSize(a,b)},setFullscreen:function(a){this.pluginApi!=
-null&&this.pluginApi.setFullscreen&&this.pluginApi.setFullscreen(a)},enterFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(true)},exitFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(false)},addEventListener:function(a,b){this.events[a]=this.events[a]||[];this.events[a].push(b)},removeEventListener:function(a,b){if(!a){this.events={};return true}var c=this.events[a];if(!c)return true;if(!b){this.events[a]=[];return true}for(var d=
+c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(c.src));this.src=mejs.Utility.absolutizeUrl(a);break}}}},setCurrentTime:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.seekTo(a):this.pluginApi.setCurrentTime(a);this.currentTime=a}},setVolume:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.setVolume(a*100):this.pluginApi.setVolume(a);this.volume=a}},
+setMuted:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"){a?this.pluginApi.mute():this.pluginApi.unMute();this.muted=a;this.dispatchEvent("volumechange")}else this.pluginApi.setMuted(a);this.muted=a}},setVideoSize:function(a,b){if(this.pluginElement&&this.pluginElement.style){this.pluginElement.style.width=a+"px";this.pluginElement.style.height=b+"px"}this.pluginApi!=null&&this.pluginApi.setVideoSize&&this.pluginApi.setVideoSize(a,b)},setFullscreen:function(a){this.pluginApi!=null&&
+this.pluginApi.setFullscreen&&this.pluginApi.setFullscreen(a)},enterFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(true)},exitFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(false)},addEventListener:function(a,b){this.events[a]=this.events[a]||[];this.events[a].push(b)},removeEventListener:function(a,b){if(!a){this.events={};return true}var c=this.events[a];if(!c)return true;if(!b){this.events[a]=[];return true}for(var d=
 0;d<c.length;d++)if(c[d]===b){this.events[a].splice(d,1);return true}return false},dispatchEvent:function(a){var b,c,d=this.events[a];if(d){c=Array.prototype.slice.call(arguments,1);for(b=0;b<d.length;b++)d[b].apply(null,c)}},hasAttribute:function(a){return a in this.attributes},removeAttribute:function(a){delete this.attributes[a]},getAttribute:function(a){if(this.hasAttribute(a))return this.attributes[a];return""},setAttribute:function(a,b){this.attributes[a]=b},remove:function(){mejs.Utility.removeSwf(this.pluginElement.id);
 mejs.MediaPluginBridge.unregisterPluginElement(this.pluginElement.id)}};
 mejs.MediaPluginBridge={pluginMediaElements:{},htmlMediaElements:{},registerPluginElement:function(a,b,c){this.pluginMediaElements[a]=b;this.htmlMediaElements[a]=c},unregisterPluginElement:function(a){delete this.pluginMediaElements[a];delete this.htmlMediaElements[a]},initPlugin:function(a){var b=this.pluginMediaElements[a],c=this.htmlMediaElements[a];if(b){switch(b.pluginType){case "flash":b.pluginElement=b.pluginApi=document.getElementById(a);break;case "silverlight":b.pluginElement=document.getElementById(b.id);
 0;d<c.length;d++)if(c[d]===b){this.events[a].splice(d,1);return true}return false},dispatchEvent:function(a){var b,c,d=this.events[a];if(d){c=Array.prototype.slice.call(arguments,1);for(b=0;b<d.length;b++)d[b].apply(null,c)}},hasAttribute:function(a){return a in this.attributes},removeAttribute:function(a){delete this.attributes[a]},getAttribute:function(a){if(this.hasAttribute(a))return this.attributes[a];return""},setAttribute:function(a,b){this.attributes[a]=b},remove:function(){mejs.Utility.removeSwf(this.pluginElement.id);
 mejs.MediaPluginBridge.unregisterPluginElement(this.pluginElement.id)}};
 mejs.MediaPluginBridge={pluginMediaElements:{},htmlMediaElements:{},registerPluginElement:function(a,b,c){this.pluginMediaElements[a]=b;this.htmlMediaElements[a]=c},unregisterPluginElement:function(a){delete this.pluginMediaElements[a];delete this.htmlMediaElements[a]},initPlugin:function(a){var b=this.pluginMediaElements[a],c=this.htmlMediaElements[a];if(b){switch(b.pluginType){case "flash":b.pluginElement=b.pluginApi=document.getElementById(a);break;case "silverlight":b.pluginElement=document.getElementById(b.id);
@@ -44,27 +44,28 @@ defaultVideoHeight:270,pluginWidth:-1,pluginHeight:-1,pluginVars:[],timerRate:25
 mejs.HtmlMediaElementShim={create:function(a,b){var c=mejs.MediaElementDefaults,d=typeof a=="string"?document.getElementById(a):a,e=d.tagName.toLowerCase(),g=e==="audio"||e==="video",f=g?d.getAttribute("src"):d.getAttribute("href");e=d.getAttribute("poster");var i=d.getAttribute("autoplay"),k=d.getAttribute("preload"),h=d.getAttribute("controls"),j;for(j in b)c[j]=b[j];f=typeof f=="undefined"||f===null||f==""?null:f;e=typeof e=="undefined"||e===null?"":e;k=typeof k=="undefined"||k===null||k==="false"?
 "none":k;i=!(typeof i=="undefined"||i===null||i==="false");h=!(typeof h=="undefined"||h===null||h==="false");j=this.determinePlayback(d,c,mejs.MediaFeatures.supportsMediaTag,g,f);j.url=j.url!==null?mejs.Utility.absolutizeUrl(j.url):"";if(j.method=="native"){if(mejs.MediaFeatures.isBustedAndroid){d.src=j.url;d.addEventListener("click",function(){d.play()},false)}return this.updateNative(j,c,i,k)}else if(j.method!=="")return this.createPlugin(j,c,e,i,k,h);else{this.createErrorMessage(j,c,e);return this}},
 determinePlayback:function(a,b,c,d,e){var g=[],f,i,k,h={method:"",url:"",htmlMediaElement:a,isVideo:a.tagName.toLowerCase()!="audio"},j;if(typeof b.type!="undefined"&&b.type!=="")if(typeof b.type=="string")g.push({type:b.type,url:e});else for(f=0;f<b.type.length;f++)g.push({type:b.type[f],url:e});else if(e!==null){k=this.formatType(e,a.getAttribute("type"));g.push({type:k,url:e})}else for(f=0;f<a.childNodes.length;f++){i=a.childNodes[f];if(i.nodeType==1&&i.tagName.toLowerCase()=="source"){e=i.getAttribute("src");
 mejs.HtmlMediaElementShim={create:function(a,b){var c=mejs.MediaElementDefaults,d=typeof a=="string"?document.getElementById(a):a,e=d.tagName.toLowerCase(),g=e==="audio"||e==="video",f=g?d.getAttribute("src"):d.getAttribute("href");e=d.getAttribute("poster");var i=d.getAttribute("autoplay"),k=d.getAttribute("preload"),h=d.getAttribute("controls"),j;for(j in b)c[j]=b[j];f=typeof f=="undefined"||f===null||f==""?null:f;e=typeof e=="undefined"||e===null?"":e;k=typeof k=="undefined"||k===null||k==="false"?
 "none":k;i=!(typeof i=="undefined"||i===null||i==="false");h=!(typeof h=="undefined"||h===null||h==="false");j=this.determinePlayback(d,c,mejs.MediaFeatures.supportsMediaTag,g,f);j.url=j.url!==null?mejs.Utility.absolutizeUrl(j.url):"";if(j.method=="native"){if(mejs.MediaFeatures.isBustedAndroid){d.src=j.url;d.addEventListener("click",function(){d.play()},false)}return this.updateNative(j,c,i,k)}else if(j.method!=="")return this.createPlugin(j,c,e,i,k,h);else{this.createErrorMessage(j,c,e);return this}},
 determinePlayback:function(a,b,c,d,e){var g=[],f,i,k,h={method:"",url:"",htmlMediaElement:a,isVideo:a.tagName.toLowerCase()!="audio"},j;if(typeof b.type!="undefined"&&b.type!=="")if(typeof b.type=="string")g.push({type:b.type,url:e});else for(f=0;f<b.type.length;f++)g.push({type:b.type[f],url:e});else if(e!==null){k=this.formatType(e,a.getAttribute("type"));g.push({type:k,url:e})}else for(f=0;f<a.childNodes.length;f++){i=a.childNodes[f];if(i.nodeType==1&&i.tagName.toLowerCase()=="source"){e=i.getAttribute("src");
-k=this.formatType(e,i.getAttribute("type"));i=i.getAttribute("media");if(!i||!window.matchMedia||window.matchMedia&&window.matchMedia(i).matches)g.push({type:k,url:e})}}if(!d&&g.length>0&&g[0].url!==null&&this.getTypeFromFile(g[0].url).indexOf("audio")>-1)h.isVideo=false;if(mejs.MediaFeatures.isBustedAndroid)a.canPlayType=function(m){return m.match(/video\/(mp4|m4v)/gi)!==null?"maybe":""};if(c&&(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="native")&&!(mejs.MediaFeatures.isBustedNativeHTTPS&&
-b.httpsBasicAuthSite===true)){if(!d){f=document.createElement(h.isVideo?"video":"audio");a.parentNode.insertBefore(f,a);a.style.display="none";h.htmlMediaElement=a=f}for(f=0;f<g.length;f++)if(a.canPlayType(g[f].type).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/mp3/,"mpeg")).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/m4a/,"mp4")).replace(/no/,"")!==""){h.method="native";h.url=g[f].url;break}if(h.method==="native"){if(h.url!==null)a.src=h.url;if(b.mode!=="auto_plugin")return h}}if(b.mode===
-"auto"||b.mode==="auto_plugin"||b.mode==="shim")for(f=0;f<g.length;f++){k=g[f].type;for(a=0;a<b.plugins.length;a++){e=b.plugins[a];i=mejs.plugins[e];for(c=0;c<i.length;c++){j=i[c];if(j.version==null||mejs.PluginDetector.hasPluginVersion(e,j.version))for(d=0;d<j.types.length;d++)if(k==j.types[d]){h.method=e;h.url=g[f].url;return h}}}}if(b.mode==="auto_plugin"&&h.method==="native")return h;if(h.method===""&&g.length>0)h.url=g[0].url;return h},formatType:function(a,b){return a&&!b?this.getTypeFromFile(a):
-b&&~b.indexOf(";")?b.substr(0,b.indexOf(";")):b},getTypeFromFile:function(a){a=a.split("?")[0];a=a.substring(a.lastIndexOf(".")+1).toLowerCase();return(/(mp4|m4v|ogg|ogv|webm|webmv|flv|wmv|mpeg|mov)/gi.test(a)?"video":"audio")+"/"+this.getTypeFromExtension(a)},getTypeFromExtension:function(a){switch(a){case "mp4":case "m4v":case "m4a":return"mp4";case "webm":case "webma":case "webmv":return"webm";case "ogg":case "oga":case "ogv":return"ogg";default:return a}},createErrorMessage:function(a,b,c){var d=
-a.htmlMediaElement,e=document.createElement("div");e.className="me-cannotplay";try{e.style.width=d.width+"px";e.style.height=d.height+"px"}catch(g){}e.innerHTML=b.customError?b.customError:c!==""?'<a href="'+a.url+'"><img src="'+c+'" width="100%" height="100%" /></a>':'<a href="'+a.url+'"><span>'+mejs.i18n.t("Download File")+"</span></a>";d.parentNode.insertBefore(e,d);d.style.display="none";b.error(d)},createPlugin:function(a,b,c,d,e,g){c=a.htmlMediaElement;var f=1,i=1,k="me_"+a.method+"_"+mejs.meIndex++,
-h=new mejs.PluginMediaElement(k,a.method,a.url),j=document.createElement("div"),m;h.tagName=c.tagName;for(m=0;m<c.attributes.length;m++){var q=c.attributes[m];q.specified==true&&h.setAttribute(q.name,q.value)}for(m=c.parentNode;m!==null&&m.tagName.toLowerCase()!=="body"&&m.parentNode!=null;){if(m.parentNode.tagName.toLowerCase()==="p"){m.parentNode.parentNode.insertBefore(m,m.parentNode);break}m=m.parentNode}if(a.isVideo){f=b.pluginWidth>0?b.pluginWidth:b.videoWidth>0?b.videoWidth:c.getAttribute("width")!==
-null?c.getAttribute("width"):b.defaultVideoWidth;i=b.pluginHeight>0?b.pluginHeight:b.videoHeight>0?b.videoHeight:c.getAttribute("height")!==null?c.getAttribute("height"):b.defaultVideoHeight;f=mejs.Utility.encodeUrl(f);i=mejs.Utility.encodeUrl(i)}else if(b.enablePluginDebug){f=320;i=240}h.success=b.success;mejs.MediaPluginBridge.registerPluginElement(k,h,c);j.className="me-plugin";j.id=k+"_container";a.isVideo?c.parentNode.insertBefore(j,c):document.body.insertBefore(j,document.body.childNodes[0]);
-d=["id="+k,"isvideo="+(a.isVideo?"true":"false"),"autoplay="+(d?"true":"false"),"preload="+e,"width="+f,"startvolume="+b.startVolume,"timerrate="+b.timerRate,"flashstreamer="+b.flashStreamer,"height="+i,"pseudostreamstart="+b.pseudoStreamingStartQueryParam];if(a.url!==null)a.method=="flash"?d.push("file="+mejs.Utility.encodeUrl(a.url)):d.push("file="+a.url);b.enablePluginDebug&&d.push("debug=true");b.enablePluginSmoothing&&d.push("smoothing=true");b.enablePseudoStreaming&&d.push("pseudostreaming=true");
-g&&d.push("controls=true");if(b.pluginVars)d=d.concat(b.pluginVars);switch(a.method){case "silverlight":j.innerHTML='<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="'+k+'" name="'+k+'" width="'+f+'" height="'+i+'" class="mejs-shim"><param name="initParams" value="'+d.join(",")+'" /><param name="windowless" value="true" /><param name="background" value="black" /><param name="minRuntimeVersion" value="3.0.0.0" /><param name="autoUpgrade" value="true" /><param name="source" value="'+
+k=this.formatType(e,i.getAttribute("type"));i=i.getAttribute("media");if(!i||!window.matchMedia||window.matchMedia&&window.matchMedia(i).matches)g.push({type:k,url:e})}}if(!d&&g.length>0&&g[0].url!==null&&this.getTypeFromFile(g[0].url).indexOf("audio")>-1)h.isVideo=false;if(mejs.MediaFeatures.isBustedAndroid)a.canPlayType=function(m){return m.match(/video\/(mp4|m4v)/gi)!==null?"maybe":""};if(c&&(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="native")&&!(mejs.MediaFeatures.isBustedNativeHTTPS&&b.httpsBasicAuthSite===true)){if(!d){f=document.createElement(h.isVideo?"video":"audio");a.parentNode.insertBefore(f,a);a.style.display="none";h.htmlMediaElement=a=f}for(f=0;f<g.length;f++)if(g[f].type=="video/m3u8"||a.canPlayType(g[f].type).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/mp3/,"mpeg")).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/m4a/,"mp4")).replace(/no/,
+"")!==""){h.method="native";h.url=g[f].url;break}if(h.method==="native"){if(h.url!==null)a.src=h.url;if(b.mode!=="auto_plugin")return h}}if(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="shim")for(f=0;f<g.length;f++){k=g[f].type;for(a=0;a<b.plugins.length;a++){e=b.plugins[a];i=mejs.plugins[e];for(c=0;c<i.length;c++){j=i[c];if(j.version==null||mejs.PluginDetector.hasPluginVersion(e,j.version))for(d=0;d<j.types.length;d++)if(k==j.types[d]){h.method=e;h.url=g[f].url;return h}}}}if(b.mode==="auto_plugin"&&
+h.method==="native")return h;if(h.method===""&&g.length>0)h.url=g[0].url;return h},formatType:function(a,b){return a&&!b?this.getTypeFromFile(a):b&&~b.indexOf(";")?b.substr(0,b.indexOf(";")):b},getTypeFromFile:function(a){a=a.split("?")[0];a=a.substring(a.lastIndexOf(".")+1).toLowerCase();return(/(mp4|m4v|ogg|ogv|m3u8|webm|webmv|flv|wmv|mpeg|mov)/gi.test(a)?"video":"audio")+"/"+this.getTypeFromExtension(a)},getTypeFromExtension:function(a){switch(a){case "mp4":case "m4v":case "m4a":return"mp4";case "webm":case "webma":case "webmv":return"webm";
+case "ogg":case "oga":case "ogv":return"ogg";default:return a}},createErrorMessage:function(a,b,c){var d=a.htmlMediaElement,e=document.createElement("div");e.className="me-cannotplay";try{e.style.width=d.width+"px";e.style.height=d.height+"px"}catch(g){}e.innerHTML=b.customError?b.customError:c!==""?'<a href="'+a.url+'"><img src="'+c+'" width="100%" height="100%" /></a>':'<a href="'+a.url+'"><span>'+mejs.i18n.t("Download File")+"</span></a>";d.parentNode.insertBefore(e,d);d.style.display="none";b.error(d)},
+createPlugin:function(a,b,c,d,e,g){c=a.htmlMediaElement;var f=1,i=1,k="me_"+a.method+"_"+mejs.meIndex++,h=new mejs.PluginMediaElement(k,a.method,a.url),j=document.createElement("div"),m;h.tagName=c.tagName;for(m=0;m<c.attributes.length;m++){var q=c.attributes[m];q.specified==true&&h.setAttribute(q.name,q.value)}for(m=c.parentNode;m!==null&&m.tagName.toLowerCase()!=="body"&&m.parentNode!=null;){if(m.parentNode.tagName.toLowerCase()==="p"){m.parentNode.parentNode.insertBefore(m,m.parentNode);break}m=
+m.parentNode}if(a.isVideo){f=b.pluginWidth>0?b.pluginWidth:b.videoWidth>0?b.videoWidth:c.getAttribute("width")!==null?c.getAttribute("width"):b.defaultVideoWidth;i=b.pluginHeight>0?b.pluginHeight:b.videoHeight>0?b.videoHeight:c.getAttribute("height")!==null?c.getAttribute("height"):b.defaultVideoHeight;f=mejs.Utility.encodeUrl(f);i=mejs.Utility.encodeUrl(i)}else if(b.enablePluginDebug){f=320;i=240}h.success=b.success;mejs.MediaPluginBridge.registerPluginElement(k,h,c);j.className="me-plugin";j.id=
+k+"_container";a.isVideo?c.parentNode.insertBefore(j,c):document.body.insertBefore(j,document.body.childNodes[0]);d=["id="+k,"isvideo="+(a.isVideo?"true":"false"),"autoplay="+(d?"true":"false"),"preload="+e,"width="+f,"startvolume="+b.startVolume,"timerrate="+b.timerRate,"flashstreamer="+b.flashStreamer,"height="+i,"pseudostreamstart="+b.pseudoStreamingStartQueryParam];if(a.url!==null)a.method=="flash"?d.push("file="+mejs.Utility.encodeUrl(a.url)):d.push("file="+a.url);b.enablePluginDebug&&d.push("debug=true");
+b.enablePluginSmoothing&&d.push("smoothing=true");b.enablePseudoStreaming&&d.push("pseudostreaming=true");g&&d.push("controls=true");if(b.pluginVars)d=d.concat(b.pluginVars);switch(a.method){case "silverlight":j.innerHTML='<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="'+k+'" name="'+k+'" width="'+f+'" height="'+i+'" class="mejs-shim"><param name="initParams" value="'+d.join(",")+'" /><param name="windowless" value="true" /><param name="background" value="black" /><param name="minRuntimeVersion" value="3.0.0.0" /><param name="autoUpgrade" value="true" /><param name="source" value="'+
 b.pluginPath+b.silverlightName+'" /></object>';break;case "flash":if(mejs.MediaFeatures.isIE){a=document.createElement("div");j.appendChild(a);a.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+k+'" width="'+f+'" height="'+i+'" class="mejs-shim"><param name="movie" value="'+b.pluginPath+b.flashName+"?x="+new Date+'" /><param name="flashvars" value="'+d.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="scale" value="default" /></object>'}else j.innerHTML=
 '<embed id="'+k+'" name="'+k+'" play="true" loop="false" quality="high" bgcolor="#000000" wmode="transparent" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" src="'+b.pluginPath+b.flashName+'" flashvars="'+d.join("&")+'" width="'+f+'" height="'+i+'" scale="default"class="mejs-shim"></embed>';break;case "youtube":if(a.url.lastIndexOf("youtu.be")!=-1){a=a.url.substr(a.url.lastIndexOf("/")+1);if(a.indexOf("?")!=
 -1)a=a.substr(0,a.indexOf("?"))}else a=a.url.substr(a.url.lastIndexOf("=")+1);youtubeSettings={container:j,containerId:j.id,pluginMediaElement:h,pluginId:k,videoId:a,height:i,width:f};mejs.PluginDetector.hasPluginVersion("flash",[10,0,0])?mejs.YouTubeApi.createFlash(youtubeSettings):mejs.YouTubeApi.enqueueIframe(youtubeSettings);break;case "vimeo":b=k+"_player";h.vimeoid=a.url.substr(a.url.lastIndexOf("/")+1);j.innerHTML='<iframe src="//player.vimeo.com/video/'+h.vimeoid+"?api=1&portrait=0&byline=0&title=0&player_id="+
 b.pluginPath+b.silverlightName+'" /></object>';break;case "flash":if(mejs.MediaFeatures.isIE){a=document.createElement("div");j.appendChild(a);a.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+k+'" width="'+f+'" height="'+i+'" class="mejs-shim"><param name="movie" value="'+b.pluginPath+b.flashName+"?x="+new Date+'" /><param name="flashvars" value="'+d.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="scale" value="default" /></object>'}else j.innerHTML=
 '<embed id="'+k+'" name="'+k+'" play="true" loop="false" quality="high" bgcolor="#000000" wmode="transparent" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" src="'+b.pluginPath+b.flashName+'" flashvars="'+d.join("&")+'" width="'+f+'" height="'+i+'" scale="default"class="mejs-shim"></embed>';break;case "youtube":if(a.url.lastIndexOf("youtu.be")!=-1){a=a.url.substr(a.url.lastIndexOf("/")+1);if(a.indexOf("?")!=
 -1)a=a.substr(0,a.indexOf("?"))}else a=a.url.substr(a.url.lastIndexOf("=")+1);youtubeSettings={container:j,containerId:j.id,pluginMediaElement:h,pluginId:k,videoId:a,height:i,width:f};mejs.PluginDetector.hasPluginVersion("flash",[10,0,0])?mejs.YouTubeApi.createFlash(youtubeSettings):mejs.YouTubeApi.enqueueIframe(youtubeSettings);break;case "vimeo":b=k+"_player";h.vimeoid=a.url.substr(a.url.lastIndexOf("/")+1);j.innerHTML='<iframe src="//player.vimeo.com/video/'+h.vimeoid+"?api=1&portrait=0&byline=0&title=0&player_id="+
-b+'" width="'+f+'" height="'+i+'" frameborder="0" class="mejs-shim" id="'+b+'"></iframe>';if(typeof $f=="function"){var l=$f(j.childNodes[0]);l.addEvent("ready",function(){function o(n,p,r,s){n={type:r,target:p};if(r=="timeupdate"){p.currentTime=n.currentTime=s.seconds;p.duration=n.duration=s.duration}p.dispatchEvent(n.type,n)}l.playVideo=function(){l.api("play")};l.pauseVideo=function(){l.api("pause")};l.seekTo=function(n){l.api("seekTo",n)};l.addEvent("play",function(){o(l,h,"play");o(l,h,"playing")});
-l.addEvent("pause",function(){o(l,h,"pause")});l.addEvent("finish",function(){o(l,h,"ended")});l.addEvent("playProgress",function(n){o(l,h,"timeupdate",n)});h.pluginApi=l;mejs.MediaPluginBridge.initPlugin(k)})}else console.warn("You need to include froogaloop for vimeo to work")}c.style.display="none";c.removeAttribute("autoplay");return h},updateNative:function(a,b){var c=a.htmlMediaElement,d;for(d in mejs.HtmlMediaElement)c[d]=mejs.HtmlMediaElement[d];b.success(c,c);return c}};
+b+'" width="'+f+'" height="'+i+'" frameborder="0" class="mejs-shim" id="'+b+'"></iframe>';if(typeof $f=="function"){var l=$f(j.childNodes[0]);l.addEvent("ready",function(){function o(n,p,r,s){n={type:r,target:p};if(r=="timeupdate"){p.currentTime=n.currentTime=s.seconds;p.duration=n.duration=s.duration}p.dispatchEvent(n.type,n)}$.extend(l,{playVideo:function(){l.api("play")},stopVideo:function(){l.api("unload")},pauseVideo:function(){l.api("pause")},seekTo:function(n){l.api("seekTo",n)},setVolume:function(n){l.api("setVolume",
+n)},setMuted:function(n){if(n){l.lastVolume=l.api("getVolume");l.api("setVolume",0)}else{l.api("setVolume",l.lastVolume);delete l.lastVolume}}});l.addEvent("play",function(){o(l,h,"play");o(l,h,"playing")});l.addEvent("pause",function(){o(l,h,"pause")});l.addEvent("finish",function(){o(l,h,"ended")});l.addEvent("playProgress",function(n){o(l,h,"timeupdate",n)});h.pluginElement=j;h.pluginApi=l;mejs.MediaPluginBridge.initPlugin(k)})}else console.warn("You need to include froogaloop for vimeo to work")}c.style.display=
+"none";c.removeAttribute("autoplay");return h},updateNative:function(a,b){var c=a.htmlMediaElement,d;for(d in mejs.HtmlMediaElement)c[d]=mejs.HtmlMediaElement[d];b.success(c,c);return c}};
 mejs.YouTubeApi={isIframeStarted:false,isIframeLoaded:false,loadIframeApi:function(){if(!this.isIframeStarted){var a=document.createElement("script");a.src="//www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.isIframeStarted=true}},iframeQueue:[],enqueueIframe:function(a){if(this.isLoaded)this.createIframe(a);else{this.loadIframeApi();this.iframeQueue.push(a)}},createIframe:function(a){var b=a.pluginMediaElement,c=new YT.Player(a.containerId,
 {height:a.height,width:a.width,videoId:a.videoId,playerVars:{controls:0},events:{onReady:function(){a.pluginMediaElement.pluginApi=c;mejs.MediaPluginBridge.initPlugin(a.pluginId);setInterval(function(){mejs.YouTubeApi.createEvent(c,b,"timeupdate")},250)},onStateChange:function(d){mejs.YouTubeApi.handleStateChange(d.data,c,b)}}})},createEvent:function(a,b,c){c={type:c,target:b};if(a&&a.getDuration){b.currentTime=c.currentTime=a.getCurrentTime();b.duration=c.duration=a.getDuration();c.paused=b.paused;
 c.ended=b.ended;c.muted=a.isMuted();c.volume=a.getVolume()/100;c.bytesTotal=a.getVideoBytesTotal();c.bufferedBytes=a.getVideoBytesLoaded();var d=c.bufferedBytes/c.bytesTotal*c.duration;c.target.buffered=c.buffered={start:function(){return 0},end:function(){return d},length:1}}b.dispatchEvent(c.type,c)},iFrameReady:function(){for(this.isIframeLoaded=this.isLoaded=true;this.iframeQueue.length>0;)this.createIframe(this.iframeQueue.pop())},flashPlayers:{},createFlash:function(a){this.flashPlayers[a.pluginId]=
 a;var b,c="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid="+a.pluginId+"&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0";if(mejs.MediaFeatures.isIE){b=document.createElement("div");a.container.appendChild(b);b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+a.pluginId+'" width="'+a.width+'" height="'+a.height+'" class="mejs-shim"><param name="movie" value="'+
 c+'" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else a.container.innerHTML='<object type="application/x-shockwave-flash" id="'+a.pluginId+'" data="'+c+'" width="'+a.width+'" height="'+a.height+'" style="visibility: visible; " class="mejs-shim"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>'},flashReady:function(a){var b=this.flashPlayers[a],c=
 mejs.YouTubeApi={isIframeStarted:false,isIframeLoaded:false,loadIframeApi:function(){if(!this.isIframeStarted){var a=document.createElement("script");a.src="//www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.isIframeStarted=true}},iframeQueue:[],enqueueIframe:function(a){if(this.isLoaded)this.createIframe(a);else{this.loadIframeApi();this.iframeQueue.push(a)}},createIframe:function(a){var b=a.pluginMediaElement,c=new YT.Player(a.containerId,
 {height:a.height,width:a.width,videoId:a.videoId,playerVars:{controls:0},events:{onReady:function(){a.pluginMediaElement.pluginApi=c;mejs.MediaPluginBridge.initPlugin(a.pluginId);setInterval(function(){mejs.YouTubeApi.createEvent(c,b,"timeupdate")},250)},onStateChange:function(d){mejs.YouTubeApi.handleStateChange(d.data,c,b)}}})},createEvent:function(a,b,c){c={type:c,target:b};if(a&&a.getDuration){b.currentTime=c.currentTime=a.getCurrentTime();b.duration=c.duration=a.getDuration();c.paused=b.paused;
 c.ended=b.ended;c.muted=a.isMuted();c.volume=a.getVolume()/100;c.bytesTotal=a.getVideoBytesTotal();c.bufferedBytes=a.getVideoBytesLoaded();var d=c.bufferedBytes/c.bytesTotal*c.duration;c.target.buffered=c.buffered={start:function(){return 0},end:function(){return d},length:1}}b.dispatchEvent(c.type,c)},iFrameReady:function(){for(this.isIframeLoaded=this.isLoaded=true;this.iframeQueue.length>0;)this.createIframe(this.iframeQueue.pop())},flashPlayers:{},createFlash:function(a){this.flashPlayers[a.pluginId]=
 a;var b,c="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid="+a.pluginId+"&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0";if(mejs.MediaFeatures.isIE){b=document.createElement("div");a.container.appendChild(b);b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+a.pluginId+'" width="'+a.width+'" height="'+a.height+'" class="mejs-shim"><param name="movie" value="'+
 c+'" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else a.container.innerHTML='<object type="application/x-shockwave-flash" id="'+a.pluginId+'" data="'+c+'" width="'+a.width+'" height="'+a.height+'" style="visibility: visible; " class="mejs-shim"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>'},flashReady:function(a){var b=this.flashPlayers[a],c=
-document.getElementById(a),d=b.pluginMediaElement;d.pluginApi=d.pluginElement=c;mejs.MediaPluginBridge.initPlugin(a);c.cueVideoById(b.videoId);a=b.containerId+"_callback";window[a]=function(e){mejs.YouTubeApi.handleStateChange(e,c,d)};c.addEventListener("onStateChange",a);setInterval(function(){mejs.YouTubeApi.createEvent(c,d,"timeupdate")},250)},handleStateChange:function(a,b,c){switch(a){case -1:c.paused=true;c.ended=true;mejs.YouTubeApi.createEvent(b,c,"loadedmetadata");break;case 0:c.paused=false;
-c.ended=true;mejs.YouTubeApi.createEvent(b,c,"ended");break;case 1:c.paused=false;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"play");mejs.YouTubeApi.createEvent(b,c,"playing");break;case 2:c.paused=true;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"pause");break;case 3:mejs.YouTubeApi.createEvent(b,c,"progress")}}};function onYouTubePlayerAPIReady(){mejs.YouTubeApi.iFrameReady()}function onYouTubePlayerReady(a){mejs.YouTubeApi.flashReady(a)}window.mejs=mejs;window.MediaElement=mejs.MediaElement;
+document.getElementById(a),d=b.pluginMediaElement;d.pluginApi=d.pluginElement=c;mejs.MediaPluginBridge.initPlugin(a);c.cueVideoById(b.videoId);a=b.containerId+"_callback";window[a]=function(e){mejs.YouTubeApi.handleStateChange(e,c,d)};c.addEventListener("onStateChange",a);setInterval(function(){mejs.YouTubeApi.createEvent(c,d,"timeupdate")},250);mejs.YouTubeApi.createEvent(c,d,"canplay")},handleStateChange:function(a,b,c){switch(a){case -1:c.paused=true;c.ended=true;mejs.YouTubeApi.createEvent(b,
+c,"loadedmetadata");break;case 0:c.paused=false;c.ended=true;mejs.YouTubeApi.createEvent(b,c,"ended");break;case 1:c.paused=false;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"play");mejs.YouTubeApi.createEvent(b,c,"playing");break;case 2:c.paused=true;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"pause");break;case 3:mejs.YouTubeApi.createEvent(b,c,"progress")}}};function onYouTubePlayerAPIReady(){mejs.YouTubeApi.iFrameReady()}function onYouTubePlayerReady(a){mejs.YouTubeApi.flashReady(a)}
+window.mejs=mejs;window.MediaElement=mejs.MediaElement;
 (function(a,b){var c={locale:{language:"",strings:{}},methods:{}};c.getLanguage=function(){return(c.locale.language||window.navigator.userLanguage||window.navigator.language).substr(0,2).toLowerCase()};if(typeof mejsL10n!="undefined")c.locale.language=mejsL10n.language;c.methods.checkPlain=function(d){var e,g,f={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"};d=String(d);for(e in f)if(f.hasOwnProperty(e)){g=RegExp(e,"g");d=d.replace(g,f[e])}return d};c.methods.t=function(d,e){if(c.locale.strings&&
 c.locale.strings[e.context]&&c.locale.strings[e.context][d])d=c.locale.strings[e.context][d];return c.methods.checkPlain(d)};c.t=function(d,e){if(typeof d==="string"&&d.length>0){var g=c.getLanguage();e=e||{context:g};return c.methods.t(d,e)}else throw{name:"InvalidArgumentException",message:"First argument is either not a string or empty."};};b.i18n=c})(document,mejs);(function(a){if(typeof mejsL10n!="undefined")a[mejsL10n.language]=mejsL10n.strings})(mejs.i18n.locale.strings);
 (function(a){if(typeof a.de==="undefined")a.de={Fullscreen:"Vollbild","Go Fullscreen":"Vollbild an","Turn off Fullscreen":"Vollbild aus",Close:"Schlie\u00dfen"}})(mejs.i18n.locale.strings);(function(a){if(typeof a.zh==="undefined")a.zh={Fullscreen:"\u5168\u87a2\u5e55","Go Fullscreen":"\u5168\u5c4f\u6a21\u5f0f","Turn off Fullscreen":"\u9000\u51fa\u5168\u5c4f\u6a21\u5f0f",Close:"\u95dc\u9589"}})(mejs.i18n.locale.strings);
 (function(a,b){var c={locale:{language:"",strings:{}},methods:{}};c.getLanguage=function(){return(c.locale.language||window.navigator.userLanguage||window.navigator.language).substr(0,2).toLowerCase()};if(typeof mejsL10n!="undefined")c.locale.language=mejsL10n.language;c.methods.checkPlain=function(d){var e,g,f={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"};d=String(d);for(e in f)if(f.hasOwnProperty(e)){g=RegExp(e,"g");d=d.replace(g,f[e])}return d};c.methods.t=function(d,e){if(c.locale.strings&&
 c.locale.strings[e.context]&&c.locale.strings[e.context][d])d=c.locale.strings[e.context][d];return c.methods.checkPlain(d)};c.t=function(d,e){if(typeof d==="string"&&d.length>0){var g=c.getLanguage();e=e||{context:g};return c.methods.t(d,e)}else throw{name:"InvalidArgumentException",message:"First argument is either not a string or empty."};};b.i18n=c})(document,mejs);(function(a){if(typeof mejsL10n!="undefined")a[mejsL10n.language]=mejsL10n.strings})(mejs.i18n.locale.strings);
 (function(a){if(typeof a.de==="undefined")a.de={Fullscreen:"Vollbild","Go Fullscreen":"Vollbild an","Turn off Fullscreen":"Vollbild aus",Close:"Schlie\u00dfen"}})(mejs.i18n.locale.strings);(function(a){if(typeof a.zh==="undefined")a.zh={Fullscreen:"\u5168\u87a2\u5e55","Go Fullscreen":"\u5168\u5c4f\u6a21\u5f0f","Turn off Fullscreen":"\u9000\u51fa\u5168\u5c4f\u6a21\u5f0f",Close:"\u95dc\u9589"}})(mejs.i18n.locale.strings);
@@ -80,12 +81,13 @@ c.locale.strings[e.context]&&c.locale.strings[e.context][d])d=c.locale.strings[e
  * License: MIT
  *
  */if(typeof jQuery!="undefined")mejs.$=jQuery;else if(typeof ender!="undefined")mejs.$=ender;
  * License: MIT
  *
  */if(typeof jQuery!="undefined")mejs.$=jQuery;else if(typeof ender!="undefined")mejs.$=ender;
-(function(f){mejs.MepDefaults={poster:"",showPosterWhenEnded:false,defaultVideoWidth:480,defaultVideoHeight:270,videoWidth:-1,videoHeight:-1,defaultAudioWidth:400,defaultAudioHeight:30,defaultSeekBackwardInterval:function(a){return a.duration*0.05},defaultSeekForwardInterval:function(a){return a.duration*0.05},audioWidth:-1,audioHeight:-1,startVolume:0.8,loop:false,autoRewind:true,enableAutosize:true,alwaysShowHours:false,showTimecodeFrameCount:false,framesPerSecond:25,autosizeProgress:true,alwaysShowControls:false,
-hideVideoControlsOnLoad:false,clickToPlayPause:true,iPadUseNativeControls:false,iPhoneUseNativeControls:false,AndroidUseNativeControls:false,features:["playpause","current","progress","duration","tracks","volume","fullscreen"],isVideo:true,enableKeyboard:true,pauseOtherPlayers:true,keyActions:[{keys:[32,179],action:function(a,b){b.paused||b.ended?a.play():a.pause()}},{keys:[38],action:function(a,b){b.setVolume(Math.min(b.volume+0.1,1))}},{keys:[40],action:function(a,b){b.setVolume(Math.max(b.volume-
-0.1,0))}},{keys:[37,227],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.max(b.currentTime-a.options.defaultSeekBackwardInterval(b),0);b.setCurrentTime(c)}}},{keys:[39,228],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.min(b.currentTime+a.options.defaultSeekForwardInterval(b),b.duration);b.setCurrentTime(c)}}},{keys:[70],action:function(a){if(typeof a.enterFullScreen!=
-"undefined")a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}}]};mejs.mepIndex=0;mejs.players={};mejs.MediaElementPlayer=function(a,b){if(!(this instanceof mejs.MediaElementPlayer))return new mejs.MediaElementPlayer(a,b);this.$media=this.$node=f(a);this.node=this.media=this.$media[0];if(typeof this.node.player!="undefined")return this.node.player;else this.node.player=this;if(typeof b=="undefined")b=this.$node.data("mejsoptions");this.options=f.extend({},mejs.MepDefaults,b);this.id="mep_"+mejs.mepIndex++;
-mejs.players[this.id]=this;this.init();return this};mejs.MediaElementPlayer.prototype={hasFocus:false,controlsAreVisible:true,init:function(){var a=this,b=mejs.MediaFeatures,c=f.extend(true,{},a.options,{success:function(d,g){a.meReady(d,g)},error:function(d){a.handleError(d)}}),e=a.media.tagName.toLowerCase();a.isDynamic=e!=="audio"&&e!=="video";a.isVideo=a.isDynamic?a.options.isVideo:e!=="audio"&&a.options.isVideo;if(b.isiPad&&a.options.iPadUseNativeControls||b.isiPhone&&a.options.iPhoneUseNativeControls){a.$media.attr("controls",
-"controls");b.isiPad&&a.media.getAttribute("autoplay")!==null&&a.play()}else if(!(b.isAndroid&&a.options.AndroidUseNativeControls)){a.$media.removeAttr("controls");a.container=f('<div id="'+a.id+'" class="mejs-container '+(mejs.MediaFeatures.svg?"svg":"no-svg")+'"><div class="mejs-inner"><div class="mejs-mediaelement"></div><div class="mejs-layers"></div><div class="mejs-controls"></div><div class="mejs-clear"></div></div></div>').addClass(a.$media[0].className).insertBefore(a.$media);a.container.addClass((b.isAndroid?
+(function(f){mejs.MepDefaults={poster:"",showPosterWhenEnded:false,defaultVideoWidth:480,defaultVideoHeight:270,videoWidth:-1,videoHeight:-1,defaultAudioWidth:400,defaultAudioHeight:30,defaultSeekBackwardInterval:function(a){return a.duration*0.05},defaultSeekForwardInterval:function(a){return a.duration*0.05},setDimensions:true,audioWidth:-1,audioHeight:-1,startVolume:0.8,loop:false,autoRewind:true,enableAutosize:true,alwaysShowHours:false,showTimecodeFrameCount:false,framesPerSecond:25,autosizeProgress:true,
+alwaysShowControls:false,hideVideoControlsOnLoad:false,clickToPlayPause:true,iPadUseNativeControls:false,iPhoneUseNativeControls:false,AndroidUseNativeControls:false,features:["playpause","current","progress","duration","tracks","volume","fullscreen"],isVideo:true,enableKeyboard:true,pauseOtherPlayers:true,keyActions:[{keys:[32,179],action:function(a,b){b.paused||b.ended?a.play():a.pause()}},{keys:[38],action:function(a,b){a.container.find(".mejs-volume-slider").css("display","block");if(a.isVideo){a.showControls();
+a.startControlsTimer()}b.setVolume(Math.min(b.volume+0.1,1))}},{keys:[40],action:function(a,b){a.container.find(".mejs-volume-slider").css("display","block");if(a.isVideo){a.showControls();a.startControlsTimer()}b.setVolume(Math.max(b.volume-0.1,0))}},{keys:[37,227],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.max(b.currentTime-a.options.defaultSeekBackwardInterval(b),0);b.setCurrentTime(c)}}},{keys:[39,228],action:function(a,
+b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.min(b.currentTime+a.options.defaultSeekForwardInterval(b),b.duration);b.setCurrentTime(c)}}},{keys:[70],action:function(a){if(typeof a.enterFullScreen!="undefined")a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{keys:[77],action:function(a){a.container.find(".mejs-volume-slider").css("display","block");if(a.isVideo){a.showControls();a.startControlsTimer()}a.media.muted?a.setMuted(false):
+a.setMuted(true)}}]};mejs.mepIndex=0;mejs.players={};mejs.MediaElementPlayer=function(a,b){if(!(this instanceof mejs.MediaElementPlayer))return new mejs.MediaElementPlayer(a,b);this.$media=this.$node=f(a);this.node=this.media=this.$media[0];if(typeof this.node.player!="undefined")return this.node.player;else this.node.player=this;if(typeof b=="undefined")b=this.$node.data("mejsoptions");this.options=f.extend({},mejs.MepDefaults,b);this.id="mep_"+mejs.mepIndex++;mejs.players[this.id]=this;this.init();
+return this};mejs.MediaElementPlayer.prototype={hasFocus:false,controlsAreVisible:true,init:function(){var a=this,b=mejs.MediaFeatures,c=f.extend(true,{},a.options,{success:function(d,g){a.meReady(d,g)},error:function(d){a.handleError(d)}}),e=a.media.tagName.toLowerCase();a.isDynamic=e!=="audio"&&e!=="video";a.isVideo=a.isDynamic?a.options.isVideo:e!=="audio"&&a.options.isVideo;if(b.isiPad&&a.options.iPadUseNativeControls||b.isiPhone&&a.options.iPhoneUseNativeControls){a.$media.attr("controls","controls");
+b.isiPad&&a.media.getAttribute("autoplay")!==null&&a.play()}else if(!(b.isAndroid&&a.options.AndroidUseNativeControls)){a.$media.removeAttr("controls");a.container=f('<div id="'+a.id+'" class="mejs-container '+(mejs.MediaFeatures.svg?"svg":"no-svg")+'"><div class="mejs-inner"><div class="mejs-mediaelement"></div><div class="mejs-layers"></div><div class="mejs-controls"></div><div class="mejs-clear"></div></div></div>').addClass(a.$media[0].className).insertBefore(a.$media);a.container.addClass((b.isAndroid?
 "mejs-android ":"")+(b.isiOS?"mejs-ios ":"")+(b.isiPad?"mejs-ipad ":"")+(b.isiPhone?"mejs-iphone ":"")+(a.isVideo?"mejs-video ":"mejs-audio "));if(b.isiOS){b=a.$media.clone();a.container.find(".mejs-mediaelement").append(b);a.$media.remove();a.$node=a.$media=b;a.node=a.media=b[0]}else a.container.find(".mejs-mediaelement").append(a.$media);a.controls=a.container.find(".mejs-controls");a.layers=a.container.find(".mejs-layers");b=a.isVideo?"video":"audio";e=b.substring(0,1).toUpperCase()+b.substring(1);
 a.width=a.options[b+"Width"]>0||a.options[b+"Width"].toString().indexOf("%")>-1?a.options[b+"Width"]:a.media.style.width!==""&&a.media.style.width!==null?a.media.style.width:a.media.getAttribute("width")!==null?a.$media.attr("width"):a.options["default"+e+"Width"];a.height=a.options[b+"Height"]>0||a.options[b+"Height"].toString().indexOf("%")>-1?a.options[b+"Height"]:a.media.style.height!==""&&a.media.style.height!==null?a.media.style.height:a.$media[0].getAttribute("height")!==null?a.$media.attr("height"):
 a.options["default"+e+"Height"];a.setPlayerSize(a.width,a.height);c.pluginWidth=a.width;c.pluginHeight=a.height}mejs.MediaElement(a.$media[0],c);typeof a.container!="undefined"&&a.controlsAreVisible&&a.container.trigger("controlsshown")},showControls:function(a){var b=this;a=typeof a=="undefined"||a;if(!b.controlsAreVisible){if(a){b.controls.css("visibility","visible").stop(true,true).fadeIn(200,function(){b.controlsAreVisible=true;b.container.trigger("controlsshown")});b.container.find(".mejs-control").css("visibility",
 "mejs-android ":"")+(b.isiOS?"mejs-ios ":"")+(b.isiPad?"mejs-ipad ":"")+(b.isiPhone?"mejs-iphone ":"")+(a.isVideo?"mejs-video ":"mejs-audio "));if(b.isiOS){b=a.$media.clone();a.container.find(".mejs-mediaelement").append(b);a.$media.remove();a.$node=a.$media=b;a.node=a.media=b[0]}else a.container.find(".mejs-mediaelement").append(a.$media);a.controls=a.container.find(".mejs-controls");a.layers=a.container.find(".mejs-layers");b=a.isVideo?"video":"audio";e=b.substring(0,1).toUpperCase()+b.substring(1);
 a.width=a.options[b+"Width"]>0||a.options[b+"Width"].toString().indexOf("%")>-1?a.options[b+"Width"]:a.media.style.width!==""&&a.media.style.width!==null?a.media.style.width:a.media.getAttribute("width")!==null?a.$media.attr("width"):a.options["default"+e+"Width"];a.height=a.options[b+"Height"]>0||a.options[b+"Height"].toString().indexOf("%")>-1?a.options[b+"Height"]:a.media.style.height!==""&&a.media.style.height!==null?a.media.style.height:a.$media[0].getAttribute("height")!==null?a.$media.attr("height"):
 a.options["default"+e+"Height"];a.setPlayerSize(a.width,a.height);c.pluginWidth=a.width;c.pluginHeight=a.height}mejs.MediaElement(a.$media[0],c);typeof a.container!="undefined"&&a.controlsAreVisible&&a.container.trigger("controlsshown")},showControls:function(a){var b=this;a=typeof a=="undefined"||a;if(!b.controlsAreVisible){if(a){b.controls.css("visibility","visible").stop(true,true).fadeIn(200,function(){b.controlsAreVisible=true;b.container.trigger("controlsshown")});b.container.find(".mejs-control").css("visibility",
@@ -97,22 +99,23 @@ c.options.features[g];if(c["build"+e])try{c["build"+e](c,c.controls,c.layers,c.m
 c.clickToPlayPauseCallback,false);c.container.bind("mouseenter mouseover",function(){if(c.controlsEnabled)if(!c.options.alwaysShowControls){c.killControlsTimer("enter");c.showControls();c.startControlsTimer(2500)}}).bind("mousemove",function(){if(c.controlsEnabled){c.controlsAreVisible||c.showControls();c.options.alwaysShowControls||c.startControlsTimer(2500)}}).bind("mouseleave",function(){c.controlsEnabled&&!c.media.paused&&!c.options.alwaysShowControls&&c.startControlsTimer(1E3)})}c.options.hideVideoControlsOnLoad&&
 c.hideControls(false);d&&!c.options.alwaysShowControls&&c.hideControls();c.options.enableAutosize&&c.media.addEventListener("loadedmetadata",function(j){if(c.options.videoHeight<=0&&c.domNode.getAttribute("height")===null&&!isNaN(j.target.videoHeight)){c.setPlayerSize(j.target.videoWidth,j.target.videoHeight);c.setControlsSize();c.media.setVideoSize(j.target.videoWidth,j.target.videoHeight)}},false)}a.addEventListener("play",function(){for(var j in mejs.players){var m=mejs.players[j];m.id!=c.id&&
 c.options.pauseOtherPlayers&&!m.paused&&!m.ended&&m.pause();m.hasFocus=false}c.hasFocus=true},false);c.media.addEventListener("ended",function(){if(c.options.autoRewind)try{c.media.setCurrentTime(0)}catch(j){}c.media.pause();c.setProgressRail&&c.setProgressRail();c.setCurrentRail&&c.setCurrentRail();if(c.options.loop)c.play();else!c.options.alwaysShowControls&&c.controlsEnabled&&c.showControls()},false);c.media.addEventListener("loadedmetadata",function(){c.updateDuration&&c.updateDuration();c.updateCurrent&&
 c.clickToPlayPauseCallback,false);c.container.bind("mouseenter mouseover",function(){if(c.controlsEnabled)if(!c.options.alwaysShowControls){c.killControlsTimer("enter");c.showControls();c.startControlsTimer(2500)}}).bind("mousemove",function(){if(c.controlsEnabled){c.controlsAreVisible||c.showControls();c.options.alwaysShowControls||c.startControlsTimer(2500)}}).bind("mouseleave",function(){c.controlsEnabled&&!c.media.paused&&!c.options.alwaysShowControls&&c.startControlsTimer(1E3)})}c.options.hideVideoControlsOnLoad&&
 c.hideControls(false);d&&!c.options.alwaysShowControls&&c.hideControls();c.options.enableAutosize&&c.media.addEventListener("loadedmetadata",function(j){if(c.options.videoHeight<=0&&c.domNode.getAttribute("height")===null&&!isNaN(j.target.videoHeight)){c.setPlayerSize(j.target.videoWidth,j.target.videoHeight);c.setControlsSize();c.media.setVideoSize(j.target.videoWidth,j.target.videoHeight)}},false)}a.addEventListener("play",function(){for(var j in mejs.players){var m=mejs.players[j];m.id!=c.id&&
 c.options.pauseOtherPlayers&&!m.paused&&!m.ended&&m.pause();m.hasFocus=false}c.hasFocus=true},false);c.media.addEventListener("ended",function(){if(c.options.autoRewind)try{c.media.setCurrentTime(0)}catch(j){}c.media.pause();c.setProgressRail&&c.setProgressRail();c.setCurrentRail&&c.setCurrentRail();if(c.options.loop)c.play();else!c.options.alwaysShowControls&&c.controlsEnabled&&c.showControls()},false);c.media.addEventListener("loadedmetadata",function(){c.updateDuration&&c.updateDuration();c.updateCurrent&&
-c.updateCurrent();if(!c.isFullScreen){c.setPlayerSize(c.width,c.height);c.setControlsSize()}},false);setTimeout(function(){c.setPlayerSize(c.width,c.height);c.setControlsSize()},50);c.globalBind("resize",function(){c.isFullScreen||mejs.MediaFeatures.hasTrueNativeFullScreen&&document.webkitIsFullScreen||c.setPlayerSize(c.width,c.height);c.setControlsSize()});c.media.pluginType=="youtube"&&c.container.find(".mejs-overlay-play").hide()}d&&a.pluginType=="native"&&c.play();if(c.options.success)typeof c.options.success==
-"string"?window[c.options.success](c.media,c.domNode,c):c.options.success(c.media,c.domNode,c)}},handleError:function(a){this.controls.hide();this.options.error&&this.options.error(a)},setPlayerSize:function(a,b){if(typeof a!="undefined")this.width=a;if(typeof b!="undefined")this.height=b;if(this.height.toString().indexOf("%")>0||this.$node.css("max-width")==="100%"||parseInt(this.$node.css("max-width").replace(/px/,""),10)/this.$node.offsetParent().width()===1||this.$node[0].currentStyle&&this.$node[0].currentStyle.maxWidth===
-"100%"){var c=this.isVideo?this.media.videoWidth&&this.media.videoWidth>0?this.media.videoWidth:this.options.defaultVideoWidth:this.options.defaultAudioWidth,e=this.isVideo?this.media.videoHeight&&this.media.videoHeight>0?this.media.videoHeight:this.options.defaultVideoHeight:this.options.defaultAudioHeight,d=this.container.parent().closest(":visible").width();c=this.isVideo||!this.options.autosizeProgress?parseInt(d*e/c,10):e;if(isNaN(c))c=this.container.parent().closest(":visible").height();if(this.container.parent()[0].tagName.toLowerCase()===
-"body"){d=f(window).width();c=f(window).height()}if(c!=0&&d!=0){this.container.width(d).height(c);this.$media.add(this.container.find(".mejs-shim")).width("100%").height("100%");this.isVideo&&this.media.setVideoSize&&this.media.setVideoSize(d,c);this.layers.children(".mejs-layer").width("100%").height("100%")}}else{this.container.width(this.width).height(this.height);this.layers.children(".mejs-layer").width(this.width).height(this.height)}d=this.layers.find(".mejs-overlay-play");c=d.find(".mejs-overlay-button");
-d.height(this.container.height()-this.controls.height());c.css("margin-top","-"+(c.height()/2-this.controls.height()/2).toString()+"px")},setControlsSize:function(){var a=0,b=0,c=this.controls.find(".mejs-time-rail"),e=this.controls.find(".mejs-time-total");this.controls.find(".mejs-time-current");this.controls.find(".mejs-time-loaded");var d=c.siblings(),g=d.last(),k=null;if(!(!this.container.is(":visible")||!c.length||!c.is(":visible"))){if(this.options&&!this.options.autosizeProgress)b=parseInt(c.css("width"));
-if(b===0||!b){d.each(function(){var j=f(this);if(j.css("position")!="absolute"&&j.is(":visible"))a+=f(this).outerWidth(true)});b=this.controls.width()-a-(c.outerWidth(true)-c.width())}do{c.width(b);e.width(b-(e.outerWidth(true)-e.width()));if(g.css("position")!="absolute"){k=g.position();b--}}while(k!=null&&k.top>0&&b>0);this.setProgressRail&&this.setProgressRail();this.setCurrentRail&&this.setCurrentRail()}},buildposter:function(a,b,c,e){var d=f('<div class="mejs-poster mejs-layer"></div>').appendTo(c);
-b=a.$media.attr("poster");if(a.options.poster!=="")b=a.options.poster;b!==""&&b!=null?this.setPoster(b):d.hide();e.addEventListener("play",function(){d.hide()},false);a.options.showPosterWhenEnded&&a.options.autoRewind&&e.addEventListener("ended",function(){d.show()},false)},setPoster:function(a){var b=this.container.find(".mejs-poster"),c=b.find("img");if(c.length==0)c=f('<img width="100%" height="100%" />').appendTo(b);c.attr("src",a);b.css({"background-image":"url("+a+")"})},buildoverlays:function(a,
-b,c,e){var d=this;if(a.isVideo){var g=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-loading"><span></span></div></div>').hide().appendTo(c),k=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-error"></div></div>').hide().appendTo(c),j=f('<div class="mejs-overlay mejs-layer mejs-overlay-play"><div class="mejs-overlay-button"></div></div>').appendTo(c).bind("click touchstart",function(){d.options.clickToPlayPause&&e.paused&&e.play()});e.addEventListener("play",function(){j.hide();
-g.hide();b.find(".mejs-time-buffering").hide();k.hide()},false);e.addEventListener("playing",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();k.hide()},false);e.addEventListener("seeking",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("seeked",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("pause",function(){mejs.MediaFeatures.isiPhone||j.show()},false);e.addEventListener("waiting",function(){g.show();b.find(".mejs-time-buffering").show()},
-false);e.addEventListener("loadeddata",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("canplay",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("error",function(){g.hide();b.find(".mejs-time-buffering").hide();k.show();k.find("mejs-overlay-error").html("Error loading this resource")},false)}},buildkeyboard:function(a,b,c,e){this.globalBind("keydown",function(d){if(a.hasFocus&&a.options.enableKeyboard)for(var g=0,k=a.options.keyActions.length;g<
-k;g++)for(var j=a.options.keyActions[g],m=0,q=j.keys.length;m<q;m++)if(d.keyCode==j.keys[m]){d.preventDefault();j.action(a,e,d.keyCode);return false}return true});this.globalBind("click",function(d){a.hasFocus=f(d.target).closest(".mejs-container").length!=0})},findTracks:function(){var a=this,b=a.$media.find("track");a.tracks=[];b.each(function(c,e){e=f(e);a.tracks.push({srclang:e.attr("srclang")?e.attr("srclang").toLowerCase():"",src:e.attr("src"),kind:e.attr("kind"),label:e.attr("label")||"",entries:[],
-isLoaded:false})})},changeSkin:function(a){this.container[0].className="mejs-container "+a;this.setPlayerSize(this.width,this.height);this.setControlsSize()},play:function(){this.load();this.media.play()},pause:function(){try{this.media.pause()}catch(a){}},load:function(){this.isLoaded||this.media.load();this.isLoaded=true},setMuted:function(a){this.media.setMuted(a)},setCurrentTime:function(a){this.media.setCurrentTime(a)},getCurrentTime:function(){return this.media.currentTime},setVolume:function(a){this.media.setVolume(a)},
-getVolume:function(){return this.media.volume},setSrc:function(a){this.media.setSrc(a)},remove:function(){var a,b;for(a in this.options.features){b=this.options.features[a];if(this["clean"+b])try{this["clean"+b](this)}catch(c){}}if(this.isDynamic)this.$node.insertBefore(this.container);else{this.$media.prop("controls",true);this.$node.clone().show().insertBefore(this.container);this.$node.remove()}this.media.pluginType!=="native"&&this.media.remove();delete mejs.players[this.id];typeof this.container==
-"object"&&this.container.remove();this.globalUnbind();delete this.node.player}};(function(){function a(c,e){var d={d:[],w:[]};f.each((c||"").split(" "),function(g,k){var j=k+"."+e;if(j.indexOf(".")===0){d.d.push(j);d.w.push(j)}else d[b.test(k)?"w":"d"].push(j)});d.d=d.d.join(" ");d.w=d.w.join(" ");return d}var b=/^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;mejs.MediaElementPlayer.prototype.globalBind=function(c,e,d){c=a(c,this.id);
-c.d&&f(document).bind(c.d,e,d);c.w&&f(window).bind(c.w,e,d)};mejs.MediaElementPlayer.prototype.globalUnbind=function(c,e){c=a(c,this.id);c.d&&f(document).unbind(c.d,e);c.w&&f(window).unbind(c.w,e)}})();if(typeof jQuery!="undefined")jQuery.fn.mediaelementplayer=function(a){a===false?this.each(function(){var b=jQuery(this).data("mediaelementplayer");b&&b.remove();jQuery(this).removeData("mediaelementplayer")}):this.each(function(){jQuery(this).data("mediaelementplayer",new mejs.MediaElementPlayer(this,
-a))});return this};f(document).ready(function(){f(".mejs-player").mediaelementplayer()});window.MediaElementPlayer=mejs.MediaElementPlayer})(mejs.$);
+c.updateCurrent();if(!c.isFullScreen){c.setPlayerSize(c.width,c.height);c.setControlsSize()}},false);setTimeout(function(){c.setPlayerSize(c.width,c.height);c.setControlsSize()},50);c.globalBind("resize",function(){c.isFullScreen||mejs.MediaFeatures.hasTrueNativeFullScreen&&document.webkitIsFullScreen||c.setPlayerSize(c.width,c.height);c.setControlsSize()});c.media.pluginType=="youtube"&&c.options.autoplay&&c.container.find(".mejs-overlay-play").hide()}d&&a.pluginType=="native"&&c.play();if(c.options.success)typeof c.options.success==
+"string"?window[c.options.success](c.media,c.domNode,c):c.options.success(c.media,c.domNode,c)}},handleError:function(a){this.controls.hide();this.options.error&&this.options.error(a)},setPlayerSize:function(a,b){if(!this.options.setDimensions)return false;if(typeof a!="undefined")this.width=a;if(typeof b!="undefined")this.height=b;if(this.height.toString().indexOf("%")>0||this.$node.css("max-width")==="100%"||this.$node[0].currentStyle&&this.$node[0].currentStyle.maxWidth==="100%"){var c=this.isVideo?
+this.media.videoWidth&&this.media.videoWidth>0?this.media.videoWidth:this.media.getAttribute("width")!==null?this.media.getAttribute("width"):this.options.defaultVideoWidth:this.options.defaultAudioHeight,e=this.isVideo?this.media.videoHeight&&this.media.videoHeight>0?this.media.videoHeight:this.media.getAttribute("height")!==null?this.media.getAttribute("height"):this.options.defaultVideoHeight:this.options.defaultAudioHeight,d=this.container.parent().closest(":visible").width();c=this.isVideo||
+!this.options.autosizeProgress?parseInt(d*e/c,10)>this.container.parent().closest(":visible").height()?this.container.parent().closest(":visible").height():parseInt(d*e/c,10):e;if(isNaN(c))c=this.container.parent().closest(":visible").height();if(this.container.parent()[0].tagName.toLowerCase()==="body"){d=f(window).width();c=f(window).height()}if(c!=0&&d!=0){this.container.width(d).height(c);this.$media.add(this.container.find(".mejs-shim")).width("100%").height("100%");this.isVideo&&this.media.setVideoSize&&
+this.media.setVideoSize(d,c);this.layers.children(".mejs-layer").width("100%").height("100%")}}else{this.container.width(this.width).height(this.height);this.layers.children(".mejs-layer").width(this.width).height(this.height)}d=this.layers.find(".mejs-overlay-play");c=d.find(".mejs-overlay-button");d.height(this.container.height()-this.controls.height());c.css("margin-top","-"+(c.height()/2-this.controls.height()/2).toString()+"px")},setControlsSize:function(){var a=0,b=0,c=this.controls.find(".mejs-time-rail"),
+e=this.controls.find(".mejs-time-total");this.controls.find(".mejs-time-current");this.controls.find(".mejs-time-loaded");var d=c.siblings(),g=d.last(),k=null;if(!(!this.container.is(":visible")||!c.length||!c.is(":visible"))){if(this.options&&!this.options.autosizeProgress)b=parseInt(c.css("width"));if(b===0||!b){d.each(function(){var j=f(this);if(j.css("position")!="absolute"&&j.is(":visible"))a+=f(this).outerWidth(true)});b=this.controls.width()-a-(c.outerWidth(true)-c.width())}do{c.width(b);e.width(b-
+(e.outerWidth(true)-e.width()));if(g.css("position")!="absolute"){k=g.position();b--}}while(k!=null&&k.top>0&&b>0);this.setProgressRail&&this.setProgressRail();this.setCurrentRail&&this.setCurrentRail()}},buildposter:function(a,b,c,e){var d=f('<div class="mejs-poster mejs-layer"></div>').appendTo(c);b=a.$media.attr("poster");if(a.options.poster!=="")b=a.options.poster;b!==""&&b!=null?this.setPoster(b):d.hide();e.addEventListener("play",function(){d.hide()},false);a.options.showPosterWhenEnded&&a.options.autoRewind&&
+e.addEventListener("ended",function(){d.show()},false)},setPoster:function(a){var b=this.container.find(".mejs-poster"),c=b.find("img");if(c.length==0)c=f('<img width="100%" height="100%" />').appendTo(b);c.attr("src",a);b.css({"background-image":"url("+a+")"})},buildoverlays:function(a,b,c,e){var d=this;if(a.isVideo){var g=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-loading"><span></span></div></div>').hide().appendTo(c),k=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-error"></div></div>').hide().appendTo(c),
+j=f('<div class="mejs-overlay mejs-layer mejs-overlay-play"><div class="mejs-overlay-button"></div></div>').appendTo(c).bind("click",function(){d.options.clickToPlayPause&&e.paused&&e.play()});e.addEventListener("play",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();k.hide()},false);e.addEventListener("playing",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();k.hide()},false);e.addEventListener("seeking",function(){g.show();b.find(".mejs-time-buffering").show()},
+false);e.addEventListener("seeked",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("pause",function(){mejs.MediaFeatures.isiPhone||j.show()},false);e.addEventListener("waiting",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("loadeddata",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("canplay",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("error",function(){g.hide();
+b.find(".mejs-time-buffering").hide();k.show();k.find("mejs-overlay-error").html("Error loading this resource")},false);e.addEventListener("keydown",function(m){d.onkeydown(a,e,m)},false)}},buildkeyboard:function(a,b,c,e){var d=this;d.globalBind("keydown",function(g){return d.onkeydown(a,e,g)});d.globalBind("click",function(g){a.hasFocus=f(g.target).closest(".mejs-container").length!=0})},onkeydown:function(a,b,c){if(a.hasFocus&&a.options.enableKeyboard)for(var e=0,d=a.options.keyActions.length;e<
+d;e++)for(var g=a.options.keyActions[e],k=0,j=g.keys.length;k<j;k++)if(c.keyCode==g.keys[k]){typeof c.preventDefault=="function"&&c.preventDefault();g.action(a,b,c.keyCode);return false}return true},findTracks:function(){var a=this,b=a.$media.find("track");a.tracks=[];b.each(function(c,e){e=f(e);a.tracks.push({srclang:e.attr("srclang")?e.attr("srclang").toLowerCase():"",src:e.attr("src"),kind:e.attr("kind"),label:e.attr("label")||"",entries:[],isLoaded:false})})},changeSkin:function(a){this.container[0].className=
+"mejs-container "+a;this.setPlayerSize(this.width,this.height);this.setControlsSize()},play:function(){this.load();this.media.play()},pause:function(){try{this.media.pause()}catch(a){}},load:function(){this.isLoaded||this.media.load();this.isLoaded=true},setMuted:function(a){this.media.setMuted(a)},setCurrentTime:function(a){this.media.setCurrentTime(a)},getCurrentTime:function(){return this.media.currentTime},setVolume:function(a){this.media.setVolume(a)},getVolume:function(){return this.media.volume},
+setSrc:function(a){this.media.setSrc(a)},remove:function(){var a,b;for(a in this.options.features){b=this.options.features[a];if(this["clean"+b])try{this["clean"+b](this)}catch(c){}}if(this.isDynamic)this.$node.insertBefore(this.container);else{this.$media.prop("controls",true);this.$node.clone().insertBefore(this.container).show();this.$node.remove()}this.media.pluginType!=="native"&&this.media.remove();delete mejs.players[this.id];typeof this.container=="object"&&this.container.remove();this.globalUnbind();
+delete this.node.player}};(function(){function a(c,e){var d={d:[],w:[]};f.each((c||"").split(" "),function(g,k){var j=k+"."+e;if(j.indexOf(".")===0){d.d.push(j);d.w.push(j)}else d[b.test(k)?"w":"d"].push(j)});d.d=d.d.join(" ");d.w=d.w.join(" ");return d}var b=/^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;mejs.MediaElementPlayer.prototype.globalBind=function(c,e,d){c=a(c,this.id);c.d&&f(document).bind(c.d,e,d);c.w&&f(window).bind(c.w,
+e,d)};mejs.MediaElementPlayer.prototype.globalUnbind=function(c,e){c=a(c,this.id);c.d&&f(document).unbind(c.d,e);c.w&&f(window).unbind(c.w,e)}})();if(typeof f!="undefined"){f.fn.mediaelementplayer=function(a){a===false?this.each(function(){var b=f(this).data("mediaelementplayer");b&&b.remove();f(this).removeData("mediaelementplayer")}):this.each(function(){f(this).data("mediaelementplayer",new mejs.MediaElementPlayer(this,a))});return this};f(document).ready(function(){f(".mejs-player").mediaelementplayer()})}window.MediaElementPlayer=
+mejs.MediaElementPlayer})(mejs.$);
 (function(f){f.extend(mejs.MepDefaults,{playpauseText:mejs.i18n.t("Play/Pause")});f.extend(MediaElementPlayer.prototype,{buildplaypause:function(a,b,c,e){var d=f('<div class="mejs-button mejs-playpause-button mejs-play" ><button type="button" aria-controls="'+this.id+'" title="'+this.options.playpauseText+'" aria-label="'+this.options.playpauseText+'"></button></div>').appendTo(b).click(function(g){g.preventDefault();e.paused?e.play():e.pause();return false});e.addEventListener("play",function(){d.removeClass("mejs-play").addClass("mejs-pause")},
 false);e.addEventListener("playing",function(){d.removeClass("mejs-play").addClass("mejs-pause")},false);e.addEventListener("pause",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false);e.addEventListener("paused",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false)}})})(mejs.$);
 (function(f){f.extend(mejs.MepDefaults,{stopText:"Stop"});f.extend(MediaElementPlayer.prototype,{buildstop:function(a,b,c,e){f('<div class="mejs-button mejs-stop-button mejs-stop"><button type="button" aria-controls="'+this.id+'" title="'+this.options.stopText+'" aria-label="'+this.options.stopText+'"></button></div>').appendTo(b).click(function(){e.paused||e.pause();if(e.currentTime>0){e.setCurrentTime(0);e.pause();b.find(".mejs-time-current").width("0px");b.find(".mejs-time-handle").css("left",
 (function(f){f.extend(mejs.MepDefaults,{playpauseText:mejs.i18n.t("Play/Pause")});f.extend(MediaElementPlayer.prototype,{buildplaypause:function(a,b,c,e){var d=f('<div class="mejs-button mejs-playpause-button mejs-play" ><button type="button" aria-controls="'+this.id+'" title="'+this.options.playpauseText+'" aria-label="'+this.options.playpauseText+'"></button></div>').appendTo(b).click(function(g){g.preventDefault();e.paused?e.play():e.pause();return false});e.addEventListener("play",function(){d.removeClass("mejs-play").addClass("mejs-pause")},
 false);e.addEventListener("playing",function(){d.removeClass("mejs-play").addClass("mejs-pause")},false);e.addEventListener("pause",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false);e.addEventListener("paused",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false)}})})(mejs.$);
 (function(f){f.extend(mejs.MepDefaults,{stopText:"Stop"});f.extend(MediaElementPlayer.prototype,{buildstop:function(a,b,c,e){f('<div class="mejs-button mejs-stop-button mejs-stop"><button type="button" aria-controls="'+this.id+'" title="'+this.options.stopText+'" aria-label="'+this.options.stopText+'"></button></div>').appendTo(b).click(function(){e.paused||e.pause();if(e.currentTime>0){e.setCurrentTime(0);e.pause();b.find(".mejs-time-current").width("0px");b.find(".mejs-time-handle").css("left",
@@ -133,39 +136,43 @@ j=d.container.find(".mejs-volume-slider, .mejs-horizontal-volume-slider"),m=d.co
 if(g=="vertical"){var s=m.height(),u=m.position(),v=s-s*n;p.css("top",Math.round(u.top+v-p.height()/2));q.height(s-v);q.css("top",u.top+v)}else{s=m.width();u=m.position();s=s*n;p.css("left",Math.round(u.left+s-p.width()/2));q.width(Math.round(s))}}},h=function(n){var o=null,s=m.offset();if(g=="vertical"){o=m.height();parseInt(m.css("top").replace(/px/,""),10);o=(o-(n.pageY-s.top))/o;if(s.top==0||s.left==0)return}else{o=m.width();o=(n.pageX-s.left)/o}o=Math.max(0,o);o=Math.min(o,1);t(o);o==0?e.setMuted(true):
 e.setMuted(false);e.setVolume(o)},l=false,r=false;k.hover(function(){j.show();r=true},function(){r=false;!l&&g=="vertical"&&j.hide()});j.bind("mouseover",function(){r=true}).bind("mousedown",function(n){h(n);d.globalBind("mousemove.vol",function(o){h(o)});d.globalBind("mouseup.vol",function(){l=false;d.globalUnbind(".vol");!r&&g=="vertical"&&j.hide()});l=true;return false});k.find("button").click(function(){e.setMuted(!e.muted)});e.addEventListener("volumechange",function(){if(!l)if(e.muted){t(0);
 k.removeClass("mejs-mute").addClass("mejs-unmute")}else{t(e.volume);k.removeClass("mejs-unmute").addClass("mejs-mute")}},false);if(d.container.is(":visible")){t(a.options.startVolume);a.options.startVolume===0&&e.setMuted(true);e.pluginType==="native"&&e.setVolume(a.options.startVolume)}}}})})(mejs.$);
 if(g=="vertical"){var s=m.height(),u=m.position(),v=s-s*n;p.css("top",Math.round(u.top+v-p.height()/2));q.height(s-v);q.css("top",u.top+v)}else{s=m.width();u=m.position();s=s*n;p.css("left",Math.round(u.left+s-p.width()/2));q.width(Math.round(s))}}},h=function(n){var o=null,s=m.offset();if(g=="vertical"){o=m.height();parseInt(m.css("top").replace(/px/,""),10);o=(o-(n.pageY-s.top))/o;if(s.top==0||s.left==0)return}else{o=m.width();o=(n.pageX-s.left)/o}o=Math.max(0,o);o=Math.min(o,1);t(o);o==0?e.setMuted(true):
 e.setMuted(false);e.setVolume(o)},l=false,r=false;k.hover(function(){j.show();r=true},function(){r=false;!l&&g=="vertical"&&j.hide()});j.bind("mouseover",function(){r=true}).bind("mousedown",function(n){h(n);d.globalBind("mousemove.vol",function(o){h(o)});d.globalBind("mouseup.vol",function(){l=false;d.globalUnbind(".vol");!r&&g=="vertical"&&j.hide()});l=true;return false});k.find("button").click(function(){e.setMuted(!e.muted)});e.addEventListener("volumechange",function(){if(!l)if(e.muted){t(0);
 k.removeClass("mejs-mute").addClass("mejs-unmute")}else{t(e.volume);k.removeClass("mejs-unmute").addClass("mejs-mute")}},false);if(d.container.is(":visible")){t(a.options.startVolume);a.options.startVolume===0&&e.setMuted(true);e.pluginType==="native"&&e.setVolume(a.options.startVolume)}}}})})(mejs.$);
-(function(f){f.extend(mejs.MepDefaults,{usePluginFullScreen:true,newWindowCallback:function(){return""},fullscreenText:mejs.i18n.t("Fullscreen")});f.extend(MediaElementPlayer.prototype,{isFullScreen:false,isNativeFullScreen:false,isInIframe:false,buildfullscreen:function(a,b,c,e){if(a.isVideo){a.isInIframe=window.location!=window.parent.location;if(mejs.MediaFeatures.hasTrueNativeFullScreen){c=function(){if(a.isFullScreen)if(mejs.MediaFeatures.isFullScreen()){a.isNativeFullScreen=true;a.setControlsSize()}else{a.isNativeFullScreen=
-false;a.exitFullScreen()}};mejs.MediaFeatures.hasMozNativeFullScreen?a.globalBind(mejs.MediaFeatures.fullScreenEventName,c):a.container.bind(mejs.MediaFeatures.fullScreenEventName,c)}var d=this,g=f('<div class="mejs-button mejs-fullscreen-button"><button type="button" aria-controls="'+d.id+'" title="'+d.options.fullscreenText+'" aria-label="'+d.options.fullscreenText+'"></button></div>').appendTo(b);if(d.media.pluginType==="native"||!d.options.usePluginFullScreen&&!mejs.MediaFeatures.isFirefox)g.click(function(){mejs.MediaFeatures.hasTrueNativeFullScreen&&
-mejs.MediaFeatures.isFullScreen()||a.isFullScreen?a.exitFullScreen():a.enterFullScreen()});else{var k=null;if(function(){var h=document.createElement("x"),l=document.documentElement,r=window.getComputedStyle;if(!("pointerEvents"in h.style))return false;h.style.pointerEvents="auto";h.style.pointerEvents="x";l.appendChild(h);r=r&&r(h,"").pointerEvents==="auto";l.removeChild(h);return!!r}()&&!mejs.MediaFeatures.isOpera){var j=false,m=function(){if(j){for(var h in q)q[h].hide();g.css("pointer-events",
-"");d.controls.css("pointer-events","");d.media.removeEventListener("click",d.clickToPlayPauseCallback);j=false}},q={};b=["top","left","right","bottom"];var p,t=function(){var h=g.offset().left-d.container.offset().left,l=g.offset().top-d.container.offset().top,r=g.outerWidth(true),n=g.outerHeight(true),o=d.container.width(),s=d.container.height();for(p in q)q[p].css({position:"absolute",top:0,left:0});q.top.width(o).height(l);q.left.width(h).height(n).css({top:l});q.right.width(o-h-r).height(n).css({top:l,
-left:h+r});q.bottom.width(o).height(s-n-l).css({top:l+n})};d.globalBind("resize",function(){t()});p=0;for(c=b.length;p<c;p++)q[b[p]]=f('<div class="mejs-fullscreen-hover" />').appendTo(d.container).mouseover(m).hide();g.on("mouseover",function(){if(!d.isFullScreen){var h=g.offset(),l=a.container.offset();e.positionFullscreenButton(h.left-l.left,h.top-l.top,false);g.css("pointer-events","none");d.controls.css("pointer-events","none");d.media.addEventListener("click",d.clickToPlayPauseCallback);for(p in q)q[p].show();
-t();j=true}});e.addEventListener("fullscreenchange",function(){d.isFullScreen=!d.isFullScreen;d.isFullScreen?d.media.removeEventListener("click",d.clickToPlayPauseCallback):d.media.addEventListener("click",d.clickToPlayPauseCallback);m()});d.globalBind("mousemove",function(h){if(j){var l=g.offset();if(h.pageY<l.top||h.pageY>l.top+g.outerHeight(true)||h.pageX<l.left||h.pageX>l.left+g.outerWidth(true)){g.css("pointer-events","");d.controls.css("pointer-events","");j=false}}})}else g.on("mouseover",
-function(){if(k!==null){clearTimeout(k);delete k}var h=g.offset(),l=a.container.offset();e.positionFullscreenButton(h.left-l.left,h.top-l.top,true)}).on("mouseout",function(){if(k!==null){clearTimeout(k);delete k}k=setTimeout(function(){e.hideFullscreenButton()},1500)})}a.fullscreenBtn=g;d.globalBind("keydown",function(h){if((mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||d.isFullScreen)&&h.keyCode==27)a.exitFullScreen()})}},cleanfullscreen:function(a){a.exitFullScreen()},
-containerSizeTimeout:null,enterFullScreen:function(){var a=this;if(!(a.media.pluginType!=="native"&&(mejs.MediaFeatures.isFirefox||a.options.usePluginFullScreen))){f(document.documentElement).addClass("mejs-fullscreen");normalHeight=a.container.height();normalWidth=a.container.width();if(a.media.pluginType==="native")if(mejs.MediaFeatures.hasTrueNativeFullScreen){mejs.MediaFeatures.requestFullScreen(a.container[0]);a.isInIframe&&setTimeout(function c(){if(a.isNativeFullScreen){var e=(window.devicePixelRatio||
-1)*f(window).width(),d=screen.width;Math.abs(d-e)>d*0.0020?a.exitFullScreen():setTimeout(c,500)}},500)}else if(mejs.MediaFeatures.hasSemiNativeFullScreen){a.media.webkitEnterFullscreen();return}if(a.isInIframe){var b=a.options.newWindowCallback(this);if(b!=="")if(mejs.MediaFeatures.hasTrueNativeFullScreen)setTimeout(function(){if(!a.isNativeFullScreen){a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no")}},
-250);else{a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no");return}}a.container.addClass("mejs-container-fullscreen").width("100%").height("100%");a.containerSizeTimeout=setTimeout(function(){a.container.css({width:"100%",height:"100%"});a.setControlsSize()},500);if(a.media.pluginType==="native")a.$media.width("100%").height("100%");else{a.container.find(".mejs-shim").width("100%").height("100%");
-a.media.setVideoSize(f(window).width(),f(window).height())}a.layers.children("div").width("100%").height("100%");a.fullscreenBtn&&a.fullscreenBtn.removeClass("mejs-fullscreen").addClass("mejs-unfullscreen");a.setControlsSize();a.isFullScreen=true}},exitFullScreen:function(){clearTimeout(this.containerSizeTimeout);if(this.media.pluginType!=="native"&&mejs.MediaFeatures.isFirefox)this.media.setFullscreen(false);else{if(mejs.MediaFeatures.hasTrueNativeFullScreen&&(mejs.MediaFeatures.isFullScreen()||
-this.isFullScreen))mejs.MediaFeatures.cancelFullScreen();f(document.documentElement).removeClass("mejs-fullscreen");this.container.removeClass("mejs-container-fullscreen").width(normalWidth).height(normalHeight);if(this.media.pluginType==="native")this.$media.width(normalWidth).height(normalHeight);else{this.container.find(".mejs-shim").width(normalWidth).height(normalHeight);this.media.setVideoSize(normalWidth,normalHeight)}this.layers.children("div").width(normalWidth).height(normalHeight);this.fullscreenBtn.removeClass("mejs-unfullscreen").addClass("mejs-fullscreen");
-this.setControlsSize();this.isFullScreen=false}}})})(mejs.$);
-(function(f){f.extend(mejs.MepDefaults,{startLanguage:"",tracksText:mejs.i18n.t("Captions/Subtitles"),hideCaptionsButtonWhenEmpty:true,toggleCaptionsButtonWhenOnlyOne:false,slidesSelector:""});f.extend(MediaElementPlayer.prototype,{hasChapters:false,buildtracks:function(a,b,c,e){if(a.tracks.length!=0){var d;if(this.domNode.textTracks)for(d=this.domNode.textTracks.length-1;d>=0;d--)this.domNode.textTracks[d].mode="hidden";a.chapters=f('<div class="mejs-chapters mejs-layer"></div>').prependTo(c).hide();a.captions=
-f('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover"><span class="mejs-captions-text"></span></div></div>').prependTo(c).hide();a.captionsText=a.captions.find(".mejs-captions-text");a.captionsButton=f('<div class="mejs-button mejs-captions-button"><button type="button" aria-controls="'+this.id+'" title="'+this.options.tracksText+'" aria-label="'+this.options.tracksText+'"></button><div class="mejs-captions-selector"><ul><li><input type="radio" name="'+
-a.id+'_captions" id="'+a.id+'_captions_none" value="none" checked="checked" /><label for="'+a.id+'_captions_none">'+mejs.i18n.t("None")+"</label></li></ul></div></div>").appendTo(b);for(d=b=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&b++;this.options.toggleCaptionsButtonWhenOnlyOne&&b==1?a.captionsButton.on("click",function(){a.setTrack(a.selectedTrack==null?a.tracks[0].srclang:"none")}):a.captionsButton.hover(function(){f(this).find(".mejs-captions-selector").css("visibility","visible")},
-function(){f(this).find(".mejs-captions-selector").css("visibility","hidden")}).on("click","input[type=radio]",function(){lang=this.value;a.setTrack(lang)});a.options.alwaysShowControls?a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover"):a.container.bind("controlsshown",function(){a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover")}).bind("controlshidden",function(){e.paused||a.container.find(".mejs-captions-position").removeClass("mejs-captions-position-hover")});
-a.trackToLoad=-1;a.selectedTrack=null;a.isLoadingTrack=false;for(d=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&a.addTrackButton(a.tracks[d].srclang,a.tracks[d].label);a.loadNextTrack();e.addEventListener("timeupdate",function(){a.displayCaptions()},false);if(a.options.slidesSelector!=""){a.slidesContainer=f(a.options.slidesSelector);e.addEventListener("timeupdate",function(){a.displaySlides()},false)}e.addEventListener("loadedmetadata",function(){a.displayChapters()},false);a.container.hover(function(){if(a.hasChapters){a.chapters.css("visibility",
-"visible");a.chapters.fadeIn(200).height(a.chapters.find(".mejs-chapter").outerHeight())}},function(){a.hasChapters&&!e.paused&&a.chapters.fadeOut(200,function(){f(this).css("visibility","hidden");f(this).css("display","block")})});a.node.getAttribute("autoplay")!==null&&a.chapters.css("visibility","hidden")}},setTrack:function(a){var b;if(a=="none"){this.selectedTrack=null;this.captionsButton.removeClass("mejs-captions-enabled")}else for(b=0;b<this.tracks.length;b++)if(this.tracks[b].srclang==a){this.selectedTrack==
+(function(f){f.extend(mejs.MepDefaults,{usePluginFullScreen:true,newWindowCallback:function(){return""},fullscreenText:mejs.i18n.t("Fullscreen")});f.extend(MediaElementPlayer.prototype,{isFullScreen:false,isNativeFullScreen:false,isInIframe:false,buildfullscreen:function(a,b,c,e){if(a.isVideo){a.isInIframe=window.location!=window.parent.location;mejs.MediaFeatures.hasTrueNativeFullScreen&&a.globalBind(mejs.MediaFeatures.fullScreenEventName,function(){if(a.isFullScreen)if(mejs.MediaFeatures.isFullScreen()){a.isNativeFullScreen=
+true;a.setControlsSize()}else{a.isNativeFullScreen=false;a.exitFullScreen()}});var d=this,g=f('<div class="mejs-button mejs-fullscreen-button"><button type="button" aria-controls="'+d.id+'" title="'+d.options.fullscreenText+'" aria-label="'+d.options.fullscreenText+'"></button></div>').appendTo(b);if(d.media.pluginType==="native"||!d.options.usePluginFullScreen&&!mejs.MediaFeatures.isFirefox)g.click(function(){mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||a.isFullScreen?
+a.exitFullScreen():a.enterFullScreen()});else{var k=null;if(function(){var h=document.createElement("x"),l=document.documentElement,r=window.getComputedStyle;if(!("pointerEvents"in h.style))return false;h.style.pointerEvents="auto";h.style.pointerEvents="x";l.appendChild(h);r=r&&r(h,"").pointerEvents==="auto";l.removeChild(h);return!!r}()&&!mejs.MediaFeatures.isOpera){var j=false,m=function(){if(j){for(var h in q)q[h].hide();g.css("pointer-events","");d.controls.css("pointer-events","");d.media.removeEventListener("click",
+d.clickToPlayPauseCallback);j=false}},q={};b=["top","left","right","bottom"];var p,t=function(){var h=g.offset().left-d.container.offset().left,l=g.offset().top-d.container.offset().top,r=g.outerWidth(true),n=g.outerHeight(true),o=d.container.width(),s=d.container.height();for(p in q)q[p].css({position:"absolute",top:0,left:0});q.top.width(o).height(l);q.left.width(h).height(n).css({top:l});q.right.width(o-h-r).height(n).css({top:l,left:h+r});q.bottom.width(o).height(s-n-l).css({top:l+n})};d.globalBind("resize",
+function(){t()});p=0;for(c=b.length;p<c;p++)q[b[p]]=f('<div class="mejs-fullscreen-hover" />').appendTo(d.container).mouseover(m).hide();g.on("mouseover",function(){if(!d.isFullScreen){var h=g.offset(),l=a.container.offset();e.positionFullscreenButton(h.left-l.left,h.top-l.top,false);g.css("pointer-events","none");d.controls.css("pointer-events","none");d.media.addEventListener("click",d.clickToPlayPauseCallback);for(p in q)q[p].show();t();j=true}});e.addEventListener("fullscreenchange",function(){d.isFullScreen=
+!d.isFullScreen;d.isFullScreen?d.media.removeEventListener("click",d.clickToPlayPauseCallback):d.media.addEventListener("click",d.clickToPlayPauseCallback);m()});d.globalBind("mousemove",function(h){if(j){var l=g.offset();if(h.pageY<l.top||h.pageY>l.top+g.outerHeight(true)||h.pageX<l.left||h.pageX>l.left+g.outerWidth(true)){g.css("pointer-events","");d.controls.css("pointer-events","");j=false}}})}else g.on("mouseover",function(){if(k!==null){clearTimeout(k);delete k}var h=g.offset(),l=a.container.offset();
+e.positionFullscreenButton(h.left-l.left,h.top-l.top,true)}).on("mouseout",function(){if(k!==null){clearTimeout(k);delete k}k=setTimeout(function(){e.hideFullscreenButton()},1500)})}a.fullscreenBtn=g;d.globalBind("keydown",function(h){if((mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||d.isFullScreen)&&h.keyCode==27)a.exitFullScreen()})}},cleanfullscreen:function(a){a.exitFullScreen()},containerSizeTimeout:null,enterFullScreen:function(){var a=this;if(!(a.media.pluginType!==
+"native"&&(mejs.MediaFeatures.isFirefox||a.options.usePluginFullScreen))){f(document.documentElement).addClass("mejs-fullscreen");normalHeight=a.container.height();normalWidth=a.container.width();if(a.media.pluginType==="native")if(mejs.MediaFeatures.hasTrueNativeFullScreen){mejs.MediaFeatures.requestFullScreen(a.container[0]);a.isInIframe&&setTimeout(function c(){if(a.isNativeFullScreen){var e=(window.devicePixelRatio||1)*f(window).width(),d=screen.width;Math.abs(d-e)>d*0.0020?a.exitFullScreen():
+setTimeout(c,500)}},500)}else if(mejs.MediaFeatures.hasSemiNativeFullScreen){a.media.webkitEnterFullscreen();return}if(a.isInIframe){var b=a.options.newWindowCallback(this);if(b!=="")if(mejs.MediaFeatures.hasTrueNativeFullScreen)setTimeout(function(){if(!a.isNativeFullScreen){a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no")}},250);else{a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+
+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no");return}}a.container.addClass("mejs-container-fullscreen").width("100%").height("100%");a.containerSizeTimeout=setTimeout(function(){a.container.css({width:"100%",height:"100%"});a.setControlsSize()},500);if(a.media.pluginType==="native")a.$media.width("100%").height("100%");else{a.container.find(".mejs-shim").width("100%").height("100%");a.media.setVideoSize(f(window).width(),f(window).height())}a.layers.children("div").width("100%").height("100%");
+a.fullscreenBtn&&a.fullscreenBtn.removeClass("mejs-fullscreen").addClass("mejs-unfullscreen");a.setControlsSize();a.isFullScreen=true;a.container.find(".mejs-captions-text").css("font-size",screen.width/a.width*1*100+"%");a.container.find(".mejs-captions-position").css("bottom","45px")}},exitFullScreen:function(){clearTimeout(this.containerSizeTimeout);if(this.media.pluginType!=="native"&&mejs.MediaFeatures.isFirefox)this.media.setFullscreen(false);else{if(mejs.MediaFeatures.hasTrueNativeFullScreen&&
+(mejs.MediaFeatures.isFullScreen()||this.isFullScreen))mejs.MediaFeatures.cancelFullScreen();f(document.documentElement).removeClass("mejs-fullscreen");this.container.removeClass("mejs-container-fullscreen").width(normalWidth).height(normalHeight);if(this.media.pluginType==="native")this.$media.width(normalWidth).height(normalHeight);else{this.container.find(".mejs-shim").width(normalWidth).height(normalHeight);this.media.setVideoSize(normalWidth,normalHeight)}this.layers.children("div").width(normalWidth).height(normalHeight);
+this.fullscreenBtn.removeClass("mejs-unfullscreen").addClass("mejs-fullscreen");this.setControlsSize();this.isFullScreen=false;this.container.find(".mejs-captions-text").css("font-size","");this.container.find(".mejs-captions-position").css("bottom","")}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{speeds:["1.50","1.25","1.00","0.75"],defaultSpeed:"1.00"});f.extend(MediaElementPlayer.prototype,{buildspeed:function(a,b,c,e){if(a.isVideo)if(this.media.pluginType=="native"){c='<div class="mejs-button mejs-speed-button"><button type="button">'+this.options.defaultSpeed+'x</button><div class="mejs-speed-selector"><ul>';var d;f.inArray(this.options.defaultSpeed,this.options.speeds)===-1&&this.options.speeds.push(this.options.defaultSpeed);this.options.speeds.sort(function(g,
+k){return parseFloat(k)-parseFloat(g)});for(d=0;d<this.options.speeds.length;d++){c+='<li><input type="radio" name="speed" value="'+this.options.speeds[d]+'" id="'+this.options.speeds[d]+'" ';if(this.options.speeds[d]==this.options.defaultSpeed){c+="checked=true ";c+='/><label for="'+this.options.speeds[d]+'" class="mejs-speed-selected">'+this.options.speeds[d]+"x</label></li>"}else c+='/><label for="'+this.options.speeds[d]+'">'+this.options.speeds[d]+"x</label></li>"}c+="</ul></div></div>";a.speedButton=
+f(c).appendTo(b);a.playbackspeed=this.options.defaultSpeed;a.speedButton.on("click","input[type=radio]",function(){a.playbackspeed=f(this).attr("value");e.playbackRate=parseFloat(a.playbackspeed);a.speedButton.find("button").text(a.playbackspeed+"x");a.speedButton.find(".mejs-speed-selected").removeClass("mejs-speed-selected");a.speedButton.find("input[type=radio]:checked").next().addClass("mejs-speed-selected")});b=a.speedButton.find(".mejs-speed-selector");b.height(this.speedButton.find(".mejs-speed-selector ul").outerHeight(true)+
+a.speedButton.find(".mejs-speed-translations").outerHeight(true));b.css("top",-1*b.height()+"px")}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{startLanguage:"",tracksText:mejs.i18n.t("Captions/Subtitles"),hideCaptionsButtonWhenEmpty:true,toggleCaptionsButtonWhenOnlyOne:false,slidesSelector:""});f.extend(MediaElementPlayer.prototype,{hasChapters:false,buildtracks:function(a,b,c,e){if(a.tracks.length!==0){var d;if(this.domNode.textTracks)for(d=this.domNode.textTracks.length-1;d>=0;d--)this.domNode.textTracks[d].mode="hidden";a.chapters=f('<div class="mejs-chapters mejs-layer"></div>').prependTo(c).hide();
+a.captions=f('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover"><span class="mejs-captions-text"></span></div></div>').prependTo(c).hide();a.captionsText=a.captions.find(".mejs-captions-text");a.captionsButton=f('<div class="mejs-button mejs-captions-button"><button type="button" aria-controls="'+this.id+'" title="'+this.options.tracksText+'" aria-label="'+this.options.tracksText+'"></button><div class="mejs-captions-selector"><ul><li><input type="radio" name="'+
+a.id+'_captions" id="'+a.id+'_captions_none" value="none" checked="checked" /><label for="'+a.id+'_captions_none">'+mejs.i18n.t("None")+"</label></li></ul></div></div>").appendTo(b);for(d=b=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&b++;if(this.options.toggleCaptionsButtonWhenOnlyOne&&b==1)a.captionsButton.on("click",function(){lang=a.selectedTrack===null?a.tracks[0].srclang:"none";a.setTrack(lang)});else{a.captionsButton.on("mouseenter focusin",function(){f(this).find(".mejs-captions-selector").css("visibility",
+"visible")}).on("click","input[type=radio]",function(){lang=this.value;a.setTrack(lang)});a.captionsButton.on("mouseleave focusout",function(){f(this).find(".mejs-captions-selector").css("visibility","hidden")})}a.options.alwaysShowControls?a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover"):a.container.bind("controlsshown",function(){a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover")}).bind("controlshidden",function(){e.paused||a.container.find(".mejs-captions-position").removeClass("mejs-captions-position-hover")});
+a.trackToLoad=-1;a.selectedTrack=null;a.isLoadingTrack=false;for(d=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&a.addTrackButton(a.tracks[d].srclang,a.tracks[d].label);a.loadNextTrack();e.addEventListener("timeupdate",function(){a.displayCaptions()},false);if(a.options.slidesSelector!==""){a.slidesContainer=f(a.options.slidesSelector);e.addEventListener("timeupdate",function(){a.displaySlides()},false)}e.addEventListener("loadedmetadata",function(){a.displayChapters()},false);a.container.hover(function(){if(a.hasChapters){a.chapters.css("visibility",
+"visible");a.chapters.fadeIn(200).height(a.chapters.find(".mejs-chapter").outerHeight())}},function(){a.hasChapters&&!e.paused&&a.chapters.fadeOut(200,function(){f(this).css("visibility","hidden");f(this).css("display","block")})});a.node.getAttribute("autoplay")!==null&&a.chapters.css("visibility","hidden")}},setTrack:function(a){var b;if(a=="none"){this.selectedTrack=null;this.captionsButton.removeClass("mejs-captions-enabled")}else for(b=0;b<this.tracks.length;b++)if(this.tracks[b].srclang==a){this.selectedTrack===
 null&&this.captionsButton.addClass("mejs-captions-enabled");this.selectedTrack=this.tracks[b];this.captions.attr("lang",this.selectedTrack.srclang);this.displayCaptions();break}},loadNextTrack:function(){this.trackToLoad++;if(this.trackToLoad<this.tracks.length){this.isLoadingTrack=true;this.loadTrack(this.trackToLoad)}else{this.isLoadingTrack=false;this.checkForTracks()}},loadTrack:function(a){var b=this,c=b.tracks[a];f.ajax({url:c.src,dataType:"text",success:function(e){c.entries=typeof e=="string"&&
 null&&this.captionsButton.addClass("mejs-captions-enabled");this.selectedTrack=this.tracks[b];this.captions.attr("lang",this.selectedTrack.srclang);this.displayCaptions();break}},loadNextTrack:function(){this.trackToLoad++;if(this.trackToLoad<this.tracks.length){this.isLoadingTrack=true;this.loadTrack(this.trackToLoad)}else{this.isLoadingTrack=false;this.checkForTracks()}},loadTrack:function(a){var b=this,c=b.tracks[a];f.ajax({url:c.src,dataType:"text",success:function(e){c.entries=typeof e=="string"&&
-/<tt\s+xml/ig.exec(e)?mejs.TrackFormatParser.dfxp.parse(e):mejs.TrackFormatParser.webvvt.parse(e);c.isLoaded=true;b.enableTrackButton(c.srclang,c.label);b.loadNextTrack();c.kind=="chapters"&&b.media.addEventListener("play",function(){b.media.duration>0&&b.displayChapters(c)},false);c.kind=="slides"&&b.setupSlides(c)},error:function(){b.loadNextTrack()}})},enableTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("input[value="+a+"]").prop("disabled",false).siblings("label").html(b);
-this.options.startLanguage==a&&f("#"+this.id+"_captions_"+a).click();this.adjustLanguageBox()},addTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("ul").append(f('<li><input type="radio" name="'+this.id+'_captions" id="'+this.id+"_captions_"+a+'" value="'+a+'" disabled="disabled" /><label for="'+this.id+"_captions_"+a+'">'+b+" (loading)</label></li>"));this.adjustLanguageBox();this.container.find(".mejs-captions-translations option[value="+a+"]").remove()},
-adjustLanguageBox:function(){this.captionsButton.find(".mejs-captions-selector").height(this.captionsButton.find(".mejs-captions-selector ul").outerHeight(true)+this.captionsButton.find(".mejs-captions-translations").outerHeight(true))},checkForTracks:function(){var a=false;if(this.options.hideCaptionsButtonWhenEmpty){for(i=0;i<this.tracks.length;i++)if(this.tracks[i].kind=="subtitles"){a=true;break}if(!a){this.captionsButton.hide();this.setControlsSize()}}},displayCaptions:function(){if(typeof this.tracks!=
-"undefined"){var a,b=this.selectedTrack;if(b!=null&&b.isLoaded)for(a=0;a<b.entries.times.length;a++)if(this.media.currentTime>=b.entries.times[a].start&&this.media.currentTime<=b.entries.times[a].stop){this.captionsText.html(b.entries.text[a]);this.captions.show().height(0);return}this.captions.hide()}},setupSlides:function(a){this.slides=a;this.slides.entries.imgs=[this.slides.entries.text.length];this.showSlide(0)},showSlide:function(a){if(!(typeof this.tracks=="undefined"||typeof this.slidesContainer==
-"undefined")){var b=this,c=b.slides.entries.text[a],e=b.slides.entries.imgs[a];if(typeof e=="undefined"||typeof e.fadeIn=="undefined")b.slides.entries.imgs[a]=e=f('<img src="'+c+'">').on("load",function(){e.appendTo(b.slidesContainer).hide().fadeIn().siblings(":visible").fadeOut()});else!e.is(":visible")&&!e.is(":animated")&&e.fadeIn().siblings(":visible").fadeOut()}},displaySlides:function(){if(typeof this.slides!="undefined"){var a=this.slides,b;for(b=0;b<a.entries.times.length;b++)if(this.media.currentTime>=
-a.entries.times[b].start&&this.media.currentTime<=a.entries.times[b].stop){this.showSlide(b);break}}},displayChapters:function(){var a;for(a=0;a<this.tracks.length;a++)if(this.tracks[a].kind=="chapters"&&this.tracks[a].isLoaded){this.drawChapters(this.tracks[a]);this.hasChapters=true;break}},drawChapters:function(a){var b=this,c,e,d=e=0;b.chapters.empty();for(c=0;c<a.entries.times.length;c++){e=a.entries.times[c].stop-a.entries.times[c].start;e=Math.floor(e/b.media.duration*100);if(e+d>100||c==a.entries.times.length-
-1&&e+d<100)e=100-d;b.chapters.append(f('<div class="mejs-chapter" rel="'+a.entries.times[c].start+'" style="left: '+d.toString()+"%;width: "+e.toString()+'%;"><div class="mejs-chapter-block'+(c==a.entries.times.length-1?" mejs-chapter-block-last":"")+'"><span class="ch-title">'+a.entries.text[c]+'</span><span class="ch-time">'+mejs.Utility.secondsToTimeCode(a.entries.times[c].start)+"&ndash;"+mejs.Utility.secondsToTimeCode(a.entries.times[c].stop)+"</span></div></div>"));d+=e}b.chapters.find("div.mejs-chapter").click(function(){b.media.setCurrentTime(parseFloat(f(this).attr("rel")));
-b.media.paused&&b.media.play()});b.chapters.show()}});mejs.language={codes:{af:"Afrikaans",sq:"Albanian",ar:"Arabic",be:"Belarusian",bg:"Bulgarian",ca:"Catalan",zh:"Chinese","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",et:"Estonian",tl:"Filipino",fi:"Finnish",fr:"French",gl:"Galician",de:"German",el:"Greek",ht:"Haitian Creole",iw:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",
-ko:"Korean",lv:"Latvian",lt:"Lithuanian",mk:"Macedonian",ms:"Malay",mt:"Maltese",no:"Norwegian",fa:"Persian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sr:"Serbian",sk:"Slovak",sl:"Slovenian",es:"Spanish",sw:"Swahili",sv:"Swedish",tl:"Tagalog",th:"Thai",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese",cy:"Welsh",yi:"Yiddish"}};mejs.TrackFormatParser={webvvt:{pattern_identifier:/^([a-zA-z]+-)?[0-9]+$/,pattern_timecode:/^([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
-parse:function(a){var b=0;a=mejs.TrackFormatParser.split2(a,/\r?\n/);for(var c={text:[],times:[]},e,d;b<a.length;b++)if(this.pattern_identifier.exec(a[b])){b++;if((e=this.pattern_timecode.exec(a[b]))&&b<a.length){b++;d=a[b];for(b++;a[b]!==""&&b<a.length;){d=d+"\n"+a[b];b++}d=f.trim(d).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>");c.text.push(d);c.times.push({start:mejs.Utility.convertSMPTEtoSeconds(e[1])==0?0.2:mejs.Utility.convertSMPTEtoSeconds(e[1]),
-stop:mejs.Utility.convertSMPTEtoSeconds(e[3]),settings:e[5]})}}return c}},dfxp:{parse:function(a){a=f(a).filter("tt");var b=0;b=a.children("div").eq(0);var c=b.find("p");b=a.find("#"+b.attr("style"));var e,d;a={text:[],times:[]};if(b.length){d=b.removeAttr("id").get(0).attributes;if(d.length){e={};for(b=0;b<d.length;b++)e[d[b].name.split(":")[1]]=d[b].value}}for(b=0;b<c.length;b++){var g;d={start:null,stop:null,style:null};if(c.eq(b).attr("begin"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("begin"));
-if(!d.start&&c.eq(b-1).attr("end"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b-1).attr("end"));if(c.eq(b).attr("end"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("end"));if(!d.stop&&c.eq(b+1).attr("begin"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b+1).attr("begin"));if(e){g="";for(var k in e)g+=k+":"+e[k]+";"}if(g)d.style=g;if(d.start==0)d.start=0.2;a.times.push(d);d=f.trim(c.eq(b).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,
-"<a href='$1' target='_blank'>$1</a>");a.text.push(d);if(a.times.start==0)a.times.start=2}return a}},split2:function(a,b){return a.split(b)}};if("x\n\ny".split(/\n/gi).length!=3)mejs.TrackFormatParser.split2=function(a,b){var c=[],e="",d;for(d=0;d<a.length;d++){e+=a.substring(d,d+1);if(b.test(e)){c.push(e.replace(b,""));e=""}}c.push(e);return c}})(mejs.$);
+/<tt\s+xml/ig.exec(e)?mejs.TrackFormatParser.dfxp.parse(e):mejs.TrackFormatParser.webvtt.parse(e);c.isLoaded=true;b.enableTrackButton(c.srclang,c.label);b.loadNextTrack();c.kind=="chapters"&&b.media.addEventListener("play",function(){b.media.duration>0&&b.displayChapters(c)},false);c.kind=="slides"&&b.setupSlides(c)},error:function(){b.loadNextTrack()}})},enableTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("input[value="+a+"]").prop("disabled",false).siblings("label").html(b);
+this.options.startLanguage==a&&f("#"+this.id+"_captions_"+a).prop("checked",true).trigger("click");this.adjustLanguageBox()},addTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("ul").append(f('<li><input type="radio" name="'+this.id+'_captions" id="'+this.id+"_captions_"+a+'" value="'+a+'" disabled="disabled" /><label for="'+this.id+"_captions_"+a+'">'+b+" (loading)</label></li>"));this.adjustLanguageBox();this.container.find(".mejs-captions-translations option[value="+
+a+"]").remove()},adjustLanguageBox:function(){this.captionsButton.find(".mejs-captions-selector").height(this.captionsButton.find(".mejs-captions-selector ul").outerHeight(true)+this.captionsButton.find(".mejs-captions-translations").outerHeight(true))},checkForTracks:function(){var a=false;if(this.options.hideCaptionsButtonWhenEmpty){for(i=0;i<this.tracks.length;i++)if(this.tracks[i].kind=="subtitles"){a=true;break}if(!a){this.captionsButton.hide();this.setControlsSize()}}},displayCaptions:function(){if(typeof this.tracks!=
+"undefined"){var a,b=this.selectedTrack;if(b!==null&&b.isLoaded)for(a=0;a<b.entries.times.length;a++)if(this.media.currentTime>=b.entries.times[a].start&&this.media.currentTime<=b.entries.times[a].stop){this.captionsText.html(b.entries.text[a]).attr("class","mejs-captions-text "+(b.entries.times[a].identifier||""));this.captions.show().height(0);return}this.captions.hide()}},setupSlides:function(a){this.slides=a;this.slides.entries.imgs=[this.slides.entries.text.length];this.showSlide(0)},showSlide:function(a){if(!(typeof this.tracks==
+"undefined"||typeof this.slidesContainer=="undefined")){var b=this,c=b.slides.entries.text[a],e=b.slides.entries.imgs[a];if(typeof e=="undefined"||typeof e.fadeIn=="undefined")b.slides.entries.imgs[a]=e=f('<img src="'+c+'">').on("load",function(){e.appendTo(b.slidesContainer).hide().fadeIn().siblings(":visible").fadeOut()});else!e.is(":visible")&&!e.is(":animated")&&e.fadeIn().siblings(":visible").fadeOut()}},displaySlides:function(){if(typeof this.slides!="undefined"){var a=this.slides,b;for(b=0;b<
+a.entries.times.length;b++)if(this.media.currentTime>=a.entries.times[b].start&&this.media.currentTime<=a.entries.times[b].stop){this.showSlide(b);break}}},displayChapters:function(){var a;for(a=0;a<this.tracks.length;a++)if(this.tracks[a].kind=="chapters"&&this.tracks[a].isLoaded){this.drawChapters(this.tracks[a]);this.hasChapters=true;break}},drawChapters:function(a){var b=this,c,e,d=e=0;b.chapters.empty();for(c=0;c<a.entries.times.length;c++){e=a.entries.times[c].stop-a.entries.times[c].start;
+e=Math.floor(e/b.media.duration*100);if(e+d>100||c==a.entries.times.length-1&&e+d<100)e=100-d;b.chapters.append(f('<div class="mejs-chapter" rel="'+a.entries.times[c].start+'" style="left: '+d.toString()+"%;width: "+e.toString()+'%;"><div class="mejs-chapter-block'+(c==a.entries.times.length-1?" mejs-chapter-block-last":"")+'"><span class="ch-title">'+a.entries.text[c]+'</span><span class="ch-time">'+mejs.Utility.secondsToTimeCode(a.entries.times[c].start)+"&ndash;"+mejs.Utility.secondsToTimeCode(a.entries.times[c].stop)+
+"</span></div></div>"));d+=e}b.chapters.find("div.mejs-chapter").click(function(){b.media.setCurrentTime(parseFloat(f(this).attr("rel")));b.media.paused&&b.media.play()});b.chapters.show()}});mejs.language={codes:{af:"Afrikaans",sq:"Albanian",ar:"Arabic",be:"Belarusian",bg:"Bulgarian",ca:"Catalan",zh:"Chinese","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",et:"Estonian",fl:"Filipino",fi:"Finnish",fr:"French",gl:"Galician",de:"German",
+el:"Greek",ht:"Haitian Creole",iw:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",ko:"Korean",lv:"Latvian",lt:"Lithuanian",mk:"Macedonian",ms:"Malay",mt:"Maltese",no:"Norwegian",fa:"Persian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sr:"Serbian",sk:"Slovak",sl:"Slovenian",es:"Spanish",sw:"Swahili",sv:"Swedish",tl:"Tagalog",th:"Thai",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese",cy:"Welsh",yi:"Yiddish"}};mejs.TrackFormatParser={webvtt:{pattern_timecode:/^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
+parse:function(a){var b=0;a=mejs.TrackFormatParser.split2(a,/\r?\n/);for(var c={text:[],times:[]},e,d,g;b<a.length;b++){if((e=this.pattern_timecode.exec(a[b]))&&b<a.length){if(b-1>=0&&a[b-1]!=="")g=a[b-1];b++;d=a[b];for(b++;a[b]!==""&&b<a.length;){d=d+"\n"+a[b];b++}d=f.trim(d).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>");c.text.push(d);c.times.push({identifier:g,start:mejs.Utility.convertSMPTEtoSeconds(e[1])===0?0.2:mejs.Utility.convertSMPTEtoSeconds(e[1]),
+stop:mejs.Utility.convertSMPTEtoSeconds(e[3]),settings:e[5]})}g=""}return c}},dfxp:{parse:function(a){a=f(a).filter("tt");var b=0;b=a.children("div").eq(0);var c=b.find("p");b=a.find("#"+b.attr("style"));var e,d;a={text:[],times:[]};if(b.length){d=b.removeAttr("id").get(0).attributes;if(d.length){e={};for(b=0;b<d.length;b++)e[d[b].name.split(":")[1]]=d[b].value}}for(b=0;b<c.length;b++){var g;d={start:null,stop:null,style:null};if(c.eq(b).attr("begin"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("begin"));
+if(!d.start&&c.eq(b-1).attr("end"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b-1).attr("end"));if(c.eq(b).attr("end"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("end"));if(!d.stop&&c.eq(b+1).attr("begin"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b+1).attr("begin"));if(e){g="";for(var k in e)g+=k+":"+e[k]+";"}if(g)d.style=g;if(d.start===0)d.start=0.2;a.times.push(d);d=f.trim(c.eq(b).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,
+"<a href='$1' target='_blank'>$1</a>");a.text.push(d);if(a.times.start===0)a.times.start=2}return a}},split2:function(a,b){return a.split(b)}};if("x\n\ny".split(/\n/gi).length!=3)mejs.TrackFormatParser.split2=function(a,b){var c=[],e="",d;for(d=0;d<a.length;d++){e+=a.substring(d,d+1);if(b.test(e)){c.push(e.replace(b,""));e=""}}c.push(e);return c}})(mejs.$);
 (function(f){f.extend(mejs.MepDefaults,{contextMenuItems:[{render:function(a){if(typeof a.enterFullScreen=="undefined")return null;return a.isFullScreen?mejs.i18n.t("Turn off Fullscreen"):mejs.i18n.t("Go Fullscreen")},click:function(a){a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{render:function(a){return a.media.muted?mejs.i18n.t("Unmute"):mejs.i18n.t("Mute")},click:function(a){a.media.muted?a.setMuted(false):a.setMuted(true)}},{isSeparator:true},{render:function(){return mejs.i18n.t("Download Video")},
 click:function(a){window.location.href=a.media.currentSrc}}]});f.extend(MediaElementPlayer.prototype,{buildcontextmenu:function(a){a.contextMenu=f('<div class="mejs-contextmenu"></div>').appendTo(f("body")).hide();a.container.bind("contextmenu",function(b){if(a.isContextMenuEnabled){b.preventDefault();a.renderContextMenu(b.clientX-1,b.clientY-1);return false}});a.container.bind("click",function(){a.contextMenu.hide()});a.contextMenu.bind("mouseleave",function(){a.startContextMenuTimer()})},cleancontextmenu:function(a){a.contextMenu.remove()},
 isContextMenuEnabled:true,enableContextMenu:function(){this.isContextMenuEnabled=true},disableContextMenu:function(){this.isContextMenuEnabled=false},contextMenuTimeout:null,startContextMenuTimer:function(){var a=this;a.killContextMenuTimer();a.contextMenuTimer=setTimeout(function(){a.hideContextMenu();a.killContextMenuTimer()},750)},killContextMenuTimer:function(){var a=this.contextMenuTimer;if(a!=null){clearTimeout(a);delete a}},hideContextMenu:function(){this.contextMenu.hide()},renderContextMenu:function(a,
 (function(f){f.extend(mejs.MepDefaults,{contextMenuItems:[{render:function(a){if(typeof a.enterFullScreen=="undefined")return null;return a.isFullScreen?mejs.i18n.t("Turn off Fullscreen"):mejs.i18n.t("Go Fullscreen")},click:function(a){a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{render:function(a){return a.media.muted?mejs.i18n.t("Unmute"):mejs.i18n.t("Mute")},click:function(a){a.media.muted?a.setMuted(false):a.setMuted(true)}},{isSeparator:true},{render:function(){return mejs.i18n.t("Download Video")},
 click:function(a){window.location.href=a.media.currentSrc}}]});f.extend(MediaElementPlayer.prototype,{buildcontextmenu:function(a){a.contextMenu=f('<div class="mejs-contextmenu"></div>').appendTo(f("body")).hide();a.container.bind("contextmenu",function(b){if(a.isContextMenuEnabled){b.preventDefault();a.renderContextMenu(b.clientX-1,b.clientY-1);return false}});a.container.bind("click",function(){a.contextMenu.hide()});a.contextMenu.bind("mouseleave",function(){a.startContextMenuTimer()})},cleancontextmenu:function(a){a.contextMenu.remove()},
 isContextMenuEnabled:true,enableContextMenu:function(){this.isContextMenuEnabled=true},disableContextMenu:function(){this.isContextMenuEnabled=false},contextMenuTimeout:null,startContextMenuTimer:function(){var a=this;a.killContextMenuTimer();a.contextMenuTimer=setTimeout(function(){a.hideContextMenu();a.killContextMenuTimer()},750)},killContextMenuTimer:function(){var a=this.contextMenuTimer;if(a!=null){clearTimeout(a);delete a}},hideContextMenu:function(){this.contextMenu.hide()},renderContextMenu:function(a,
@@ -173,4 +180,3 @@ b){for(var c=this,e="",d=c.options.contextMenuItems,g=0,k=d.length;g<k;g++)if(d[
 "undefined"&&p.show(m,c);m.click(function(){typeof p.click!="undefined"&&p.click(c);c.contextMenu.hide()})});setTimeout(function(){c.killControlsTimer("rev3")},100)}})})(mejs.$);
 (function(f){f.extend(mejs.MepDefaults,{postrollCloseText:mejs.i18n.t("Close")});f.extend(MediaElementPlayer.prototype,{buildpostroll:function(a,b,c){var e=this.container.find('link[rel="postroll"]').attr("href");if(typeof e!=="undefined"){a.postroll=f('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">'+this.options.postrollCloseText+'</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(c).hide();this.media.addEventListener("ended",
 function(){f.ajax({dataType:"html",url:e,success:function(d){c.find(".mejs-postroll-layer-content").html(d)}});a.postroll.show()},false)}}})})(mejs.$);
 "undefined"&&p.show(m,c);m.click(function(){typeof p.click!="undefined"&&p.click(c);c.contextMenu.hide()})});setTimeout(function(){c.killControlsTimer("rev3")},100)}})})(mejs.$);
 (function(f){f.extend(mejs.MepDefaults,{postrollCloseText:mejs.i18n.t("Close")});f.extend(MediaElementPlayer.prototype,{buildpostroll:function(a,b,c){var e=this.container.find('link[rel="postroll"]').attr("href");if(typeof e!=="undefined"){a.postroll=f('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">'+this.options.postrollCloseText+'</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(c).hide();this.media.addEventListener("ended",
 function(){f.ajax({dataType:"html",url:e,success:function(d){c.find(".mejs-postroll-layer-content").html(d)}});a.postroll.show()},false)}}})})(mejs.$);
-
index 3f84ab75013fd1b49db60731b804dcf718b0c84c..ca859f38c40629a861f1dcd252afb0cd07a9b39f 100644 (file)
@@ -1 +1 @@
-.mejs-container{position:relative;background:#000;font-family:Helvetica,Arial;text-align:left;vertical-align:top;text-indent:0;}.me-plugin{position:absolute;}.mejs-embed,.mejs-embed body{width:100%;height:100%;margin:0;padding:0;background:#000;overflow:hidden;}.mejs-fullscreen{overflow:hidden!important;}.mejs-container-fullscreen{position:fixed;left:0;top:0;right:0;bottom:0;overflow:hidden;z-index:1000;}.mejs-container-fullscreen .mejs-mediaelement,.mejs-container-fullscreen video{width:100%;height:100%;}.mejs-clear{clear:both;}.mejs-background{position:absolute;top:0;left:0;}.mejs-mediaelement{position:absolute;top:0;left:0;width:100%;height:100%;}.mejs-poster{position:absolute;top:0;left:0;background-size:contain;background-position:50% 50%;background-repeat:no-repeat;}:root .mejs-poster img{display:none;}.mejs-poster img{border:0;padding:0;border:0;}.mejs-overlay{position:absolute;top:0;left:0;}.mejs-overlay-play{cursor:pointer;}.mejs-overlay-button{position:absolute;top:50%;left:50%;width:100px;height:100px;margin:-50px 0 0 -50px;background:url(bigplay.svg) no-repeat;}.no-svg .mejs-overlay-button{background-image:url(bigplay.png);}.mejs-overlay:hover .mejs-overlay-button{background-position:0 -100px;}.mejs-overlay-loading{position:absolute;top:50%;left:50%;width:80px;height:80px;margin:-40px 0 0 -40px;background:#333;background:url(background.png);background:rgba(0,0,0,0.9);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.9)),to(rgba(0,0,0,0.9)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-moz-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-o-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-ms-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:linear-gradient(rgba(50,50,50,0.9),rgba(0,0,0,0.9));}.mejs-overlay-loading span{display:block;width:80px;height:80px;background:transparent url(loading.gif) 50% 50% no-repeat;}.mejs-container .mejs-controls{position:absolute;list-style-type:none;margin:0;padding:0;bottom:0;left:0;background:url(background.png);background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));height:30px;width:100%;}.mejs-container .mejs-controls div{list-style-type:none;background-image:none;display:block;float:left;margin:0;padding:0;width:26px;height:26px;font-size:11px;line-height:11px;font-family:Helvetica,Arial;border:0;}.mejs-controls .mejs-button button{cursor:pointer;display:block;font-size:0;line-height:0;text-decoration:none;margin:7px 5px;padding:0;position:absolute;height:16px;width:16px;border:0;background:transparent url(controls.svg) no-repeat;}.no-svg .mejs-controls .mejs-button button{background-image:url(controls.png);}.mejs-controls .mejs-button button:focus{outline:dotted 1px #999;}.mejs-container .mejs-controls .mejs-time{color:#fff;display:block;height:17px;width:auto;padding:8px 3px 0 3px;overflow:hidden;text-align:center;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}.mejs-container .mejs-controls .mejs-time span{color:#fff;font-size:11px;line-height:12px;display:block;float:left;margin:1px 2px 0 0;width:auto;}.mejs-controls .mejs-play button{background-position:0 0;}.mejs-controls .mejs-pause button{background-position:0 -16px;}.mejs-controls .mejs-stop button{background-position:-112px 0;}.mejs-controls div.mejs-time-rail{direction:ltr;width:200px;padding-top:5px;}.mejs-controls .mejs-time-rail span{display:block;position:absolute;width:180px;height:10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;cursor:pointer;}.mejs-controls .mejs-time-rail .mejs-time-total{margin:5px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8));}.mejs-controls .mejs-time-rail .mejs-time-buffering{width:100%;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:15px 15px;-moz-background-size:15px 15px;-o-background-size:15px 15px;background-size:15px 15px;-webkit-animation:buffering-stripes 2s linear infinite;-moz-animation:buffering-stripes 2s linear infinite;-ms-animation:buffering-stripes 2s linear infinite;-o-animation:buffering-stripes 2s linear infinite;animation:buffering-stripes 2s linear infinite;}@-webkit-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-moz-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-ms-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-o-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}.mejs-controls .mejs-time-rail .mejs-time-loaded{background:#3caac8;background:rgba(60,170,200,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(44,124,145,0.8)),to(rgba(78,183,212,0.8)));background:-webkit-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-moz-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-o-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-ms-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:linear-gradient(rgba(44,124,145,0.8),rgba(78,183,212,0.8));width:0;}.mejs-controls .mejs-time-rail .mejs-time-current{background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8));width:0;}.mejs-controls .mejs-time-rail .mejs-time-handle{display:none;position:absolute;margin:0;width:10px;background:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;cursor:pointer;border:solid 2px #333;top:-2px;text-align:center;}.mejs-controls .mejs-time-rail .mejs-time-float{position:absolute;display:none;background:#eee;width:36px;height:17px;border:solid 1px #333;top:-26px;margin-left:-18px;text-align:center;color:#111;}.mejs-controls .mejs-time-rail .mejs-time-float-current{margin:2px;width:30px;display:block;text-align:center;left:0;}.mejs-controls .mejs-time-rail .mejs-time-float-corner{position:absolute;display:block;width:0;height:0;line-height:0;border:solid 5px #eee;border-color:#eee transparent transparent transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:15px;left:13px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float{width:48px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-current{width:44px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-corner{left:18px;}.mejs-controls .mejs-fullscreen-button button{background-position:-32px 0;}.mejs-controls .mejs-unfullscreen button{background-position:-32px -16px;}.mejs-controls .mejs-mute button{background-position:-16px -16px;}.mejs-controls .mejs-unmute button{background-position:-16px 0;}.mejs-controls .mejs-volume-button{position:relative;}.mejs-controls .mejs-volume-button .mejs-volume-slider{display:none;height:115px;width:25px;background:url(background.png);background:rgba(50,50,50,0.7);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:-115px;left:0;z-index:1;position:absolute;margin:0;}.mejs-controls .mejs-volume-button:hover{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.5);margin:0;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-current{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.9);margin:0;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-handle{position:absolute;left:4px;top:-3px;width:16px;height:6px;background:#ddd;background:rgba(255,255,255,0.9);cursor:N-resize;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;margin:0;}.mejs-controls div.mejs-horizontal-volume-slider{height:26px;width:60px;position:relative;}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8));}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8));}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle{display:none;}.mejs-controls .mejs-captions-button{position:relative;}.mejs-controls .mejs-captions-button button{background-position:-48px 0;}.mejs-controls .mejs-captions-button .mejs-captions-selector{visibility:hidden;position:absolute;bottom:26px;right:-10px;width:130px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li label{width:100px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px;}.mejs-controls .mejs-captions-button .mejs-captions-translations{font-size:10px;margin:0 0 5px 0;}.mejs-chapters{position:absolute;top:0;left:0;-xborder-right:solid 1px #fff;width:10000px;z-index:1;}.mejs-chapters .mejs-chapter{position:absolute;float:left;background:#222;background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#323232,endColorstr=#000000);overflow:hidden;border:0;}.mejs-chapters .mejs-chapter .mejs-chapter-block{font-size:11px;color:#fff;padding:5px;display:block;border-right:solid 1px #333;border-bottom:solid 1px #333;cursor:pointer;}.mejs-chapters .mejs-chapter .mejs-chapter-block-last{border-right:none;}.mejs-chapters .mejs-chapter .mejs-chapter-block:hover{background:#666;background:rgba(102,102,102,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(102,102,102,0.7)),to(rgba(50,50,50,0.6)));background:-webkit-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-moz-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-o-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-ms-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:linear-gradient(rgba(102,102,102,0.7),rgba(50,50,50,0.6));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#666666,endColorstr=#323232);}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title{font-size:12px;font-weight:bold;display:block;white-space:nowrap;text-overflow:ellipsis;margin:0 0 3px 0;line-height:12px;}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-timespan{font-size:12px;line-height:12px;margin:3px 0 4px 0;display:block;white-space:nowrap;text-overflow:ellipsis;}.mejs-captions-layer{position:absolute;bottom:0;left:0;text-align:center;line-height:22px;font-size:12px;color:#fff;}.mejs-captions-layer a{color:#fff;text-decoration:underline;}.mejs-captions-layer[lang=ar]{font-size:20px;font-weight:normal;}.mejs-captions-position{position:absolute;width:100%;bottom:15px;left:0;}.mejs-captions-position-hover{bottom:45px;}.mejs-captions-text{padding:3px 5px;background:url(background.png);background:rgba(20,20,20,0.8);}.me-cannotplay a{color:#fff;font-weight:bold;}.me-cannotplay span{padding:15px;display:block;}.mejs-controls .mejs-loop-off button{background-position:-64px -16px;}.mejs-controls .mejs-loop-on button{background-position:-64px 0;}.mejs-controls .mejs-backlight-off button{background-position:-80px -16px;}.mejs-controls .mejs-backlight-on button{background-position:-80px 0;}.mejs-controls .mejs-picturecontrols-button{background-position:-96px 0;}.mejs-contextmenu{position:absolute;width:150px;padding:10px;border-radius:4px;top:0;left:0;background:#fff;border:solid 1px #999;z-index:1001;}.mejs-contextmenu .mejs-contextmenu-separator{height:1px;font-size:0;margin:5px 6px;background:#333;}.mejs-contextmenu .mejs-contextmenu-item{font-family:Helvetica,Arial;font-size:12px;padding:4px 6px;cursor:pointer;color:#333;}.mejs-contextmenu .mejs-contextmenu-item:hover{background:#2C7C91;color:#fff;}.mejs-controls .mejs-sourcechooser-button{position:relative;}.mejs-controls .mejs-sourcechooser-button button{background-position:-128px 0;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector{visibility:hidden;position:absolute;bottom:26px;right:-10px;width:130px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label{width:100px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px;}.mejs-postroll-layer{position:absolute;bottom:0;left:0;width:100%;height:100%;background:url(background.png);background:rgba(50,50,50,0.7);z-index:1000;overflow:hidden;}.mejs-postroll-layer-content{width:100%;height:100%;}.mejs-postroll-close{position:absolute;right:0;top:0;background:url(background.png);background:rgba(50,50,50,0.7);color:#fff;padding:4px;z-index:100;cursor:pointer;}
\ No newline at end of file
+.mejs-container{position:relative;background:#000;font-family:Helvetica,Arial;text-align:left;vertical-align:top;text-indent:0;}.me-plugin{position:absolute;height:auto;width:auto;}.mejs-embed,.mejs-embed body{width:100%;height:100%;margin:0;padding:0;background:#000;overflow:hidden;}.mejs-fullscreen{overflow:hidden!important;}.mejs-container-fullscreen{position:fixed;left:0;top:0;right:0;bottom:0;overflow:hidden;z-index:1000;}.mejs-container-fullscreen .mejs-mediaelement,.mejs-container-fullscreen video{width:100%;height:100%;}.mejs-clear{clear:both;}.mejs-background{position:absolute;top:0;left:0;}.mejs-mediaelement{position:absolute;top:0;left:0;width:100%;height:100%;}.mejs-poster{position:absolute;top:0;left:0;background-size:contain;background-position:50% 50%;background-repeat:no-repeat;}:root .mejs-poster img{display:none;}.mejs-poster img{border:0;padding:0;border:0;}.mejs-overlay{position:absolute;top:0;left:0;}.mejs-overlay-play{cursor:pointer;}.mejs-overlay-button{position:absolute;top:50%;left:50%;width:100px;height:100px;margin:-50px 0 0 -50px;background:url(bigplay.svg) no-repeat;}.no-svg .mejs-overlay-button{background-image:url(bigplay.png);}.mejs-overlay:hover .mejs-overlay-button{background-position:0 -100px;}.mejs-overlay-loading{position:absolute;top:50%;left:50%;width:80px;height:80px;margin:-40px 0 0 -40px;background:#333;background:url(background.png);background:rgba(0,0,0,0.9);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.9)),to(rgba(0,0,0,0.9)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-moz-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-o-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-ms-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:linear-gradient(rgba(50,50,50,0.9),rgba(0,0,0,0.9));}.mejs-overlay-loading span{display:block;width:80px;height:80px;background:transparent url(loading.gif) 50% 50% no-repeat;}.mejs-container .mejs-controls{position:absolute;list-style-type:none;margin:0;padding:0;bottom:0;left:0;background:url(background.png);background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));height:30px;width:100%;}.mejs-container .mejs-controls div{list-style-type:none;background-image:none;display:block;float:left;margin:0;padding:0;width:26px;height:26px;font-size:11px;line-height:11px;font-family:Helvetica,Arial;border:0;}.mejs-controls .mejs-button button{cursor:pointer;display:block;font-size:0;line-height:0;text-decoration:none;margin:7px 5px;padding:0;position:absolute;height:16px;width:16px;border:0;background:transparent url(controls.svg) no-repeat;}.no-svg .mejs-controls .mejs-button button{background-image:url(controls.png);}.mejs-controls .mejs-button button:focus{outline:dotted 1px #999;}.mejs-container .mejs-controls .mejs-time{color:#fff;display:block;height:17px;width:auto;padding:8px 3px 0 3px;overflow:hidden;text-align:center;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}.mejs-container .mejs-controls .mejs-time span{color:#fff;font-size:11px;line-height:12px;display:block;float:left;margin:1px 2px 0 0;width:auto;}.mejs-controls .mejs-play button{background-position:0 0;}.mejs-controls .mejs-pause button{background-position:0 -16px;}.mejs-controls .mejs-stop button{background-position:-112px 0;}.mejs-controls div.mejs-time-rail{direction:ltr;width:200px;padding-top:5px;}.mejs-controls .mejs-time-rail span{display:block;position:absolute;width:180px;height:10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;cursor:pointer;}.mejs-controls .mejs-time-rail .mejs-time-total{margin:5px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8));}.mejs-controls .mejs-time-rail .mejs-time-buffering{width:100%;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:15px 15px;-moz-background-size:15px 15px;-o-background-size:15px 15px;background-size:15px 15px;-webkit-animation:buffering-stripes 2s linear infinite;-moz-animation:buffering-stripes 2s linear infinite;-ms-animation:buffering-stripes 2s linear infinite;-o-animation:buffering-stripes 2s linear infinite;animation:buffering-stripes 2s linear infinite;}@-webkit-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-moz-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-ms-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-o-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}.mejs-controls .mejs-time-rail .mejs-time-loaded{background:#3caac8;background:rgba(60,170,200,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(44,124,145,0.8)),to(rgba(78,183,212,0.8)));background:-webkit-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-moz-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-o-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-ms-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:linear-gradient(rgba(44,124,145,0.8),rgba(78,183,212,0.8));width:0;}.mejs-controls .mejs-time-rail .mejs-time-current{background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8));width:0;}.mejs-controls .mejs-time-rail .mejs-time-handle{display:none;position:absolute;margin:0;width:10px;background:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;cursor:pointer;border:solid 2px #333;top:-2px;text-align:center;}.mejs-controls .mejs-time-rail .mejs-time-float{position:absolute;display:none;background:#eee;width:36px;height:17px;border:solid 1px #333;top:-26px;margin-left:-18px;text-align:center;color:#111;}.mejs-controls .mejs-time-rail .mejs-time-float-current{margin:2px;width:30px;display:block;text-align:center;left:0;}.mejs-controls .mejs-time-rail .mejs-time-float-corner{position:absolute;display:block;width:0;height:0;line-height:0;border:solid 5px #eee;border-color:#eee transparent transparent transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:15px;left:13px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float{width:48px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-current{width:44px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-corner{left:18px;}.mejs-controls .mejs-fullscreen-button button{background-position:-32px 0;}.mejs-controls .mejs-unfullscreen button{background-position:-32px -16px;}.mejs-controls .mejs-mute button{background-position:-16px -16px;}.mejs-controls .mejs-unmute button{background-position:-16px 0;}.mejs-controls .mejs-volume-button{position:relative;}.mejs-controls .mejs-volume-button .mejs-volume-slider{display:none;height:115px;width:25px;background:url(background.png);background:rgba(50,50,50,0.7);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:-115px;left:0;z-index:1;position:absolute;margin:0;}.mejs-controls .mejs-volume-button:hover{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.5);margin:0;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-current{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.9);margin:0;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-handle{position:absolute;left:4px;top:-3px;width:16px;height:6px;background:#ddd;background:rgba(255,255,255,0.9);cursor:N-resize;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;margin:0;}.mejs-controls div.mejs-horizontal-volume-slider{height:26px;width:60px;position:relative;}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8));}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8));}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle{display:none;}.mejs-controls .mejs-captions-button{position:relative;}.mejs-controls .mejs-captions-button button{background-position:-48px 0;}.mejs-controls .mejs-captions-button .mejs-captions-selector{visibility:hidden;position:absolute;bottom:26px;right:-51px;width:85px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px 10px 0 10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li label{width:55px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px;}.mejs-controls .mejs-captions-button .mejs-captions-translations{font-size:10px;margin:0 0 5px 0;}.mejs-chapters{position:absolute;top:0;left:0;-xborder-right:solid 1px #fff;width:10000px;z-index:1;}.mejs-chapters .mejs-chapter{position:absolute;float:left;background:#222;background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#323232,endColorstr=#000000);overflow:hidden;border:0;}.mejs-chapters .mejs-chapter .mejs-chapter-block{font-size:11px;color:#fff;padding:5px;display:block;border-right:solid 1px #333;border-bottom:solid 1px #333;cursor:pointer;}.mejs-chapters .mejs-chapter .mejs-chapter-block-last{border-right:none;}.mejs-chapters .mejs-chapter .mejs-chapter-block:hover{background:#666;background:rgba(102,102,102,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(102,102,102,0.7)),to(rgba(50,50,50,0.6)));background:-webkit-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-moz-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-o-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-ms-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:linear-gradient(rgba(102,102,102,0.7),rgba(50,50,50,0.6));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#666666,endColorstr=#323232);}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title{font-size:12px;font-weight:bold;display:block;white-space:nowrap;text-overflow:ellipsis;margin:0 0 3px 0;line-height:12px;}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-timespan{font-size:12px;line-height:12px;margin:3px 0 4px 0;display:block;white-space:nowrap;text-overflow:ellipsis;}.mejs-captions-layer{position:absolute;bottom:0;left:0;text-align:center;line-height:20px;font-size:16px;color:#fff;}.mejs-captions-layer a{color:#fff;text-decoration:underline;}.mejs-captions-layer[lang=ar]{font-size:20px;font-weight:normal;}.mejs-captions-position{position:absolute;width:100%;bottom:15px;left:0;}.mejs-captions-position-hover{bottom:35px;}.mejs-captions-text{padding:3px 5px;background:url(background.png);background:rgba(20,20,20,0.5);white-space:pre-wrap;}.me-cannotplay a{color:#fff;font-weight:bold;}.me-cannotplay span{padding:15px;display:block;}.mejs-controls .mejs-loop-off button{background-position:-64px -16px;}.mejs-controls .mejs-loop-on button{background-position:-64px 0;}.mejs-controls .mejs-backlight-off button{background-position:-80px -16px;}.mejs-controls .mejs-backlight-on button{background-position:-80px 0;}.mejs-controls .mejs-picturecontrols-button{background-position:-96px 0;}.mejs-contextmenu{position:absolute;width:150px;padding:10px;border-radius:4px;top:0;left:0;background:#fff;border:solid 1px #999;z-index:1001;}.mejs-contextmenu .mejs-contextmenu-separator{height:1px;font-size:0;margin:5px 6px;background:#333;}.mejs-contextmenu .mejs-contextmenu-item{font-family:Helvetica,Arial;font-size:12px;padding:4px 6px;cursor:pointer;color:#333;}.mejs-contextmenu .mejs-contextmenu-item:hover{background:#2C7C91;color:#fff;}.mejs-controls .mejs-sourcechooser-button{position:relative;}.mejs-controls .mejs-sourcechooser-button button{background-position:-128px 0;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector{visibility:hidden;position:absolute;bottom:26px;right:-10px;width:130px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label{width:100px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px;}.mejs-postroll-layer{position:absolute;bottom:0;left:0;width:100%;height:100%;background:url(background.png);background:rgba(50,50,50,0.7);z-index:1000;overflow:hidden;}.mejs-postroll-layer-content{width:100%;height:100%;}.mejs-postroll-close{position:absolute;right:0;top:0;background:url(background.png);background:rgba(50,50,50,0.7);color:#fff;padding:4px;z-index:100;cursor:pointer;}div.mejs-speed-button{width:46px!important;position:relative;}.mejs-controls .mejs-button.mejs-speed-button button{background:transparent;width:36px;font-size:11px;line-height:normal;color:#fff;}.mejs-controls .mejs-speed-button .mejs-speed-selector{visibility:hidden;position:absolute;top:-100px;left:-10px;width:60px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:0;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-speed-button:hover>.mejs-speed-selector{visibility:visible;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label.mejs-speed-selected{color:rgba(33,248,248,1);}.mejs-controls .mejs-speed-button .mejs-speed-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li{margin:0 0 6px 0;padding:0 10px;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;display:none;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label{width:60px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:11.5px;color:white;margin-left:5px;cursor:pointer;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li:hover{background-color:#c8c8c8!important;background-color:rgba(255,255,255,.4)!important;}
\ No newline at end of file
index ec8e37bc985fb0f33f3c01c4dddf0f9525ade0b1..36cf8e8c125c17fba1c677c1bdeadd768452f32a 100644 (file)
@@ -1,17 +1,47 @@
+.mejs-container {
+       clear: both;
+}
+
 .mejs-container * {
        font-family: Helvetica, Arial;
 }
 
 .mejs-container * {
        font-family: Helvetica, Arial;
 }
 
-.mejs-container, .mejs-embed, .mejs-embed body {
-       background: #000;
+.mejs-container,
+.mejs-embed,
+.mejs-embed body,
+.mejs-container .mejs-controls {
+       background: #222;
 }
 
 }
 
-.mejs-controls .mejs-time-rail .mejs-time-loaded {
-       background: #21759b;
+.mejs-controls .mejs-time-rail .mejs-time-loaded,
+.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current {
+       background: #fff;
 }
 
 .mejs-controls .mejs-time-rail .mejs-time-current {
 }
 
 .mejs-controls .mejs-time-rail .mejs-time-current {
-       background: #d54e21;
+       background: #0074a2;
+}
+
+.mejs-controls .mejs-time-rail .mejs-time-total,
+.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total {
+       background: rgba(255, 255, 255, .33);
+}
+
+.mejs-controls .mejs-time-rail span,
+.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,
+.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current {
+       border-radius: 0;
+}
+
+.mejs-overlay-loading {
+       background: transparent;
+}
+
+/* Override theme styles that may conflict with controls. */
+.mejs-controls button:hover {
+       border: none;
+       -webkit-box-shadow: none;
+       box-shadow: none;
 }
 
 .me-cannotplay {
 }
 
 .me-cannotplay {
        max-width: 400px;
 }
 
        max-width: 400px;
 }
 
+.audio-details .embed-media-settings {
+       overflow: visible;
+}
+
 .media-embed-details .embed-media-settings .setting span {
        max-width: 400px;
        width: auto;
 .media-embed-details .embed-media-settings .setting span {
        max-width: 400px;
        width: auto;
        margin: 0 0 10px;
 }
 
        margin: 0 0 10px;
 }
 
+.wp-video {
+       max-width: 100%;
+       height: auto;
+}
+
+video.wp-video-shortcode,
+.wp-video-shortcode video {
+       max-width: 100%;
+       display: inline-block;
+}
+
 .video-details .wp-video-holder {
        width: 100%;
        max-width: 640px;
 .video-details .wp-video-holder {
        width: 100%;
        max-width: 640px;
        line-height: 1.5;
 }
 
        line-height: 1.5;
 }
 
+.wp-admin .wp-playlist {
+       margin: 0 0 18px;
+}
+
 .wp-playlist video {
        display: inline-block;
        max-width: 100%;
 .wp-playlist video {
        display: inline-block;
        max-width: 100%;
 
 .wp-audio-playlist .me-cannotplay span {
        padding: 5px 15px;
 
 .wp-audio-playlist .me-cannotplay span {
        padding: 5px 15px;
-}
\ No newline at end of file
+}
index 72ea6bde31ba57ec30d20a80c7e1e944519d3596..6e20b90058430cf2429c7128ab5ef8db539a495d 100644 (file)
@@ -7,18 +7,22 @@
        $(function () {
                var settings = {};
 
        $(function () {
                var settings = {};
 
-               if ( $( document.body ).hasClass( 'mce-content-body' ) ) {
-                       return;
-               }
-
                if ( typeof _wpmejsSettings !== 'undefined' ) {
                if ( typeof _wpmejsSettings !== 'undefined' ) {
-                       settings.pluginPath = _wpmejsSettings.pluginPath;
+                       settings = _wpmejsSettings;
                }
 
                settings.success = function (mejs) {
                }
 
                settings.success = function (mejs) {
-                       var autoplay = mejs.attributes.autoplay && 'false' !== mejs.attributes.autoplay;
-                       if ( 'flash' === mejs.pluginType && autoplay ) {
-                               mejs.addEventListener( 'canplay', function () {
+                       var autoplay, loop;
+
+                       if ( 'flash' === mejs.pluginType ) {
+                               autoplay = mejs.attributes.autoplay && 'false' !== mejs.attributes.autoplay;
+                               loop = mejs.attributes.loop && 'false' !== mejs.attributes.loop;
+
+                               autoplay && mejs.addEventListener( 'canplay', function () {
+                                       mejs.play();
+                               }, false );
+
+                               loop && mejs.addEventListener( 'ended', function () {
                                        mejs.play();
                                }, false );
                        }
                                        mejs.play();
                                }, false );
                        }
index ced70c6238b989c76014fbe71e619998f26e4716..90839a5da66bf906b8fbfcd7d07b6a94eb5e825c 100644 (file)
@@ -7,8 +7,7 @@
                initialize : function (options) {
                        this.index = 0;
                        this.settings = {};
                initialize : function (options) {
                        this.index = 0;
                        this.settings = {};
-                       this.compatMode = $( 'body' ).hasClass( 'wp-admin' ) && $( '#content_ifr' ).length;
-                       this.data = options.metadata || $.parseJSON( this.$('script').html() );
+                       this.data = options.metadata || $.parseJSON( this.$('script.wp-playlist-script').html() );
                        this.playerNode = this.$( this.data.type );
 
                        this.tracks = new Backbone.Collection( this.data.tracks );
                        this.playerNode = this.$( this.data.type );
 
                        this.tracks = new Backbone.Collection( this.data.tracks );
                                this.renderTracks();
                        }
 
                                this.renderTracks();
                        }
 
-                       if ( this.isCompatibleSrc() ) {
-                               this.playerNode.attr( 'src', this.current.get( 'src' ) );
-                       }
+                       this.playerNode.attr( 'src', this.current.get( 'src' ) );
 
                        _.bindAll( this, 'bindPlayer', 'bindResetPlayer', 'setPlayer', 'ended', 'clickTrack' );
 
                        if ( ! _.isUndefined( window._wpmejsSettings ) ) {
 
                        _.bindAll( this, 'bindPlayer', 'bindResetPlayer', 'setPlayer', 'ended', 'clickTrack' );
 
                        if ( ! _.isUndefined( window._wpmejsSettings ) ) {
-                               this.settings.pluginPath = _wpmejsSettings.pluginPath;
+                               this.settings = _wpmejsSettings;
                        }
                        this.settings.success = this.bindPlayer;
                        this.setPlayer();
                        }
                        this.settings.success = this.bindPlayer;
                        this.setPlayer();
 
                bindResetPlayer : function (mejs) {
                        this.bindPlayer( mejs );
 
                bindResetPlayer : function (mejs) {
                        this.bindPlayer( mejs );
-                       if ( this.isCompatibleSrc() ) {
-                               this.playCurrentSrc();
-                       }
-               },
-
-               isCompatibleSrc: function () {
-                       var testNode;
-
-                       if ( this.compatMode ) {
-                               testNode = $( '<span><source type="' + this.current.get( 'type' ) + '" /></span>' );
-
-                               if ( ! wp.media.mixin.isCompatible( testNode ) ) {
-                                       this.playerNode.removeAttr( 'src' );
-                                       this.playerNode.removeAttr( 'poster' );
-                                       return;
-                               }
-                       }
-
-                       return true;
+                       this.playCurrentSrc();
                },
 
                setPlayer: function (force) {
                },
 
                setPlayer: function (force) {
@@ -76,9 +55,7 @@
                        }
 
                        if (force) {
                        }
 
                        if (force) {
-                               if ( this.isCompatibleSrc() ) {
-                                       this.playerNode.attr( 'src', this.current.get( 'src' ) );
-                               }
+                               this.playerNode.attr( 'src', this.current.get( 'src' ) );
                                this.settings.success = this.bindResetPlayer;
                        }
 
                                this.settings.success = this.bindResetPlayer;
                        }
 
                                this.next();
                        } else {
                                this.index = 0;
                                this.next();
                        } else {
                                this.index = 0;
-                               this.current = this.tracks.at( this.index );
-                               this.loadCurrent();
+                               this.setCurrent();
                        }
                },
 
                        }
                },
 
 
                        if ( last !== current ) {
                                this.setPlayer( true );
 
                        if ( last !== current ) {
                                this.setPlayer( true );
-                       } else if ( this.isCompatibleSrc() ) {
+                       } else {
                                this.playerNode.attr( 'src', this.current.get( 'src' ) );
                                this.playCurrentSrc();
                        }
                                this.playerNode.attr( 'src', this.current.get( 'src' ) );
                                this.playCurrentSrc();
                        }
        });
 
     $(document).ready(function () {
        });
 
     $(document).ready(function () {
-               if ( ! $( 'body' ).hasClass( 'wp-admin' ) || $( 'body' ).hasClass( 'about-php' ) ) {
-                       $('.wp-playlist').each(function () {
-                               return new WPPlaylistView({ el: this });
-                       });
-               }
+               $('.wp-playlist').each( function() {
+                       return new WPPlaylistView({ el: this });
+               } );
     });
 
        window.WPPlaylistView = WPPlaylistView;
     });
 
        window.WPPlaylistView = WPPlaylistView;
index 2f4f2642e55d37d178488c86e68b1d2630a5ee11..2d319213fa31d67e1a28e105a8b076bcf6beb89b 100644 (file)
@@ -353,4 +353,4 @@ window.wp = window.wp || {};
                        return text + '</' + options.tag + '>';
                }
        });
                        return text + '</' + options.tag + '>';
                }
        });
-}());
\ No newline at end of file
+}());
index e65b19cb29e3a05550ec21e15a052045f0e703f1..9c950d4ed7fffda61430389fb39eade3f26ed627 100644 (file)
@@ -3,7 +3,7 @@
  *
  * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/,  http://www.vinterwebb.se/
  *
  *
  * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/,  http://www.vinterwebb.se/
  *
- * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilzén and Mammon Media and is released under the MIT License:
+ * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilzn and Mammon Media and is released under the MIT License:
  * http://www.opensource.org/licenses/mit-license.php
  *
  * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License:
  * http://www.opensource.org/licenses/mit-license.php
  *
  * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License:
index 0371bd28d0643d5e1ef7c5e1f104836c26cea526..5bca4b1295d56cfb7e8740a58379a7da50da9493 100644 (file)
@@ -46,6 +46,7 @@ function tb_show(caption, url, imageGroup) {//function called when the user clic
                        if(document.getElementById("TB_overlay") === null){
                                jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
                                jQuery("#TB_overlay").click(tb_remove);
                        if(document.getElementById("TB_overlay") === null){
                                jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
                                jQuery("#TB_overlay").click(tb_remove);
+                               jQuery( 'body' ).addClass( 'modal-open' );
                        }
                }
 
                        }
                }
 
@@ -104,7 +105,7 @@ function tb_show(caption, url, imageGroup) {//function called when the user clic
                        imgPreloader.onload = function(){
                        imgPreloader.onload = null;
 
                        imgPreloader.onload = function(){
                        imgPreloader.onload = null;
 
-                       // Resizing large images - orginal by Christian Montoya edited by me.
+                       // Resizing large images - original by Christian Montoya edited by me.
                        var pagesize = tb_getPageSize();
                        var x = pagesize[0] - 150;
                        var y = pagesize[1] - 150;
                        var pagesize = tb_getPageSize();
                        var x = pagesize[0] - 150;
                        var y = pagesize[1] - 150;
@@ -185,8 +186,8 @@ function tb_show(caption, url, imageGroup) {//function called when the user clic
                        var queryString = url.replace(/^[^\?]+\??/,'');
                        var params = tb_parseQuery( queryString );
 
                        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
+                       TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no parameters were added to URL
+                       TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no parameters were added to URL
                        ajaxContentW = TB_WIDTH - 30;
                        ajaxContentH = TB_HEIGHT - 45;
 
                        ajaxContentW = TB_WIDTH - 30;
                        ajaxContentH = TB_HEIGHT - 45;
 
@@ -264,6 +265,7 @@ 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("tb_unload").unbind().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("tb_unload").unbind().remove();});
+       jQuery( 'body' ).removeClass( 'modal-open' );
        jQuery("#TB_load").remove();
        if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
                jQuery("body","html").css({height: "auto", width: "auto"});
        jQuery("#TB_load").remove();
        if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
                jQuery("body","html").css({height: "auto", width: "auto"});
index 203a38067ab32fc24875ea079af0d21518f2b66d..27b6a46da43bd5bf8c75b9904ca159c04f667bc6 100644 (file)
@@ -309,8 +309,13 @@ tinymce.PluginManager.add('charmap', function(editor) {
                        html: gridHtml,
                        onclick: function(e) {
                                var target = e.target;
                        html: gridHtml,
                        onclick: function(e) {
                                var target = e.target;
-                               if (/^(TD|DIV)$/.test(target.nodeName)) {
-                                       editor.execCommand('mceInsertContent', false, tinymce.trim(target.innerText || target.textContent));
+
+                               if (target.tagName == 'TD') {
+                                       target = target.firstChild;
+                               }
+
+                               if (target.tagName == 'DIV') {
+                                       editor.execCommand('mceInsertContent', false, target.firstChild.data);
 
                                        if (!e.ctrlKey) {
                                                win.close();
 
                                        if (!e.ctrlKey) {
                                                win.close();
index eee3bb1e56e2d7e54e49a234e24d0ea074ba9214..46fce44be9952f9bfd8baa2acdfa29535c02c6cc 100644 (file)
@@ -1 +1 @@
-tinymce.PluginManager.add("charmap",function(e){function a(){function a(e){for(;e;){if("TD"==e.nodeName)return e;e=e.parentNode}}var i,r,o,n;i='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var l=25;for(o=0;10>o;o++){for(i+="<tr>",r=0;l>r;r++){var s=t[o*l+r];i+='<td title="'+s[1]+'"><div tabindex="-1" title="'+s[1]+'" role="button">'+(s?String.fromCharCode(parseInt(s[0],10)):"&nbsp;")+"</div></td>"}i+="</tr>"}i+="</tbody></table>";var c={type:"container",html:i,onclick:function(a){var t=a.target;/^(TD|DIV)$/.test(t.nodeName)&&(e.execCommand("mceInsertContent",!1,tinymce.trim(t.innerText||t.textContent)),a.ctrlKey||n.close())},onmouseover:function(e){var t=a(e.target);t&&n.find("#preview").text(t.firstChild.firstChild.data)}};n=e.windowManager.open({title:"Special character",spacing:10,padding:10,items:[c,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){n.close()}}]})}var t=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];e.addButton("charmap",{icon:"charmap",tooltip:"Special character",onclick:a}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:a,context:"insert"})});
\ No newline at end of file
+tinymce.PluginManager.add("charmap",function(e){function a(){function a(e){for(;e;){if("TD"==e.nodeName)return e;e=e.parentNode}}var t,r,o,n;t='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var l=25;for(o=0;10>o;o++){for(t+="<tr>",r=0;l>r;r++){var s=i[o*l+r];t+='<td title="'+s[1]+'"><div tabindex="-1" title="'+s[1]+'" role="button">'+(s?String.fromCharCode(parseInt(s[0],10)):"&nbsp;")+"</div></td>"}t+="</tr>"}t+="</tbody></table>";var c={type:"container",html:t,onclick:function(a){var i=a.target;"TD"==i.tagName&&(i=i.firstChild),"DIV"==i.tagName&&(e.execCommand("mceInsertContent",!1,i.firstChild.data),a.ctrlKey||n.close())},onmouseover:function(e){var i=a(e.target);i&&n.find("#preview").text(i.firstChild.firstChild.data)}};n=e.windowManager.open({title:"Special character",spacing:10,padding:10,items:[c,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){n.close()}}]})}var i=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];e.addButton("charmap",{icon:"charmap",tooltip:"Special character",onclick:a}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:a,context:"insert"})});
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/colorpicker/plugin.js b/wp-includes/js/tinymce/plugins/colorpicker/plugin.js
new file mode 100644 (file)
index 0000000..11d0af3
--- /dev/null
@@ -0,0 +1,112 @@
+/**
+ * plugin.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+/*global tinymce:true */
+
+tinymce.PluginManager.add('colorpicker', function(editor) {
+       function colorPickerCallback(callback, value) {
+               function setColor(value) {
+                       var color = new tinymce.util.Color(value), rgb = color.toRgb();
+
+                       win.fromJSON({
+                               r: rgb.r,
+                               g: rgb.g,
+                               b: rgb.b,
+                               hex: color.toHex().substr(1)
+                       });
+
+                       showPreview(color.toHex());
+               }
+
+               function showPreview(hexColor) {
+                       win.find('#preview')[0].getEl().style.background = hexColor;
+               }
+
+               var win = editor.windowManager.open({
+                       title: 'Color',
+                       items: {
+                               type: 'container',
+                               layout: 'flex',
+                               direction: 'row',
+                               align: 'stretch',
+                               padding: 5,
+                               spacing: 10,
+                               items: [
+                                       {
+                                               type: 'colorpicker',
+                                               value: value,
+                                               onchange: function() {
+                                                       var rgb = this.rgb();
+
+                                                       if (win) {
+                                                               win.find('#r').value(rgb.r);
+                                                               win.find('#g').value(rgb.g);
+                                                               win.find('#b').value(rgb.b);
+                                                               win.find('#hex').value(this.value().substr(1));
+                                                               showPreview(this.value());
+                                                       }
+                                               }
+                                       },
+                                       {
+                                               type: 'form',
+                                               padding: 0,
+                                               labelGap: 5,
+                                               defaults: {
+                                                       type: 'textbox',
+                                                       size: 7,
+                                                       value: '0',
+                                                       flex: 1,
+                                                       spellcheck: false,
+                                                       onchange: function() {
+                                                               var colorPickerCtrl = win.find('colorpicker')[0];
+                                                               var name, value;
+
+                                                               name = this.name();
+                                                               value = this.value();
+
+                                                               if (name == "hex") {
+                                                                       value = '#' + value;
+                                                                       setColor(value);
+                                                                       colorPickerCtrl.value(value);
+                                                                       return;
+                                                               }
+
+                                                               value = {
+                                                                       r: win.find('#r').value(),
+                                                                       g: win.find('#g').value(),
+                                                                       b: win.find('#b').value()
+                                                               };
+
+                                                               colorPickerCtrl.value(value);
+                                                               setColor(value);
+                                                       }
+                                               },
+                                               items: [
+                                                       {name: 'r', label: 'R', autofocus: 1},
+                                                       {name: 'g', label: 'G'},
+                                                       {name: 'b', label: 'B'},
+                                                       {name: 'hex', label: '#', value: '000000'},
+                                                       {name: 'preview', type: 'container', border: 1}
+                                               ]
+                                       }
+                               ]
+                       },
+                       onSubmit: function() {
+                               callback('#' + this.toJSON().hex);
+                       }
+               });
+
+               setColor(value);
+       }
+
+       if (!editor.settings.color_picker_callback) {
+               editor.settings.color_picker_callback = colorPickerCallback;
+       }
+});
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js b/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js
new file mode 100644 (file)
index 0000000..d50c7cc
--- /dev/null
@@ -0,0 +1 @@
+tinymce.PluginManager.add("colorpicker",function(e){function n(n,a){function i(e){var n=new tinymce.util.Color(e),a=n.toRgb();l.fromJSON({r:a.r,g:a.g,b:a.b,hex:n.toHex().substr(1)}),t(n.toHex())}function t(e){l.find("#preview")[0].getEl().style.background=e}var l=e.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:a,onchange:function(){var e=this.rgb();l&&(l.find("#r").value(e.r),l.find("#g").value(e.g),l.find("#b").value(e.b),l.find("#hex").value(this.value().substr(1)),t(this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var e,n,a=l.find("colorpicker")[0];return e=this.name(),n=this.value(),"hex"==e?(n="#"+n,i(n),void a.value(n)):(n={r:l.find("#r").value(),g:l.find("#g").value(),b:l.find("#b").value()},a.value(n),void i(n))}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){n("#"+this.toJSON().hex)}});i(a)}e.settings.color_picker_callback||(e.settings.color_picker_callback=n)});
\ No newline at end of file
index 03e864c5332768ca3b9162e3a747085f6b2ab36d..cc6e32290606e0414c234e72bb75747695d8e3ab 100644 (file)
@@ -22,7 +22,8 @@
 (function(tinymce) {
        var reported;
 
 (function(tinymce) {
        var reported;
 
-       function noop() {}
+       function noop() {
+       }
 
        function log(apiCall) {
                if (!reported && window && window.console) {
 
        function log(apiCall) {
                if (!reported && window && window.console) {
                        onAdd: new Dispatcher(),
                        onPostRender: new Dispatcher(),
 
                        onAdd: new Dispatcher(),
                        onPostRender: new Dispatcher(),
 
-                       add: function(obj) { return obj; },
+                       add: function(obj) {
+                               return obj;
+                       },
                        createButton: cmNoop,
                        createColorSplitButton: cmNoop,
                        createControl: cmNoop,
                        createButton: cmNoop,
                        createColorSplitButton: cmNoop,
                        createControl: cmNoop,
index c7f6f5acda595fa90e0afc5d32855c533fa30ed2..9d105eff303477d0a71d53a654ffb9a3e410bdc1 100644 (file)
@@ -40,14 +40,27 @@ tinymce.PluginManager.add('image', function(editor) {
                img.src = url;
        }
 
                img.src = url;
        }
 
-       function applyPreview(items) {
-               tinymce.each(items, function(item) {
-                       item.textStyle = function() {
-                               return editor.formatter.getCssText({inline: 'img', classes: [item.value]});
-                       };
-               });
+       function buildListItems(inputList, itemCallback, startItems) {
+               function appendItems(values, output) {
+                       output = output || [];
+
+                       tinymce.each(values, function(item) {
+                               var menuItem = {text: item.text || item.title};
+
+                               if (item.menu) {
+                                       menuItem.menu = appendItems(item.menu);
+                               } else {
+                                       menuItem.value = item.value;
+                                       itemCallback(menuItem);
+                               }
+
+                               output.push(menuItem);
+                       });
+
+                       return output;
+               }
 
 
-               return items;
+               return appendItems(inputList, startItems || []);
        }
 
        function createImageList(callback) {
        }
 
        function createImageList(callback) {
@@ -61,6 +74,8 @@ tinymce.PluginManager.add('image', function(editor) {
                                                callback(tinymce.util.JSON.parse(text));
                                        }
                                });
                                                callback(tinymce.util.JSON.parse(text));
                                        }
                                });
+                       } else if (typeof(imageList) == "function") {
+                               imageList(callback);
                        } else {
                                callback(imageList);
                        }
                        } else {
                                callback(imageList);
                        }
@@ -69,45 +84,7 @@ tinymce.PluginManager.add('image', function(editor) {
 
        function showDialog(imageList) {
                var win, data = {}, dom = editor.dom, imgElm = editor.selection.getNode();
 
        function showDialog(imageList) {
                var win, data = {}, dom = editor.dom, imgElm = editor.selection.getNode();
-               var width, height, imageListCtrl, classListCtrl;
-
-               function buildValues(listSettingName, dataItemName, defaultItems) {
-                       var selectedItem, items = [];
-
-                       tinymce.each(editor.settings[listSettingName] || defaultItems, function(target) {
-                               var item = {
-                                       text: target.text || target.title,
-                                       value: target.value
-                               };
-
-                               items.push(item);
-
-                               if (data[dataItemName] === target.value || (!selectedItem && target.selected)) {
-                                       selectedItem = item;
-                               }
-                       });
-
-                       if (selectedItem && !data[dataItemName]) {
-                               data[dataItemName] = selectedItem.value;
-                               selectedItem.selected = true;
-                       }
-
-                       return items;
-               }
-
-               function buildImageList() {
-                       var imageListItems = [{text: 'None', value: ''}];
-
-                       tinymce.each(imageList, function(image) {
-                               imageListItems.push({
-                                       text: image.text || image.title,
-                                       value: editor.convertURL(image.value || image.url, 'src'),
-                                       menu: image.menu
-                               });
-                       });
-
-                       return imageListItems;
-               }
+               var width, height, imageListCtrl, classListCtrl, imageDimensions = editor.settings.image_dimensions !== false;
 
                function recalcSize() {
                        var widthCtrl, heightCtrl, newWidth, newHeight;
 
                function recalcSize() {
                        var widthCtrl, heightCtrl, newWidth, newHeight;
@@ -115,6 +92,10 @@ tinymce.PluginManager.add('image', function(editor) {
                        widthCtrl = win.find('#width')[0];
                        heightCtrl = win.find('#height')[0];
 
                        widthCtrl = win.find('#width')[0];
                        heightCtrl = win.find('#height')[0];
 
+                       if (!widthCtrl || !heightCtrl) {
+                               return;
+                       }
+
                        newWidth = widthCtrl.value();
                        newHeight = heightCtrl.value();
 
                        newWidth = widthCtrl.value();
                        newHeight = heightCtrl.value();
 
@@ -136,12 +117,15 @@ tinymce.PluginManager.add('image', function(editor) {
                        function waitLoad(imgElm) {
                                function selectImage() {
                                        imgElm.onload = imgElm.onerror = null;
                        function waitLoad(imgElm) {
                                function selectImage() {
                                        imgElm.onload = imgElm.onerror = null;
-                                       editor.selection.select(imgElm);
-                                       editor.nodeChanged();
+
+                                       if (editor.selection) {
+                                               editor.selection.select(imgElm);
+                                               editor.nodeChanged();
+                                       }
                                }
 
                                imgElm.onload = function() {
                                }
 
                                imgElm.onload = function() {
-                                       if (!data.width && !data.height) {
+                                       if (!data.width && !data.height && imageDimensions) {
                                                dom.setAttribs(imgElm, {
                                                        width: imgElm.clientWidth,
                                                        height: imgElm.clientHeight
                                                dom.setAttribs(imgElm, {
                                                        width: imgElm.clientWidth,
                                                        height: imgElm.clientHeight
@@ -174,10 +158,11 @@ tinymce.PluginManager.add('image', function(editor) {
                                data.height = null;
                        }
 
                                data.height = null;
                        }
 
-                       if (data.style === '') {
+                       if (!data.style) {
                                data.style = null;
                        }
 
                                data.style = null;
                        }
 
+                       // Setup new data excluding style properties
                        data = {
                                src: data.src,
                                alt: data.alt,
                        data = {
                                src: data.src,
                                alt: data.alt,
@@ -187,10 +172,6 @@ tinymce.PluginManager.add('image', function(editor) {
                                "class": data["class"]
                        };
 
                                "class": data["class"]
                        };
 
-                       if (!data["class"]) {
-                               delete data["class"];
-                       }
-
                        editor.undoManager.transact(function() {
                                // WP
                                var eventData = { node: imgElm, data: data, caption: caption };
                        editor.undoManager.transact(function() {
                                // WP
                                var eventData = { node: imgElm, data: data, caption: caption };
@@ -235,20 +216,28 @@ tinymce.PluginManager.add('image', function(editor) {
                        return value;
                }
 
                        return value;
                }
 
-               function srcChange() {
+               function srcChange(e) {
+                       var meta = e.meta || {};
+
                        if (imageListCtrl) {
                                imageListCtrl.value(editor.convertURL(this.value(), 'src'));
                        }
 
                        if (imageListCtrl) {
                                imageListCtrl.value(editor.convertURL(this.value(), 'src'));
                        }
 
-                       getImageSize(this.value(), function(data) {
-                               if (data.width && data.height) {
-                                       width = data.width;
-                                       height = data.height;
-
-                                       win.find('#width').value(width);
-                                       win.find('#height').value(height);
-                               }
+                       tinymce.each(meta, function(value, key) {
+                               win.find('#' + key).value(value);
                        });
                        });
+
+                       if (!meta.width && !meta.height) {
+                               getImageSize(this.value(), function(data) {
+                                       if (data.width && data.height && imageDimensions) {
+                                               width = data.width;
+                                               height = data.height;
+
+                                               win.find('#width').value(width);
+                                               win.find('#height').value(height);
+                                       }
+                               });
+                       }
                }
 
                width = dom.getAttrib(imgElm, 'width');
                }
 
                width = dom.getAttrib(imgElm, 'width');
@@ -273,7 +262,13 @@ tinymce.PluginManager.add('image', function(editor) {
                        imageListCtrl = {
                                type: 'listbox',
                                label: 'Image list',
                        imageListCtrl = {
                                type: 'listbox',
                                label: 'Image list',
-                               values: buildImageList(),
+                               values: buildListItems(
+                                       imageList,
+                                       function(item) {
+                                               item.value = editor.convertURL(item.value || item.url, 'src');
+                                       },
+                                       [{text: 'None', value: ''}]
+                               ),
                                value: data.src && editor.convertURL(data.src, 'src'),
                                onselect: function(e) {
                                        var altCtrl = win.find('#alt');
                                value: data.src && editor.convertURL(data.src, 'src'),
                                onselect: function(e) {
                                        var altCtrl = win.find('#alt');
@@ -282,7 +277,7 @@ tinymce.PluginManager.add('image', function(editor) {
                                                altCtrl.value(e.control.text());
                                        }
 
                                                altCtrl.value(e.control.text());
                                        }
 
-                                       win.find('#src').value(e.control.value());
+                                       win.find('#src').value(e.control.value()).fire('change');
                                },
                                onPostRender: function() {
                                        imageListCtrl = this;
                                },
                                onPostRender: function() {
                                        imageListCtrl = this;
@@ -295,13 +290,29 @@ tinymce.PluginManager.add('image', function(editor) {
                                name: 'class',
                                type: 'listbox',
                                label: 'Class',
                                name: 'class',
                                type: 'listbox',
                                label: 'Class',
-                               values: applyPreview(buildValues('image_class_list', 'class'))
+                               values: buildListItems(
+                                       editor.settings.image_class_list,
+                                       function(item) {
+                                               if (item.value) {
+                                                       item.textStyle = function() {
+                                                               return editor.formatter.getCssText({inline: 'img', classes: [item.value]});
+                                                       };
+                                               }
+                                       }
+                               )
                        };
                }
 
                // General settings shared between simple and advanced dialogs
                var generalFormItems = [
                        };
                }
 
                // General settings shared between simple and advanced dialogs
                var generalFormItems = [
-                       {name: 'src', type: 'filepicker', filetype: 'image', label: 'Source', autofocus: true, onchange: srcChange},
+                       {
+                               name: 'src',
+                               type: 'filepicker',
+                               filetype: 'image',
+                               label: 'Source',
+                               autofocus: true,
+                               onchange: srcChange
+                       },
                        imageListCtrl
                ];
 
                        imageListCtrl
                ];
 
@@ -309,7 +320,7 @@ tinymce.PluginManager.add('image', function(editor) {
                        generalFormItems.push({name: 'alt', type: 'textbox', label: 'Image description'});
                }
 
                        generalFormItems.push({name: 'alt', type: 'textbox', label: 'Image description'});
                }
 
-               if (editor.settings.image_dimensions !== false) {
+               if (imageDimensions) {
                        generalFormItems.push({
                                type: 'container',
                                label: 'Dimensions',
                        generalFormItems.push({
                                type: 'container',
                                label: 'Dimensions',
@@ -420,11 +431,6 @@ tinymce.PluginManager.add('image', function(editor) {
                }
        }
 
                }
        }
 
-       // WP
-       editor.addCommand( 'mceImage', function() {
-               createImageList( showDialog )();
-       });
-
        editor.addButton('image', {
                icon: 'image',
                tooltip: 'Insert/edit image',
        editor.addButton('image', {
                icon: 'image',
                tooltip: 'Insert/edit image',
@@ -439,4 +445,6 @@ tinymce.PluginManager.add('image', function(editor) {
                context: 'insert',
                prependToContext: true
        });
                context: 'insert',
                prependToContext: true
        });
+
+       editor.addCommand('mceImage', createImageList(showDialog));
 });
 });
index bb1c7474d028fce97d38954ea6a2be9b76532cfc..e4192ae06e81aead479edad94daa57cd71be60b5 100644 (file)
@@ -1 +1 @@
-tinymce.PluginManager.add("image",function(a){function b(a,b){function c(a,c){d.parentNode&&d.parentNode.removeChild(d),b({width:a,height:c})}var d=document.createElement("img");d.onload=function(){c(d.clientWidth,d.clientHeight)},d.onerror=function(){c()};var e=d.style;e.visibility="hidden",e.position="fixed",e.bottom=e.left=0,e.width=e.height="auto",document.body.appendChild(d),d.src=a}function c(b){return tinymce.each(b,function(b){b.textStyle=function(){return a.formatter.getCssText({inline:"img",classes:[b.value]})}}),b}function d(b){return function(){var c=a.settings.image_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):b(c)}}function e(d){function e(b,c,d){var e,f=[];return tinymce.each(a.settings[b]||d,function(a){var b={text:a.text||a.title,value:a.value};f.push(b),(q[c]===a.value||!e&&a.selected)&&(e=b)}),e&&!q[c]&&(q[c]=e.value,e.selected=!0),f}function f(){var b=[{text:"None",value:""}];return tinymce.each(d,function(c){b.push({text:c.text||c.title,value:a.convertURL(c.value||c.url,"src"),menu:c.menu})}),b}function g(){var a,b,c,d;a=l.find("#width")[0],b=l.find("#height")[0],c=a.value(),d=b.value(),l.find("#constrain")[0].checked()&&m&&n&&c&&d&&(m!=c?(d=Math.round(c/m*d),b.value(d)):(c=Math.round(d/n*c),a.value(c))),m=c,n=d}function h(){function b(b){function c(){b.onload=b.onerror=null,a.selection.select(b),a.nodeChanged()}b.onload=function(){q.width||q.height||(r.setAttribs(b,{width:b.clientWidth,height:b.clientHeight}),a.fire("wpNewImageRefresh",{node:b})),c()},b.onerror=c}k(),g(),q=tinymce.extend(q,l.toJSON());var c=q.caption;q.alt||(q.alt=""),""===q.width&&(q.width=null),""===q.height&&(q.height=null),""===q.style&&(q.style=null),q={src:q.src,alt:q.alt,width:q.width,height:q.height,style:q.style,"class":q["class"]},q["class"]||delete q["class"],a.undoManager.transact(function(){var d={node:s,data:q,caption:c};return a.fire("wpImageFormSubmit",{imgData:d}),d.cancel?void b(d.node):q.src?(s?r.setAttribs(s,q):(q.id="__mcenew",a.focus(),a.selection.setContent(r.createHTML("img",q)),s=r.get("__mcenew"),r.setAttrib(s,"id",null)),void b(s)):void(s&&(r.remove(s),a.focus(),a.nodeChanged()))})}function i(a){return a&&(a=a.replace(/px$/,"")),a}function j(){o&&o.value(a.convertURL(this.value(),"src")),b(this.value(),function(a){a.width&&a.height&&(m=a.width,n=a.height,l.find("#width").value(m),l.find("#height").value(n))})}function k(){function b(a){return a.length>0&&/^[0-9]+$/.test(a)&&(a+="px"),a}if(a.settings.image_advtab){var c=l.toJSON(),d=r.parseStyle(c.style);delete d.margin,d["margin-top"]=d["margin-bottom"]=b(c.vspace),d["margin-left"]=d["margin-right"]=b(c.hspace),d["border-width"]=b(c.border),l.find("#style").value(r.serializeStyle(r.parseStyle(r.serializeStyle(d))))}}var l,m,n,o,p,q={},r=a.dom,s=a.selection.getNode();m=r.getAttrib(s,"width"),n=r.getAttrib(s,"height"),"IMG"!=s.nodeName||s.getAttribute("data-mce-object")||s.getAttribute("data-mce-placeholder")?s=null:(q={src:r.getAttrib(s,"src"),alt:r.getAttrib(s,"alt"),"class":r.getAttrib(s,"class"),width:m,height:n},a.fire("wpLoadImageData",{imgData:{data:q,node:s}})),d&&(o={type:"listbox",label:"Image list",values:f(),value:q.src&&a.convertURL(q.src,"src"),onselect:function(a){var b=l.find("#alt");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),l.find("#src").value(a.control.value())},onPostRender:function(){o=this}}),a.settings.image_class_list&&(p={name:"class",type:"listbox",label:"Class",values:c(e("image_class_list","class"))});var t=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:j},o];a.settings.image_description!==!1&&t.push({name:"alt",type:"textbox",label:"Image description"}),a.settings.image_dimensions!==!1&&t.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:g,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:g,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),t.push(p),a.fire("wpLoadImageForm",{data:t}),a.settings.image_advtab?(s&&(q.hspace=i(s.style.marginLeft||s.style.marginRight),q.vspace=i(s.style.marginTop||s.style.marginBottom),q.border=i(s.style.borderWidth),q.style=a.dom.serializeStyle(a.dom.parseStyle(a.dom.getAttrib(s,"style")))),l=a.windowManager.open({title:"Insert/edit image",data:q,bodyType:"tabpanel",body:[{title:"General",type:"form",items:t},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:k},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:h})):l=a.windowManager.open({title:"Insert/edit image",data:q,body:t,onSubmit:h})}a.addCommand("mceImage",function(){d(e)()}),a.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:d(e),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),a.addMenuItem("image",{icon:"image",text:"Insert image",onclick:d(e),context:"insert",prependToContext:!0})});
+tinymce.PluginManager.add("image",function(a){function b(a,b){function c(a,c){d.parentNode&&d.parentNode.removeChild(d),b({width:a,height:c})}var d=document.createElement("img");d.onload=function(){c(d.clientWidth,d.clientHeight)},d.onerror=function(){c()};var e=d.style;e.visibility="hidden",e.position="fixed",e.bottom=e.left=0,e.width=e.height="auto",document.body.appendChild(d),d.src=a}function c(a,b,c){function d(a,c){return c=c||[],tinymce.each(a,function(a){var e={text:a.text||a.title};a.menu?e.menu=d(a.menu):(e.value=a.value,b(e)),c.push(e)}),c}return d(a,c||[])}function d(b){return function(){var c=a.settings.image_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):"function"==typeof c?c(b):b(c)}}function e(d){function e(){var a,b,c,d;a=j.find("#width")[0],b=j.find("#height")[0],a&&b&&(c=a.value(),d=b.value(),j.find("#constrain")[0].checked()&&k&&l&&c&&d&&(k!=c?(d=Math.round(c/k*d),b.value(d)):(c=Math.round(d/l*c),a.value(c))),k=c,l=d)}function f(){function b(b){function c(){b.onload=b.onerror=null,a.selection&&(a.selection.select(b),a.nodeChanged())}b.onload=function(){o.width||o.height||!r||(p.setAttribs(b,{width:b.clientWidth,height:b.clientHeight}),a.fire("wpNewImageRefresh",{node:b})),c()},b.onerror=c}i(),e(),o=tinymce.extend(o,j.toJSON());var c=o.caption;o.alt||(o.alt=""),""===o.width&&(o.width=null),""===o.height&&(o.height=null),o.style||(o.style=null),o={src:o.src,alt:o.alt,width:o.width,height:o.height,style:o.style,"class":o["class"]},a.undoManager.transact(function(){var d={node:q,data:o,caption:c};return a.fire("wpImageFormSubmit",{imgData:d}),d.cancel?void b(d.node):o.src?(q?p.setAttribs(q,o):(o.id="__mcenew",a.focus(),a.selection.setContent(p.createHTML("img",o)),q=p.get("__mcenew"),p.setAttrib(q,"id",null)),void b(q)):void(q&&(p.remove(q),a.focus(),a.nodeChanged()))})}function g(a){return a&&(a=a.replace(/px$/,"")),a}function h(c){var d=c.meta||{};m&&m.value(a.convertURL(this.value(),"src")),tinymce.each(d,function(a,b){j.find("#"+b).value(a)}),d.width||d.height||b(this.value(),function(a){a.width&&a.height&&r&&(k=a.width,l=a.height,j.find("#width").value(k),j.find("#height").value(l))})}function i(){function b(a){return a.length>0&&/^[0-9]+$/.test(a)&&(a+="px"),a}if(a.settings.image_advtab){var c=j.toJSON(),d=p.parseStyle(c.style);delete d.margin,d["margin-top"]=d["margin-bottom"]=b(c.vspace),d["margin-left"]=d["margin-right"]=b(c.hspace),d["border-width"]=b(c.border),j.find("#style").value(p.serializeStyle(p.parseStyle(p.serializeStyle(d))))}}var j,k,l,m,n,o={},p=a.dom,q=a.selection.getNode(),r=a.settings.image_dimensions!==!1;k=p.getAttrib(q,"width"),l=p.getAttrib(q,"height"),"IMG"!=q.nodeName||q.getAttribute("data-mce-object")||q.getAttribute("data-mce-placeholder")?q=null:(o={src:p.getAttrib(q,"src"),alt:p.getAttrib(q,"alt"),"class":p.getAttrib(q,"class"),width:k,height:l},a.fire("wpLoadImageData",{imgData:{data:o,node:q}})),d&&(m={type:"listbox",label:"Image list",values:c(d,function(b){b.value=a.convertURL(b.value||b.url,"src")},[{text:"None",value:""}]),value:o.src&&a.convertURL(o.src,"src"),onselect:function(a){var b=j.find("#alt");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),j.find("#src").value(a.control.value()).fire("change")},onPostRender:function(){m=this}}),a.settings.image_class_list&&(n={name:"class",type:"listbox",label:"Class",values:c(a.settings.image_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"img",classes:[b.value]})})})});var s=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:h},m];a.settings.image_description!==!1&&s.push({name:"alt",type:"textbox",label:"Image description"}),r&&s.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),s.push(n),a.fire("wpLoadImageForm",{data:s}),a.settings.image_advtab?(q&&(o.hspace=g(q.style.marginLeft||q.style.marginRight),o.vspace=g(q.style.marginTop||q.style.marginBottom),o.border=g(q.style.borderWidth),o.style=a.dom.serializeStyle(a.dom.parseStyle(a.dom.getAttrib(q,"style")))),j=a.windowManager.open({title:"Insert/edit image",data:o,bodyType:"tabpanel",body:[{title:"General",type:"form",items:s},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:i},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:f})):j=a.windowManager.open({title:"Insert/edit image",data:o,body:s,onSubmit:f})}a.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:d(e),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),a.addMenuItem("image",{icon:"image",text:"Insert image",onclick:d(e),context:"insert",prependToContext:!0}),a.addCommand("mceImage",d(e))});
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/lists/plugin.js b/wp-includes/js/tinymce/plugins/lists/plugin.js
new file mode 100644 (file)
index 0000000..d7d15d8
--- /dev/null
@@ -0,0 +1,786 @@
+/**
+ * plugin.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+/*global tinymce:true */
+/*eslint consistent-this:0 */
+
+tinymce.PluginManager.add('lists', function(editor) {
+       var self = this;
+
+       function isListNode(node) {
+               return node && (/^(OL|UL|DL)$/).test(node.nodeName);
+       }
+
+       function isFirstChild(node) {
+               return node.parentNode.firstChild == node;
+       }
+
+       function isLastChild(node) {
+               return node.parentNode.lastChild == node;
+       }
+
+       function isTextBlock(node) {
+               return node && !!editor.schema.getTextBlockElements()[node.nodeName];
+       }
+
+       editor.on('init', function() {
+               var dom = editor.dom, selection = editor.selection;
+
+               /**
+                * Returns a range bookmark. This will convert indexed bookmarks into temporary span elements with
+                * index 0 so that they can be restored properly after the DOM has been modified. Text bookmarks will not have spans
+                * added to them since they can be restored after a dom operation.
+                *
+                * So this: <p><b>|</b><b>|</b></p>
+                * becomes: <p><b><span data-mce-type="bookmark">|</span></b><b data-mce-type="bookmark">|</span></b></p>
+                *
+                * @param  {DOMRange} rng DOM Range to get bookmark on.
+                * @return {Object} Bookmark object.
+                */
+               function createBookmark(rng) {
+                       var bookmark = {};
+
+                       function setupEndPoint(start) {
+                               var offsetNode, container, offset;
+
+                               container = rng[start ? 'startContainer' : 'endContainer'];
+                               offset = rng[start ? 'startOffset' : 'endOffset'];
+
+                               if (container.nodeType == 1) {
+                                       offsetNode = dom.create('span', {'data-mce-type': 'bookmark'});
+
+                                       if (container.hasChildNodes()) {
+                                               offset = Math.min(offset, container.childNodes.length - 1);
+
+                                               if (start) {
+                                                       container.insertBefore(offsetNode, container.childNodes[offset]);
+                                               } else {
+                                                       dom.insertAfter(offsetNode, container.childNodes[offset]);
+                                               }
+                                       } else {
+                                               container.appendChild(offsetNode);
+                                       }
+
+                                       container = offsetNode;
+                                       offset = 0;
+                               }
+
+                               bookmark[start ? 'startContainer' : 'endContainer'] = container;
+                               bookmark[start ? 'startOffset' : 'endOffset'] = offset;
+                       }
+
+                       setupEndPoint(true);
+
+                       if (!rng.collapsed) {
+                               setupEndPoint();
+                       }
+
+                       return bookmark;
+               }
+
+               /**
+                * Moves the selection to the current bookmark and removes any selection container wrappers.
+                *
+                * @param {Object} bookmark Bookmark object to move selection to.
+                */
+               function moveToBookmark(bookmark) {
+                       function restoreEndPoint(start) {
+                               var container, offset, node;
+
+                               function nodeIndex(container) {
+                                       var node = container.parentNode.firstChild, idx = 0;
+
+                                       while (node) {
+                                               if (node == container) {
+                                                       return idx;
+                                               }
+
+                                               // Skip data-mce-type=bookmark nodes
+                                               if (node.nodeType != 1 || node.getAttribute('data-mce-type') != 'bookmark') {
+                                                       idx++;
+                                               }
+
+                                               node = node.nextSibling;
+                                       }
+
+                                       return -1;
+                               }
+
+                               container = node = bookmark[start ? 'startContainer' : 'endContainer'];
+                               offset = bookmark[start ? 'startOffset' : 'endOffset'];
+
+                               if (!container) {
+                                       return;
+                               }
+
+                               if (container.nodeType == 1) {
+                                       offset = nodeIndex(container);
+                                       container = container.parentNode;
+                                       dom.remove(node);
+                               }
+
+                               bookmark[start ? 'startContainer' : 'endContainer'] = container;
+                               bookmark[start ? 'startOffset' : 'endOffset'] = offset;
+                       }
+
+                       restoreEndPoint(true);
+                       restoreEndPoint();
+
+                       var rng = dom.createRng();
+
+                       rng.setStart(bookmark.startContainer, bookmark.startOffset);
+
+                       if (bookmark.endContainer) {
+                               rng.setEnd(bookmark.endContainer, bookmark.endOffset);
+                       }
+
+                       selection.setRng(rng);
+               }
+
+               function createNewTextBlock(contentNode, blockName) {
+                       var node, textBlock, fragment = dom.createFragment(), hasContentNode;
+                       var blockElements = editor.schema.getBlockElements();
+
+                       if (editor.settings.forced_root_block) {
+                               blockName = blockName || editor.settings.forced_root_block;
+                       }
+
+                       if (blockName) {
+                               textBlock = dom.create(blockName);
+
+                               if (textBlock.tagName === editor.settings.forced_root_block) {
+                                       dom.setAttribs(textBlock, editor.settings.forced_root_block_attrs);
+                               }
+
+                               fragment.appendChild(textBlock);
+                       }
+
+                       if (contentNode) {
+                               while ((node = contentNode.firstChild)) {
+                                       var nodeName = node.nodeName;
+
+                                       if (!hasContentNode && (nodeName != 'SPAN' || node.getAttribute('data-mce-type') != 'bookmark')) {
+                                               hasContentNode = true;
+                                       }
+
+                                       if (blockElements[nodeName]) {
+                                               fragment.appendChild(node);
+                                               textBlock = null;
+                                       } else {
+                                               if (blockName) {
+                                                       if (!textBlock) {
+                                                               textBlock = dom.create(blockName);
+                                                               fragment.appendChild(textBlock);
+                                                       }
+
+                                                       textBlock.appendChild(node);
+                                               } else {
+                                                       fragment.appendChild(node);
+                                               }
+                                       }
+                               }
+                       }
+
+                       if (!editor.settings.forced_root_block) {
+                               fragment.appendChild(dom.create('br'));
+                       } else {
+                               // BR is needed in empty blocks on non IE browsers
+                               if (!hasContentNode && (!tinymce.Env.ie || tinymce.Env.ie > 10)) {
+                                       textBlock.appendChild(dom.create('br', {'data-mce-bogus': '1'}));
+                               }
+                       }
+
+                       return fragment;
+               }
+
+               function getSelectedListItems() {
+                       return tinymce.grep(selection.getSelectedBlocks(), function(block) {
+                               return /^(LI|DT|DD)$/.test(block.nodeName);
+                       });
+               }
+
+               function splitList(ul, li, newBlock) {
+                       var tmpRng, fragment;
+
+                       var bookmarks = dom.select('span[data-mce-type="bookmark"]', ul);
+
+                       newBlock = newBlock || createNewTextBlock(li);
+                       tmpRng = dom.createRng();
+                       tmpRng.setStartAfter(li);
+                       tmpRng.setEndAfter(ul);
+                       fragment = tmpRng.extractContents();
+
+                       if (!dom.isEmpty(fragment)) {
+                               dom.insertAfter(fragment, ul);
+                       }
+
+                       dom.insertAfter(newBlock, ul);
+
+                       if (dom.isEmpty(li.parentNode)) {
+                               tinymce.each(bookmarks, function(node) {
+                                       li.parentNode.parentNode.insertBefore(node, li.parentNode);
+                               });
+
+                               dom.remove(li.parentNode);
+                       }
+
+                       dom.remove(li);
+               }
+
+               function mergeWithAdjacentLists(listBlock) {
+                       var sibling, node;
+
+                       sibling = listBlock.nextSibling;
+                       if (sibling && isListNode(sibling) && sibling.nodeName == listBlock.nodeName) {
+                               while ((node = sibling.firstChild)) {
+                                       listBlock.appendChild(node);
+                               }
+
+                               dom.remove(sibling);
+                       }
+
+                       sibling = listBlock.previousSibling;
+                       if (sibling && isListNode(sibling) && sibling.nodeName == listBlock.nodeName) {
+                               while ((node = sibling.firstChild)) {
+                                       listBlock.insertBefore(node, listBlock.firstChild);
+                               }
+
+                               dom.remove(sibling);
+                       }
+               }
+
+               /**
+                * Normalizes the all lists in the specified element.
+                */
+               function normalizeList(element) {
+                       tinymce.each(tinymce.grep(dom.select('ol,ul', element)), function(ul) {
+                               var sibling, parentNode = ul.parentNode;
+
+                               // Move UL/OL to previous LI if it's the only child of a LI
+                               if (parentNode.nodeName == 'LI' && parentNode.firstChild == ul) {
+                                       sibling = parentNode.previousSibling;
+                                       if (sibling && sibling.nodeName == 'LI') {
+                                               sibling.appendChild(ul);
+
+                                               if (dom.isEmpty(parentNode)) {
+                                                       dom.remove(parentNode);
+                                               }
+                                       }
+                               }
+
+                               // Append OL/UL to previous LI if it's in a parent OL/UL i.e. old HTML4
+                               if (isListNode(parentNode)) {
+                                       sibling = parentNode.previousSibling;
+                                       if (sibling && sibling.nodeName == 'LI') {
+                                               sibling.appendChild(ul);
+                                       }
+                               }
+                       });
+               }
+
+               function outdent(li) {
+                       var ul = li.parentNode, ulParent = ul.parentNode, newBlock;
+
+                       function removeEmptyLi(li) {
+                               if (dom.isEmpty(li)) {
+                                       dom.remove(li);
+                               }
+                       }
+
+                       if (li.nodeName == 'DD') {
+                               dom.rename(li, 'DT');
+                               return true;
+                       }
+
+                       if (isFirstChild(li) && isLastChild(li)) {
+                               if (ulParent.nodeName == "LI") {
+                                       dom.insertAfter(li, ulParent);
+                                       removeEmptyLi(ulParent);
+                                       dom.remove(ul);
+                               } else if (isListNode(ulParent)) {
+                                       dom.remove(ul, true);
+                               } else {
+                                       ulParent.insertBefore(createNewTextBlock(li), ul);
+                                       dom.remove(ul);
+                               }
+
+                               return true;
+                       } else if (isFirstChild(li)) {
+                               if (ulParent.nodeName == "LI") {
+                                       dom.insertAfter(li, ulParent);
+                                       li.appendChild(ul);
+                                       removeEmptyLi(ulParent);
+                               } else if (isListNode(ulParent)) {
+                                       ulParent.insertBefore(li, ul);
+                               } else {
+                                       ulParent.insertBefore(createNewTextBlock(li), ul);
+                                       dom.remove(li);
+                               }
+
+                               return true;
+                       } else if (isLastChild(li)) {
+                               if (ulParent.nodeName == "LI") {
+                                       dom.insertAfter(li, ulParent);
+                               } else if (isListNode(ulParent)) {
+                                       dom.insertAfter(li, ul);
+                               } else {
+                                       dom.insertAfter(createNewTextBlock(li), ul);
+                                       dom.remove(li);
+                               }
+
+                               return true;
+                       } else {
+                               if (ulParent.nodeName == 'LI') {
+                                       ul = ulParent;
+                                       newBlock = createNewTextBlock(li, 'LI');
+                               } else if (isListNode(ulParent)) {
+                                       newBlock = createNewTextBlock(li, 'LI');
+                               } else {
+                                       newBlock = createNewTextBlock(li);
+                               }
+
+                               splitList(ul, li, newBlock);
+                               normalizeList(ul.parentNode);
+
+                               return true;
+                       }
+
+                       return false;
+               }
+
+               function indent(li) {
+                       var sibling, newList;
+
+                       function mergeLists(from, to) {
+                               var node;
+
+                               if (isListNode(from)) {
+                                       while ((node = li.lastChild.firstChild)) {
+                                               to.appendChild(node);
+                                       }
+
+                                       dom.remove(from);
+                               }
+                       }
+
+                       if (li.nodeName == 'DT') {
+                               dom.rename(li, 'DD');
+                               return true;
+                       }
+
+                       sibling = li.previousSibling;
+
+                       if (sibling && isListNode(sibling)) {
+                               sibling.appendChild(li);
+                               return true;
+                       }
+
+                       if (sibling && sibling.nodeName == 'LI' && isListNode(sibling.lastChild)) {
+                               sibling.lastChild.appendChild(li);
+                               mergeLists(li.lastChild, sibling.lastChild);
+                               return true;
+                       }
+
+                       sibling = li.nextSibling;
+
+                       if (sibling && isListNode(sibling)) {
+                               sibling.insertBefore(li, sibling.firstChild);
+                               return true;
+                       }
+
+                       if (sibling && sibling.nodeName == 'LI' && isListNode(li.lastChild)) {
+                               return false;
+                       }
+
+                       sibling = li.previousSibling;
+                       if (sibling && sibling.nodeName == 'LI') {
+                               newList = dom.create(li.parentNode.nodeName);
+                               sibling.appendChild(newList);
+                               newList.appendChild(li);
+                               mergeLists(li.lastChild, newList);
+                               return true;
+                       }
+
+                       return false;
+               }
+
+               function indentSelection() {
+                       var listElements = getSelectedListItems();
+
+                       if (listElements.length) {
+                               var bookmark = createBookmark(selection.getRng(true));
+
+                               for (var i = 0; i < listElements.length; i++) {
+                                       if (!indent(listElements[i]) && i === 0) {
+                                               break;
+                                       }
+                               }
+
+                               moveToBookmark(bookmark);
+                               editor.nodeChanged();
+
+                               return true;
+                       }
+               }
+
+               function outdentSelection() {
+                       var listElements = getSelectedListItems();
+
+                       if (listElements.length) {
+                               var bookmark = createBookmark(selection.getRng(true));
+                               var i, y, root = editor.getBody();
+
+                               i = listElements.length;
+                               while (i--) {
+                                       var node = listElements[i].parentNode;
+
+                                       while (node && node != root) {
+                                               y = listElements.length;
+                                               while (y--) {
+                                                       if (listElements[y] === node) {
+                                                               listElements.splice(i, 1);
+                                                               break;
+                                                       }
+                                               }
+
+                                               node = node.parentNode;
+                                       }
+                               }
+
+                               for (i = 0; i < listElements.length; i++) {
+                                       if (!outdent(listElements[i]) && i === 0) {
+                                               break;
+                                       }
+                               }
+
+                               moveToBookmark(bookmark);
+                               editor.nodeChanged();
+
+                               return true;
+                       }
+               }
+
+               function applyList(listName) {
+                       var rng = selection.getRng(true), bookmark = createBookmark(rng), listItemName = 'LI';
+
+                       listName = listName.toUpperCase();
+
+                       if (listName == 'DL') {
+                               listItemName = 'DT';
+                       }
+
+                       function getSelectedTextBlocks() {
+                               var textBlocks = [], root = editor.getBody();
+
+                               function getEndPointNode(start) {
+                                       var container, offset;
+
+                                       container = rng[start ? 'startContainer' : 'endContainer'];
+                                       offset = rng[start ? 'startOffset' : 'endOffset'];
+
+                                       // Resolve node index
+                                       if (container.nodeType == 1) {
+                                               container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;
+                                       }
+
+                                       while (container.parentNode != root) {
+                                               if (isTextBlock(container)) {
+                                                       return container;
+                                               }
+
+                                               if (/^(TD|TH)$/.test(container.parentNode.nodeName)) {
+                                                       return container;
+                                               }
+
+                                               container = container.parentNode;
+                                       }
+
+                                       return container;
+                               }
+
+                               var startNode = getEndPointNode(true);
+                               var endNode = getEndPointNode();
+                               var block, siblings = [];
+
+                               for (var node = startNode; node; node = node.nextSibling) {
+                                       siblings.push(node);
+
+                                       if (node == endNode) {
+                                               break;
+                                       }
+                               }
+
+                               tinymce.each(siblings, function(node) {
+                                       if (isTextBlock(node)) {
+                                               textBlocks.push(node);
+                                               block = null;
+                                               return;
+                                       }
+
+                                       if (dom.isBlock(node) || node.nodeName == 'BR') {
+                                               if (node.nodeName == 'BR') {
+                                                       dom.remove(node);
+                                               }
+
+                                               block = null;
+                                               return;
+                                       }
+
+                                       var nextSibling = node.nextSibling;
+                                       if (tinymce.dom.BookmarkManager.isBookmarkNode(node)) {
+                                               if (isTextBlock(nextSibling) || (!nextSibling && node.parentNode == root)) {
+                                                       block = null;
+                                                       return;
+                                               }
+                                       }
+
+                                       if (!block) {
+                                               block = dom.create('p');
+                                               node.parentNode.insertBefore(block, node);
+                                               textBlocks.push(block);
+                                       }
+
+                                       block.appendChild(node);
+                               });
+
+                               return textBlocks;
+                       }
+
+                       tinymce.each(getSelectedTextBlocks(), function(block) {
+                               var listBlock, sibling;
+
+                               sibling = block.previousSibling;
+                               if (sibling && isListNode(sibling) && sibling.nodeName == listName) {
+                                       listBlock = sibling;
+                                       block = dom.rename(block, listItemName);
+                                       sibling.appendChild(block);
+                               } else {
+                                       listBlock = dom.create(listName);
+                                       block.parentNode.insertBefore(listBlock, block);
+                                       listBlock.appendChild(block);
+                                       block = dom.rename(block, listItemName);
+                               }
+
+                               mergeWithAdjacentLists(listBlock);
+                       });
+
+                       moveToBookmark(bookmark);
+               }
+
+               function removeList() {
+                       var bookmark = createBookmark(selection.getRng(true)), root = editor.getBody();
+
+                       tinymce.each(getSelectedListItems(), function(li) {
+                               var node, rootList;
+
+                               if (dom.isEmpty(li)) {
+                                       outdent(li);
+                                       return;
+                               }
+
+                               for (node = li; node && node != root; node = node.parentNode) {
+                                       if (isListNode(node)) {
+                                               rootList = node;
+                                       }
+                               }
+
+                               splitList(rootList, li);
+                       });
+
+                       moveToBookmark(bookmark);
+               }
+
+               function toggleList(listName) {
+                       var parentList = dom.getParent(selection.getStart(), 'OL,UL,DL');
+
+                       if (parentList) {
+                               if (parentList.nodeName == listName) {
+                                       removeList(listName);
+                               } else {
+                                       var bookmark = createBookmark(selection.getRng(true));
+                                       mergeWithAdjacentLists(dom.rename(parentList, listName));
+                                       moveToBookmark(bookmark);
+                               }
+                       } else {
+                               applyList(listName);
+                       }
+               }
+
+               function queryListCommandState(listName) {
+                       return function() {
+                               var parentList = dom.getParent(editor.selection.getStart(), 'UL,OL,DL');
+
+                               return parentList && parentList.nodeName == listName;
+                       };
+               }
+
+               self.backspaceDelete = function(isForward) {
+                       function findNextCaretContainer(rng, isForward) {
+                               var node = rng.startContainer, offset = rng.startOffset;
+                               var nonEmptyBlocks, walker;
+
+                               if (node.nodeType == 3 && (isForward ? offset < node.data.length : offset > 0)) {
+                                       return node;
+                               }
+
+                               nonEmptyBlocks = editor.schema.getNonEmptyElements();
+                               walker = new tinymce.dom.TreeWalker(rng.startContainer);
+
+                               while ((node = walker[isForward ? 'next' : 'prev']())) {
+                                       if (node.nodeName == 'LI' && !node.hasChildNodes()) {
+                                               return node;
+                                       }
+
+                                       if (nonEmptyBlocks[node.nodeName]) {
+                                               return node;
+                                       }
+
+                                       if (node.nodeType == 3 && node.data.length > 0) {
+                                               return node;
+                                       }
+                               }
+                       }
+
+                       function mergeLiElements(fromElm, toElm) {
+                               var node, listNode, ul = fromElm.parentNode;
+
+                               if (isListNode(toElm.lastChild)) {
+                                       listNode = toElm.lastChild;
+                               }
+
+                               node = toElm.lastChild;
+                               if (node && node.nodeName == 'BR' && fromElm.hasChildNodes()) {
+                                       dom.remove(node);
+                               }
+
+                               if (dom.isEmpty(toElm)) {
+                                       dom.$(toElm).empty();
+                               }
+
+                               if (!dom.isEmpty(fromElm)) {
+                                       while ((node = fromElm.firstChild)) {
+                                               toElm.appendChild(node);
+                                       }
+                               }
+
+                               if (listNode) {
+                                       toElm.appendChild(listNode);
+                               }
+
+                               dom.remove(fromElm);
+
+                               if (dom.isEmpty(ul)) {
+                                       dom.remove(ul);
+                               }
+                       }
+
+                       if (selection.isCollapsed()) {
+                               var li = dom.getParent(selection.getStart(), 'LI');
+
+                               if (li) {
+                                       var rng = selection.getRng(true);
+                                       var otherLi = dom.getParent(findNextCaretContainer(rng, isForward), 'LI');
+
+                                       if (otherLi && otherLi != li) {
+                                               var bookmark = createBookmark(rng);
+
+                                               if (isForward) {
+                                                       mergeLiElements(otherLi, li);
+                                               } else {
+                                                       mergeLiElements(li, otherLi);
+                                               }
+
+                                               moveToBookmark(bookmark);
+
+                                               return true;
+                                       } else if (!otherLi) {
+                                               if (!isForward && removeList(li.parentNode.nodeName)) {
+                                                       return true;
+                                               }
+                                       }
+                               }
+                       }
+               };
+
+               editor.addCommand('Indent', function() {
+                       if (!indentSelection()) {
+                               return true;
+                       }
+               });
+
+               editor.addCommand('Outdent', function() {
+                       if (!outdentSelection()) {
+                               return true;
+                       }
+               });
+
+               editor.addCommand('InsertUnorderedList', function() {
+                       toggleList('UL');
+               });
+
+               editor.addCommand('InsertOrderedList', function() {
+                       toggleList('OL');
+               });
+
+               editor.addCommand('InsertDefinitionList', function() {
+                       toggleList('DL');
+               });
+
+               editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState('UL'));
+               editor.addQueryStateHandler('InsertOrderedList', queryListCommandState('OL'));
+               editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState('DL'));
+
+               editor.on('keydown', function(e) {
+                       if (e.keyCode == 9 && editor.dom.getParent(editor.selection.getStart(), 'LI,DT,DD')) {
+                               e.preventDefault();
+
+                               if (e.shiftKey) {
+                                       outdentSelection();
+                               } else {
+                                       indentSelection();
+                               }
+                       }
+               });
+       });
+
+       editor.addButton('indent', {
+               icon: 'indent',
+               title: 'Increase indent',
+               cmd: 'Indent',
+               onPostRender: function() {
+                       var ctrl = this;
+
+                       editor.on('nodechange', function() {
+                               var blocks = editor.selection.getSelectedBlocks();
+                               var disable = false;
+
+                               for (var i = 0, l = blocks.length; !disable && i < l; i++) {
+                                       var tag = blocks[i].nodeName;
+
+                                       disable = (tag == 'LI' && isFirstChild(blocks[i]) || tag == 'UL' || tag == 'OL' || tag == 'DD');
+                               }
+
+                               ctrl.disabled(disable);
+                       });
+               }
+       });
+
+       editor.on('keydown', function(e) {
+               if (e.keyCode == tinymce.util.VK.BACKSPACE) {
+                       if (self.backspaceDelete()) {
+                               e.preventDefault();
+                       }
+               } else if (e.keyCode == tinymce.util.VK.DELETE) {
+                       if (self.backspaceDelete(true)) {
+                               e.preventDefault();
+                       }
+               }
+       });
+});
diff --git a/wp-includes/js/tinymce/plugins/lists/plugin.min.js b/wp-includes/js/tinymce/plugins/lists/plugin.min.js
new file mode 100644 (file)
index 0000000..38e3a87
--- /dev/null
@@ -0,0 +1 @@
+tinymce.PluginManager.add("lists",function(e){function t(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)}function n(e){return e.parentNode.firstChild==e}function r(e){return e.parentNode.lastChild==e}function a(t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]}var o=this;e.on("init",function(){function i(e){function t(t){var r,a,o;a=e[t?"startContainer":"endContainer"],o=e[t?"startOffset":"endOffset"],1==a.nodeType&&(r=L.create("span",{"data-mce-type":"bookmark"}),a.hasChildNodes()?(o=Math.min(o,a.childNodes.length-1),t?a.insertBefore(r,a.childNodes[o]):L.insertAfter(r,a.childNodes[o])):a.appendChild(r),a=r,o=0),n[t?"startContainer":"endContainer"]=a,n[t?"startOffset":"endOffset"]=o}var n={};return t(!0),e.collapsed||t(),n}function d(e){function t(t){function n(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t==e)return n;(1!=t.nodeType||"bookmark"!=t.getAttribute("data-mce-type"))&&n++,t=t.nextSibling}return-1}var r,a,o;r=o=e[t?"startContainer":"endContainer"],a=e[t?"startOffset":"endOffset"],r&&(1==r.nodeType&&(a=n(r),r=r.parentNode,L.remove(o)),e[t?"startContainer":"endContainer"]=r,e[t?"startOffset":"endOffset"]=a)}t(!0),t();var n=L.createRng();n.setStart(e.startContainer,e.startOffset),e.endContainer&&n.setEnd(e.endContainer,e.endOffset),k.setRng(n)}function s(t,n){var r,a,o,i=L.createFragment(),d=e.schema.getBlockElements();if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),n&&(a=L.create(n),a.tagName===e.settings.forced_root_block&&L.setAttribs(a,e.settings.forced_root_block_attrs),i.appendChild(a)),t)for(;r=t.firstChild;){var s=r.nodeName;o||"SPAN"==s&&"bookmark"==r.getAttribute("data-mce-type")||(o=!0),d[s]?(i.appendChild(r),a=null):n?(a||(a=L.create(n),i.appendChild(a)),a.appendChild(r)):i.appendChild(r)}return e.settings.forced_root_block?o||tinymce.Env.ie&&!(tinymce.Env.ie>10)||a.appendChild(L.create("br",{"data-mce-bogus":"1"})):i.appendChild(L.create("br")),i}function f(){return tinymce.grep(k.getSelectedBlocks(),function(e){return/^(LI|DT|DD)$/.test(e.nodeName)})}function l(e,t,n){var r,a,o=L.select('span[data-mce-type="bookmark"]',e);n=n||s(t),r=L.createRng(),r.setStartAfter(t),r.setEndAfter(e),a=r.extractContents(),L.isEmpty(a)||L.insertAfter(a,e),L.insertAfter(n,e),L.isEmpty(t.parentNode)&&(tinymce.each(o,function(e){t.parentNode.parentNode.insertBefore(e,t.parentNode)}),L.remove(t.parentNode)),L.remove(t)}function c(e){var n,r;if(n=e.nextSibling,n&&t(n)&&n.nodeName==e.nodeName){for(;r=n.firstChild;)e.appendChild(r);L.remove(n)}if(n=e.previousSibling,n&&t(n)&&n.nodeName==e.nodeName){for(;r=n.firstChild;)e.insertBefore(r,e.firstChild);L.remove(n)}}function p(e){tinymce.each(tinymce.grep(L.select("ol,ul",e)),function(e){var n,r=e.parentNode;"LI"==r.nodeName&&r.firstChild==e&&(n=r.previousSibling,n&&"LI"==n.nodeName&&(n.appendChild(e),L.isEmpty(r)&&L.remove(r))),t(r)&&(n=r.previousSibling,n&&"LI"==n.nodeName&&n.appendChild(e))})}function m(e){function a(e){L.isEmpty(e)&&L.remove(e)}var o,i=e.parentNode,d=i.parentNode;return"DD"==e.nodeName?(L.rename(e,"DT"),!0):n(e)&&r(e)?("LI"==d.nodeName?(L.insertAfter(e,d),a(d),L.remove(i)):t(d)?L.remove(i,!0):(d.insertBefore(s(e),i),L.remove(i)),!0):n(e)?("LI"==d.nodeName?(L.insertAfter(e,d),e.appendChild(i),a(d)):t(d)?d.insertBefore(e,i):(d.insertBefore(s(e),i),L.remove(e)),!0):r(e)?("LI"==d.nodeName?L.insertAfter(e,d):t(d)?L.insertAfter(e,i):(L.insertAfter(s(e),i),L.remove(e)),!0):("LI"==d.nodeName?(i=d,o=s(e,"LI")):o=t(d)?s(e,"LI"):s(e),l(i,e,o),p(i.parentNode),!0)}function u(e){function n(n,r){var a;if(t(n)){for(;a=e.lastChild.firstChild;)r.appendChild(a);L.remove(n)}}var r,a;return"DT"==e.nodeName?(L.rename(e,"DD"),!0):(r=e.previousSibling,r&&t(r)?(r.appendChild(e),!0):r&&"LI"==r.nodeName&&t(r.lastChild)?(r.lastChild.appendChild(e),n(e.lastChild,r.lastChild),!0):(r=e.nextSibling,r&&t(r)?(r.insertBefore(e,r.firstChild),!0):r&&"LI"==r.nodeName&&t(e.lastChild)?!1:(r=e.previousSibling,r&&"LI"==r.nodeName?(a=L.create(e.parentNode.nodeName),r.appendChild(a),a.appendChild(e),n(e.lastChild,a),!0):!1)))}function h(){var t=f();if(t.length){for(var n=i(k.getRng(!0)),r=0;r<t.length&&(u(t[r])||0!==r);r++);return d(n),e.nodeChanged(),!0}}function C(){var t=f();if(t.length){var n,r,a=i(k.getRng(!0)),o=e.getBody();for(n=t.length;n--;)for(var s=t[n].parentNode;s&&s!=o;){for(r=t.length;r--;)if(t[r]===s){t.splice(n,1);break}s=s.parentNode}for(n=0;n<t.length&&(m(t[n])||0!==n);n++);return d(a),e.nodeChanged(),!0}}function v(n){function r(){function t(e){var t,n;for(t=o[e?"startContainer":"endContainer"],n=o[e?"startOffset":"endOffset"],1==t.nodeType&&(t=t.childNodes[Math.min(n,t.childNodes.length-1)]||t);t.parentNode!=i;){if(a(t))return t;if(/^(TD|TH)$/.test(t.parentNode.nodeName))return t;t=t.parentNode}return t}for(var n,r=[],i=e.getBody(),d=t(!0),s=t(),f=[],l=d;l&&(f.push(l),l!=s);l=l.nextSibling);return tinymce.each(f,function(e){if(a(e))return r.push(e),void(n=null);if(L.isBlock(e)||"BR"==e.nodeName)return"BR"==e.nodeName&&L.remove(e),void(n=null);var t=e.nextSibling;return tinymce.dom.BookmarkManager.isBookmarkNode(e)&&(a(t)||!t&&e.parentNode==i)?void(n=null):(n||(n=L.create("p"),e.parentNode.insertBefore(n,e),r.push(n)),void n.appendChild(e))}),r}var o=k.getRng(!0),s=i(o),f="LI";n=n.toUpperCase(),"DL"==n&&(f="DT"),tinymce.each(r(),function(e){var r,a;a=e.previousSibling,a&&t(a)&&a.nodeName==n?(r=a,e=L.rename(e,f),a.appendChild(e)):(r=L.create(n),e.parentNode.insertBefore(r,e),r.appendChild(e),e=L.rename(e,f)),c(r)}),d(s)}function g(){var n=i(k.getRng(!0)),r=e.getBody();tinymce.each(f(),function(e){var n,a;if(L.isEmpty(e))return void m(e);for(n=e;n&&n!=r;n=n.parentNode)t(n)&&(a=n);l(a,e)}),d(n)}function N(e){var t=L.getParent(k.getStart(),"OL,UL,DL");if(t)if(t.nodeName==e)g(e);else{var n=i(k.getRng(!0));c(L.rename(t,e)),d(n)}else v(e)}function y(t){return function(){var n=L.getParent(e.selection.getStart(),"UL,OL,DL");return n&&n.nodeName==t}}var L=e.dom,k=e.selection;o.backspaceDelete=function(n){function r(t,n){var r,a,o=t.startContainer,i=t.startOffset;if(3==o.nodeType&&(n?i<o.data.length:i>0))return o;for(r=e.schema.getNonEmptyElements(),a=new tinymce.dom.TreeWalker(t.startContainer);o=a[n?"next":"prev"]();){if("LI"==o.nodeName&&!o.hasChildNodes())return o;if(r[o.nodeName])return o;if(3==o.nodeType&&o.data.length>0)return o}}function a(e,n){var r,a,o=e.parentNode;if(t(n.lastChild)&&(a=n.lastChild),r=n.lastChild,r&&"BR"==r.nodeName&&e.hasChildNodes()&&L.remove(r),L.isEmpty(n)&&L.$(n).empty(),!L.isEmpty(e))for(;r=e.firstChild;)n.appendChild(r);a&&n.appendChild(a),L.remove(e),L.isEmpty(o)&&L.remove(o)}if(k.isCollapsed()){var o=L.getParent(k.getStart(),"LI");if(o){var s=k.getRng(!0),f=L.getParent(r(s,n),"LI");if(f&&f!=o){var l=i(s);return n?a(f,o):a(o,f),d(l),!0}if(!f&&!n&&g(o.parentNode.nodeName))return!0}}},e.addCommand("Indent",function(){return h()?void 0:!0}),e.addCommand("Outdent",function(){return C()?void 0:!0}),e.addCommand("InsertUnorderedList",function(){N("UL")}),e.addCommand("InsertOrderedList",function(){N("OL")}),e.addCommand("InsertDefinitionList",function(){N("DL")}),e.addQueryStateHandler("InsertUnorderedList",y("UL")),e.addQueryStateHandler("InsertOrderedList",y("OL")),e.addQueryStateHandler("InsertDefinitionList",y("DL")),e.on("keydown",function(t){9==t.keyCode&&e.dom.getParent(e.selection.getStart(),"LI,DT,DD")&&(t.preventDefault(),t.shiftKey?C():h())})}),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var t=this;e.on("nodechange",function(){for(var r=e.selection.getSelectedBlocks(),a=!1,o=0,i=r.length;!a&&i>o;o++){var d=r[o].nodeName;a="LI"==d&&n(r[o])||"UL"==d||"OL"==d||"DD"==d}t.disabled(a)})}}),e.on("keydown",function(e){e.keyCode==tinymce.util.VK.BACKSPACE?o.backspaceDelete()&&e.preventDefault():e.keyCode==tinymce.util.VK.DELETE&&o.backspaceDelete(!0)&&e.preventDefault()})});
\ No newline at end of file
index a97d5a067aaabf3a11735a7016f8ccf86e6a8249..3739f7051568a0a81804f965ae08b0cac68d0f03 100644 (file)
@@ -17,9 +17,12 @@ tinymce.PluginManager.add('media', function(editor, url) {
                {regex: /youtu\.be\/([\w\-.]+)/, type: 'iframe', w: 425, h: 350, url: '//www.youtube.com/embed/$1'},
                {regex: /youtube\.com(.+)v=([^&]+)/, type: 'iframe', w: 425, h: 350, url: '//www.youtube.com/embed/$2'},
                {regex: /vimeo\.com\/([0-9]+)/, type: 'iframe', w: 425, h: 350, url: '//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc'},
                {regex: /youtu\.be\/([\w\-.]+)/, type: 'iframe', w: 425, h: 350, url: '//www.youtube.com/embed/$1'},
                {regex: /youtube\.com(.+)v=([^&]+)/, type: 'iframe', w: 425, h: 350, url: '//www.youtube.com/embed/$2'},
                {regex: /vimeo\.com\/([0-9]+)/, type: 'iframe', w: 425, h: 350, url: '//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc'},
+               {regex: /vimeo\.com\/(.*)\/([0-9]+)/, type: "iframe", w: 425, h: 350, url: "//player.vimeo.com/video/$2?title=0&amp;byline=0"},
                {regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/, type: 'iframe', w: 425, h: 350, url: '//maps.google.com/maps/ms?msid=$2&output=embed"'}
        ];
 
                {regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/, type: 'iframe', w: 425, h: 350, url: '//maps.google.com/maps/ms?msid=$2&output=embed"'}
        ];
 
+       var embedChange = (tinymce.Env.ie && tinymce.Env.ie <= 8) ? 'onChange' : 'onInput';
+
        function guessMime(url) {
                if (url.indexOf('.mp3') != -1) {
                        return 'audio/mpeg';
        function guessMime(url) {
                if (url.indexOf('.mp3') != -1) {
                        return 'audio/mpeg';
@@ -62,8 +65,21 @@ tinymce.PluginManager.add('media', function(editor, url) {
 
        function showDialog() {
                var win, width, height, data;
 
        function showDialog() {
                var win, width, height, data;
+
                var generalFormItems = [
                var generalFormItems = [
-                       {name: 'source1', type: 'filepicker', filetype: 'media', size: 40, autofocus: true, label: 'Source'}
+                       {
+                               name: 'source1',
+                               type: 'filepicker',
+                               filetype: 'media',
+                               size: 40,
+                               autofocus: true,
+                               label: 'Source',
+                               onchange: function(e) {
+                                       tinymce.each(e.meta, function(value, key) {
+                                               win.find('#' + key).value(value);
+                                       });
+                               }
+                       }
                ];
 
                function recalcSize(e) {
                ];
 
                function recalcSize(e) {
@@ -117,6 +133,23 @@ tinymce.PluginManager.add('media', function(editor, url) {
                width = data.width;
                height = data.height;
 
                width = data.width;
                height = data.height;
 
+               var embedTextBox = {
+                       id: 'mcemediasource',
+                       type: 'textbox',
+                       flex: 1,
+                       name: 'embed',
+                       value: getSource(),
+                       multiline: true,
+                       label: 'Source'
+               };
+
+               function updateValueOnChange() {
+                       data = htmlToData(this.value());
+                       this.parent().parent().fromJSON(data);
+               }
+
+               embedTextBox[embedChange] = updateValueOnChange;
+
                win = editor.windowManager.open({
                        title: 'Insert/edit video',
                        data: data,
                win = editor.windowManager.open({
                        title: 'Insert/edit video',
                        data: data,
@@ -149,20 +182,28 @@ tinymce.PluginManager.add('media', function(editor, url) {
                                                        text: 'Paste your embed code below:',
                                                        forId: 'mcemediasource'
                                                },
                                                        text: 'Paste your embed code below:',
                                                        forId: 'mcemediasource'
                                                },
-                                               {
-                                                       id: 'mcemediasource',
-                                                       type: 'textbox',
-                                                       flex: 1,
-                                                       name: 'embed',
-                                                       value: getSource(),
-                                                       multiline: true,
-                                                       label: 'Source'
-                                               }
+                                               embedTextBox
                                        ]
                                }
                        ],
                        onSubmit: function() {
                                        ]
                                }
                        ],
                        onSubmit: function() {
+                               var beforeObjects, afterObjects, i, y;
+
+                               beforeObjects = editor.dom.select('img[data-mce-object]');
                                editor.insertContent(dataToHtml(this.toJSON()));
                                editor.insertContent(dataToHtml(this.toJSON()));
+                               afterObjects = editor.dom.select('img[data-mce-object]');
+
+                               // Find new image placeholder so we can select it
+                               for (i = 0; i < beforeObjects.length; i++) {
+                                       for (y = afterObjects.length - 1; y >= 0; y--) {
+                                               if (beforeObjects[i] == afterObjects[y]) {
+                                                       afterObjects.splice(y, 1);
+                                               }
+                                       }
+                               }
+
+                               editor.selection.select(afterObjects[0]);
+                               editor.nodeChanged();
                        }
                });
        }
                        }
                });
        }
@@ -200,30 +241,30 @@ tinymce.PluginManager.add('media', function(editor, url) {
                data.poster = editor.convertURL(data.poster, "poster");
                data.flashPlayerUrl = editor.convertURL(url + '/moxieplayer.swf', "movie");
 
                data.poster = editor.convertURL(data.poster, "poster");
                data.flashPlayerUrl = editor.convertURL(url + '/moxieplayer.swf', "movie");
 
-               if (data.embed) {
-                       html = updateHtml(data.embed, data, true);
-               } else {
-                       tinymce.each(urlPatterns, function(pattern) {
-                               var match, i, url;
-
-                               if ((match = pattern.regex.exec(data.source1))) {
-                                       url = pattern.url;
+               tinymce.each(urlPatterns, function(pattern) {
+                       var match, i, url;
 
 
-                                       for (i = 0; match[i]; i++) {
-                                               /*jshint loopfunc:true*/
-                                               /*eslint no-loop-func:0 */
-                                               url = url.replace('$' + i, function() {
-                                                       return match[i];
-                                               });
-                                       }
+                       if ((match = pattern.regex.exec(data.source1))) {
+                               url = pattern.url;
 
 
-                                       data.source1 = url;
-                                       data.type = pattern.type;
-                                       data.width = data.width || pattern.w;
-                                       data.height = data.height || pattern.h;
+                               for (i = 0; match[i]; i++) {
+                                       /*jshint loopfunc:true*/
+                                       /*eslint no-loop-func:0 */
+                                       url = url.replace('$' + i, function() {
+                                               return match[i];
+                                       });
                                }
                                }
-                       });
 
 
+                               data.source1 = url;
+                               data.type = pattern.type;
+                               data.width = data.width || pattern.w;
+                               data.height = data.height || pattern.h;
+                       }
+               });
+
+               if (data.embed) {
+                       html = updateHtml(data.embed, data, true);
+               } else {
                        var videoScript = getVideoScriptMatch(data.source1);
                        if (videoScript) {
                                data.type = 'script';
                        var videoScript = getVideoScriptMatch(data.source1);
                        if (videoScript) {
                                data.type = 'script';
@@ -340,6 +381,56 @@ tinymce.PluginManager.add('media', function(editor, url) {
                return {};
        }
 
                return {};
        }
 
+       function sanitize(html) {
+               if (editor.settings.media_filter_html === false) {
+                       return html;
+               }
+
+               var writer = new tinymce.html.Writer();
+
+               new tinymce.html.SaxParser({
+                       validate: false,
+                       allow_conditional_comments: false,
+                       special: 'script,noscript',
+
+                       comment: function(text) {
+                               writer.comment(text);
+                       },
+
+                       cdata: function(text) {
+                               writer.cdata(text);
+                       },
+
+                       text: function(text, raw) {
+                               writer.text(text, raw);
+                       },
+
+                       start: function(name, attrs, empty) {
+                               if (name == 'script' || name == 'noscript') {
+                                       return;
+                               }
+
+                               for (var i = 0; i < attrs.length; i++) {
+                                       if (attrs[i].name.indexOf('on') === 0) {
+                                               return;
+                                       }
+                               }
+
+                               writer.start(name, attrs, empty);
+                       },
+
+                       end: function(name) {
+                               if (name == 'script' || name == 'noscript') {
+                                       return;
+                               }
+
+                               writer.end(name);
+                       }
+               }, new tinymce.html.Schema({})).parse(html);
+
+               return writer.getContent();
+       }
+
        function updateHtml(html, data, updateAll) {
                var writer = new tinymce.html.Writer();
                var sourceCount = 0, hasImage;
        function updateHtml(html, data, updateAll) {
                var writer = new tinymce.html.Writer();
                var sourceCount = 0, hasImage;
@@ -404,7 +495,7 @@ tinymce.PluginManager.add('media', function(editor, url) {
                                                        width: data.width,
                                                        height: data.height
                                                });
                                                        width: data.width,
                                                        height: data.height
                                                });
-                                       break;
+                                               break;
                                }
 
                                if (updateAll) {
                                }
 
                                if (updateAll) {
@@ -420,13 +511,13 @@ tinymce.PluginManager.add('media', function(editor, url) {
                                                                        src: ""
                                                                });
                                                        }
                                                                        src: ""
                                                                });
                                                        }
-                                               break;
+                                                       break;
 
                                                case "iframe":
                                                        setAttributes(attrs, {
                                                                src: data.source1
                                                        });
 
                                                case "iframe":
                                                        setAttributes(attrs, {
                                                                src: data.source1
                                                        });
-                                               break;
+                                                       break;
 
                                                case "source":
                                                        sourceCount++;
 
                                                case "source":
                                                        sourceCount++;
@@ -441,7 +532,7 @@ tinymce.PluginManager.add('media', function(editor, url) {
                                                                        return;
                                                                }
                                                        }
                                                                        return;
                                                                }
                                                        }
-                                               break;
+                                                       break;
 
                                                case "img":
                                                        if (!data.poster) {
 
                                                case "img":
                                                        if (!data.poster) {
@@ -507,11 +598,11 @@ tinymce.PluginManager.add('media', function(editor, url) {
                // Make sure that any messy HTML is retained inside these
                var specialElements = editor.schema.getSpecialElements();
                tinymce.each('video audio iframe object'.split(' '), function(name) {
                // Make sure that any messy HTML is retained inside these
                var specialElements = editor.schema.getSpecialElements();
                tinymce.each('video audio iframe object'.split(' '), function(name) {
-                       specialElements[name] = new RegExp('<\/' + name + '[^>]*>','gi');
+                       specialElements[name] = new RegExp('<\/' + name + '[^>]*>', 'gi');
                });
 
                // Allow elements
                });
 
                // Allow elements
-               editor.schema.addValidElements('object[id|style|width|height|classid|codebase|*],embed[id|style|width|height|type|src|*],video[*],audio[*]');
+               //editor.schema.addValidElements('object[id|style|width|height|classid|codebase|*],embed[id|style|width|height|type|src|*],video[*],audio[*]');
 
                // Set allowFullscreen attribs as boolean
                var boolAttrs = editor.schema.getBoolAttrs();
 
                // Set allowFullscreen attribs as boolean
                var boolAttrs = editor.schema.getBoolAttrs();
@@ -526,6 +617,9 @@ tinymce.PluginManager.add('media', function(editor, url) {
 
                        while (i--) {
                                node = nodes[i];
 
                        while (i--) {
                                node = nodes[i];
+                               if (!node.parent) {
+                                       continue;
+                               }
 
                                if (node.name == 'script') {
                                        videoScript = getVideoScriptMatch(node.attr('src'));
 
                                if (node.name == 'script') {
                                        videoScript = getVideoScriptMatch(node.attr('src'));
@@ -591,6 +685,10 @@ tinymce.PluginManager.add('media', function(editor, url) {
 
                        while (i--) {
                                node = nodes[i];
 
                        while (i--) {
                                node = nodes[i];
+                               if (!node.parent) {
+                                       continue;
+                               }
+
                                realElmName = node.attr(name);
                                realElm = new tinymce.html.Node(realElmName, 1);
 
                                realElmName = node.attr(name);
                                realElm = new tinymce.html.Node(realElmName, 1);
 
@@ -626,7 +724,7 @@ tinymce.PluginManager.add('media', function(editor, url) {
                                if (innerHtml) {
                                        innerNode = new tinymce.html.Node('#text', 3);
                                        innerNode.raw = true;
                                if (innerHtml) {
                                        innerNode = new tinymce.html.Node('#text', 3);
                                        innerNode.raw = true;
-                                       innerNode.value = unescape(innerHtml);
+                                       innerNode.value = sanitize(unescape(innerHtml));
                                        realElm.append(innerNode);
                                }
 
                                        realElm.append(innerNode);
                                }
 
index 19e75cc140f07a511969a4744927d0a506b2c8ae..3b7cd5c8ef94bb83af9524cf9280a0f4194cf51b 100644 (file)
@@ -1 +1 @@
-tinymce.PluginManager.add("media",function(e,t){function i(e){return-1!=e.indexOf(".mp3")?"audio/mpeg":-1!=e.indexOf(".wav")?"audio/wav":-1!=e.indexOf(".mp4")?"video/mp4":-1!=e.indexOf(".webm")?"video/webm":-1!=e.indexOf(".ogg")?"video/ogg":-1!=e.indexOf(".swf")?"application/x-shockwave-flash":""}function r(t){var i=e.settings.media_scripts;if(i)for(var r=0;r<i.length;r++)if(-1!==t.indexOf(i[r].filter))return i[r]}function o(){function t(e){var t,a,c,s;t=i.find("#width")[0],a=i.find("#height")[0],c=t.value(),s=a.value(),i.find("#constrain")[0].checked()&&r&&o&&c&&s&&(e.control==t?(s=Math.round(c/r*s),a.value(s)):(c=Math.round(s/o*c),t.value(c))),r=c,o=s}var i,r,o,m,d=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source"}];e.settings.media_alt_source!==!1&&d.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),e.settings.media_poster!==!1&&d.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),e.settings.media_dimensions!==!1&&d.push({type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:t},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:t},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),m=n(e.selection.getNode()),r=m.width,o=m.height,i=e.windowManager.open({title:"Insert/edit video",data:m,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){m=s(this.next().find("#embed").value()),this.fromJSON(m)},items:d},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(c(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},{id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:a(),multiline:!0,label:"Source"}]}],onSubmit:function(){e.insertContent(c(this.toJSON()))}})}function a(){var t=e.selection.getNode();return t.getAttribute("data-mce-object")?e.selection.getContent():void 0}function c(o){var a="";if(!o.source1&&(tinymce.extend(o,s(o.embed)),!o.source1))return"";if(o.source2||(o.source2=""),o.poster||(o.poster=""),o.source1=e.convertURL(o.source1,"source"),o.source2=e.convertURL(o.source2,"source"),o.source1mime=i(o.source1),o.source2mime=i(o.source2),o.poster=e.convertURL(o.poster,"poster"),o.flashPlayerUrl=e.convertURL(t+"/moxieplayer.swf","movie"),o.embed)a=m(o.embed,o,!0);else{tinymce.each(d,function(e){var t,i,r;if(t=e.regex.exec(o.source1)){for(r=e.url,i=0;t[i];i++)r=r.replace("$"+i,function(){return t[i]});o.source1=r,o.type=e.type,o.width=o.width||e.w,o.height=o.height||e.h}});var c=r(o.source1);c&&(o.type="script",o.width=c.width,o.height=c.height),o.width=o.width||300,o.height=o.height||150,tinymce.each(o,function(t,i){o[i]=e.dom.encode(t)}),"iframe"==o.type?a+='<iframe src="'+o.source1+'" width="'+o.width+'" height="'+o.height+'"></iframe>':"application/x-shockwave-flash"==o.source1mime?(a+='<object data="'+o.source1+'" width="'+o.width+'" height="'+o.height+'" type="application/x-shockwave-flash">',o.poster&&(a+='<img src="'+o.poster+'" width="'+o.width+'" height="'+o.height+'" />'),a+="</object>"):-1!=o.source1mime.indexOf("audio")?e.settings.audio_template_callback?a=e.settings.audio_template_callback(o):a+='<audio controls="controls" src="'+o.source1+'">'+(o.source2?'\n<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</audio>":"script"==o.type?a+='<script src="'+o.source1+'"></script>':a=e.settings.video_template_callback?e.settings.video_template_callback(o):'<video width="'+o.width+'" height="'+o.height+'"'+(o.poster?' poster="'+o.poster+'"':"")+' controls="controls">\n<source src="'+o.source1+'"'+(o.source1mime?' type="'+o.source1mime+'"':"")+" />\n"+(o.source2?'<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</video>"}return a}function s(e){var t={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(e,i){if(t.source1||"param"!=e||(t.source1=i.map.movie),("iframe"==e||"object"==e||"embed"==e||"video"==e||"audio"==e)&&(t.type||(t.type=e),t=tinymce.extend(i.map,t)),"script"==e){var o=r(i.map.src);if(!o)return;t={type:"script",source1:i.map.src,width:o.width,height:o.height}}"source"==e&&(t.source1?t.source2||(t.source2=i.map.src):t.source1=i.map.src),"img"!=e||t.poster||(t.poster=i.map.src)}}).parse(e),t.source1=t.source1||t.src||t.data,t.source2=t.source2||"",t.poster=t.poster||"",t}function n(t){return t.getAttribute("data-mce-object")?s(e.serializer.serialize(t,{selection:!0})):{}}function m(e,t,i){function r(e,t){var i,r,o,a;for(i in t)if(o=""+t[i],e.map[i])for(r=e.length;r--;)a=e[r],a.name==i&&(o?(e.map[i]=o,a.value=o):(delete e.map[i],e.splice(r,1)));else o&&(e.push({name:i,value:o}),e.map[i]=o)}var o,a=new tinymce.html.Writer,c=0;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(e,s,n){switch(e){case"video":case"object":case"embed":case"img":case"iframe":r(s,{width:t.width,height:t.height})}if(i)switch(e){case"video":r(s,{poster:t.poster,src:""}),t.source2&&r(s,{src:""});break;case"iframe":r(s,{src:t.source1});break;case"source":if(c++,2>=c&&(r(s,{src:t["source"+c],type:t["source"+c+"mime"]}),!t["source"+c]))return;break;case"img":if(!t.poster)return;o=!0}a.start(e,s,n)},end:function(e){if("video"==e&&i)for(var s=1;2>=s;s++)if(t["source"+s]){var n=[];n.map={},s>c&&(r(n,{src:t["source"+s],type:t["source"+s+"mime"]}),a.start("source",n,!0))}if(t.poster&&"object"==e&&i&&!o){var m=[];m.map={},r(m,{src:t.poster,width:t.width,height:t.height}),a.start("img",m,!0)}a.end(e)}},new tinymce.html.Schema({})).parse(e),a.getContent()}var d=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}];e.on("ResolveName",function(e){var t;1==e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.schema.addValidElements("object[id|style|width|height|classid|codebase|*],embed[id|style|width|height|type|src|*],video[*],audio[*]");var i=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){i[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(t,i){for(var o,a,c,s,n,m,d,u,l=t.length;l--;)if(a=t[l],"script"!=a.name||(u=r(a.attr("src")))){for(c=new tinymce.html.Node("img",1),c.shortEnded=!0,u&&(u.width&&a.attr("width",u.width.toString()),u.height&&a.attr("height",u.height.toString())),m=a.attributes,o=m.length;o--;)s=m[o].name,n=m[o].value,"width"!==s&&"height"!==s&&"style"!==s&&(("data"==s||"src"==s)&&(n=e.convertURL(n,s)),c.attr("data-mce-p-"+s,n));d=a.firstChild&&a.firstChild.value,d&&(c.attr("data-mce-html",escape(d)),c.firstChild=null),c.attr({width:a.attr("width")||"300",height:a.attr("height")||("audio"==i?"30":"150"),style:a.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":i,"class":"mce-object mce-object-"+i}),a.replace(c)}}),e.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var i,r,o,a,c,s,n,m=e.length;m--;){for(i=e[m],n=i.attr(t),r=new tinymce.html.Node(n,1),"audio"!=n&&"script"!=n&&r.attr({width:i.attr("width"),height:i.attr("height")}),r.attr({style:i.attr("style")}),a=i.attributes,o=a.length;o--;){var d=a[o].name;0===d.indexOf("data-mce-p-")&&r.attr(d.substr(11),a[o].value)}"script"==n&&r.attr("type","text/javascript"),c=i.attr("data-mce-html"),c&&(s=new tinymce.html.Node("#text",3),s.raw=!0,s.value=unescape(c),r.append(s)),i.replace(r)}})}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");("audio"==t||"script"==t)&&e.preventDefault()}),e.on("objectResized",function(e){var t,i=e.target;i.getAttribute("data-mce-object")&&(t=i.getAttribute("data-mce-html"),t&&(t=unescape(t),i.setAttribute("data-mce-html",escape(m(t,{width:e.width,height:e.height})))))}),e.addButton("media",{tooltip:"Insert/edit video",onclick:o,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]}),e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:o,context:"insert",prependToContext:!0})});
\ No newline at end of file
+tinymce.PluginManager.add("media",function(e,t){function i(e){return-1!=e.indexOf(".mp3")?"audio/mpeg":-1!=e.indexOf(".wav")?"audio/wav":-1!=e.indexOf(".mp4")?"video/mp4":-1!=e.indexOf(".webm")?"video/webm":-1!=e.indexOf(".ogg")?"video/ogg":-1!=e.indexOf(".swf")?"application/x-shockwave-flash":""}function r(t){var i=e.settings.media_scripts;if(i)for(var r=0;r<i.length;r++)if(-1!==t.indexOf(i[r].filter))return i[r]}function o(){function t(e){var t,i,a,c;t=r.find("#width")[0],i=r.find("#height")[0],a=t.value(),c=i.value(),r.find("#constrain")[0].checked()&&o&&m&&a&&c&&(e.control==t?(c=Math.round(a/o*c),i.value(c)):(a=Math.round(c/m*a),t.value(a))),o=a,m=c}function i(){u=n(this.value()),this.parent().parent().fromJSON(u)}var r,o,m,u,d=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source",onchange:function(e){tinymce.each(e.meta,function(e,t){r.find("#"+t).value(e)})}}];e.settings.media_alt_source!==!1&&d.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),e.settings.media_poster!==!1&&d.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),e.settings.media_dimensions!==!1&&d.push({type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:t},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:t},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),u=s(e.selection.getNode()),o=u.width,m=u.height;var h={id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:a(),multiline:!0,label:"Source"};h[l]=i,r=e.windowManager.open({title:"Insert/edit video",data:u,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){u=n(this.next().find("#embed").value()),this.fromJSON(u)},items:d},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(c(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},h]}],onSubmit:function(){var t,i,r,o;for(t=e.dom.select("img[data-mce-object]"),e.insertContent(c(this.toJSON())),i=e.dom.select("img[data-mce-object]"),r=0;r<t.length;r++)for(o=i.length-1;o>=0;o--)t[r]==i[o]&&i.splice(o,1);e.selection.select(i[0]),e.nodeChanged()}})}function a(){var t=e.selection.getNode();return t.getAttribute("data-mce-object")?e.selection.getContent():void 0}function c(o){var a="";if(!o.source1&&(tinymce.extend(o,n(o.embed)),!o.source1))return"";if(o.source2||(o.source2=""),o.poster||(o.poster=""),o.source1=e.convertURL(o.source1,"source"),o.source2=e.convertURL(o.source2,"source"),o.source1mime=i(o.source1),o.source2mime=i(o.source2),o.poster=e.convertURL(o.poster,"poster"),o.flashPlayerUrl=e.convertURL(t+"/moxieplayer.swf","movie"),tinymce.each(d,function(e){var t,i,r;if(t=e.regex.exec(o.source1)){for(r=e.url,i=0;t[i];i++)r=r.replace("$"+i,function(){return t[i]});o.source1=r,o.type=e.type,o.width=o.width||e.w,o.height=o.height||e.h}}),o.embed)a=u(o.embed,o,!0);else{var c=r(o.source1);c&&(o.type="script",o.width=c.width,o.height=c.height),o.width=o.width||300,o.height=o.height||150,tinymce.each(o,function(t,i){o[i]=e.dom.encode(t)}),"iframe"==o.type?a+='<iframe src="'+o.source1+'" width="'+o.width+'" height="'+o.height+'"></iframe>':"application/x-shockwave-flash"==o.source1mime?(a+='<object data="'+o.source1+'" width="'+o.width+'" height="'+o.height+'" type="application/x-shockwave-flash">',o.poster&&(a+='<img src="'+o.poster+'" width="'+o.width+'" height="'+o.height+'" />'),a+="</object>"):-1!=o.source1mime.indexOf("audio")?e.settings.audio_template_callback?a=e.settings.audio_template_callback(o):a+='<audio controls="controls" src="'+o.source1+'">'+(o.source2?'\n<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</audio>":"script"==o.type?a+='<script src="'+o.source1+'"></script>':a=e.settings.video_template_callback?e.settings.video_template_callback(o):'<video width="'+o.width+'" height="'+o.height+'"'+(o.poster?' poster="'+o.poster+'"':"")+' controls="controls">\n<source src="'+o.source1+'"'+(o.source1mime?' type="'+o.source1mime+'"':"")+" />\n"+(o.source2?'<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</video>"}return a}function n(e){var t={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(e,i){if(t.source1||"param"!=e||(t.source1=i.map.movie),("iframe"==e||"object"==e||"embed"==e||"video"==e||"audio"==e)&&(t.type||(t.type=e),t=tinymce.extend(i.map,t)),"script"==e){var o=r(i.map.src);if(!o)return;t={type:"script",source1:i.map.src,width:o.width,height:o.height}}"source"==e&&(t.source1?t.source2||(t.source2=i.map.src):t.source1=i.map.src),"img"!=e||t.poster||(t.poster=i.map.src)}}).parse(e),t.source1=t.source1||t.src||t.data,t.source2=t.source2||"",t.poster=t.poster||"",t}function s(t){return t.getAttribute("data-mce-object")?n(e.serializer.serialize(t,{selection:!0})):{}}function m(t){if(e.settings.media_filter_html===!1)return t;var i=new tinymce.html.Writer;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(e){i.comment(e)},cdata:function(e){i.cdata(e)},text:function(e,t){i.text(e,t)},start:function(e,t,r){if("script"!=e&&"noscript"!=e){for(var o=0;o<t.length;o++)if(0===t[o].name.indexOf("on"))return;i.start(e,t,r)}},end:function(e){"script"!=e&&"noscript"!=e&&i.end(e)}},new tinymce.html.Schema({})).parse(t),i.getContent()}function u(e,t,i){function r(e,t){var i,r,o,a;for(i in t)if(o=""+t[i],e.map[i])for(r=e.length;r--;)a=e[r],a.name==i&&(o?(e.map[i]=o,a.value=o):(delete e.map[i],e.splice(r,1)));else o&&(e.push({name:i,value:o}),e.map[i]=o)}var o,a=new tinymce.html.Writer,c=0;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(e,n,s){switch(e){case"video":case"object":case"embed":case"img":case"iframe":r(n,{width:t.width,height:t.height})}if(i)switch(e){case"video":r(n,{poster:t.poster,src:""}),t.source2&&r(n,{src:""});break;case"iframe":r(n,{src:t.source1});break;case"source":if(c++,2>=c&&(r(n,{src:t["source"+c],type:t["source"+c+"mime"]}),!t["source"+c]))return;break;case"img":if(!t.poster)return;o=!0}a.start(e,n,s)},end:function(e){if("video"==e&&i)for(var n=1;2>=n;n++)if(t["source"+n]){var s=[];s.map={},n>c&&(r(s,{src:t["source"+n],type:t["source"+n+"mime"]}),a.start("source",s,!0))}if(t.poster&&"object"==e&&i&&!o){var m=[];m.map={},r(m,{src:t.poster,width:t.width,height:t.height}),a.start("img",m,!0)}a.end(e)}},new tinymce.html.Schema({})).parse(e),a.getContent()}var d=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&amp;byline=0"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}],l=tinymce.Env.ie&&tinymce.Env.ie<=8?"onChange":"onInput";e.on("ResolveName",function(e){var t;1==e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")});var i=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){i[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(t,i){for(var o,a,c,n,s,m,u,d,l=t.length;l--;)if(a=t[l],a.parent&&("script"!=a.name||(d=r(a.attr("src"))))){for(c=new tinymce.html.Node("img",1),c.shortEnded=!0,d&&(d.width&&a.attr("width",d.width.toString()),d.height&&a.attr("height",d.height.toString())),m=a.attributes,o=m.length;o--;)n=m[o].name,s=m[o].value,"width"!==n&&"height"!==n&&"style"!==n&&(("data"==n||"src"==n)&&(s=e.convertURL(s,n)),c.attr("data-mce-p-"+n,s));u=a.firstChild&&a.firstChild.value,u&&(c.attr("data-mce-html",escape(u)),c.firstChild=null),c.attr({width:a.attr("width")||"300",height:a.attr("height")||("audio"==i?"30":"150"),style:a.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":i,"class":"mce-object mce-object-"+i}),a.replace(c)}}),e.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var i,r,o,a,c,n,s,u=e.length;u--;)if(i=e[u],i.parent){for(s=i.attr(t),r=new tinymce.html.Node(s,1),"audio"!=s&&"script"!=s&&r.attr({width:i.attr("width"),height:i.attr("height")}),r.attr({style:i.attr("style")}),a=i.attributes,o=a.length;o--;){var d=a[o].name;0===d.indexOf("data-mce-p-")&&r.attr(d.substr(11),a[o].value)}"script"==s&&r.attr("type","text/javascript"),c=i.attr("data-mce-html"),c&&(n=new tinymce.html.Node("#text",3),n.raw=!0,n.value=m(unescape(c)),r.append(n)),i.replace(r)}})}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");("audio"==t||"script"==t)&&e.preventDefault()}),e.on("objectResized",function(e){var t,i=e.target;i.getAttribute("data-mce-object")&&(t=i.getAttribute("data-mce-html"),t&&(t=unescape(t),i.setAttribute("data-mce-html",escape(u(t,{width:e.width,height:e.height})))))}),e.addButton("media",{tooltip:"Insert/edit video",onclick:o,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]}),e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:o,context:"insert",prependToContext:!0})});
\ No newline at end of file
index d4479042e6ad0935530e7b938396b6d724e32e55..699096a39fa86845b5529aae6f7f4644502ab699 100644 (file)
@@ -170,14 +170,46 @@ define("tinymce/pasteplugin/Utils", [
                        }
                }
 
                        }
                }
 
+               html = filter(html, [
+                       /<!\[[^\]]+\]>/g // Conditional comments
+               ]);
+
                walk(domParser.parse(html));
 
                return text;
        }
 
                walk(domParser.parse(html));
 
                return text;
        }
 
+       /**
+        * Trims the specified HTML by removing all WebKit fragments, all elements wrapping the body trailing BR elements etc.
+        *
+        * @param {String} html Html string to trim contents on.
+        * @return {String} Html contents that got trimmed.
+        */
+       function trimHtml(html) {
+               function trimSpaces(all, s1, s2) {
+                       // WebKit &nbsp; meant to preserve multiple spaces but instead inserted around all inline tags,
+                       // including the spans with inline styles created on paste
+                       if (!s1 && !s2) {
+                               return ' ';
+                       }
+
+                       return '\u00a0';
+               }
+
+               html = filter(html, [
+                       /^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g, // Remove anything but the contents within the BODY element
+                       /<!--StartFragment-->|<!--EndFragment-->/g, // Inner fragments (tables from excel on mac)
+                       [/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g, trimSpaces],
+                       /<br>$/i // Trailing BR elements
+               ]);
+
+               return html;
+       }
+
        return {
                filter: filter,
        return {
                filter: filter,
-               innerText: innerText
+               innerText: innerText,
+               trimHtml: trimHtml
        };
 });
 
        };
 });
 
@@ -208,7 +240,7 @@ define("tinymce/pasteplugin/Utils", [
  *  2. Wait for the browser to fire a "paste" event and get the contents out of the paste bin.
  *  3. Check if the paste was successful if true, process the HTML.
  *  (4). If the paste was unsuccessful use IE execCommand, Clipboard API, document.dataTransfer old WebKit API etc.
  *  2. Wait for the browser to fire a "paste" event and get the contents out of the paste bin.
  *  3. Check if the paste was successful if true, process the HTML.
  *  (4). If the paste was unsuccessful use IE execCommand, Clipboard API, document.dataTransfer old WebKit API etc.
- * 
+ *
  * @class tinymce.pasteplugin.Clipboard
  * @private
  */
  * @class tinymce.pasteplugin.Clipboard
  * @private
  */
@@ -218,7 +250,7 @@ define("tinymce/pasteplugin/Clipboard", [
        "tinymce/pasteplugin/Utils"
 ], function(Env, VK, Utils) {
        return function(editor) {
        "tinymce/pasteplugin/Utils"
 ], function(Env, VK, Utils) {
        return function(editor) {
-               var self = this, pasteBinElm, lastRng, keyboardPasteTimeStamp = 0;
+               var self = this, pasteBinElm, lastRng, keyboardPasteTimeStamp = 0, draggingInternally = false;
                var pasteBinDefaultContent = '%MCEPASTEBIN%', keyboardPastePlainTextState;
 
                /**
                var pasteBinDefaultContent = '%MCEPASTEBIN%', keyboardPastePlainTextState;
 
                /**
@@ -248,7 +280,7 @@ define("tinymce/pasteplugin/Clipboard", [
                                }
 
                                if (!args.isDefaultPrevented()) {
                                }
 
                                if (!args.isDefaultPrevented()) {
-                                       editor.insertContent(html);
+                                       editor.insertContent(html, {merge: editor.settings.paste_merge_formats !== false});
                                }
                        }
                }
                                }
                        }
                }
@@ -306,7 +338,9 @@ define("tinymce/pasteplugin/Clipboard", [
                        if (editor.inline) {
                                scrollContainer = editor.selection.getScrollContainer();
 
                        if (editor.inline) {
                                scrollContainer = editor.selection.getScrollContainer();
 
-                               if (scrollContainer) {
+                               // Can't always rely on scrollTop returning a useful value.
+                               // It returns 0 if the browser doesn't support scrollTop for the element or is non-scrollable
+                               if (scrollContainer && scrollContainer.scrollTop > 0) {
                                        scrollTop = scrollContainer.scrollTop;
                                }
                        }
                                        scrollTop = scrollContainer.scrollTop;
                                }
                        }
@@ -341,7 +375,7 @@ define("tinymce/pasteplugin/Clipboard", [
                        pasteBinElm = dom.add(editor.getBody(), 'div', {
                                id: "mcepastebin",
                                contentEditable: true,
                        pasteBinElm = dom.add(editor.getBody(), 'div', {
                                id: "mcepastebin",
                                contentEditable: true,
-                               "data-mce-bogus": "1",
+                               "data-mce-bogus": "all",
                                style: 'position: absolute; top: ' + top + 'px;' +
                                        'width: 10px; height: 10px; overflow: hidden; opacity: 0'
                        }, pasteBinDefaultContent);
                                style: 'position: absolute; top: ' + top + 'px;' +
                                        'width: 10px; height: 10px; overflow: hidden; opacity: 0'
                        }, pasteBinDefaultContent);
@@ -380,7 +414,6 @@ define("tinymce/pasteplugin/Clipboard", [
                                }
                        }
 
                                }
                        }
 
-                       keyboardPastePlainTextState = false;
                        pasteBinElm = lastRng = null;
                }
 
                        pasteBinElm = lastRng = null;
                }
 
@@ -390,22 +423,23 @@ define("tinymce/pasteplugin/Clipboard", [
                 * @return {String} Get the contents of the paste bin.
                 */
                function getPasteBinHtml() {
                 * @return {String} Get the contents of the paste bin.
                 */
                function getPasteBinHtml() {
-                       var html = pasteBinDefaultContent, pasteBinClones, i;
+                       var html = '', pasteBinClones, i, clone, cloneHtml;
 
                        // Since WebKit/Chrome might clone the paste bin when pasting
                        // for example: <img style="float: right"> we need to check if any of them contains some useful html.
                        // TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it!
                        pasteBinClones = editor.dom.select('div[id=mcepastebin]');
 
                        // Since WebKit/Chrome might clone the paste bin when pasting
                        // for example: <img style="float: right"> we need to check if any of them contains some useful html.
                        // TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it!
                        pasteBinClones = editor.dom.select('div[id=mcepastebin]');
-                       i = pasteBinClones.length;
-                       while (i--) {
-                               var cloneHtml = pasteBinClones[i].innerHTML;
+                       for (i = 0; i < pasteBinClones.length; i++) {
+                               clone = pasteBinClones[i];
 
 
-                               if (html == pasteBinDefaultContent) {
-                                       html = '';
+                               // Pasting plain text produces pastebins in pastebinds makes sence right!?
+                               if (clone.firstChild && clone.firstChild.id == 'mcepastebin') {
+                                       clone = clone.firstChild;
                                }
 
                                }
 
-                               if (cloneHtml.length > html.length) {
-                                       html = cloneHtml;
+                               cloneHtml = clone.innerHTML;
+                               if (html != pasteBinDefaultContent) {
+                                       html += cloneHtml;
                                }
                        }
 
                                }
                        }
 
@@ -421,16 +455,20 @@ define("tinymce/pasteplugin/Clipboard", [
                function getDataTransferItems(dataTransfer) {
                        var data = {};
 
                function getDataTransferItems(dataTransfer) {
                        var data = {};
 
-                       if (dataTransfer && dataTransfer.types) {
-                               // Use old WebKit API
-                               var legacyText = dataTransfer.getData('Text');
-                               if (legacyText && legacyText.length > 0) {
-                                       data['text/plain'] = legacyText;
+                       if (dataTransfer) {
+                               // Use old WebKit/IE API
+                               if (dataTransfer.getData) {
+                                       var legacyText = dataTransfer.getData('Text');
+                                       if (legacyText && legacyText.length > 0) {
+                                               data['text/plain'] = legacyText;
+                                       }
                                }
 
                                }
 
-                               for (var i = 0; i < dataTransfer.types.length; i++) {
-                                       var contentType = dataTransfer.types[i];
-                                       data[contentType] = dataTransfer.getData(contentType);
+                               if (dataTransfer.types) {
+                                       for (var i = 0; i < dataTransfer.types.length; i++) {
+                                               var contentType = dataTransfer.types[i];
+                                               data[contentType] = dataTransfer.getData(contentType);
+                                       }
                                }
                        }
 
                                }
                        }
 
@@ -452,54 +490,78 @@ define("tinymce/pasteplugin/Clipboard", [
                 * Checks if the clipboard contains image data if it does it will take that data
                 * and convert it into a data url image and paste that image at the caret location.
                 *
                 * Checks if the clipboard contains image data if it does it will take that data
                 * and convert it into a data url image and paste that image at the caret location.
                 *
-                * @param  {ClipboardEvent} e Paste event object.
-                * @param  {Object} clipboardContent Collection of clipboard contents.
+                * @param  {ClipboardEvent} e Paste/drop event object.
+                * @param  {DOMRange} rng Optional rng object to move selection to.
                 * @return {Boolean} true/false if the image data was found or not.
                 */
                 * @return {Boolean} true/false if the image data was found or not.
                 */
-               function pasteImageData(e, clipboardContent) {
-                       function pasteImage(item) {
-                               if (items[i].type == 'image/png') {
-                                       var reader = new FileReader();
+               function pasteImageData(e, rng) {
+                       var dataTransfer = e.clipboardData || e.dataTransfer;
 
 
-                                       reader.onload = function() {
-                                               pasteHtml('<img src="' + reader.result + '">');
-                                       };
+                       function processItems(items) {
+                               var i, item, reader;
 
 
-                                       reader.readAsDataURL(item.getAsFile());
+                               function pasteImage() {
+                                       if (rng) {
+                                               editor.selection.setRng(rng);
+                                               rng = null;
+                                       }
 
 
-                                       return true;
+                                       pasteHtml('<img src="' + reader.result + '">');
                                }
                                }
-                       }
 
 
-                       // If paste data images are disabled or there is HTML or plain text
-                       // contents then proceed with the normal paste process
-                       if (!editor.settings.paste_data_images || "text/html" in clipboardContent || "text/plain" in clipboardContent) {
-                               return;
-                       }
+                               if (items) {
+                                       for (i = 0; i < items.length; i++) {
+                                               item = items[i];
 
 
-                       if (e.clipboardData) {
-                               var items = e.clipboardData.items;
+                                               if (/^image\/(jpeg|png|gif)$/.test(item.type)) {
+                                                       reader = new FileReader();
+                                                       reader.onload = pasteImage;
+                                                       reader.readAsDataURL(item.getAsFile ? item.getAsFile() : item);
 
 
-                               if (items) {
-                                       for (var i = 0; i < items.length; i++) {
-                                               if (pasteImage(items[i])) {
+                                                       e.preventDefault();
                                                        return true;
                                                }
                                        }
                                }
                        }
                                                        return true;
                                                }
                                        }
                                }
                        }
+
+                       if (editor.settings.paste_data_images && dataTransfer) {
+                               return processItems(dataTransfer.items) || processItems(dataTransfer.files);
+                       }
+               }
+
+               /**
+                * Chrome on Andoid doesn't support proper clipboard access so we have no choice but to allow the browser default behavior.
+                *
+                * @param {Event} e Paste event object to check if it contains any data.
+                * @return {Boolean} true/false if the clipboard is empty or not.
+                */
+               function isBrokenAndoidClipboardEvent(e) {
+                       var clipboardData = e.clipboardData;
+
+                       return navigator.userAgent.indexOf('Android') != -1 && clipboardData && clipboardData.items && clipboardData.items.length === 0;
                }
 
                function getCaretRangeFromEvent(e) {
                }
 
                function getCaretRangeFromEvent(e) {
-                       var doc = editor.getDoc(), rng;
+                       var doc = editor.getDoc(), rng, point;
 
                        if (doc.caretPositionFromPoint) {
 
                        if (doc.caretPositionFromPoint) {
-                               var point = doc.caretPositionFromPoint(e.clientX, e.clientY);
+                               point = doc.caretPositionFromPoint(e.clientX, e.clientY);
                                rng = doc.createRange();
                                rng.setStart(point.offsetNode, point.offset);
                                rng.collapse(true);
                        } else if (doc.caretRangeFromPoint) {
                                rng = doc.caretRangeFromPoint(e.clientX, e.clientY);
                                rng = doc.createRange();
                                rng.setStart(point.offsetNode, point.offset);
                                rng.collapse(true);
                        } else if (doc.caretRangeFromPoint) {
                                rng = doc.caretRangeFromPoint(e.clientX, e.clientY);
+                       } else if (doc.body.createTextRange) {
+                               rng = doc.body.createTextRange();
+
+                               try {
+                                       rng.moveToPoint(e.clientX, e.clientY);
+                                       rng.collapse(true);
+                               } catch (ex) {
+                                       // Append to top or bottom depending on drop location
+                                       rng.collapse(e.clientY < doc.body.clientHeight);
+                               }
                        }
 
                        return rng;
                        }
 
                        return rng;
@@ -509,16 +571,29 @@ define("tinymce/pasteplugin/Clipboard", [
                        return mimeType in clipboardContent && clipboardContent[mimeType].length > 0;
                }
 
                        return mimeType in clipboardContent && clipboardContent[mimeType].length > 0;
                }
 
+               function isKeyboardPasteEvent(e) {
+                       return (VK.metaKeyPressed(e) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45);
+               }
+
                function registerEventHandlers() {
                        editor.on('keydown', function(e) {
                function registerEventHandlers() {
                        editor.on('keydown', function(e) {
-                               if (e.isDefaultPrevented()) {
-                                       return;
+                               function removePasteBinOnKeyUp(e) {
+                                       // Ctrl+V or Shift+Insert
+                                       if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {
+                                               removePasteBin();
+                                       }
                                }
 
                                // Ctrl+V or Shift+Insert
                                }
 
                                // Ctrl+V or Shift+Insert
-                               if ((VK.metaKeyPressed(e) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45)) {
+                               if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {
                                        keyboardPastePlainTextState = e.shiftKey && e.keyCode == 86;
 
                                        keyboardPastePlainTextState = e.shiftKey && e.keyCode == 86;
 
+                                       // Edge case on Safari on Mac where it doesn't handle Cmd+Shift+V correctly
+                                       // it fires the keydown but no paste or keyup so we are left with a paste bin
+                                       if (keyboardPastePlainTextState && Env.webkit && navigator.userAgent.indexOf('Version/') != -1) {
+                                               return;
+                                       }
+
                                        // Prevent undoManager keydown handler from making an undo level with the pastebin in it
                                        e.stopImmediatePropagation();
 
                                        // Prevent undoManager keydown handler from making an undo level with the pastebin in it
                                        e.stopImmediatePropagation();
 
@@ -534,20 +609,33 @@ define("tinymce/pasteplugin/Clipboard", [
 
                                        removePasteBin();
                                        createPasteBin();
 
                                        removePasteBin();
                                        createPasteBin();
+
+                                       // Remove pastebin if we get a keyup and no paste event
+                                       // For example pasting a file in IE 11 will not produce a paste event
+                                       editor.once('keyup', removePasteBinOnKeyUp);
+                                       editor.once('paste', function() {
+                                               editor.off('keyup', removePasteBinOnKeyUp);
+                                       });
                                }
                        });
 
                        editor.on('paste', function(e) {
                                }
                        });
 
                        editor.on('paste', function(e) {
+                               // Getting content from the Clipboard can take some time
+                               var clipboardTimer = new Date().getTime();
                                var clipboardContent = getClipboardContent(e);
                                var clipboardContent = getClipboardContent(e);
-                               var isKeyBoardPaste = new Date().getTime() - keyboardPasteTimeStamp < 1000;
+                               var clipboardDelay = new Date().getTime() - clipboardTimer;
+
+                               var isKeyBoardPaste = (new Date().getTime() - keyboardPasteTimeStamp - clipboardDelay) < 1000;
                                var plainTextMode = self.pasteFormat == "text" || keyboardPastePlainTextState;
 
                                var plainTextMode = self.pasteFormat == "text" || keyboardPastePlainTextState;
 
-                               if (e.isDefaultPrevented()) {
+                               keyboardPastePlainTextState = false;
+
+                               if (e.isDefaultPrevented() || isBrokenAndoidClipboardEvent(e)) {
                                        removePasteBin();
                                        return;
                                }
 
                                        removePasteBin();
                                        return;
                                }
 
-                               if (pasteImageData(e, clipboardContent)) {
+                               if (pasteImageData(e)) {
                                        removePasteBin();
                                        return;
                                }
                                        removePasteBin();
                                        return;
                                }
@@ -570,59 +658,81 @@ define("tinymce/pasteplugin/Clipboard", [
                                }
 
                                setTimeout(function() {
                                }
 
                                setTimeout(function() {
-                                       var html = getPasteBinHtml();
+                                       var content;
+
+                                       // Grab HTML from Clipboard API or paste bin as a fallback
+                                       if (hasContentType(clipboardContent, 'text/html')) {
+                                               content = clipboardContent['text/html'];
+                                       } else {
+                                               content = getPasteBinHtml();
+
+                                               // If paste bin is empty try using plain text mode
+                                               // since that is better than nothing right
+                                               if (content == pasteBinDefaultContent) {
+                                                       plainTextMode = true;
+                                               }
+                                       }
+
+                                       content = Utils.trimHtml(content);
 
                                        // WebKit has a nice bug where it clones the paste bin if you paste from for example notepad
 
                                        // WebKit has a nice bug where it clones the paste bin if you paste from for example notepad
+                                       // so we need to force plain text mode in this case
                                        if (pasteBinElm && pasteBinElm.firstChild && pasteBinElm.firstChild.id === 'mcepastebin') {
                                                plainTextMode = true;
                                        }
 
                                        removePasteBin();
 
                                        if (pasteBinElm && pasteBinElm.firstChild && pasteBinElm.firstChild.id === 'mcepastebin') {
                                                plainTextMode = true;
                                        }
 
                                        removePasteBin();
 
-                                       // Always use pastebin HTML if it's available since it contains Word contents
-                                       if (!plainTextMode && isKeyBoardPaste && html && html != pasteBinDefaultContent) {
-                                               clipboardContent['text/html'] = html;
+                                       // If we got nothing from clipboard API and pastebin then we could try the last resort: plain/text
+                                       if (!content.length) {
+                                               plainTextMode = true;
                                        }
 
                                        }
 
-                                       if (html == pasteBinDefaultContent || !isKeyBoardPaste) {
-                                               html = clipboardContent['text/html'] || clipboardContent['text/plain'] || pasteBinDefaultContent;
-
-                                               if (html == pasteBinDefaultContent) {
-                                                       if (!isKeyBoardPaste) {
-                                                               editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.');
-                                                       }
-
-                                                       return;
+                                       // Grab plain text from Clipboard API or convert existing HTML to plain text
+                                       if (plainTextMode) {
+                                               // Use plain text contents from Clipboard API unless the HTML contains paragraphs then
+                                               // we should convert the HTML to plain text since works better when pasting HTML/Word contents as plain text
+                                               if (hasContentType(clipboardContent, 'text/plain') && content.indexOf('</p>') == -1) {
+                                                       content = clipboardContent['text/plain'];
+                                               } else {
+                                                       content = Utils.innerText(content);
                                                }
                                        }
 
                                                }
                                        }
 
-                                       // Force plain text mode if we only got a text/plain content type
-                                       if (!hasContentType(clipboardContent, 'text/html') && hasContentType(clipboardContent, 'text/plain')) {
-                                               plainTextMode = true;
+                                       // If the content is the paste bin default HTML then it was
+                                       // impossible to get the cliboard data out.
+                                       if (content == pasteBinDefaultContent) {
+                                               if (!isKeyBoardPaste) {
+                                                       editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.');
+                                               }
+
+                                               return;
                                        }
 
                                        if (plainTextMode) {
                                        }
 
                                        if (plainTextMode) {
-                                               pasteText(clipboardContent['text/plain'] || Utils.innerText(html));
+                                               pasteText(content);
                                        } else {
                                        } else {
-                                               pasteHtml(html);
+                                               pasteHtml(content);
                                        }
                                }, 0);
                        });
 
                                        }
                                }, 0);
                        });
 
-                       editor.on('dragstart', function(e) {
-                               if (e.dataTransfer.types) {
-                                       try {
-                                               e.dataTransfer.setData('mce-internal', editor.selection.getContent());
-                                       } catch (ex) {
-                                               // IE 10 throws an error since it doesn't support custom data items
-                                       }
-                               }
+                       editor.on('dragstart dragend', function(e) {
+                               draggingInternally = e.type == 'dragstart';
                        });
 
                        editor.on('drop', function(e) {
                                var rng = getCaretRangeFromEvent(e);
 
                        });
 
                        editor.on('drop', function(e) {
                                var rng = getCaretRangeFromEvent(e);
 
-                               if (rng && !e.isDefaultPrevented()) {
+                               if (e.isDefaultPrevented() || draggingInternally) {
+                                       return;
+                               }
+
+                               if (pasteImageData(e, rng)) {
+                                       return;
+                               }
+
+                               if (rng && editor.settings.paste_filter_drop !== false) {
                                        var dropContent = getDataTransferItems(e.dataTransfer);
                                        var content = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain'];
 
                                        var dropContent = getDataTransferItems(e.dataTransfer);
                                        var content = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain'];
 
@@ -636,6 +746,8 @@ define("tinymce/pasteplugin/Clipboard", [
 
                                                        editor.selection.setRng(rng);
 
 
                                                        editor.selection.setRng(rng);
 
+                                                       content = Utils.trimHtml(content);
+
                                                        if (!dropContent['text/html']) {
                                                                pasteText(content);
                                                        } else {
                                                        if (!dropContent['text/html']) {
                                                                pasteText(content);
                                                        } else {
@@ -645,6 +757,20 @@ define("tinymce/pasteplugin/Clipboard", [
                                        }
                                }
                        });
                                        }
                                }
                        });
+
+                       editor.on('dragover dragend', function(e) {
+                               var i, dataTransfer = e.dataTransfer;
+
+                               if (editor.settings.paste_data_images && dataTransfer) {
+                                       for (i = 0; i < dataTransfer.types.length; i++) {
+                                               // Prevent default if we have files dragged into the editor since the pasteImageData handles that
+                                               if (dataTransfer.types[i] == "Files") {
+                                                       e.preventDefault();
+                                                       return false;
+                                               }
+                                       }
+                               }
+                       });
                }
 
                self.pasteHtml = pasteHtml;
                }
 
                self.pasteHtml = pasteHtml;
@@ -661,7 +787,10 @@ define("tinymce/pasteplugin/Clipboard", [
 
                                        while (i--) {
                                                var src = nodes[i].attributes.map.src;
 
                                        while (i--) {
                                                var src = nodes[i].attributes.map.src;
-                                               if (src && src.indexOf('data:image') === 0) {
+
+                                               // Some browsers automatically produce data uris on paste
+                                               // Safari on Mac produces webkit-fake-url see: https://bugs.webkit.org/show_bug.cgi?id=49141
+                                               if (src && /^(data:image|webkit\-fake\-url)/.test(src)) {
                                                        if (!nodes[i].attr('data-mce-object') && src !== Env.transparentSrc) {
                                                                nodes[i].remove();
                                                        }
                                                        if (!nodes[i].attr('data-mce-object') && src !== Env.transparentSrc) {
                                                                nodes[i].remove();
                                                        }
@@ -670,11 +799,6 @@ define("tinymce/pasteplugin/Clipboard", [
                                }
                        });
                });
                                }
                        });
                });
-
-               // Fix for #6504 we need to remove the paste bin on IE if the user paste in a file
-               editor.on('PreProcess', function() {
-                       editor.dom.remove(editor.dom.get('mcepastebin'));
-               });
        };
 });
 
        };
 });
 
@@ -715,6 +839,38 @@ define("tinymce/pasteplugin/WordFilter", [
                );
        }
 
                );
        }
 
+       /**
+        * Checks if the specified text starts with "1. " or "a. " etc.
+        */
+       function isNumericList(text) {
+               var found, patterns;
+
+               patterns = [
+                       /^[IVXLMCD]{1,2}\.[ \u00a0]/,  // Roman upper case
+                       /^[ivxlmcd]{1,2}\.[ \u00a0]/,  // Roman lower case
+                       /^[a-z]{1,2}[\.\)][ \u00a0]/,  // Alphabetical a-z
+                       /^[A-Z]{1,2}[\.\)][ \u00a0]/,  // Alphabetical A-Z
+                       /^[0-9]+\.[ \u00a0]/,          // Numeric lists
+                       /^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/, // Japanese
+                       /^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/  // Chinese
+               ];
+
+               text = text.replace(/^[\u00a0 ]+/, '');
+
+               Tools.each(patterns, function(pattern) {
+                       if (pattern.test(text)) {
+                               found = true;
+                               return false;
+                       }
+               });
+
+               return found;
+       }
+
+       function isBulletList(text) {
+               return /^[\s\u00a0]*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*/.test(text);
+       }
+
        function WordFilter(editor) {
                var settings = editor.settings;
 
        function WordFilter(editor) {
                var settings = editor.settings;
 
@@ -734,7 +890,55 @@ define("tinymce/pasteplugin/WordFilter", [
                        function convertFakeListsToProperLists(node) {
                                var currentListNode, prevListNode, lastLevel = 1;
 
                        function convertFakeListsToProperLists(node) {
                                var currentListNode, prevListNode, lastLevel = 1;
 
-                               function convertParagraphToLi(paragraphNode, listStartTextNode, listName, start) {
+                               function getText(node) {
+                                       var txt = '';
+
+                                       if (node.type === 3) {
+                                               return node.value;
+                                       }
+
+                                       if ((node = node.firstChild)) {
+                                               do {
+                                                       txt += getText(node);
+                                               } while ((node = node.next));
+                                       }
+
+                                       return txt;
+                               }
+
+                               function trimListStart(node, regExp) {
+                                       if (node.type === 3) {
+                                               if (regExp.test(node.value)) {
+                                                       node.value = node.value.replace(regExp, '');
+                                                       return false;
+                                               }
+                                       }
+
+                                       if ((node = node.firstChild)) {
+                                               do {
+                                                       if (!trimListStart(node, regExp)) {
+                                                               return false;
+                                                       }
+                                               } while ((node = node.next));
+                                       }
+
+                                       return true;
+                               }
+
+                               function removeIgnoredNodes(node) {
+                                       if (node._listIgnore) {
+                                               node.remove();
+                                               return;
+                                       }
+
+                                       if ((node = node.firstChild)) {
+                                               do {
+                                                       removeIgnoredNodes(node);
+                                               } while ((node = node.next));
+                                       }
+                               }
+
+                               function convertParagraphToLi(paragraphNode, listName, start) {
                                        var level = paragraphNode._listLevel || lastLevel;
 
                                        // Handle list nesting
                                        var level = paragraphNode._listLevel || lastLevel;
 
                                        // Handle list nesting
@@ -765,12 +969,6 @@ define("tinymce/pasteplugin/WordFilter", [
                                        }
 
                                        paragraphNode.name = 'li';
                                        }
 
                                        paragraphNode.name = 'li';
-                                       listStartTextNode.value = '';
-
-                                       var nextNode = listStartTextNode.next;
-                                       if (nextNode && nextNode.type == 3) {
-                                               nextNode.value = nextNode.value.replace(/^\u00a0+/, '');
-                                       }
 
                                        // Append list to previous list if it exists
                                        if (level > lastLevel && prevListNode) {
 
                                        // Append list to previous list if it exists
                                        if (level > lastLevel && prevListNode) {
@@ -778,6 +976,12 @@ define("tinymce/pasteplugin/WordFilter", [
                                        }
 
                                        lastLevel = level;
                                        }
 
                                        lastLevel = level;
+
+                                       // Remove start of list item "1. " or "&middot; " etc
+                                       removeIgnoredNodes(paragraphNode);
+                                       trimListStart(paragraphNode, /^\u00a0+/);
+                                       trimListStart(paragraphNode, /^\s*([\u2022\u00b7\u00a7\u00d8\u25CF]|\w+\.)/);
+                                       trimListStart(paragraphNode, /^\u00a0+/);
                                }
 
                                var paragraphs = node.getAll('p');
                                }
 
                                var paragraphs = node.getAll('p');
@@ -787,26 +991,16 @@ define("tinymce/pasteplugin/WordFilter", [
 
                                        if (node.name == 'p' && node.firstChild) {
                                                // Find first text node in paragraph
 
                                        if (node.name == 'p' && node.firstChild) {
                                                // Find first text node in paragraph
-                                               var nodeText = '';
-                                               var listStartTextNode = node.firstChild;
-
-                                               while (listStartTextNode) {
-                                                       nodeText = listStartTextNode.value;
-                                                       if (nodeText) {
-                                                               break;
-                                                       }
-
-                                                       listStartTextNode = listStartTextNode.firstChild;
-                                               }
+                                               var nodeText = getText(node);
 
                                                // Detect unordered lists look for bullets
 
                                                // Detect unordered lists look for bullets
-                                               if (/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(nodeText)) {
-                                                       convertParagraphToLi(node, listStartTextNode, 'ul');
+                                               if (isBulletList(nodeText)) {
+                                                       convertParagraphToLi(node, 'ul');
                                                        continue;
                                                }
 
                                                // Detect ordered lists 1., a. or ixv.
                                                        continue;
                                                }
 
                                                // Detect ordered lists 1., a. or ixv.
-                                               if (/^\s*\w+\.$/.test(nodeText)) {
+                                               if (isNumericList(nodeText)) {
                                                        // Parse OL start number
                                                        var matches = /([0-9])\./.exec(nodeText);
                                                        var start = 1;
                                                        // Parse OL start number
                                                        var matches = /([0-9])\./.exec(nodeText);
                                                        var start = 1;
@@ -814,7 +1008,13 @@ define("tinymce/pasteplugin/WordFilter", [
                                                                start = parseInt(matches[1], 10);
                                                        }
 
                                                                start = parseInt(matches[1], 10);
                                                        }
 
-                                                       convertParagraphToLi(node, listStartTextNode, 'ol', start);
+                                                       convertParagraphToLi(node, 'ol', start);
+                                                       continue;
+                                               }
+
+                                               // Convert paragraphs marked as lists but doesn't look like anything
+                                               if (node._listLevel) {
+                                                       convertParagraphToLi(node, 'ul', 1);
                                                        continue;
                                                }
 
                                                        continue;
                                                }
 
@@ -824,20 +1024,27 @@ define("tinymce/pasteplugin/WordFilter", [
                        }
 
                        function filterStyles(node, styleValue) {
                        }
 
                        function filterStyles(node, styleValue) {
-                               var outputStyles = {}, styles = editor.dom.parseStyle(styleValue);
-
-                               // Parse out list indent level for lists
-                               if (node.name === 'p') {
-                                       var matches = /mso-list:\w+ \w+([0-9]+)/.exec(styleValue);
-
-                                       if (matches) {
-                                               node._listLevel = parseInt(matches[1], 10);
-                                       }
-                               }
+                               var outputStyles = {}, matches, styles = editor.dom.parseStyle(styleValue);
 
                                Tools.each(styles, function(value, name) {
                                        // Convert various MS styles to W3C styles
                                        switch (name) {
 
                                Tools.each(styles, function(value, name) {
                                        // Convert various MS styles to W3C styles
                                        switch (name) {
+                                               case 'mso-list':
+                                                       // Parse out list indent level for lists
+                                                       matches = /\w+ \w+([0-9]+)/i.exec(styleValue);
+                                                       if (matches) {
+                                                               node._listLevel = parseInt(matches[1], 10);
+                                                       }
+
+                                                       // Remove these nodes <span style="mso-list:Ignore">o</span>
+                                                       // Since the span gets removed we mark the text node and the span
+                                                       if (/Ignore/i.test(value) && node.firstChild) {
+                                                               node._listIgnore = true;
+                                                               node.firstChild._listIgnore = true;
+                                                       }
+
+                                                       break;
+
                                                case "horiz-align":
                                                        name = "text-align";
                                                        break;
                                                case "horiz-align":
                                                        name = "text-align";
                                                        break;
@@ -995,7 +1202,7 @@ define("tinymce/pasteplugin/WordFilter", [
                                                node = nodes[i];
 
                                                className = node.attr('class');
                                                node = nodes[i];
 
                                                className = node.attr('class');
-                                               if (/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(className)) {
+                                               if (/^(MsoCommentReference|MsoCommentText|msoDel|MsoCaption)$/i.test(className)) {
                                                        node.remove();
                                                }
 
                                                        node.remove();
                                                }
 
@@ -1036,7 +1243,8 @@ define("tinymce/pasteplugin/WordFilter", [
                                                if (!href && !name) {
                                                        node.unwrap();
                                                } else {
                                                if (!href && !name) {
                                                        node.unwrap();
                                                } else {
-                                                       if (name && name.indexOf('Toc') !== 0) {
+                                                       // Remove all named anchors that aren't specific to TOC, Footnotes or Endnotes
+                                                       if (name && !/^_?(?:toc|edn|ftn)/i.test(name)) {
                                                                node.unwrap();
                                                                continue;
                                                        }
                                                                node.unwrap();
                                                                continue;
                                                        }
@@ -1101,25 +1309,6 @@ define("tinymce/pasteplugin/Quirks", [
                        });
                }
 
                        });
                }
 
-               /**
-                * Removes WebKit fragment comments and converted-space spans.
-                *
-                * This:
-                *   <!--StartFragment-->a<span class="Apple-converted-space">&nbsp;</span>b<!--EndFragment-->
-                *
-                * Becomes:
-                *   a&nbsp;b
-                */
-               function removeWebKitFragments(html) {
-                       html = Utils.filter(html, [
-                               /^[\s\S]*<!--StartFragment-->|<!--EndFragment-->[\s\S]*$/g, // WebKit fragment
-                               [/<span class="Apple-converted-space">\u00a0<\/span>/g, '\u00a0'], // WebKit &nbsp;
-                               /<br>$/i // Traling BR elements
-                       ]);
-
-                       return html;
-               }
-
                /**
                 * Removes BR elements after block elements. IE9 has a nasty bug where it puts a BR element after each
                 * block element when pasting from word. This removes those elements.
                /**
                 * Removes BR elements after block elements. IE9 has a nasty bug where it puts a BR element after each
                 * block element when pasting from word. This removes those elements.
@@ -1182,46 +1371,63 @@ define("tinymce/pasteplugin/Quirks", [
                        }
 
                        // Filter away styles that isn't matching the target node
                        }
 
                        // Filter away styles that isn't matching the target node
+                       var webKitStyles = editor.settings.paste_webkit_styles;
 
 
-                       var webKitStyles = editor.getParam("paste_webkit_styles", "color font-size font-family background-color").split(/[, ]/);
+                       if (editor.settings.paste_remove_styles_if_webkit === false || webKitStyles == "all") {
+                               return content;
+                       }
 
 
-                       if (editor.settings.paste_remove_styles_if_webkit === false) {
-                               webKitStyles = "all";
+                       if (webKitStyles) {
+                               webKitStyles = webKitStyles.split(/[, ]/);
                        }
 
                        // Keep specific styles that doesn't match the current node computed style
                        }
 
                        // Keep specific styles that doesn't match the current node computed style
-                       if (webKitStyles != "all") {
+                       if (webKitStyles) {
                                var dom = editor.dom, node = editor.selection.getNode();
 
                                var dom = editor.dom, node = editor.selection.getNode();
 
-                               content = content.replace(/ style=\"([^\"]+)\"/gi, function(a, value) {
+                               content = content.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, function(all, before, value, after) {
                                        var inputStyles = dom.parseStyle(value, 'span'), outputStyles = {};
 
                                        if (webKitStyles === "none") {
                                        var inputStyles = dom.parseStyle(value, 'span'), outputStyles = {};
 
                                        if (webKitStyles === "none") {
-                                               return '';
+                                               return before + after;
                                        }
 
                                        for (var i = 0; i < webKitStyles.length; i++) {
                                        }
 
                                        for (var i = 0; i < webKitStyles.length; i++) {
-                                               if (dom.toHex(dom.getStyle(node, webKitStyles[i], true)) != inputStyles[webKitStyles[i]]) {
-                                                       outputStyles[webKitStyles[i]] = inputStyles[webKitStyles[i]];
+                                               var inputValue = inputStyles[webKitStyles[i]], currentValue = dom.getStyle(node, webKitStyles[i], true);
+
+                                               if (/color/.test(webKitStyles[i])) {
+                                                       inputValue = dom.toHex(inputValue);
+                                                       currentValue = dom.toHex(currentValue);
+                                               }
+
+                                               if (currentValue != inputValue) {
+                                                       outputStyles[webKitStyles[i]] = inputValue;
                                                }
                                        }
 
                                        outputStyles = dom.serializeStyle(outputStyles, 'span');
                                        if (outputStyles) {
                                                }
                                        }
 
                                        outputStyles = dom.serializeStyle(outputStyles, 'span');
                                        if (outputStyles) {
-                                               return ' style="' + outputStyles + '"';
+                                               return before + ' style="' + outputStyles + '"' + after;
                                        }
 
                                        }
 
-                                       return '';
+                                       return before + after;
                                });
                                });
+                       } else {
+                               // Remove all external styles
+                               content = content.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, '$1$3');
                        }
 
                        }
 
+                       // Keep internal styles
+                       content = content.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi, function(all, before, value, after) {
+                               return before + ' style="' + value + '"' + after;
+                       });
+
                        return content;
                }
 
                // Sniff browsers and apply fixes since we can't feature detect
                if (Env.webkit) {
                        addPreProcessFilter(removeWebKitStyles);
                        return content;
                }
 
                // Sniff browsers and apply fixes since we can't feature detect
                if (Env.webkit) {
                        addPreProcessFilter(removeWebKitStyles);
-                       addPreProcessFilter(removeWebKitFragments);
                }
 
                if (Env.ie) {
                }
 
                if (Env.ie) {
@@ -1343,5 +1549,5 @@ define("tinymce/pasteplugin/Plugin", [
        });
 });
 
        });
 });
 
-expose(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks","tinymce/pasteplugin/Plugin"]);
+expose(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/WordFilter"]);
 })(this);
\ No newline at end of file
 })(this);
\ No newline at end of file
index 1766f64134a47fa48815e9e6fd2eb6b0c16dd88a..1f20a76d3fa48caa6868b400f19b9263cf3d40ff 100644 (file)
@@ -1 +1 @@
-!function(e,t){"use strict";function n(e,t){for(var n,i=[],r=0;r<e.length;++r){if(n=s[e[r]]||o(e[r]),!n)throw"module definition dependecy not found: "+e[r];i.push(n)}t.apply(null,i)}function i(e,i,r){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(i===t)throw"invalid module definition, dependencies must be specified";if(r===t)throw"invalid module definition, definition function must be specified";n(i,function(){s[e]=r.apply(null,arguments)})}function r(e){return!!s[e]}function o(t){for(var n=e,i=t.split(/[.\/]/),r=0;r<i.length;++r){if(!n[i[r]])return;n=n[i[r]]}return n}function a(n){for(var i=0;i<n.length;i++){for(var r=e,o=n[i],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)r[a[l]]===t&&(r[a[l]]={}),r=r[a[l]];r[a[a.length-1]]=s[o]}}var s={},l="tinymce/pasteplugin/Utils",c="tinymce/util/Tools",u="tinymce/html/DomParser",d="tinymce/html/Schema",f="tinymce/pasteplugin/Clipboard",m="tinymce/Env",p="tinymce/util/VK",g="tinymce/pasteplugin/WordFilter",h="tinymce/html/Serializer",v="tinymce/html/Node",b="tinymce/pasteplugin/Quirks",y="tinymce/pasteplugin/Plugin",x="tinymce/PluginManager";i(l,[c,u,d],function(e,t,n){function i(t,n){return e.each(n,function(e){t=e.constructor==RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}function r(i){function r(e){var t=e.name,n=e;if("br"===t)return void(s+="\n");if(l[t]&&(s+=" "),c[t])return void(s+=" ");if(3==e.type&&(s+=e.value),!e.shortEnded&&(e=e.firstChild))do r(e);while(e=e.next);u[t]&&n.next&&(s+="\n","p"==t&&(s+="\n"))}var o=new n,a=new t({},o),s="",l=o.getShortEndedElements(),c=e.makeMap("script noscript style textarea video audio iframe object"," "),u=o.getBlockElements();return r(a.parse(i)),s}return{filter:i,innerText:r}}),i(f,[m,p,l],function(e,t,n){return function(i){function r(e){var t,n=i.dom;if(t=i.fire("BeforePastePreProcess",{content:e}),t=i.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(i.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var r=n.add(i.getBody(),"div",{style:"display:none"},e);t=i.fire("PastePostProcess",{node:r}),n.remove(r),e=t.node.innerHTML}t.isDefaultPrevented()||i.insertContent(e)}}function o(e){e=i.dom.encode(e).replace(/\r\n/g,"\n");var t=i.dom.getParent(i.selection.getStart(),i.dom.isBlock),o=i.settings.forced_root_block,a;o&&(a=i.dom.createHTML(o,i.settings.forced_root_block_attrs),a=a.substr(0,a.length-3)+">"),t&&/^(PRE|DIV)$/.test(t.nodeName)||!o?e=n.filter(e,[[/\n/g,"<br>"]]):(e=n.filter(e,[[/\n\n/g,"</p>"+a],[/^(.*<\/p>)(<p>)$/,a+"$1"],[/\n/g,"<br />"]]),-1!=e.indexOf("<p>")&&(e=a+e)),r(e)}function a(){var t=i.dom,n=i.getBody(),r=i.dom.getViewPort(i.getWin()),o=r.y,a=20,s;if(v=i.selection.getRng(),i.inline&&(s=i.selection.getScrollContainer(),s&&(o=s.scrollTop)),v.getClientRects){var l=v.getClientRects();if(l.length)a=o+(l[0].top-t.getPos(n).y);else{a=o;var c=v.startContainer;c&&(3==c.nodeType&&c.parentNode!=n&&(c=c.parentNode),1==c.nodeType&&(a=t.getPos(c,s||n).y))}}h=t.add(i.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"1",style:"position: absolute; top: "+a+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},y),(e.ie||e.gecko)&&t.setStyle(h,"left","rtl"==t.getStyle(n,"direction",!0)?65535:-65535),t.bind(h,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),h.focus(),i.selection.select(h,!0)}function s(){if(h){for(var e;e=i.dom.get("mcepastebin");)i.dom.remove(e),i.dom.unbind(e);v&&i.selection.setRng(v)}x=!1,h=v=null}function l(){var e=y,t,n;for(t=i.dom.select("div[id=mcepastebin]"),n=t.length;n--;){var r=t[n].innerHTML;e==y&&(e=""),r.length>e.length&&(e=r)}return e}function c(e){var t={};if(e&&e.types){var n=e.getData("Text");n&&n.length>0&&(t["text/plain"]=n);for(var i=0;i<e.types.length;i++){var r=e.types[i];t[r]=e.getData(r)}}return t}function u(e){return c(e.clipboardData||i.getDoc().dataTransfer)}function d(e,t){function n(e){if("image/png"==o[a].type){var t=new FileReader;return t.onload=function(){r('<img src="'+t.result+'">')},t.readAsDataURL(e.getAsFile()),!0}}if(!(!i.settings.paste_data_images||"text/html"in t||"text/plain"in t)&&e.clipboardData){var o=e.clipboardData.items;if(o)for(var a=0;a<o.length;a++)if(n(o[a]))return!0}}function f(e){var t=i.getDoc(),n;if(t.caretPositionFromPoint){var r=t.caretPositionFromPoint(e.clientX,e.clientY);n=t.createRange(),n.setStart(r.offsetNode,r.offset),n.collapse(!0)}else t.caretRangeFromPoint&&(n=t.caretRangeFromPoint(e.clientX,e.clientY));return n}function m(e,t){return t in e&&e[t].length>0}function p(){i.on("keydown",function(n){if(!n.isDefaultPrevented()&&(t.metaKeyPressed(n)&&86==n.keyCode||n.shiftKey&&45==n.keyCode)){if(x=n.shiftKey&&86==n.keyCode,n.stopImmediatePropagation(),b=(new Date).getTime(),e.ie&&x)return n.preventDefault(),void i.fire("paste",{ieFake:!0});s(),a()}}),i.on("paste",function(t){var c=u(t),f=(new Date).getTime()-b<1e3,p="text"==g.pasteFormat||x;return t.isDefaultPrevented()?void s():d(t,c)?void s():(f||t.preventDefault(),!e.ie||f&&!t.ieFake||(a(),i.dom.bind(h,"paste",function(e){e.stopPropagation()}),i.getDoc().execCommand("Paste",!1,null),c["text/html"]=l()),void setTimeout(function(){var e=l();return h&&h.firstChild&&"mcepastebin"===h.firstChild.id&&(p=!0),s(),!p&&f&&e&&e!=y&&(c["text/html"]=e),e!=y&&f||(e=c["text/html"]||c["text/plain"]||y,e!=y)?(!m(c,"text/html")&&m(c,"text/plain")&&(p=!0),void(p?o(c["text/plain"]||n.innerText(e)):r(e))):void(f||i.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."))},0))}),i.on("dragstart",function(e){if(e.dataTransfer.types)try{e.dataTransfer.setData("mce-internal",i.selection.getContent())}catch(t){}}),i.on("drop",function(e){var t=f(e);if(t&&!e.isDefaultPrevented()){var n=c(e.dataTransfer),a=n["mce-internal"]||n["text/html"]||n["text/plain"];a&&(e.preventDefault(),i.undoManager.transact(function(){n["mce-internal"]&&i.execCommand("Delete"),i.selection.setRng(t),n["text/html"]?r(a):o(a)}))}})}var g=this,h,v,b=0,y="%MCEPASTEBIN%",x;g.pasteHtml=r,g.pasteText=o,i.on("preInit",function(){p(),i.parser.addNodeFilter("img",function(t){if(!i.settings.paste_data_images)for(var n=t.length;n--;){var r=t[n].attributes.map.src;r&&0===r.indexOf("data:image")&&(t[n].attr("data-mce-object")||r===e.transparentSrc||t[n].remove())}})}),i.on("PreProcess",function(){i.dom.remove(i.dom.get("mcepastebin"))})}}),i(g,[c,u,d,h,v,l],function(e,t,n,i,r,o){function a(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}function s(s){var l=s.settings;s.on("BeforePastePreProcess",function(c){function u(e){function t(e,t,a,s){var l=e._listLevel||o;l!=o&&(o>l?n&&(n=n.parent.parent):(i=n,n=null)),n&&n.name==a?n.append(e):(i=i||n,n=new r(a,1),s>1&&n.attr("start",""+s),e.wrap(n)),e.name="li",t.value="";var c=t.next;c&&3==c.type&&(c.value=c.value.replace(/^\u00a0+/,"")),l>o&&i&&i.lastChild.append(n),o=l}for(var n,i,o=1,a=e.getAll("p"),s=0;s<a.length;s++)if(e=a[s],"p"==e.name&&e.firstChild){for(var l="",c=e.firstChild;c&&!(l=c.value);)c=c.firstChild;if(/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(l)){t(e,c,"ul");continue}if(/^\s*\w+\.$/.test(l)){var u=/([0-9])\./.exec(l),d=1;u&&(d=parseInt(u[1],10)),t(e,c,"ol",d);continue}n=null}}function d(t,n){var i={},o=s.dom.parseStyle(n);if("p"===t.name){var a=/mso-list:\w+ \w+([0-9]+)/.exec(n);a&&(t._listLevel=parseInt(a[1],10))}return e.each(o,function(e,n){switch(n){case"horiz-align":n="text-align";break;case"vert-align":n="vertical-align";break;case"font-color":case"mso-foreground":n="color";break;case"mso-background":case"mso-highlight":n="background";break;case"font-weight":case"font-style":return void("normal"!=e&&(i[n]=e));case"mso-element":if(/^(comment|comment-list)$/i.test(e))return void t.remove()}return 0===n.indexOf("mso-comment")?void t.remove():void(0!==n.indexOf("mso-")&&("all"==m||p&&p[n])&&(i[n]=e))}),/(bold)/i.test(i["font-weight"])&&(delete i["font-weight"],t.wrap(new r("b",1))),/(italic)/i.test(i["font-style"])&&(delete i["font-style"],t.wrap(new r("i",1))),i=s.dom.serializeStyle(i,t.name),i?i:null}var f=c.content,m,p;if(m=l.paste_retain_style_properties,m&&(p=e.makeMap(m.split(/[, ]/))),l.paste_enable_default_filters!==!1&&a(c.content)){c.wordContent=!0,f=o.filter(f,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var g=l.paste_word_valid_elements;g||(g="-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br,del");var h=new n({valid_elements:g,valid_children:"-li[p]"});e.each(h.elements,function(e){e.attributes["class"]||(e.attributes["class"]={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var v=new t({},h);v.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",d(n,n.attr("style"))),"span"==n.name&&n.parent&&!n.attributes.length&&n.unwrap()}),v.addAttributeFilter("class",function(e){for(var t=e.length,n,i;t--;)n=e[t],i=n.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(i)&&n.remove(),n.attr("class",null)}),v.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),v.addNodeFilter("a",function(e){for(var t=e.length,n,i,r;t--;)if(n=e[t],i=n.attr("href"),r=n.attr("name"),i&&-1!=i.indexOf("#_msocom_"))n.remove();else if(i&&0===i.indexOf("file://")&&(i=i.split("#")[1],i&&(i="#"+i)),i||r){if(r&&0!==r.indexOf("Toc")){n.unwrap();continue}n.attr({href:i,name:r})}else n.unwrap()});var b=v.parse(f);u(b),c.content=new i({},h).serialize(b)}})}return s.isWordContent=a,s}),i(b,[m,c,g,l],function(e,t,n,i){return function(r){function o(e){r.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function a(e){return e=i.filter(e,[/^[\s\S]*<!--StartFragment-->|<!--EndFragment-->[\s\S]*$/g,[/<span class="Apple-converted-space">\u00a0<\/span>/g,"\xa0"],/<br>$/i])}function s(e){if(!n.isWordContent(e))return e;var o=[];t.each(r.schema.getBlockElements(),function(e,t){o.push(t)});var a=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+o.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return e=i.filter(e,[[a,"$1"]]),e=i.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function l(e){if(n.isWordContent(e))return e;var t=r.getParam("paste_webkit_styles","color font-size font-family background-color").split(/[, ]/);if(r.settings.paste_remove_styles_if_webkit===!1&&(t="all"),"all"!=t){var i=r.dom,o=r.selection.getNode();e=e.replace(/ style=\"([^\"]+)\"/gi,function(e,n){var r=i.parseStyle(n,"span"),a={};if("none"===t)return"";for(var s=0;s<t.length;s++)i.toHex(i.getStyle(o,t[s],!0))!=r[t[s]]&&(a[t[s]]=r[t[s]]);return a=i.serializeStyle(a,"span"),a?' style="'+a+'"':""})}return e}e.webkit&&(o(l),o(a)),e.ie&&o(s)}}),i(y,[x,f,g,b],function(e,t,n,i){var r;e.add("paste",function(e){function o(){"text"==s.pasteFormat?(this.active(!1),s.pasteFormat="html"):(s.pasteFormat="text",this.active(!0),r||(e.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),r=!0))}var a=this,s,l=e.settings;a.clipboard=s=new t(e),a.quirks=new i(e),a.wordFilter=new n(e),e.settings.paste_as_text&&(a.clipboard.pasteFormat="text"),l.paste_preprocess&&e.on("PastePreProcess",function(e){l.paste_preprocess.call(a,a,e)}),l.paste_postprocess&&e.on("PastePostProcess",function(e){l.paste_postprocess.call(a,a,e)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&a.clipboard.pasteHtml(t.content),t.text&&a.clipboard.pasteText(t.text)}),e.paste_block_drop&&e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),e.settings.paste_data_images||e.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:o,active:"text"==a.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:o})})}),a([l,f,g,b,y])}(this);
\ No newline at end of file
+!function(e,t){"use strict";function n(e,t){for(var n,i=[],r=0;r<e.length;++r){if(n=s[e[r]]||a(e[r]),!n)throw"module definition dependecy not found: "+e[r];i.push(n)}t.apply(null,i)}function i(e,i,r){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(i===t)throw"invalid module definition, dependencies must be specified";if(r===t)throw"invalid module definition, definition function must be specified";n(i,function(){s[e]=r.apply(null,arguments)})}function r(e){return!!s[e]}function a(t){for(var n=e,i=t.split(/[.\/]/),r=0;r<i.length;++r){if(!n[i[r]])return;n=n[i[r]]}return n}function o(n){for(var i=0;i<n.length;i++){for(var r=e,a=n[i],o=a.split(/[.\/]/),l=0;l<o.length-1;++l)r[o[l]]===t&&(r[o[l]]={}),r=r[o[l]];r[o[o.length-1]]=s[a]}}var s={},l="tinymce/pasteplugin/Utils",c="tinymce/util/Tools",u="tinymce/html/DomParser",d="tinymce/html/Schema",f="tinymce/pasteplugin/Clipboard",p="tinymce/Env",m="tinymce/util/VK",g="tinymce/pasteplugin/WordFilter",v="tinymce/html/Serializer",h="tinymce/html/Node",b="tinymce/pasteplugin/Quirks",y="tinymce/pasteplugin/Plugin",w="tinymce/PluginManager";i(l,[c,u,d],function(e,t,n){function i(t,n){return e.each(n,function(e){t=e.constructor==RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}function r(r){function a(e){var t=e.name,n=e;if("br"===t)return void(l+="\n");if(c[t]&&(l+=" "),u[t])return void(l+=" ");if(3==e.type&&(l+=e.value),!e.shortEnded&&(e=e.firstChild))do a(e);while(e=e.next);d[t]&&n.next&&(l+="\n","p"==t&&(l+="\n"))}var o=new n,s=new t({},o),l="",c=o.getShortEndedElements(),u=e.makeMap("script noscript style textarea video audio iframe object"," "),d=o.getBlockElements();return r=i(r,[/<!\[[^\]]+\]>/g]),a(s.parse(r)),l}function a(e){function t(e,t,n){return t||n?"\xa0":" "}return e=i(e,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,t],/<br>$/i])}return{filter:i,innerText:r,trimHtml:a}}),i(f,[p,m,l],function(e,t,n){return function(i){function r(e){var t,n=i.dom;if(t=i.fire("BeforePastePreProcess",{content:e}),t=i.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(i.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var r=n.add(i.getBody(),"div",{style:"display:none"},e);t=i.fire("PastePostProcess",{node:r}),n.remove(r),e=t.node.innerHTML}t.isDefaultPrevented()||i.insertContent(e,{merge:i.settings.paste_merge_formats!==!1})}}function a(e){e=i.dom.encode(e).replace(/\r\n/g,"\n");var t=i.dom.getParent(i.selection.getStart(),i.dom.isBlock),a=i.settings.forced_root_block,o;a&&(o=i.dom.createHTML(a,i.settings.forced_root_block_attrs),o=o.substr(0,o.length-3)+">"),t&&/^(PRE|DIV)$/.test(t.nodeName)||!a?e=n.filter(e,[[/\n/g,"<br>"]]):(e=n.filter(e,[[/\n\n/g,"</p>"+o],[/^(.*<\/p>)(<p>)$/,o+"$1"],[/\n/g,"<br />"]]),-1!=e.indexOf("<p>")&&(e=o+e)),r(e)}function o(){var t=i.dom,n=i.getBody(),r=i.dom.getViewPort(i.getWin()),a=r.y,o=20,s;if(y=i.selection.getRng(),i.inline&&(s=i.selection.getScrollContainer(),s&&s.scrollTop>0&&(a=s.scrollTop)),y.getClientRects){var l=y.getClientRects();if(l.length)o=a+(l[0].top-t.getPos(n).y);else{o=a;var c=y.startContainer;c&&(3==c.nodeType&&c.parentNode!=n&&(c=c.parentNode),1==c.nodeType&&(o=t.getPos(c,s||n).y))}}b=t.add(i.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+o+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},P),(e.ie||e.gecko)&&t.setStyle(b,"left","rtl"==t.getStyle(n,"direction",!0)?65535:-65535),t.bind(b,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),b.focus(),i.selection.select(b,!0)}function s(){if(b){for(var e;e=i.dom.get("mcepastebin");)i.dom.remove(e),i.dom.unbind(e);y&&i.selection.setRng(y)}b=y=null}function l(){var e="",t,n,r,a;for(t=i.dom.select("div[id=mcepastebin]"),n=0;n<t.length;n++)r=t[n],r.firstChild&&"mcepastebin"==r.firstChild.id&&(r=r.firstChild),a=r.innerHTML,e!=P&&(e+=a);return e}function c(e){var t={};if(e){if(e.getData){var n=e.getData("Text");n&&n.length>0&&(t["text/plain"]=n)}if(e.types)for(var i=0;i<e.types.length;i++){var r=e.types[i];t[r]=e.getData(r)}}return t}function u(e){return c(e.clipboardData||i.getDoc().dataTransfer)}function d(e,t){function n(n){function a(){t&&(i.selection.setRng(t),t=null),r('<img src="'+l.result+'">')}var o,s,l;if(n)for(o=0;o<n.length;o++)if(s=n[o],/^image\/(jpeg|png|gif)$/.test(s.type))return l=new FileReader,l.onload=a,l.readAsDataURL(s.getAsFile?s.getAsFile():s),e.preventDefault(),!0}var a=e.clipboardData||e.dataTransfer;return i.settings.paste_data_images&&a?n(a.items)||n(a.files):void 0}function f(e){var t=e.clipboardData;return-1!=navigator.userAgent.indexOf("Android")&&t&&t.items&&0===t.items.length}function p(e){var t=i.getDoc(),n,r;if(t.caretPositionFromPoint)r=t.caretPositionFromPoint(e.clientX,e.clientY),n=t.createRange(),n.setStart(r.offsetNode,r.offset),n.collapse(!0);else if(t.caretRangeFromPoint)n=t.caretRangeFromPoint(e.clientX,e.clientY);else if(t.body.createTextRange){n=t.body.createTextRange();try{n.moveToPoint(e.clientX,e.clientY),n.collapse(!0)}catch(a){n.collapse(e.clientY<t.body.clientHeight)}}return n}function m(e,t){return t in e&&e[t].length>0}function g(e){return t.metaKeyPressed(e)&&86==e.keyCode||e.shiftKey&&45==e.keyCode}function v(){i.on("keydown",function(t){function n(e){g(e)&&!e.isDefaultPrevented()&&s()}if(g(t)&&!t.isDefaultPrevented()){if(_=t.shiftKey&&86==t.keyCode,_&&e.webkit&&-1!=navigator.userAgent.indexOf("Version/"))return;if(t.stopImmediatePropagation(),w=(new Date).getTime(),e.ie&&_)return t.preventDefault(),void i.fire("paste",{ieFake:!0});s(),o(),i.once("keyup",n),i.once("paste",function(){i.off("keyup",n)})}}),i.on("paste",function(t){var c=(new Date).getTime(),p=u(t),g=(new Date).getTime()-c,v=(new Date).getTime()-w-g<1e3,y="text"==h.pasteFormat||_;return _=!1,t.isDefaultPrevented()||f(t)?void s():d(t)?void s():(v||t.preventDefault(),!e.ie||v&&!t.ieFake||(o(),i.dom.bind(b,"paste",function(e){e.stopPropagation()}),i.getDoc().execCommand("Paste",!1,null),p["text/html"]=l()),void setTimeout(function(){var e;return m(p,"text/html")?e=p["text/html"]:(e=l(),e==P&&(y=!0)),e=n.trimHtml(e),b&&b.firstChild&&"mcepastebin"===b.firstChild.id&&(y=!0),s(),e.length||(y=!0),y&&(e=m(p,"text/plain")&&-1==e.indexOf("</p>")?p["text/plain"]:n.innerText(e)),e==P?void(v||i.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(y?a(e):r(e))},0))}),i.on("dragstart dragend",function(e){x="dragstart"==e.type}),i.on("drop",function(e){var t=p(e);if(!e.isDefaultPrevented()&&!x&&!d(e,t)&&t&&i.settings.paste_filter_drop!==!1){var o=c(e.dataTransfer),s=o["mce-internal"]||o["text/html"]||o["text/plain"];s&&(e.preventDefault(),i.undoManager.transact(function(){o["mce-internal"]&&i.execCommand("Delete"),i.selection.setRng(t),s=n.trimHtml(s),o["text/html"]?r(s):a(s)}))}}),i.on("dragover dragend",function(e){var t,n=e.dataTransfer;if(i.settings.paste_data_images&&n)for(t=0;t<n.types.length;t++)if("Files"==n.types[t])return e.preventDefault(),!1})}var h=this,b,y,w=0,x=!1,P="%MCEPASTEBIN%",_;h.pasteHtml=r,h.pasteText=a,i.on("preInit",function(){v(),i.parser.addNodeFilter("img",function(t){if(!i.settings.paste_data_images)for(var n=t.length;n--;){var r=t[n].attributes.map.src;r&&/^(data:image|webkit\-fake\-url)/.test(r)&&(t[n].attr("data-mce-object")||r===e.transparentSrc||t[n].remove())}})})}}),i(g,[c,u,d,v,h,l],function(e,t,n,i,r,a){function o(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}function s(t){var n,i;return i=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],t=t.replace(/^[\u00a0 ]+/,""),e.each(i,function(e){return e.test(t)?(n=!0,!1):void 0}),n}function l(e){return/^[\s\u00a0]*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*/.test(e)}function c(c){var u=c.settings;c.on("BeforePastePreProcess",function(d){function f(e){function t(e){var n="";if(3===e.type)return e.value;if(e=e.firstChild)do n+=t(e);while(e=e.next);return n}function n(e,t){if(3===e.type&&t.test(e.value))return e.value=e.value.replace(t,""),!1;if(e=e.firstChild)do if(!n(e,t))return!1;while(e=e.next);return!0}function i(e){if(e._listIgnore)return void e.remove();if(e=e.firstChild)do i(e);while(e=e.next)}function a(e,t,a){var s=e._listLevel||u;s!=u&&(u>s?o&&(o=o.parent.parent):(c=o,o=null)),o&&o.name==t?o.append(e):(c=c||o,o=new r(t,1),a>1&&o.attr("start",""+a),e.wrap(o)),e.name="li",s>u&&c&&c.lastChild.append(o),u=s,i(e),n(e,/^\u00a0+/),n(e,/^\s*([\u2022\u00b7\u00a7\u00d8\u25CF]|\w+\.)/),n(e,/^\u00a0+/)}for(var o,c,u=1,d=e.getAll("p"),f=0;f<d.length;f++)if(e=d[f],"p"==e.name&&e.firstChild){var p=t(e);if(l(p)){a(e,"ul");continue}if(s(p)){var m=/([0-9])\./.exec(p),g=1;m&&(g=parseInt(m[1],10)),a(e,"ol",g);continue}if(e._listLevel){a(e,"ul",1);continue}o=null}}function p(t,n){var i={},a,o=c.dom.parseStyle(n);return e.each(o,function(e,r){switch(r){case"mso-list":a=/\w+ \w+([0-9]+)/i.exec(n),a&&(t._listLevel=parseInt(a[1],10)),/Ignore/i.test(e)&&t.firstChild&&(t._listIgnore=!0,t.firstChild._listIgnore=!0);break;case"horiz-align":r="text-align";break;case"vert-align":r="vertical-align";break;case"font-color":case"mso-foreground":r="color";break;case"mso-background":case"mso-highlight":r="background";break;case"font-weight":case"font-style":return void("normal"!=e&&(i[r]=e));case"mso-element":if(/^(comment|comment-list)$/i.test(e))return void t.remove()}return 0===r.indexOf("mso-comment")?void t.remove():void(0!==r.indexOf("mso-")&&("all"==g||v&&v[r])&&(i[r]=e))}),/(bold)/i.test(i["font-weight"])&&(delete i["font-weight"],t.wrap(new r("b",1))),/(italic)/i.test(i["font-style"])&&(delete i["font-style"],t.wrap(new r("i",1))),i=c.dom.serializeStyle(i,t.name),i?i:null}var m=d.content,g,v;if(g=u.paste_retain_style_properties,g&&(v=e.makeMap(g.split(/[, ]/))),u.paste_enable_default_filters!==!1&&o(d.content)){d.wordContent=!0,m=a.filter(m,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var h=u.paste_word_valid_elements;h||(h="-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br,del");var b=new n({valid_elements:h,valid_children:"-li[p]"});e.each(b.elements,function(e){e.attributes["class"]||(e.attributes["class"]={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var y=new t({},b);y.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",p(n,n.attr("style"))),"span"==n.name&&n.parent&&!n.attributes.length&&n.unwrap()}),y.addAttributeFilter("class",function(e){for(var t=e.length,n,i;t--;)n=e[t],i=n.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel|MsoCaption)$/i.test(i)&&n.remove(),n.attr("class",null)}),y.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),y.addNodeFilter("a",function(e){for(var t=e.length,n,i,r;t--;)if(n=e[t],i=n.attr("href"),r=n.attr("name"),i&&-1!=i.indexOf("#_msocom_"))n.remove();else if(i&&0===i.indexOf("file://")&&(i=i.split("#")[1],i&&(i="#"+i)),i||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){n.unwrap();continue}n.attr({href:i,name:r})}else n.unwrap()});var w=y.parse(m);f(w),d.content=new i({},b).serialize(w)}})}return c.isWordContent=o,c}),i(b,[p,c,g,l],function(e,t,n,i){return function(r){function a(e){r.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function o(e){if(!n.isWordContent(e))return e;var a=[];t.each(r.schema.getBlockElements(),function(e,t){a.push(t)});var o=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+a.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return e=i.filter(e,[[o,"$1"]]),e=i.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function s(e){if(n.isWordContent(e))return e;var t=r.settings.paste_webkit_styles;if(r.settings.paste_remove_styles_if_webkit===!1||"all"==t)return e;if(t&&(t=t.split(/[, ]/)),t){var i=r.dom,a=r.selection.getNode();e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(e,n,r,o){var s=i.parseStyle(r,"span"),l={};if("none"===t)return n+o;for(var c=0;c<t.length;c++){var u=s[t[c]],d=i.getStyle(a,t[c],!0);/color/.test(t[c])&&(u=i.toHex(u),d=i.toHex(d)),d!=u&&(l[t[c]]=u)}return l=i.serializeStyle(l,"span"),l?n+' style="'+l+'"'+o:n+o})}else e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return e=e.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,i){return t+' style="'+n+'"'+i})}e.webkit&&a(s),e.ie&&a(o)}}),i(y,[w,f,g,b],function(e,t,n,i){var r;e.add("paste",function(e){function a(){"text"==s.pasteFormat?(this.active(!1),s.pasteFormat="html"):(s.pasteFormat="text",this.active(!0),r||(e.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),r=!0))}var o=this,s,l=e.settings;o.clipboard=s=new t(e),o.quirks=new i(e),o.wordFilter=new n(e),e.settings.paste_as_text&&(o.clipboard.pasteFormat="text"),l.paste_preprocess&&e.on("PastePreProcess",function(e){l.paste_preprocess.call(o,o,e)}),l.paste_postprocess&&e.on("PastePostProcess",function(e){l.paste_postprocess.call(o,o,e)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&o.clipboard.pasteHtml(t.content),t.text&&o.clipboard.pasteText(t.text)}),e.paste_block_drop&&e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),e.settings.paste_data_images||e.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:a,active:"text"==o.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:a})})}),o([l,g])}(this);
\ No newline at end of file
index 0d81497f5f83e4d5201ef232d89326ef064aca10..47ddfdee17b1a4f1018bbc0f5408fb0619720e97 100644 (file)
@@ -22,7 +22,7 @@ tinymce.PluginManager.add('tabfocus', function(editor) {
        function tabHandler(e) {
                var x, el, v, i;
 
        function tabHandler(e) {
                var x, el, v, i;
 
-               if (e.keyCode !== 9 || e.ctrlKey || e.altKey || e.metaKey) {
+               if (e.keyCode !== 9 || e.ctrlKey || e.altKey || e.metaKey || e.isDefaultPrevented()) {
                        return;
                }
 
                        return;
                }
 
@@ -112,13 +112,14 @@ tinymce.PluginManager.add('tabfocus', function(editor) {
                        // Remove default tabIndex in inline mode
                        tinymce.DOM.setAttrib(editor.getBody(), 'tabIndex', null);
                }
                        // Remove default tabIndex in inline mode
                        tinymce.DOM.setAttrib(editor.getBody(), 'tabIndex', null);
                }
-       });
 
 
-       editor.on('keyup', tabCancel);
+               editor.on('keyup', tabCancel);
 
 
-       if (tinymce.Env.gecko) {
-               editor.on('keypress keydown', tabHandler);
-       } else {
-               editor.on('keydown', tabHandler);
-       }
+               // Add later so other plugins can preventDefault()
+               if (tinymce.Env.gecko) {
+                       editor.on('keypress keydown', tabHandler);
+               } else {
+                       editor.on('keydown', tabHandler);
+               }
+       });
 });
 });
index 68fe35e35a648c7a13c59bc6314a460ed58ab8d7..2e6dbd1f60bc71451e6acced1ea49e67d31fe636 100644 (file)
@@ -1 +1 @@
-tinymce.PluginManager.add("tabfocus",function(e){function n(e){9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()}function t(n){function t(n){function t(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&t(e.parentNode)}function r(e){return e.tabIndex||"INPUT"==e.nodeName||"TEXTAREA"==e.nodeName}function c(e){return!r(e)&&"-1"!=e.getAttribute("tabindex")&&t(e)}if(u=i.select(":input:enabled,*[tabindex]:not(iframe)"),o(u,function(n,t){return n.id==e.id?(a=t,!1):void 0}),n>0){for(d=a+1;d<u.length;d++)if(c(u[d]))return u[d]}else for(d=a-1;d>=0;d--)if(c(u[d]))return u[d];return null}var a,u,c,d;if(!(9!==n.keyCode||n.ctrlKey||n.altKey||n.metaKey)&&(c=r(e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))),1==c.length&&(c[1]=c[0],c[0]=":prev"),u=n.shiftKey?":prev"==c[0]?t(-1):i.get(c[0]):":next"==c[1]?t(1):i.get(c[1]))){var y=tinymce.get(u.id||u.name);u.id&&y?y.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),u.focus()},10),n.preventDefault()}}var i=tinymce.DOM,o=tinymce.each,r=tinymce.explode;e.on("init",function(){e.inline&&tinymce.DOM.setAttrib(e.getBody(),"tabIndex",null)}),e.on("keyup",n),tinymce.Env.gecko?e.on("keypress keydown",t):e.on("keydown",t)});
\ No newline at end of file
+tinymce.PluginManager.add("tabfocus",function(a){function b(a){9!==a.keyCode||a.ctrlKey||a.altKey||a.metaKey||a.preventDefault()}function c(b){function c(b){function c(a){return"BODY"===a.nodeName||"hidden"!=a.type&&"none"!=a.style.display&&"hidden"!=a.style.visibility&&c(a.parentNode)}function f(a){return a.tabIndex||"INPUT"==a.nodeName||"TEXTAREA"==a.nodeName}function i(a){return!f(a)&&"-1"!=a.getAttribute("tabindex")&&c(a)}if(h=d.select(":input:enabled,*[tabindex]:not(iframe)"),e(h,function(b,c){return b.id==a.id?(g=c,!1):void 0}),b>0){for(j=g+1;j<h.length;j++)if(i(h[j]))return h[j]}else for(j=g-1;j>=0;j--)if(i(h[j]))return h[j];return null}var g,h,i,j;if(!(9!==b.keyCode||b.ctrlKey||b.altKey||b.metaKey||b.isDefaultPrevented())&&(i=f(a.getParam("tab_focus",a.getParam("tabfocus_elements",":prev,:next"))),1==i.length&&(i[1]=i[0],i[0]=":prev"),h=b.shiftKey?":prev"==i[0]?c(-1):d.get(i[0]):":next"==i[1]?c(1):d.get(i[1]))){var k=tinymce.get(h.id||h.name);h.id&&k?k.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),h.focus()},10),b.preventDefault()}}var d=tinymce.DOM,e=tinymce.each,f=tinymce.explode;a.on("init",function(){a.inline&&tinymce.DOM.setAttrib(a.getBody(),"tabIndex",null),a.on("keyup",b),tinymce.Env.gecko?a.on("keypress keydown",c):a.on("keydown",c)})});
\ No newline at end of file
index a3a01e790b041173c076426496fbc9232f689435..b33988be8277cc74f10d53470a7aa23822b2ab6b 100644 (file)
 /*eslint consistent-this:0 */
 
 tinymce.PluginManager.add('textcolor', function(editor) {
 /*eslint consistent-this:0 */
 
 tinymce.PluginManager.add('textcolor', function(editor) {
+       var cols, rows;
+
+       rows = editor.settings.textcolor_rows || 5;
+       cols = editor.settings.textcolor_cols || 8;
+
+       function getCurrentColor(format) {
+               var color;
+
+               editor.dom.getParents(editor.selection.getStart(), function(elm) {
+                       var value;
+
+                       if ((value = elm.style[format == 'forecolor' ? 'color' : 'background-color'])) {
+                               color = value;
+                       }
+               });
+
+               return color;
+       }
+
        function mapColors() {
                var i, colors = [], colorMap;
 
        function mapColors() {
                var i, colors = [], colorMap;
 
@@ -46,22 +65,21 @@ tinymce.PluginManager.add('textcolor', function(editor) {
                        "00FF00", "Lime",
                        "00FFFF", "Aqua",
                        "00CCFF", "Sky blue",
                        "00FF00", "Lime",
                        "00FFFF", "Aqua",
                        "00CCFF", "Sky blue",
-                       "993366", "Brown",
-                       "C0C0C0", "Silver",
+                       "993366", "Red violet",
+                       "FFFFFF", "White",
                        "FF99CC", "Pink",
                        "FFCC99", "Peach",
                        "FFFF99", "Light yellow",
                        "CCFFCC", "Pale green",
                        "CCFFFF", "Pale cyan",
                        "99CCFF", "Light sky blue",
                        "FF99CC", "Pink",
                        "FFCC99", "Peach",
                        "FFFF99", "Light yellow",
                        "CCFFCC", "Pale green",
                        "CCFFFF", "Pale cyan",
                        "99CCFF", "Light sky blue",
-                       "CC99FF", "Plum",
-                       "FFFFFF", "White"
+                       "CC99FF", "Plum"
                ];
 
                for (i = 0; i < colorMap.length; i += 2) {
                        colors.push({
                                text: colorMap[i + 1],
                ];
 
                for (i = 0; i < colorMap.length; i += 2) {
                        colors.push({
                                text: colorMap[i + 1],
-                               color: colorMap[i]
+                               color: '#' + colorMap[i]
                        });
                }
 
                        });
                }
 
@@ -69,14 +87,33 @@ tinymce.PluginManager.add('textcolor', function(editor) {
        }
 
        function renderColorPicker() {
        }
 
        function renderColorPicker() {
-               var ctrl = this, colors, color, html, last, rows, cols, x, y, i;
+               var ctrl = this, colors, color, html, last, x, y, i, id = ctrl._id, count = 0;
+
+               function getColorCellHtml(color, title) {
+                       var isNoColor = color == 'transparent';
+
+                       return (
+                               '<td class="mce-grid-cell' + (isNoColor ? ' mce-colorbtn-trans' : '') + '">' +
+                                       '<div id="' + id + '-' + (count++) + '"' +
+                                               ' data-mce-color="' + (color ? color : '') + '"' +
+                                               ' role="option"' +
+                                               ' tabIndex="-1"' +
+                                               ' style="' + (color ? 'background-color: ' + color : '') + '"' +
+                                               ' title="' + tinymce.translate(title) + '">' +
+                                               (isNoColor ? '&#215;' : '') +
+                                       '</div>' +
+                               '</td>'
+                       );
+               }
 
                colors = mapColors();
 
                colors = mapColors();
+               colors.push({
+                       text: tinymce.translate("No color"),
+                       color: "transparent"
+               });
 
                html = '<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>';
                last = colors.length - 1;
 
                html = '<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>';
                last = colors.length - 1;
-               rows = editor.settings.textcolor_rows || 5;
-               cols = editor.settings.textcolor_cols || 8;
 
                for (y = 0; y < rows; y++) {
                        html += '<tr>';
 
                for (y = 0; y < rows; y++) {
                        html += '<tr>';
@@ -88,32 +125,98 @@ tinymce.PluginManager.add('textcolor', function(editor) {
                                        html += '<td></td>';
                                } else {
                                        color = colors[i];
                                        html += '<td></td>';
                                } else {
                                        color = colors[i];
-                                       html += (
-                                               '<td>' +
-                                                       '<div id="' + ctrl._id + '-' + i + '"' +
-                                                               ' data-mce-color="' + color.color + '"' +
-                                                               ' role="option"' +
-                                                               ' tabIndex="-1"' +
-                                                               ' style="' + (color ? 'background-color: #' + color.color : '') + '"' +
-                                                               ' title="' + color.text + '">' +
-                                                       '</div>' +
-                                               '</td>'
-                                       );
+                                       html += getColorCellHtml(color.color, color.text);
                                }
                        }
 
                        html += '</tr>';
                }
 
                                }
                        }
 
                        html += '</tr>';
                }
 
+               if (editor.settings.color_picker_callback) {
+                       html += (
+                               '<tr>' +
+                                       '<td colspan="' + cols + '" class="mce-custom-color-btn">' +
+                                               '<div id="' + id + '-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" ' +
+                                                       'role="button" tabindex="-1" aria-labelledby="' + id + '-c" style="width: 100%">' +
+                                                       '<button type="button" role="presentation" tabindex="-1">' + tinymce.translate('Custom...') + '</button>' +
+                                               '</div>' +
+                                       '</td>' +
+                               '</tr>'
+                       );
+
+                       html += '<tr>';
+
+                       for (x = 0; x < cols; x++) {
+                               html += getColorCellHtml('', 'Custom color');
+                       }
+
+                       html += '</tr>';
+               }
+
                html += '</tbody></table>';
 
                return html;
        }
 
                html += '</tbody></table>';
 
                return html;
        }
 
+       function applyFormat(format, value) {
+               editor.focus();
+               editor.formatter.apply(format, {value: value});
+               editor.nodeChanged();
+       }
+
+       function removeFormat(format) {
+               editor.focus();
+               editor.formatter.remove(format, {value: null}, null, true);
+               editor.nodeChanged();
+       }
+
        function onPanelClick(e) {
                var buttonCtrl = this.parent(), value;
 
        function onPanelClick(e) {
                var buttonCtrl = this.parent(), value;
 
-               if ((value = e.target.getAttribute('data-mce-color'))) {
+               function selectColor(value) {
+                       buttonCtrl.hidePanel();
+                       buttonCtrl.color(value);
+                       applyFormat(buttonCtrl.settings.format, value);
+               }
+
+               function setDivColor(div, value) {
+                       div.style.background = value;
+                       div.setAttribute('data-mce-color', value);
+               }
+
+               if (tinymce.DOM.getParent(e.target, '.mce-custom-color-btn')) {
+                       buttonCtrl.hidePanel();
+
+                       editor.settings.color_picker_callback.call(editor, function(value) {
+                               var tableElm = buttonCtrl.panel.getEl().getElementsByTagName('table')[0];
+                               var customColorCells, div, i;
+
+                               customColorCells = tinymce.map(tableElm.rows[tableElm.rows.length - 1].childNodes, function(elm) {
+                                       return elm.firstChild;
+                               });
+
+                               for (i = 0; i < customColorCells.length; i++) {
+                                       div = customColorCells[i];
+                                       if (!div.getAttribute('data-mce-color')) {
+                                               break;
+                                       }
+                               }
+
+                               // Shift colors to the right
+                               // TODO: Might need to be the left on RTL
+                               if (i == cols) {
+                                       for (i = 0; i < cols - 1; i++) {
+                                               setDivColor(customColorCells[i], customColorCells[i + 1].getAttribute('data-mce-color'));
+                                       }
+                               }
+
+                               setDivColor(div, value);
+                               selectColor(value);
+                       }, getCurrentColor(buttonCtrl.settings.format));
+               }
+
+               value = e.target.getAttribute('data-mce-color');
+               if (value) {
                        if (this.lastId) {
                                document.getElementById(this.lastId).setAttribute('aria-selected', false);
                        }
                        if (this.lastId) {
                                document.getElementById(this.lastId).setAttribute('aria-selected', false);
                        }
@@ -121,10 +224,15 @@ tinymce.PluginManager.add('textcolor', function(editor) {
                        e.target.setAttribute('aria-selected', true);
                        this.lastId = e.target.id;
 
                        e.target.setAttribute('aria-selected', true);
                        this.lastId = e.target.id;
 
+                       if (value == 'transparent') {
+                               removeFormat(buttonCtrl.settings.format);
+                               buttonCtrl.hidePanel();
+                               return;
+                       }
+
+                       selectColor(value);
+               } else if (value !== null) {
                        buttonCtrl.hidePanel();
                        buttonCtrl.hidePanel();
-                       value = '#' + value;
-                       buttonCtrl.color(value);
-                       editor.execCommand(buttonCtrl.settings.selectcmd, false, value);
                }
        }
 
                }
        }
 
@@ -132,14 +240,14 @@ tinymce.PluginManager.add('textcolor', function(editor) {
                var self = this;
 
                if (self._color) {
                var self = this;
 
                if (self._color) {
-                       editor.execCommand(self.settings.selectcmd, false, self._color);
+                       applyFormat(self.settings.format, self._color);
                }
        }
 
        editor.addButton('forecolor', {
                type: 'colorbutton',
                tooltip: 'Text color',
                }
        }
 
        editor.addButton('forecolor', {
                type: 'colorbutton',
                tooltip: 'Text color',
-               selectcmd: 'ForeColor',
+               format: 'forecolor',
                panel: {
                        role: 'application',
                        ariaRemember: true,
                panel: {
                        role: 'application',
                        ariaRemember: true,
@@ -152,7 +260,7 @@ tinymce.PluginManager.add('textcolor', function(editor) {
        editor.addButton('backcolor', {
                type: 'colorbutton',
                tooltip: 'Background color',
        editor.addButton('backcolor', {
                type: 'colorbutton',
                tooltip: 'Background color',
-               selectcmd: 'HiliteColor',
+               format: 'hilitecolor',
                panel: {
                        role: 'application',
                        ariaRemember: true,
                panel: {
                        role: 'application',
                        ariaRemember: true,
index 8f49254def0f8ea0f1eb349d610188b215f7d0c8..e9513475213f593d9d5d525ac18d5ebc79b8fc49 100644 (file)
@@ -1 +1 @@
-tinymce.PluginManager.add("textcolor",function(e){function t(){var t,o,r=[];for(o=e.settings.textcolor_map||["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"],t=0;t<o.length;t+=2)r.push({text:o[t+1],color:o[t]});return r}function o(){var o,r,l,a,c,i,n,F,d,s=this;for(o=t(),l='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',a=o.length-1,c=e.settings.textcolor_rows||5,i=e.settings.textcolor_cols||8,F=0;c>F;F++){for(l+="<tr>",n=0;i>n;n++)d=F*i+n,d>a?l+="<td></td>":(r=o[d],l+='<td><div id="'+s._id+"-"+d+'" data-mce-color="'+r.color+'" role="option" tabIndex="-1" style="'+(r?"background-color: #"+r.color:"")+'" title="'+r.text+'"></div></td>');l+="</tr>"}return l+="</tbody></table>"}function r(t){var o,r=this.parent();(o=t.target.getAttribute("data-mce-color"))&&(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),t.target.setAttribute("aria-selected",!0),this.lastId=t.target.id,r.hidePanel(),o="#"+o,r.color(o),e.execCommand(r.settings.selectcmd,!1,o))}function l(){var t=this;t._color&&e.execCommand(t.settings.selectcmd,!1,t._color)}e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",selectcmd:"ForeColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r},onclick:l}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",selectcmd:"HiliteColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r},onclick:l})});
\ No newline at end of file
+tinymce.PluginManager.add("textcolor",function(t){function e(e){var o;return t.dom.getParents(t.selection.getStart(),function(t){var r;(r=t.style["forecolor"==e?"color":"background-color"])&&(o=r)}),o}function o(){var e,o,r=[];for(o=t.settings.textcolor_map||["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","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],e=0;e<o.length;e+=2)r.push({text:o[e+1],color:"#"+o[e]});return r}function r(){function e(t,e){var o="transparent"==t;return'<td class="mce-grid-cell'+(o?" mce-colorbtn-trans":"")+'"><div id="'+m+"-"+F++ +'" data-mce-color="'+(t?t:"")+'" role="option" tabIndex="-1" style="'+(t?"background-color: "+t:"")+'" title="'+tinymce.translate(e)+'">'+(o?"&#215;":"")+"</div></td>"}var r,l,a,n,c,d,u,g=this,m=g._id,F=0;for(r=o(),r.push({text:tinymce.translate("No color"),color:"transparent"}),a='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',n=r.length-1,d=0;s>d;d++){for(a+="<tr>",c=0;i>c;c++)u=d*i+c,u>n?a+="<td></td>":(l=r[u],a+=e(l.color,l.text));a+="</tr>"}if(t.settings.color_picker_callback){for(a+='<tr><td colspan="'+i+'" class="mce-custom-color-btn"><div id="'+m+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+m+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+tinymce.translate("Custom...")+"</button></div></td></tr>",a+="<tr>",c=0;i>c;c++)a+=e("","Custom color");a+="</tr>"}return a+="</tbody></table>"}function l(e,o){t.focus(),t.formatter.apply(e,{value:o}),t.nodeChanged()}function a(e){t.focus(),t.formatter.remove(e,{value:null},null,!0),t.nodeChanged()}function n(o){function r(t){s.hidePanel(),s.color(t),l(s.settings.format,t)}function n(t,e){t.style.background=e,t.setAttribute("data-mce-color",e)}var c,s=this.parent();if(tinymce.DOM.getParent(o.target,".mce-custom-color-btn")&&(s.hidePanel(),t.settings.color_picker_callback.call(t,function(t){var e,o,l,a=s.panel.getEl().getElementsByTagName("table")[0];for(e=tinymce.map(a.rows[a.rows.length-1].childNodes,function(t){return t.firstChild}),l=0;l<e.length&&(o=e[l],o.getAttribute("data-mce-color"));l++);if(l==i)for(l=0;i-1>l;l++)n(e[l],e[l+1].getAttribute("data-mce-color"));n(o,t),r(t)},e(s.settings.format))),c=o.target.getAttribute("data-mce-color")){if(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),o.target.setAttribute("aria-selected",!0),this.lastId=o.target.id,"transparent"==c)return a(s.settings.format),void s.hidePanel();r(c)}else null!==c&&s.hidePanel()}function c(){var t=this;t._color&&l(t.settings.format,t._color)}var i,s;s=t.settings.textcolor_rows||5,i=t.settings.textcolor_cols||8,t.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:r,onclick:n},onclick:c}),t.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:r,onclick:n},onclick:c})});
\ No newline at end of file
index b79146ac05424a41b21cef126906b4e74abc77e7..15f0ccf541b19caa321e15d110b9952dbfac879b 100644 (file)
@@ -38,8 +38,11 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
                });
 
                if ( pixels && ! initial ) {
                });
 
                if ( pixels && ! initial ) {
-                       iframe = editor.getContentAreaContainer().firstChild;
-                       DOM.setStyle( iframe, 'height', iframe.clientHeight + pixels ); // Resize iframe
+                       // Resize iframe, not needed in iOS
+                       if ( ! tinymce.Env.iOS ) {
+                               iframe = editor.getContentAreaContainer().firstChild;
+                               DOM.setStyle( iframe, 'height', iframe.clientHeight + pixels );
+                       }
 
                        if ( state === 'hide' ) {
                                setUserSetting('hidetb', '0');
 
                        if ( state === 'hide' ) {
                                setUserSetting('hidetb', '0');
@@ -49,6 +52,8 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
                                wpAdvButton && wpAdvButton.active( true );
                        }
                }
                                wpAdvButton && wpAdvButton.active( true );
                        }
                }
+
+               editor.fire( 'wp-toolbar-toggle' );
        }
 
        // Add the kitchen sink button :)
        }
 
        // Add the kitchen sink button :)
@@ -78,18 +83,24 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
 
        // Replace Read More/Next Page tags with images
        editor.on( 'BeforeSetContent', function( e ) {
 
        // Replace Read More/Next Page tags with images
        editor.on( 'BeforeSetContent', function( e ) {
+               var title;
+
                if ( e.content ) {
                        if ( e.content.indexOf( '<!--more' ) !== -1 ) {
                if ( e.content ) {
                        if ( e.content.indexOf( '<!--more' ) !== -1 ) {
+                               title = editor.editorManager.i18n.translate( 'Read more...' );
+
                                e.content = e.content.replace( /<!--more(.*?)-->/g, function( match, moretext ) {
                                e.content = e.content.replace( /<!--more(.*?)-->/g, function( match, moretext ) {
-                                       return '<img src="' + tinymce.Env.transparentSrc + '" data-wp-more="' + moretext + '" ' +
-                                               'class="wp-more-tag mce-wp-more" title="Read More..." data-mce-resize="false" data-mce-placeholder="1" />';
+                                       return '<img src="' + tinymce.Env.transparentSrc + '" data-wp-more="more" data-wp-more-text="' + moretext + '" ' +
+                                               'class="wp-more-tag mce-wp-more" title="' + title + '" data-mce-resize="false" data-mce-placeholder="1" />';
                                });
                        }
 
                        if ( e.content.indexOf( '<!--nextpage-->' ) !== -1 ) {
                                });
                        }
 
                        if ( e.content.indexOf( '<!--nextpage-->' ) !== -1 ) {
+                               title = editor.editorManager.i18n.translate( 'Page break' );
+
                                e.content = e.content.replace( /<!--nextpage-->/g,
                                e.content = e.content.replace( /<!--nextpage-->/g,
-                                       '<img src="' + tinymce.Env.transparentSrc + '" class="wp-more-tag mce-wp-nextpage" ' +
-                                               'title="Page break" data-mce-resize="false" data-mce-placeholder="1" />' );
+                                       '<img src="' + tinymce.Env.transparentSrc + '" data-wp-more="nextpage" class="wp-more-tag mce-wp-nextpage" ' +
+                                               'title="' + title + '" data-mce-resize="false" data-mce-placeholder="1" />' );
                        }
                }
        });
                        }
                }
        });
@@ -100,16 +111,14 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
                        e.content = e.content.replace(/<img[^>]+>/g, function( image ) {
                                var match, moretext = '';
 
                        e.content = e.content.replace(/<img[^>]+>/g, function( image ) {
                                var match, moretext = '';
 
-                               if ( image.indexOf('wp-more-tag') !== -1 ) {
-                                       if ( image.indexOf('mce-wp-more') !== -1 ) {
-                                               if ( match = image.match( /data-wp-more="([^"]+)"/ ) ) {
-                                                       moretext = match[1];
-                                               }
-
-                                               image = '<!--more' + moretext + '-->';
-                                       } else if ( image.indexOf('mce-wp-nextpage') !== -1 ) {
-                                               image = '<!--nextpage-->';
+                               if ( image.indexOf( 'data-wp-more="more"' ) !== -1 ) {
+                                       if ( match = image.match( /data-wp-more-text="([^"]+)"/ ) ) {
+                                               moretext = match[1];
                                        }
                                        }
+
+                                       image = '<!--more' + moretext + '-->';
+                               } else if ( image.indexOf( 'data-wp-more="nextpage"' ) !== -1 ) {
+                                       image = '<!--nextpage-->';
                                }
 
                                return image;
                                }
 
                                return image;
@@ -118,16 +127,11 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
        });
 
        // Display the tag name instead of img in element path
        });
 
        // Display the tag name instead of img in element path
-       editor.on( 'ResolveName', function( e ) {
-               var dom = editor.dom,
-                       target = e.target;
-
-               if ( target.nodeName === 'IMG' && dom.hasClass( target, 'wp-more-tag' ) ) {
-                       if ( dom.hasClass( target, 'mce-wp-more' ) ) {
-                               e.name = 'more';
-                       } else if ( dom.hasClass( target, 'mce-wp-nextpage' ) ) {
-                               e.name = 'nextpage';
-                       }
+       editor.on( 'ResolveName', function( event ) {
+               var attr;
+
+               if ( event.target.nodeName === 'IMG' && ( attr = editor.dom.getAttrib( event.target, 'data-wp-more' ) ) ) {
+                       event.name = attr;
                }
        });
 
                }
        });
 
@@ -140,9 +144,10 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
 
                tag = tag || 'more';
                classname += ' mce-wp-' + tag;
 
                tag = tag || 'more';
                classname += ' mce-wp-' + tag;
-               title = tag === 'more' ? 'More...' : 'Next Page';
+               title = tag === 'more' ? 'Read more...' : 'Next page';
+               title = editor.editorManager.i18n.translate( title );
                html = '<img src="' + tinymce.Env.transparentSrc + '" title="' + title + '" class="' + classname + '" ' +
                html = '<img src="' + tinymce.Env.transparentSrc + '" title="' + title + '" class="' + classname + '" ' +
-                       'data-mce-resize="false" data-mce-placeholder="1" />';
+                       'data-wp-more="' + tag + '" data-mce-resize="false" data-mce-placeholder="1" />';
 
                // Most common case
                if ( node.nodeName === 'BODY' || ( node.nodeName === 'P' && node.parentNode.nodeName === 'BODY' ) ) {
 
                // Most common case
                if ( node.nodeName === 'BODY' || ( node.nodeName === 'P' && node.parentNode.nodeName === 'BODY' ) ) {
@@ -277,6 +282,10 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
                        doc = editor.getDoc(),
                        dom = editor.dom;
 
                        doc = editor.getDoc(),
                        dom = editor.dom;
 
+               if ( tinymce.Env.iOS ) {
+                       dom.addClass( doc.documentElement, 'ios' );
+               }
+
                if ( editor.getParam( 'directionality' ) === 'rtl' ) {
                        bodyClass.push('rtl');
                        dom.setAttrib( doc.documentElement, 'dir', 'rtl' );
                if ( editor.getParam( 'directionality' ) === 'rtl' ) {
                        bodyClass.push('rtl');
                        dom.setAttrib( doc.documentElement, 'dir', 'rtl' );
@@ -290,6 +299,8 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
                        } else if ( env.ie < 8 ) {
                                bodyClass.push('ie7');
                        }
                        } else if ( env.ie < 8 ) {
                                bodyClass.push('ie7');
                        }
+               } else if ( env.webkit ) {
+                       bodyClass.push('webkit');
                }
 
                bodyClass.push('wp-editor');
                }
 
                bodyClass.push('wp-editor');
@@ -321,6 +332,28 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
                                }
                        });
                }
                                }
                        });
                }
+
+               if ( editor.getParam( 'wp_paste_filters', true ) ) {
+                       if ( ! tinymce.Env.webkit ) {
+                               // In WebKit handled by removeWebKitStyles()
+                               editor.on( 'PastePreProcess', function( event ) {
+                                       // Remove all inline styles
+                                       event.content = event.content.replace( /(<[^>]+) style="[^"]*"([^>]*>)/gi, '$1$2' );
+
+                                       // Put back the internal styles
+                                       event.content = event.content.replace(/(<[^>]+) data-mce-style=([^>]+>)/gi, '$1 style=$2' );
+                               });
+                       }
+
+                       editor.on( 'PastePostProcess', function( event ) {
+                               // Remove empty paragraphs
+                               tinymce.each( dom.select( 'p', event.node ), function( node ) {
+                                       if ( dom.isEmpty( node ) ) {
+                                               dom.remove( node );
+                                       }
+                               });
+                       });
+               }
        });
 
        // Word count
        });
 
        // Word count
@@ -342,22 +375,33 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
 
        editor.on( 'SaveContent', function( e ) {
                // If editor is hidden, we just want the textarea's value to be saved
 
        editor.on( 'SaveContent', function( e ) {
                // If editor is hidden, we just want the textarea's value to be saved
-               if ( editor.isHidden() ) {
+               if ( ! editor.inline && editor.isHidden() ) {
                        e.content = e.element.value;
                        return;
                }
 
                // Keep empty paragraphs :(
                        e.content = e.element.value;
                        return;
                }
 
                // Keep empty paragraphs :(
-               e.content = e.content.replace( /<p>(<br ?\/?>|\u00a0|\uFEFF)?<\/p>/g, '<p>&nbsp;</p>' );
+               e.content = e.content.replace( /<p>(?:<br ?\/?>|\u00a0|\uFEFF| )*<\/p>/g, '<p>&nbsp;</p>' );
 
                if ( editor.getParam( 'wpautop', true ) && typeof window.switchEditors !== 'undefined' ) {
                        e.content = window.switchEditors.pre_wpautop( e.content );
                }
        });
 
 
                if ( editor.getParam( 'wpautop', true ) && typeof window.switchEditors !== 'undefined' ) {
                        e.content = window.switchEditors.pre_wpautop( e.content );
                }
        });
 
+       // Remove spaces from empty paragraphs.
+       editor.on( 'BeforeSetContent', function( event ) {
+               if ( event.content ) {
+                       event.content = event.content.replace( /<p>(?:&nbsp;|\u00a0|\uFEFF| )+<\/p>/gi, '<p></p>' );
+               }
+       });
+
        editor.on( 'preInit', function() {
                // Don't replace <i> with <em> and <b> with <strong> and don't remove them when empty
                editor.schema.addValidElements( '@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b' );
        editor.on( 'preInit', function() {
                // Don't replace <i> with <em> and <b> with <strong> and don't remove them when empty
                editor.schema.addValidElements( '@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b' );
+
+               if ( tinymce.Env.iOS ) {
+                       editor.settings.height = 300;
+               }
        });
 
        // Add custom shortcuts
        });
 
        // Add custom shortcuts
index c391dcc2b460e1645be7a326a2db86ed61e70ebc..55b3eb6e17a9c1ea33b76908dd4e3317b86f8696 100644 (file)
@@ -1 +1 @@
-tinymce.ui.FloatPanel.zIndex=100100,tinymce.PluginManager.add("wordpress",function(a){function b(b){var c,d,e,f=0;d="hide"===b,a.theme.panel&&(e=a.theme.panel.find(".toolbar:not(.menubar)")),!e||e.length<2||"hide"===b&&!e[1].visible()||(!b&&e[1].visible()&&(b="hide"),tinymce.each(e,function(a,c){c>0&&("hide"===b?(a.hide(),f+=30):(a.show(),f-=30))}),f&&!d&&(c=a.getContentAreaContainer().firstChild,j.setStyle(c,"height",c.clientHeight+f),"hide"===b?(setUserSetting("hidetb","0"),g&&g.active(!1)):(setUserSetting("hidetb","1"),g&&g.active(!0))))}function c(a){return a.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(a,b){return'<img width="300" height="200" src="'+tinymce.Env.transparentSrc+'" class="wp-oembed" alt="'+b+'" title="'+b+'" data-mce-resize="false" data-mce-placeholder="1" />'})}function d(a){return a.replace(/<img[^>]+>/g,function(a){if(-1!==a.indexOf('class="wp-oembed')){var b=a.match(/alt="([^\"]+)"/);b[1]&&(a="[embed]"+b[1]+"[/embed]")}return a})}function e(b,c){var d,e,f,g,h;f=a.dom.getViewPort(a.getWin()),d=j.getPos(a.getContentAreaContainer()),e=a.dom.getPos(b),g=Math.max(e.x-f.x,0)+d.x,h=Math.max(e.y-f.y,0)+d.y,j.setStyles(c,{top:h+5+"px",left:g+5+"px",display:"block"})}function f(){j.hide(j.select("#wp_editbtns, #wp_gallerybtns"))}var g,h,i,j=tinymce.DOM,k=0;return a.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){g=this,g.active("1"===getUserSetting("hidetb")?!0:!1)}}),a.on("PostRender",function(){a.getParam("wordpress_adv_hidden",!0)&&"0"===getUserSetting("hidetb","0")&&b("hide")}),a.addCommand("WP_Adv",function(){b()}),a.on("focus",function(){window.wpActiveEditor=a.id}),a.on("BeforeSetContent",function(a){a.content&&(-1!==a.content.indexOf("<!--more")&&(a.content=a.content.replace(/<!--more(.*?)-->/g,function(a,b){return'<img src="'+tinymce.Env.transparentSrc+'" data-wp-more="'+b+'" class="wp-more-tag mce-wp-more" title="Read More..." data-mce-resize="false" data-mce-placeholder="1" />'})),-1!==a.content.indexOf("<!--nextpage-->")&&(a.content=a.content.replace(/<!--nextpage-->/g,'<img src="'+tinymce.Env.transparentSrc+'" class="wp-more-tag mce-wp-nextpage" title="Page break" data-mce-resize="false" data-mce-placeholder="1" />')))}),a.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/<img[^>]+>/g,function(a){var b,c="";return-1!==a.indexOf("wp-more-tag")&&(-1!==a.indexOf("mce-wp-more")?((b=a.match(/data-wp-more="([^"]+)"/))&&(c=b[1]),a="<!--more"+c+"-->"):-1!==a.indexOf("mce-wp-nextpage")&&(a="<!--nextpage-->")),a}))}),a.on("ResolveName",function(b){var c=a.dom,d=b.target;"IMG"===d.nodeName&&c.hasClass(d,"wp-more-tag")&&(c.hasClass(d,"mce-wp-more")?b.name="more":c.hasClass(d,"mce-wp-nextpage")&&(b.name="nextpage"))}),a.addCommand("WP_More",function(b){var c,d,e,f="wp-more-tag",g=a.dom,h=a.selection.getNode();return b=b||"more",f+=" mce-wp-"+b,e="more"===b?"More...":"Next Page",d='<img src="'+tinymce.Env.transparentSrc+'" title="'+e+'" class="'+f+'" data-mce-resize="false" data-mce-placeholder="1" />',"BODY"===h.nodeName||"P"===h.nodeName&&"BODY"===h.parentNode.nodeName?void a.insertContent(d):(c=g.getParent(h,function(a){return a.parentNode&&"BODY"===a.parentNode.nodeName?!0:!1},a.getBody()),void(c&&("P"===c.nodeName?c.appendChild(g.create("p",null,d).firstChild):g.insertAfter(g.create("p",null,d),c),a.nodeChanged())))}),a.addCommand("WP_Code",function(){a.formatter.toggle("code")}),a.addCommand("WP_Page",function(){a.execCommand("WP_More","nextpage")}),a.addCommand("WP_Help",function(){a.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",title:"Keyboard Shortcuts",width:450,height:420,inline:1,classes:"wp-help"})}),a.addCommand("WP_Medialib",function(){"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(a.id)}),a.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){a.execCommand("WP_More","more")}}),a.addButton("wp_page",{tooltip:"Page break",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.addButton("wp_help",{tooltip:"Keyboard Shortcuts",cmd:"WP_Help"}),a.addButton("wp_code",{tooltip:"Code",cmd:"WP_Code",stateSelector:"code"}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&a.addMenuItem("add_media",{text:"Add Media",icon:"wp-media-library",context:"insert",cmd:"WP_Medialib"}),a.addMenuItem("wp_more",{text:"Insert Read More tag",icon:"wp_more",context:"insert",onclick:function(){a.execCommand("WP_More","more")}}),a.addMenuItem("wp_page",{text:"Page break",icon:"wp_page",context:"insert",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.on("BeforeExecCommand",function(b){!tinymce.Env.webkit||"InsertUnorderedList"!==b.command&&"InsertOrderedList"!==b.command||(i||(i=a.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),a.getDoc().head.appendChild(i))}),a.on("ExecCommand",function(b){tinymce.Env.webkit&&i&&("InsertUnorderedList"===b.command||"InsertOrderedList"===b.command)&&a.dom.remove(i)}),a.on("init",function(){var b=tinymce.Env,c=["mceContentBody"],d=a.getDoc(),e=a.dom;"rtl"===a.getParam("directionality")&&(c.push("rtl"),e.setAttrib(d.documentElement,"dir","rtl")),b.ie&&(9===parseInt(b.ie,10)?c.push("ie9"):8===parseInt(b.ie,10)?c.push("ie8"):b.ie<8&&c.push("ie7")),c.push("wp-editor"),tinymce.each(c,function(a){a&&e.addClass(d.body,a)}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>"),a.content=a.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,"</$1>"))}),"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-init",[a]),window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&e.bind(d,"dragstart dragend dragover drop",function(a){"undefined"!=typeof window.jQuery&&window.jQuery(document).trigger(new window.jQuery.Event(a))})}),"undefined"!=typeof window.jQuery&&a.on("keyup",function(b){var c=b.keyCode||b.charCode;c!==k&&((13===c||8===k||46===k)&&window.jQuery(document).triggerHandler("wpcountwords",[a.getContent({format:"raw"})]),k=c)}),a.on("SaveContent",function(b){return a.isHidden()?void(b.content=b.element.value):(b.content=b.content.replace(/<p>(<br ?\/?>|\u00a0|\uFEFF)?<\/p>/g,"<p>&nbsp;</p>"),void(a.getParam("wpautop",!0)&&"undefined"!=typeof window.switchEditors&&(b.content=window.switchEditors.pre_wpautop(b.content))))}),a.on("preInit",function(){a.schema.addValidElements("@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b")}),h="alt+shift",a.addShortcut(h+"+c","","JustifyCenter"),a.addShortcut(h+"+r","","JustifyRight"),a.addShortcut(h+"+l","","JustifyLeft"),a.addShortcut(h+"+j","","JustifyFull"),a.addShortcut(h+"+q","","mceBlockQuote"),a.addShortcut(h+"+u","","InsertUnorderedList"),a.addShortcut(h+"+o","","InsertOrderedList"),a.addShortcut(h+"+n","","mceSpellCheck"),a.addShortcut(h+"+s","","unlink"),a.addShortcut(h+"+m","","WP_Medialib"),a.addShortcut(h+"+z","","WP_Adv"),a.addShortcut(h+"+t","","WP_More"),a.addShortcut(h+"+d","","Strikethrough"),a.addShortcut(h+"+h","","WP_Help"),a.addShortcut(h+"+p","","WP_Page"),a.addShortcut(h+"+x","","WP_Code"),a.addShortcut("ctrl+s","",function(){"undefined"!=typeof wp&&wp.autosave&&wp.autosave.server.triggerSave()}),a.on("init",function(){a.dom.bind(a.getWin(),"scroll",function(){f()}),a.dom.bind(a.getBody(),"dragstart",function(){f()})}),a.on("BeforeExecCommand",function(){f()}),a.on("SaveContent",function(){f()}),a.on("MouseDown",function(a){"IMG"!==a.target.nodeName&&f()}),a.on("keydown",function(a){(a.which===tinymce.util.VK.DELETE||a.which===tinymce.util.VK.BACKSPACE)&&f()}),{_showButtons:e,_hideButtons:f,_setEmbed:c,_getEmbed:d}});
\ No newline at end of file
+tinymce.ui.FloatPanel.zIndex=100100,tinymce.PluginManager.add("wordpress",function(a){function b(b){var c,d,e,f=0;d="hide"===b,a.theme.panel&&(e=a.theme.panel.find(".toolbar:not(.menubar)")),!e||e.length<2||"hide"===b&&!e[1].visible()||(!b&&e[1].visible()&&(b="hide"),tinymce.each(e,function(a,c){c>0&&("hide"===b?(a.hide(),f+=30):(a.show(),f-=30))}),f&&!d&&(tinymce.Env.iOS||(c=a.getContentAreaContainer().firstChild,j.setStyle(c,"height",c.clientHeight+f)),"hide"===b?(setUserSetting("hidetb","0"),g&&g.active(!1)):(setUserSetting("hidetb","1"),g&&g.active(!0))),a.fire("wp-toolbar-toggle"))}function c(a){return a.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(a,b){return'<img width="300" height="200" src="'+tinymce.Env.transparentSrc+'" class="wp-oembed" alt="'+b+'" title="'+b+'" data-mce-resize="false" data-mce-placeholder="1" />'})}function d(a){return a.replace(/<img[^>]+>/g,function(a){if(-1!==a.indexOf('class="wp-oembed')){var b=a.match(/alt="([^\"]+)"/);b[1]&&(a="[embed]"+b[1]+"[/embed]")}return a})}function e(b,c){var d,e,f,g,h;f=a.dom.getViewPort(a.getWin()),d=j.getPos(a.getContentAreaContainer()),e=a.dom.getPos(b),g=Math.max(e.x-f.x,0)+d.x,h=Math.max(e.y-f.y,0)+d.y,j.setStyles(c,{top:h+5+"px",left:g+5+"px",display:"block"})}function f(){j.hide(j.select("#wp_editbtns, #wp_gallerybtns"))}var g,h,i,j=tinymce.DOM,k=0;return a.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){g=this,g.active("1"===getUserSetting("hidetb")?!0:!1)}}),a.on("PostRender",function(){a.getParam("wordpress_adv_hidden",!0)&&"0"===getUserSetting("hidetb","0")&&b("hide")}),a.addCommand("WP_Adv",function(){b()}),a.on("focus",function(){window.wpActiveEditor=a.id}),a.on("BeforeSetContent",function(b){var c;b.content&&(-1!==b.content.indexOf("<!--more")&&(c=a.editorManager.i18n.translate("Read more..."),b.content=b.content.replace(/<!--more(.*?)-->/g,function(a,b){return'<img src="'+tinymce.Env.transparentSrc+'" data-wp-more="more" data-wp-more-text="'+b+'" class="wp-more-tag mce-wp-more" title="'+c+'" data-mce-resize="false" data-mce-placeholder="1" />'})),-1!==b.content.indexOf("<!--nextpage-->")&&(c=a.editorManager.i18n.translate("Page break"),b.content=b.content.replace(/<!--nextpage-->/g,'<img src="'+tinymce.Env.transparentSrc+'" data-wp-more="nextpage" class="wp-more-tag mce-wp-nextpage" title="'+c+'" data-mce-resize="false" data-mce-placeholder="1" />')))}),a.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/<img[^>]+>/g,function(a){var b,c="";return-1!==a.indexOf('data-wp-more="more"')?((b=a.match(/data-wp-more-text="([^"]+)"/))&&(c=b[1]),a="<!--more"+c+"-->"):-1!==a.indexOf('data-wp-more="nextpage"')&&(a="<!--nextpage-->"),a}))}),a.on("ResolveName",function(b){var c;"IMG"===b.target.nodeName&&(c=a.dom.getAttrib(b.target,"data-wp-more"))&&(b.name=c)}),a.addCommand("WP_More",function(b){var c,d,e,f="wp-more-tag",g=a.dom,h=a.selection.getNode();return b=b||"more",f+=" mce-wp-"+b,e="more"===b?"Read more...":"Next page",e=a.editorManager.i18n.translate(e),d='<img src="'+tinymce.Env.transparentSrc+'" title="'+e+'" class="'+f+'" data-wp-more="'+b+'" data-mce-resize="false" data-mce-placeholder="1" />',"BODY"===h.nodeName||"P"===h.nodeName&&"BODY"===h.parentNode.nodeName?void a.insertContent(d):(c=g.getParent(h,function(a){return a.parentNode&&"BODY"===a.parentNode.nodeName?!0:!1},a.getBody()),void(c&&("P"===c.nodeName?c.appendChild(g.create("p",null,d).firstChild):g.insertAfter(g.create("p",null,d),c),a.nodeChanged())))}),a.addCommand("WP_Code",function(){a.formatter.toggle("code")}),a.addCommand("WP_Page",function(){a.execCommand("WP_More","nextpage")}),a.addCommand("WP_Help",function(){a.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",title:"Keyboard Shortcuts",width:450,height:420,inline:1,classes:"wp-help"})}),a.addCommand("WP_Medialib",function(){"undefined"!=typeof wp&&wp.media&&wp.media.editor&&wp.media.editor.open(a.id)}),a.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){a.execCommand("WP_More","more")}}),a.addButton("wp_page",{tooltip:"Page break",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.addButton("wp_help",{tooltip:"Keyboard Shortcuts",cmd:"WP_Help"}),a.addButton("wp_code",{tooltip:"Code",cmd:"WP_Code",stateSelector:"code"}),"undefined"!=typeof wp&&wp.media&&wp.media.editor&&a.addMenuItem("add_media",{text:"Add Media",icon:"wp-media-library",context:"insert",cmd:"WP_Medialib"}),a.addMenuItem("wp_more",{text:"Insert Read More tag",icon:"wp_more",context:"insert",onclick:function(){a.execCommand("WP_More","more")}}),a.addMenuItem("wp_page",{text:"Page break",icon:"wp_page",context:"insert",onclick:function(){a.execCommand("WP_More","nextpage")}}),a.on("BeforeExecCommand",function(b){!tinymce.Env.webkit||"InsertUnorderedList"!==b.command&&"InsertOrderedList"!==b.command||(i||(i=a.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),a.getDoc().head.appendChild(i))}),a.on("ExecCommand",function(b){tinymce.Env.webkit&&i&&("InsertUnorderedList"===b.command||"InsertOrderedList"===b.command)&&a.dom.remove(i)}),a.on("init",function(){var b=tinymce.Env,c=["mceContentBody"],d=a.getDoc(),e=a.dom;tinymce.Env.iOS&&e.addClass(d.documentElement,"ios"),"rtl"===a.getParam("directionality")&&(c.push("rtl"),e.setAttrib(d.documentElement,"dir","rtl")),b.ie?9===parseInt(b.ie,10)?c.push("ie9"):8===parseInt(b.ie,10)?c.push("ie8"):b.ie<8&&c.push("ie7"):b.webkit&&c.push("webkit"),c.push("wp-editor"),tinymce.each(c,function(a){a&&e.addClass(d.body,a)}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>"),a.content=a.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,"</$1>"))}),"undefined"!=typeof window.jQuery&&window.jQuery(document).triggerHandler("tinymce-editor-init",[a]),window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&e.bind(d,"dragstart dragend dragover drop",function(a){"undefined"!=typeof window.jQuery&&window.jQuery(document).trigger(new window.jQuery.Event(a))}),a.getParam("wp_paste_filters",!0)&&(tinymce.Env.webkit||a.on("PastePreProcess",function(a){a.content=a.content.replace(/(<[^>]+) style="[^"]*"([^>]*>)/gi,"$1$2"),a.content=a.content.replace(/(<[^>]+) data-mce-style=([^>]+>)/gi,"$1 style=$2")}),a.on("PastePostProcess",function(a){tinymce.each(e.select("p",a.node),function(a){e.isEmpty(a)&&e.remove(a)})}))}),"undefined"!=typeof window.jQuery&&a.on("keyup",function(b){var c=b.keyCode||b.charCode;c!==k&&((13===c||8===k||46===k)&&window.jQuery(document).triggerHandler("wpcountwords",[a.getContent({format:"raw"})]),k=c)}),a.on("SaveContent",function(b){return!a.inline&&a.isHidden()?void(b.content=b.element.value):(b.content=b.content.replace(/<p>(?:<br ?\/?>|\u00a0|\uFEFF| )*<\/p>/g,"<p>&nbsp;</p>"),void(a.getParam("wpautop",!0)&&"undefined"!=typeof window.switchEditors&&(b.content=window.switchEditors.pre_wpautop(b.content))))}),a.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/<p>(?:&nbsp;|\u00a0|\uFEFF| )+<\/p>/gi,"<p></p>"))}),a.on("preInit",function(){a.schema.addValidElements("@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b"),tinymce.Env.iOS&&(a.settings.height=300)}),h="alt+shift",a.addShortcut(h+"+c","","JustifyCenter"),a.addShortcut(h+"+r","","JustifyRight"),a.addShortcut(h+"+l","","JustifyLeft"),a.addShortcut(h+"+j","","JustifyFull"),a.addShortcut(h+"+q","","mceBlockQuote"),a.addShortcut(h+"+u","","InsertUnorderedList"),a.addShortcut(h+"+o","","InsertOrderedList"),a.addShortcut(h+"+n","","mceSpellCheck"),a.addShortcut(h+"+s","","unlink"),a.addShortcut(h+"+m","","WP_Medialib"),a.addShortcut(h+"+z","","WP_Adv"),a.addShortcut(h+"+t","","WP_More"),a.addShortcut(h+"+d","","Strikethrough"),a.addShortcut(h+"+h","","WP_Help"),a.addShortcut(h+"+p","","WP_Page"),a.addShortcut(h+"+x","","WP_Code"),a.addShortcut("ctrl+s","",function(){"undefined"!=typeof wp&&wp.autosave&&wp.autosave.server.triggerSave()}),a.on("init",function(){a.dom.bind(a.getWin(),"scroll",function(){f()}),a.dom.bind(a.getBody(),"dragstart",function(){f()})}),a.on("BeforeExecCommand",function(){f()}),a.on("SaveContent",function(){f()}),a.on("MouseDown",function(a){"IMG"!==a.target.nodeName&&f()}),a.on("keydown",function(a){(a.which===tinymce.util.VK.DELETE||a.which===tinymce.util.VK.BACKSPACE)&&f()}),{_showButtons:e,_hideButtons:f,_setEmbed:c,_getEmbed:d}});
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js b/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js
new file mode 100644 (file)
index 0000000..dc1f524
--- /dev/null
@@ -0,0 +1,207 @@
+/**
+ * plugin.js
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+// Forked for WordPress so it can be turned on/off after loading.
+
+/*global tinymce:true */
+/*eslint no-nested-ternary:0 */
+
+/**
+ * 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.PluginManager.add( 'wpautoresize', function( editor ) {
+       var settings = editor.settings,
+               oldSize = 300,
+               isActive = false;
+
+       function isFullscreen() {
+               return editor.plugins.fullscreen && editor.plugins.fullscreen.isFullscreen();
+       }
+
+       if ( editor.settings.inline ) {
+               return;
+       }
+
+       function getInt( n ) {
+               return parseInt( n, 10 ) || 0;
+       }
+
+       /**
+        * This method gets executed each time the editor needs to resize.
+        */
+       function resize( e ) {
+               var deltaSize, doc, body, docElm, DOM = tinymce.DOM, resizeHeight, myHeight,
+                       marginTop, marginBottom, paddingTop, paddingBottom, borderTop, borderBottom;
+
+               if ( ! isActive ) {
+                       return;
+               }
+
+               doc = editor.getDoc();
+               if ( ! doc ) {
+                       return;
+               }
+
+               e = e || {};
+               body = doc.body;
+               docElm = doc.documentElement;
+               resizeHeight = settings.autoresize_min_height;
+
+               if ( ! body || ( e && e.type === 'setcontent' && e.initial ) || isFullscreen() ) {
+                       if ( body && docElm ) {
+                               body.style.overflowY = 'auto';
+                               docElm.style.overflowY = 'auto'; // Old IE
+                       }
+
+                       return;
+               }
+
+               // Calculate outer height of the body element using CSS styles
+               marginTop = editor.dom.getStyle( body, 'margin-top', true );
+               marginBottom = editor.dom.getStyle( body, 'margin-bottom', true );
+               paddingTop = editor.dom.getStyle( body, 'padding-top', true );
+               paddingBottom = editor.dom.getStyle( body, 'padding-bottom', true );
+               borderTop = editor.dom.getStyle( body, 'border-top-width', true );
+               borderBottom = editor.dom.getStyle( body, 'border-bottom-width', true );
+               myHeight = body.offsetHeight + getInt( marginTop ) + getInt( marginBottom ) +
+                       getInt( paddingTop ) + getInt( paddingBottom ) +
+                       getInt( borderTop ) + getInt( borderBottom );
+
+               // IE < 11, other?
+               if ( myHeight && myHeight < docElm.offsetHeight ) {
+                       myHeight = docElm.offsetHeight;
+               }
+
+               // Make sure we have a valid height
+               if ( isNaN( myHeight ) || myHeight <= 0 ) {
+                       // Get height differently depending on the browser used
+                       myHeight = tinymce.Env.ie ? body.scrollHeight : ( tinymce.Env.webkit && body.clientHeight === 0 ? 0 : body.offsetHeight );
+               }
+
+               // Don't make it smaller than the minimum height
+               if ( myHeight > settings.autoresize_min_height ) {
+                       resizeHeight = myHeight;
+               }
+
+               // If a maximum height has been defined don't exceed this height
+               if ( settings.autoresize_max_height && myHeight > settings.autoresize_max_height ) {
+                       resizeHeight = settings.autoresize_max_height;
+                       body.style.overflowY = 'auto';
+                       docElm.style.overflowY = 'auto'; // Old IE
+               } else {
+                       body.style.overflowY = 'hidden';
+                       docElm.style.overflowY = 'hidden'; // Old IE
+                       body.scrollTop = 0;
+               }
+
+               // Resize content element
+               if (resizeHeight !== oldSize) {
+                       deltaSize = resizeHeight - oldSize;
+                       DOM.setStyle( editor.iframeElement, 'height', resizeHeight + 'px' );
+                       oldSize = resizeHeight;
+
+                       // WebKit doesn't decrease the size of the body element until the iframe gets resized
+                       // So we need to continue to resize the iframe down until the size gets fixed
+                       if ( tinymce.isWebKit && deltaSize < 0 ) {
+                               resize( e );
+                       }
+
+                       editor.fire( 'wp-autoresize', { height: resizeHeight } );
+               }
+       }
+
+       /**
+        * Calls the resize x times in 100ms intervals. We can't wait for load events since
+        * the CSS files might load async.
+        */
+       function wait( times, interval, callback ) {
+               setTimeout( function() {
+                       resize();
+
+                       if ( times-- ) {
+                               wait( times, interval, callback );
+                       } else if ( callback ) {
+                               callback();
+                       }
+               }, interval );
+       }
+
+       // Define minimum height
+       settings.autoresize_min_height = parseInt(editor.getParam( 'autoresize_min_height', editor.getElement().offsetHeight), 10 );
+
+       // Define maximum height
+       settings.autoresize_max_height = parseInt(editor.getParam( 'autoresize_max_height', 0), 10 );
+
+       function on() {
+               if ( ! editor.dom.hasClass( editor.getBody(), 'wp-autoresize' ) ) {
+                       isActive = true;
+                       editor.dom.addClass( editor.getBody(), 'wp-autoresize' );
+                       // Add appropriate listeners for resizing the content area
+                       editor.on( 'nodechange setcontent keyup FullscreenStateChanged', resize );
+                       resize();
+               }
+       }
+
+       function off() {
+               var doc;
+
+               // Don't turn off if the setting is 'on'
+               if ( ! settings.wp_autoresize_on ) {
+                       isActive = false;
+                       doc = editor.getDoc();
+                       editor.dom.removeClass( editor.getBody(), 'wp-autoresize' );
+                       editor.off( 'nodechange setcontent keyup FullscreenStateChanged', resize );
+                       doc.body.style.overflowY = 'auto';
+                       doc.documentElement.style.overflowY = 'auto'; // Old IE
+                       oldSize = 0;
+               }
+       }
+
+       if ( settings.wp_autoresize_on ) {
+               // Turn resizing on when the editor loads
+               isActive = true;
+
+               editor.on( 'init', function() {
+                       editor.dom.addClass( editor.getBody(), 'wp-autoresize' );
+               });
+
+               editor.on( 'nodechange keyup FullscreenStateChanged', resize );
+
+               editor.on( 'setcontent', function() {
+                       wait( 3, 100 );
+               });
+
+               if ( editor.getParam( 'autoresize_on_init', true ) ) {
+                       editor.on( 'init', function() {
+                               // Hit it 10 times in 200 ms intervals
+                               wait( 10, 200, function() {
+                                       // Hit it 5 times in 1 sec intervals
+                                       wait( 5, 1000 );
+                               });
+                       });
+               }
+       }
+
+       // Reset the stored size
+       editor.on( 'show', function() {
+               oldSize = 0;
+       });
+
+       // Register the command
+       editor.addCommand( 'wpAutoResize', resize );
+
+       // On/off
+       editor.addCommand( 'wpAutoResizeOn', on );
+       editor.addCommand( 'wpAutoResizeOff', off );
+});
diff --git a/wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js b/wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js
new file mode 100644 (file)
index 0000000..14296b2
--- /dev/null
@@ -0,0 +1 @@
+tinymce.PluginManager.add("wpautoresize",function(a){function b(){return a.plugins.fullscreen&&a.plugins.fullscreen.isFullscreen()}function c(a){return parseInt(a,10)||0}function d(e){var f,g,k,l,m,n,o,p,q,r,s,t,u=tinymce.DOM;if(j&&(g=a.getDoc())){if(e=e||{},k=g.body,l=g.documentElement,m=h.autoresize_min_height,!k||e&&"setcontent"===e.type&&e.initial||b())return void(k&&l&&(k.style.overflowY="auto",l.style.overflowY="auto"));o=a.dom.getStyle(k,"margin-top",!0),p=a.dom.getStyle(k,"margin-bottom",!0),q=a.dom.getStyle(k,"padding-top",!0),r=a.dom.getStyle(k,"padding-bottom",!0),s=a.dom.getStyle(k,"border-top-width",!0),t=a.dom.getStyle(k,"border-bottom-width",!0),n=k.offsetHeight+c(o)+c(p)+c(q)+c(r)+c(s)+c(t),n&&n<l.offsetHeight&&(n=l.offsetHeight),(isNaN(n)||0>=n)&&(n=tinymce.Env.ie?k.scrollHeight:tinymce.Env.webkit&&0===k.clientHeight?0:k.offsetHeight),n>h.autoresize_min_height&&(m=n),h.autoresize_max_height&&n>h.autoresize_max_height?(m=h.autoresize_max_height,k.style.overflowY="auto",l.style.overflowY="auto"):(k.style.overflowY="hidden",l.style.overflowY="hidden",k.scrollTop=0),m!==i&&(f=m-i,u.setStyle(a.iframeElement,"height",m+"px"),i=m,tinymce.isWebKit&&0>f&&d(e),a.fire("wp-autoresize",{height:m}))}}function e(a,b,c){setTimeout(function(){d(),a--?e(a,b,c):c&&c()},b)}function f(){a.dom.hasClass(a.getBody(),"wp-autoresize")||(j=!0,a.dom.addClass(a.getBody(),"wp-autoresize"),a.on("nodechange setcontent keyup FullscreenStateChanged",d),d())}function g(){var b;h.wp_autoresize_on||(j=!1,b=a.getDoc(),a.dom.removeClass(a.getBody(),"wp-autoresize"),a.off("nodechange setcontent keyup FullscreenStateChanged",d),b.body.style.overflowY="auto",b.documentElement.style.overflowY="auto",i=0)}var h=a.settings,i=300,j=!1;a.settings.inline||(h.autoresize_min_height=parseInt(a.getParam("autoresize_min_height",a.getElement().offsetHeight),10),h.autoresize_max_height=parseInt(a.getParam("autoresize_max_height",0),10),h.wp_autoresize_on&&(j=!0,a.on("init",function(){a.dom.addClass(a.getBody(),"wp-autoresize")}),a.on("nodechange keyup FullscreenStateChanged",d),a.on("setcontent",function(){e(3,100)}),a.getParam("autoresize_on_init",!0)&&a.on("init",function(){e(10,200,function(){e(5,1e3)})})),a.on("show",function(){i=0}),a.addCommand("wpAutoResize",d),a.addCommand("wpAutoResizeOn",f),a.addCommand("wpAutoResizeOff",g))});
\ No newline at end of file
index 8894cd8f573911497b787a3726066f3fe64fcfd5..6725535a3477bbf141546bc8b2842da2f5cf5f39 100644 (file)
@@ -1,10 +1,11 @@
 /* global tinymce */
 tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 /* global tinymce */
 tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
-       var toolbarActive = false;
+       var toolbarActive = false,
+               editingImage = false;
 
        function parseShortcode( content ) {
                return content.replace( /(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g, function( a, b, c ) {
 
        function parseShortcode( content ) {
                return content.replace( /(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g, function( a, b, c ) {
-                       var id, cls, w, cap, img, width,
+                       var id, align, classes, caption, img, width,
                                trim = tinymce.trim;
 
                        id = b.match( /id=['"]([^'"]*)['"] ?/ );
                                trim = tinymce.trim;
 
                        id = b.match( /id=['"]([^'"]*)['"] ?/ );
@@ -12,50 +13,56 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                                b = b.replace( id[0], '' );
                        }
 
                                b = b.replace( id[0], '' );
                        }
 
-                       cls = b.match( /align=['"]([^'"]*)['"] ?/ );
-                       if ( cls ) {
-                               b = b.replace( cls[0], '' );
+                       align = b.match( /align=['"]([^'"]*)['"] ?/ );
+                       if ( align ) {
+                               b = b.replace( align[0], '' );
                        }
 
                        }
 
-                       w = b.match( /width=['"]([0-9]*)['"] ?/ );
-                       if ( w ) {
-                               b = b.replace( w[0], '' );
+                       classes = b.match( /class=['"]([^'"]*)['"] ?/ );
+                       if ( classes ) {
+                               b = b.replace( classes[0], '' );
+                       }
+
+                       width = b.match( /width=['"]([0-9]*)['"] ?/ );
+                       if ( width ) {
+                               b = b.replace( width[0], '' );
                        }
 
                        c = trim( c );
                        img = c.match( /((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i );
 
                        if ( img && img[2] ) {
                        }
 
                        c = trim( c );
                        img = c.match( /((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i );
 
                        if ( img && img[2] ) {
-                               cap = trim( img[2] );
+                               caption = trim( img[2] );
                                img = trim( img[1] );
                        } else {
                                // old captions shortcode style
                                img = trim( img[1] );
                        } else {
                                // old captions shortcode style
-                               cap = trim( b ).replace( /caption=['"]/, '' ).replace( /['"]$/, '' );
+                               caption = trim( b ).replace( /caption=['"]/, '' ).replace( /['"]$/, '' );
                                img = c;
                        }
 
                                img = c;
                        }
 
-                       id = ( id && id[1] ) ? id[1] : '';
-                       cls = ( cls && cls[1] ) ? cls[1] : 'alignnone';
+                       id = ( id && id[1] ) ? id[1].replace( /[<>&]+/g,  '' ) : '';
+                       align = ( align && align[1] ) ? align[1] : 'alignnone';
+                       classes = ( classes && classes[1] ) ? ' ' + classes[1].replace( /[<>&]+/g,  '' ) : '';
 
 
-                       if ( ! w && img ) {
-                               w = img.match( /width=['"]([0-9]*)['"]/ );
+                       if ( ! width && img ) {
+                               width = img.match( /width=['"]([0-9]*)['"]/ );
                        }
 
                        }
 
-                       if ( w && w[1] ) {
-                               w = w[1];
+                       if ( width && width[1] ) {
+                               width = width[1];
                        }
 
                        }
 
-                       if ( ! w || ! cap ) {
+                       if ( ! width || ! caption ) {
                                return c;
                        }
 
                                return c;
                        }
 
-                       width = parseInt( w, 10 );
+                       width = parseInt( width, 10 );
                        if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
                                width += 10;
                        }
 
                        if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
                                width += 10;
                        }
 
-                       return '<div class="mceTemp"><dl id="'+ id +'" class="wp-caption '+ cls +'" style="width: '+ width +'px">' +
-                               '<dt class="wp-caption-dt">'+ img +'</dt><dd class="wp-caption-dd">'+ cap +'</dd></dl></div>';
+                       return '<div class="mceTemp"><dl id="' + id + '" class="wp-caption ' + align + classes + '" style="width: ' + width + 'px">' +
+                               '<dt class="wp-caption-dt">'+ img +'</dt><dd class="wp-caption-dd">'+ caption +'</dd></dl></div>';
                });
        }
 
                });
        }
 
@@ -75,32 +82,38 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                                return '';
                        }
 
                                return '';
                        }
 
-                       out = b.replace( /<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>/gi, function( a, b, c, cap ) {
-                               var id, cls, w;
+                       out = b.replace( /<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>/gi, function( a, b, c, caption ) {
+                               var id, classes, align, width;
 
 
-                               w = c.match( /width="([0-9]*)"/ );
-                               w = ( w && w[1] ) ? w[1] : '';
+                               width = c.match( /width="([0-9]*)"/ );
+                               width = ( width && width[1] ) ? width[1] : '';
 
 
-                               if ( ! w || ! cap ) {
+                               if ( ! width || ! caption ) {
                                        return c;
                                }
 
                                id = b.match( /id="([^"]*)"/ );
                                id = ( id && id[1] ) ? id[1] : '';
 
                                        return c;
                                }
 
                                id = b.match( /id="([^"]*)"/ );
                                id = ( id && id[1] ) ? id[1] : '';
 
-                               cls = b.match( /class="([^"]*)"/ );
-                               cls = ( cls && cls[1] ) ? cls[1] : '';
-                               cls = cls.match( /align[a-z]+/ ) || 'alignnone';
+                               classes = b.match( /class="([^"]*)"/ );
+                               classes = ( classes && classes[1] ) ? classes[1] : '';
 
 
-                               cap = cap.replace( /\r\n|\r/g, '\n' ).replace( /<[a-zA-Z0-9]+( [^<>]+)?>/g, function( a ) {
+                               align = classes.match( /align[a-z]+/i ) || 'alignnone';
+                               classes = classes.replace( /wp-caption ?|align[a-z]+ ?/gi, '' );
+
+                               if ( classes ) {
+                                       classes = ' class="' + classes + '"';
+                               }
+
+                               caption = caption.replace( /\r\n|\r/g, '\n' ).replace( /<[a-zA-Z0-9]+( [^<>]+)?>/g, function( a ) {
                                        // no line breaks inside HTML tags
                                        return a.replace( /[\r\n\t]+/, ' ' );
                                });
 
                                // convert remaining line breaks to <br>
                                        // no line breaks inside HTML tags
                                        return a.replace( /[\r\n\t]+/, ' ' );
                                });
 
                                // convert remaining line breaks to <br>
-                               cap = cap.replace( /\s*\n\s*/g, '<br />' );
+                               caption = caption.replace( /\s*\n\s*/g, '<br />' );
 
 
-                               return '[caption id="'+ id +'" align="'+ cls +'" width="'+ w +'"]'+ c +' '+ cap +'[/caption]';
+                               return '[caption id="' + id + '" align="' + align + '" width="' + width + '"' + classes + ']' + c + ' ' + caption + '[/caption]';
                        });
 
                        if ( out.indexOf('[caption') !== 0 ) {
                        });
 
                        if ( out.indexOf('[caption') !== 0 ) {
@@ -115,6 +128,7 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 
        function extractImageData( imageNode ) {
                var classes, extraClasses, metadata, captionBlock, caption, link, width, height,
 
        function extractImageData( imageNode ) {
                var classes, extraClasses, metadata, captionBlock, caption, link, width, height,
+                       captionClassName = [],
                        dom = editor.dom,
                        isIntRegExp = /^\d+$/;
 
                        dom = editor.dom,
                        isIntRegExp = /^\d+$/;
 
@@ -180,9 +194,13 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                        tinymce.each( classes, function( name ) {
                                if ( /^align/.test( name ) ) {
                                        metadata.align = name.replace( 'align', '' );
                        tinymce.each( classes, function( name ) {
                                if ( /^align/.test( name ) ) {
                                        metadata.align = name.replace( 'align', '' );
+                               } else if ( name && name !== 'wp-caption' ) {
+                                       captionClassName.push( name );
                                }
                        } );
 
                                }
                        } );
 
+                       metadata.captionClassName = captionClassName.join( ' ' );
+
                        caption = dom.select( 'dd.wp-caption-dd', captionBlock );
                        if ( caption.length ) {
                                caption = caption[0];
                        caption = dom.select( 'dd.wp-caption-dd', captionBlock );
                        if ( caption.length ) {
                                caption = caption[0];
@@ -210,7 +228,7 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 
        function updateImage( imageNode, imageData ) {
                var classes, className, node, html, parent, wrap, linkNode,
 
        function updateImage( imageNode, imageData ) {
                var classes, className, node, html, parent, wrap, linkNode,
-                       captionNode, dd, dl, id, attrs, linkAttrs, width, height,
+                       captionNode, dd, dl, id, attrs, linkAttrs, width, height, align,
                        dom = editor.dom;
 
                classes = tinymce.explode( imageData.extraClasses, ' ' );
                        dom = editor.dom;
 
                classes = tinymce.explode( imageData.extraClasses, ' ' );
@@ -287,7 +305,12 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                if ( imageData.caption ) {
 
                        id = imageData.attachment_id ? 'attachment_' + imageData.attachment_id : null;
                if ( imageData.caption ) {
 
                        id = imageData.attachment_id ? 'attachment_' + imageData.attachment_id : null;
-                       className = 'wp-caption align' + ( imageData.align || 'none' );
+                       align = 'align' + ( imageData.align || 'none' );
+                       className = 'wp-caption ' + align;
+
+                       if ( imageData.captionClassName ) {
+                               className += ' ' + imageData.captionClassName.replace( /[<>&]+/g,  '' );
+                       }
 
                        if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
                                width = parseInt( width, 10 );
 
                        if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
                                width = parseInt( width, 10 );
@@ -389,6 +412,7 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                frame.on( 'close', function() {
                        editor.focus();
                        frame.detach();
                frame.on( 'close', function() {
                        editor.focus();
                        frame.detach();
+                       editingImage = false;
                });
 
                frame.open();
                });
 
                frame.open();
@@ -413,12 +437,14 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                        }
 
                        editor.selection.collapse( true );
                        }
 
                        editor.selection.collapse( true );
-                       editor.nodeChanged();
                        editor.dom.remove( wrap );
                } else {
                        editor.dom.remove( node );
                }
                        editor.dom.remove( wrap );
                } else {
                        editor.dom.remove( node );
                }
+
                removeToolbar();
                removeToolbar();
+               editor.nodeChanged();
+               editor.undoManager.add();
        }
 
        function addToolbar( node ) {
        }
 
        function addToolbar( node ) {
@@ -435,12 +461,12 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                dom.setAttrib( node, 'data-wp-imgselect', 1 );
                rectangle = dom.getRect( node );
 
                dom.setAttrib( node, 'data-wp-imgselect', 1 );
                rectangle = dom.getRect( node );
 
-               toolbarHtml = '<div class="dashicons dashicons-edit edit" data-mce-bogus="1"></div>' +
-                       '<div class="dashicons dashicons-no-alt remove" data-mce-bogus="1"></div>';
+               toolbarHtml = '<i class="dashicons dashicons-edit edit" data-mce-bogus="all"></i>' +
+                       '<i class="dashicons dashicons-no-alt remove" data-mce-bogus="all"></i>';
 
 
-               toolbar = dom.create( 'div', {
+               toolbar = dom.create( 'p', {
                        'id': 'wp-image-toolbar',
                        'id': 'wp-image-toolbar',
-                       'data-mce-bogus': '1',
+                       'data-mce-bogus': 'all',
                        'contenteditable': false
                }, toolbarHtml );
 
                        'contenteditable': false
                }, toolbarHtml );
 
@@ -468,6 +494,7 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 
                editor.dom.setAttrib( editor.dom.select( 'img[data-wp-imgselect]' ), 'data-wp-imgselect', null );
 
 
                editor.dom.setAttrib( editor.dom.select( 'img[data-wp-imgselect]' ), 'data-wp-imgselect', null );
 
+               editingImage = false;
                toolbarActive = false;
        }
 
                toolbarActive = false;
        }
 
@@ -483,6 +510,61 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                return false;
        }
 
                return false;
        }
 
+       function isToolbarButton( node ) {
+               return ( node && node.nodeName === 'I' && node.parentNode.id === 'wp-image-toolbar' );
+       }
+
+       function edit( event ) {
+               var image,
+                       node = event.target,
+                       dom = editor.dom;
+
+               // Don't trigger on right-click
+               if ( event.button && event.button > 1 ) {
+                       return;
+               }
+
+               if ( isToolbarButton( node ) ) {
+                       image = dom.select( 'img[data-wp-imgselect]' )[0];
+
+                       if ( image ) {
+                               editor.selection.select( image );
+
+                               if ( dom.hasClass( node, 'remove' ) ) {
+                                       removeImage( image );
+                               } else if ( dom.hasClass( node, 'edit' ) ) {
+                                       if ( ! editingImage ) {
+                                               editImage( image );
+                                               editingImage = true;
+                                       }
+                               }
+                       }
+
+                       event.preventDefault();
+               } else if ( node.nodeName === 'IMG' && ! editor.dom.getAttrib( node, 'data-wp-imgselect' ) && ! isPlaceholder( node ) ) {
+                       addToolbar( node );
+               } else if ( node.nodeName !== 'IMG' ) {
+                       removeToolbar();
+               }
+       }
+
+       if ( 'ontouchend' in document ) {
+               editor.on( 'click', function( event ) {
+                       var target = event.target;
+
+                       if ( editingImage && target.nodeName === 'IMG' ) {
+                               event.preventDefault();
+                       }
+
+                       if ( isToolbarButton( target ) ) {
+                               event.preventDefault();
+                               event.stopPropagation();
+                       }
+               });
+       }
+
+       editor.on( 'mouseup touchend', edit );
+
        editor.on( 'init', function() {
                var dom = editor.dom,
                        captionClass = editor.getParam( 'wpeditimage_html5_captions' ) ? 'html5-captions' : 'html4-captions';
        editor.on( 'init', function() {
                var dom = editor.dom,
                        captionClass = editor.getParam( 'wpeditimage_html5_captions' ) ? 'html5-captions' : 'html4-captions';
@@ -753,28 +835,31 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
        });
 
        editor.on( 'ObjectResized', function( event ) {
        });
 
        editor.on( 'ObjectResized', function( event ) {
-        var parent, width,
-                       node = event.target,
-                       dom = editor.dom;
+               var node = event.target;
 
                if ( node.nodeName === 'IMG' ) {
 
                if ( node.nodeName === 'IMG' ) {
-                       node.className = node.className.replace( /\bsize-[^ ]+/, '' );
+                       editor.undoManager.transact( function() {
+                               var parent, width,
+                                       dom = editor.dom;
 
 
-                       if ( parent = dom.getParent( node, '.wp-caption' ) ) {
-                               width = event.width || dom.getAttrib( node, 'width' );
+                               node.className = node.className.replace( /\bsize-[^ ]+/, '' );
 
 
-                               if ( width ) {
-                                       width = parseInt( width, 10 );
+                               if ( parent = dom.getParent( node, '.wp-caption' ) ) {
+                                       width = event.width || dom.getAttrib( node, 'width' );
 
 
-                                       if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
-                                               width += 10;
-                                       }
+                                       if ( width ) {
+                                               width = parseInt( width, 10 );
 
 
-                                       dom.setStyle( parent, 'width', width + 'px' );
+                                               if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
+                                                       width += 10;
+                                               }
+
+                                               dom.setStyle( parent, 'width', width + 'px' );
+                                       }
                                }
                                }
-                       }
-                       // refresh toolbar
-                       addToolbar( node );
+                               // refresh toolbar
+                               addToolbar( node );
+                       });
                }
     });
 
                }
     });
 
@@ -791,29 +876,15 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                                dom.insertAfter( p, node );
                                editor.selection.setCursorLocation( p, 0 );
                                editor.nodeChanged();
                                dom.insertAfter( p, node );
                                editor.selection.setCursorLocation( p, 0 );
                                editor.nodeChanged();
-
-                               if ( tinymce.Env.ie > 8 ) {
-                                       setTimeout( function() {
-                                               editor.selection.setCursorLocation( p, 0 );
-                                               editor.selection.setContent( event.value );
-                                       }, 500 );
-
-                                       return false;
-                               }
                        }
                } else if ( cmd === 'JustifyLeft' || cmd === 'JustifyRight' || cmd === 'JustifyCenter' ) {
                        node = editor.selection.getNode();
                        align = cmd.substr(7).toLowerCase();
                        align = 'align' + align;
                        }
                } else if ( cmd === 'JustifyLeft' || cmd === 'JustifyRight' || cmd === 'JustifyCenter' ) {
                        node = editor.selection.getNode();
                        align = cmd.substr(7).toLowerCase();
                        align = 'align' + align;
+                       DL = dom.getParent( node, 'dl.wp-caption' );
 
                        removeToolbar();
 
 
                        removeToolbar();
 
-                       if ( dom.is( node, 'dl.wp-caption' ) ) {
-                               DL = node;
-                       } else {
-                               DL = dom.getParent( node, 'dl.wp-caption' );
-                       }
-
                        if ( DL ) {
                                // When inside an image caption, set the align* class on dl.wp-caption
                                if ( dom.hasClass( DL, align ) ) {
                        if ( DL ) {
                                // When inside an image caption, set the align* class on dl.wp-caption
                                if ( dom.hasClass( DL, align ) ) {
@@ -824,7 +895,12 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                                        dom.addClass( DL, align );
                                }
 
                                        dom.addClass( DL, align );
                                }
 
-                               return false;
+                               if ( node.nodeName === 'IMG' ) {
+                                       // Re-select the image to update resize handles, etc.
+                                       editor.nodeChanged();
+                               }
+
+                               event.preventDefault();
                        }
 
                        if ( node.nodeName === 'IMG' ) {
                        }
 
                        if ( node.nodeName === 'IMG' ) {
@@ -842,9 +918,10 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                var node, wrap, P, spacer,
                        selection = editor.selection,
                        keyCode = event.keyCode,
                var node, wrap, P, spacer,
                        selection = editor.selection,
                        keyCode = event.keyCode,
-                       dom = editor.dom;
+                       dom = editor.dom,
+                       VK = tinymce.util.VK;
 
 
-               if ( keyCode === tinymce.util.VK.ENTER ) {
+               if ( keyCode === VK.ENTER ) {
                        // When pressing Enter inside a caption move the caret to a new parapraph under it
                        node = selection.getNode();
                        wrap = dom.getParent( node, 'div.mceTemp' );
                        // When pressing Enter inside a caption move the caret to a new parapraph under it
                        node = selection.getNode();
                        wrap = dom.getParent( node, 'div.mceTemp' );
@@ -871,7 +948,7 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                                editor.nodeChanged();
                                selection.setCursorLocation( P, 0 );
                        }
                                editor.nodeChanged();
                                selection.setCursorLocation( P, 0 );
                        }
-               } else if ( keyCode === tinymce.util.VK.DELETE || keyCode === tinymce.util.VK.BACKSPACE ) {
+               } else if ( keyCode === VK.DELETE || keyCode === VK.BACKSPACE ) {
                        node = selection.getNode();
 
                        if ( node.nodeName === 'DIV' && dom.hasClass( node, 'mceTemp' ) ) {
                        node = selection.getNode();
 
                        if ( node.nodeName === 'DIV' && dom.hasClass( node, 'mceTemp' ) ) {
@@ -889,10 +966,9 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                        removeToolbar();
                }
 
                        removeToolbar();
                }
 
-               // Key presses will replace the image so we need to remove the toolbar
+               // Most key presses will replace the image so we need to remove the toolbar
                if ( toolbarActive ) {
                if ( toolbarActive ) {
-                       if ( event.ctrlKey || event.metaKey || event.altKey ||
-                               ( keyCode < 48 && keyCode > 90 ) || keyCode > 186 ) {
+                       if ( event.ctrlKey || event.metaKey || event.altKey || ( keyCode < 48 && keyCode !== VK.SPACEBAR ) ) {
                                return;
                        }
 
                                return;
                        }
 
@@ -901,7 +977,7 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
        });
 
        editor.on( 'mousedown', function( event ) {
        });
 
        editor.on( 'mousedown', function( event ) {
-               if ( editor.dom.getParent( event.target, '#wp-image-toolbar' ) ) {
+               if ( isToolbarButton( event.target ) ) {
                        if ( tinymce.Env.ie ) {
                                // Stop IE > 8 from making the wrapper resizable on mousedown
                                event.preventDefault();
                        if ( tinymce.Env.ie ) {
                                // Stop IE > 8 from making the wrapper resizable on mousedown
                                event.preventDefault();
@@ -911,36 +987,23 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
                }
        });
 
                }
        });
 
-       editor.on( 'mouseup', function( event ) {
-               var image,
-                       node = event.target,
-                       dom = editor.dom;
-
-               // Don't trigger on right-click
-               if ( event.button && event.button > 1 ) {
-                       return;
-               }
-
-               if ( node.nodeName === 'DIV' && dom.getParent( node, '#wp-image-toolbar' ) ) {
-                       image = dom.select( 'img[data-wp-imgselect]' )[0];
-
-                       if ( image ) {
-                               editor.selection.select( image );
+       // Remove from undo levels
+       editor.on( 'BeforeAddUndo', function( event ) {
+               event.level.content = event.level.content.replace( / data-wp-imgselect="1"/g, '' );
+       });
 
 
-                               if ( dom.hasClass( node, 'remove' ) ) {
-                                       removeImage( image );
-                               } else if ( dom.hasClass( node, 'edit' ) ) {
-                                       editImage( image );
-                               }
+       // After undo/redo FF seems to set the image height very slowly when it is set to 'auto' in the CSS.
+       // This causes image.getBoundingClientRect() to return wrong values and the resize handles are shown in wrong places.
+       // Collapse the selection to remove the resize handles.
+       if ( tinymce.Env.gecko ) {
+               editor.on( 'undo redo', function() {
+                       if ( editor.selection.getNode().nodeName === 'IMG' ) {
+                               editor.selection.collapse();
                        }
                        }
-               } else if ( node.nodeName === 'IMG' && ! editor.dom.getAttrib( node, 'data-wp-imgselect' ) && ! isPlaceholder( node ) ) {
-                       addToolbar( node );
-               } else if ( node.nodeName !== 'IMG' ) {
-                       removeToolbar();
-               }
-       });
+               });
+       }
 
 
-       editor.on( 'cut', function() {
+       editor.on( 'cut wpview-selected', function() {
                removeToolbar();
        });
 
                removeToolbar();
        });
 
@@ -953,7 +1016,9 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
        };
 
        editor.on( 'BeforeSetContent', function( event ) {
        };
 
        editor.on( 'BeforeSetContent', function( event ) {
-               event.content = editor.wpSetImgCaption( event.content );
+               if ( event.format !== 'raw' ) {
+                       event.content = editor.wpSetImgCaption( event.content );
+               }
        });
 
        editor.on( 'PostProcess', function( event ) {
        });
 
        editor.on( 'PostProcess', function( event ) {
index 7445d5a8896065f0c05f9e3bf201b73987983c02..715299dfe61c6b09eb06555c905f2bea68ed79c8 100644 (file)
@@ -1 +1 @@
-tinymce.PluginManager.add("wpeditimage",function(a){function b(b){return b.replace(/(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g,function(b,c,d){var e,f,g,h,i,j,k=tinymce.trim;return e=c.match(/id=['"]([^'"]*)['"] ?/),e&&(c=c.replace(e[0],"")),f=c.match(/align=['"]([^'"]*)['"] ?/),f&&(c=c.replace(f[0],"")),g=c.match(/width=['"]([0-9]*)['"] ?/),g&&(c=c.replace(g[0],"")),d=k(d),i=d.match(/((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i),i&&i[2]?(h=k(i[2]),i=k(i[1])):(h=k(c).replace(/caption=['"]/,"").replace(/['"]$/,""),i=d),e=e&&e[1]?e[1]:"",f=f&&f[1]?f[1]:"alignnone",!g&&i&&(g=i.match(/width=['"]([0-9]*)['"]/)),g&&g[1]&&(g=g[1]),g&&h?(j=parseInt(g,10),a.getParam("wpeditimage_html5_captions")||(j+=10),'<div class="mceTemp"><dl id="'+e+'" class="wp-caption '+f+'" style="width: '+j+'px"><dt class="wp-caption-dt">'+i+'</dt><dd class="wp-caption-dd">'+h+"</dd></dl></div>"):d})}function c(a){return a.replace(/<div (?:id="attachment_|class="mceTemp)[^>]*>([\s\S]+?)<\/div>/g,function(a,b){var c="";return-1===b.indexOf("<img ")?(c=b.match(/<dd [^>]+>([\s\S]+?)<\/dd>/i),c&&c[1]?"<p>"+c[1]+"</p>":""):(c=b.replace(/<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>/gi,function(a,b,c,d){var e,f,g;return g=c.match(/width="([0-9]*)"/),g=g&&g[1]?g[1]:"",g&&d?(e=b.match(/id="([^"]*)"/),e=e&&e[1]?e[1]:"",f=b.match(/class="([^"]*)"/),f=f&&f[1]?f[1]:"",f=f.match(/align[a-z]+/)||"alignnone",d=d.replace(/\r\n|\r/g,"\n").replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),d=d.replace(/\s*\n\s*/g,"<br />"),'[caption id="'+e+'" align="'+f+'" width="'+g+'"]'+c+" "+d+"[/caption]"):c}),0!==c.indexOf("[caption")&&(c=b.replace(/[\s\S]*?((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)(<p>[\s\S]*<\/p>)?[\s\S]*/gi,"<p>$1</p>$2")),c)})}function d(b){var c,d,e,f,g,h,i,j,k=a.dom,l=/^\d+$/;return e={attachment_id:!1,size:"custom",caption:"",align:"none",extraClasses:"",link:!1,linkUrl:"",linkClassName:"",linkTargetBlank:!1,linkRel:"",title:""},e.url=k.getAttrib(b,"src"),e.alt=k.getAttrib(b,"alt"),e.title=k.getAttrib(b,"title"),i=k.getAttrib(b,"width"),j=k.getAttrib(b,"height"),(!l.test(i)||parseInt(i,10)<1)&&(i=b.naturalWidth||b.width),(!l.test(j)||parseInt(j,10)<1)&&(j=b.naturalHeight||b.height),e.customWidth=e.width=i,e.customHeight=e.height=j,c=tinymce.explode(b.className," "),d=[],tinymce.each(c,function(a){/^wp-image/.test(a)?e.attachment_id=parseInt(a.replace("wp-image-",""),10):/^align/.test(a)?e.align=a.replace("align",""):/^size/.test(a)?e.size=a.replace("size-",""):d.push(a)}),e.extraClasses=d.join(" "),f=k.getParents(b,".wp-caption"),f.length&&(f=f[0],c=f.className.split(" "),tinymce.each(c,function(a){/^align/.test(a)&&(e.align=a.replace("align",""))}),g=k.select("dd.wp-caption-dd",f),g.length&&(g=g[0],e.caption=a.serializer.serialize(g).replace(/<br[^>]*>/g,"$&\n").replace(/^<p>/,"").replace(/<\/p>$/,""))),b.parentNode&&"A"===b.parentNode.nodeName&&(h=b.parentNode,e.linkUrl=k.getAttrib(h,"href"),e.linkTargetBlank="_blank"===k.getAttrib(h,"target")?!0:!1,e.linkRel=k.getAttrib(h,"rel"),e.linkClassName=h.className),e}function e(a){return a&&!(!a.textContent&&!a.innerText)}function f(b,c){var d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u=a.dom;d=tinymce.explode(c.extraClasses," "),d||(d=[]),c.caption||d.push("align"+c.align),c.attachment_id&&(d.push("wp-image-"+c.attachment_id),c.size&&"custom"!==c.size&&d.push("size-"+c.size)),s=c.width,t=c.height,"custom"===c.size&&(s=c.customWidth,t=c.customHeight),q={src:c.url,width:s||null,height:t||null,alt:c.alt,title:c.title||null,"class":d.join(" ")||null},u.setAttribs(b,q),r={href:c.linkUrl,rel:c.linkRel||null,target:c.linkTargetBlank?"_blank":null,"class":c.linkClassName||null},b.parentNode&&"A"===b.parentNode.nodeName&&!e(b.parentNode)?c.linkUrl?u.setAttribs(b.parentNode,r):u.remove(b.parentNode,!0):c.linkUrl&&((l=u.getParent(b,"a"))&&u.insertAfter(b,l),l=u.create("a",r),b.parentNode.insertBefore(l,b),l.appendChild(b)),m=a.dom.getParent(b,".mceTemp"),g=b.parentNode&&"A"===b.parentNode.nodeName&&!e(b.parentNode)?b.parentNode:b,c.caption?(p=c.attachment_id?"attachment_"+c.attachment_id:null,f="wp-caption align"+(c.align||"none"),a.getParam("wpeditimage_html5_captions")||(s=parseInt(s,10),s+=10),m?(o=u.select("dl.wp-caption",m),o.length&&u.setAttribs(o,{id:p,"class":f,style:"width: "+s+"px"}),n=u.select(".wp-caption-dd",m),n.length&&u.setHTML(n[0],c.caption)):(p=p?'id="'+p+'" ':"",h="<dl "+p+'class="'+f+'" style="width: '+s+'px"><dt class="wp-caption-dt">'+u.getOuterHTML(g)+'</dt><dd class="wp-caption-dd">'+c.caption+"</dd></dl>",(j=u.getParent(g,"p"))?(k=u.create("div",{"class":"mceTemp"},h),j.parentNode.insertBefore(k,j),u.remove(g),u.isEmpty(j)&&u.remove(j)):u.setOuterHTML(g,'<div class="mceTemp">'+h+"</div>"))):m&&(j=u.create("p"),m.parentNode.insertBefore(j,m),j.appendChild(g),u.remove(m)),wp.media.events&&wp.media.events.trigger("editor:image-update",{editor:a,metadata:c,image:b}),a.nodeChanged(),i(b)}function g(b){var c,e,g;return"undefined"!=typeof wp&&wp.media?(g=d(b),wp.media.events.trigger("editor:image-edit",{editor:a,metadata:g,image:b}),c=wp.media({frame:"image",state:"image-details",metadata:g}),wp.media.events.trigger("editor:frame-create",{frame:c}),e=function(d){a.focus(),a.undoManager.transact(function(){f(b,d)}),c.detach()},c.state("image-details").on("update",e),c.state("replace-image").on("replace",e),c.on("close",function(){a.focus(),c.detach()}),void c.open()):void a.execCommand("mceImage")}function h(b){var c;"DIV"===b.nodeName&&a.dom.hasClass(b,"mceTemp")?c=b:("IMG"===b.nodeName||"DT"===b.nodeName||"A"===b.nodeName)&&(c=a.dom.getParent(b,"div.mceTemp")),c?(a.selection.select(c.nextSibling?c.nextSibling:c.previousSibling?c.previousSibling:c.parentNode),a.selection.collapse(!0),a.nodeChanged(),a.dom.remove(c)):a.dom.remove(b),j()}function i(b){var c,d,e,f,g=a.dom;j(),b&&"IMG"===b.nodeName&&!k(b)&&(g.setAttrib(b,"data-wp-imgselect",1),c=g.getRect(b),d='<div class="dashicons dashicons-edit edit" data-mce-bogus="1"></div><div class="dashicons dashicons-no-alt remove" data-mce-bogus="1"></div>',e=g.create("div",{id:"wp-image-toolbar","data-mce-bogus":"1",contenteditable:!1},d),f=a.rtl?c.x+c.w-82:c.x,a.getBody().appendChild(e),g.setStyles(e,{top:c.y,left:f}),l=!0)}function j(){var b=a.dom.get("wp-image-toolbar");b&&a.dom.remove(b),a.dom.setAttrib(a.dom.select("img[data-wp-imgselect]"),"data-wp-imgselect",null),l=!1}function k(b){var c=a.dom;return c.hasClass(b,"mceItem")||c.getAttrib(b,"data-mce-placeholder")||c.getAttrib(b,"data-mce-object")?!0:!1}var l=!1;return a.on("init",function(){var b=a.dom,c=a.getParam("wpeditimage_html5_captions")?"html5-captions":"html4-captions";b.addClass(a.getBody(),c),a.on("wpLoadImageForm",function(b){if(!a.getParam("wpeditimage_disable_captions")){var c={type:"textbox",flex:1,name:"caption",minHeight:60,multiline:!0,scroll:!0,label:"Image caption"};b.data.splice(b.data.length-1,0,c)}}),a.on("wpNewImageRefresh",function(a){var c,d;(c=b.getParent(a.node,"dl.wp-caption"))&&(c.style.width||(d=parseInt(a.node.clientWidth,10)+10,d=d?d+"px":"50%",b.setStyle(c,"width",d)))}),a.on("wpImageFormSubmit",function(c){var d,e,f,g,h,i=c.imgData.data,j=c.imgData.node,k=c.imgData.caption,l="",m="",n="";return i.id="__wp-temp-img-id",c.imgData.cancel=!0,i.style||(i.style=null),i.src?(k&&(k=k.replace(/\r\n|\r/g,"\n").replace(/<\/?[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),k=k.replace(/(<br[^>]*>)\s*\n\s*/g,"$1").replace(/\s*\n\s*/g,"<br />")),j?(h=j.id||null,b.setAttribs(j,i),d=b.getParent(j,"dl.wp-caption"),k?d?(e=b.select("dd.wp-caption-dd",d)[0])&&(e.innerHTML=k):(j.className&&(l=j.className.match(/wp-image-([0-9]+)/),m=j.className.match(/align(left|right|center|none)/)),m?(m=m[0],j.className=j.className.replace(/align(left|right|center|none)/g,"")):m="alignnone",m=' class="wp-caption '+m+'"',l&&(l=' id="attachment_'+l[1]+'"'),n=i.width||j.clientWidth,n&&(n=parseInt(n,10),a.getParam("wpeditimage_html5_captions")||(n+=10),n=' style="width: '+n+'px"'),j.parentNode&&"A"===j.parentNode.nodeName?(g=b.getOuterHTML(j.parentNode),f=j.parentNode):(g=b.getOuterHTML(j),f=j),g="<dl "+l+m+n+'><dt class="wp-caption-dt">'+g+'</dt><dd class="wp-caption-dd">'+k+"</dd></dl>",(e=b.getParent(j,"p"))?(d=b.create("div",{"class":"mceTemp"},g),b.insertAfter(d,e),a.selection.select(d),a.nodeChanged(),b.remove(f),b.isEmpty(e)&&b.remove(e)):a.selection.setContent('<div class="mceTemp">'+g+"</div>")):d&&(g=b.getOuterHTML("A"===j.parentNode.nodeName?j.parentNode:j),e=b.create("p",{},g),b.insertAfter(e,d.parentNode),a.selection.select(e),a.nodeChanged(),b.remove(d.parentNode))):(g=b.createHTML("img",i),k?(f=a.selection.getNode(),i.width&&(n=parseInt(i.width,10),a.getParam("wpeditimage_html5_captions")||(n+=10),n=' style="width: '+n+'px"'),g='<dl class="wp-caption alignnone"'+n+'><dt class="wp-caption-dt">'+g+'</dt><dd class="wp-caption-dd">'+k+"</dd></dl>",e="P"===f.nodeName?f:b.getParent(f,"p"),e&&"P"===e.nodeName?(d=b.create("div",{"class":"mceTemp"},g),e.parentNode.insertBefore(d,e),a.selection.select(d),a.nodeChanged(),b.isEmpty(e)&&b.remove(e)):a.selection.setContent('<div class="mceTemp">'+g+"</div>")):a.selection.setContent(g)),j=b.get("__wp-temp-img-id"),b.setAttrib(j,"id",h),void(c.imgData.node=j)):void(j&&(b.remove((d=b.getParent(j,"div.mceTemp"))?d:"A"===j.parentNode.nodeName?j.parentNode:j),a.nodeChanged()))}),a.on("wpLoadImageData",function(c){var d,e=c.imgData.data,f=c.imgData.node;(d=b.getParent(f,"dl.wp-caption"))&&(d=b.select("dd.wp-caption-dd",d)[0],d&&(e.caption=a.serializer.serialize(d).replace(/<br[^>]*>/g,"$&\n").replace(/^<p>/,"").replace(/<\/p>$/,"")))}),b.bind(a.getDoc(),"dragstart",function(c){var d=a.selection.getNode();"IMG"===d.nodeName&&b.getParent(d,".wp-caption")&&c.preventDefault(),j()}),tinymce.Env.ie&&tinymce.Env.ie>10&&(b.bind(a.getBody(),"mscontrolselect",function(c){"IMG"===c.target.nodeName&&b.getParent(c.target,".wp-caption")?a.getBody().focus():"DL"===c.target.nodeName&&b.hasClass(c.target,"wp-caption")&&c.target.focus()}),a.on("click",function(c){"IMG"===c.target.nodeName&&b.getAttrib(c.target,"data-wp-imgselect")&&b.getParent(c.target,"dl.wp-caption")&&a.getBody().focus()}))}),a.on("ObjectResized",function(b){var c,d,e=b.target,f=a.dom;"IMG"===e.nodeName&&(e.className=e.className.replace(/\bsize-[^ ]+/,""),(c=f.getParent(e,".wp-caption"))&&(d=b.width||f.getAttrib(e,"width"),d&&(d=parseInt(d,10),a.getParam("wpeditimage_html5_captions")||(d+=10),f.setStyle(c,"width",d+"px"))),i(e))}),a.on("BeforeExecCommand",function(b){var c,d,e,f,g=b.command,h=a.dom;if("mceInsertContent"===g){if((c=h.getParent(a.selection.getNode(),"div.mceTemp"))&&(d=h.create("p"),h.insertAfter(d,c),a.selection.setCursorLocation(d,0),a.nodeChanged(),tinymce.Env.ie>8))return setTimeout(function(){a.selection.setCursorLocation(d,0),a.selection.setContent(b.value)},500),!1}else if("JustifyLeft"===g||"JustifyRight"===g||"JustifyCenter"===g){if(c=a.selection.getNode(),f=g.substr(7).toLowerCase(),f="align"+f,j(),e=h.is(c,"dl.wp-caption")?c:h.getParent(c,"dl.wp-caption"))return h.hasClass(e,f)?(h.removeClass(e,f),h.addClass(e,"alignnone")):(e.className=e.className.replace(/align[^ ]+/g,""),h.addClass(e,f)),!1;"IMG"===c.nodeName&&(h.hasClass(c,f)?h.addClass(c,"alignnone"):h.removeClass(c,"alignnone"))}}),a.on("keydown",function(b){var c,d,e,f,g=a.selection,i=b.keyCode,k=a.dom;if(i===tinymce.util.VK.ENTER)c=g.getNode(),d=k.getParent(c,"div.mceTemp"),d&&(k.events.cancel(b),tinymce.each(k.select("dt, dd",d),function(a){k.isEmpty(a)&&k.remove(a)}),f=tinymce.Env.ie&&tinymce.Env.ie<11?"":'<br data-mce-bogus="1" />',e=k.create("p",null,f),"DD"===c.nodeName?k.insertAfter(e,d):d.parentNode.insertBefore(e,d),a.nodeChanged(),g.setCursorLocation(e,0));else if(i===tinymce.util.VK.DELETE||i===tinymce.util.VK.BACKSPACE){if(c=g.getNode(),"DIV"===c.nodeName&&k.hasClass(c,"mceTemp")?d=c:("IMG"===c.nodeName||"DT"===c.nodeName||"A"===c.nodeName)&&(d=k.getParent(c,"div.mceTemp")),d)return k.events.cancel(b),h(c),!1;j()}if(l){if(b.ctrlKey||b.metaKey||b.altKey||48>i&&i>90||i>186)return;j()}}),a.on("mousedown",function(b){a.dom.getParent(b.target,"#wp-image-toolbar")?tinymce.Env.ie&&b.preventDefault():"IMG"!==b.target.nodeName&&j()}),a.on("mouseup",function(b){var c,d=b.target,e=a.dom;b.button&&b.button>1||("DIV"===d.nodeName&&e.getParent(d,"#wp-image-toolbar")?(c=e.select("img[data-wp-imgselect]")[0],c&&(a.selection.select(c),e.hasClass(d,"remove")?h(c):e.hasClass(d,"edit")&&g(c))):"IMG"!==d.nodeName||a.dom.getAttrib(d,"data-wp-imgselect")||k(d)?"IMG"!==d.nodeName&&j():i(d))}),a.on("cut",function(){j()}),a.wpSetImgCaption=function(a){return b(a)},a.wpGetImgCaption=function(a){return c(a)},a.on("BeforeSetContent",function(b){b.content=a.wpSetImgCaption(b.content)}),a.on("PostProcess",function(b){b.get&&(b.content=a.wpGetImgCaption(b.content),b.content=b.content.replace(/ data-wp-imgselect="1"/g,""))}),{_do_shcode:b,_get_shcode:c}});
\ No newline at end of file
+tinymce.PluginManager.add("wpeditimage",function(a){function b(b){return b.replace(/(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g,function(b,c,d){var e,f,g,h,i,j,k=tinymce.trim;return e=c.match(/id=['"]([^'"]*)['"] ?/),e&&(c=c.replace(e[0],"")),f=c.match(/align=['"]([^'"]*)['"] ?/),f&&(c=c.replace(f[0],"")),g=c.match(/class=['"]([^'"]*)['"] ?/),g&&(c=c.replace(g[0],"")),j=c.match(/width=['"]([0-9]*)['"] ?/),j&&(c=c.replace(j[0],"")),d=k(d),i=d.match(/((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i),i&&i[2]?(h=k(i[2]),i=k(i[1])):(h=k(c).replace(/caption=['"]/,"").replace(/['"]$/,""),i=d),e=e&&e[1]?e[1].replace(/[<>&]+/g,""):"",f=f&&f[1]?f[1]:"alignnone",g=g&&g[1]?" "+g[1].replace(/[<>&]+/g,""):"",!j&&i&&(j=i.match(/width=['"]([0-9]*)['"]/)),j&&j[1]&&(j=j[1]),j&&h?(j=parseInt(j,10),a.getParam("wpeditimage_html5_captions")||(j+=10),'<div class="mceTemp"><dl id="'+e+'" class="wp-caption '+f+g+'" style="width: '+j+'px"><dt class="wp-caption-dt">'+i+'</dt><dd class="wp-caption-dd">'+h+"</dd></dl></div>"):d})}function c(a){return a.replace(/<div (?:id="attachment_|class="mceTemp)[^>]*>([\s\S]+?)<\/div>/g,function(a,b){var c="";return-1===b.indexOf("<img ")?(c=b.match(/<dd [^>]+>([\s\S]+?)<\/dd>/i),c&&c[1]?"<p>"+c[1]+"</p>":""):(c=b.replace(/<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>/gi,function(a,b,c,d){var e,f,g,h;return h=c.match(/width="([0-9]*)"/),h=h&&h[1]?h[1]:"",h&&d?(e=b.match(/id="([^"]*)"/),e=e&&e[1]?e[1]:"",f=b.match(/class="([^"]*)"/),f=f&&f[1]?f[1]:"",g=f.match(/align[a-z]+/i)||"alignnone",f=f.replace(/wp-caption ?|align[a-z]+ ?/gi,""),f&&(f=' class="'+f+'"'),d=d.replace(/\r\n|\r/g,"\n").replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),d=d.replace(/\s*\n\s*/g,"<br />"),'[caption id="'+e+'" align="'+g+'" width="'+h+'"'+f+"]"+c+" "+d+"[/caption]"):c}),0!==c.indexOf("[caption")&&(c=b.replace(/[\s\S]*?((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)(<p>[\s\S]*<\/p>)?[\s\S]*/gi,"<p>$1</p>$2")),c)})}function d(b){var c,d,e,f,g,h,i,j,k=[],l=a.dom,m=/^\d+$/;return e={attachment_id:!1,size:"custom",caption:"",align:"none",extraClasses:"",link:!1,linkUrl:"",linkClassName:"",linkTargetBlank:!1,linkRel:"",title:""},e.url=l.getAttrib(b,"src"),e.alt=l.getAttrib(b,"alt"),e.title=l.getAttrib(b,"title"),i=l.getAttrib(b,"width"),j=l.getAttrib(b,"height"),(!m.test(i)||parseInt(i,10)<1)&&(i=b.naturalWidth||b.width),(!m.test(j)||parseInt(j,10)<1)&&(j=b.naturalHeight||b.height),e.customWidth=e.width=i,e.customHeight=e.height=j,c=tinymce.explode(b.className," "),d=[],tinymce.each(c,function(a){/^wp-image/.test(a)?e.attachment_id=parseInt(a.replace("wp-image-",""),10):/^align/.test(a)?e.align=a.replace("align",""):/^size/.test(a)?e.size=a.replace("size-",""):d.push(a)}),e.extraClasses=d.join(" "),f=l.getParents(b,".wp-caption"),f.length&&(f=f[0],c=f.className.split(" "),tinymce.each(c,function(a){/^align/.test(a)?e.align=a.replace("align",""):a&&"wp-caption"!==a&&k.push(a)}),e.captionClassName=k.join(" "),g=l.select("dd.wp-caption-dd",f),g.length&&(g=g[0],e.caption=a.serializer.serialize(g).replace(/<br[^>]*>/g,"$&\n").replace(/^<p>/,"").replace(/<\/p>$/,""))),b.parentNode&&"A"===b.parentNode.nodeName&&(h=b.parentNode,e.linkUrl=l.getAttrib(h,"href"),e.linkTargetBlank="_blank"===l.getAttrib(h,"target")?!0:!1,e.linkRel=l.getAttrib(h,"rel"),e.linkClassName=h.className),e}function e(a){return a&&!(!a.textContent&&!a.innerText)}function f(b,c){var d,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v=a.dom;d=tinymce.explode(c.extraClasses," "),d||(d=[]),c.caption||d.push("align"+c.align),c.attachment_id&&(d.push("wp-image-"+c.attachment_id),c.size&&"custom"!==c.size&&d.push("size-"+c.size)),s=c.width,t=c.height,"custom"===c.size&&(s=c.customWidth,t=c.customHeight),q={src:c.url,width:s||null,height:t||null,alt:c.alt,title:c.title||null,"class":d.join(" ")||null},v.setAttribs(b,q),r={href:c.linkUrl,rel:c.linkRel||null,target:c.linkTargetBlank?"_blank":null,"class":c.linkClassName||null},b.parentNode&&"A"===b.parentNode.nodeName&&!e(b.parentNode)?c.linkUrl?v.setAttribs(b.parentNode,r):v.remove(b.parentNode,!0):c.linkUrl&&((l=v.getParent(b,"a"))&&v.insertAfter(b,l),l=v.create("a",r),b.parentNode.insertBefore(l,b),l.appendChild(b)),m=a.dom.getParent(b,".mceTemp"),g=b.parentNode&&"A"===b.parentNode.nodeName&&!e(b.parentNode)?b.parentNode:b,c.caption?(p=c.attachment_id?"attachment_"+c.attachment_id:null,u="align"+(c.align||"none"),f="wp-caption "+u,c.captionClassName&&(f+=" "+c.captionClassName.replace(/[<>&]+/g,"")),a.getParam("wpeditimage_html5_captions")||(s=parseInt(s,10),s+=10),m?(o=v.select("dl.wp-caption",m),o.length&&v.setAttribs(o,{id:p,"class":f,style:"width: "+s+"px"}),n=v.select(".wp-caption-dd",m),n.length&&v.setHTML(n[0],c.caption)):(p=p?'id="'+p+'" ':"",h="<dl "+p+'class="'+f+'" style="width: '+s+'px"><dt class="wp-caption-dt">'+v.getOuterHTML(g)+'</dt><dd class="wp-caption-dd">'+c.caption+"</dd></dl>",(j=v.getParent(g,"p"))?(k=v.create("div",{"class":"mceTemp"},h),j.parentNode.insertBefore(k,j),v.remove(g),v.isEmpty(j)&&v.remove(j)):v.setOuterHTML(g,'<div class="mceTemp">'+h+"</div>"))):m&&(j=v.create("p"),m.parentNode.insertBefore(j,m),j.appendChild(g),v.remove(m)),wp.media.events&&wp.media.events.trigger("editor:image-update",{editor:a,metadata:c,image:b}),a.nodeChanged(),i(b)}function g(b){var c,e,g;return"undefined"!=typeof wp&&wp.media?(g=d(b),wp.media.events.trigger("editor:image-edit",{editor:a,metadata:g,image:b}),c=wp.media({frame:"image",state:"image-details",metadata:g}),wp.media.events.trigger("editor:frame-create",{frame:c}),e=function(d){a.focus(),a.undoManager.transact(function(){f(b,d)}),c.detach()},c.state("image-details").on("update",e),c.state("replace-image").on("replace",e),c.on("close",function(){a.focus(),c.detach(),o=!1}),void c.open()):void a.execCommand("mceImage")}function h(b){var c;"DIV"===b.nodeName&&a.dom.hasClass(b,"mceTemp")?c=b:("IMG"===b.nodeName||"DT"===b.nodeName||"A"===b.nodeName)&&(c=a.dom.getParent(b,"div.mceTemp")),c?(a.selection.select(c.nextSibling?c.nextSibling:c.previousSibling?c.previousSibling:c.parentNode),a.selection.collapse(!0),a.dom.remove(c)):a.dom.remove(b),j(),a.nodeChanged(),a.undoManager.add()}function i(b){var c,d,e,f,g=a.dom;j(),b&&"IMG"===b.nodeName&&!k(b)&&(g.setAttrib(b,"data-wp-imgselect",1),c=g.getRect(b),d='<i class="dashicons dashicons-edit edit" data-mce-bogus="all"></i><i class="dashicons dashicons-no-alt remove" data-mce-bogus="all"></i>',e=g.create("p",{id:"wp-image-toolbar","data-mce-bogus":"all",contenteditable:!1},d),f=a.rtl?c.x+c.w-82:c.x,a.getBody().appendChild(e),g.setStyles(e,{top:c.y,left:f}),n=!0)}function j(){var b=a.dom.get("wp-image-toolbar");b&&a.dom.remove(b),a.dom.setAttrib(a.dom.select("img[data-wp-imgselect]"),"data-wp-imgselect",null),o=!1,n=!1}function k(b){var c=a.dom;return c.hasClass(b,"mceItem")||c.getAttrib(b,"data-mce-placeholder")||c.getAttrib(b,"data-mce-object")?!0:!1}function l(a){return a&&"I"===a.nodeName&&"wp-image-toolbar"===a.parentNode.id}function m(b){var c,d=b.target,e=a.dom;b.button&&b.button>1||(l(d)?(c=e.select("img[data-wp-imgselect]")[0],c&&(a.selection.select(c),e.hasClass(d,"remove")?h(c):e.hasClass(d,"edit")&&(o||(g(c),o=!0))),b.preventDefault()):"IMG"!==d.nodeName||a.dom.getAttrib(d,"data-wp-imgselect")||k(d)?"IMG"!==d.nodeName&&j():i(d))}var n=!1,o=!1;return"ontouchend"in document&&a.on("click",function(a){var b=a.target;o&&"IMG"===b.nodeName&&a.preventDefault(),l(b)&&(a.preventDefault(),a.stopPropagation())}),a.on("mouseup touchend",m),a.on("init",function(){var b=a.dom,c=a.getParam("wpeditimage_html5_captions")?"html5-captions":"html4-captions";b.addClass(a.getBody(),c),a.on("wpLoadImageForm",function(b){if(!a.getParam("wpeditimage_disable_captions")){var c={type:"textbox",flex:1,name:"caption",minHeight:60,multiline:!0,scroll:!0,label:"Image caption"};b.data.splice(b.data.length-1,0,c)}}),a.on("wpNewImageRefresh",function(a){var c,d;(c=b.getParent(a.node,"dl.wp-caption"))&&(c.style.width||(d=parseInt(a.node.clientWidth,10)+10,d=d?d+"px":"50%",b.setStyle(c,"width",d)))}),a.on("wpImageFormSubmit",function(c){var d,e,f,g,h,i=c.imgData.data,j=c.imgData.node,k=c.imgData.caption,l="",m="",n="";return i.id="__wp-temp-img-id",c.imgData.cancel=!0,i.style||(i.style=null),i.src?(k&&(k=k.replace(/\r\n|\r/g,"\n").replace(/<\/?[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),k=k.replace(/(<br[^>]*>)\s*\n\s*/g,"$1").replace(/\s*\n\s*/g,"<br />")),j?(h=j.id||null,b.setAttribs(j,i),d=b.getParent(j,"dl.wp-caption"),k?d?(e=b.select("dd.wp-caption-dd",d)[0])&&(e.innerHTML=k):(j.className&&(l=j.className.match(/wp-image-([0-9]+)/),m=j.className.match(/align(left|right|center|none)/)),m?(m=m[0],j.className=j.className.replace(/align(left|right|center|none)/g,"")):m="alignnone",m=' class="wp-caption '+m+'"',l&&(l=' id="attachment_'+l[1]+'"'),n=i.width||j.clientWidth,n&&(n=parseInt(n,10),a.getParam("wpeditimage_html5_captions")||(n+=10),n=' style="width: '+n+'px"'),j.parentNode&&"A"===j.parentNode.nodeName?(g=b.getOuterHTML(j.parentNode),f=j.parentNode):(g=b.getOuterHTML(j),f=j),g="<dl "+l+m+n+'><dt class="wp-caption-dt">'+g+'</dt><dd class="wp-caption-dd">'+k+"</dd></dl>",(e=b.getParent(j,"p"))?(d=b.create("div",{"class":"mceTemp"},g),b.insertAfter(d,e),a.selection.select(d),a.nodeChanged(),b.remove(f),b.isEmpty(e)&&b.remove(e)):a.selection.setContent('<div class="mceTemp">'+g+"</div>")):d&&(g=b.getOuterHTML("A"===j.parentNode.nodeName?j.parentNode:j),e=b.create("p",{},g),b.insertAfter(e,d.parentNode),a.selection.select(e),a.nodeChanged(),b.remove(d.parentNode))):(g=b.createHTML("img",i),k?(f=a.selection.getNode(),i.width&&(n=parseInt(i.width,10),a.getParam("wpeditimage_html5_captions")||(n+=10),n=' style="width: '+n+'px"'),g='<dl class="wp-caption alignnone"'+n+'><dt class="wp-caption-dt">'+g+'</dt><dd class="wp-caption-dd">'+k+"</dd></dl>",e="P"===f.nodeName?f:b.getParent(f,"p"),e&&"P"===e.nodeName?(d=b.create("div",{"class":"mceTemp"},g),e.parentNode.insertBefore(d,e),a.selection.select(d),a.nodeChanged(),b.isEmpty(e)&&b.remove(e)):a.selection.setContent('<div class="mceTemp">'+g+"</div>")):a.selection.setContent(g)),j=b.get("__wp-temp-img-id"),b.setAttrib(j,"id",h),void(c.imgData.node=j)):void(j&&(b.remove((d=b.getParent(j,"div.mceTemp"))?d:"A"===j.parentNode.nodeName?j.parentNode:j),a.nodeChanged()))}),a.on("wpLoadImageData",function(c){var d,e=c.imgData.data,f=c.imgData.node;(d=b.getParent(f,"dl.wp-caption"))&&(d=b.select("dd.wp-caption-dd",d)[0],d&&(e.caption=a.serializer.serialize(d).replace(/<br[^>]*>/g,"$&\n").replace(/^<p>/,"").replace(/<\/p>$/,"")))}),b.bind(a.getDoc(),"dragstart",function(c){var d=a.selection.getNode();"IMG"===d.nodeName&&b.getParent(d,".wp-caption")&&c.preventDefault(),j()}),tinymce.Env.ie&&tinymce.Env.ie>10&&(b.bind(a.getBody(),"mscontrolselect",function(c){"IMG"===c.target.nodeName&&b.getParent(c.target,".wp-caption")?a.getBody().focus():"DL"===c.target.nodeName&&b.hasClass(c.target,"wp-caption")&&c.target.focus()}),a.on("click",function(c){"IMG"===c.target.nodeName&&b.getAttrib(c.target,"data-wp-imgselect")&&b.getParent(c.target,"dl.wp-caption")&&a.getBody().focus()}))}),a.on("ObjectResized",function(b){var c=b.target;"IMG"===c.nodeName&&a.undoManager.transact(function(){var d,e,f=a.dom;c.className=c.className.replace(/\bsize-[^ ]+/,""),(d=f.getParent(c,".wp-caption"))&&(e=b.width||f.getAttrib(c,"width"),e&&(e=parseInt(e,10),a.getParam("wpeditimage_html5_captions")||(e+=10),f.setStyle(d,"width",e+"px"))),i(c)})}),a.on("BeforeExecCommand",function(b){var c,d,e,f,g=b.command,h=a.dom;"mceInsertContent"===g?(c=h.getParent(a.selection.getNode(),"div.mceTemp"))&&(d=h.create("p"),h.insertAfter(d,c),a.selection.setCursorLocation(d,0),a.nodeChanged()):("JustifyLeft"===g||"JustifyRight"===g||"JustifyCenter"===g)&&(c=a.selection.getNode(),f=g.substr(7).toLowerCase(),f="align"+f,e=h.getParent(c,"dl.wp-caption"),j(),e&&(h.hasClass(e,f)?(h.removeClass(e,f),h.addClass(e,"alignnone")):(e.className=e.className.replace(/align[^ ]+/g,""),h.addClass(e,f)),"IMG"===c.nodeName&&a.nodeChanged(),b.preventDefault()),"IMG"===c.nodeName&&(h.hasClass(c,f)?h.addClass(c,"alignnone"):h.removeClass(c,"alignnone")))}),a.on("keydown",function(b){var c,d,e,f,g=a.selection,i=b.keyCode,k=a.dom,l=tinymce.util.VK;if(i===l.ENTER)c=g.getNode(),d=k.getParent(c,"div.mceTemp"),d&&(k.events.cancel(b),tinymce.each(k.select("dt, dd",d),function(a){k.isEmpty(a)&&k.remove(a)}),f=tinymce.Env.ie&&tinymce.Env.ie<11?"":'<br data-mce-bogus="1" />',e=k.create("p",null,f),"DD"===c.nodeName?k.insertAfter(e,d):d.parentNode.insertBefore(e,d),a.nodeChanged(),g.setCursorLocation(e,0));else if(i===l.DELETE||i===l.BACKSPACE){if(c=g.getNode(),"DIV"===c.nodeName&&k.hasClass(c,"mceTemp")?d=c:("IMG"===c.nodeName||"DT"===c.nodeName||"A"===c.nodeName)&&(d=k.getParent(c,"div.mceTemp")),d)return k.events.cancel(b),h(c),!1;j()}if(n){if(b.ctrlKey||b.metaKey||b.altKey||48>i&&i!==l.SPACEBAR)return;j()}}),a.on("mousedown",function(a){l(a.target)?tinymce.Env.ie&&a.preventDefault():"IMG"!==a.target.nodeName&&j()}),a.on("BeforeAddUndo",function(a){a.level.content=a.level.content.replace(/ data-wp-imgselect="1"/g,"")}),tinymce.Env.gecko&&a.on("undo redo",function(){"IMG"===a.selection.getNode().nodeName&&a.selection.collapse()}),a.on("cut wpview-selected",function(){j()}),a.wpSetImgCaption=function(a){return b(a)},a.wpGetImgCaption=function(a){return c(a)},a.on("BeforeSetContent",function(b){"raw"!==b.format&&(b.content=a.wpSetImgCaption(b.content))}),a.on("PostProcess",function(b){b.get&&(b.content=a.wpGetImgCaption(b.content),b.content=b.content.replace(/ data-wp-imgselect="1"/g,""))}),{_do_shcode:b,_get_shcode:c}});
\ No newline at end of file
index ed60d3cd52425b6ee509c73db4b984272409d088..9e0940e9e7c47ad2c9fd343eed7826cdbfaebb4c 100644 (file)
@@ -3,81 +3,54 @@
  * WP Fullscreen (Distraction Free Writing) TinyMCE plugin
  */
 tinymce.PluginManager.add( 'wpfullscreen', function( editor ) {
  * WP Fullscreen (Distraction Free Writing) TinyMCE plugin
  */
 tinymce.PluginManager.add( 'wpfullscreen', function( editor ) {
-       var settings = editor.settings,
-               oldSize = 0;
-
-       function resize( e ) {
-               var deltaSize, myHeight,
-                       d = editor.getDoc(),
-                       body = d.body,
-                       DOM = tinymce.DOM,
-                       resizeHeight = 250;
-
-               if ( ( e && e.type === 'setcontent' && e.initial ) || editor.settings.inline ) {
-                       return;
-               }
-
-               // Get height differently depending on the browser used
-               myHeight = tinymce.Env.ie ? body.scrollHeight : ( tinymce.Env.webkit && body.clientHeight === 0 ? 0 : body.offsetHeight );
-
-               // Don't make it smaller than 250px
-               if ( myHeight > 250 ) {
-                       resizeHeight = myHeight;
-               }
-
-               body.scrollTop = 0;
-
-               // Resize content element
-               if ( resizeHeight !== oldSize ) {
-                       deltaSize = resizeHeight - oldSize;
-                       DOM.setStyle( DOM.get( editor.id + '_ifr' ), 'height', resizeHeight + 'px' );
-                       oldSize = resizeHeight;
-
-                       // WebKit doesn't decrease the size of the body element until the iframe gets resized
-                       // So we need to continue to resize the iframe down until the size gets fixed
-                       if ( tinymce.isWebKit && deltaSize < 0 ) {
-                               resize( e );
-                       }
-               }
-       }
-
-       // Register the command
-       editor.addCommand( 'wpAutoResize', resize );
+       var settings = editor.settings;
 
        function fullscreenOn() {
                settings.wp_fullscreen = true;
                editor.dom.addClass( editor.getDoc().documentElement, 'wp-fullscreen' );
 
        function fullscreenOn() {
                settings.wp_fullscreen = true;
                editor.dom.addClass( editor.getDoc().documentElement, 'wp-fullscreen' );
-               // Add listeners for auto-resizing
-               editor.on( 'change setcontent paste keyup', resize );
+               // Start auto-resizing
+               editor.execCommand( 'wpAutoResizeOn' );
        }
 
        function fullscreenOff() {
                settings.wp_fullscreen = false;
                editor.dom.removeClass( editor.getDoc().documentElement, 'wp-fullscreen' );
        }
 
        function fullscreenOff() {
                settings.wp_fullscreen = false;
                editor.dom.removeClass( editor.getDoc().documentElement, 'wp-fullscreen' );
-               // Remove listeners for auto-resizing
-               editor.off( 'change setcontent paste keyup', resize );
-               oldSize = 0;
+               // Stop auto-resizing
+               editor.execCommand( 'wpAutoResizeOff' );
        }
 
        // For use from outside the editor.
        editor.addCommand( 'wpFullScreenOn', fullscreenOn );
        editor.addCommand( 'wpFullScreenOff', fullscreenOff );
 
        }
 
        // For use from outside the editor.
        editor.addCommand( 'wpFullScreenOn', fullscreenOn );
        editor.addCommand( 'wpFullScreenOff', fullscreenOff );
 
+       function getExtAPI() {
+               return ( typeof wp !== 'undefined' && wp.editor && wp.editor.fullscreen );
+       }
+
+       // Toggle DFW mode. For use from inside the editor.
        function toggleFullscreen() {
        function toggleFullscreen() {
-               // Toggle DFW mode. For use from inside the editor.
-               if ( typeof wp === 'undefined' || ! wp.editor || ! wp.editor.fullscreen ) {
-                       return;
-               }
+               var fullscreen = getExtAPI();
 
 
-               if ( editor.getParam('wp_fullscreen') ) {
-                       wp.editor.fullscreen.off();
-               } else {
-                       wp.editor.fullscreen.on();
+               if ( fullscreen ) {
+                       if ( editor.getParam('wp_fullscreen') ) {
+                               fullscreen.off();
+                       } else {
+                               fullscreen.on();
+                       }
                }
        }
 
        editor.addCommand( 'wpFullScreen', toggleFullscreen );
 
                }
        }
 
        editor.addCommand( 'wpFullScreen', toggleFullscreen );
 
+       editor.on( 'keydown', function( event ) {
+               var fullscreen;
+
+               // Turn fullscreen off when Esc is pressed.
+               if ( event.keyCode === 27 && ( fullscreen = getExtAPI() ) && fullscreen.settings.visible ) {
+                       fullscreen.off();
+               }
+       });
+
        editor.on( 'init', function() {
                // Set the editor when initializing from whitin DFW
                if ( editor.getParam('wp_fullscreen') ) {
        editor.on( 'init', function() {
                // Set the editor when initializing from whitin DFW
                if ( editor.getParam('wp_fullscreen') ) {
index b4507352307e52fe740aa0851a96677c5e564fc5..22295c37501fbda19c90d4b1c32891131ad1bd99 100644 (file)
@@ -1 +1 @@
-tinymce.PluginManager.add("wpfullscreen",function(a){function b(c){var d,e,f=a.getDoc(),h=f.body,i=tinymce.DOM,j=250;c&&"setcontent"===c.type&&c.initial||a.settings.inline||(e=tinymce.Env.ie?h.scrollHeight:tinymce.Env.webkit&&0===h.clientHeight?0:h.offsetHeight,e>250&&(j=e),h.scrollTop=0,j!==g&&(d=j-g,i.setStyle(i.get(a.id+"_ifr"),"height",j+"px"),g=j,tinymce.isWebKit&&0>d&&b(c)))}function c(){f.wp_fullscreen=!0,a.dom.addClass(a.getDoc().documentElement,"wp-fullscreen"),a.on("change setcontent paste keyup",b)}function d(){f.wp_fullscreen=!1,a.dom.removeClass(a.getDoc().documentElement,"wp-fullscreen"),a.off("change setcontent paste keyup",b),g=0}function e(){"undefined"!=typeof wp&&wp.editor&&wp.editor.fullscreen&&(a.getParam("wp_fullscreen")?wp.editor.fullscreen.off():wp.editor.fullscreen.on())}var f=a.settings,g=0;a.addCommand("wpAutoResize",b),a.addCommand("wpFullScreenOn",c),a.addCommand("wpFullScreenOff",d),a.addCommand("wpFullScreen",e),a.on("init",function(){a.getParam("wp_fullscreen")&&c(),a.addShortcut("alt+shift+w","","wpFullScreen")}),a.addButton("wp_fullscreen",{tooltip:"Distraction Free Writing",shortcut:"Alt+Shift+W",onclick:e,classes:"wp-fullscreen btn widget"}),a.addMenuItem("wp_fullscreen",{text:"Distraction Free Writing",icon:"wp_fullscreen",shortcut:"Alt+Shift+W",context:"view",onclick:e})});
\ No newline at end of file
+tinymce.PluginManager.add("wpfullscreen",function(a){function b(){f.wp_fullscreen=!0,a.dom.addClass(a.getDoc().documentElement,"wp-fullscreen"),a.execCommand("wpAutoResizeOn")}function c(){f.wp_fullscreen=!1,a.dom.removeClass(a.getDoc().documentElement,"wp-fullscreen"),a.execCommand("wpAutoResizeOff")}function d(){return"undefined"!=typeof wp&&wp.editor&&wp.editor.fullscreen}function e(){var b=d();b&&(a.getParam("wp_fullscreen")?b.off():b.on())}var f=a.settings;a.addCommand("wpFullScreenOn",b),a.addCommand("wpFullScreenOff",c),a.addCommand("wpFullScreen",e),a.on("keydown",function(a){var b;27===a.keyCode&&(b=d())&&b.settings.visible&&b.off()}),a.on("init",function(){a.getParam("wp_fullscreen")&&b(),a.addShortcut("alt+shift+w","","wpFullScreen")}),a.addButton("wp_fullscreen",{tooltip:"Distraction Free Writing",shortcut:"Alt+Shift+W",onclick:e,classes:"wp-fullscreen btn widget"}),a.addMenuItem("wp_fullscreen",{text:"Distraction Free Writing",icon:"wp_fullscreen",shortcut:"Alt+Shift+W",context:"view",onclick:e})});
\ No newline at end of file
index d992360b86552f462ec4a21fc93b0961f538d313..8c055857fb6187b5231b2fc3a84ef6008ff81cd8 100644 (file)
@@ -15,9 +15,10 @@ tinymce.PluginManager.add( 'wplink', function( editor ) {
        editor.addShortcut( 'ctrl+k', '', 'WP_Link' );
 
        function setState( button, node ) {
        editor.addShortcut( 'ctrl+k', '', 'WP_Link' );
 
        function setState( button, node ) {
-               var parent = editor.dom.getParent( node, 'a' );
+               var parent = editor.dom.getParent( node, 'a' ),
+                       getView = editor.plugins.wpview ? editor.plugins.wpview.getView : function() { return false; };
 
 
-               button.disabled( ( editor.selection.isCollapsed() && ! parent ) || ( parent && ! parent.href ) );
+               button.disabled( ( editor.selection.isCollapsed() && ! parent ) || ( parent && ! parent.href ) || getView( node ) );
                button.active( parent && parent.href );
        }
 
                button.active( parent && parent.href );
        }
 
index dc282b9f3c9f47e3bb6e2e31df4a856ac66fa9ef..32203b75ca3914ce0924a9447155c9cfb44eb2d9 100644 (file)
@@ -1 +1 @@
-tinymce.PluginManager.add("wplink",function(a){function b(b,c){var d=a.dom.getParent(c,"a");b.disabled(a.selection.isCollapsed()&&!d||d&&!d.href),b.active(d&&d.href)}var c;a.addCommand("WP_Link",function(){c&&c.disabled()||"undefined"==typeof window.wpLink||window.wpLink.open(a.id)}),a.addShortcut("alt+shift+a","","WP_Link"),a.addShortcut("ctrl+k","","WP_Link"),a.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Alt+Shift+A",cmd:"WP_Link",onPostRender:function(){c=this,a.on("nodechange",function(a){b(c,a.element)})}}),a.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",onPostRender:function(){var c=this;a.on("nodechange",function(a){b(c,a.element)})}}),a.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Alt+Shift+A",cmd:"WP_Link",stateSelector:"a[href]",context:"insert",prependToContext:!0})});
\ No newline at end of file
+tinymce.PluginManager.add("wplink",function(a){function b(b,c){var d=a.dom.getParent(c,"a"),e=a.plugins.wpview?a.plugins.wpview.getView:function(){return!1};b.disabled(a.selection.isCollapsed()&&!d||d&&!d.href||e(c)),b.active(d&&d.href)}var c;a.addCommand("WP_Link",function(){c&&c.disabled()||"undefined"==typeof window.wpLink||window.wpLink.open(a.id)}),a.addShortcut("alt+shift+a","","WP_Link"),a.addShortcut("ctrl+k","","WP_Link"),a.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Alt+Shift+A",cmd:"WP_Link",onPostRender:function(){c=this,a.on("nodechange",function(a){b(c,a.element)})}}),a.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",onPostRender:function(){var c=this;a.on("nodechange",function(a){b(c,a.element)})}}),a.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Alt+Shift+A",cmd:"WP_Link",stateSelector:"a[href]",context:"insert",prependToContext:!0})});
\ No newline at end of file
index 4e224b0683da03c61da8cdf7d86ecf29678b2ba2..7bbf46657ba91af8799093e81da485b848f46321 100644 (file)
@@ -1,44 +1,50 @@
 /* global tinymce */
 /* global tinymce */
+
 /**
  * WordPress View plugin.
  */
 tinymce.PluginManager.add( 'wpview', function( editor ) {
        var selected,
 /**
  * WordPress View plugin.
  */
 tinymce.PluginManager.add( 'wpview', function( editor ) {
        var selected,
+               Env = tinymce.Env,
                VK = tinymce.util.VK,
                TreeWalker = tinymce.dom.TreeWalker,
                VK = tinymce.util.VK,
                TreeWalker = tinymce.dom.TreeWalker,
-               toRemove = false;
+               toRemove = false,
+               firstFocus = true,
+               _noop = function() { return false; },
+               isios = /iPad|iPod|iPhone/.test( navigator.userAgent ),
+               cursorInterval, lastKeyDownNode, setViewCursorTries, focus, execCommandView;
+
+       function getView( node ) {
+               return getParent( node, 'wpview-wrap' );
+       }
 
 
-       function getParentView( node ) {
-               while ( node && node.nodeName !== 'BODY' ) {
-                       if ( isView( node ) ) {
+       /**
+        * Returns the node or a parent of the node that has the passed className.
+        * Doing this directly is about 40% faster
+        */
+       function getParent( node, className ) {
+               while ( node && node.parentNode ) {
+                       if ( node.className && ( ' ' + node.className + ' ' ).indexOf( ' ' + className + ' ' ) !== -1 ) {
                                return node;
                        }
 
                        node = node.parentNode;
                }
                                return node;
                        }
 
                        node = node.parentNode;
                }
-       }
-
-       function isView( node ) {
-               return node && /\bwpview-wrap\b/.test( node.className );
-       }
 
 
-       function createPadNode() {
-               return editor.dom.create( 'p', { 'data-wpview-pad': 1 },
-                       ( tinymce.Env.ie && tinymce.Env.ie < 11 ) ? '' : '<br data-mce-bogus="1" />' );
+               return false;
        }
 
        /**
         * Get the text/shortcode string for a view.
         *
        }
 
        /**
         * Get the text/shortcode string for a view.
         *
-        * @param view The view wrapper's HTML id or node
+        * @param view The view wrapper's node
         * @returns string The text/shoercode string of the view
         */
        function getViewText( view ) {
         * @returns string The text/shoercode string of the view
         */
        function getViewText( view ) {
-               view = getParentView( typeof view === 'string' ? editor.dom.get( view ) : view );
-
-               if ( view ) {
+               if ( view = getView( view ) ) {
                        return window.decodeURIComponent( editor.dom.getAttrib( view, 'data-wpview-text' ) || '' );
                }
                        return window.decodeURIComponent( editor.dom.getAttrib( view, 'data-wpview-text' ) || '' );
                }
+
                return '';
        }
 
                return '';
        }
 
@@ -49,12 +55,13 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
         * @param text The text string to be set
         */
        function setViewText( view, text ) {
         * @param text The text string to be set
         */
        function setViewText( view, text ) {
-               view = getParentView( typeof view === 'string' ? editor.dom.get( view ) : view );
+               view = getView( view );
 
                if ( view ) {
                        editor.dom.setAttrib( view, 'data-wpview-text', window.encodeURIComponent( text || '' ) );
                        return true;
                }
 
                if ( view ) {
                        editor.dom.setAttrib( view, 'data-wpview-text', window.encodeURIComponent( text || '' ) );
                        return true;
                }
+
                return false;
        }
 
                return false;
        }
 
@@ -62,38 +69,86 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
                event.stopPropagation();
        }
 
                event.stopPropagation();
        }
 
+       function setViewCursor( before, view ) {
+               var location = before ? 'before' : 'after',
+                       offset = before ? 0 : 1;
+               deselect();
+               editor.selection.setCursorLocation( editor.dom.select( '.wpview-selection-' + location, view )[0], offset );
+               editor.nodeChanged();
+       }
+
+       function handleEnter( view, before, key ) {
+               var dom = editor.dom,
+                       padNode = dom.create( 'p' );
+
+               if ( ! ( Env.ie && Env.ie < 11 ) ) {
+                       padNode.innerHTML = '<br data-mce-bogus="1">';
+               }
+
+               if ( before ) {
+                       view.parentNode.insertBefore( padNode, view );
+               } else {
+                       dom.insertAfter( padNode, view );
+               }
+
+               deselect();
+
+               if ( before && key === VK.ENTER ) {
+                       setViewCursor( before, view );
+               } else {
+                       editor.selection.setCursorLocation( padNode, 0 );
+               }
+
+               editor.nodeChanged();
+       }
+
+       function removeView( view ) {
+               // TODO: trigger an event to run a clean up function.
+               // Maybe `jQuery( view ).trigger( 'remove' );`?
+               editor.undoManager.transact( function() {
+                       handleEnter( view );
+                       editor.dom.remove( view );
+               });
+       }
+
        function select( viewNode ) {
                var clipboard,
                        dom = editor.dom;
 
                // Bail if node is already selected.
        function select( viewNode ) {
                var clipboard,
                        dom = editor.dom;
 
                // Bail if node is already selected.
-               if ( viewNode === selected ) {
+               if ( ! viewNode || viewNode === selected ) {
                        return;
                }
 
                        return;
                }
 
+               // Make sure that the editor is focused.
+               // It is possible that the editor is not focused when the mouse event fires
+               // without focus, the selection will not work properly.
+               editor.getBody().focus();
+
                deselect();
                selected = viewNode;
                deselect();
                selected = viewNode;
-               dom.addClass( viewNode, 'selected' );
+               dom.setAttrib( viewNode, 'data-mce-selected', 1 );
 
                clipboard = dom.create( 'div', {
                        'class': 'wpview-clipboard',
                        'contenteditable': 'true'
                }, getViewText( viewNode ) );
 
 
                clipboard = dom.create( 'div', {
                        'class': 'wpview-clipboard',
                        'contenteditable': 'true'
                }, getViewText( viewNode ) );
 
-               // Prepend inside the wrapper
-               viewNode.insertBefore( clipboard, viewNode.firstChild );
+               editor.dom.select( '.wpview-body', viewNode )[0].appendChild( clipboard );
 
                // Both of the following are necessary to prevent manipulating the selection/focus
                dom.bind( clipboard, 'beforedeactivate focusin focusout', _stop );
                dom.bind( selected, 'beforedeactivate focusin focusout', _stop );
 
 
                // Both of the following are necessary to prevent manipulating the selection/focus
                dom.bind( clipboard, 'beforedeactivate focusin focusout', _stop );
                dom.bind( selected, 'beforedeactivate focusin focusout', _stop );
 
-               // Make sure that the editor is focused.
-               // It is possible that the editor is not focused when the mouse event fires
-               // without focus, the selection will not work properly.
-               editor.getBody().focus();
-
                // select the hidden div
                // select the hidden div
-               editor.selection.select( clipboard, true );
+               if ( isios ) {
+                       editor.selection.select( clipboard );
+               } else {
+                       editor.selection.select( clipboard, true );
+               }
+
+               editor.nodeChanged();
+               editor.fire( 'wpview-selected', viewNode );
        }
 
        /**
        }
 
        /**
@@ -109,41 +164,24 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
                        dom.remove( clipboard );
 
                        dom.unbind( selected, 'beforedeactivate focusin focusout click mouseup', _stop );
                        dom.remove( clipboard );
 
                        dom.unbind( selected, 'beforedeactivate focusin focusout click mouseup', _stop );
-                       dom.removeClass( selected, 'selected' );
+                       dom.setAttrib( selected, 'data-mce-selected', null );
                }
 
                selected = null;
        }
 
                }
 
                selected = null;
        }
 
-       function selectSiblingView( node, direction ) {
-               var body = editor.getBody(),
-                       sibling = direction === 'previous' ? 'previousSibling' : 'nextSibling';
-
-               while ( node && node.parentNode !== body ) {
-                       if ( node[sibling] ) {
-                               // The caret will be in another element
-                               return false;
-                       }
-
-                       node = node.parentNode;
-               }
-
-               if ( isView( node[sibling] ) ) {
-                       select( node[sibling] );
-                       return true;
-               }
-
-               return false;
-       }
-
        // Check if the `wp.mce` API exists.
        if ( typeof wp === 'undefined' || ! wp.mce ) {
        // Check if the `wp.mce` API exists.
        if ( typeof wp === 'undefined' || ! wp.mce ) {
-               return;
+               return {
+                       getViewText: _noop,
+                       setViewText: _noop,
+                       getView: _noop
+               };
        }
 
        // Remove the content of view wrappers from HTML string
        function emptyViews( content ) {
        }
 
        // Remove the content of view wrappers from HTML string
        function emptyViews( content ) {
-               return content.replace(/(<div[^>]+wpview-wrap[^>]+>)[\s\S]+?data-wpview-end[^>]*><\/ins><\/div>/g, '$1</div>' );
+               return content.replace(/<div[^>]+data-wpview-text=\"([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>(?:&nbsp;|\u00a0)*<\/p><\/div>/g, '$1' );
        }
 
        // Prevent adding undo levels on changes inside a view wrapper
        }
 
        // Prevent adding undo levels on changes inside a view wrapper
@@ -157,12 +195,22 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
        // matching view patterns, and transform the matches into
        // view wrappers.
        editor.on( 'BeforeSetContent', function( event ) {
        // matching view patterns, and transform the matches into
        // view wrappers.
        editor.on( 'BeforeSetContent', function( event ) {
+               var node;
+
                if ( ! event.content ) {
                        return;
                }
 
                if ( ! event.content ) {
                        return;
                }
 
-               if ( ! event.initial ) {
-                       wp.mce.views.unbind( editor );
+               if ( selected ) {
+                       removeView( selected );
+               }
+
+               node = editor.selection.getNode();
+
+               // When a url is pasted, only try to embed it when pasted in an empty paragrapgh.
+               if ( event.content.match( /^\s*(https?:\/\/[^\s"]+)\s*$/i ) &&
+                       ( node.nodeName !== 'P' || node.parentNode !== editor.getBody() || ! editor.dom.isEmpty( node ) ) ) {
+                       return;
                }
 
                event.content = wp.mce.views.toViews( event.content );
                }
 
                event.content = wp.mce.views.toViews( event.content );
@@ -170,77 +218,63 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
 
        // When the editor's content has been updated and the DOM has been
        // processed, render the views in the document.
 
        // When the editor's content has been updated and the DOM has been
        // processed, render the views in the document.
-       editor.on( 'SetContent', function( event ) {
-               var body, padNode;
-
+       editor.on( 'SetContent', function() {
                wp.mce.views.render();
                wp.mce.views.render();
-
-               // Add padding <p> if the noneditable node is last
-               if ( event.load || ! event.set ) {
-                       body = editor.getBody();
-
-                       if ( isView( body.lastChild ) ) {
-                               padNode = createPadNode();
-                               body.appendChild( padNode );
-
-                               if ( ! event.initial ) {
-                                       editor.selection.setCursorLocation( padNode, 0 );
-                               }
-                       }
-               }
        });
 
        });
 
-       // Detect mouse down events that are adjacent to a view when a view is the first view or the last view
+       // Set the cursor before or after a view when clicking next to it.
        editor.on( 'click', function( event ) {
        editor.on( 'click', function( event ) {
-               var body = editor.getBody(),
-                       doc = editor.getDoc(),
-                       scrollTop = doc.documentElement.scrollTop || body.scrollTop || 0,
-                       x, y, firstNode, lastNode, padNode;
-
-               if ( event.target.nodeName === 'HTML' && ! event.metaKey && ! event.ctrlKey ) {
-                       firstNode = body.firstChild;
-                       lastNode = body.lastChild;
-                       x = event.clientX;
-                       y = event.clientY;
-
-                       // Detect clicks above or to the left if the first node is a wpview
-                       if ( isView( firstNode ) && ( ( x < firstNode.offsetLeft && y < ( firstNode.offsetHeight - scrollTop ) ) ||
-                               y < firstNode.offsetTop ) ) {
-
-                               padNode = createPadNode();
-                               body.insertBefore( padNode, firstNode );
-
-                       // Detect clicks to the right and below the last view
-                       } else if ( isView( lastNode ) && ( x > ( lastNode.offsetLeft + lastNode.offsetWidth ) ||
-                               ( ( scrollTop + y ) - ( lastNode.offsetTop + lastNode.offsetHeight ) ) > 0 ) ) {
-
-                               padNode = createPadNode();
-                               body.appendChild( padNode );
-                       }
-
-                       if ( padNode ) {
-                               // Make sure that a selected view is deselected so that focus and selection are handled properly
-                               deselect();
-                               editor.getBody().focus();
-                               editor.selection.setCursorLocation( padNode, 0 );
-                       }
+               var x = event.clientX,
+                       y = event.clientY,
+                       body = editor.getBody(),
+                       bodyRect = body.getBoundingClientRect(),
+                       first = body.firstChild,
+                       firstRect = first.getBoundingClientRect(),
+                       last = body.lastChild,
+                       lastRect = last.getBoundingClientRect(),
+                       view;
+
+               if ( y < firstRect.top && ( view = getView( first ) ) ) {
+                       setViewCursor( true, view );
+                       event.preventDefault();
+               } else if ( y > lastRect.bottom && ( view = getView( last ) ) ) {
+                       setViewCursor( false, view );
+                       event.preventDefault();
+               } else {
+                       tinymce.each( editor.dom.select( '.wpview-wrap' ), function( view ) {
+                               var rect = view.getBoundingClientRect();
+
+                               if ( y >= rect.top && y <= rect.bottom ) {
+                                       if ( x < bodyRect.left ) {
+                                               setViewCursor( true, view );
+                                               event.preventDefault();
+                                       } else if ( x > bodyRect.right ) {
+                                               setViewCursor( false, view );
+                                               event.preventDefault();
+                                       }
+                                       return;
+                               }
+                       });
                }
        });
 
        editor.on( 'init', function() {
                }
        });
 
        editor.on( 'init', function() {
-               var selection = editor.selection;
+               var scrolled = false,
+                       selection = editor.selection,
+                       MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
+
                // When a view is selected, ensure content that is being pasted
                // or inserted is added to a text node (instead of the view).
                editor.on( 'BeforeSetContent', function() {
                        var walker, target,
                // When a view is selected, ensure content that is being pasted
                // or inserted is added to a text node (instead of the view).
                editor.on( 'BeforeSetContent', function() {
                        var walker, target,
-                               view = getParentView( selection.getNode() );
+                               view = getView( selection.getNode() );
 
                        // If the selection is not within a view, bail.
                        if ( ! view ) {
                                return;
                        }
 
 
                        // If the selection is not within a view, bail.
                        if ( ! view ) {
                                return;
                        }
 
-                       if ( ! view.nextSibling || isView( view.nextSibling ) ) {
+                       if ( ! view.nextSibling || getView( view.nextSibling ) ) {
                                // If there are no additional nodes or the next node is a
                                // view, create a text node after the current view.
                                target = editor.getDoc().createTextNode('');
                                // If there are no additional nodes or the next node is a
                                // view, create a text node after the current view.
                                target = editor.getDoc().createTextNode('');
@@ -256,86 +290,66 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
                        selection.collapse( true );
                });
 
                        selection.collapse( true );
                });
 
-               // When the selection's content changes, scan any new content
-               // for matching views.
-               //
-               // Runs on paste and on inserting nodes/html.
-               editor.on( 'SetContent', function( e ) {
-                       if ( ! e.context ) {
-                               return;
-                       }
-
-                       var node = selection.getNode();
-
-                       if ( ! node.innerHTML ) {
-                               return;
-                       }
-
-                       node.innerHTML = wp.mce.views.toViews( node.innerHTML );
+               editor.dom.bind( editor.getDoc(), 'touchmove', function() {
+                       scrolled = true;
                });
 
                });
 
-               editor.dom.bind( editor.getBody(), 'mousedown mouseup click', function( event ) {
-                       var view = getParentView( event.target ),
-                               deselectEventType;
+               editor.on( 'mousedown mouseup click touchend', function( event ) {
+                       var view = getView( event.target );
+
+                       firstFocus = false;
 
                        // Contain clicks inside the view wrapper
                        if ( view ) {
 
                        // Contain clicks inside the view wrapper
                        if ( view ) {
-                               event.stopPropagation();
-
-                               // Hack to try and keep the block resize handles from appearing. They will show on mousedown and then be removed on mouseup.
-                               if ( tinymce.Env.ie <= 10 ) {
-                                       deselect();
-                               }
-
-                               select( view );
+                               event.stopImmediatePropagation();
+                               event.preventDefault();
 
 
-                               if ( event.type === 'click' && ! event.metaKey && ! event.ctrlKey ) {
+                               if ( ( event.type === 'touchend' || event.type === 'mousedown' ) && ! event.metaKey && ! event.ctrlKey ) {
                                        if ( editor.dom.hasClass( event.target, 'edit' ) ) {
                                                wp.mce.views.edit( view );
                                        if ( editor.dom.hasClass( event.target, 'edit' ) ) {
                                                wp.mce.views.edit( view );
+                                               editor.focus();
+                                               return false;
                                        } else if ( editor.dom.hasClass( event.target, 'remove' ) ) {
                                        } else if ( editor.dom.hasClass( event.target, 'remove' ) ) {
-                                               editor.dom.remove( view );
+                                               removeView( view );
+                                               return false;
                                        }
                                }
                                        }
                                }
-                               // Returning false stops the ugly bars from appearing in IE11 and stops the view being selected as a range in FF.
-                               // Unfortunately, it also inhibits the dragging of views to a new location.
-                               return false;
-                       } else {
 
 
-                               // Fix issue with deselecting a view in IE8. Without this hack, clicking content above the view wouldn't actually deselect it
-                               // and the caret wouldn't be placed at the mouse location
-                               if ( tinymce.Env.ie && tinymce.Env.ie <= 8 ) {
-                                       deselectEventType = 'mouseup';
+                               if ( event.type === 'touchend' && scrolled ) {
+                                       scrolled = false;
                                } else {
                                } else {
-                                       deselectEventType = 'mousedown';
+                                       select( view );
                                }
 
                                }
 
-                               if ( event.type === deselectEventType ) {
+                               // Returning false stops the ugly bars from appearing in IE11 and stops the view being selected as a range in FF.
+                               // Unfortunately, it also inhibits the dragging of views to a new location.
+                               return false;
+                       } else {
+                               if ( event.type === 'touchend' || event.type === 'mousedown' ) {
                                        deselect();
                                }
                        }
                                        deselect();
                                }
                        }
-               });
-       });
 
 
-       editor.on( 'PreProcess', function( event ) {
-               var dom = editor.dom;
-
-               // Remove empty padding nodes
-               tinymce.each( dom.select( 'p[data-wpview-pad]', event.node ), function( node ) {
-                       if ( dom.isEmpty( node ) ) {
-                               dom.remove( node );
-                       } else {
-                               dom.setAttrib( node, 'data-wpview-pad', null );
+                       if ( event.type === 'touchend' && scrolled ) {
+                               scrolled = false;
                        }
                        }
-               });
+               }, true );
+
+               if ( MutationObserver ) {
+                       new MutationObserver( function() {
+                               editor.fire( 'wp-body-class-change' );
+                       } )
+                       .observe( editor.getBody(), {
+                               attributes: true,
+                               attributeFilter: ['class']
+                       } );
+               }
+       });
 
 
-               // Replace the wpview node with the wpview string/shortcode?
-               tinymce.each( dom.select( 'div[data-wpview-text]', event.node ), function( node ) {
-                       // Empty the wrap node
-                       if ( 'textContent' in node ) {
-                               node.textContent = '\u00a0';
-                       } else {
-                               node.innerText = '\u00a0';
-                       }
+       editor.on( 'PreProcess', function( event ) {
+               // Empty the wpview wrap nodes
+               tinymce.each( editor.dom.select( 'div[data-wpview-text]', event.node ), function( node ) {
+                       node.textContent = node.innerText = '\u00a0';
                });
     });
 
                });
     });
 
@@ -350,163 +364,331 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
                }
        });
 
                }
        });
 
+       // Excludes arrow keys, delete, backspace, enter, space bar.
+       // Ref: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyCode
+       function isSpecialKey( key ) {
+               return ( ( key <= 47 && key !== VK.SPACEBAR && key !== VK.ENTER && key !== VK.DELETE && key !== VK.BACKSPACE && ( key < 37 || key > 40 ) ) ||
+                       key >= 224 || // OEM or non-printable 
+                       ( key >= 144 && key <= 150 ) || // Num Lock, Scroll Lock, OEM
+                       ( key >= 91 && key <= 93 ) || // Windows keys
+                       ( key >= 112 && key <= 135 ) ); // F keys
+       }
+
+       // (De)select views when arrow keys are used to navigate the content of the editor.
        editor.on( 'keydown', function( event ) {
        editor.on( 'keydown', function( event ) {
-               var keyCode = event.keyCode,
-                       body = editor.getBody(),
-                       view, padNode;
+               var key = event.keyCode,
+                       dom = editor.dom,
+                       selection = editor.selection,
+                       node, view, cursorBefore, cursorAfter,
+                       range, clonedRange, tempRange;
 
 
-               // If a view isn't selected, let the event go on its merry way.
-               if ( ! selected ) {
-                       return;
-               }
+               if ( selected ) {
+                       // Ignore key presses that involve the command or control key, but continue when in combination with backspace or v.
+                       // Also ignore the F# keys.
+                       if ( ( ( event.metaKey || event.ctrlKey ) && key !== VK.BACKSPACE && key !== 86 ) || ( key >= 112 && key <= 123 ) ) {
+                               // Remove the view when pressing cmd/ctrl+x on keyup, otherwise the browser can't copy the content.
+                               if ( ( event.metaKey || event.ctrlKey ) && key === 88 ) {
+                                       toRemove = selected;
+                               }
+                               return;
+                       }
+
+                       view = getView( selection.getNode() );
 
 
-               // Let keypresses that involve the command or control keys through.
-               // Also, let any of the F# keys through.
-               if ( event.metaKey || event.ctrlKey || ( keyCode >= 112 && keyCode <= 123 ) ) {
-                       if ( ( event.metaKey || event.ctrlKey ) && keyCode === 88 ) {
-                               toRemove = selected;
+                       // If the caret is not within the selected view, deselect the view and bail.
+                       if ( view !== selected ) {
+                               deselect();
+                               return;
                        }
                        }
-                       return;
-               }
 
 
-               view = getParentView( editor.selection.getNode() );
+                       if ( key === VK.LEFT ) {
+                               setViewCursor( true, view );
+                               event.preventDefault();
+                       } else if ( key === VK.UP ) {
+                               if ( view.previousSibling ) {
+                                       if ( getView( view.previousSibling ) ) {
+                                               setViewCursor( true, view.previousSibling );
+                                       } else {
+                                               deselect();
+                                               selection.select( view.previousSibling, true );
+                                               selection.collapse();
+                                       }
+                               } else {
+                                       setViewCursor( true, view );
+                               }
+                               event.preventDefault();
+                       } else if ( key === VK.RIGHT ) {
+                               setViewCursor( false, view );
+                               event.preventDefault();
+                       } else if ( key === VK.DOWN ) {
+                               if ( view.nextSibling ) {
+                                       if ( getView( view.nextSibling ) ) {
+                                               setViewCursor( false, view.nextSibling );
+                                       } else {
+                                               deselect();
+                                               selection.setCursorLocation( view.nextSibling, 0 );
+                                       }
+                               } else {
+                                       setViewCursor( false, view );
+                               }
 
 
-               // If the caret is not within the selected view, deselect the
-               // view and bail.
-               if ( view !== selected ) {
-                       deselect();
-                       return;
-               }
+                               event.preventDefault();
+                       // Ignore keys that don't insert anything.
+                       } else if ( ! isSpecialKey( key ) ) {
+                               removeView( selected );
 
 
-               // Deselect views with the arrow keys
-               if ( keyCode === VK.LEFT || keyCode === VK.UP ) {
-                       deselect();
-                       // Handle case where two views are stacked on top of one another
-                       if ( isView( view.previousSibling ) ) {
-                               select( view.previousSibling );
-                       // Handle case where view is the first node
-                       } else if ( ! view.previousSibling ) {
-                               padNode = createPadNode();
-                               body.insertBefore( padNode, body.firstChild );
-                               editor.selection.setCursorLocation( body.firstChild, 0 );
-                       // Handle default case
-                       } else {
-                               editor.selection.select( view.previousSibling, true );
-                               editor.selection.collapse();
+                               if ( key === VK.ENTER || key === VK.DELETE || key === VK.BACKSPACE ) {
+                                       event.preventDefault();
+                               }
                        }
                        }
-               } else if ( keyCode === VK.RIGHT || keyCode === VK.DOWN ) {
-                       deselect();
-                       // Handle case where the next node is another wpview
-                       if ( isView( view.nextSibling ) ) {
-                               select( view.nextSibling );
-                       // Handle case were the view is that last node
-                       } else if ( ! view.nextSibling ) {
-                               padNode = createPadNode();
-                               body.appendChild( padNode );
-                               editor.selection.setCursorLocation( body.lastChild, 0 );
-                       // Handle default case where the next node is a non-wpview
-                       } else {
-                               editor.selection.setCursorLocation( view.nextSibling, 0 );
+               } else {
+                       if ( event.metaKey || event.ctrlKey || ( key >= 112 && key <= 123 ) ) {
+                               return;
                        }
                        }
-               } else if ( keyCode === VK.DELETE || keyCode === VK.BACKSPACE ) {
-                       // If delete or backspace is pressed, delete the view.
-                       editor.dom.remove( selected );
-               }
 
 
-               event.preventDefault();
-       });
-
-       // Select views when arrow keys are used to navigate the content of the editor.
-       editor.on( 'keydown', function( event ) {
-               var keyCode = event.keyCode,
-                       dom = editor.dom,
-                       range = editor.selection.getRng(),
-                       startNode = range.startContainer,
-                       body = editor.getBody(),
-                       node, container;
-
-               if ( ! startNode || startNode === body || event.metaKey || event.ctrlKey ) {
-                       return;
-               }
+                       node = selection.getNode();
+                       lastKeyDownNode = node;
+                       view = getView( node );
+
+                       // Make sure we don't delete part of a view.
+                       // If the range ends or starts with the view, we'll need to trim it.
+                       if ( ! selection.isCollapsed() ) {
+                               range = selection.getRng();
+
+                               if ( view = getView( range.endContainer ) ) {
+                                       clonedRange = range.cloneRange();
+                                       selection.select( view.previousSibling, true );
+                                       selection.collapse();
+                                       tempRange = selection.getRng();
+                                       clonedRange.setEnd( tempRange.endContainer, tempRange.endOffset );
+                                       selection.setRng( clonedRange );
+                               } else if ( view = getView( range.startContainer ) ) {
+                                       clonedRange = range.cloneRange();
+                                       clonedRange.setStart( view.nextSibling, 0 );
+                                       selection.setRng( clonedRange );
+                               }
+                       }
 
 
-               if ( keyCode === VK.UP || keyCode === VK.LEFT ) {
-                       if ( keyCode === VK.LEFT && ( ! range.collapsed || range.startOffset !== 0 ) ) {
-                               // Not at the beginning of the current range
+                       if ( ! view ) {
+                               // Make sure we don't eat any content.
+                               if ( event.keyCode === VK.BACKSPACE ) {
+                                       if ( editor.dom.isEmpty( node ) ) {
+                                               if ( view = getView( node.previousSibling ) ) {
+                                                       setViewCursor( false, view );
+                                                       editor.dom.remove( node );
+                                                       event.preventDefault();
+                                               }
+                                       } else if ( ( range = selection.getRng() ) &&
+                                                       range.startOffset === 0 &&
+                                                       range.endOffset === 0 &&
+                                                       ( view = getView( node.previousSibling ) ) ) {
+                                               setViewCursor( false, view );
+                                               event.preventDefault();
+                                       }
+                               }
                                return;
                        }
 
                                return;
                        }
 
-                       if ( ! ( node = dom.getParent( startNode, dom.isBlock ) ) ) {
+                       if ( ! ( ( cursorBefore = dom.hasClass( view, 'wpview-selection-before' ) ) ||
+                                       ( cursorAfter = dom.hasClass( view, 'wpview-selection-after' ) ) ) ) {
                                return;
                        }
 
                                return;
                        }
 
-                       if ( selectSiblingView( node, 'previous' ) ) {
-                               event.preventDefault();
-                       }
-               } else if ( keyCode === VK.DOWN || keyCode === VK.RIGHT ) {
-                       if ( ! ( node = dom.getParent( startNode, dom.isBlock ) ) ) {
+                       if ( isSpecialKey( key ) ) {
+                               // ignore
                                return;
                        }
 
                                return;
                        }
 
-                       if ( keyCode === VK.RIGHT ) {
-                               container = range.endContainer;
-
-                               if ( ! range.collapsed || ( range.startOffset === 0 && container.length ) ||
-                                       container.nextSibling ||
-                                       ( container.nodeType === 3 && range.startOffset !== container.length ) ) { // Not at the end of the current range
-
-                                       return;
+                       if ( ( cursorAfter && key === VK.UP ) || ( cursorBefore && key === VK.BACKSPACE ) ) {
+                               if ( view.previousSibling ) {
+                                       if ( getView( view.previousSibling ) ) {
+                                               setViewCursor( false, view.previousSibling );
+                                       } else {
+                                               if ( dom.isEmpty( view.previousSibling ) && key === VK.BACKSPACE ) {
+                                                       dom.remove( view.previousSibling );
+                                               } else {
+                                                       selection.select( view.previousSibling, true );
+                                                       selection.collapse();
+                                               }
+                                       }
+                               } else {
+                                       setViewCursor( true, view );
                                }
                                }
-
-                               // In a child element
-                               while ( container && container !== node && container !== body ) {
-                                       if ( container.nextSibling ) {
-                                               return;
+                               event.preventDefault();
+                       } else if ( cursorAfter && ( key === VK.DOWN || key === VK.RIGHT ) ) {
+                               if ( view.nextSibling ) {
+                                       if ( getView( view.nextSibling ) ) {
+                                               setViewCursor( key === VK.RIGHT, view.nextSibling );
+                                       } else {
+                                               selection.setCursorLocation( view.nextSibling, 0 );
+                                       }
+                               }
+                               event.preventDefault();
+                       } else if ( cursorBefore && ( key === VK.UP || key ===  VK.LEFT ) ) {
+                               if ( view.previousSibling ) {
+                                       if ( getView( view.previousSibling ) ) {
+                                               setViewCursor( key === VK.UP, view.previousSibling );
+                                       } else {
+                                               selection.select( view.previousSibling, true );
+                                               selection.collapse();
                                        }
                                        }
-                                       container = container.parentNode;
                                }
                                }
+                               event.preventDefault();
+                       } else if ( cursorBefore && key === VK.DOWN ) {
+                               if ( view.nextSibling ) {
+                                       if ( getView( view.nextSibling ) ) {
+                                               setViewCursor( true, view.nextSibling );
+                                       } else {
+                                               selection.setCursorLocation( view.nextSibling, 0 );
+                                       }
+                               } else {
+                                       setViewCursor( false, view );
+                               }
+                               event.preventDefault();
+                       } else if ( ( cursorAfter && key === VK.LEFT ) || ( cursorBefore && key === VK.RIGHT ) ) {
+                               select( view );
+                               event.preventDefault();
+                       } else if ( cursorAfter && key === VK.BACKSPACE ) {
+                               removeView( view );
+                               event.preventDefault();
+                       } else if ( cursorAfter ) {
+                               handleEnter( view );
+                       } else if ( cursorBefore ) {
+                               handleEnter( view , true, key );
                        }
 
                        }
 
-                       if ( selectSiblingView( node, 'next' ) ) {
+                       if ( key === VK.ENTER ) {
                                event.preventDefault();
                        }
                }
        });
 
                                event.preventDefault();
                        }
                }
        });
 
-       editor.on( 'keyup', function( event ) {
-               var padNode,
-                       keyCode = event.keyCode,
-                       body = editor.getBody(),
-                       range;
-
+       editor.on( 'keyup', function() {
                if ( toRemove ) {
                if ( toRemove ) {
-                       editor.dom.remove( toRemove );
+                       removeView( toRemove );
                        toRemove = false;
                }
                        toRemove = false;
                }
+       });
+
+       editor.on( 'focus', function() {
+               var view;
+
+               focus = true;
+               editor.dom.addClass( editor.getBody(), 'has-focus' );
+
+               // Edge case: show the fake caret when the editor is focused for the first time
+               // and the first element is a view.
+               if ( firstFocus && ( view = getView( editor.getBody().firstChild ) ) ) {
+                       setViewCursor( true, view );
+               }
+
+               firstFocus = false;
+       } );
+
+       editor.on( 'blur', function() {
+               focus = false;
+               editor.dom.removeClass( editor.getBody(), 'has-focus' );
+       } );
 
 
-               if ( keyCode === VK.DELETE || keyCode === VK.BACKSPACE ) {
-                       // Make sure there is padding if the last element is a view
-                       if ( isView( body.lastChild ) ) {
-                               padNode = createPadNode();
-                               body.appendChild( padNode );
+       editor.on( 'NodeChange', function( event ) {
+               var dom = editor.dom,
+                       views = editor.dom.select( '.wpview-wrap' ),
+                       className = event.element.className,
+                       view = getView( event.element ),
+                       lKDN = lastKeyDownNode;
 
 
-                               if ( body.childNodes.length === 2 ) {
-                                       editor.selection.setCursorLocation( padNode, 0 );
+               lastKeyDownNode = false;
+
+               clearInterval( cursorInterval );
+
+               // This runs a lot and is faster than replacing each class separately
+               tinymce.each( views, function ( view ) {
+                       if ( view.className ) {
+                               view.className = view.className.replace( / ?\bwpview-(?:selection-before|selection-after|cursor-hide)\b/g, '' );
+                       }
+               });
+
+               if ( focus && view ) {
+                       if ( ( className === 'wpview-selection-before' || className === 'wpview-selection-after' ) &&
+                               editor.selection.isCollapsed() ) {
+
+                               setViewCursorTries = 0;
+
+                               deselect();
+
+                               // Make sure the cursor arrived in the right node.
+                               // This is necessary for Firefox.
+                               if ( lKDN === view.previousSibling ) {
+                                       setViewCursor( true, view );
+                                       return;
+                               } else if ( lKDN === view.nextSibling ) {
+                                       setViewCursor( false, view );
+                                       return;
                                }
                                }
+
+                               dom.addClass( view, className );
+
+                               cursorInterval = setInterval( function() {
+                                       if ( dom.hasClass( view, 'wpview-cursor-hide' ) ) {
+                                               dom.removeClass( view, 'wpview-cursor-hide' );
+                                       } else {
+                                               dom.addClass( view, 'wpview-cursor-hide' );
+                                       }
+                               }, 500 );
+                       // If the cursor lands anywhere else in the view, set the cursor before it.
+                       // Only try this once to prevent a loop. (You never know.)
+                       } else if ( ! getParent( event.element, 'wpview-clipboard' ) && ! setViewCursorTries ) {
+                               deselect();
+                               setViewCursorTries++;
+                               setViewCursor( true, view );
                        }
                        }
+               }
+       });
 
 
-                       range = editor.selection.getRng();
+       editor.on( 'BeforeExecCommand', function() {
+               var node = editor.selection.getNode(),
+                       view;
 
 
-                       // Allow an initial element in the document to be removed when it is before a view
-                       if ( body.firstChild === range.startContainer && range.collapsed === true &&
-                                       isView( range.startContainer.nextSibling ) && range.startOffset === 0 ) {
+               if ( node && ( node.className === 'wpview-selection-before' || node.className === 'wpview-selection-after' ) && ( view = getView( node ) ) ) {
+                       handleEnter( view );
+                       execCommandView = view;
+               }
+       });
+
+       editor.on( 'ExecCommand', function() {
+               var toSelect, node;
+
+               if ( selected ) {
+                       toSelect = selected;
+                       deselect();
+                       select( toSelect );
+               }
 
 
-                               editor.dom.remove( range.startContainer );
+               if ( execCommandView ) {
+                       node = execCommandView.nextSibling;
+
+                       if ( node && node.nodeName === 'P' && editor.dom.isEmpty( node ) ) {
+                               editor.dom.remove( node );
+                               setViewCursor( false, execCommandView );
                        }
                        }
+
+                       execCommandView = false;
+               }
+       });
+
+       editor.on( 'ResolveName', function( event ) {
+               if ( editor.dom.hasClass( event.target, 'wpview-wrap' ) ) {
+                       event.name = editor.dom.getAttrib( event.target, 'data-wpview-type' ) || 'wpview';
+                       event.stopPropagation();
+               } else if ( getView( event.target ) ) {
+                       event.preventDefault();
+                       event.stopPropagation();
                }
        });
 
        return {
                getViewText: getViewText,
                }
        });
 
        return {
                getViewText: getViewText,
-               setViewText: setViewText
+               setViewText: setViewText,
+               getView: getView
        };
 });
        };
 });
index f11bf25fd3f3c4c163a3e59db91f6bff87f37652..d6e7866cbee9426c2432c0304ca15b902a0d8008 100644 (file)
@@ -1 +1 @@
-tinymce.PluginManager.add("wpview",function(a){function b(a){for(;a&&"BODY"!==a.nodeName;){if(c(a))return a;a=a.parentNode}}function c(a){return a&&/\bwpview-wrap\b/.test(a.className)}function d(){return a.dom.create("p",{"data-wpview-pad":1},tinymce.Env.ie&&tinymce.Env.ie<11?"":'<br data-mce-bogus="1" />')}function e(c){return c=b("string"==typeof c?a.dom.get(c):c),c?window.decodeURIComponent(a.dom.getAttrib(c,"data-wpview-text")||""):""}function f(c,d){return c=b("string"==typeof c?a.dom.get(c):c),c?(a.dom.setAttrib(c,"data-wpview-text",window.encodeURIComponent(d||"")),!0):!1}function g(a){a.stopPropagation()}function h(b){var c,d=a.dom;b!==l&&(i(),l=b,d.addClass(b,"selected"),c=d.create("div",{"class":"wpview-clipboard",contenteditable:"true"},e(b)),b.insertBefore(c,b.firstChild),d.bind(c,"beforedeactivate focusin focusout",g),d.bind(l,"beforedeactivate focusin focusout",g),a.getBody().focus(),a.selection.select(c,!0))}function i(){var b,c=a.dom;l&&(b=a.dom.select(".wpview-clipboard",l)[0],c.unbind(b),c.remove(b),c.unbind(l,"beforedeactivate focusin focusout click mouseup",g),c.removeClass(l,"selected")),l=null}function j(b,d){for(var e=a.getBody(),f="previous"===d?"previousSibling":"nextSibling";b&&b.parentNode!==e;){if(b[f])return!1;b=b.parentNode}return c(b[f])?(h(b[f]),!0):!1}function k(a){return a.replace(/(<div[^>]+wpview-wrap[^>]+>)[\s\S]+?data-wpview-end[^>]*><\/ins><\/div>/g,"$1</div>")}var l,m=tinymce.util.VK,n=tinymce.dom.TreeWalker,o=!1;if("undefined"!=typeof wp&&wp.mce)return a.on("BeforeAddUndo",function(a){a.lastLevel&&k(a.level.content)===k(a.lastLevel.content)&&a.preventDefault()}),a.on("BeforeSetContent",function(b){b.content&&(b.initial||wp.mce.views.unbind(a),b.content=wp.mce.views.toViews(b.content))}),a.on("SetContent",function(b){var e,f;wp.mce.views.render(),(b.load||!b.set)&&(e=a.getBody(),c(e.lastChild)&&(f=d(),e.appendChild(f),b.initial||a.selection.setCursorLocation(f,0)))}),a.on("click",function(b){var e,f,g,h,j,k=a.getBody(),l=a.getDoc(),m=l.documentElement.scrollTop||k.scrollTop||0;"HTML"!==b.target.nodeName||b.metaKey||b.ctrlKey||(g=k.firstChild,h=k.lastChild,e=b.clientX,f=b.clientY,c(g)&&(e<g.offsetLeft&&f<g.offsetHeight-m||f<g.offsetTop)?(j=d(),k.insertBefore(j,g)):c(h)&&(e>h.offsetLeft+h.offsetWidth||m+f-(h.offsetTop+h.offsetHeight)>0)&&(j=d(),k.appendChild(j)),j&&(i(),a.getBody().focus(),a.selection.setCursorLocation(j,0)))}),a.on("init",function(){var d=a.selection;a.on("BeforeSetContent",function(){var e,f,g=b(d.getNode());g&&(!g.nextSibling||c(g.nextSibling)?(f=a.getDoc().createTextNode(""),a.dom.insertAfter(f,g)):(e=new n(g.nextSibling,g.nextSibling),f=e.next()),d.select(f),d.collapse(!0))}),a.on("SetContent",function(a){if(a.context){var b=d.getNode();b.innerHTML&&(b.innerHTML=wp.mce.views.toViews(b.innerHTML))}}),a.dom.bind(a.getBody(),"mousedown mouseup click",function(c){var d,e=b(c.target);return e?(c.stopPropagation(),tinymce.Env.ie<=10&&i(),h(e),"click"!==c.type||c.metaKey||c.ctrlKey||(a.dom.hasClass(c.target,"edit")?wp.mce.views.edit(e):a.dom.hasClass(c.target,"remove")&&a.dom.remove(e)),!1):(d=tinymce.Env.ie&&tinymce.Env.ie<=8?"mouseup":"mousedown",void(c.type===d&&i()))})}),a.on("PreProcess",function(b){var c=a.dom;tinymce.each(c.select("p[data-wpview-pad]",b.node),function(a){c.isEmpty(a)?c.remove(a):c.setAttrib(a,"data-wpview-pad",null)}),tinymce.each(c.select("div[data-wpview-text]",b.node),function(a){"textContent"in a?a.textContent=" ":a.innerText=" "})}),a.on("PostProcess",function(a){a.content&&(a.content=a.content.replace(/<div [^>]*?data-wpview-text="([^"]*)"[^>]*>[\s\S]*?<\/div>/g,function(a,b){return b?"<p>"+window.decodeURIComponent(b)+"</p>":""}))}),a.on("keydown",function(e){var f,g,j=e.keyCode,k=a.getBody();if(l){if(e.metaKey||e.ctrlKey||j>=112&&123>=j)return void((e.metaKey||e.ctrlKey)&&88===j&&(o=l));if(f=b(a.selection.getNode()),f!==l)return void i();j===m.LEFT||j===m.UP?(i(),c(f.previousSibling)?h(f.previousSibling):f.previousSibling?(a.selection.select(f.previousSibling,!0),a.selection.collapse()):(g=d(),k.insertBefore(g,k.firstChild),a.selection.setCursorLocation(k.firstChild,0))):j===m.RIGHT||j===m.DOWN?(i(),c(f.nextSibling)?h(f.nextSibling):f.nextSibling?a.selection.setCursorLocation(f.nextSibling,0):(g=d(),k.appendChild(g),a.selection.setCursorLocation(k.lastChild,0))):(j===m.DELETE||j===m.BACKSPACE)&&a.dom.remove(l),e.preventDefault()}}),a.on("keydown",function(b){var c,d,e=b.keyCode,f=a.dom,g=a.selection.getRng(),h=g.startContainer,i=a.getBody();if(h&&h!==i&&!b.metaKey&&!b.ctrlKey)if(e===m.UP||e===m.LEFT){if(e===m.LEFT&&(!g.collapsed||0!==g.startOffset))return;if(!(c=f.getParent(h,f.isBlock)))return;j(c,"previous")&&b.preventDefault()}else if(e===m.DOWN||e===m.RIGHT){if(!(c=f.getParent(h,f.isBlock)))return;if(e===m.RIGHT){if(d=g.endContainer,!g.collapsed||0===g.startOffset&&d.length||d.nextSibling||3===d.nodeType&&g.startOffset!==d.length)return;for(;d&&d!==c&&d!==i;){if(d.nextSibling)return;d=d.parentNode}}j(c,"next")&&b.preventDefault()}}),a.on("keyup",function(b){var e,f,g=b.keyCode,h=a.getBody();o&&(a.dom.remove(o),o=!1),(g===m.DELETE||g===m.BACKSPACE)&&(c(h.lastChild)&&(e=d(),h.appendChild(e),2===h.childNodes.length&&a.selection.setCursorLocation(e,0)),f=a.selection.getRng(),h.firstChild===f.startContainer&&f.collapsed===!0&&c(f.startContainer.nextSibling)&&0===f.startOffset&&a.dom.remove(f.startContainer))}),{getViewText:e,setViewText:f}});
\ No newline at end of file
+tinymce.PluginManager.add("wpview",function(a){function b(a){return c(a,"wpview-wrap")}function c(a,b){for(;a&&a.parentNode;){if(a.className&&-1!==(" "+a.className+" ").indexOf(" "+b+" "))return a;a=a.parentNode}return!1}function d(c){return(c=b(c))?window.decodeURIComponent(a.dom.getAttrib(c,"data-wpview-text")||""):""}function e(c,d){return c=b(c),c?(a.dom.setAttrib(c,"data-wpview-text",window.encodeURIComponent(d||"")),!0):!1}function f(a){a.stopPropagation()}function g(b,c){var d=b?"before":"after",e=b?0:1;k(),a.selection.setCursorLocation(a.dom.select(".wpview-selection-"+d,c)[0],e),a.nodeChanged()}function h(b,c,d){var e=a.dom,f=e.create("p");t.ie&&t.ie<11||(f.innerHTML='<br data-mce-bogus="1">'),c?b.parentNode.insertBefore(f,b):e.insertAfter(f,b),k(),c&&d===u.ENTER?g(c,b):a.selection.setCursorLocation(f,0),a.nodeChanged()}function i(b){a.undoManager.transact(function(){h(b),a.dom.remove(b)})}function j(b){var c,e=a.dom;b&&b!==n&&(a.getBody().focus(),k(),n=b,e.setAttrib(b,"data-mce-selected",1),c=e.create("div",{"class":"wpview-clipboard",contenteditable:"true"},d(b)),a.dom.select(".wpview-body",b)[0].appendChild(c),e.bind(c,"beforedeactivate focusin focusout",f),e.bind(n,"beforedeactivate focusin focusout",f),z?a.selection.select(c):a.selection.select(c,!0),a.nodeChanged(),a.fire("wpview-selected",b))}function k(){var b,c=a.dom;n&&(b=a.dom.select(".wpview-clipboard",n)[0],c.unbind(b),c.remove(b),c.unbind(n,"beforedeactivate focusin focusout click mouseup",f),c.setAttrib(n,"data-mce-selected",null)),n=null}function l(a){return a.replace(/<div[^>]+data-wpview-text=\"([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>(?:&nbsp;|\u00a0)*<\/p><\/div>/g,"$1")}function m(a){return 47>=a&&a!==u.SPACEBAR&&a!==u.ENTER&&a!==u.DELETE&&a!==u.BACKSPACE&&(37>a||a>40)||a>=224||a>=144&&150>=a||a>=91&&93>=a||a>=112&&135>=a}var n,o,p,q,r,s,t=tinymce.Env,u=tinymce.util.VK,v=tinymce.dom.TreeWalker,w=!1,x=!0,y=function(){return!1},z=/iPad|iPod|iPhone/.test(navigator.userAgent);return"undefined"!=typeof wp&&wp.mce?(a.on("BeforeAddUndo",function(a){a.lastLevel&&l(a.level.content)===l(a.lastLevel.content)&&a.preventDefault()}),a.on("BeforeSetContent",function(b){var c;b.content&&(n&&i(n),c=a.selection.getNode(),(!b.content.match(/^\s*(https?:\/\/[^\s"]+)\s*$/i)||"P"===c.nodeName&&c.parentNode===a.getBody()&&a.dom.isEmpty(c))&&(b.content=wp.mce.views.toViews(b.content)))}),a.on("SetContent",function(){wp.mce.views.render()}),a.on("click",function(c){var d,e=c.clientX,f=c.clientY,h=a.getBody(),i=h.getBoundingClientRect(),j=h.firstChild,k=j.getBoundingClientRect(),l=h.lastChild,m=l.getBoundingClientRect();f<k.top&&(d=b(j))?(g(!0,d),c.preventDefault()):f>m.bottom&&(d=b(l))?(g(!1,d),c.preventDefault()):tinymce.each(a.dom.select(".wpview-wrap"),function(a){var b=a.getBoundingClientRect();return f>=b.top&&f<=b.bottom?void(e<i.left?(g(!0,a),c.preventDefault()):e>i.right&&(g(!1,a),c.preventDefault())):void 0})}),a.on("init",function(){var c=!1,d=a.selection,e=window.MutationObserver||window.WebKitMutationObserver;a.on("BeforeSetContent",function(){var c,e,f=b(d.getNode());f&&(!f.nextSibling||b(f.nextSibling)?(e=a.getDoc().createTextNode(""),a.dom.insertAfter(e,f)):(c=new v(f.nextSibling,f.nextSibling),e=c.next()),d.select(e),d.collapse(!0))}),a.dom.bind(a.getDoc(),"touchmove",function(){c=!0}),a.on("mousedown mouseup click touchend",function(d){var e=b(d.target);if(x=!1,e){if(d.stopImmediatePropagation(),d.preventDefault(),!("touchend"!==d.type&&"mousedown"!==d.type||d.metaKey||d.ctrlKey)){if(a.dom.hasClass(d.target,"edit"))return wp.mce.views.edit(e),a.focus(),!1;if(a.dom.hasClass(d.target,"remove"))return i(e),!1}return"touchend"===d.type&&c?c=!1:j(e),!1}("touchend"===d.type||"mousedown"===d.type)&&k(),"touchend"===d.type&&c&&(c=!1)},!0),e&&new e(function(){a.fire("wp-body-class-change")}).observe(a.getBody(),{attributes:!0,attributeFilter:["class"]})}),a.on("PreProcess",function(b){tinymce.each(a.dom.select("div[data-wpview-text]",b.node),function(a){a.textContent=a.innerText=" "})}),a.on("PostProcess",function(a){a.content&&(a.content=a.content.replace(/<div [^>]*?data-wpview-text="([^"]*)"[^>]*>[\s\S]*?<\/div>/g,function(a,b){return b?"<p>"+window.decodeURIComponent(b)+"</p>":""}))}),a.on("keydown",function(c){var d,e,f,l,o,q,r,s=c.keyCode,t=a.dom,v=a.selection;if(n){if((c.metaKey||c.ctrlKey)&&s!==u.BACKSPACE&&86!==s||s>=112&&123>=s)return void((c.metaKey||c.ctrlKey)&&88===s&&(w=n));if(e=b(v.getNode()),e!==n)return void k();s===u.LEFT?(g(!0,e),c.preventDefault()):s===u.UP?(e.previousSibling?b(e.previousSibling)?g(!0,e.previousSibling):(k(),v.select(e.previousSibling,!0),v.collapse()):g(!0,e),c.preventDefault()):s===u.RIGHT?(g(!1,e),c.preventDefault()):s===u.DOWN?(e.nextSibling?b(e.nextSibling)?g(!1,e.nextSibling):(k(),v.setCursorLocation(e.nextSibling,0)):g(!1,e),c.preventDefault()):m(s)||(i(n),(s===u.ENTER||s===u.DELETE||s===u.BACKSPACE)&&c.preventDefault())}else{if(c.metaKey||c.ctrlKey||s>=112&&123>=s)return;if(d=v.getNode(),p=d,e=b(d),v.isCollapsed()||(o=v.getRng(),(e=b(o.endContainer))?(q=o.cloneRange(),v.select(e.previousSibling,!0),v.collapse(),r=v.getRng(),q.setEnd(r.endContainer,r.endOffset),v.setRng(q)):(e=b(o.startContainer))&&(q=o.cloneRange(),q.setStart(e.nextSibling,0),v.setRng(q))),!e)return void(c.keyCode===u.BACKSPACE&&(a.dom.isEmpty(d)?(e=b(d.previousSibling))&&(g(!1,e),a.dom.remove(d),c.preventDefault()):(o=v.getRng())&&0===o.startOffset&&0===o.endOffset&&(e=b(d.previousSibling))&&(g(!1,e),c.preventDefault())));if(!(f=t.hasClass(e,"wpview-selection-before"))&&!(l=t.hasClass(e,"wpview-selection-after")))return;if(m(s))return;l&&s===u.UP||f&&s===u.BACKSPACE?(e.previousSibling?b(e.previousSibling)?g(!1,e.previousSibling):t.isEmpty(e.previousSibling)&&s===u.BACKSPACE?t.remove(e.previousSibling):(v.select(e.previousSibling,!0),v.collapse()):g(!0,e),c.preventDefault()):!l||s!==u.DOWN&&s!==u.RIGHT?!f||s!==u.UP&&s!==u.LEFT?f&&s===u.DOWN?(e.nextSibling?b(e.nextSibling)?g(!0,e.nextSibling):v.setCursorLocation(e.nextSibling,0):g(!1,e),c.preventDefault()):l&&s===u.LEFT||f&&s===u.RIGHT?(j(e),c.preventDefault()):l&&s===u.BACKSPACE?(i(e),c.preventDefault()):l?h(e):f&&h(e,!0,s):(e.previousSibling&&(b(e.previousSibling)?g(s===u.UP,e.previousSibling):(v.select(e.previousSibling,!0),v.collapse())),c.preventDefault()):(e.nextSibling&&(b(e.nextSibling)?g(s===u.RIGHT,e.nextSibling):v.setCursorLocation(e.nextSibling,0)),c.preventDefault()),s===u.ENTER&&c.preventDefault()}}),a.on("keyup",function(){w&&(i(w),w=!1)}),a.on("focus",function(){var c;r=!0,a.dom.addClass(a.getBody(),"has-focus"),x&&(c=b(a.getBody().firstChild))&&g(!0,c),x=!1}),a.on("blur",function(){r=!1,a.dom.removeClass(a.getBody(),"has-focus")}),a.on("NodeChange",function(d){var e=a.dom,f=a.dom.select(".wpview-wrap"),h=d.element.className,i=b(d.element),j=p;if(p=!1,clearInterval(o),tinymce.each(f,function(a){a.className&&(a.className=a.className.replace(/ ?\bwpview-(?:selection-before|selection-after|cursor-hide)\b/g,""))}),r&&i)if("wpview-selection-before"!==h&&"wpview-selection-after"!==h||!a.selection.isCollapsed())c(d.element,"wpview-clipboard")||q||(k(),q++,g(!0,i));else{if(q=0,k(),j===i.previousSibling)return void g(!0,i);if(j===i.nextSibling)return void g(!1,i);e.addClass(i,h),o=setInterval(function(){e.hasClass(i,"wpview-cursor-hide")?e.removeClass(i,"wpview-cursor-hide"):e.addClass(i,"wpview-cursor-hide")},500)}}),a.on("BeforeExecCommand",function(){var c,d=a.selection.getNode();d&&("wpview-selection-before"===d.className||"wpview-selection-after"===d.className)&&(c=b(d))&&(h(c),s=c)}),a.on("ExecCommand",function(){var b,c;n&&(b=n,k(),j(b)),s&&(c=s.nextSibling,c&&"P"===c.nodeName&&a.dom.isEmpty(c)&&(a.dom.remove(c),g(!1,s)),s=!1)}),a.on("ResolveName",function(c){a.dom.hasClass(c.target,"wpview-wrap")?(c.name=a.dom.getAttrib(c.target,"data-wpview-type")||"wpview",c.stopPropagation()):b(c.target)&&(c.preventDefault(),c.stopPropagation())}),{getViewText:d,setViewText:e,getView:b}):{getViewText:y,setViewText:y,getView:y}});
\ No newline at end of file
index cd2bbdf3f18f0cc7a0e6b0b3fc5704312eb1344f..f2ca5b92711279f9c6d1b965973469ab491b1dff 100644 (file)
@@ -1 +1 @@
-.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:focus{border-color:#a1a1a1}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + '&nbsp;')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB}
\ No newline at end of file
+.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0px;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + '&nbsp;')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB}
\ No newline at end of file
index 284ac1dea6d93c717d979f0e4ff6f8580abd718f..872959bcea76f4394a968cc4923867599abb3624 100644 (file)
@@ -1 +1 @@
-.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:focus{border-color:#a1a1a1}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb}
\ No newline at end of file
+.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0px;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb}
\ No newline at end of file
index 3ea7b0075a61100b60deff3e6d4e718b3759e47a..f7d4a3ad4b3b3d201ca42a5ae18187979bca0311 100644 (file)
Binary files a/wp-includes/js/tinymce/skins/wordpress/images/more.png and b/wp-includes/js/tinymce/skins/wordpress/images/more.png differ
index d252d1e524cedcc21bd0cafb59b5b93c3d1541be..9cd5c944b8864638bcc28fb97a4f9ae6c123a4bc 100644 (file)
@@ -1,24 +1,53 @@
 /* Additional default styles for the editor */
 /* Additional default styles for the editor */
+
+html.ios {
+       height: 100%;
+}
+
+.ios body#tinymce {
+       height: 200%;
+       max-width: none;
+}
+
 body {
        font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
        font-size: 13px;
        line-height: 19px;
        color: #333;
 body {
        font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
        font-size: 13px;
        line-height: 19px;
        color: #333;
-       margin: 10px;
+       margin: 9px 10px;
+}
+
+body.wp-autoresize {
+       max-width: 100%;
+       overflow: visible !important;
+       /* The padding ensures margins of the children are contained in the body. */
+       padding-top: 1px !important;
+       padding-bottom: 1px !important;
+       padding-left: 0 !important;
+       padding-right: 0 !important;
+}
+
+/* When font-weight is different than the default browser style,
+Chrome and Safari replace <strong> and <b> with spans with inline styles on pasting?! */
+body.webkit strong,
+body.webkit b {
+       font-weight: bold !important;
 }
 
 /* DFW mode */
 html.wp-fullscreen,
 }
 
 /* DFW mode */
 html.wp-fullscreen,
-html.wp-fullscreen body {
-       background: transparent;
+html.wp-fullscreen body#tinymce {
        width: auto;
        max-width: none;
        min-height: 0;
        overflow: hidden;
        width: auto;
        max-width: none;
        min-height: 0;
        overflow: hidden;
+       color: #333;
+       background: transparent;
 }
 
 .aligncenter,
 }
 
 .aligncenter,
-dl.aligncenter {
+dl.aligncenter,
+.html5-captions .wp-caption.aligncenter {
        display: block;
        margin-left: auto;
        margin-right: auto;
        display: block;
        margin-left: auto;
        margin-right: auto;
@@ -94,8 +123,7 @@ img::selection {
        padding: 0;
 }
 
        padding: 0;
 }
 
-.mce-content-body img.mce-wp-nextpage,
-.mce-content-body img.mce-wp-more {
+.mce-content-body img[data-wp-more] {
        border: 0;
        -webkit-box-shadow: none;
        box-shadow: none;
        border: 0;
        -webkit-box-shadow: none;
        box-shadow: none;
@@ -107,16 +135,15 @@ img::selection {
        cursor: default;
 }
 
        cursor: default;
 }
 
-.mce-content-body img.mce-wp-nextpage[data-mce-selected],
-.mce-content-body img.mce-wp-more[data-mce-selected] {
+.mce-content-body img[data-wp-more][data-mce-selected] {
        outline: 1px dotted #888;
 }
 
        outline: 1px dotted #888;
 }
 
-.mce-content-body img.mce-wp-more {
+.mce-content-body img[data-wp-more="more"] {
        background: transparent url( images/more.png ) repeat-y scroll center center;
 }
 
        background: transparent url( images/more.png ) repeat-y scroll center center;
 }
 
-.mce-content-body img.mce-wp-nextpage {
+.mce-content-body img[data-wp-more="nextpage"] {
     background: transparent url( images/pagebreak.png ) repeat-y scroll center center;
 }
 
     background: transparent url( images/pagebreak.png ) repeat-y scroll center center;
 }
 
@@ -166,7 +193,6 @@ video,
 embed {
        display: -moz-inline-stack;
        display: inline-block;
 embed {
        display: -moz-inline-stack;
        display: inline-block;
-       max-width: 100%;
 }
 
 audio {
 }
 
 audio {
@@ -185,7 +211,9 @@ audio {
 
 /* delegate the handling of the selection to the wpview tinymce plugin */
 .wpview-wrap,
 
 /* delegate the handling of the selection to the wpview tinymce plugin */
 .wpview-wrap,
-.wpview-wrap * {
+.wpview-wrap *,
+#wp-image-toolbar,
+#wp-image-toolbar * {
        -moz-user-select: none;
        -webkit-user-select: none;
        -ms-user-select: none;
        -moz-user-select: none;
        -webkit-user-select: none;
        -ms-user-select: none;
@@ -193,7 +221,8 @@ audio {
 }
 
 /* hide the shortcode content, but allow the content to still be selected */
 }
 
 /* hide the shortcode content, but allow the content to still be selected */
-.wpview-wrap .wpview-clipboard {
+.wpview-wrap .wpview-clipboard,
+.wpview-wrap > p {
        position: absolute;
        top: 0;
        left: 0;
        position: absolute;
        top: 0;
        left: 0;
@@ -208,6 +237,45 @@ audio {
        height: 1px;
 }
 
        height: 1px;
 }
 
+/* An ugly box will appear when this is focussed in IE, so we'll move it outside the window. */
+.wpview-wrap.wpview-selection-before > p,
+.wpview-wrap.wpview-selection-after > p {
+       left: -10000px;
+}
+
+.wpview-wrap .wpview-clipboard,
+.wpview-wrap .wpview-clipboard *,
+.wpview-wrap > p {
+       -moz-user-select: text;
+       -webkit-user-select: text;
+       -ms-user-select: text;
+       user-select: text;
+}
+
+.has-focus .wpview-wrap.wpview-selection-before:before,
+.has-focus .wpview-wrap.wpview-selection-after:before {
+       content: '';
+       margin: 0;
+       padding: 0;
+       position: absolute;
+       top: -2px;
+       left: -3px;
+       bottom: -2px;
+       width: 1px;
+       background-color: black;
+       background-color: currentcolor;
+       opacity: 1;
+}
+
+.has-focus .wpview-wrap.wpview-selection-after:before {
+       left: auto;
+       right: -3px;
+}
+
+.has-focus .wpview-wrap.wpview-cursor-hide:before {
+       opacity: 0;
+}
+
 /**
  * Media previews
  */
 /**
  * Media previews
  */
@@ -217,13 +285,13 @@ audio {
        border: 1px solid transparent;
 }
 
        border: 1px solid transparent;
 }
 
-.wpview-wrap.selected {
+.wpview-wrap[data-mce-selected] {
        background-color: rgba(0,0,0,0.1);
        border-color: rgba(0,0,0,0.3);
 }
 
        background-color: rgba(0,0,0,0.1);
        border-color: rgba(0,0,0,0.3);
 }
 
-.ie8 .wpview-wrap.selected,
-.ie7 .wpview-wrap.selected {
+.ie8 .wpview-wrap[data-mce-selected],
+.ie7 .wpview-wrap[data-mce-selected] {
        background-color: #e5e5e5;
        border-color: #777;
 }
        background-color: #e5e5e5;
        border-color: #777;
 }
@@ -236,7 +304,7 @@ audio {
        left: 0;
 }
 
        left: 0;
 }
 
-.wpview-wrap.selected .wpview-overlay {
+.wpview-wrap[data-mce-selected] .wpview-overlay {
        display: none;
 }
 
        display: none;
 }
 
@@ -248,16 +316,68 @@ audio {
        z-index: 100;
 }
 
        z-index: 100;
 }
 
-.wpview-wrap.selected .toolbar {
+.wpview-wrap[data-mce-selected] .toolbar {
+       display: block;
+}
+
+.wpview-wrap .loading-placeholder {
+       border: 1px dashed #ccc;
+       padding: 10px;
+}
+
+.wpview-wrap[data-mce-selected] .loading-placeholder {
+       border-color: transparent;
+}
+
+/* A little "loading" animation, not showing in IE < 10 */
+.wpview-wrap .wpview-loading {
+       width: 60px;
+       height: 5px;
+       overflow: hidden;
+       background-color: transparent;
+       margin: 10px auto 0;
+}
+
+.wpview-wrap .wpview-loading ins {
+       background-color: #333;
+       margin: 0 0 0 -60px;
+       width: 60px;
+       height: 5px;
        display: block;
        display: block;
+       -webkit-animation: wpview-loading 1.3s infinite 1s linear;
+       animation: wpview-loading 1.3s infinite 1s linear;
+}
+
+@-webkit-keyframes wpview-loading {
+       0% {
+               margin-left: -60px;
+       }
+       100% {
+               margin-left: 60px;
+       }
+}
+
+@keyframes wpview-loading {
+       0% {
+               margin-left: -60px;
+       }
+       100% {
+               margin-left: 60px;
+       }
+}
+
+.wpview-wrap .wpview-content > iframe {
+       max-width: 100%;
+       background: transparent;
 }
 
 #wp-image-toolbar {
        position: absolute;
 }
 
 #wp-image-toolbar {
        position: absolute;
+       margin: 0;
 }
 
 .wpview-wrap .toolbar div,
 }
 
 .wpview-wrap .toolbar div,
-#wp-image-toolbar div {
+#wp-image-toolbar i {
        margin-top: 7px;
        margin-left: 7px;
        padding: 2px;
        margin-top: 7px;
        margin-left: 7px;
        padding: 2px;
@@ -273,8 +393,8 @@ audio {
 
 .ie8 .wpview-wrap .toolbar div,
 .ie7 .wpview-wrap .toolbar div,
 
 .ie8 .wpview-wrap .toolbar div,
 .ie7 .wpview-wrap .toolbar div,
-.ie8 #wp-image-toolbar div,
-.ie7 #wp-image-toolbar div {
+.ie8 #wp-image-toolbar i,
+.ie7 #wp-image-toolbar i {
        display: inline;
        padding: 0;
 }
        display: inline;
        padding: 0;
 }
@@ -291,15 +411,17 @@ audio {
 
 .wpview-error {
        border: 1px solid #dedede;
 
 .wpview-error {
        border: 1px solid #dedede;
-       padding: 20px 0;
+       padding: 1em 0;
        margin: 0;
        margin: 0;
+       word-wrap: break-word;
 }
 
 }
 
-.selected .wpview-error {
+.wpview-wrap[data-mce-selected] .wpview-error {
        border-color: transparent;
 }
 
        border-color: transparent;
 }
 
-.wpview-error .dashicons {
+.wpview-error .dashicons,
+.loading-placeholder .dashicons {
        display: block;
        margin: 0 auto;
        width: 32px;
        display: block;
        margin: 0 auto;
        width: 32px;
@@ -313,25 +435,24 @@ audio {
        font-family: 'Open Sans', sans-serif;
 }
 
        font-family: 'Open Sans', sans-serif;
 }
 
-
 .wpview-wrap .toolbar div:hover,
 .wpview-wrap .toolbar div:hover,
-#wp-image-toolbar div:hover {
+#wp-image-toolbar i:hover {
        box-shadow: 0 1px 3px rgba(0,0,0,0.8);
        background-color: #000;
        color: #2ea2cc;
 }
 
 /* Audio player is short; therefore let's put the toolbar above */
        box-shadow: 0 1px 3px rgba(0,0,0,0.8);
        background-color: #000;
        color: #2ea2cc;
 }
 
 /* Audio player is short; therefore let's put the toolbar above */
-.wpview-type-audio .toolbar {
+.wpview-wrap[data-wpview-type="audio"] .toolbar {
        top: auto;
        bottom: -34px;
 }
 
        top: auto;
        bottom: -34px;
 }
 
-.wpview-type-audio .toolbar div {
+.wpview-wrap[data-wpview-type="audio"] .toolbar div {
        margin-top: 0;
 }
 
        margin-top: 0;
 }
 
-.wpview-type-audio .toolbar div:first-child {
+.wpview-wrap[data-wpview-type="audio"] .toolbar div:first-child {
        margin-left: 0;
 }
 
        margin-left: 0;
 }
 
@@ -467,7 +588,7 @@ img.wp-oembed {
 }
 
 .rtl .wpview-wrap .toolbar div,
 }
 
 .rtl .wpview-wrap .toolbar div,
-.rtl #wp-image-toolbar div {
+.rtl #wp-image-toolbar i {
        margin-left: auto;
        margin-right: 7px;
 }
        margin-left: auto;
        margin-right: 7px;
 }
index 614cdbc9dd9cda0bb86f9ea6c0240b1de13ce35d..db77f1a27ecc5ba8c623565a08e4d764b0dede16 100644 (file)
@@ -342,13 +342,13 @@ tinymce.ThemeManager.add('modern', function(editor) {
                        width = Math.max(settings.min_width || 100, width);
                        width = Math.min(settings.max_width || 0xFFFF, width);
 
                        width = Math.max(settings.min_width || 100, width);
                        width = Math.min(settings.max_width || 0xFFFF, width);
 
-                       DOM.css(containerElm, 'width', width + (containerSize.width - iframeSize.width));
-                       DOM.css(iframeElm, 'width', width);
+                       DOM.setStyle(containerElm, 'width', width + (containerSize.width - iframeSize.width));
+                       DOM.setStyle(iframeElm, 'width', width);
                }
 
                height = Math.max(settings.min_height || 100, height);
                height = Math.min(settings.max_height || 0xFFFF, height);
                }
 
                height = Math.max(settings.min_height || 100, height);
                height = Math.min(settings.max_height || 0xFFFF, height);
-               DOM.css(iframeElm, 'height', height);
+               DOM.setStyle(iframeElm, 'height', height);
 
                editor.fire('ResizeEditor');
        }
 
                editor.fire('ResizeEditor');
        }
@@ -383,7 +383,7 @@ tinymce.ThemeManager.add('modern', function(editor) {
                                        deltaY = Math.max(0, scrollContainerPos.y - bodyPos.y);
                                }
 
                                        deltaY = Math.max(0, scrollContainerPos.y - bodyPos.y);
                                }
 
-                               panel.fixed(false).moveRel(body, editor.rtl ? ['tr-br', 'br-tr'] : ['tl-bl', 'bl-tl']).moveBy(deltaX, deltaY);
+                               panel.fixed(false).moveRel(body, editor.rtl ? ['tr-br', 'br-tr'] : ['tl-bl', 'bl-tl', 'tr-br']).moveBy(deltaX, deltaY);
                        }
                }
 
                        }
                }
 
@@ -460,7 +460,7 @@ tinymce.ThemeManager.add('modern', function(editor) {
                        }
                });
 
                        }
                });
 
-               editor.on('blur', hide);
+               editor.on('blur hide', hide);
 
                // Remove the panel when the editor is removed
                editor.on('remove', function() {
 
                // Remove the panel when the editor is removed
                editor.on('remove', function() {
index 7efbb0d698307388649037fe991ccf7c474d45af..ea84b66b669cd689ff8789392d60e0aae3ef3906 100644 (file)
@@ -1 +1 @@
-tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var i,o=[];if(t)return d(t.split(/[ ,]/),function(t){function n(){var n=e.selection;"bullist"==r&&n.selectorChanged("ul > li",function(e,n){for(var i,o=n.parents.length;o--&&(i=n.parents[o].nodeName,"OL"!=i&&"UL"!=i););t.active(e&&"UL"==i)}),"numlist"==r&&n.selectorChanged("ol > li",function(e,n){for(var i,o=n.parents.length;o--&&(i=n.parents[o].nodeName,"OL"!=i&&"UL"!=i););t.active(e&&"OL"==i)}),t.settings.stateSelector&&n.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&n.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?i=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),i=null):(i||(i={type:"buttongroup",items:[]},o.push(i)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),i.items.push(t),e.initialized?n():e.on("init",n)))}),n.push({type:"toolbar",layout:"flow",items:o}),!0}var n=[];if(tinymce.isArray(u.toolbar)){if(0===u.toolbar.length)return;tinymce.each(u.toolbar,function(e,t){u["toolbar"+(t+1)]=e}),delete u.toolbar}for(var i=1;10>i&&t(u["toolbar"+i]);i++);return n.length||u.toolbar===!1||t(u.toolbar||f),n.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:n}:void 0}function n(){function t(t){var n;return"|"==t?{text:"|"}:n=e.menuItems[t]}function n(n){var i,o,r,a,s;if(s=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[n],a=!0):o=h[n],o){i={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var n=t(e);n&&!s[e]&&r.push(t(e))}),a||d(e.menuItems,function(e){e.context==n&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l<r.length;l++)"|"==r[l].text&&(0===l||l==r.length-1)&&r.splice(l,1);if(i.menu=r,!i.menu.length)return null}return i}var i,o=[],r=[];if(u.menu)for(i in u.menu)r.push(i);else for(i in h)r.push(i);for(var a="string"==typeof u.menubar?u.menubar.split(/[ ,]/):r,s=0;s<a.length;s++){var l=a[s];l=n(l),l&&o.push(l)}return o}function i(t){function n(e){var n=t.find(e)[0];n&&n.focus(!0)}e.shortcuts.add("Alt+F9","",function(){n("menubar")}),e.shortcuts.add("Alt+F10","",function(){n("toolbar")}),e.shortcuts.add("Alt+F11","",function(){n("elementpath")}),t.on("cancel",function(){e.focus()})}function o(t,n){function i(e){return{width:e.clientWidth,height:e.clientHeight}}var o,r,a,s;o=e.getContainer(),r=e.getContentAreaContainer().firstChild,a=i(o),s=i(r),null!==t&&(t=Math.max(u.min_width||100,t),t=Math.min(u.max_width||65535,t),m.css(o,"width",t+(a.width-s.width)),m.css(r,"width",t)),n=Math.max(u.min_height||100,n),n=Math.min(u.max_height||65535,n),m.css(r,"height",n),e.fire("ResizeEditor")}function r(t,n){var i=e.getContentAreaContainer();l.resizeTo(i.clientWidth+t,i.clientHeight+n)}function a(o){function r(){if(h&&h.moveRel&&h.visible()&&!h._fixed){var t=e.selection.getScrollContainer(),n=e.getBody(),i=0,o=0;if(t){var r=m.getPos(n),a=m.getPos(t);i=Math.max(0,a.x-r.x),o=Math.max(0,a.y-r.y)}h.fixed(!1).moveRel(n,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl"]).moveBy(i,o)}}function a(){h&&(h.show(),r(),m.addClass(e.getBody(),"mce-edit-focus"))}function s(){h&&(h.hide(),m.removeClass(e.getBody(),"mce-edit-focus"))}function d(){return h?void(h.visible()||a()):(h=l.panel=c.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:n()},t()]}),e.fire("BeforeRenderUI"),h.renderTo(f||document.body).reflow(),i(h),a(),e.on("nodeChange",r),e.on("activate",a),e.on("deactivate",s),void e.nodeChanged())}var h,f;return u.fixed_toolbar_container&&(f=m.select(u.fixed_toolbar_container)[0]),u.content_editable=!0,e.on("focus",function(){o.skinUiCss?tinymce.DOM.styleSheetLoader.load(o.skinUiCss,d,d):d()}),e.on("blur",s),e.on("remove",function(){h&&(h.remove(),h=null)}),o.skinUiCss&&tinymce.DOM.styleSheetLoader.load(o.skinUiCss),{}}function s(r){var a,s,d;return r.skinUiCss&&tinymce.DOM.loadCSS(r.skinUiCss),a=l.panel=c.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:n()},t(),{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),u.resize!==!1&&(s={type:"resizehandle",direction:u.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;d={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==u.resize?o(d.width+e.deltaX,d.height+e.deltaY):o(null,d.height+e.deltaY)}}),u.statusbar!==!1&&a.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},s]}),u.readonly&&a.find("*").disabled(!0),e.fire("BeforeRenderUI"),a.renderBefore(r.targetNode).reflow(),u.width&&tinymce.DOM.setStyle(a.getEl(),"width",u.width),e.on("remove",function(){a.remove(),a=null}),i(a),{iframeContainer:a.find("#iframe")[0].getEl(),editorContainer:a.getEl()}}var l=this,u=e.settings,c=tinymce.ui.Factory,d=tinymce.each,m=tinymce.DOM,h={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var n=u.skin!==!1?u.skin||"lightgray":!1;if(n){var i=u.skin_url;i=i?e.documentBaseURI.toAbsolute(i):tinymce.baseURL+"/skins/"+n,t.skinUiCss=tinymce.Env.documentMode<=7?i+"/skin.ie7.min.css":i+"/skin.min.css",e.contentCSS.push(i+"/content"+(e.inline?".inline":"")+".min.css")}return e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),u.inline?a(t):s(t)},l.resizeTo=o,l.resizeBy=r});
\ No newline at end of file
+tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var n,o=[];if(t)return d(t.split(/[ ,]/),function(t){function i(){var i=e.selection;"bullist"==r&&i.selectorChanged("ul > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"UL"==n)}),"numlist"==r&&i.selectorChanged("ol > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"OL"==n)}),t.settings.stateSelector&&i.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&i.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?n=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),n=null):(n||(n={type:"buttongroup",items:[]},o.push(n)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),n.items.push(t),e.initialized?i():e.on("init",i)))}),i.push({type:"toolbar",layout:"flow",items:o}),!0}var i=[];if(tinymce.isArray(u.toolbar)){if(0===u.toolbar.length)return;tinymce.each(u.toolbar,function(e,t){u["toolbar"+(t+1)]=e}),delete u.toolbar}for(var n=1;10>n&&t(u["toolbar"+n]);n++);return i.length||u.toolbar===!1||t(u.toolbar||f),i.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:i}:void 0}function i(){function t(t){var i;return"|"==t?{text:"|"}:i=e.menuItems[t]}function i(i){var n,o,r,a,s;if(s=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[i],a=!0):o=h[i],o){n={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var i=t(e);i&&!s[e]&&r.push(t(e))}),a||d(e.menuItems,function(e){e.context==i&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l<r.length;l++)"|"==r[l].text&&(0===l||l==r.length-1)&&r.splice(l,1);if(n.menu=r,!n.menu.length)return null}return n}var n,o=[],r=[];if(u.menu)for(n in u.menu)r.push(n);else for(n in h)r.push(n);for(var a="string"==typeof u.menubar?u.menubar.split(/[ ,]/):r,s=0;s<a.length;s++){var l=a[s];l=i(l),l&&o.push(l)}return o}function n(t){function i(e){var i=t.find(e)[0];i&&i.focus(!0)}e.shortcuts.add("Alt+F9","",function(){i("menubar")}),e.shortcuts.add("Alt+F10","",function(){i("toolbar")}),e.shortcuts.add("Alt+F11","",function(){i("elementpath")}),t.on("cancel",function(){e.focus()})}function o(t,i){function n(e){return{width:e.clientWidth,height:e.clientHeight}}var o,r,a,s;o=e.getContainer(),r=e.getContentAreaContainer().firstChild,a=n(o),s=n(r),null!==t&&(t=Math.max(u.min_width||100,t),t=Math.min(u.max_width||65535,t),m.setStyle(o,"width",t+(a.width-s.width)),m.setStyle(r,"width",t)),i=Math.max(u.min_height||100,i),i=Math.min(u.max_height||65535,i),m.setStyle(r,"height",i),e.fire("ResizeEditor")}function r(t,i){var n=e.getContentAreaContainer();l.resizeTo(n.clientWidth+t,n.clientHeight+i)}function a(o){function r(){if(h&&h.moveRel&&h.visible()&&!h._fixed){var t=e.selection.getScrollContainer(),i=e.getBody(),n=0,o=0;if(t){var r=m.getPos(i),a=m.getPos(t);n=Math.max(0,a.x-r.x),o=Math.max(0,a.y-r.y)}h.fixed(!1).moveRel(i,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(n,o)}}function a(){h&&(h.show(),r(),m.addClass(e.getBody(),"mce-edit-focus"))}function s(){h&&(h.hide(),m.removeClass(e.getBody(),"mce-edit-focus"))}function d(){return h?void(h.visible()||a()):(h=l.panel=c.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t()]}),e.fire("BeforeRenderUI"),h.renderTo(f||document.body).reflow(),n(h),a(),e.on("nodeChange",r),e.on("activate",a),e.on("deactivate",s),void e.nodeChanged())}var h,f;return u.fixed_toolbar_container&&(f=m.select(u.fixed_toolbar_container)[0]),u.content_editable=!0,e.on("focus",function(){o.skinUiCss?tinymce.DOM.styleSheetLoader.load(o.skinUiCss,d,d):d()}),e.on("blur hide",s),e.on("remove",function(){h&&(h.remove(),h=null)}),o.skinUiCss&&tinymce.DOM.styleSheetLoader.load(o.skinUiCss),{}}function s(r){var a,s,d;return r.skinUiCss&&tinymce.DOM.loadCSS(r.skinUiCss),a=l.panel=c.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t(),{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),u.resize!==!1&&(s={type:"resizehandle",direction:u.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;d={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==u.resize?o(d.width+e.deltaX,d.height+e.deltaY):o(null,d.height+e.deltaY)}}),u.statusbar!==!1&&a.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},s]}),u.readonly&&a.find("*").disabled(!0),e.fire("BeforeRenderUI"),a.renderBefore(r.targetNode).reflow(),u.width&&tinymce.DOM.setStyle(a.getEl(),"width",u.width),e.on("remove",function(){a.remove(),a=null}),n(a),{iframeContainer:a.find("#iframe")[0].getEl(),editorContainer:a.getEl()}}var l=this,u=e.settings,c=tinymce.ui.Factory,d=tinymce.each,m=tinymce.DOM,h={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var i=u.skin!==!1?u.skin||"lightgray":!1;if(i){var n=u.skin_url;n=n?e.documentBaseURI.toAbsolute(n):tinymce.baseURL+"/skins/"+i,t.skinUiCss=tinymce.Env.documentMode<=7?n+"/skin.ie7.min.css":n+"/skin.min.css",e.contentCSS.push(n+"/content"+(e.inline?".inline":"")+".min.css")}return e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),u.inline?a(t):s(t)},l.resizeTo=o,l.resizeBy=r});
\ No newline at end of file
index 271e76c5d7334f5fe7eca353dbdbd36705013dca..24009c84c3ac60da601948807da5c913372d1372 100644 (file)
@@ -1,10 +1,11 @@
-// 4.0.21.1 (2014-04-09)
-!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/EventUtils",c="tinymce/dom/Sizzle",u="tinymce/dom/DomQuery",d="tinymce/html/Styles",f="tinymce/dom/TreeWalker",p="tinymce/util/Tools",m="tinymce/dom/Range",h="tinymce/html/Entities",g="tinymce/Env",v="tinymce/dom/StyleSheetLoader",y="tinymce/dom/DOMUtils",b="tinymce/dom/ScriptLoader",C="tinymce/AddOnManager",x="tinymce/html/Node",w="tinymce/html/Schema",_="tinymce/html/SaxParser",N="tinymce/html/DomParser",E="tinymce/html/Writer",S="tinymce/html/Serializer",k="tinymce/dom/Serializer",T="tinymce/dom/TridentSelection",R="tinymce/util/VK",A="tinymce/dom/ControlSelection",B="tinymce/dom/RangeUtils",L="tinymce/dom/Selection",D="tinymce/fmt/Preview",M="tinymce/Formatter",H="tinymce/UndoManager",P="tinymce/EnterKey",O="tinymce/ForceBlocks",I="tinymce/EditorCommands",F="tinymce/util/URI",z="tinymce/util/Class",W="tinymce/ui/Selector",V="tinymce/ui/Collection",U="tinymce/ui/DomUtils",q="tinymce/ui/Control",$="tinymce/ui/Factory",j="tinymce/ui/KeyboardNavigation",K="tinymce/ui/Container",Y="tinymce/ui/DragHelper",G="tinymce/ui/Scrollable",X="tinymce/ui/Panel",J="tinymce/ui/Movable",Q="tinymce/ui/Resizable",Z="tinymce/ui/FloatPanel",et="tinymce/ui/Window",tt="tinymce/ui/MessageBox",nt="tinymce/WindowManager",rt="tinymce/util/Quirks",it="tinymce/util/Observable",ot="tinymce/Shortcuts",at="tinymce/Editor",st="tinymce/util/I18n",lt="tinymce/FocusManager",ct="tinymce/EditorManager",ut="tinymce/LegacyInput",dt="tinymce/util/XHR",ft="tinymce/util/JSON",pt="tinymce/util/JSONRequest",mt="tinymce/util/JSONP",ht="tinymce/util/LocalStorage",gt="tinymce/Compat",vt="tinymce/ui/Layout",yt="tinymce/ui/AbsoluteLayout",bt="tinymce/ui/Tooltip",Ct="tinymce/ui/Widget",xt="tinymce/ui/Button",wt="tinymce/ui/ButtonGroup",_t="tinymce/ui/Checkbox",Nt="tinymce/ui/PanelButton",Et="tinymce/ui/ColorButton",St="tinymce/ui/ComboBox",kt="tinymce/ui/Path",Tt="tinymce/ui/ElementPath",Rt="tinymce/ui/FormItem",At="tinymce/ui/Form",Bt="tinymce/ui/FieldSet",Lt="tinymce/ui/FilePicker",Dt="tinymce/ui/FitLayout",Mt="tinymce/ui/FlexLayout",Ht="tinymce/ui/FlowLayout",Pt="tinymce/ui/FormatControls",Ot="tinymce/ui/GridLayout",It="tinymce/ui/Iframe",Ft="tinymce/ui/Label",zt="tinymce/ui/Toolbar",Wt="tinymce/ui/MenuBar",Vt="tinymce/ui/MenuButton",Ut="tinymce/ui/ListBox",qt="tinymce/ui/MenuItem",$t="tinymce/ui/Menu",jt="tinymce/ui/Radio",Kt="tinymce/ui/ResizeHandle",Yt="tinymce/ui/Spacer",Gt="tinymce/ui/SplitButton",Xt="tinymce/ui/StackLayout",Jt="tinymce/ui/TabPanel",Qt="tinymce/ui/TextBox",Zt="tinymce/ui/Throbber";r(l,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function t(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function n(e,t){function n(){return!1}function r(){return!0}var i,o=t||{},l;for(i in e)s[i]||(o[i]=e[i]);if(o.target||(o.target=o.srcElement||document),e&&a.test(e.type)&&e.pageX===l&&e.clientX!==l){var c=o.target.ownerDocument||document,u=c.documentElement,d=c.body;o.pageX=e.clientX+(u&&u.scrollLeft||d&&d.scrollLeft||0)-(u&&u.clientLeft||d&&d.clientLeft||0),o.pageY=e.clientY+(u&&u.scrollTop||d&&d.scrollTop||0)-(u&&u.clientTop||d&&d.clientTop||0)}return o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function r(n,r,i){function o(){i.domLoaded||(i.domLoaded=!0,r(c))}function a(){("complete"===l.readyState||"interactive"===l.readyState&&l.body)&&(t(l,"readystatechange",a),o())}function s(){try{l.documentElement.doScroll("left")}catch(e){return void setTimeout(s,0)}o()}var l=n.document,c={type:"ready"};return i.domLoaded?void r(c):(l.addEventListener?"complete"===l.readyState?o():e(n,"DOMContentLoaded",o):(e(l,"readystatechange",a),l.documentElement.doScroll&&n.self===n.top&&s()),void e(n,"load",o))}function i(){function i(e,t){var n,r,i,o,a=s[t];if(n=a&&a[e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,u,d,f;c=o+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,m){function h(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),m=m||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=h,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(m,n({type:b})):(d||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:m}):(s[g][b]=v=[{func:p,scope:m}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],o=f[d]){if(r)for(u=o.length;u--;)if(o[u].func===r){var p=o.nativeHandler,m=o.fakeName,h=o.capture;o=o.slice(0,u).concat(o.slice(u+1)),o.nativeHandler=p,o.fakeName=m,o.capture=h,f[d]=o}r&&0!==o.length||(delete f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture))}}else{for(d in f)o=f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture);f={}}for(d in f)return a;delete s[i];try{delete e[c]}catch(g){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1,returnValue:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(c,[],function(){function e(e){return ht.test(e+"")}function n(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>_.cacheLength&&delete e[t.shift()],e[n]=r,r}}function r(e){return e[I]=!0,e}function i(e){var t=B.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t=null}}function o(e,t,n,r){var i,o,a,s,l,c,f,p,m,h;if((t?t.ownerDocument||t:F)!==B&&A(t),t=t||B,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(D&&!r){if(i=gt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&O(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&z.getElementsByClassName&&t.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(z.qsa&&!M.test(e)){if(f=!0,p=I,m=t,h=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=u(e),(f=t.getAttribute("id"))?p=f.replace(bt,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+d(c[l]);m=mt.test(e)&&t.parentNode||t,h=c.join(",")}if(h)try{return Z.apply(n,m.querySelectorAll(h)),n}catch(g){}finally{f||t.removeAttribute("id")}}}return b(e.replace(lt,"$1"),t,n,r)}function a(e,t){var n=t&&e,r=n&&(~t.sourceIndex||G)-(~e.sourceIndex||G);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e,t){var n,r,i,a,s,l,c,u=q[e+" "];if(u)return t?0:u.slice(0);for(s=e,l=[],c=_.preFilter;s;){(!n||(r=ct.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=ut.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(lt," ")}),s=s.slice(n.length));for(a in _.filter)!(r=pt[a].exec(s))||c[a]&&!(r=c[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?o.error(e):q(e,l).slice(0)}function d(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function f(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=V++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c,u=W+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(c=t[I]||(t[I]={}),(l=c[r])&&l[0]===u){if((s=l[1])===!0||s===w)return s===!0}else if(l=c[r]=[u],l[1]=e(t,n,a)||w,l[1]===!0)return!0}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function h(e,t,n,i,o,a){return i&&!i[I]&&(i=h(i)),o&&!o[I]&&(o=h(o,a)),r(function(r,a,s,l){var c,u,d,f=[],p=[],h=a.length,g=r||y(t||"*",s.nodeType?[s]:s,[]),v=!e||!r&&t?g:m(g,f,e,s,l),b=n?o||(r?e:h||i)?[]:a:v;if(n&&n(v,b,s,l),i)for(c=m(b,p),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[p[u]]=!(v[p[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(v[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?tt.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=m(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function g(e){for(var t,n,r,i=e.length,o=_.relative[e[0].type],a=o||_.relative[" "],s=o?1:0,l=f(function(e){return e===t},a,!0),c=f(function(e){return tt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==k)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=_.relative[e[s].type])u=[f(p(u),n)];else{if(n=_.filter[e[s].type].apply(null,e[s].matches),n[I]){for(r=++s;i>r&&!_.relative[e[r].type];r++);return h(s>1&&p(u),s>1&&d(e.slice(0,s-1)).replace(lt,"$1"),n,r>s&&g(e.slice(s,r)),i>r&&g(e=e.slice(r)),i>r&&d(e))}u.push(n)}return p(u)}function v(e,t){var n=0,i=t.length>0,a=e.length>0,s=function(r,s,l,c,u){var d,f,p,h=[],g=0,v="0",y=r&&[],b=null!=u,C=k,x=r||a&&_.find.TAG("*",u&&s.parentNode||s),N=W+=null==C?1:Math.random()||.1;for(b&&(k=s!==B&&s,w=n);null!=(d=x[v]);v++){if(a&&d){for(f=0;p=e[f++];)if(p(d,s,l)){c.push(d);break}b&&(W=N,w=++n)}i&&((d=!p&&d)&&g--,r&&y.push(d))}if(g+=v,i&&v!==g){for(f=0;p=t[f++];)p(y,h,s,l);if(r){if(g>0)for(;v--;)y[v]||h[v]||(h[v]=J.call(c));h=m(h)}Z.apply(c,h),b&&!r&&h.length>0&&g+t.length>1&&o.uniqueSort(c)}return b&&(W=N,k=C),y};return i?r(s):s}function y(e,t,n){for(var r=0,i=t.length;i>r;r++)o(e,t[r],n);return n}function b(e,t,n,r){var i,o,a,s,l,c=u(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&D&&_.relative[o[1].type]){if(t=(_.find.ID(a.matches[0].replace(xt,wt),t)||[])[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?0:o.length;i--&&(a=o[i],!_.relative[s=a.type]);)if((l=_.find[s])&&(r=l(a.matches[0].replace(xt,wt),mt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Z.apply(n,r),n;break}}return S(e,c)(r,t,!D,n,mt.test(e)),n}function C(){}var x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I="sizzle"+-new Date,F=window.document,z={},W=0,V=0,U=n(),q=n(),$=n(),j=!1,K=function(){return 0},Y=typeof t,G=1<<31,X=[],J=X.pop,Q=X.push,Z=X.push,et=X.slice,tt=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="[\\x20\\t\\r\\n\\f]",rt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",it=rt.replace("w","w#"),ot="([*^$|!~]?=)",at="\\["+nt+"*("+rt+")"+nt+"*(?:"+ot+nt+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+it+")|)|)"+nt+"*\\]",st=":("+rt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+at.replace(3,8)+")*)|.*)\\)|)",lt=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),ct=new RegExp("^"+nt+"*,"+nt+"*"),ut=new RegExp("^"+nt+"*([\\x20\\t\\r\\n\\f>+~])"+nt+"*"),dt=new RegExp(st),ft=new RegExp("^"+it+"$"),pt={ID:new RegExp("^#("+rt+")"),CLASS:new RegExp("^\\.("+rt+")"),NAME:new RegExp("^\\[name=['\"]?("+rt+")['\"]?\\]"),TAG:new RegExp("^("+rt.replace("w","w*")+")"),ATTR:new RegExp("^"+at),PSEUDO:new RegExp("^"+st),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},mt=/[\x20\t\r\n\f]*[+~]/,ht=/^[^{]+\{\s*\[native code/,gt=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,vt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,bt=/'|\\/g,Ct=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,xt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,wt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320)};try{Z.apply(X=et.call(F.childNodes),F.childNodes),X[F.childNodes.length].nodeType}catch(_t){Z={apply:X.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}E=o.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},A=o.setDocument=function(n){var r=n?n.ownerDocument||n:F;return r!==B&&9===r.nodeType&&r.documentElement?(B=r,L=r.documentElement,D=!E(r),z.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),z.attributes=i(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),z.getElementsByClassName=i(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),z.getByName=i(function(e){e.id=I+0,e.appendChild(B.createElement("a")).setAttribute("name",I),e.appendChild(B.createElement("i")).setAttribute("name",I),L.appendChild(e);var t=r.getElementsByName&&r.getElementsByName(I).length===2+r.getElementsByName(I+0).length;return L.removeChild(e),t}),z.sortDetached=i(function(e){return e.compareDocumentPosition&&1&e.compareDocumentPosition(B.createElement("div"))}),_.attrHandle=i(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==Y&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},z.getByName?(_.find.ID=function(e,t){if(typeof t.getElementById!==Y&&D){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){return e.getAttribute("id")===t}}):(_.find.ID=function(e,n){if(typeof n.getElementById!==Y&&D){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==Y&&r.getAttributeNode("id").value===e?[r]:t:[]}},_.filter.ID=function(e){var t=e.replace(xt,wt);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),_.find.TAG=z.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},_.find.NAME=z.getByName&&function(e,t){return typeof t.getElementsByName!==Y?t.getElementsByName(name):void 0},_.find.CLASS=z.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==Y&&D?t.getElementsByClassName(e):void 0},H=[],M=[":focus"],(z.qsa=e(r.querySelectorAll))&&(i(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||M.push("\\["+nt+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||M.push(":checked")}),i(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&M.push("[*^$]="+nt+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||M.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),M.push(",.*:")})),(z.matchesSelector=e(P=L.matchesSelector||L.mozMatchesSelector||L.webkitMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){z.disconnectedMatch=P.call(e,"div"),P.call(e,"[s!='']:x"),H.push("!=",st)}),M=new RegExp(M.join("|")),H=H.length&&new RegExp(H.join("|")),O=e(L.contains)||L.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},K=L.compareDocumentPosition?function(e,t){if(e===t)return j=!0,0;var n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return n?1&n||T&&t.compareDocumentPosition(e)===n?e===r||O(F,e)?-1:t===r||O(F,t)?1:R?tt.call(R,e)-tt.call(R,t):0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(e===t)return j=!0,0;if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===F?-1:c[i]===F?1:0},B):B},o.matches=function(e,t){return o(e,null,null,t)},o.matchesSelector=function(e,t){if((e.ownerDocument||e)!==B&&A(e),t=t.replace(Ct,"='$1']"),z.matchesSelector&&D&&(!H||!H.test(t))&&!M.test(t))try{var n=P.call(e,t);if(n||z.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return o(t,B,null,[e]).length>0},o.contains=function(e,t){return(e.ownerDocument||e)!==B&&A(e),O(e,t)},o.attr=function(e,t){var n;return(e.ownerDocument||e)!==B&&A(e),D&&(t=t.toLowerCase()),(n=_.attrHandle[t])?n(e):!D||z.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},o.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},o.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!z.detectDuplicates,T=!z.sortDetached,R=!z.sortStable&&e.slice(0),e.sort(K),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return e},N=o.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=N(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=N(t);return n},_=o.selectors={cacheLength:50,createPseudo:r,match:pt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xt,wt),e[3]=(e[4]||e[5]||"").replace(xt,wt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||o.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&o.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return pt.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&dt.test(n)&&(t=u(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(xt,wt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+nt+")"+e+"("+nt+"|$)"))&&U(e,function(e){return t.test(e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=o.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,m,h=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;h;){for(d=t;d=d[h];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;m=h="only"===e&&!m&&"nextSibling"}return!0}if(m=[a?g.firstChild:g.lastChild],a&&y){for(u=g[I]||(g[I]={}),c=u[e]||[],p=c[0]===W&&c[1],f=c[0]===W&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[h]||(f=p=0)||m.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[W,p,f];break}}else if(y&&(c=(t[I]||(t[I]={}))[e])&&c[0]===W)f=c[1];else for(;(d=++p&&d&&d[h]||(f=p=0)||m.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[I]||(d[I]={}))[e]=[W,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,t){var n,i=_.pseudos[e]||_.setFilters[e.toLowerCase()]||o.error("unsupported pseudo: "+e);return i[I]?i(t):i.length>1?(n=[e,e,"",t],_.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)r=tt.call(e,o[a]),e[r]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(lt,"$1"));return i[I]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(e){return function(t){return o(e,t).length>0}}),contains:r(function(e){return function(t){return(t.textContent||t.innerText||N(t)).indexOf(e)>-1}}),lang:r(function(e){return ft.test(e||"")||o.error("unsupported lang: "+e),e=e.replace(xt,wt).toLowerCase(),function(t){var n;do if(n=D?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===B.activeElement&&(!B.hasFocus||B.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!_.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return vt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}};for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})_.pseudos[x]=s(x);for(x in{submit:!0,reset:!0})_.pseudos[x]=l(x);return S=o.compile=function(e,t){var n,r=[],i=[],o=$[e+" "];if(!o){for(t||(t=u(e)),n=t.length;n--;)o=g(t[n]),o[I]?r.push(o):i.push(o);o=$(e,v(i,r))}return o},_.pseudos.nth=_.pseudos.eq,C.prototype=_.filters=_.pseudos,_.setFilters=new C,z.sortStable=I.split("").sort(K).join("")===I,A(),[0,0].sort(K),z.detectDuplicates=j,o}),r(u,[l,c],function(e,n){function r(e){return"undefined"!=typeof e}function i(e){return"string"==typeof e}function o(e){var t,n,r;for(r=v.createElement("div"),t=v.createDocumentFragment(),r.innerHTML=e;n=r.firstChild;)t.appendChild(n);return t}function a(e,t,n){var r;if("string"==typeof t)t=o(t);else if(t.length){for(r=0;r<t.length;r++)a(e,t[r],n);return e}for(r=e.length;r--;)n.call(e[r],t.parentNode?t:t);return e}function s(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function l(e,t){var n;for(e=e||[],"string"==typeof e&&(e=e.split(" ")),t=t||{},n=e.length;n--;)t[e[n]]={};return t}function c(e,t){return new c.fn.init(e,t)}function u(e){var t=arguments,n,r,i;for(r=1;r<t.length;r++){n=t[r];for(i in n)e[i]=n[i]}return e}function d(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function f(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e){return null===e||e===t?"":(""+e).replace(N,"")}function m(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,a,r)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,a,r)!==!1);i++);return e}function h(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!c(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i}function g(e,t,n,r){for(var i=[];e;e=e[n])r&&e.nodeType!==r||e===t||i.push(e);return i}var v=document,y=Array.prototype.push,b=Array.prototype.slice,C=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,x=e.Event,w=l("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"),_=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},N=/^\s*|\s*$/g;return c.fn=c.prototype={constructor:c,selector:"",length:0,init:function(e,t){var n=this,r,a;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(i(e)){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:C.exec(e),!r)return c(t||document).find(e);if(r[1])for(a=o(e).firstChild;a;)this.add(a),a=a.nextSibling;else{if(a=v.getElementById(r[2]),a.id!==r[2])return n.find(e);n.length=1,n[0]=a}}else this.add(e);return n},toArray:function(){return d(this)},add:function(e){var t=this;return _(e)?y.apply(t,e):e instanceof c?t.add(e.toArray()):y.call(t,e),t},attr:function(e,n){var i=this;if("object"==typeof e)m(e,function(e,t){i.attr(t,e)});else{if(!r(n))return i[0]&&1===i[0].nodeType?i[0].getAttribute(e):t;this.each(function(){1===this.nodeType&&this.setAttribute(e,n)})}return i},css:function(e,n){var i=this;if("object"==typeof e)m(e,function(e,t){i.css(t,e)});else{if(e=e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),!r(n))return i[0]?i[0].style[e]:t;"number"!=typeof n||w[e]||(n+="px"),i.each(function(){var t=this.style;"opacity"===e&&this.runtimeStyle&&"undefined"==typeof this.runtimeStyle.opacity&&(t.filter=""===n?"":"alpha(opacity="+100*n+")");try{t[e]=n}catch(r){}})}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],x.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerHTML=e;return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerText=t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return a(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return a(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)})},before:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},appendTo:function(e){return c(e).append(this),this},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return-1!==e.indexOf(" ")?m(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n){var r;s(n,e)!==t&&(r=n.className,t?n.className+=r?" "+e:e:n.className=p((" "+r+" ").replace(" "+e+" "," ")))}),n},hasClass:function(e){return s(this[0],e)},each:function(e){return m(this,e)},on:function(e,t){return this.each(function(){x.bind(this,e,t)})},off:function(e,t){return this.each(function(){x.unbind(this,e,t)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new c(b.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},replaceWith:function(e){var t=this;return t[0]&&t[0].parentNode.replaceChild(c(e)[0],t[0]),t},wrap:function(e){return e=c(e)[0],this.each(function(){var t=this,n=e.cloneNode(!1);t.parentNode.insertBefore(n,t),n.appendChild(t)})},unwrap:function(){return this.each(function(){for(var e=this,t=e.firstChild,n;t;)n=t,t=t.nextSibling,e.parentNode.insertBefore(n,e)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),c(e)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)c.find(e,this[t],r);return c(r)},push:y,sort:[].sort,splice:[].splice},u(c,{extend:u,toArray:d,inArray:f,isArray:_,each:m,trim:p,makeMap:l,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,isXMLDoc:n.isXML,contains:n.contains,filter:function(e,t,n){return n&&(e=":not("+e+")"),t=1===t.length?c.find.matchesSelector(t[0],e)?[t[0]]:[]:c.find.matches(e,t)}}),m({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t){return h(e,"parentNode",t)},next:function(e){return g(e,"nextSibling",1)},prev:function(e){return g(e,"previousSibling",1)},nextNodes:function(e){return g(e,"nextSibling")},prevNodes:function(e){return g(e,"previousSibling")},children:function(e){return g(e.firstChild,"nextSibling",1)},contents:function(e){return d(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){c.fn[e]=function(n){var r=this,i;if(r.length>1)throw new Error("DomQuery only supports traverse functions on a single node.");return r[0]&&(i=t(r[0],n)),i=c(i),n&&"parentsUntil"!==e?i.filter(n):i}}),c.fn.filter=function(e){return c.filter(e)},c.fn.is=function(e){return!!e&&this.filter(e).length>0},c.fn.init.prototype=c.fn,c}),r(d,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d="\ufeff";
-for(e=e||{},u=("\\\" \\' \\; \\: ; : "+d).split(" "),l=0;l<u.length;l++)c[u[l]]=d+l,c[d+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=h[e+"-top"+t],r&&(i=h[e+"-right"+t],i&&(o=h[e+"-bottom"+t],o&&(a=h[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(h[e+t]=-1==l?s[0]:s.join(" "),delete h[e+"-top"+t],delete h[e+"-right"+t],delete h[e+"-bottom"+t],delete h[e+"-left"+t])}}function u(e){var t=h[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return h[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(h[e]=h[t]+" "+h[n]+" "+h[r],delete h[t],delete h[n],delete h[r])}function f(e){return b=!0,c[e]}function p(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function m(t,n,r,i,o,a){return(o=o||a)?(o=p(o),"'"+o.replace(/\'/g,"\\'")+"'"):(n=p(n||r||i),!e.allow_script_urls&&/(java|vb)script:/i.test(n.replace(/[\s\r\n]+/,""))?"":(C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"))}var h={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(/.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":("color"===v||"background-color"===v)&&(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,m),h[v]=b?p(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===h.border&&delete h.border,"none"===h["border-image"]&&delete h["border-image"]}return h},serialize:function(e,n){function r(n){var r,o,a,l;if(r=t.styles[n])for(o=0,a=r.length;a>o;o++)n=r[o],l=e[n],l!==s&&l.length>0&&(i+=(i.length>0?" ":"")+n+": "+l+";")}var i="",o,a;if(n&&t&&t.styles)r("*"),r(n);else for(o in e)a=e[o],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(f,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(p,[],function(){function e(e){return null===e||e===t?"":(""+e).replace(h,"")}function n(e,n){return n?"array"==n&&g(e)?!0:typeof e==n:e!==t}function r(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function i(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function o(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function a(e,t){var n=[];return o(e,function(e){n.push(t(e))}),n}function s(e,t){var n=[];return o(e,function(e){(!t||t(e))&&n.push(e)}),n}function l(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function c(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function u(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function d(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),o(e,function(e,i){return t.call(r,e,i,n)===!1?!1:void d(e,t,n,r)}))}function f(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function p(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function m(t,r){return!t||n(t,"array")?t:a(t.split(r||","),e)}var h=/^\s*|\s*$/g,g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:e,isArray:g,is:n,toArray:r,makeMap:i,each:o,map:a,grep:s,inArray:c,extend:u,create:l,walk:d,createNS:f,resolve:p,explode:m}}),r(m,[p],function(e){function t(n){function r(){return H.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(M[U]=M[V],M[q]=M[W]):(M[V]=M[U],M[W]=M[q]),M.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=M[V],r=M[W],i=M[U],o=M[q],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function m(){N(I)}function h(){return N(P)}function g(){return N(O)}function v(e){var t=this[V],r=this[W],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return $(new t(n),{startContainer:M[V],startOffset:M[W],endContainer:M[U],endOffset:M[q],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[V]==M[U]&&M[W]==M[q]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(M[V]=t,M[W]=r):(M[U]=t,M[q]=r),i=M[U];i.parentNode;)i=i.parentNode;for(o=M[V];o.parentNode;)o=o.parentNode;o==i?w(M[V],M[W],M[U],M[q])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[V],M[U])}function N(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[V]==M[U])return E(e);for(t=M[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return S(t,e);++n}for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[U])return k(t,e);++r}for(o=r-n,a=M[V];o>0;)a=a.parentNode,o--;for(s=M[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function E(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),M[W]==M[q])return t;if(3==M[V].nodeType){if(n=M[V].nodeValue,i=n.substring(M[W],M[q]),e!=O&&(o=M[V],c=M[W],u=M[q]-M[W],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(H.createTextNode(i)),t}for(o=C(M[V],M[W]),a=M[q]-M[W];o&&a>0;)s=o.nextSibling,l=L(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[W],0>=a)return t!=O&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=L(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[q]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=L(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=L(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[U],M[q]-1),r,i,o,a,s,l=n!=M[U];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[V],M[W]),r=n!=M[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return L(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[W],a=o.substring(l),s=o.substring(0,l)):(l=M[q],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function L(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function D(){return n.create("body",null,g()).outerText}var M=this,H=n.doc,P=0,O=1,I=2,F=!0,z=!1,W="startOffset",V="startContainer",U="endContainer",q="endOffset",$=e.extend,j=n.nodeIndex;return $(M,{startContainer:H,startOffset:0,endContainer:H,endOffset:0,collapsed:F,commonAncestorContainer:H,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:m,extractContents:h,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:D}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(h,[p],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={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"};o={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;"},a={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(g,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1==t.indexOf("Trident/")||-1==t.indexOf("rv:")&&-1==e.appName.indexOf("Netscape")?!1:11,i=i||o,a=!r&&!o&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(v,[],function(){return function(e,t){function n(t){e.getElementsByTagName("head")[0].appendChild(t)}function r(t,r,s){function l(){for(var e=v.passed,t=e.length;t--;)e[t]();v.status=2,v.passed=[],v.failed=[]}function c(){for(var e=v.failed,t=e.length;t--;)e[t]();v.status=3,v.passed=[],v.failed=[]}function u(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function d(e,t){e()||((new Date).getTime()-g<a?window.setTimeout(t,0):c())}function f(){d(function(){for(var t=e.styleSheets,n,r=t.length,i;r--;)if(n=t[r],i=n.ownerNode?n.ownerNode:n.owningElement,i&&i.id===m.id)return l(),!0},f)}function p(){d(function(){try{var e=h.sheet.cssRules;return l(),!!e}catch(t){}},p)}var m,h,g,v;if(o[t]?v=o[t]:(v={passed:[],failed:[]},o[t]=v),r&&v.passed.push(r),s&&v.failed.push(s),1!=v.status){if(2==v.status)return void l();if(3==v.status)return void c();if(v.status=1,m=e.createElement("link"),m.rel="stylesheet",m.type="text/css",m.id="u"+i++,m.async=!1,m.defer=!1,g=(new Date).getTime(),"onload"in m&&!u())m.onload=f,m.onerror=c;else{if(navigator.userAgent.indexOf("Firefox")>0)return h=e.createElement("style"),h.textContent='@import "'+t+'"',p(),void n(h);f()}n(m),m.href=t}}var i=0,o={},a;t=t||{},a=t.maxLoadTime||5e3,this.load=r}}),r(y,[c,d,l,f,m,h,g,p,v],function(e,n,r,i,o,a,s,l,c){function u(e,t){var i=this,o;i.doc=e,i.win=window,i.files={},i.counter=0,i.stdMode=!v||e.documentMode>=8,i.boxModel=!v||"CSS1Compat"==e.compatMode||i.stdMode,i.hasOuterHTML="outerHTML"in e.createElement("a"),i.styleSheetLoader=new c(e),this.boundEvents=[],i.settings=t=h({keep_values:!1,hex_colors:1},t),i.schema=t.schema,i.styles=new n({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),i.fixDoc(e),i.events=t.ownEvents?new r(t.proxy):r.Event,o=t.schema?t.schema.getBlockElements():{},i.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!o[e.nodeName]):!!o[e]}}var d=l.each,f=l.is,p=l.grep,m=l.trim,h=l.extend,g=s.webkit,v=s.ie,y=/^([a-z0-9],?)+$/i,b=/^[ \t\r\n]*$/,C=l.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," ");return u.prototype={root:null,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},fixDoc:function(e){var t=this.settings,n;if(v&&t.schema){"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(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!v||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.get(e.settings.root_element)||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),f(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.get(r.settings.root_element)||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(y.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=f(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return this.run(e,function(e){var n,r=e.parentNode;if(!r)return null;if(t)for(;n=e.firstChild;)!v||3!==n.nodeType||n.nodeValue?r.insertBefore(n,e):e.removeChild(n);return r.removeChild(e)})},setStyle:function(e,t,n){return this.run(e,function(e){var r=this,i,o;if(t)if("string"==typeof t){i=e.style,t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"number"!=typeof n||C[t]||(n+="px"),"opacity"===t&&e.runtimeStyle&&"undefined"==typeof e.runtimeStyle.opacity&&(i.filter=""===n?"":"alpha(opacity="+100*n+")"),"float"==t&&(t="cssFloat"in e.style?"cssFloat":"styleFloat");try{i[t]=n}catch(a){}r.settings.update_styles&&e.removeAttribute("data-mce-style")}else for(o in t)r.setStyle(e,o,t[o])})},getStyle:function(e,n,r){if(e=this.get(e)){if(this.doc.defaultView&&r){n=n.replace(/[A-Z]/g,function(e){return"-"+e});try{return this.doc.defaultView.getComputedStyle(e,null).getPropertyValue(n)}catch(i){return null}}return n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=v?"styleFloat":"cssFloat"),e.currentStyle&&r?e.currentStyle[n]:e.style?e.style[n]:t}},setStyles:function(e,t){this.setStyle(e,t)},css:function(e,t,n){this.setStyle(e,t,n)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this;if(e&&t)return this.run(e,function(e){var i=r.settings,o=e.getAttribute(t);if(null!==n)switch(t){case"style":if(!f(n,"string"))return void d(n,function(t,n){r.setStyle(e,n,t)});i.keep_values&&(n?e.setAttribute("data-mce-style",n,2):e.removeAttribute("data-mce-style",2)),e.style.cssText=n;break;case"class":e.className=n||"";break;case"src":case"href":i.keep_values&&(i.url_converter&&(n=i.url_converter.call(i.url_converter_scope||r,n,t,e)),r.setAttrib(e,"data-mce-"+t,n,2));break;case"shape":e.setAttribute("data-mce-style",n)}f(n)&&null!==n&&0!==n.length?e.setAttribute(t,""+n,2):e.removeAttribute(t,2),o!=n&&i.onSetAttrib&&i.onSetAttrib({attrElm:e,attrName:t,attrValue:n})})},setAttribs:function(e,t){var n=this;return this.run(e,function(e){d(t,function(t,r){n.setAttrib(e,r,t)})})},getAttrib:function(e,t,n){var r,i=this,o;if(e=i.get(e),!e||1!==e.nodeType)return n===o?!1:n;if(f(n)||(n=""),/^(src|href|style|coords|shape)$/.test(t)&&(r=e.getAttribute("data-mce-"+t)))return r;if(v&&i.props[t]&&(r=e[i.props[t]],r=r&&r.nodeValue?r.nodeValue:r),r||(r=e.getAttribute(t,2)),/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(t))return e[i.props[t]]===!0&&""===r?t:r?t:"";if("FORM"===e.nodeName&&e.getAttributeNode(t))return e.getAttributeNode(t).nodeValue;if("style"===t&&(r=r||e.style.cssText,r&&(r=i.serializeStyle(i.parseStyle(r),e.nodeName),i.settings.keep_values&&e.setAttribute("data-mce-style",r))),g&&"class"===t&&r&&(r=r.replace(/(apple|webkit)\-[a-z\-]+/gi,"")),v)switch(t){case"rowspan":case"colspan":1===r&&(r="");break;case"size":("+0"===r||20===r||0===r)&&(r="");break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":0===r&&(r="");break;case"hspace":-1===r&&(r="");break;case"maxlength":case"tabindex":(32768===r||2147483647===r||"32768"===r)&&(r="");break;case"multiple":case"compact":case"noshade":case"nowrap":return 65535===r?t:n;case"shape":r=r.toLowerCase();break;default:0===t.indexOf("on")&&r&&(r=(""+r).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1"))}return r!==o&&null!==r&&""!==r?""+r:n},getPos:function(e,t){var n=this,r=0,i=0,o,a=n.doc,s;if(e=n.get(e),t=t||a.body,e){if(t===a.body&&e.getBoundingClientRect)return s=e.getBoundingClientRect(),t=n.boxModel?a.documentElement:a.body,r=s.left+(a.documentElement.scrollLeft||a.body.scrollLeft)-t.clientLeft,i=s.top+(a.documentElement.scrollTop||a.body.scrollTop)-t.clientTop,{x:r,y:i};for(o=e;o&&o!=t&&o.nodeType;)r+=o.offsetLeft||0,i+=o.offsetTop||0,o=o.offsetParent;for(o=e.parentNode;o&&o!=t&&o.nodeType;)r-=o.scrollLeft||0,i-=o.scrollTop||0,o=o.parentNode}return{x:r,y:i}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==u.DOM&&n===document){var o=u.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,u.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==u.DOM&&n===document?void u.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void d(e.split(","),function(e){var i;t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),v&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){return this.run(e,function(e){var n;return t?this.hasClass(e,t)?e.className:(n=this.removeClass(e,t),e.className=n=(""!==n?n+" ":"")+t,n):0})},removeClass:function(e,t){var n=this,r;return n.run(e,function(e){var i;return n.hasClass(e,t)?(r||(r=new RegExp("(^|\\s+)"+t+"(\\s+|$)","g")),i=e.className.replace(r," "),i=m(" "!=i?i:""),e.className=i,i||(e.removeAttribute("class"),e.removeAttribute("className")),i):e.className})},hasClass:function(e,t){return e=this.get(e),e&&t?-1!==(" "+e.className+" ").indexOf(" "+t+" "):!1},toggleClass:function(e,n,r){r=r===t?!this.hasClass(e,n):r,this.hasClass(e,n)!==r&&(r?this.addClass(e,n):this.removeClass(e,n))},show:function(e){return this.setStyle(e,"display","block")},hide:function(e){return this.setStyle(e,"display","none")},isHidden:function(e){return e=this.get(e),!e||"none"==e.style.display||"none"==this.getStyle(e,"display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){var n=this;return n.run(e,function(e){if(v){for(;e.firstChild;)e.removeChild(e.firstChild);try{e.innerHTML="<br />"+t,e.removeChild(e.firstChild)}catch(r){var i=n.create("div");i.innerHTML="<br />"+t,d(p(i.childNodes),function(t,n){n&&e.canHaveHTML&&e.appendChild(t)})}}else e.innerHTML=t;return t})},getOuterHTML:function(e){var t,n=this;return(e=n.get(e))?1===e.nodeType&&n.hasOuterHTML?e.outerHTML:(t=(e.ownerDocument||n.doc).createElement("body"),t.appendChild(e.cloneNode(!0)),t.innerHTML):null},setOuterHTML:function(e,t,n){var r=this;return r.run(e,function(e){function i(){var i,o;for(o=n.createElement("body"),o.innerHTML=t,i=o.lastChild;i;)r.insertAfter(i.cloneNode(!0),e),i=i.previousSibling;r.remove(e)}if(1==e.nodeType)if(n=n||e.ownerDocument||r.doc,v)try{1==e.nodeType&&r.hasOuterHTML?e.outerHTML=t:i()}catch(o){i()}else i()})},decode:a.decode,encode:a.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return f(t,"array")&&(e=e.cloneNode(!0)),n&&d(p(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),d(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(l.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],d(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(v){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,o,a,s,l,c=0;if(e=e.firstChild){s=new i(e,e.parentNode),t=t||n.schema?n.schema.getNonEmptyElements():null;do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(o=n.getAttribs(e),r=o.length;r--;)if(l=o[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!b.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new o(this)},nodeIndex:function(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=m(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(l.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(l.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return 1!=e.nodeType?null:(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null)},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},u.DOM=new u(document),u}),r(b,[y,p],function(e,t){function n(){function e(e,t){function n(){o.remove(s),a&&(a.onreadystatechange=a.onload=a=null),t()
-}function i(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var o=r,a,s;s=o.uniqueId(),a=document.createElement("script"),a.id=s,a.type="text/javascript",a.src=e,"onreadystatechange"in a?a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&n()}:a.onload=n,a.onerror=i,(document.getElementsByTagName("head")[0]||document.body).appendChild(a)}var t=0,n=1,a=2,s={},l=[],c={},u=[],d=0,f;this.isDone=function(e){return s[e]==a},this.markDone=function(e){s[e]=a},this.add=this.load=function(e,n,r){var i=s[e];i==f&&(l.push(e),s[e]=t),n&&(c[e]||(c[e]=[]),c[e].push({func:n,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(l,e,t)},this.loadScripts=function(t,r,l){function p(e){i(c[e],function(e){e.func.call(e.scope)}),c[e]=f}var m;u.push({func:r,scope:l||this}),(m=function(){var r=o(t);t.length=0,i(r,function(t){return s[t]==a?void p(t):void(s[t]!=n&&(s[t]=n,d++,e(t,function(){s[t]=a,d--,p(t),m()})))}),d||(i(u,function(e){e.func.call(e.scope)}),u.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(C,[b,p],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",-1!=n.indexOf(","+i.substr(0,2)+","))i=i.substr(0,2);else if(-1==n.indexOf(","+i+","))return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&a.call(s?s:e)}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(x,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(w,[p],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e){var t={},n,r;for(n=0,r=e.length;r>n;n++)t[e[n]]={};return t}var o,l,c,u=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),l=3;l<u.length;l++)"string"==typeof u[l]&&(u[l]=t(u[l])),r.push.apply(r,u[l]);for(e=t(e),o=e.length;o--;)c=[].concat(s,t(n)),a[e[o]]={attributes:i(c),attributesOrder:c,children:i(r)}}function i(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},s,l,c,u,d,f;return r[e]?r[e]:(s=t("id accesskey class dir lang style tabindex title"),l=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),c=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(s.push.apply(s,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),l.push.apply(l,t("article aside details dialog figure header footer hgroup section nav")),c.push.apply(c,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(s.push("xml:lang"),f=t("acronym applet basefont big font strike tt"),c.push.apply(c,f),o(f,function(e){n(e,"",c)}),d=t("center dir isindex noframes"),l.push.apply(l,d),u=[].concat(l,c),o(d,function(e){n(e,"",u)})),u=u||[].concat(l,c),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",u),n("address dt dd div caption","",u),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",c),n("blockquote","cite",u),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",u),n("dl","","dt dd"),n("a","href target rel media hreflang type",c),n("q","cite",c),n("ins del","cite datetime",u),n("img","src alt usemap ismap width height"),n("iframe","src name width height",u),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",u,"param"),n("param","name value"),n("map","name",u,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",u),n("th","colspan rowspan headers scope abbr",u),n("form","accept-charset action autocomplete enctype method name novalidate target",u),n("fieldset","disabled form name",u,"legend"),n("label","form for",c),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?u:c),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",u,"li"),n("noscript","",u),"html4"!=e&&(n("wbr"),n("ruby","",c,"rt rp"),n("figcaption","",u),n("mark rt rp summary bdi","",c),n("canvas","width height",u),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height",u,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls",u,"track source"),n("source","src type media"),n("track","kind src srclang label default"),n("datalist","",c,"option"),n("article section nav aside header footer","",u),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",u,"figcaption"),n("time","datetime",c),n("dialog","open",u),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",c),n("progress","value max",c),n("meter","value min max low high optimum",c),n("details","open",u,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(i("script","language xml:space"),i("style","xml:space"),i("object","declare classid codebase codetype archive standby align border hspace vspace"),i("param","valuetype type"),i("a","charset name rev shape coords"),i("br","clear"),i("applet","codebase archive code object alt name width height align hspace vspace"),i("img","name longdesc align border hspace vspace"),i("iframe","longdesc frameborder marginwidth marginheight scrolling align"),i("font basefont","size color face"),i("input","usemap align"),i("select","onchange"),i("textarea"),i("h1 h2 h3 h4 h5 h6 div p legend caption","align"),i("ul","type compact"),i("li","type"),i("ol dl menu dir","compact"),i("pre","width xml:space"),i("hr","align noshade size width"),i("isindex","prompt"),i("table","summary width frame rules cellspacing cellpadding align bgcolor"),i("col","width align char charoff valign"),i("colgroup","width align char charoff valign"),i("thead","align char charoff valign"),i("tr","align char charoff valign bgcolor"),i("th","axis align char charoff valign nowrap bgcolor width height"),i("form","accept"),i("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),i("tfoot","align char charoff valign"),i("tbody","align char charoff valign"),i("area","nohref"),i("body","background bgcolor text link vlink alink")),"html4"!=e&&(i("input button select textarea","autofocus"),i("input textarea","placeholder"),i("a","download"),i("link script img","crossorigin"),i("iframe","srcdoc sandbox seamless allowfullscreen")),o(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,r[e]=a,a)}var r={},i=e.makeMap,o=e.each,a=e.extend,s=e.explode,l=e.inArray;return function(e){function c(t,n,o){var s=e[t];return s?s=i(s,",",i(s.toUpperCase()," ")):(s=r[t],s||(s=i(n," ",i(n.toUpperCase()," ")),s=a(s,o),r[t]=s)),s}function u(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function d(e){var n,r,o,a,s,c,d,f,p,m,h,g,y,C,x,w,_,N,E,S=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,k=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),v["@"]&&(w=v["@"].attributes,_=v["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=S.exec(e[n])){if(C=s[1],p=s[2],x=s[3],f=s[5],g={},y=[],c={attributes:g,attributesOrder:y},"#"===C&&(c.paddEmpty=!0),"-"===C&&(c.removeEmpty=!0),"!"===s[4]&&(c.removeEmptyAttrs=!0),w){for(N in w)g[N]=w[N];y.push.apply(y,_)}if(f)for(f=t(f,"|"),o=0,a=f.length;a>o;o++)if(s=k.exec(f[o])){if(d={},h=s[1],m=s[2].replace(/::/g,":"),C=s[3],E=s[4],"!"===h&&(c.attributesRequired=c.attributesRequired||[],c.attributesRequired.push(m),d.required=!0),"-"===h){delete g[m],y.splice(l(y,m),1);continue}C&&("="===C&&(c.attributesDefault=c.attributesDefault||[],c.attributesDefault.push({name:m,value:E}),d.defaultValue=E),":"===C&&(c.attributesForced=c.attributesForced||[],c.attributesForced.push({name:m,value:E}),d.forcedValue=E),"<"===C&&(d.validValues=i(E,"?"))),T.test(m)?(c.attributePatterns=c.attributePatterns||[],d.pattern=u(m),c.attributePatterns.push(d)):(g[m]||y.push(m),g[m]=d)}w||"@"!=p||(w=g,_=y),x&&(c.outputName=p,v[x]=c),T.test(p)?(c.pattern=u(p),b.push(c)):v[p]=c}}function f(e){v={},b=[],d(e),o(x,function(e,t){y[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&(r.text_block_elements=r.block_elements=null,o(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",s=t[2];if(y[s]=y[i],R[s]=i,r||(S[s.toUpperCase()]={},S[s]={}),!v[s]){var l=v[i];l=a({},l),delete l.removeEmptyAttrs,delete l.removeEmpty,v[s]=l}o(y,function(e,t){e[i]&&(y[t]=e=a({},y[t]),e[s]=e[i])})}))}function m(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&o(t(e,","),function(e){var r=n.exec(e),i,s;r&&(s=r[1],i=s?y[r[2]]:y[r[2]]={"#comment":{}},i=y[r[2]],o(t(r[3],"|"),function(e){"-"===s?(y[r[2]]=i=a({},y[r[2]]),delete i[e]):i[e]={}}))})}function h(e){var t=v[e],n;if(t)return t;for(n=b.length;n--;)if(t=b[n],t.pattern.test(e))return t}var g=this,v={},y={},b=[],C,x,w,_,N,E,S,k,T,R={},A={};e=e||{},x=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),e.valid_styles&&(C={},o(e.valid_styles,function(e,t){C[t]=s(e)})),w=c("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=c("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),N=c("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),E=c("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),k=c("non_empty_elements","td th iframe video audio object script",N),T=c("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),S=c("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup",T),o((e.special||"script noscript style textarea").split(" "),function(e){A[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?f(e.valid_elements):(o(x,function(e,t){v[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},y[t]=e.children}),"html5"!=e.schema&&o(t("strong/b em/i"),function(e){e=t(e,"/"),v[e[1]].outputName=e[0]}),v.img.attributesDefault=[{name:"alt",value:""}],o(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){v[e]&&(v[e].removeEmpty=!0)}),o(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){v[e].paddEmpty=!0}),o(t("span"),function(e){v[e].removeEmptyAttrs=!0})),p(e.custom_elements),m(e.valid_children),d(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&o(s(e.invalid_elements),function(e){v[e]&&delete v[e]}),h("span")||d("span[!data-mce-type|*]"),g.children=y,g.styles=C,g.getBoolAttrs=function(){return E},g.getBlockElements=function(){return S},g.getTextBlockElements=function(){return T},g.getShortEndedElements=function(){return N},g.getSelfClosingElements=function(){return _},g.getNonEmptyElements=function(){return k},g.getWhiteSpaceElements=function(){return w},g.getSpecialElements=function(){return A},g.isValidChild=function(e,t){var n=y[e];return!(!n||!n[t])},g.isValid=function(e,t){var n,r,i=h(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},g.getElementRule=h,g.getCustomElements=function(){return R},g.addValidElements=d,g.setValidElements=f,g.addCustomElements=p,g.addValidChildren=m,g.elements=v}}),r(_,[w,h,p],function(e,t,n){var r=n.each;return function(i,o){function a(){}var s=this;i=i||{},s.schema=o=o||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),r("comment cdata text start end pi doctype".split(" "),function(e){e&&(s[e]=i[e]||a)}),s.parse=function(e){function r(e){var t,n;for(t=f.length;t--&&f[t].name!==e;);if(t>=0){for(n=f.length-1;n>=t;n--)e=f[n],e.valid&&s.end(e.name);f.length=t}}function a(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in C?t:F(n||r||o||""),w&&!v&&0!==t.indexOf("data-")){if(a=k[t],!a&&T){for(s=T.length;s--&&(a=T[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(W[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{if(c=decodeURIComponent(c),V.test(c))return}catch(u){if(c=unescape(c),V.test(c))return}}p.map[t]=n,p.push({name:t,value:n})}var s=this,l,c=0,u,d,f=[],p,m,h,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I=0,F=t.decode,z,W=n.makeMap("src,href"),V=/(java|vb)script:/i;for(M=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),H=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,b=o.getShortEndedElements(),D=i.self_closing_elements||o.getSelfClosingElements(),C=o.getBoolAttrs(),w=i.validate,y=i.remove_internals,z=i.fix_self_closing,P=o.getSpecialElements();l=M.exec(e);){if(c<l.index&&s.text(F(e.substr(c,l.index-c))),u=l[6])u=u.toLowerCase(),":"===u.charAt(0)&&(u=u.substr(1)),r(u);else if(u=l[7]){if(u=u.toLowerCase(),":"===u.charAt(0)&&(u=u.substr(1)),x=u in b,z&&D[u]&&f.length>0&&f[f.length-1].name===u&&r(u),!w||(_=o.getElementRule(u))){if(N=!0,w&&(k=_.attributes,T=_.attributePatterns),(S=l[8])?(v=-1!==S.indexOf("data-mce-type"),v&&y&&(N=!1),p=[],p.map={},S.replace(H,a)):(p=[],p.map={}),w&&!v){if(R=_.attributesRequired,A=_.attributesDefault,B=_.attributesForced,L=_.removeEmptyAttrs,L&&!p.length&&(N=!1),B)for(m=B.length;m--;)E=B[m],g=E.name,O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O});if(A)for(m=A.length;m--;)E=A[m],g=E.name,g in p.map||(O=E.value,"{$uid}"===O&&(O="mce_"+I++),p.map[g]=O,p.push({name:g,value:O}));if(R){for(m=R.length;m--&&!(R[m]in p.map););-1===m&&(N=!1)}p.map["data-mce-bogus"]&&(N=!1)}N&&s.start(u,p,x)}else N=!1;if(d=P[u]){d.lastIndex=c=l.index+l[0].length,(l=d.exec(e))?(N&&(h=e.substr(c,l.index-c)),c=l.index+l[0].length):(h=e.substr(c),c=e.length),N&&(h.length>0&&s.text(h,!0),s.end(u)),M.lastIndex=c;continue}x||(S&&S.indexOf("/")==S.length-1?N&&s.end(u):f.push({name:u,valid:N}))}else(u=l[1])?(">"===u.charAt(0)&&(u=" "+u),i.allow_conditional_comments||"[if"!==u.substr(0,3)||(u=" "+u),s.comment(u)):(u=l[2])?s.cdata(u):(u=l[3])?s.doctype(u):(u=l[4])&&s.pi(u,l[5]);c=l.index+l[0].length}for(c<e.length&&s.text(F(e.substr(c))),m=f.length-1;m>=0;m--)u=f[m],u.valid&&s.end(u.name)}}}),r(N,[x,w,_,p],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,p,m,h,g,v,y;for(h=i("tr,td,th,tbody,thead,tfoot,table"),m=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!h[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),p=0;p<a.length-1;p++){for(l.isValidChild(c.name,a[p].name)?(d=u.filterNode(a[p].clone()),c.append(d)):d=c,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,d.append(f),f=y;c=d}s.isEmpty(m)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(m)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],p={},m={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=p[n],r?r.push(e):p[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=m[n],r?r.push(e):m[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(L,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=u(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=p[t],i?i.push(r):p[t]=[r]),r}function h(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(L,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,N,E,S,k,T,R,A=[],B,L,D,M,H,P,O,I;if(o=o||{},p={},m={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,k=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,H=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,L=/[ \t\r\n]+$/,D=/[ \t\r\n]+/g,M=/^[ \t\r\n]+$/,v=new n({validate:k,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(D," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,h(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,h(b)},start:function(e,t,n){var r,i,o,a,s;if(o=k?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(E=m[a],E?E.push(r):m[a]=[r]);T[e]&&h(r),n||(b=r),!B&&H[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=k?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(L,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o}if(B&&H[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,b.empty().remove(),void(b=a);b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),k&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(S in p){for(E=d[S],C=p[S],_=C.length;_--;)C[_].parent||C.splice(_,1);for(x=0,w=E.length;w>x;x++)E[x](C,S,o)}for(x=0,w=f.length;w>x;x++)if(E=f[x],E.name in m){for(C=m[E.name],_=C.length;_--;)C[_].parent||C.splice(_,1);for(_=0,N=E.callbacks.length;N>_;_++)E.callbacks[_](C,E.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,p,m;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(m=new e("#text",3),m.value="\xa0",i.replace(m))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}})}}),r(E,[h,p],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(S,[E,w],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,m,h;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},h=r.getElementRule(e.name),p=0,m=h.attributesOrder.length;m>p;p++)u=h.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,m=c.length;m>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(k,[y,N,h,S,x,w,g,p],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n=e.length,r;n--;)r=e[n],r.attr("tabindex",r.attributes.map["data-mce-tabindex"]),r.attr(t,null)}),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null)}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addAttributeFilter("data-mce-expando",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o;r--;)if(i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t){var a=(i.attr("type")||"text/javascript").replace(/^mce\-/,"");i.attr("type","text/javascript"===a?null:a),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")}else o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,m,h;return a.ie&&s.select("script,style,select,map").length>0?(h=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,h)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),m=new r(e,d),n.content=m.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(T,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);
-if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(u=l.nodeValue,s+=u.length,s>=i){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(s+=l.nodeValue.length,s>=i){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,m;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(m=t.childNodes,m.length?(n>=m.length?i.insertAfter(a,m[m.length-1]):t.insertBefore(a,m[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span>&#xFEFF;</span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,p=f.body,m,h;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="&#xFEFF;":d=null,s.innerHTML="<span>&#xFEFF;</span><span>&#xFEFF;</span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(h=s.childNodes[l],a=p.createControlRange(),a.addElement(h),a.select(),m=e.getRng(),m.item&&h===m.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(R,[g],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey},metaKeyPressed:function(t){return(e.mac?t.metaKey:t.ctrlKey)&&!t.altKey}}}),r(A,[R,p,g],function(e,t,n){return function(r,i){function o(e){var t=i.settings.object_resizing;return t===!1||n.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:i.dom.is(e,t))}function a(t){var n,r;n=t.screenX-k,r=t.screenY-T,H=n*E[2]+B,P=r*E[3]+L,H=5>H?5:H,P=5>P?5:P,(e.modifierPressed(t)||"IMG"==w.nodeName&&E[2]*E[3]!==0)&&(H=Math.round(P/D),P=Math.round(H*D)),C.setStyles(_,{width:H,height:P}),E[2]<0&&_.clientWidth<=H&&C.setStyle(_,"left",R+(B-H)),E[3]<0&&_.clientHeight<=P&&C.setStyle(_,"top",A+(L-P)),M||(i.fire("ObjectResizeStart",{target:w,width:B,height:L}),M=!0)}function s(){function e(e,t){t&&(w.style[e]||!i.schema.isValid(w.nodeName.toLowerCase(),e)?C.setStyle(w,e,t):C.setAttrib(w,e,t))}M=!1,e("width",H),e("height",P),C.unbind(O,"mousemove",a),C.unbind(O,"mouseup",s),I!=O&&(C.unbind(I,"mousemove",a),C.unbind(I,"mouseup",s)),C.remove(_),F&&"TABLE"!=w.nodeName||l(w),i.fire("ObjectResized",{target:w,width:H,height:P}),i.nodeChanged()}function l(e,t,r){var l,u,d,f,p,m=i.getBody();g(),l=C.getPos(e,m),R=l.x,A=l.y,p=e.getBoundingClientRect(),u=p.width||p.right-p.left,d=p.height||p.bottom-p.top,w!=e&&(h(),w=e,H=P=0),f=i.fire("ObjectSelected",{target:e}),o(e)&&!f.isDefaultPrevented()?x(N,function(e,o){function l(t){k=t.screenX,T=t.screenY,B=w.clientWidth,L=w.clientHeight,D=L/B,E=e,_=w.cloneNode(!0),C.addClass(_,"mce-clonedresizable"),_.contentEditable=!1,_.unSelectabe=!0,C.setStyles(_,{left:R,top:A,margin:0}),_.removeAttribute("data-mce-selected"),i.getBody().appendChild(_),C.bind(O,"mousemove",a),C.bind(O,"mouseup",s),I!=O&&(C.bind(I,"mousemove",a),C.bind(I,"mouseup",s))}var c,f;return t?void(o==t&&l(r)):(c=C.get("mceResizeHandle"+o),c?C.show(c):(f=i.getBody(),c=C.add(f,"div",{id:"mceResizeHandle"+o,"data-mce-bogus":!0,"class":"mce-resizehandle",unselectable:!0,style:"cursor:"+o+"-resize; margin:0; padding:0"}),n.ie&&(c.contentEditable=!1)),e.elm||(C.bind(c,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),l(e)}),e.elm=c),void C.setStyles(c,{left:u*e[0]+R-c.offsetWidth/2,top:d*e[1]+A-c.offsetHeight/2}))}):c(),w.setAttribute("data-mce-selected","1")}function c(){var e,t;g(),w&&w.removeAttribute("data-mce-selected");for(e in N)t=C.get("mceResizeHandle"+e),t&&(C.unbind(t),C.remove(t))}function u(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n;return x(C.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),n="mousedown"==e.type?e.target:r.getNode(),n=C.getParent(n,F?"table":"table,img,hr"),t(n,i.getBody())&&(v(),t(r.getStart(),n)&&t(r.getEnd(),n)&&(!F||n!=r.getStart()&&"IMG"!==r.getStart().nodeName))?void l(n):void c()}function d(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,u;n=t.getBoundingClientRect(),c=S.clientX-n.left,u=S.clientY-n.top;for(r in N)if(o=N[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],Math.abs(a-c)<8&&Math.abs(s-u)<8){E=o;break}M=!0,i.getDoc().selection.empty(),l(t,r,S)}function m(e){var t=e.srcElement;if(t!=w){if(h(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),w=t,d(t,"resizestart",p))}}function h(){f(w,"resizestart",p)}function g(){for(var e in N){var t=N[e];t.elm&&(C.unbind(t.elm),delete t.elm)}}function v(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function y(e){var t;if(F){t=O.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function b(){w=_=null,F&&(h(),f(i.getBody(),"controlselect",m))}var C=i.dom,x=t.each,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O=i.getDoc(),I=document,F=n.ie&&n.ie<11;N={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var z=".mce-content-body";return i.contentStyles.push(z+" div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}"+z+" .mce-resizehandle:hover {background: #000}"+z+" img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}"+z+" .mce-clonedresizable {position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"),i.on("init",function(){F?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),y(e.target))}),d(i.getBody(),"controlselect",m),i.on("mousedown",function(e){S=e})):(v(),n.ie>=11&&(i.on("mouseup",function(e){var t=e.target.nodeName;/^(TABLE|IMG|HR)$/.test(t)&&(i.selection.select(e.target,"TABLE"==t),i.nodeChanged())}),i.dom.bind(i.getBody(),"mscontrolselect",function(e){/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&window.setTimeout(function(){i.selection.select(e.target)},0))}))),i.on("nodechange mousedown mouseup ResizeEditor",u),i.on("keydown keyup",function(e){w&&"TABLE"==w.nodeName&&u(e)})}),i.on("remove",g),{isResizable:o,showResizeRect:l,hideResizeRect:c,updateResizeRect:u,controlSelect:y,destroy:b}}}),r(B,[p,f],function(e,t){function n(e){this.walk=function(t,n){function i(e){var t;return t=e[0],3===t.nodeType&&t===l&&c>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===d&&e.length>0&&t===u&&3===t.nodeType&&e.splice(e.length-1,1),e}function o(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function a(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,r){var a=r?"nextSibling":"previousSibling";for(h=e,g=h.parentNode;h&&h!=t;h=g)g=h.parentNode,v=o(h==e?h:h[a],a),v.length&&(r||v.reverse(),n(i(v)))}var l=t.startContainer,c=t.startOffset,u=t.endContainer,d=t.endOffset,f,p,m,h,g,v,y;if(y=e.select("td.mce-item-selected,th.mce-item-selected"),y.length>0)return void r(y,function(e){n([e])});if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[c]),1==u.nodeType&&u.hasChildNodes()&&(u=u.childNodes[Math.min(d-1,u.childNodes.length-1)]),l==u)return n(i([l]));for(f=e.findCommonAncestor(l,u),h=l;h;h=h.parentNode){if(h===u)return s(l,f,!0);if(h===f)break}for(h=u;h;h=h.parentNode){if(h===l)return s(u,f);if(h===f)break}p=a(l,f)||l,m=a(u,f)||u,s(l,p,!0),v=o(p==l?p:p.nextSibling,"nextSibling",m==u?m.nextSibling:m),v.length&&n(i(v)),s(u,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||f);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function s(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function l(n,r){var a,s,l;if(r=r||c,l=e.getParent(r.parentNode,e.isBlock)||f,n&&"BR"==r.nodeName&&g&&e.isEmpty(l))return c=r.parentNode,u=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);p=a[n?"prev":"next"]();){if(3===p.nodeType&&p.nodeValue.length>0)return c=p,u=n?p.nodeValue.length:0,void(i=!0);if(e.isBlock(p)||m[p.nodeName.toLowerCase()])return;s=p}o&&s&&(c=s,i=!0,u=0)}var c,u,d,f=e.getRoot(),p,m,h,g;if(c=n[(r?"start":"end")+"Container"],u=n[(r?"start":"end")+"Offset"],g=1==c.nodeType&&u===c.childNodes.length,m=e.schema.getNonEmptyElements(),h=r,1==c.nodeType&&u>c.childNodes.length-1&&(h=!1),9===c.nodeType&&(c=e.getRoot(),u=0),c===f){if(h&&(p=c.childNodes[u>0?u-1:0],p&&(m[p.nodeName]||"TABLE"==p.nodeName)))return;if(c.hasChildNodes()&&(u=Math.min(!h&&u>0?u-1:u,c.childNodes.length-1),c=c.childNodes[u],u=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){p=c,d=new t(c,f);do{if(3===p.nodeType&&p.nodeValue.length>0){u=h?0:p.nodeValue.length,c=p,i=!0;break}if(m[p.nodeName.toLowerCase()]){u=e.nodeIndex(p),c=p.parentNode,"IMG"!=p.nodeName||h||u++,i=!0;break}}while(p=h?d.next():d.prev())}}o&&(3===c.nodeType&&0===u&&l(!0),1===c.nodeType&&(p=c.childNodes[u],p||(p=c.childNodes[u-1]),!p||"BR"!==p.nodeName||s(p,"A")||a(p)||a(p,!0)||l(!0,p))),h&&!o&&3===c.nodeType&&u===c.nodeValue.length&&l(!1),i&&n["set"+(r?"Start":"End")](c,u)}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}var r=e.each;return n.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},n}),r(L,[f,T,A,B,g,p],function(e,n,r,i,o,a){function s(e,t,i,o){var a=this;a.dom=e,a.win=t,a.serializer=i,a.editor=o,a.controlSelection=new r(a,o),a.win.getSelection||(a.tridentSel=new n(a))}var l=a.each,c=a.grep,u=a.trim,d=o.ie,f=o.opera;return s.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(){var e=this,t=e.getRng(),n,r,i,o;if(t.duplicate||t.item){if(t.item)return t.item(0);for(i=t.duplicate(),i.collapse(1),n=i.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),r=o=t.parentElement();o=o.parentNode;)if(o==n){n=r;break}return n}return n=t.startContainer,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[Math.min(n.childNodes.length-1,t.startOffset)]),n&&3==n.nodeType?n.parentNode:n},getEnd:function(){var e=this,t=e.getRng(),n,r;return t.duplicate||t.item?t.item?t.item(0):(t=t.duplicate(),t.collapse(0),n=t.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),n&&"BODY"==n.nodeName?n.lastChild||n:n):(n=t.endContainer,r=t.endOffset,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[r>0?r-1:r]),n&&3==n.nodeType?n.parentNode:n)},getBookmark:function(e,t){function n(e,t){var n=0;return l(a.select(e),function(e,r){e==t&&(n=r)}),n}function r(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function i(){function e(e,n){var i=e[n?"startContainer":"endContainer"],a=e[n?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==i.nodeType){if(t)for(l=i.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=i.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(o.dom.nodeIndex(c[a],t)+u);for(;i&&i!=r;i=i.parentNode)s.push(o.dom.nodeIndex(i,t));return s}var n=o.getRng(!0),r=a.getRoot(),i={};return i.start=e(n,!0),o.isCollapsed()||(i.end=e(n)),i}var o=this,a=o.dom,s,c,u,d,f,p,m="&#xFEFF;",h;if(2==e)return p=o.getNode(),f=p?p.nodeName:null,"IMG"==f?{name:f,index:n(f,p)}:o.tridentSel?o.tridentSel.getBookmark(e):i();if(e)return{rng:o.getRng()};if(s=o.getRng(),u=a.uniqueId(),d=o.isCollapsed(),h="overflow:hidden;line-height:0px",s.duplicate||s.item){if(s.item)return p=s.item(0),f=p.nodeName,{name:f,index:n(f,p)};c=s.duplicate();try{s.collapse(),s.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_start" style="'+h+'">'+m+"</span>"),d||(c.collapse(!1),s.moveToElementText(c.parentElement()),0===s.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_end" style="'+h+'">'+m+"</span>"))}catch(g){return null}}else{if(p=o.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:n(f,p)};c=r(s.cloneRange()),d||(c.collapse(!1),c.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:h},m))),s=r(s),s.collapse(!0),s.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:h},m))}return o.moveToBookmark({id:u,keep:1}),{id:u}},moveToBookmark:function(e){function t(t){var n=e[t?"start":"end"],r,i,o,l;if(n){for(o=n[0],i=s,r=n.length-1;r>=1;r--){if(l=i.childNodes,n[r]>l.length-1)return;i=l[n[r]]}3===i.nodeType&&(o=Math.min(n[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(n[0],i.childNodes.length)),t?a.setStart(i,o):a.setEnd(i,o)}return!0}function n(t){var n=o.get(e.id+"_"+t),r,i,a,s,d=e.keep;if(n&&(r=n.parentNode,"start"==t?(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),u=p=r,m=h=i):(d?(r=n.firstChild,i=1):i=o.nodeIndex(n),p=r,h=i),!d)){for(s=n.previousSibling,a=n.nextSibling,l(c(n.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});n=o.get(e.id+"_"+t);)o.remove(n,1);s&&a&&s.nodeType==a.nodeType&&3==s.nodeType&&!f&&(i=s.nodeValue.length,s.appendData(a.nodeValue),o.remove(a),"start"==t?(u=p=s,m=h=i):(p=s,h=i))}}function r(e){return!o.isBlock(e)||e.innerHTML||d||(e.innerHTML='<br data-mce-bogus="1" />'),e}var i=this,o=i.dom,a,s,u,p,m,h;if(e)if(e.start){if(a=o.createRng(),s=o.getRoot(),i.tridentSel)return i.tridentSel.moveToBookmark(e);t(!0)&&t()&&i.setRng(a)}else e.id?(n("start"),n("end"),u&&(a=o.createRng(),a.setStart(r(u),m),a.setEnd(r(p),h),i.setRng(a))):e.name?i.select(o.select(e.name)[e.index]):e.rng&&i.setRng(e.rng)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a=n.win.document,s;if(!e&&n.lastFocusBookmark){var l=n.lastFocusBookmark;return l.startContainer?(i=a.createRange(),i.setStart(l.startContainer,l.startOffset),i.setEnd(l.endContainer,l.endOffset)):i=l,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(d&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r;if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return void n.tridentSel.addRange(e)}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,l=t.dom.getRoot();return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return!d&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};l(n.selectorChangedData,function(e,t){l(o,function(n){return i.is(n,t)?(r[t]||(l(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),l(r,function(e,n){a[n]||(delete r[n],l(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e){function t(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var n,r,i=this,o=i.dom,a=o.getRoot(),s,l;if("BODY"!=a.nodeName){var c=i.getScrollContainer();if(c)return n=t(e).y-t(c).y,l=c.clientHeight,s=c.scrollTop,void((s>n||n+25>s+l)&&(c.scrollTop=s>n?n:n-l+25))}r=o.getViewPort(i.editor.getWin()),n=o.getPos(e).y,s=r.y,l=r.h,(n<r.y||n+25>s+l)&&i.editor.getWin().scrollTo(0,s>n?n:n-l+25)},_moveEndPoint:function(t,n,r){var i=n,a=new e(n,i),s=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==u(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(s[n.nodeName])return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(o.ie&&o.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?a.next():a.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},destroy:function(){this.win=null,this.controlSelection.destroy()}},s}),r(D,[p],function(e){function t(e,t){function r(e){return e.replace(/%(\w+)/g,"")}var i,o,a=e.dom,s="",l,c;if(c=e.settings.preview_styles,c===!1)return"";if(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof t){if(t=e.formatter.get(t),!t)return;t=t[0]}return i=t.block||t.inline||"span",o=a.create(i),n(t.styles,function(e,t){e=r(e),e&&a.setStyle(o,t,e)}),n(t.attributes,function(e,t){e=r(e),e&&a.setAttrib(o,t,e)}),n(t.classes,function(e){e=r(e),a.hasClass(o,e)||a.addClass(o,e)}),e.fire("PreviewFormats"),a.setStyles(o,{position:"absolute",left:-65535}),e.getBody().appendChild(o),l=a.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,n(c.split(" "),function(t){var n=a.getStyle(o,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=a.getStyle(e.getBody(),t,!0),"#ffffff"==a.toHex(n).toLowerCase())||"color"==t&&"#000000"==a.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(s+="padding:0 2px;"),s+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),a.remove(o),s}var n=e.each;return{getCssText:t}}),r(M,[f,B,p,D],function(e,t,n,r){return function(i){function o(e){return e.nodeType&&(e=e.nodeName),!!i.schema.getTextBlockElements()[e.toLowerCase()]}function a(e,t){return z.getParents(e,t,z.getRoot())}function s(e){return 1===e.nodeType&&"_mce_caret"===e.id}function l(){d({alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],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:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:!1},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:!1},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"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){nt(n,function(t,n){z.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),nt("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){d(e,{block:e,remove:"all"})}),d(i.settings.formats)}function c(){i.addShortcut("ctrl+b","bold_desc","Bold"),i.addShortcut("ctrl+i","italic_desc","Italic"),i.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)i.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);i.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),i.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),i.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function u(e){return e?F[e]:F}function d(e,t){e&&("string"!=typeof e?nt(e,function(e,t){d(t,e)}):(t=t.length?t:[t],nt(t,function(e){e.deep===Q&&(e.deep=!e.selector),e.split===Q&&(e.split=!e.selector||e.inline),e.remove===Q&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),F[e]=t))}function f(e){var t;return i.dom.getParent(e,function(e){return t=i.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function p(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=f(e.parentNode),i.dom.getStyle(e,"color")&&t?i.dom.setStyle(e,"text-decoration",t):i.dom.getStyle(e,"textdecoration")===t&&i.dom.setStyle(e,"text-decoration",null))}function m(t,n,r){function a(e,t){t=t||h,e&&(t.onformat&&t.onformat(e,t,n,r),nt(t.styles,function(t,r){z.setStyle(e,r,k(t,n))}),nt(t.attributes,function(t,r){z.setAttrib(e,r,k(t,n))}),nt(t.classes,function(t){t=k(t,n),z.hasClass(e,t)||z.addClass(e,t)}))}function l(){function t(t,n){var i=new e(n);for(r=i.current();r;r=i.prev())if(r.childNodes.length>1||r==t||"BR"==r.tagName)return r}var n=i.selection.getRng(),o=n.startContainer,a=n.endContainer;if(o!=a&&0===n.endOffset){var s=t(o,a),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function c(e,t,n,r,i){var o=[],a=-1,s,l=-1,c=-1,u;return nt(e.childNodes,function(e,t){return"UL"===e.nodeName||"OL"===e.nodeName?(a=t,s=e,!1):void 0}),nt(e.childNodes,function(e,n){"SPAN"===e.nodeName&&"bookmark"==z.getAttrib(e,"data-mce-type")&&(e.id==t.id+"_start"?l=n:e.id==t.id+"_end"&&(c=n))}),0>=a||a>l&&c>a?(nt(rt(e.childNodes),i),0):(u=z.clone(n,G),nt(rt(e.childNodes),function(e,t){(a>l&&a>t||l>a&&t>a)&&(o.push(e),e.parentNode.removeChild(e))}),a>l?e.insertBefore(u,s):l>a&&e.insertBefore(u,s.nextSibling),r.push(u),nt(o,function(e){u.appendChild(e)}),u)}function d(e,r,i){var l=[],u,d,p=!0;u=h.inline||h.block,d=z.create(u),a(d),V.walk(e,function(e){function m(e){var y,C,x,w,_;return _=p,y=e.nodeName.toLowerCase(),C=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&Z(e)&&(_=p,p="true"===Z(e),w=!0),N(y,"br")?(g=0,void(h.block&&z.remove(e))):h.wrapper&&v(e,t,n)?void(g=0):p&&!w&&h.block&&!h.wrapper&&o(y)&&U(C,u)?(e=z.rename(e,u),a(e),l.push(e),void(g=0)):h.selector&&(nt(f,function(t){"collapsed"in t&&t.collapsed!==b||z.is(e,t.selector)&&!s(e)&&(a(e,t),x=!0)}),!h.inline||x)?void(g=0):void(!p||w||!U(u,y)||!U(C,u)||!i&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||s(e)||h.inline&&q(e)?"li"==y&&r?g=c(e,r,d,l,m):(g=0,nt(rt(e.childNodes),m),w&&(p=_),g=0):(g||(g=z.clone(d,G),e.parentNode.insertBefore(g,e),l.push(g)),g.appendChild(e)))}var g;nt(e,m)}),h.wrap_links===!1&&nt(l,function(e){function t(e){var n,r,i;if("A"===e.nodeName){for(r=z.clone(d,G),l.push(r),i=rt(e.childNodes),n=0;n<i.length;n++)r.appendChild(i[n]);e.appendChild(r)}nt(rt(e.childNodes),t)}t(e)}),nt(l,function(e){function r(e){var t=0;return nt(e.childNodes,function(e){T(e)||M(e)||t++}),t}function i(e){var t,n;return nt(e.childNodes,function(e){return 1!=e.nodeType||M(e)||s(e)?void 0:(t=e,G)}),t&&!M(t)&&_(t,h)&&(n=z.clone(t,G),a(n),z.replace(n,e,X),z.remove(t,1)),n||e}var o;if(o=r(e),(l.length>1||!q(e))&&0===o)return void z.remove(e,1);if(h.inline||h.wrapper){if(h.exact||1!==o||(e=i(e)),nt(f,function(t){nt(z.select(t.inline,e),function(e){var r;if(!M(e)){if(t.wrap_links===!1){r=e.parentNode;do if("A"===r.nodeName)return;while(r=r.parentNode)}B(t,n,e,t.exact?e:null)}})}),v(e.parentNode,t,n))return z.remove(e,1),e=0,X;h.merge_with_parents&&z.getParent(e.parentNode,function(r){return v(r,t,n)?(z.remove(e,1),e=0,X):void 0}),e&&h.merge_siblings!==!1&&(e=H(D(e),e),e=H(e,D(e,X)))}})}var f=u(t),h=f[0],g,y,b=!r&&W.isCollapsed();if(h)if(r)r.nodeType?(y=z.createRng(),y.setStartBefore(r),y.setEndAfter(r),d(A(y,f),null,!0)):d(r,null,!0);else if(b&&h.inline&&!z.select("td.mce-item-selected,th.mce-item-selected").length)O("apply",t,n);else{var C=i.selection.getNode();$||!f[0].defaultBlock||z.getParent(C,z.isBlock)||m(f[0].defaultBlock),i.selection.setRng(l()),g=W.getBookmark(),d(A(W.getRng(X),f),g),h.styles&&(h.styles.color||h.styles.textDecoration)&&(it(C,p,"childNodes"),p(C)),W.moveToBookmark(g),I(W.getRng(X)),i.nodeChanged()}}function h(e,t,n){function r(e){var n,i,o,a,s;
-if(1===e.nodeType&&Z(e)&&(a=b,b="true"===Z(e),s=!0),n=rt(e.childNodes),b&&!s)for(i=0,o=p.length;o>i&&!B(p[i],t,e,e);i++);if(m.deep&&n.length){for(i=0,o=n.length;o>i;i++)r(n[i]);s&&(b=a)}}function o(n){var r;return nt(a(n.parentNode).reverse(),function(n){var i;r||"_start"==n.id||"_end"==n.id||(i=v(n,e,t),i&&i.split!==!1&&(r=n))}),r}function s(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=z.clone(o,G),c=0;c<p.length;c++)if(B(p[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||m.mixed&&q(e)||(n=z.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function l(e){return s(o(e),e,e,!0)}function c(e){var t=z.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return M(n)&&(n=n[e?"firstChild":"lastChild"]),z.remove(t,!0),n}function d(e){var t,n,o=e.commonAncestorContainer;e=A(e,p,X),m.split&&(t=P(e,X),n=P(e),t!=n?(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),o&&/^T(HEAD|BODY|FOOT|R)$/.test(o.nodeName)&&/^(TH|TD)$/.test(n.nodeName)&&n.firstChild&&(n=n.firstChild||n),t=R(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=R(n,"span",{id:"_end","data-mce-type":"bookmark"}),l(t),l(n),t=c(X),n=c()):t=n=l(t),e.startContainer=t.parentNode,e.startOffset=j(t),e.endContainer=n.parentNode,e.endOffset=j(n)+1),V.walk(e,function(e){nt(e,function(e){r(e),1===e.nodeType&&"underline"===i.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===f(e.parentNode)&&B({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var p=u(e),m=p[0],h,g,b=!0;return n?void(n.nodeType?(g=z.createRng(),g.setStartBefore(n),g.setEndAfter(n),d(g)):d(n)):void(W.isCollapsed()&&m.inline&&!z.select("td.mce-item-selected,th.mce-item-selected").length?O("remove",e,t):(h=W.getBookmark(),d(W.getRng(X)),W.moveToBookmark(h),m.inline&&y(e,t,W.getStart())&&I(W.getRng(!0)),i.nodeChanged()))}function g(e,t,n){var r=u(e);!y(e,t,n)||"toggle"in r[0]&&!r[0].toggle?m(e,t,n):h(e,t,n)}function v(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===Q){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?z.getAttrib(e,o):E(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!N(a,S(k(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?z.getAttrib(e,s[l]):E(e,s[l]))return t;return t}var o=u(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],_(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!z.hasClass(e,l[s]))return;return a}}function y(e,t,n){function r(n){var r=z.getRoot();return n===r?!1:(n=z.getParent(n,function(n){return n.parentNode===r||!!v(n,e,t,!0)}),v(n,e,t))}var i;return n?r(n):(n=W.getNode(),r(n)?X:(i=W.getStart(),i!=n&&r(i)?X:G))}function b(e,t){var n,r=[],i={};return n=W.getStart(),z.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&v(n,a,t)&&(i[a]=!0,r.push(a))},z.getRoot()),r}function C(e){var t=u(e),n,r,i,o,s;if(t)for(n=W.getStart(),r=a(n),o=t.length-1;o>=0;o--){if(s=t[o].selector,!s||t[o].defaultBlock)return X;for(i=r.length-1;i>=0;i--)if(z.is(r[i],s))return X}return G}function x(e,t,n){var r;return J||(J={},r={},i.on("NodeChange",function(e){var t=a(e.element),n={};nt(J,function(e,i){nt(t,function(o){return v(o,i,{},e.similar)?(r[i]||(nt(e,function(e){e(!0,{node:o,format:i,parents:t})}),r[i]=e),n[i]=e,!1):void 0})}),nt(r,function(i,o){n[o]||(delete r[o],nt(i,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),nt(e.split(","),function(e){J[e]||(J[e]=[],J[e].similar=n),J[e].push(t)}),this}function w(e){return r.getCssText(i,e)}function _(e,t){return N(e,t.inline)?X:N(e,t.block)?X:t.selector?1==e.nodeType&&z.is(e,t.selector):void 0}function N(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function E(e,t){return S(z.getStyle(e,t),t)}function S(e,t){return("color"==t||"backgroundColor"==t)&&(e=z.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function k(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function T(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function R(e,t,n){var r=z.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function A(t,n,r){function s(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=z.getRoot(),3==r.nodeType&&!T(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&q(i))return i;for(o=i[a];o;o=o[a])if(!M(o)&&!T(o)&&!t(o))return i;if(i.parentNode==s){r=i;break}i=i.parentNode}return r}function l(e,t){for(t===Q&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function c(e){for(var t=e;t;){if(1===t.nodeType&&Z(t))return"false"===Z(t)?t:e;t=t.parentNode}return e}function u(t,n,o){function a(e,t){var n,i,a=e.nodeValue;return"undefined"==typeof t&&(t=o?a.length:0),o?(n=a.lastIndexOf(" ",t),i=a.lastIndexOf("\xa0",t),n=n>i?n:i,-1===n||r||n++):(n=a.indexOf(" ",t),i=a.indexOf("\xa0",t),n=-1!==n&&(-1===i||i>n)?n:i),n}var s,l,c,u;if(3===t.nodeType){if(c=a(t,n),-1!==c)return{container:t,offset:c};u=t}for(s=new e(t,z.getParent(t,q)||i.getBody());l=s[o?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=a(l),-1!==c)return{container:l,offset:c}}else if(q(l))break;return u?(n=o?0:u.length,{container:u,offset:n}):void 0}function d(e,r){var i,o,s,l;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=a(e),o=0;o<i.length;o++)for(s=0;s<n.length;s++)if(l=n[s],!("collapsed"in l&&l.collapsed!==t.collapsed)&&z.is(i[o],l.selector))return i[o];return e}function f(e,t){var r,i=z.getRoot();if(n[0].wrapper||(r=z.getParent(e,n[0].block,i)),r||(r=z.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=i&&o(e)})),r&&n[0].wrapper&&(r=a(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!q(r[t])&&(r=r[t],!N(r,"br")););return r||e}var p,m,h,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(M(g.parentNode)||M(g))&&(g=M(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(M(y.parentNode)||M(y))&&(y=M(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(h=u(g,v,!0),h&&(g=h.container,v=h.offset),h=u(y,b),h&&(y=h.container,b=h.offset)),m=l(y,b),m.node)){for(;m.node&&0===m.offset&&m.node.previousSibling;)m=l(m.node.previousSibling);m.node&&m.offset>0&&3===m.node.nodeType&&" "===m.node.nodeValue.charAt(m.offset-1)&&m.offset>1&&(y=m.node,y.splitText(m.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=s(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=s())),n[0].selector&&n[0].expand!==G&&!n[0].inline&&(g=d(g,"previousSibling"),y=d(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(q(g)||(g=s(!0)),q(y)||(y=s()))),1==g.nodeType&&(v=j(g),g=g.parentNode),1==y.nodeType&&(b=j(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function B(e,t,n,r){var i,o,a;if(!_(n,e))return G;if("all"!=e.remove)for(nt(e.styles,function(e,i){e=S(k(e,t),i),"number"==typeof i&&(i=e,r=0),(!r||N(E(r,i),e))&&z.setStyle(n,i,""),a=1}),a&&""===z.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),nt(e.attributes,function(e,i){var o;if(e=k(e,t),"number"==typeof i&&(i=e,r=0),!r||N(z.getAttrib(r,i),e)){if("class"==i&&(e=z.getAttrib(n,i),e&&(o="",nt(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void z.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),Y.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),nt(e.classes,function(e){e=k(e,t),(!r||z.hasClass(r,e))&&z.removeClass(n,e)}),o=z.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return G;return"none"!=e.remove?(L(n,e),X):void 0}function L(e,t){function n(e,t,n){return e=D(e,t,n),!e||"BR"==e.nodeName||q(e)}var r=e.parentNode,o;t.block&&($?r==z.getRoot()&&(t.list_block&&N(e,t.list_block)||nt(rt(e.childNodes),function(e){U($,e.nodeName.toLowerCase())?o?o.appendChild(e):(o=R(e,$),z.setAttribs(o,i.settings.forced_root_block_attrs)):o=0})):q(e)&&!q(r)&&(n(e,G)||n(e.firstChild,X,1)||e.insertBefore(z.create("br"),e.firstChild),n(e,X)||n(e.lastChild,G,1)||e.appendChild(z.create("br")))),t.selector&&t.inline&&!N(t.inline,e)||z.remove(e,1)}function D(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!T(e))return e}function M(e){return e&&1==e.nodeType&&"bookmark"==e.getAttribute("data-mce-type")}function H(e,t){function n(e,t){function n(e){var t={};return nt(z.getAttribs(e),function(n){var r=n.nodeName.toLowerCase();0!==r.indexOf("_")&&"style"!==r&&"data-mce-style"!==r&&(t[r]=z.getAttrib(e,r))}),t}function r(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],n===Q)return G;if(e[r]!=n)return G;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return G;return X}return e.nodeName!=t.nodeName?G:r(n(e),n(t))&&r(z.parseStyle(z.getAttrib(e,"style")),z.parseStyle(z.getAttrib(t,"style")))?!M(e)&&!M(t):G}function r(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!M(i))return i}return e}var i,o;if(e&&t&&(e=r(e,"previousSibling"),t=r(t,"nextSibling"),n(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return z.remove(t),nt(rt(t.childNodes),function(t){e.appendChild(t)}),e}return t}function P(t,n){var r,o,a;return r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],1==r.nodeType&&(a=r.childNodes.length-1,!n&&o&&o--,r=r.childNodes[o>a?a:o]),3===r.nodeType&&n&&o>=r.nodeValue.length&&(r=new e(r,i.getBody()).next()||r),3!==r.nodeType||n||0!==o||(r=new e(r,i.getBody()).prev()||r),r}function O(t,n,r){function a(e){var t=z.create("span",{id:y,"data-mce-bogus":!0,style:b?"color:red":""});return e&&t.appendChild(i.getDoc().createTextNode(K)),t}function s(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==K||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function l(e){for(;e;){if(e.id===y)return e;e=e.parentNode}}function c(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=W.getRng(!0),s(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),z.remove(e)):(n=c(e),n.nodeValue.charAt(0)===K&&(n=n.deleteData(0,1)),z.remove(e,1)),W.setRng(r);else if(e=l(W.getStart()),!e)for(;e=z.get(y);)d(e,!1)}function f(){var e,t,i,o,s,d,f;e=W.getRng(!0),o=e.startOffset,d=e.startContainer,f=d.nodeValue,t=l(W.getStart()),t&&(i=c(t)),f&&o>0&&o<f.length&&/\w/.test(f.charAt(o))&&/\w/.test(f.charAt(o-1))?(s=W.getBookmark(),e.collapse(!0),e=A(e,u(n)),e=V.split(e),m(n,r,e),W.moveToBookmark(s)):(t&&i.nodeValue===K?m(n,r,t):(t=a(!0),i=t.firstChild,e.insertNode(t),o=1,m(n,r,t)),W.setCursorLocation(i,o))}function p(){var e=W.getRng(!0),t,i,s,l,c,d,f=[],p,m;for(t=e.startContainer,i=e.startOffset,c=t,3==t.nodeType&&((i!=t.nodeValue.length||t.nodeValue===K)&&(l=!0),c=c.parentNode);c;){if(v(c,n,r)){d=c;break}c.nextSibling&&(l=!0),f.push(c),c=c.parentNode}if(d)if(l)s=W.getBookmark(),e.collapse(!0),e=A(e,u(n),!0),e=V.split(e),h(n,r,e),W.moveToBookmark(s);else{for(m=a(),c=m,p=f.length-1;p>=0;p--)c.appendChild(z.clone(f[p],!1)),c=c.firstChild;c.appendChild(z.doc.createTextNode(K)),c=c.firstChild;var g=z.getParent(d,o);g&&z.isEmpty(g)?d.parentNode.replaceChild(m,d):z.insertAfter(m,d),W.setCursorLocation(c,1),z.isEmpty(d)&&z.remove(d)}}function g(){var e;e=l(W.getStart()),e&&!z.isEmpty(e)&&it(e,function(e){1!=e.nodeType||e.id===y||z.isEmpty(e)||z.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var y="_mce_caret",b=i.settings.caret_debug;i._hasCaretEvents||(tt=function(){var e=[],t;if(s(l(W.getStart()),e))for(t=e.length;t--;)z.setAttrib(e[t],"data-mce-bogus","1")},et=function(e){var t=e.keyCode;d(),(8==t||37==t||39==t)&&d(l(W.getStart())),g()},i.on("SetContent",function(e){e.selection&&g()}),i._hasCaretEvents=!0),"apply"==t?f():p()}function I(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=j(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,z.getParent(n,z.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!T(a))return l=z.create("a",null,K),a.parentNode.insertBefore(l,a),t.setStart(a,0),W.setRng(t),void z.remove(l)}var F={},z=i.dom,W=i.selection,V=new t(z),U=i.schema.isValidChild,q=z.isBlock,$=i.settings.forced_root_block,j=z.nodeIndex,K="\ufeff",Y=/^(src|href|style)$/,G=!1,X=!0,J,Q,Z=z.getContentEditable,et,tt,nt=n.each,rt=n.grep,it=n.walk,ot=n.extend;ot(this,{get:u,register:d,apply:m,remove:h,toggle:g,match:y,matchAll:b,matchNode:v,canApply:C,formatChanged:x,getCssText:w}),l(),c(),i.on("BeforeGetContent",function(){tt&&tt()}),i.on("mouseup keydown",function(e){et&&et(e)})}}),r(H,[g,p],function(e,t){var n=t.trim,r;return r=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","<div[^>]+data-mce-bogus[^>]+><\\/div>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(t){function i(){return n(t.getContent({format:"raw",no_events:1}).replace(r,""))}function o(e){a.typing=!1,a.add({},e)}var a=this,s=0,l=[],c,u,d=0;return t.on("init",function(){a.add()}),t.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&a.beforeChange()}),t.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&o(e)}),t.on("ObjectResizeStart",function(){a.beforeChange()}),t.on("SaveContent ObjectResized blur",o),t.dom.bind(t.dom.getRoot(),"dragend",o),t.on("KeyUp",function(n){var r=n.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||n.ctrlKey)&&(o(),t.nodeChanged()),(46==r||8==r||e.mac&&(91==r||93==r))&&t.nodeChanged(),u&&a.typing&&(t.isDirty()||(t.isNotDirty=!l[0]||i()==l[0].content,t.isNotDirty||t.fire("change",{level:l[0],lastLevel:null})),t.fire("TypingUndo"),u=!1,t.nodeChanged())}),t.on("KeyDown",function(e){var t=e.keyCode;return t>=33&&36>=t||t>=37&&40>=t||45==t?void(a.typing&&o(e)):void((16>t||t>20)&&224!=t&&91!=t&&!a.typing&&(a.beforeChange(),a.typing=!0,a.add({},e),u=!0))}),t.on("MouseDown",function(e){a.typing&&o(e)}),t.addShortcut("ctrl+z","","Undo"),t.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),t.on("AddUndo Undo Redo ClearUndos MouseUp",function(e){e.isDefaultPrevented()||t.nodeChanged()}),a={data:l,typing:!1,beforeChange:function(){d||(c=t.selection.getBookmark(2,!0))},add:function(e,n){var r,o=t.settings,a;if(e=e||{},e.content=i(),d||t.removed)return null;if(a=l[s],t.fire("BeforeAddUndo",{level:e,lastLevel:a,originalEvent:n}).isDefaultPrevented())return null;if(a&&a.content==e.content)return null;if(l[s]&&(l[s].beforeBookmark=c),o.custom_undo_redo_levels&&l.length>o.custom_undo_redo_levels){for(r=0;r<l.length-1;r++)l[r]=l[r+1];l.length--,s=l.length}e.bookmark=t.selection.getBookmark(2,!0),s<l.length-1&&(l.length=s+1),l.push(e),s=l.length-1;var u={level:e,lastLevel:a,originalEvent:n};return t.fire("AddUndo",u),s>0&&(t.isNotDirty=!1,t.fire("change",u)),e},undo:function(){var e;return a.typing&&(a.add(),a.typing=!1),s>0&&(e=l[--s],0===s&&(t.isNotDirty=!0),t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.beforeBookmark),t.fire("undo",{level:e})),e},redo:function(){var e;return s<l.length-1&&(e=l[++s],t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.bookmark),t.fire("redo",{level:e})),e},clear:function(){l=[],s=0,a.typing=!1,t.fire("ClearUndos")},hasUndo:function(){return s>0||a.typing&&l[0]&&i()!=l[0].content},hasRedo:function(){return s<l.length-1&&!this.typing},transact:function(e){a.beforeChange();try{d++,e()}finally{d--}a.add()}}}}),r(P,[f,B,g],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function f(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function m(e){for(var t=e,n=[],r;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||d[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}function h(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,u;if(n.ie&&n.ie<9&&B&&B.firstChild&&B.firstChild==B.lastChild&&"BR"==B.firstChild.tagName&&a.remove(B.firstChild),"LI"==t.nodeName){var f=r(t.firstChild);f&&/^(UL|OL)$/.test(f.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(d[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!L||9>L)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}function g(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function v(e){var t=R,n,i,o;if(e||"TABLE"==O?(n=a.create(e||F),g(n)):n=B.cloneNode(!1),o=n,l.keep_styles!==!1)do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U|VAR|CITE|DFN|CODE|MARK|Q|SUP|SUB|SAMP)$/.test(t.nodeName)){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while(t=t.parentNode);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function y(t){var n,r,i;if(3==R.nodeType&&(t?A>0:A<R.nodeValue.length))return!1;if(R.parentNode==B&&z&&!t)return!0;if(t&&1==R.nodeType&&R==B.firstChild)return!0;if("TABLE"===R.nodeName||R.previousSibling&&"TABLE"==R.previousSibling.nodeName)return z&&!t||!z&&t;for(n=new e(R,B),3==R.nodeType&&(t&&0===A?n.prev():t||A!=R.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),d[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function b(e,t){var n,r,o,s,l,c,d=F||"P";if(r=a.getParent(e,a.isBlock),c=i.getBody().nodeName.toLowerCase(),!r||!f(r)){if(r=r||T,!r.hasChildNodes())return n=a.create(d),g(n),r.appendChild(n),S.setStart(n,0),S.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&u.isValidChild(c,d.toLowerCase())){for(n=a.create(d),g(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;S.setStart(e,t),S.setEnd(e,t)}}return e}function C(){function e(e){for(var t=P[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===B}function t(){var e=P.parentNode;return"LI"==e.nodeName?e:P}var n=P.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(F="LI"),M=F?v(F):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(M,t()):a.replace(M,P):e(!0)?"LI"==n?(a.insertAfter(M,t()),M.appendChild(a.doc.createTextNode(" ")),M.appendChild(P)):P.parentNode.insertBefore(M,P):e()?(a.insertAfter(M,t()),p(M)):(P=t(),k=S.cloneRange(),k.setStartAfter(B),k.setEndAfter(P),H=k.extractContents(),"LI"==F&&"LI"==H.firstChild.nodeName?(M=H.firstChild,a.insertAfter(H,P)):(a.insertAfter(H,P),a.insertAfter(M,P))),a.remove(B),h(M),c.add()}function x(){for(var t=new e(R,B),n;n=t.next();)if(d[n.nodeName.toLowerCase()]||n.length>0)return!0}function w(){var e,t,n;R&&3==R.nodeType&&A>=R.nodeValue.length&&(r||x()||(e=a.create("br"),S.insertNode(e),S.setStartAfter(e),S.setEndAfter(e),t=!0)),e=a.create("br"),S.insertNode(e),r&&"PRE"==O&&(!L||8>L)&&e.parentNode.insertBefore(a.doc.createTextNode("\r"),e),n=a.create("span",{},"&nbsp;"),e.parentNode.insertBefore(n,e),s.scrollIntoView(n),a.remove(n),t?(S.setStartBefore(e),S.setEndBefore(e)):(S.setStartAfter(e),S.setEndAfter(e)),s.setRng(S),c.add()}function _(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function N(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function E(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(a.getStyle(t,"float",!0)))&&a.add(e,"br"))}var S,k,T,R,A,B,L,D,M,H,P,O,I,F,z;if(S=s.getRng(!0),!o.isDefaultPrevented()){if(!S.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(S),R=S.startContainer,A=S.startOffset,F=(l.force_p_newlines?"p":"")||l.forced_root_block,F=F?F.toUpperCase():"",L=a.doc.documentMode,D=o.shiftKey,1==R.nodeType&&R.hasChildNodes()&&(z=A>R.childNodes.length-1,R=R.childNodes[Math.min(A,R.childNodes.length-1)]||R,A=z&&3==R.nodeType?R.nodeValue.length:0),T=N(R)){if(c.beforeChange(),!a.isBlock(T)&&T!=a.getRoot())return void((!F||D)&&w());if((F&&!D||!F&&D)&&(R=b(R,A)),B=a.getParent(R,a.isBlock),P=B?a.getParent(B.parentNode,a.isBlock):null,O=B?B.nodeName.toUpperCase():"",I=P?P.nodeName.toUpperCase():"","LI"!=I||o.ctrlKey||(B=P,O=I),"LI"==O){if(!F&&D)return void w();if(a.isEmpty(B))return void C()}if("PRE"==O&&l.br_in_pre!==!1){if(!D)return void w()}else if(!F&&!D&&"LI"!=O||F&&D)return void w();F&&B===i.getBody()||(F=F||"P",y()?(M=/^(H[1-6]|PRE|FIGURE)$/.test(O)&&"HGROUP"!=I?v(F):v(),l.end_container_on_empty_block&&f(P)&&a.isEmpty(B)?M=a.split(P,B):a.insertAfter(M,B),h(M)):y(!0)?(M=B.parentNode.insertBefore(v(),B),p(M),h(B)):(k=S.cloneRange(),k.setEndAfter(B),H=k.extractContents(),_(H),M=H.firstChild,a.insertAfter(H,B),m(M),E(B),h(M)),a.setAttrib(M,"id",""),i.fire("NewBlock",{newBlock:M}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(O,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,m,h=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",h),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",h)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){m=t,t=t.nextSibling,r.remove(m);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t),g=!0),m=t,t=t.nextSibling,p.appendChild(m)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(I,[S,g,p],function(e,n,r){var i=r.each,o=r.extend,a=r.map,s=r.inArray,l=r.explode,c=n.gecko,u=n.ie,d=!0,f=!1;return function(r){function p(e,t,n){var r;return e=e.toLowerCase(),(r=N.exec[e])?(r(e,t,n),d):f}function m(e){var t;return e=e.toLowerCase(),(t=N.state[e])?t(e):-1}function h(e){var t;return e=e.toLowerCase(),(t=N.value[e])?t(e):f}function g(e,t){t=t||"exec",i(e,function(e,n){i(n.toLowerCase().split(","),function(n){N[t][n]=e})})}function v(e,n,i){return n===t&&(n=f),i===t&&(i=null),r.getDoc().execCommand(e,n,i)}function y(e){return S.match(e)}function b(e,n){S.toggle(e,n?{value:n}:t),r.nodeChanged()}function C(e){k=_.getBookmark(e)}function x(){_.moveToBookmark(k)}var w=r.dom,_=r.selection,N={state:{},exec:{},value:{}},E=r.settings,S=r.formatter,k;o(this,{execCommand:p,queryCommandState:m,queryCommandValue:h,addCommands:g}),g({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){r.undoManager.add()},"Cut,Copy,Paste":function(e){var t=r.getDoc(),i;try{v(e)}catch(o){i=d}if(i||!t.queryCommandSupported(e)){var a=r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");n.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),r.windowManager.alert(a)}},unlink:function(){if(_.isCollapsed()){var e=_.getNode();return void("A"==e.tagName&&r.dom.remove(e,!0))}S.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),i("left,center,right,justify".split(","),function(e){t!=e&&S.remove("align"+e)}),b("align"+t),p("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;v(e),t=w.getParent(_.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(C(),w.split(n,t),x()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){b(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){b(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=l(E.font_size_style_values),r=l(E.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),b(e,n)},RemoveFormat:function(e){S.remove(e)},mceBlockQuote:function(){b("blockquote")},FormatBlock:function(e,t,n){return b(n||"p")},mceCleanup:function(){var e=_.getBookmark();r.setContent(r.getContent({cleanup:d}),{cleanup:d}),_.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var i=n||_.getNode();i!=r.getBody()&&(C(),r.dom.remove(i,d),x())},mceSelectNodeDepth:function(e,t,n){var i=0;w.getParent(_.getNode(),function(e){return 1==e.nodeType&&i++==n?(_.select(e),f):void 0},r.getBody())},mceSelectNode:function(e,t,n){_.select(n)},mceInsertContent:function(t,n,i){function o(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=_.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^&nbsp;/," "):t("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),i<r.length?e=e.replace(/&nbsp;(<br>|)$/," "):t("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}var a,s,l,c,d,f,p,m,h,g,v;/^ | $/.test(i)&&(i=o(i)),a=r.parser,s=new e({},r.schema),v='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#200B;</span>',f={content:i,format:"html",selection:!0},r.fire("BeforeSetContent",f),i=f.content,-1==i.indexOf("{$caret}")&&(i+="{$caret}"),i=i.replace(/\{\$caret\}/,v),m=_.getRng();var y=m.startContainer||(m.parentElement?m.parentElement():null),b=r.getBody();y===b&&_.isCollapsed()&&w.isBlock(b.firstChild)&&w.isEmpty(b.firstChild)&&(m=w.createRng(),m.setStart(b.firstChild,0),m.setEnd(b.firstChild,0),_.setRng(m)),_.isCollapsed()||r.getDoc().execCommand("Delete",!1,null),l=_.getNode();var C={context:l.nodeName.toLowerCase()};if(d=a.parse(i,C),h=d.lastChild,"mce_marker"==h.attr("id"))for(p=h,h=h.prev;h;h=h.walk(!0))if(3==h.type||!w.isBlock(h.name)){h.parent.insert(p,h,"br"===h.name);break}if(C.invalid){for(_.setContent(v),l=_.getNode(),c=r.getBody(),9==l.nodeType?l=h=c:h=l;h!==c;)l=h,h=h.parentNode;i=l==c?c.innerHTML:w.getOuterHTML(l),i=s.serialize(a.parse(i.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return s.serialize(d)}))),l==c?w.setHTML(c,i):w.setOuterHTML(l,i)}else i=s.serialize(d),h=l.firstChild,g=l.lastChild,!h||h===g&&"BR"===h.nodeName?w.setHTML(l,i):_.setContent(i);p=w.get("mce_marker"),_.scrollIntoView(p),m=w.createRng(),h=p.previousSibling,h&&3==h.nodeType?(m.setStart(h,h.nodeValue.length),u||(g=p.nextSibling,g&&3==g.nodeType&&(h.appendData(g.data),g.parentNode.removeChild(g)))):(m.setStartBefore(p),m.setEndBefore(p)),w.remove(p),_.setRng(m),r.fire("SetContent",f),r.addVisual()},mceInsertRawHTML:function(e,t,n){_.setContent("tiny_mce_marker"),r.setContent(r.getContent().replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){b(n)},mceSetContent:function(e,t,n){r.setContent(n)},"Indent,Outdent":function(e){var t,n,o;t=E.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),m("InsertUnorderedList")||m("InsertOrderedList")?v(e):(E.forced_root_block||w.getParent(_.getNode(),w.isBlock)||S.apply("div"),i(_.getSelectedBlocks(),function(i){if("LI"!=i.nodeName){var a=r.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==w.getStyle(i,"direction",!0)?"Right":"Left","outdent"==e?(o=Math.max(0,parseInt(i.style[a]||0,10)-t),w.setStyle(i,a,o?o+n:"")):(o=parseInt(i.style[a]||0,10)+t+n,w.setStyle(i,a,o))}}))},mceRepaint:function(){if(c)try{C(d),_.getSel()&&_.getSel().selectAllChildren(r.getBody()),_.collapse(d),x()}catch(e){}},InsertHorizontalRule:function(){r.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){r.hasVisual=!r.hasVisual,r.addVisual()},mceReplaceContent:function(e,t,n){r.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,_.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=w.getParent(_.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||S.remove("link"),n.href&&S.apply("link",n,r)},selectAll:function(){var e=w.getRoot(),t;_.getRng().setStart?(t=w.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),_.setRng(t)):(t=_.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){v("Delete");var e=r.getBody();w.isEmpty(e)&&(r.setContent(""),e.firstChild&&w.isBlock(e.firstChild)?r.selection.setCursorLocation(e.firstChild,0):r.selection.setCursorLocation(e,0))},mceNewDocument:function(){r.setContent("")}}),g({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=_.isCollapsed()?[w.getParent(_.getNode(),w.isBlock)]:_.getSelectedBlocks(),r=a(n,function(e){return!!S.matchNode(e,t)});return-1!==s(r,d)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return y(e)},mceBlockQuote:function(){return y("blockquote")},Outdent:function(){var e;if(E.inline_styles){if((e=w.getParent(_.getStart(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d;if((e=w.getParent(_.getEnd(),w.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d}return m("InsertUnorderedList")||m("InsertOrderedList")||!E.inline_styles&&!!w.getParent(_.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=w.getParent(_.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),g({"FontSize,FontName":function(e){var t=0,n;return(n=w.getParent(_.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),g({Undo:function(){r.undoManager.undo()},Redo:function(){r.undoManager.redo()}})}}),r(F,[p],function(e){function t(e,i){var o=this,a,s;if(e=r(e),i=o.settings=i||{},/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(o.source=e);var l=0===e.indexOf("//");0!==e.indexOf("/")||l||(e=(i.base_uri?i.base_uri.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(s=i.base_uri?i.base_uri.path:new t(location.href).directory,e=""===i.base_uri.protocol?"//mce_host"+o.toAbsPath(s,e):(i.base_uri&&i.base_uri.protocol||"http")+"://mce_host"+o.toAbsPath(s,e)),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(t,n){var r=e[n];
-r&&(r=r.replace(/\(mce_at\)/g,"@@")),o[t]=r}),a=i.base_uri,a&&(o.protocol||(o.protocol=a.protocol),o.userInfo||(o.userInfo=a.userInfo),o.port||"mce_host"!==o.host||(o.port=a.port),o.host&&"mce_host"!==o.host||(o.host=a.host),o.source=""),l&&(o.protocol="")}var n=e.each,r=e.trim;return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(this.host==e.host&&this.protocol==e.protocol?n:0)},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(z,[p],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r(W,[z],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.psuedo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,p,m;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,m=e,p=0,i=o-1;i>=0;i--)for(c=a[i];m;){if(c.psuedo)for(f=m.parent().items(),u=d=f.length;u--&&f[u]!==m;);for(s=0,l=c.length;l>s;s++)if(!c[s](m,u,d)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;m=m.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(V,[p,W,z],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(U,[p,y],function(e,t){return{id:function(){return t.DOM.uniqueId()},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(q,[z,p,V,U],function(e,t,n,r){var i=t.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu"," "),o={},a="onmousewheel"in document,s=!1,l="mce-",c=e.extend({Statics:{elementIdCache:o,classPrefix:l},isRtl:function(){return c.rtl},classPrefix:l,init:function(e){var n=this,i,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=e.id||r.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},i=e.classes)for(i=i.split(" "),i.map={},o=i.length;o--;)i.map[i[o]]=!0;n._classes=i||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,i,o=e.getEl(),a,s,l,c,u,d,f,p;n=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),p=r.getSize(o),d=t.minWidth,f=t.minHeight,l=d||p.width,c=f||p.height,a=t.width,s=t.height,u=t.autoResize,u="undefined"!=typeof u?u:!a&&!s,a=a||l,s=s||c;var m=n.left+n.right,h=n.top+n.bottom,g=t.maxWidth||65535,v=t.maxHeight||65535;return e._layoutRect=i={x:t.x||0,y:t.y||0,w:a,h:s,deltaW:m,deltaH:h,contentW:a-m,contentH:s-h,innerW:a-m,innerH:s-h,startMinWidth:d||0,startMinHeight:f||0,minW:Math.min(l,g),minH:Math.min(c,v),maxW:g,maxH:v,autoResize:u,scrollW:0},e._lastLayoutRect={},i},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(l=c.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s,l;l=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=l(r.x)+"px",s.x=r.x),r.y!==s.y&&(t.top=l(r.y)+"px",s.y=r.y),r.w!==s.w&&(t.width=l(r.w-o)+"px",s.w=r.w),r.h!==s.h&&(t.height=l(r.h-a)+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=l(r.innerW)+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=l(r.innerH)+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this,o,a,s,l;if(t)for("string"==typeof t&&(t=n(t)),s=e.toLowerCase().split(" "),l=s.length;l--;)e=s[l],o=r._bindings,o||(o=r._bindings={}),a=o[e],a||(a=o[e]=[]),a.push(t),i[e]&&(r._nativeEvents||(r._nativeEvents={}),r._nativeEvents[e]=!0,r._rendered&&r.bindPendingEvents());return r},off:function(e,t){var n=this,r,i=n._bindings,o,a,s,l;if(i)if(e)for(s=e.toLowerCase().split(" "),r=s.length;r--;){if(e=s[r],o=i[e],!e){for(a in i)i[a].length=0;return n}if(o)if(t)for(l=o.length;l--;)o[l]===t&&o.splice(l,1);else o.length=0}else n._bindings=[];return n},fire:function(e,t,n){function r(){return!1}function i(){return!0}var o=this,a,s,l,c;if(e=e.toLowerCase(),t=t||{},t.type||(t.type=e),t.control||(t.control=o),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=i},t.stopPropagation=function(){t.isPropagationStopped=i},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=i},t.isDefaultPrevented=r,t.isPropagationStopped=r,t.isImmediatePropagationStopped=r),o._bindings&&(l=o._bindings[e]))for(a=0,s=l.length;s>a&&(t.isImmediatePropagationStopped()||l[a].call(o,t)!==!1);a++);if(n!==!1)for(c=o.parent();c&&!t.isPropagationStopped();)c.fire(e,t,!1),c=c.parent();return t},hasEventListeners:function(e){return e in this._bindings},parents:function(e){var t=this,r,i=new n;for(r=t.parent();r;r=r.parent())i.add(r);return e&&(i=i.filter(e)),i},parentsAndSelf:function(e){return new n(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return r.innerHtml(this.getEl(),e),this},getEl:function(e,t){var n,i=e?this._id+"-"+e:this._id;return n=o[i]=(t===!0?null:o[i])||r.get(i)},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return c.translate?c.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),i,a;if(e.items){var s=e.items().toArray();for(a=s.length;a--;)s[a].remove()}n&&n.items&&(i=[],n.items().each(function(t){t!==e&&i.push(t)}),n.items().set(i),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&r.off(t);var l=e.getRoot().controlIdLookup;if(l&&delete l[e._id],delete o[e._id],t&&t.parentNode){var c=t.getElementsByTagName("*");for(a=c.length;a--;)delete o[c[a].id];t.parentNode.removeChild(t)}return e._rendered=!1,e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(r.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(r.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,i,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||r.css(e.getEl(),"display","none"),e.settings.border&&(i=e.borderBox(),r.css(e.getEl(),{"border-top-width":i.top,"border-right-width":i.right,"border-bottom-width":i.bottom,"border-left-width":i.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r<s.length&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;i<a.length;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function i(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,l,c,u,d,f,p;if(o._rendered=!0,f=o._nativeEvents){for(u=o.parents().toArray(),u.unshift(o),l=0,c=u.length;!d&&c>l;l++)d=u[l]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=l,l=0;c>l;l++)u[l]._eventsRoot=d;var m=d._delegates;m||(m=d._delegates={});for(p in f){if(!f)return!1;"wheel"!==p||s?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(r.on(d.getEl(),"mouseleave",t),r.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):m[p]||(r.on(d.getEl(),p,e),m[p]=!0),f[p]=!1):a?r.on(o.getEl(),"mousewheel",i):r.on(o.getEl(),"DOMMouseScroll",i)}}},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){return this.repaint(),this}});return c}),r($,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(j,[],function(){return function(e){function t(e){return e=e||b,e&&e.getAttribute("role")}function n(e){for(var n,r=e||b;r=r.parentNode;)if(n=t(r))return n}function r(e){var t=b;return t?t.getAttribute("aria-"+e):void 0}function i(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t}function o(e){return i(e)&&!e.hidden?!0:/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(t(e))?!0:!1}function a(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){o(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||y.getEl()),n}function s(e){var t,n;e=e||C,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function l(e){var t=s(e),n=a(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?c(t.lastAriaIndex,n):c(0,n)}function c(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function u(e,t){var n=-1,r=s();t=t||a(r.getEl());for(var i=0;i<t.length;i++)t[i]===b&&(n=i);n+=e,r.lastAriaIndex=c(n,t)}function d(){var e=n();"tablist"==e?u(-1,a(b.parentNode)):C.parent().submenu?g():u(-1)}function f(){var e=t(),i=n();"tablist"==i?u(1,a(b.parentNode)):"menuitem"==e&&"menu"==i&&r("haspopup")?v():u(1)}function p(){u(-1)}function m(){var e=t(),i=n();"menuitem"==e&&"menubar"==i?v():"button"==e&&r("haspopup")?v({key:"down"}):u(1)}function h(e){var t=n();if("tablist"==t){var r=a(C.getEl("body"))[0];r&&r.focus()}else u(e.shiftKey?-1:1)}function g(){C.fire("cancel")}function v(e){e=e||{},C.fire("click",{target:b,aria:e})}var y=e.root,b,C;return b=document.activeElement,C=y.getParentCtrl(b),y.on("keydown",function(e){function t(e,t){i(b)||t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,d);break;case 39:t(e,f);break;case 38:t(e,p);break;case 40:t(e,m);break;case 27:g();break;case 14:case 13:case 32:t(e,v);break;case 9:h(e)!==!1&&e.preventDefault()}}),y.on("focusin",function(e){b=e.target,C=e.control}),{focusFirst:l}}}),r(K,[q,V,W,$,j,p,U],function(e,t,n,r,i,o,a){var s={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var n=this;n._super(e),e=n.settings,n._fixed=e.fixed,n._items=new t,n.isRtl()&&n.addClass("rtl"),n.addClass("container"),n.addClass("container-body","body"),e.containerCls&&n.addClass(e.containerCls),n._layout=r.create((e.layout||n.layout)+"layout"),n.settings.items&&n.add(n.settings.items),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=s[e]=s[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},preRender:function(){},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(Y,[U],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,u,d,f;r=r||{},l=function(n){var l=t(),p,m;n.preventDefault(),s=n.button,p=i(),d=n.screenX,f=n.screenY,m=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,background:"red",cursor:m}),a.body.appendChild(o),e.on(a,"mousemove",u),e.on(a,"mouseup",c),r.start(n)},u=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-d,e.deltaY=e.screenY-f,e.preventDefault(),void r.drag(e))},c=function(t){e.off(a,"mousemove",u),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r(G,[U,Y],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,p,m,h,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return void e.css(f,"display","none");e.css(f,"display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),m=d["client"+s]-2*o,m-=n&&r?f["client"+u]:0,h=d["scroll"+s],g=m/h,v={},v[y]=d["offset"+a]+o,v[b]=m,e.css(f,v),v={},v[y]=d["scroll"+a]*g,v[b]=m*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;i.getEl().appendChild(e.createFragment('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+u+'t" class="'+d+'scrollbar-thumb"></div></div>')),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var t,u,d,f,p=i.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(u),d+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(X,[K,G],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(J,[U],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,c=p.height,p=e.getSize(n),u=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this._fixed){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(Q,[U],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(Z,[X,J,Q,U],function(e,t,n,r){function i(e){var t;for(t=s.length;t--;)s[t]===e&&s.splice(t,1);for(t=l.length;t--;)l[t]===e&&l.splice(t,1)}var o,a,s=[],l=[],c,u=e.extend({Mixins:[t,n],init:function(e){function t(){var e,t=u.zIndex||65535,n;if(l.length)for(e=0;e<l.length;e++)l[e].modal&&(t++,n=l[e]),l[e].getEl().style.zIndex=t,l[e].zIndex=t,t++;var i=document.getElementById(d.classPrefix+"modal-block");n?r.css(i,"z-index",n.zIndex-1):i&&(i.parentNode.removeChild(i),c=!1),u.currentZIndex=t}function n(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function i(e){function t(t,n){for(var r,i=0;i<s.length;i++)if(s[i]!=e)for(r=s[i].parent();r&&(r=r.parent());)r==e&&s[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e._fixed?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}var d=this;d._super(e),d._eventsRoot=d,d.addClass("floatpanel"),e.autohide&&(o||(o=function(e){for(var t=s.length;t--;){var r=s[t],i=r.getParentCtrl(e.target);if(r.settings.autohide){if(i&&(n(i,r)||r.parent()===i))continue;e=r.fire("autohide",{target:e.target}),e.isDefaultPrevented()||r.hide()}}},r.on(document,"click",o)),s.push(d)),e.autofix&&(a||(a=function(){var e;for(e=s.length;e--;)i(s[e])},r.on(window,"scroll",a)),d.on("move",function(){i(this)})),d.on("postrender show",function(e){if(e.control==d){var n,i=d.classPrefix;d.modal&&!c&&(n=r.createFragment('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>'),n=n.firstChild,d.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(d.getEl(),i+"in")
-},0),c=!0),l.push(d),t()}}),d.on("close hide",function(e){if(e.control==d){for(var n=l.length;n--;)l[n]===d&&l.splice(n,1);t()}}),d.on("show",function(){d.parents().each(function(e){return e._fixed?(d.fixed(!0),!1):void 0})}),e.popover&&(d._preBodyHtml='<div class="'+d.classPrefix+'arrow"></div>',d.addClass("popover").addClass("bottom").addClass(d.isRtl()?"end":"start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=s.length;t--&&s[t]!==e;);return-1===t&&s.push(e),n},hide:function(){return i(this),this._super()},hideAll:function(){u.hideAll()},close:function(){var e=this;return e.fire("close"),e.remove()},remove:function(){i(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return u.hideAll=function(){for(var e=s.length;e--;){var t=s[e];t&&t.settings.autohide&&(t.hide(),s.splice(e,1))}},u}),r(et,[Z,X,U,Y],function(e,t,n,r){var i=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.addClass("rtl"),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close()}),n.on("cancel",function(){n.close()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=Math.max(0,a.w/2-t.w/2),t.y=Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><button type="button" class="'+r+'close" aria-hidden="true">\xd7</button><div id="'+n+'-dragh" class="'+r+'dragh"></div></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes()+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.classes("body")+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.addClass("in")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new r(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t=e.classPrefix;e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),e._fullscreen&&(n.removeClass(document.documentElement,t+"fullscreen"),n.removeClass(document.body,t+"fullscreen"))},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return i}),r(tt,[et],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){var r,i=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}},{type:"button",text:"Cancel",onClick:function(e){e.control.parents()[1].close(),i(!1)}}];break;case t.YES_NO:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}];break;case t.YES_NO_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}];break;default:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:r,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(nt,[et,tt],function(e,t){return function(n){function r(){return o.length?o[o.length-1]:void 0}var i=this,o=[];i.windows=o,i.open=function(t,r){var i;return n.editorManager.activeEditor=n,t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),i=new e(t),o.push(i),i.on("close",function(){for(var e=o.length;e--;)o[e]===i&&o.splice(e,1);n.focus()}),t.data&&i.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),i.features=t||{},i.params=r||{},n.nodeChanged(),i.renderTo().reflow()},i.alert=function(e,r,i){t.alert(e,function(){r?r.call(i||this):n.focus()})},i.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},i.close=function(){r()&&r().close()},i.getParams=function(){return r()?r().params:null},i.setParams=function(e){r()&&(r().params=e)},i.getWindows=function(){return o}}}),r(rt,[R,B,x,h,g,p],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function u(){function t(e){var t=new i(function(){});o.each(a.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&a.dom.setAttrib(e,"style",e.getAttribute("style"))}),t.observe(a.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null);var n=a.selection.getRng(),r=n.startContainer.parentNode;o.each(t.takeRecords(),function(e){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}o.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),U.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),a.selection.setRng(n))}})}),t.disconnect(),o.each(a.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")})}var n=a.getDoc(),r="data:text/mce-internal,",i=window.MutationObserver,s;i||(s=!0,i=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMNodeInserted",e),r.removeEventListener("DOMAttrModified",t),r.removeEventListener("DOMSubtreeModified",e,!1)},this.takeRecords=function(){return n}}),a.on("keydown",function(n){var r=n.keyCode==V,i=e.metaKeyPressed(n);if(!c(n)&&(r||n.keyCode==W)){var o=a.selection.getRng(),s=o.startContainer,l=o.startOffset;if(!i&&o.collapsed&&3==s.nodeType&&(r?l<s.data.length:l>0))return;n.preventDefault(),i&&a.selection.getSel().modify("extend",r?"forward":"backward","word"),t(r)}}),a.on("keypress",function(n){c(n)||q.isCollapsed()||!n.charCode||e.metaKeyPressed(n)||(n.preventDefault(),t(!0),a.selection.setContent(String.fromCharCode(n.charCode)))}),a.addCommand("Delete",function(){t()}),a.addCommand("ForwardDelete",function(){t(!0)}),s||(a.on("dragstart",function(e){e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(a.selection.getContent()))}),a.on("drop",function(e){if(!c(e)){var i=e.dataTransfer.getData("URL");if(!i||-1==i.indexOf(r)||!n.caretRangeFromPoint)return;i=unescape(i.substr(r.length)),n.caretRangeFromPoint&&(e.preventDefault(),t(),a.selection.setRng(n.caretRangeFromPoint(e.x,e.y)),a.insertContent(i))}}),a.on("cut",function(e){!c(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",a.selection.getContent()),e.clipboardData.setData("text/plain",a.selection.getContent({format:"text"})),t(!0))}))}function d(){function e(e){var t=U.create("body"),n=e.cloneContents();return t.appendChild(n),q.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(a.getBody()),t.compareRanges(n,r)}var i=e(n),o=U.createRng();o.selectNode(a.getBody());var s=e(o);return i===s}a.on("keydown",function(e){var t=e.keyCode,r,i;if(!c(e)&&(t==V||t==W)){if(r=a.selection.isCollapsed(),i=a.getBody(),r&&!U.isEmpty(i))return;if(!r&&!n(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),i.firstChild&&U.isBlock(i.firstChild)?a.selection.setCursorLocation(i.firstChild,0):a.selection.setCursorLocation(i,0),a.nodeChanged()}})}function f(){a.on("keydown",function(t){!c(t)&&65==t.keyCode&&e.metaKeyPressed(t)&&(t.preventDefault(),a.execCommand("SelectAll"))})}function p(){a.settings.content_editable||(U.bind(a.getDoc(),"focusin",function(){q.setRng(q.getRng())}),U.bind(a.getDoc(),"mousedown",function(e){e.target==a.getDoc().documentElement&&(a.getBody().focus(),q.setRng(q.getRng()))}))}function m(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return U.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(U.remove(n),e.preventDefault())}})}function h(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){e=e.target,/^(IMG|HR)$/.test(e.nodeName)&&q.getSel().setBaseAndExtent(e,0,e,1),"A"==e.nodeName&&U.hasClass(e,"mce-item-anchor")&&q.select(e),a.nodeChanged()})}function v(){function e(){var e=U.getAttribs(q.getStart().cloneNode(!1));return function(){var t=q.getStart();t!==a.getBody()&&(U.setAttrib(t,"style",null),z(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!q.isCollapsed()&&U.getParent(q.getStart(),U.isBlock)!=U.getParent(q.getEnd(),U.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),U.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){var e,n;a.on("selectionchange",function(){n&&(clearTimeout(n),n=0),n=window.setTimeout(function(){if(!a.removed){var n=q.getRng();e&&t.compareRanges(n,e)||(a.nodeChanged(),e=n)}},50)})}function b(){document.body.setAttribute("role","application")}function C(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===W&&q.isCollapsed()&&0===q.getRng(!0).startOffset){var t=q.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function x(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),U.addClass(a.getBody(),"mceHideBrInPre"),j.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),K.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function w(){U.bind(a.getBody(),"mouseup",function(){var e,t=q.getNode();"IMG"==t.nodeName&&((e=U.getStyle(t,"width"))&&(U.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"width","")),(e=U.getStyle(t,"height"))&&(U.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),U.setStyle(t,"height","")))})}function _(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=q.getRng(),r=n.startContainer,i=n.startOffset,o=U.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=U.createRng(),n.setStart(r,0),n.setEnd(r,0),q.setRng(n))}})}function N(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),$.object_resizing||s("enableObjectResizing",!1)}$.readonly||a.on("BeforeExecCommand MouseDown",e)}function E(){function e(){z(U.select("a"),function(e){var t=e.parentNode,n=U.getRoot();if(t.lastChild===e){for(;t&&!U.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}U.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function S(){$.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",$.forced_root_block)})}function k(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function T(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=W||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),U.remove(t.item(0)),a.undoManager.add()))})}function R(){var e;l()>=10&&(e="",z("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function A(){l()<9&&(j.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),K.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function B(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),U.unbind(r,"mouseup",n),U.unbind(r,"mousemove",t),a=o=0}var r=U.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,U.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(U.bind(r,"mouseup",n),U.bind(r,"mousemove",t),U.getRoot().focus(),a.select())}})}function L(){a.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||q.normalize()},!0)}function D(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function M(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}function H(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){"HTML"==e.target.nodeName&&(a.getBody().focus(),a.selection.normalize(),a.nodeChanged())}))}function P(){i.mac&&a.on("keydown",function(t){!e.metaKeyPressed(t)||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),a.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","word"))})}function O(){s("AutoUrlDetect",!1)}function I(){a.inline||a.on("focus blur",function(){var e=a.dom.create("br");a.getBody().appendChild(e),e.parentNode.removeChild(e)},!0)}function F(){a.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}var z=o.each,W=e.BACKSPACE,V=e.DELETE,U=a.dom,q=a.selection,$=a.settings,j=a.parser,K=a.serializer,Y=i.gecko,G=i.ie,X=i.webkit;C(),_(),d(),L(),X&&(u(),p(),g(),S(),i.iOS?(y(),M(),H(),F()):f()),G&&i.ie<11&&(m(),b(),x(),w(),T(),R(),A(),B()),i.ie>=11&&(H(),I()),i.ie&&(f(),O()),Y&&(m(),h(),v(),N(),E(),k(),D(),P())}}),r(it,[p],function(e){function t(){return!1}function n(){return!0}var r="__bindings",i=e.makeMap("focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragstart dragend dragover draggesture dragdrop drop drag"," ");return{fire:function(e,i,o){var a=this,s,l,c,u,d;if(e=e.toLowerCase(),i=i||{},i.type=e,!a.removed||"remove"===e){if(i.target||(i.target=a),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=n},i.stopPropagation=function(){i.isPropagationStopped=n},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=n},i.isDefaultPrevented=t,i.isPropagationStopped=t,i.isImmediatePropagationStopped=t),a[r]&&(s=a[r][e]))for(l=0,c=s.length;c>l&&(s[l]=u=s[l],!i.isImmediatePropagationStopped());l++)if(u.call(a,i)===!1)return i.preventDefault(),i;if(o!==!1&&a.parent)for(d=a.parent();d&&!i.isPropagationStopped();)d.fire(e,i,!1),d=d.parent();return i}},on:function(e,t,n){var o=this,a,s,l,c;if(t===!1&&(t=function(){return!1}),t)for(l=e.toLowerCase().split(" "),c=l.length;c--;)e=l[c],a=o[r],a||(a=o[r]={}),s=a[e],s||(s=a[e]=[],o.bindNative&&i[e]&&o.bindNative(e)),n?s.unshift(t):s.push(t);return o},off:function(e,t){var n=this,o,a=n[r],s,l,c,u;if(a)if(e)for(c=e.toLowerCase().split(" "),o=c.length;o--;){if(e=c[o],s=a[e],!e){for(l in a)a[e].length=0;return n}if(s){if(t)for(u=s.length;u--;)s[u]===t&&s.splice(u,1);else s.length=0;!s.length&&n.unbindNative&&i[e]&&(n.unbindNative(e),delete a[e])}}else{if(n.unbindNative)for(e in a)n.unbindNative(e);n[r]=[]}return n},hasEventListeners:function(e){var t=this[r];return e=e.toLowerCase(),!(!t||!t[e]||0===t[e].length)}}}),r(ot,[p,g],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&n(s,function(n){var r=t.mac?e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0})}),a.add=function(t,a,l,c){var u;return u=l,"string"==typeof l?l=function(){o.execCommand(u,!1,null)}:e.isArray(u)&&(l=function(){o.execCommand(u[0],u[1],u[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0)}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(at,[y,C,x,k,S,L,M,H,P,O,I,F,b,l,nt,w,N,rt,g,p,it,ot],function(e,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v,y,b,C,x,w){function _(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu|drop/.test(t)?e.getDoc():e.getBody()}function N(e,t,r){var i=this,o,a;o=i.documentBaseUrl=r.documentBaseURL,a=r.baseURI,i.settings=t=T({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:o,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,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,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:i.convertURL,url_converter_scope:i,ie7_compat:!0},t),n.language=t.language||"en",n.languageLoad=t.language_load,n.baseURL=r.baseURL,i.id=t.id=e,i.isNotDirty=!0,i.plugins={},i.documentBaseURI=new f(t.document_base_url||o,{base_uri:a}),i.baseURI=a,i.contentCSS=[],i.contentStyles=[],i.shortcuts=new w(i),i.execCommands={},i.queryStateCommands={},i.queryValueCommands={},i.loadedCSS={},i.suffix=r.suffix,i.editorManager=r,i.inline=t.inline,r.fire("SetupEditor",i),i.execCallback("setup",i)}var E=e.DOM,S=n.ThemeManager,k=n.PluginManager,T=C.extend,R=C.each,A=C.explode,B=C.inArray,L=C.trim,D=C.resolve,M=m.Event,H=b.gecko,P=b.ie;return N.prototype={render:function(){function e(){E.unbind(window,"ready",e),n.render()}function t(){var e=p.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!S.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",S.load(r.theme,t)}C.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),R(r.external_plugins,function(e,t){k.load(t,e),r.plugins+=" "+t}),R(r.plugins.split(/[ ,]/),function(e){if(e=L(e),e&&!k.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=k.dependencies(e);R(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=k.createUrl(t,e),k.load(e.resource,e)})}else k.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!M.domLoaded)return void E.bind(window,"ready",e);if(n.getElement()&&b.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||E.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(E.insertAfter(E.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},E.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=!0,a._mceOldSubmit(a)})),n.windowManager=new h(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=E.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),t()}},init:function(){function e(n){var r=k.get(n),i,o;i=k.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=L(n),r&&-1===B(h,n)&&(R(k.dependencies(n),function(t){e(t)}),o=new r(t,i),t.plugins[n]=o,o.init&&(o.init(t,i),h.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,m,h=[];if(t.rtl=this.editorManager.i18n.rtl,t.editorManager.add(t),n.aria_label=n.aria_label||E.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=S.get(n.theme),t.theme=new c(t,S.urls[n.theme]),t.theme.init&&t.theme.init(t,S.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""))):t.theme=n.theme),R(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(E.setStyles(l.sizeContainer||l.editorContainer,{wi2dth:i,h2eight:o}),o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&R(A(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!b.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',m=0;m<t.contentCSS.length;m++){var g=t.contentCSS[m];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+g+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" onload="window.parent.tinymce.get(\''+t.id+"').fire('load');\"><br></body></html>";var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';if(document.domain!=location.hostname&&(u=v),s=E.add(l.iframeContainer,"iframe",{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}}),P)try{t.getDoc()}catch(y){s.src=u=v}t.contentAreaContainer=l.iframeContainer,l.editorContainer&&(E.get(l.editorContainer).style.display=t.orgDisplay),E.get(t.id).style.display="none",E.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,o=n.settings,f=E.get(n.id),p=n.getDoc(),m,h;o.inline||(n.getElement().style.visibility=n.orgVisibility),t||o.content_editable||(p.open(),p.write(n.iframeHTML),p.close()),o.content_editable&&(n.on("remove",function(){var e=this.getBody();E.removeClass(e,"mce-content-body"),E.removeClass(e,"mce-edit-focus"),E.setAttrib(e,"contentEditable",null)}),E.addClass(f,"mce-content-body"),n.contentDocument=p=o.content_document||document,n.contentWindow=o.content_window||window,n.bodyElement=f,o.content_document=o.content_window=null,o.root_name=f.nodeName.toLowerCase()),m=n.getBody(),m.disabled=!0,o.readonly||(n.inline&&"static"==E.getStyle(m,"position",!0)&&(m.style.position="relative"),m.contentEditable=n.getParam("content_editable_state",!0)),m.disabled=!1,n.schema=new g(o),n.dom=new e(p,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:o.force_hex_style_colors,class_filter:o.class_filter,update_styles:!0,root_element:o.content_editable?n.id:null,collect:o.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new v(o,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)i=e[r],a=i.attr(t),s="data-mce-"+t,i.attributes.map[s]||("style"===t?i.attr(s,o.serializeStyle(o.parseStyle(a),i.name)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name)))}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"text/javascript"))}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,i,o=n.schema.getNonEmptyElements();t--;)i=e[t],i.isEmpty(o)&&(i.empty().append(new r("br",1)).shortEnded=!0)}),n.serializer=new i(o,n),n.selection=new a(n.dom,n.getWin(),n.serializer,n),n.formatter=new s(n),n.undoManager=new l(n),n.forceBlocks=new u(n),n.enterKey=new c(n),n.editorCommands=new d(n),n.fire("PreInit"),o.browser_spellcheck||o.gecko_spellcheck||(p.body.spellcheck=!1,E.setAttrib(m,"spellcheck","false")),n.fire("PostRender"),n.quirks=y(n),o.directionality&&(m.dir=o.directionality),o.nowrap&&(m.style.whiteSpace="nowrap"),o.protect&&n.on("BeforeSetContent",function(e){R(o.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),o.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,R(n._pendingNativeEvents,function(e){n.dom.bind(_(n,e),e,function(e){n.fire(e.type,e)})}),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.contentStyles.length>0&&(h="",R(n.contentStyles,function(e){h+=e+"\r\n"
-}),n.dom.addStyle(h)),R(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),o.auto_focus&&setTimeout(function(){var e=n.editorManager.get(o.auto_focus);e.selection.select(e.getBody(),1),e.selection.collapse(1),e.getBody().focus(),e.getWin().focus()},100),f=p=m=null},focus:function(e){var t,n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l;if(!e){if(o=r.getRng(),o.item&&(a=o.item(0)),n._refreshContentEditable(),i||(b.opera||n.getBody().focus(),n.getWin().focus()),H||i){if(l=n.getBody(),l.setActive)try{l.setActive()}catch(c){l.focus()}else l.focus();i&&r.normalize()}a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())}n.editorManager.activeEditor!=n&&((t=n.editorManager.activeEditor)&&t.fire("deactivate",{relatedTarget:n}),n.fire("activate",{relatedTarget:t})),n.editorManager.activeEditor=n},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?D(r):0,n=D(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?R(r.split(r.indexOf("=")>0?/[;,](?![^=;,]*(?:[;,]|$))/:","),function(e){e=e.split("="),i[L(e[0])]=L(e.length>1?e[1]:e)}):i=r,i):r},nodeChanged:function(){var e=this,t=e.selection,n,r,i;!e.initialized||e.settings.disable_nodechange||e.settings.readonly||(i=e.getBody(),n=t.getStart()||i,n=P&&n.ownerDocument!=e.getDoc()?e.getBody():n,"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),r=[],e.dom.getParent(n,function(e){return e===i?!0:void r.push(e)}),e.fire("NodeChange",{element:n,parents:r}))},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;return/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=T({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented()?!1:(a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(R(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o?o:i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):i.editorCommands.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):(i.getDoc().execCommand(e,t,n),void i.fire("ExecCommand",{command:e,ui:t,value:n})))},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r!==!0))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;E.show(e.getContainer()),E.hide(e.id),e.load(),e.fire("show")},hide:function(){var e=this,t=e.getDoc();P&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),E.hide(e.getContainer()),E.setStyle(e.id,"display",e.orgDisplay),e.fire("hide")},isHidden:function(){return!E.isHidden(this.id)},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=E.getParent(t.id,"form"))&&R(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=P&&11>P?"":'<br data-mce-bogus="1">',e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):P||(e='<br data-mce-bogus="1">'),r.innerHTML=e,n.fire("SetContent",t)):("raw"!==t.format&&(e=new o({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=L(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?L(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e){this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=E.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return E.get(this.settings.content_element||this.id)},getWin:function(){var e=this,t;return e.contentWindow||(t=E.get(e.id+"_ifr"),t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),R(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||(n.hasVisual?i.addClass(e,o):i.removeClass(e,o)));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&(n.hasVisual?i.addClass(e,o):i.removeClass(e,o))))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;if(!e.removed){e.removed=1,e.save(),e.hasHiddenInput&&E.remove(e.getElement().nextSibling),e.inline||(P&&10>P&&e.getDoc().execCommand("SelectAll",!1,null),E.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null,M.unbind(e.getWin()),M.unbind(e.getDoc()));var t=e.getContainer();M.unbind(e.getBody()),M.unbind(t),e.fire("remove"),e.editorManager.remove(e),E.remove(t),e.destroy()}},bindNative:function(e){var t=this;t.settings.readonly||(t.initialized?t.dom.bind(_(t,e),e,function(n){t.fire(e,n)}):t._pendingNativeEvents?t._pendingNativeEvents.push(e):t._pendingNativeEvents=[e])},unbindNative:function(e){var t=this;t.initialized&&t.dom.unbind(e)},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e&&H&&(M.unbind(t.getDoc()),M.unbind(t.getWin()),M.unbind(t.getBody())),e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),E.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return H?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},T(N.prototype,x),N}),r(st,[],function(){var e={};return{rtl:!1,add:function(t,n){for(var r in n)e[r]=n[r];this.rtl=this.rtl||"rtl"===e._dir},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(lt,[y,g],function(e,t){function n(e){function a(){try{return document.activeElement}catch(e){return document.body}}function s(e){return e&&e.startContainer?{startContainer:e.startContainer,startOffset:e.startOffset,endContainer:e.endContainer,endOffset:e.endOffset}:e}function l(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function c(e){return!!o.getParent(e,n.isEditorUIElement)}function u(e,t){for(var n=t.getBody();e;){if(e==n)return!0;e=e.parentNode}}function d(n){var d=n.editor;d.on("init",function(){(d.inline||t.ie)&&(d.on("nodechange keyup",function(){var e=document.activeElement;e&&e.id==d.id+"_ifr"&&(e=d.getBody()),u(e,d)&&(d.lastRng=d.selection.getRng())}),t.webkit&&!r&&(r=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(d.lastRng=n)}},o.bind(document,"selectionchange",r)))}),d.on("setcontent",function(){d.lastRng=null}),d.on("mousedown",function(){d.selection.lastFocusBookmark=null}),d.on("focusin",function(){var t=e.focusedEditor;d.selection.lastFocusBookmark&&(d.selection.setRng(l(d,d.selection.lastFocusBookmark)),d.selection.lastFocusBookmark=null),t!=d&&(t&&t.fire("blur",{focusedEditor:d}),e.activeEditor=d,e.focusedEditor=d,d.fire("focus",{blurredEditor:t}),d.focus(!0)),d.lastRng=null}),d.on("focusout",function(){window.setTimeout(function(){var t=e.focusedEditor;c(a())||t!=d||(d.fire("blur",{focusedEditor:null}),e.focusedEditor=null,d.selection&&(d.selection.lastFocusBookmark=null))},0)}),i||(i=function(t){var n=e.activeEditor;n&&t.target.ownerDocument==document&&(n.selection&&(n.selection.lastFocusBookmark=s(n.lastRng)),c(t.target)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},o.bind(document,"focusin",i))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(o.unbind(document,"selectionchange",r),o.unbind(document,"focusin",i),r=i=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var r,i,o=e.DOM;return n.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},n}),r(ct,[at,y,F,g,p,it,st,lt],function(e,t,n,r,i,o,a,s){var l=t.DOM,c=i.explode,u=i.each,d=i.extend,f=0,p,m={majorVersion:"4",minorVersion:"0.21.1",releaseDate:"2014-04-09",editors:[],i18n:a,activeEditor:null,setup:function(){var e=this,t,r,i="",o;if(r=document.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(r)||(r+="/"),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else for(var a=document.getElementsByTagName("script"),l=0;l<a.length;l++){var c=a[l].src;if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(c)){-1!=c.indexOf(".min")&&(i=".min"),t=c.substring(0,c.lastIndexOf("/"));break}}e.baseURL=new n(r).toAbsolute(t),e.documentBaseURL=r,e.baseURI=new n(e.baseURL),e.suffix=i,e.focusManager=new s(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!l.get(t)?e.name:l.uniqueId(),e.setAttribute("id",t)),t}function r(t,n){if(!s.get(t)){var r=new e(t,n,s);p.push(r),r.render()}}function i(e,t,n){var r=e[t];if(r)return r.apply(n||this,Array.prototype.slice.call(arguments,2))}function o(e,t){return t.constructor===RegExp?t.test(e.className):l.hasClass(e,t)}function a(){var h,g;if(l.unbind(window,"ready",a),i(t,"onpageload"),t.types)return void u(t.types,function(e){u(l.select(e.selector),function(i){r(n(i),d({},t,e))})});if(t.selector)return void u(l.select(t.selector),function(e){r(n(e),t)});switch(t.mode){case"exact":h=t.elements||"",h.length>0&&u(c(h),function(n){l.get(n)?(m=new e(n,t,s),p.push(m),m.render()):u(document.forms,function(e){u(e.elements,function(e){e.name===n&&(n="mce_editor_"+f++,l.setAttrib(e,"id",n),r(n,t))})})});break;case"textareas":case"specific_textareas":u(l.select("textarea"),function(e){t.editor_deselector&&o(e,t.editor_deselector)||(!t.editor_selector||o(e,t.editor_selector))&&r(n(e),t)})}t.oninit&&(h=g=0,u(p,function(e){g++,e.initialized?h++:e.on("init",function(){h++,h==g&&i(t,"oninit")}),h==g&&i(t,"oninit")}))}var s=this,p=[],m;s.settings=t,l.bind(window,"ready",a)},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),p||(p=function(){t.fire("BeforeUnload")},l.bind(window,"beforeunload",p)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i,o;{if(e){if("string"==typeof e)return e=e.selector||e,void u(l.select(e),function(e){t.remove(r[e.id])});if(i=e,!r[i.id])return null;for(delete r[i.id],n=0;n<r.length;n++)if(r[n]==i){r.splice(n,1),o=!0;break}return t.activeEditor==i&&(t.activeEditor=r[0]),o&&t.fire("RemoveEditor",{editor:i}),r.length||l.unbind(window,"beforeunload",p),i.remove(),i}for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){u(this.editors,function(e){e.save()})},addI18n:function(e,t){a.add(e,t)},translate:function(e){return a.translate(e)}};return d(m,o),m.setup(),window.tinymce=window.tinyMCE=m,m}),r(ut,[ct,p],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(dt,[],function(){return{send:function(e){function t(){!e.async||4==n.readyState||r++>1e4?(e.success&&1e4>r&&200==n.status?e.success.call(e.success_scope,""+n.responseText,n,e):e.error&&e.error.call(e.error_scope,r>1e4?"TIMED_OUT":"GENERAL",n,e),n=null):setTimeout(t,10)}var n,r=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",n=new XMLHttpRequest){if(n.overrideMimeType&&n.overrideMimeType(e.content_type),n.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.content_type&&n.setRequestHeader("Content-Type",e.content_type),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(e.data),!e.async)return t();setTimeout(t,10)}}}}),r(ft,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb   t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(pt,[ft,dt,p],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(mt,[y],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(ht,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(gt,[y,l,b,C,p,g],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(vt,[z,p],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(yt,[vt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(bt,[q,J],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div></div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Ct,[q,bt],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(xt,[Ct],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},icon:function(e){var t=this,n=t.classPrefix;if("undefined"==typeof e)return t.settings.icon;if(t.settings.icon=e,e=e?n+"ico "+n+"i-"+t.settings.icon:"",t._rendered){var r=t.getEl().firstChild,i=r.getElementsByTagName("i")[0];e?(i&&i==r.firstChild||(i=document.createElement("i"),r.insertBefore(i,r.firstChild)),i.className=e):i&&r.removeChild(i),t.text(t._text)}return t},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},text:function(e){var t=this;if(t._rendered){var n=t.getEl().lastChild.lastChild;n&&(n.data=t.translate(e))}return t._super(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i;return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?"\xa0":"")+e.encode(e._text):"")+"</button></div>"}})}),r(wt,[K],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(_t,[Ct],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span></div>"}})}),r(Nt,[xt,Z],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()}})}),r(Et,[Nt,y],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(St,[Ct,$,U],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("combobox"),t.subinput=!0,t.ariaTarget="inp",e=t.settings,e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){for(var r=n.target,i=t.getEl();r&&r!=i;)r.id&&-1!=r.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),r=r.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){return e.preventDefault(),t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),e.placeholder&&(t.addClass("placeholder"),t.on("focusin",function(){t._hasOnChange||(n.on(t.getEl("inp"),"change",function(){t.fire("change")}),t._hasOnChange=!0),t.hasClass("placeholder")&&(t.getEl("inp").value="",t.removeClass("placeholder"))}),t.on("focusout",function(){0===t.value().length&&(t.getEl("inp").value=e.placeholder,t.addClass("placeholder"))}))},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl("inp").disabled=e),t._super(e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-n.getSize(r).width-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),n.css(t.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},remove:function(){n.off(this.getEl("inp")),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'"><input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="1"'+l+" />"+s+"</div>"}})}),r(kt,[Ct],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes()+'">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'" aria-level="'+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item">\xa0</div>'),i}})}),r(Tt,[kt,ct],function(e,t){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var n=this,r=t.activeEditor;return n.on("select",function(t){var n=[],i,o=r.getBody();for(r.focus(),i=r.selection.getStart();i&&i!=o;)e(i)||n.push(i),i=i.parentNode;r.selection.select(n[n.length-1-t.index]),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});i.push({name:s.name})}n.data(i)}),n._super()}})}),r(Rt,[K],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"
-}})}),r(At,[K,Rt],function(e,t){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,n=e.items();n.each(function(n){var r,i=n.settings.label;i&&(r=new t({layout:"flex",autoResize:"overflow",defaults:{flex:1},items:[{type:"label",id:n._id+"-l",text:i,flex:0,forId:n._id,disabled:n.disabled()}]}),r.type="formitem",n.aria("labelledby",n._id+"-l"),"undefined"==typeof n.settings.flex&&(n.settings.flex=1),e.replace(n,r),r.add(n))})},recalcLabels:function(){var e=this,t=0,n=[],r,i;if(e.settings.labelGapCalc!==!1)for(e.items().filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(Bt,[At],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(Lt,[St],function(e){return e.extend({init:function(e){var t=this,n=tinymce.activeEditor,r;e.spellcheck=!1,r=n.settings.file_browser_callback,r&&(e.icon="browse",e.onaction=function(){r(t.getEl("inp").id,t.getEl("inp").value,e.filetype,window)}),t._super(e)}})}),r(Dt,[yt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Mt,[yt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v=[],y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I,F,z=Math.max,W=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",N="h",E="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",P="left",M="w",L="x",D="innerW",H="minW",O="right",I="deltaW",F="contentW"):(S="x",N="w",E="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",P="top",M="h",L="y",D="innerH",H="minH",O="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),h=p.settings,g=h.flex,d-=n-1>t?c:0,g>0&&(u+=g,m[k]&&v.push(p),m.flex=g),d-=m[E],y=o[P]+m[H]+o[O],y>_&&(_=y);if(x={},x[E]=0>d?i[E]-d+i[A]:i[R]-d+i[A],x[H]=_+i[I],x[B]=i[R]-d,x[F]=_,x.minW=W(x.minW,i.maxW),x.minH=W(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],m=p.layoutRect(),b=m[k],y=m[E]+m.flex*C,y>b?(d-=m[k]-m[E],u-=m.flex,m.flex=0,m.maxFlexSize=b):m.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[L]=o[P],t=0,n=r.length;n>t;t++)p=r[t],m=p.layoutRect(),y=m.maxFlexSize||m[E],"center"===s?x[L]=Math.round(i[D]/2-m[M]/2):"stretch"===s?(x[M]=z(m[H]||0,i[D]-o[P]-o[O]),x[L]=o[P]):"end"===s&&(x[L]=i[D]-m[M]-o.top),m.flex>0&&(y+=m.flex*C),x[N]=y,x[S]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var V=e.parent();V&&(V._lastRect=null,V.recalc())}}})}),r(Ht,[vt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r(Pt,[q,Ct,Z,p,ct,g],function(e,t,n,r,i,o){function a(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function r(e){e=e.split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function i(){function t(e){var n=[];if(e)return s(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?e.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var t=this,n=this.settings.format;n&&t.parent().on("show",function(){t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))})},onclick:function(){this.settings.format&&d(this.settings.format)}}}}function o(){return e.undoManager?e.undoManager.hasUndo():!1}function a(){return e.undoManager?e.undoManager.hasRedo():!1}function l(){var t=this;t.disabled(!o()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!o())})}function c(){var t=this;t.disabled(!a()),e.on("Undo Redo AddUndo TypingUndo",function(){t.disabled(!a())})}function u(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function d(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var f;f=i(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){d(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],hr:["Insert horizontal rule","InsertHorizontalRule"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:l,cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:c,cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:l,cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:c,cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:u,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:f}),e.addButton("formatselect",function(){var n=[],i=r(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6");return s(i,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:i[0][0],values:n,fixedWidth:!0,onselect:d,onPostRender:t(n)}}),e.addButton("fontselect",function(){var n="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",i=[],o=r(e.settings.font_formats||n);return s(o,function(e){i.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:i,fixedWidth:!0,onPostRender:t(i,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var n=[],r="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||r;return s(i.split(" "),function(e){n.push({text:e,value:e})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:n,fixedWidth:!0,onPostRender:t(n,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:f})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(Ot,[yt],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,m,h,g,v,y,b,C,x,w,_,N=[],E=[],S,k,T,R;for(t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]),d=0;r>d;d++)N.push(0);for(f=0;n>f;f++)E.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),S=c.minW,k=c.minH,N[d]=S>N[d]?S:N[d],E[f]=k>E[f]?k:E[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=N[d]+(d>0?y:0),T-=(d>0?y:0)+N[d];for(R=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=E[f]+(f>0?b:0),R-=(f>0?b:0)+E[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var A;A="start"==t.packV?0:R>0?Math.floor(R/n):0;var B=0,L=t.flexWidths;if(L)for(d=0;d<L.length;d++)B+=L[d];else B=r;var D=T/B;for(d=0;r>d;d++)N[d]+=L?L[d]*D:D;for(m=g.top,f=0;n>f;f++){for(p=g.left,s=E[f]+A,d=0;r>d&&(u=i[f*r+d],u);d++)h=u.settings,c=u.layoutRect(),a=Math.max(N[d],c.startMinWidth),c.x=p,c.y=m,v=h.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=h.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=m+s/2-c.h/2:"bottom"==v?c.y=m+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();m+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var M=e.parent();M&&(M._lastRect=null,M.recalc())}}})}),r(It,[Ct],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(Ft,[Ct,U],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.addClass("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t+'"':"")+">"+e.encode(e._text)+"</label>"}})}),r(zt,[K],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e._super()}})}),r(Wt,[zt],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(Vt,[xt,$,Wt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon?r+"ico "+r+"i-"+e.settings.icon:"";return e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"></i>':"")+"<span>"+(e._text?(i?"\xa0":"")+e.encode(e._text):"")+'</span> <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n<r.length;n++)r[n].innerHTML=(t.settings.icon&&e?"\xa0":"")+t.encode(e);return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Ut,[Vt],function(e){return e.extend({init:function(e){var t=this,n,r,i,o,a;if(t._values=n=e.values,n){for(r=0;r<n.length;r++)if(i=n[r].selected||e.value===n[r].value){o=o||n[r].text,t._value=n[r].value;break}!i&&n.length>0&&(o=n[0].text,t._value=n[0].value),e.menu=n}e.text=e.text||o||n[0].text,t._super(e),t.addClass("listbox"),t.on("select",function(n){var r=n.control;a&&(n.lastControl=a),e.multiple?r.active(!r.active()):t.value(n.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){r=e.value()===n,r&&(i=i||e.text()),e.active(r),e.menu&&t(e.menu,n)})}var n=this,r,i,o,a;if("undefined"!=typeof e){if(n.menu)t(n.menu,e);else for(o=n.settings.menu,a=0;a<o.length;a++)r=o[a].value==e,r&&(i=i||o[a].text),o[a].active=r;n.text(i||this.settings.text)}return n._super(e)}})}),r(qt,[Ct,$,g],function(e,t,n){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),e.preview&&t.addClass("menu-item-preview"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.addClass("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.addClass("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.fire("show"),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("hide",function(t){t.control===r&&e.removeClass("selected")}),r.submenu=!0),r._parentMenu=i,r.addClass("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.removeClass(r._lastRel),r.addClass(o),r._lastRel=o,e.addClass("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,r=e.settings,i=e.classPrefix,o=e.encode(e._text),a=e.settings.icon,s="",l=r.shortcut;return a&&e.parent().addClass("menu-has-icons"),r.image&&(a="none",s=" style=\"background-image: url('"+r.image+"')\""),l&&n.mac&&(l=l.replace(/ctrl\+alt\+/i,"&#x2325;&#x2318;"),l=l.replace(/ctrl\+/i,"&#x2318;"),l=l.replace(/alt\+/i,"&#x2325;"),l=l.replace(/shift\+/i,"&#x21E7;")),a=i+"ico "+i+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==o?'<i class="'+a+'"'+s+"></i>\xa0":"")+("-"!==o?'<span id="'+t+'-text" class="'+i+'text">'+o+"</span>":"")+(l?'<div id="'+t+'-shortcut" class="'+i+'menu-shortcut">'+l+"</div>":"")+(r.menu?'<div class="'+i+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),e.parent().hideAll()))}),e._super(),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r($t,[Z,qt,p],function(e,t,n){var r=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var r=e.items,i=r.length;i--;)r[i]=n.extend({},e.itemDefaults,r[i]);t._super(e),t.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return r}),r(jt,[_t],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(Kt,[Ct,Y],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(Yt,[Ct],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(Gt,[Vt,U],function(e,t){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,n=e.getEl(),r=e.layoutRect(),i,o;return e._super(),i=n.firstChild,o=n.lastChild,t.css(i,{width:r.w-t.getSize(o).width,height:r.h-2}),t.css(o,{height:r.h-2}),e},activeMenu:function(e){var n=this;t.toggleClass(n.getEl().lastChild,n.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(r?'<i class="'+r+'"></i>':"")+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1">'+(e._menuBtnText?(r?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void t.call(this,e);n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(Xt,[Ht],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(Jt,[X,U],function(e,t){return e.extend({lastIdx:0,Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t.removeClass(n,this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t.addClass(n,this.classPrefix+"active"),e!=this.lastIdx&&(this.items()[this.lastIdx].hide(),this.lastIdx=e),this.items()[e].show().fire("showtab"),this.reflow()},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,n,r,i;r=t.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(t,n){r=Math.max(r,t.layoutRect().minW),i=Math.max(i,t.layoutRect().minH),e.settings.activeTab!=n&&t.hide()}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=t.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,n=e._super(),n.deltaH+=o,n.innerH=n.h-n.deltaH,n}})}),r(Qt,[Ct,U],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.hasEventListeners("submit")&&t.toJSON?(t.fire("submit",{data:t.toJSON()}),!1):void 0})})},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl().disabled=e),t._super(e)},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),e.disabled()&&(i+=' disabled="disabled"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="1"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="1"'+i+" />"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()},remove:function(){t.off(this.getEl()),this._super()}})}),r(Zt,[U,q],function(e,t){return function(n,r){var i=this,o,a=t.classPrefix;i.show=function(t){return i.hide(),o=!0,window.setTimeout(function(){o&&n.appendChild(e.createFragment('<div class="'+a+"throbber"+(r?" "+a+"throbber-inline":"")+'"></div>'))},t||0),i},i.hide=function(){var e=n.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),o=!1,i}}}),a([l,c,u,d,f,p,m,h,g,v,y,b,C,x,w,_,N,E,S,k,T,R,A,B,L,D,M,H,P,O,I,F,z,W,V,U,q,$,j,K,Y,G,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,mt,ht,gt,vt,yt,bt,Ct,xt,wt,_t,Nt,Et,St,kt,Tt,Rt,At,Bt,Lt,Dt,Mt,Ht,Pt,Ot,It,Ft,zt,Wt,Vt,Ut,qt,$t,jt,Kt,Yt,Gt,Xt,Jt,Qt,Zt])}(this);
\ No newline at end of file
+// 4.1.4 (2014-08-22)
+!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/EventUtils",c="tinymce/dom/Sizzle",u="tinymce/util/Tools",d="tinymce/Env",f="tinymce/dom/DomQuery",p="tinymce/html/Styles",h="tinymce/dom/TreeWalker",m="tinymce/dom/Range",g="tinymce/html/Entities",v="tinymce/dom/StyleSheetLoader",y="tinymce/dom/DOMUtils",b="tinymce/dom/ScriptLoader",C="tinymce/AddOnManager",x="tinymce/dom/RangeUtils",w="tinymce/NodeChange",_="tinymce/html/Node",E="tinymce/html/Schema",N="tinymce/html/SaxParser",k="tinymce/html/DomParser",S="tinymce/html/Writer",T="tinymce/html/Serializer",R="tinymce/dom/Serializer",A="tinymce/dom/TridentSelection",B="tinymce/util/VK",D="tinymce/dom/ControlSelection",L="tinymce/dom/BookmarkManager",H="tinymce/dom/Selection",M="tinymce/dom/ElementUtils",P="tinymce/fmt/Preview",O="tinymce/Formatter",I="tinymce/UndoManager",F="tinymce/EnterKey",z="tinymce/ForceBlocks",W="tinymce/EditorCommands",V="tinymce/util/URI",U="tinymce/util/Class",$="tinymce/util/EventDispatcher",q="tinymce/ui/Selector",j="tinymce/ui/Collection",Y="tinymce/ui/DomUtils",K="tinymce/ui/Control",G="tinymce/ui/Factory",X="tinymce/ui/KeyboardNavigation",J="tinymce/ui/Container",Q="tinymce/ui/DragHelper",Z="tinymce/ui/Scrollable",et="tinymce/ui/Panel",tt="tinymce/ui/Movable",nt="tinymce/ui/Resizable",rt="tinymce/ui/FloatPanel",it="tinymce/ui/Window",ot="tinymce/ui/MessageBox",at="tinymce/WindowManager",st="tinymce/util/Quirks",lt="tinymce/util/Observable",ct="tinymce/EditorObservable",ut="tinymce/Shortcuts",dt="tinymce/Editor",ft="tinymce/util/I18n",pt="tinymce/FocusManager",ht="tinymce/EditorManager",mt="tinymce/LegacyInput",gt="tinymce/util/XHR",vt="tinymce/util/JSON",yt="tinymce/util/JSONRequest",bt="tinymce/util/JSONP",Ct="tinymce/util/LocalStorage",xt="tinymce/Compat",wt="tinymce/ui/Layout",_t="tinymce/ui/AbsoluteLayout",Et="tinymce/ui/Tooltip",Nt="tinymce/ui/Widget",kt="tinymce/ui/Button",St="tinymce/ui/ButtonGroup",Tt="tinymce/ui/Checkbox",Rt="tinymce/ui/ComboBox",At="tinymce/ui/ColorBox",Bt="tinymce/ui/PanelButton",Dt="tinymce/ui/ColorButton",Lt="tinymce/util/Color",Ht="tinymce/ui/ColorPicker",Mt="tinymce/ui/Path",Pt="tinymce/ui/ElementPath",Ot="tinymce/ui/FormItem",It="tinymce/ui/Form",Ft="tinymce/ui/FieldSet",zt="tinymce/ui/FilePicker",Wt="tinymce/ui/FitLayout",Vt="tinymce/ui/FlexLayout",Ut="tinymce/ui/FlowLayout",$t="tinymce/ui/FormatControls",qt="tinymce/ui/GridLayout",jt="tinymce/ui/Iframe",Yt="tinymce/ui/Label",Kt="tinymce/ui/Toolbar",Gt="tinymce/ui/MenuBar",Xt="tinymce/ui/MenuButton",Jt="tinymce/ui/ListBox",Qt="tinymce/ui/MenuItem",Zt="tinymce/ui/Menu",en="tinymce/ui/Radio",tn="tinymce/ui/ResizeHandle",nn="tinymce/ui/Spacer",rn="tinymce/ui/SplitButton",on="tinymce/ui/StackLayout",an="tinymce/ui/TabPanel",sn="tinymce/ui/TextBox",ln="tinymce/ui/Throbber";r(l,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function t(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function n(e,t){function n(){return!1}function r(){return!0}var i,o=t||{},l;for(i in e)s[i]||(o[i]=e[i]);if(o.target||(o.target=o.srcElement||document),e&&a.test(e.type)&&e.pageX===l&&e.clientX!==l){var c=o.target.ownerDocument||document,u=c.documentElement,d=c.body;o.pageX=e.clientX+(u&&u.scrollLeft||d&&d.scrollLeft||0)-(u&&u.clientLeft||d&&d.clientLeft||0),o.pageY=e.clientY+(u&&u.scrollTop||d&&d.scrollTop||0)-(u&&u.clientTop||d&&d.clientTop||0)}return o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function r(n,r,i){function o(){i.domLoaded||(i.domLoaded=!0,r(c))}function a(){("complete"===l.readyState||"interactive"===l.readyState&&l.body)&&(t(l,"readystatechange",a),o())}function s(){try{l.documentElement.doScroll("left")}catch(e){return void setTimeout(s,0)}o()}var l=n.document,c={type:"ready"};return i.domLoaded?void r(c):(l.addEventListener?"complete"===l.readyState?o():e(n,"DOMContentLoaded",o):(e(l,"readystatechange",a),l.documentElement.doScroll&&n.self===n.top&&s()),void e(n,"load",o))}function i(){function i(e,t){var n,r,i,o,a=s[t];if(n=a&&a[e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,u,d,f;c=o+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,h){function m(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),h=h||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=m,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(h,n({type:b})):(d||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:h}):(s[g][b]=v=[{func:p,scope:h}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],o=f[d]){if(r)for(u=o.length;u--;)if(o[u].func===r){var p=o.nativeHandler,h=o.fakeName,m=o.capture;o=o.slice(0,u).concat(o.slice(u+1)),o.nativeHandler=p,o.fakeName=h,o.capture=m,f[d]=o}r&&0!==o.length||(delete f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture))}}else{for(d in f)o=f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture);f={}}for(d in f)return a;delete s[i];try{delete e[c]}catch(g){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1,returnValue:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(c,[],function(){function e(e,t,n,r){var i,o,a,s,l,c,d,p,h,m;if((t?t.ownerDocument||t:z)!==D&&B(t),t=t||D,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(H&&!r){if(i=vt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&I(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&x.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(x.qsa&&(!M||!M.test(e))){if(p=d=F,h=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=N(e),(d=t.getAttribute("id"))?p=d.replace(bt,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+f(c[l]);h=yt.test(e)&&u(t.parentNode)||t,m=c.join(",")}if(m)try{return Z.apply(n,h.querySelectorAll(m)),n}catch(g){}finally{d||t.removeAttribute("id")}}}return S(e.replace(st,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>w.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&typeof e.getElementsByTagName!==Y&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=V++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c=[W,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[F]||(t[F]={}),(s=l[r])&&s[0]===W&&s[1]===o)return c[2]=s[2];if(l[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(t,n,r){for(var i=0,o=n.length;o>i;i++)e(t,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function v(e,t,n,i,o,a){return i&&!i[F]&&(i=v(i)),o&&!o[F]&&(o=v(o,a)),r(function(r,a,s,l){var c,u,d,f=[],p=[],h=a.length,v=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?v:g(v,f,e,s,l),b=n?o||(r?e:h||i)?[]:a:y;if(n&&n(y,b,s,l),i)for(c=g(b,p),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[p[u]]=!(y[p[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(y[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?tt.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=g(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),c=p(function(e){return tt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=w.relative[e[s].type])u=[p(h(u),n)];else{if(n=w.filter[e[s].type].apply(null,e[s].matches),n[F]){for(r=++s;i>r&&!w.relative[e[r].type];r++);return v(s>1&&h(u),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(st,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&f(e))}u.push(n)}return h(u)}function b(t,n){var i=n.length>0,o=t.length>0,a=function(r,a,s,l,c){var u,d,f,p=0,h="0",m=r&&[],v=[],y=T,b=r||o&&w.find.TAG("*",c),C=W+=null==y?1:Math.random()||.1,x=b.length;for(c&&(T=a!==D&&a);h!==x&&null!=(u=b[h]);h++){if(o&&u){for(d=0;f=t[d++];)if(f(u,a,s)){l.push(u);break}c&&(W=C)}i&&((u=!f&&u)&&p--,r&&m.push(u))}if(p+=h,i&&h!==p){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(p>0)for(;h--;)m[h]||v[h]||(v[h]=J.call(l));v=g(v)}Z.apply(l,v),c&&!r&&v.length>0&&p+n.length>1&&e.uniqueSort(l)}return c&&(W=C,T=y),m};return i?r(a):a}var C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F="sizzle"+-new Date,z=window.document,W=0,V=0,U=n(),$=n(),q=n(),j=function(e,t){return e===t&&(A=!0),0},Y=typeof t,K=1<<31,G={}.hasOwnProperty,X=[],J=X.pop,Q=X.push,Z=X.push,et=X.slice,tt=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",rt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ot="\\["+rt+"*("+it+")(?:"+rt+"*([*^$|!~]?=)"+rt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+it+"))|)"+rt+"*\\]",at=":("+it+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ot+")*)|.*)\\)|)",st=new RegExp("^"+rt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+rt+"+$","g"),lt=new RegExp("^"+rt+"*,"+rt+"*"),ct=new RegExp("^"+rt+"*([>+~]|"+rt+")"+rt+"*"),ut=new RegExp("="+rt+"*([^\\]'\"]*?)"+rt+"*\\]","g"),dt=new RegExp(at),ft=new RegExp("^"+it+"$"),pt={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),TAG:new RegExp("^("+it+"|[*])"),ATTR:new RegExp("^"+ot),PSEUDO:new RegExp("^"+at),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+rt+"*(even|odd|(([+-]|)(\\d*)n|)"+rt+"*(?:([+-]|)"+rt+"*(\\d+)|))"+rt+"*\\)|)","i"),bool:new RegExp("^(?:"+nt+")$","i"),needsContext:new RegExp("^"+rt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+rt+"*((?:-\\d)?\\d*)"+rt+"*\\)|)(?=[^-]|$)","i")},ht=/^(?:input|select|textarea|button)$/i,mt=/^h\d$/i,gt=/^[^{]+\{\s*\[native \w/,vt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,bt=/'|\\/g,Ct=new RegExp("\\\\([\\da-f]{1,6}"+rt+"?|("+rt+")|.)","ig"),xt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(X=et.call(z.childNodes),z.childNodes),X[z.childNodes.length].nodeType}catch(wt){Z={apply:X.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=e.support={},E=e.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},B=e.setDocument=function(e){var t,n=e?e.ownerDocument||e:z,r=n.defaultView;return n!==D&&9===n.nodeType&&n.documentElement?(D=n,L=n.documentElement,H=!E(n),r&&r!==r.top&&(r.addEventListener?r.addEventListener("unload",function(){B()},!1):r.attachEvent&&r.attachEvent("onunload",function(){B()})),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=gt.test(n.getElementsByClassName),x.getById=i(function(e){return L.appendChild(e).id=F,!n.getElementsByName||!n.getElementsByName(F).length}),x.getById?(w.find.ID=function(e,t){if(typeof t.getElementById!==Y&&H){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},w.filter.ID=function(e){var t=e.replace(Ct,xt);return function(e){return e.getAttribute("id")===t}}):(delete w.find.ID,w.filter.ID=function(e){var t=e.replace(Ct,xt);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),w.find.TAG=x.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=x.getElementsByClassName&&function(e,t){return H?t.getElementsByClassName(e):void 0},P=[],M=[],(x.qsa=gt.test(n.querySelectorAll))&&(i(function(e){e.innerHTML="<select msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&M.push("[*^$]="+rt+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||M.push("\\["+rt+"*(?:value|"+nt+")"),e.querySelectorAll(":checked").length||M.push(":checked")}),i(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&M.push("name"+rt+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||M.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),M.push(",.*:")})),(x.matchesSelector=gt.test(O=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){x.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),P.push("!=",at)}),M=M.length&&new RegExp(M.join("|")),P=P.length&&new RegExp(P.join("|")),t=gt.test(L.compareDocumentPosition),I=t||gt.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return A=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r?r:(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&r||!x.sortDetached&&t.compareDocumentPosition(e)===r?e===n||e.ownerDocument===z&&I(z,e)?-1:t===n||t.ownerDocument===z&&I(z,t)?1:R?tt.call(R,e)-tt.call(R,t):0:4&r?-1:1)}:function(e,t){if(e===t)return A=!0,0;var r,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(!o||!s)return e===n?-1:t===n?1:o?-1:s?1:R?tt.call(R,e)-tt.call(R,t):0;if(o===s)return a(e,t);for(r=e;r=r.parentNode;)l.unshift(r);for(r=t;r=r.parentNode;)c.unshift(r);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===z?-1:c[i]===z?1:0},n):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&B(t),n=n.replace(ut,"='$1']"),!(!x.matchesSelector||!H||P&&P.test(n)||M&&M.test(n)))try{var r=O.call(t,n);if(r||x.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(e,t){return(e.ownerDocument||e)!==D&&B(e),I(e,t)},e.attr=function(e,n){(e.ownerDocument||e)!==D&&B(e);var r=w.attrHandle[n.toLowerCase()],i=r&&G.call(w.attrHandle,n.toLowerCase())?r(e,n,!H):t;return i!==t?i:x.attributes||!H?e.getAttribute(n):(i=e.getAttributeNode(n))&&i.specified?i.value:null},e.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},e.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!x.detectDuplicates,R=!x.sortStable&&e.slice(0),e.sort(j),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return R=null,e},_=e.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=_(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=_(t);return n},w=e.selectors={cacheLength:50,createPseudo:r,match:pt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Ct,xt),e[3]=(e[3]||e[4]||e[5]||"").replace(Ct,xt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pt.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&dt.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Ct,xt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+rt+")"+e+"("+rt+"|$)"))&&U(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(u=g[F]||(g[F]={}),c=u[e]||[],p=c[0]===W&&c[1],f=c[0]===W&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[W,p,f];break}}else if(y&&(c=(t[F]||(t[F]={}))[e])&&c[0]===W)f=c[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[W,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(t,n){var i,o=w.pseudos[t]||w.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[F]?o(n):o.length>1?(i=[t,t,"",n],w.setFilters.hasOwnProperty(t.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=tt.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(st,"$1"));return i[F]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(e){return e=e.replace(Ct,xt),function(t){return(t.textContent||t.innerText||_(t)).indexOf(e)>-1}}),lang:r(function(t){return ft.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(Ct,xt).toLowerCase(),function(e){var n;do if(n=H?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return mt.test(e.nodeName)},input:function(e){return ht.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},w.pseudos.nth=w.pseudos.eq;for(C in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[C]=s(C);for(C in{submit:!0,reset:!0})w.pseudos[C]=l(C);return d.prototype=w.filters=w.pseudos,w.setFilters=new d,N=e.tokenize=function(t,n){var r,i,o,a,s,l,c,u=$[t+" "];if(u)return n?0:u.slice(0);for(s=t,l=[],c=w.preFilter;s;){(!r||(i=lt.exec(s)))&&(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ct.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(st," ")}),s=s.slice(r.length));for(a in w.filter)!(i=pt[a].exec(s))||c[a]&&!(i=c[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?e.error(t):$(t,l).slice(0)},k=e.compile=function(e,t){var n,r=[],i=[],o=q[e+" "];if(!o){for(t||(t=N(e)),n=t.length;n--;)o=y(t[n]),o[F]?r.push(o):i.push(o);o=q(e,b(i,r)),o.selector=e}return o},S=e.select=function(e,t,n,r){var i,o,a,s,l,c="function"==typeof e&&e,d=!r&&N(e=c.selector||e);if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&x.getById&&9===t.nodeType&&H&&w.relative[o[1].type]){if(t=(w.find.ID(a.matches[0].replace(Ct,xt),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((l=w.find[s])&&(r=l(a.matches[0].replace(Ct,xt),yt.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Z.apply(n,r),n;break}}return(c||k(e,d))(r,t,!H,n,yt.test(e)&&u(t.parentNode)||t),n},x.sortStable=F.split("").sort(j).join("")===F,x.detectDuplicates=!!A,B(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(nt,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),e}),r(u,[],function(){function e(e){return null===e||e===t?"":(""+e).replace(m,"")}function n(e,n){return n?"array"==n&&g(e)?!0:typeof e==n:e!==t}function r(e){var t=e,n,r;if(!g(e))for(t=[],n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function i(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function o(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function a(e,t){var n=[];return o(e,function(e){n.push(t(e))}),n}function s(e,t){var n=[];return o(e,function(e){(!t||t(e))&&n.push(e)}),n}function l(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function c(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function u(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function d(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),o(e,function(e,i){return t.call(r,e,i,n)===!1?!1:void d(e,t,n,r)}))}function f(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function p(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function h(t,r){return!t||n(t,"array")?t:a(t.split(r||","),e)}var m=/^\s*|\s*$/g,g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:e,isArray:g,is:n,toArray:r,makeMap:i,each:o,map:a,grep:s,inArray:c,extend:u,create:l,walk:d,createNS:f,resolve:p,explode:h}}),r(d,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1==t.indexOf("Trident/")||-1==t.indexOf("rv:")&&-1==e.appName.indexOf("Netscape")?!1:11,i=i||o,a=!r&&!o&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(f,[l,c,u,d],function(e,n,r,i){function o(e){return"undefined"!=typeof e}function a(e){return"string"==typeof e}function s(e,t){var n,r,i;for(t=t||x,i=t.createElement("div"),n=t.createDocumentFragment(),i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return n}function l(e,t,n,r){var i;if(a(t))t=s(t,g(e[0]));else if(t.length&&!t.nodeType){if(t=d.makeArray(t),r)for(i=t.length-1;i>=0;i--)l(e,t[i],n,r);else for(i=0;i<t.length;i++)l(e,t[i],n,r);return e}if(t.nodeType)for(i=e.length;i--;)n.call(e[i],t);return e}function c(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function u(e,t,n){var r,i;return t=d(t)[0],e.each(function(){var e=this;n&&r==e.parentNode?i.appendChild(e):(r=e.parentNode,i=t.cloneNode(!1),e.parentNode.insertBefore(i,e),i.appendChild(e))}),e}function d(e,t){return new d.fn.init(e,t)}function f(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e){return null===e||e===k?"":(""+e).replace(L,"")}function h(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,r,a)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,i,a)!==!1);i++);return e}function m(e,t){var n=[];return h(e,function(e,r){t(r,e)&&n.push(r)}),n}function g(e){return e?9==e.nodeType?e:e.ownerDocument:x}function v(e,n,r){var i=[],o=e[n];for("string"!=typeof r&&r instanceof d&&(r=r[0]);o&&9!==o.nodeType;){if(r!==t){if(o===r)break;if("string"==typeof r&&d(o).is(r))break}1===o.nodeType&&i.push(o),o=o[n]}return i}function y(e,n,r,i){var o=[];for(i instanceof d&&(i=i[0]);e;e=e[n])if(!r||e.nodeType===r){if(i!==t){if(e===i)break;if("string"==typeof i&&d(e).is(i))break}o.push(e)}return o}function b(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType==n)return e;return null}function C(e,t,n){h(n,function(n,r){e[n]=e[n]||{},e[n][t]=r})}var x=document,w=Array.prototype.push,_=Array.prototype.slice,E=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,N=e.Event,k,S=r.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),T=r.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),R={"for":"htmlFor","class":"className",readonly:"readOnly"},A={"float":"cssFloat"},B={},D={},L=/^\s*|\s*$/g;return d.fn=d.prototype={constructor:d,selector:"",context:null,length:0,init:function(e,t){var n=this,r,i;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(t&&t.nodeType)n.context=t;else{if(t)return d(e).attr(t);n.context=t=document}if(a(e)){if(n.selector=e,r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:E.exec(e),!r)return d(t).find(e);if(r[1])for(i=s(e,g(t)).firstChild;i;)w.call(n,i),i=i.nextSibling;else{if(i=g(t).getElementById(r[2]),!i)return n;if(i.id!==r[2])return n.find(e);n.length=1,n[0]=i}}else this.add(e,!1);return n},toArray:function(){return r.toArray(this)},add:function(e,t){var n=this,r,i;if(a(e))return n.add(d(e));if(e.nodeType)return n.add([e]);if(t!==!1)for(r=d.unique(n.toArray().concat(d.makeArray(e))),n.length=r.length,i=0;i<r.length;i++)n[i]=r[i];else w.apply(n,d.makeArray(e));
+return n},attr:function(e,t){var n=this,r;if("object"==typeof e)h(e,function(e,t){n.attr(e,t)});else{if(!o(t)){if(n[0]&&1===n[0].nodeType){if(r=B[e],r&&r.get)return r.get(n[0],e);if(T[e])return n.prop(e)?e:k;t=n[0].getAttribute(e,2),null===t&&(t=k)}return t}this.each(function(){var n;if(1===this.nodeType){if(n=B[e],n&&n.set)return void n.set(this,t);null===t?this.removeAttribute(e,2):this.setAttribute(e,t,2)}})}return n},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if(e=R[e]||e,"object"==typeof e)h(e,function(e,t){n.prop(e,t)});else{if(!o(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1==this.nodeType&&(this[e]=t)})}return n},css:function(e,t){function n(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})}function r(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})}var i=this,a,s;if("object"==typeof e)h(e,function(e,t){i.css(e,t)});else if(o(t))e=n(e),"number"!=typeof t||S[e]||(t+="px"),i.each(function(){var n=this.style;if(s=D[e],s&&s.set)return void s.set(this,t);try{this.style[A[e]||e]=t}catch(i){}(null===t||""===t)&&(n.removeProperty?n.removeProperty(r(e)):n.removeAttribute(e))});else{if(a=i[0],s=D[e],s&&s.get)return s.get(a);if(a.ownerDocument.defaultView)try{return a.ownerDocument.defaultView.getComputedStyle(a,null).getPropertyValue(r(e))}catch(l){return k}else if(a.currentStyle)return a.currentStyle[n(e)]}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],N.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(o(e)){n=t.length;try{for(;n--;)t[n].innerHTML=e}catch(r){d(t[n]).empty().append(e)}return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(o(e)){for(n=t.length;n--;)"innerText"in t[n]?t[n].innerText=e:t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return l(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return l(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)},!0)},before:function(){var e=this;return e[0]&&e[0].parentNode?l(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?l(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):e},appendTo:function(e){return d(e).append(this),this},prependTo:function(e){return d(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return u(this,e)},wrapAll:function(e){return u(this,e,!0)},wrapInner:function(e){return this.each(function(){d(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){d(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),d(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return"string"!=typeof e?n:(-1!==e.indexOf(" ")?h(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n,r){var i,o;o=c(r,e),o!==t&&(i=r.className,o?r.className=p((" "+i+" ").replace(" "+e+" "," ")):r.className+=i?" "+e:e)}),n)},hasClass:function(e){return c(this[0],e)},each:function(e){return h(this,e)},on:function(e,t){return this.each(function(){N.bind(this,e,t)})},off:function(e,t){return this.each(function(){N.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?N.fire(this,e.type,e):N.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new d(_.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)d.find(e,this[t],r);return d(r)},filter:function(e){return d("function"==typeof e?m(this.toArray(),function(t,n){return e(n,t)}):d.filter(e,this.toArray()))},closest:function(e){var t=[];return e instanceof d&&(e=e[0]),this.each(function(n,r){for(;r;){if("string"==typeof e&&d(r).is(e)){t.push(r);break}if(r==e){t.push(r);break}r=r.parentNode}}),d(t)},offset:function(e){var t,n,r,i=0,o=0,a;return e?this.css(e):(t=this[0],t&&(n=t.ownerDocument,r=n.documentElement,t.getBoundingClientRect&&(a=t.getBoundingClientRect(),i=a.left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,o=a.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:o})},push:w,sort:[].sort,splice:[].splice},r.extend(d,{extend:r.extend,makeArray:r.toArray,inArray:f,isArray:r.isArray,each:h,trim:p,grep:m,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,contains:n.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!=t[r].nodeType&&t.splice(r,1);return t=1===t.length?d.find.matchesSelector(t[0],e)?[t[0]]:[]:d.find.matches(e,t)}}),h({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return v(e,"parentNode")},next:function(e){return b(e,"nextSibling",1)},prev:function(e){return b(e,"previousSibling",1)},children:function(e){return y(e.firstChild,"nextSibling",1)},contents:function(e){return r.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){d.fn[e]=function(n){var r=this,i=[];return r.each(function(){var e=t.call(i,this,n,i);e&&(d.isArray(e)?i.push.apply(i,e):i.push(e))}),this.length>1&&(i=d.unique(i),0===e.indexOf("parents")&&(i=i.reverse())),i=d(i),n?i.filter(n):i}}),h({parentsUntil:function(e,t){return v(e,"parentNode",t)},nextUntil:function(e,t){return y(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return y(e,"previousSibling",1,t).slice(1)}},function(e,t){d.fn[e]=function(n,r){var i=this,o=[];return i.each(function(){var e=t.call(o,this,n,o);e&&(d.isArray(e)?o.push.apply(o,e):o.push(e))}),this.length>1&&(o=d.unique(o),(0===e.indexOf("parents")||"prevUntil"===e)&&(o=o.reverse())),o=d(o),r?o.filter(r):o}}),d.fn.is=function(e){return!!e&&this.filter(e).length>0},d.fn.init.prototype=d.fn,d.overrideDefaults=function(e){function t(r,i){return n=n||e(),0===arguments.length&&(r=n.element),i||(i=n.context),new t.fn.init(r,i)}var n;return d.extend(t,this),t},i.ie&&i.ie<8&&(C(B,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?k:t},size:function(e){var t=e.size;return 20===t?k:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?k:t}}),C(B,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),i.ie&&i.ie<9&&(A["float"]="styleFloat",C(D,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),d.attrHooks=B,d.cssHooks=D,d}),r(p,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d,f,p="\ufeff";for(e=e||{},t&&(d=t.getValidStyles(),f=t.getInvalidStyles()),u=("\\\" \\' \\; \\: ; : "+p).split(" "),l=0;l<u.length;l++)c[u[l]]=p+l,c[p+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=m[e+"-top"+t],r&&(i=m[e+"-right"+t],i&&(o=m[e+"-bottom"+t],o&&(a=m[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(m[e+t]=-1==l?s[0]:s.join(" "),delete m[e+"-top"+t],delete m[e+"-right"+t],delete m[e+"-bottom"+t],delete m[e+"-left"+t])}}function u(e){var t=m[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return m[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(m[e]=m[t]+" "+m[n]+" "+m[r],delete m[t],delete m[n],delete m[r])}function f(e){return b=!0,c[e]}function p(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function h(t,n,r,i,o,a){if(o=o||a)return o=p(o),"'"+o.replace(/\'/g,"\\'")+"'";if(n=p(n||r||i),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"}var m={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),y=y.replace(/\\[0-9a-f]+/g,function(e){return String.fromCharCode(parseInt(e.substr(1),16))}),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(|\/\*|\*\//.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":("color"===v||"background-color"===v)&&(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,h),m[v]=b?p(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===m.border&&delete m.border,"none"===m["border-image"]&&delete m["border-image"]}return m},serialize:function(e,t){function n(t){var n,r,o,a;if(n=d[t])for(r=0,o=n.length;o>r;r++)t=n[r],a=e[t],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+t+": "+a+";")}function r(e,t){var n;return n=f["*"],n&&n[e]?!1:(n=f[t],n&&n[e]?!1:!0)}var i="",o,a;if(t&&d)n("*"),n(t);else for(o in e)a=e[o],a!==s&&a.length>0&&(!f||r(o,t))&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(h,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(m,[u],function(e){function t(n){function r(){return M.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(H[U]=H[V],H[$]=H[W]):(H[V]=H[U],H[W]=H[$]),H.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=H[V],r=H[W],i=H[U],o=H[$],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function h(){E(I)}function m(){return E(P)}function g(){return E(O)}function v(e){var t=this[V],r=this[W],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=H.extractContents();H.insertNode(e),e.appendChild(t),H.selectNode(e)}function b(){return q(new t(n),{startContainer:H[V],startOffset:H[W],endContainer:H[U],endOffset:H[$],collapsed:H.collapsed,commonAncestorContainer:H.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return H[V]==H[U]&&H[W]==H[$]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(H[V]=t,H[W]=r):(H[U]=t,H[$]=r),i=H[U];i.parentNode;)i=i.parentNode;for(o=H[V];o.parentNode;)o=o.parentNode;o==i?w(H[V],H[W],H[U],H[$])>0&&H.collapse(e):H.collapse(e),H.collapsed=x(),H.commonAncestorContainer=n.findCommonAncestor(H[V],H[U])}function E(e){var t,n=0,r=0,i,o,a,s,l,c;if(H[V]==H[U])return N(e);for(t=H[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==H[V])return k(t,e);++n}for(t=H[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==H[U])return S(t,e);++r}for(o=r-n,a=H[V];o>0;)a=a.parentNode,o--;for(s=H[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function N(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),H[W]==H[$])return t;if(3==H[V].nodeType){if(n=H[V].nodeValue,i=n.substring(H[W],H[$]),e!=O&&(o=H[V],c=H[W],u=H[$]-H[W],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),H.collapse(F)),e==I)return;return i.length>0&&t.appendChild(M.createTextNode(i)),t}for(o=C(H[V],H[W]),a=H[$]-H[W];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&H.collapse(F),t}function k(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-H[W],0>=a)return t!=O&&(H.setEndBefore(e),H.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(H.setEndBefore(e),H.collapse(z)),n}function S(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=H[$]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(H.setStartAfter(e),H.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=D(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(H.setStartAfter(e),H.collapse(F)),o}function R(e,t){var n=C(H[U],H[$]-1),r,i,o,a,s,l=n!=H[U];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(H[V],H[W]),r=n!=H[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=H[W],a=o.substring(l),s=o.substring(0,l)):(l=H[$],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function D(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function L(){return n.create("body",null,g()).outerText}var H=this,M=n.doc,P=0,O=1,I=2,F=!0,z=!1,W="startOffset",V="startContainer",U="endContainer",$="endOffset",q=e.extend,j=n.nodeIndex;return q(H,{startContainer:M,startOffset:0,endContainer:M,endOffset:0,collapsed:F,commonAncestorContainer:M,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:h,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),H}return t.prototype.toString=function(){return this.toStringIE()},t}),r(g,[u],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={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"};o={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;","`":"&#96;"},a={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(v,[],function(){return function(e,t){function n(t){e.getElementsByTagName("head")[0].appendChild(t)}function r(t,r,s){function l(){for(var e=v.passed,t=e.length;t--;)e[t]();v.status=2,v.passed=[],v.failed=[]}function c(){for(var e=v.failed,t=e.length;t--;)e[t]();v.status=3,v.passed=[],v.failed=[]}function u(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function d(e,t){e()||((new Date).getTime()-g<a?window.setTimeout(t,0):c())}function f(){d(function(){for(var t=e.styleSheets,n,r=t.length,i;r--;)if(n=t[r],i=n.ownerNode?n.ownerNode:n.owningElement,i&&i.id===h.id)return l(),!0},f)}function p(){d(function(){try{var e=m.sheet.cssRules;return l(),!!e}catch(t){}},p)}var h,m,g,v;if(o[t]?v=o[t]:(v={passed:[],failed:[]},o[t]=v),r&&v.passed.push(r),s&&v.failed.push(s),1!=v.status){if(2==v.status)return void l();if(3==v.status)return void c();if(v.status=1,h=e.createElement("link"),h.rel="stylesheet",h.type="text/css",h.id="u"+i++,h.async=!1,h.defer=!1,g=(new Date).getTime(),"onload"in h&&!u())h.onload=f,h.onerror=c;else{if(navigator.userAgent.indexOf("Firefox")>0)return m=e.createElement("style"),m.textContent='@import "'+t+'"',p(),void n(m);f()}n(h),h.href=t}}var i=0,o={},a;t=t||{},a=t.maxLoadTime||5e3,this.load=r}}),r(y,[c,f,p,l,h,m,g,d,u,v],function(e,n,r,i,o,a,s,l,c,u){function d(e,t){var n={},r=t.keep_values,i;return i={set:function(n,r,i){t.url_converter&&(r=t.url_converter.call(t.url_converter_scope||e,r,i,n[0])),n.attr("data-mce-"+i,r).attr(i,r)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},n={style:{set:function(e,t){return null!==t&&"object"==typeof t?void e.css(t):(r&&e.attr("data-mce-style",t),void e.attr("style",t))},get:function(t){var n=t.attr("data-mce-style")||t.attr("style");return n=e.serializeStyle(e.parseStyle(n),t[0].nodeName)}}},r&&(n.href=n.src=i),n}function f(e,t){var o=this,a;o.doc=e,o.win=window,o.files={},o.counter=0,o.stdMode=!v||e.documentMode>=8,o.boxModel=!v||"CSS1Compat"==e.compatMode||o.stdMode,o.styleSheetLoader=new u(e),o.boundEvents=[],o.settings=t=t||{},o.schema=t.schema,o.styles=new r({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),o.fixDoc(e),o.events=t.ownEvents?new i(t.proxy):i.Event,o.attrHooks=d(o,t),a=t.schema?t.schema.getBlockElements():{},o.$=n.overrideDefaults(function(){return{context:e,element:o.getRoot()}}),o.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!a[e.nodeName]):!!a[e]}}var p=c.each,h=c.is,m=c.grep,g=c.trim,v=l.ie,y=/^([a-z0-9],?)+$/i,b=/^[ \t\r\n]*$/;return f.prototype={$$:function(e){return"string"==typeof e&&(e=this.get(e)),this.$(e)},root:null,fixDoc:function(e){var t=this.settings,n;if(v&&t.schema){"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(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!v||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),p(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.settings.root_element||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),h(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.settings.root_element||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(y.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=h(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&"undefined"!=typeof t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return e=this.$$(e),t?e.each(function(){for(var e;e=this.firstChild;)3==e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():e.remove(),e.length>1?e.toArray():e[0]},setStyle:function(e,t,n){e=this.$$(e).css(t,n),this.settings.update_styles&&e.attr("data-mce-style",null)},getStyle:function(e,n,r){return e=this.$$(e),r?e.css(n):(n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=v?"styleFloat":"cssFloat"),e[0]&&e[0].style?e[0].style[n]:t)},setStyles:function(e,t){this.$$(e).css(t)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this,i,o,a=r.settings;""===n&&(n=null),e=r.$$(e),i=e.attr(t),e.length&&(o=r.attrHooks[t],o&&o.set?o.set(e,n,t):e.attr(t,n),i!=n&&a.onSetAttrib&&a.onSetAttrib({attrElm:e,attrName:t,attrValue:n}))},setAttribs:function(e,t){var n=this;n.$$(e).each(function(e,r){p(t,function(e,t){n.setAttrib(r,t,e)})})},getAttrib:function(e,t,n){var r=this,i,o;return e=r.$$(e),e.length&&(i=r.attrHooks[t],o=i&&i.get?i.get(e,t):e.attr(t)),"undefined"==typeof o&&(o=n||""),o},getPos:function(e,t){var r=this,i=0,o=0,a,s=r.doc,l=s.body,c;if(e=r.get(e),t=t||l,e){if(t===l&&e.getBoundingClientRect&&"static"===n(l).css("position"))return c=e.getBoundingClientRect(),t=r.boxModel?s.documentElement:l,i=c.left+(s.documentElement.scrollLeft||l.scrollLeft)-t.clientLeft,o=c.top+(s.documentElement.scrollTop||l.scrollTop)-t.clientTop,{x:i,y:o};for(a=e;a&&a!=t&&a.nodeType;)i+=a.offsetLeft||0,o+=a.offsetTop||0,a=a.offsetParent;for(a=e.parentNode;a&&a!=t&&a.nodeType;)i-=a.scrollLeft||0,o-=a.scrollTop||0,a=a.parentNode}return{x:i,y:o}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==f.DOM&&n===document){var o=f.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,f.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==f.DOM&&n===document?void f.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void p(e.split(","),function(e){var i;t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),v&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){this.$$(e).addClass(t)},removeClass:function(e,t){this.toggleClass(e,t,!1)},hasClass:function(e,t){return this.$$(e).hasClass(t)},toggleClass:function(e,t,r){this.$$(e).toggleClass(t,r).each(function(){""===this.className&&n(this).attr("class",null)})},show:function(e){this.$$(e).show()},hide:function(e){this.$$(e).hide()},isHidden:function(e){return"none"==this.$$(e).css("display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){e=this.$$(e),v?e.each(function(e,r){if(r.canHaveHTML!==!1){for(;r.firstChild;)r.removeChild(r.firstChild);try{r.innerHTML="<br>"+t,r.removeChild(r.firstChild)}catch(i){n("<div>").html("<br>"+t).contents().slice(1).appendTo(r)}return t}}):e.html(t)},getOuterHTML:function(e){return e=this.get(e),1==e.nodeType?e.outerHTML:n("<div>").append(n(e).clone()).html()},setOuterHTML:function(e,t){var r=this;r.$$(e).each(function(){try{this.outerHTML=t}catch(e){r.remove(n(this).html(t),!0)}})},decode:s.decode,encode:s.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return h(t,"array")&&(e=e.cloneNode(!0)),n&&p(m(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),p(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(c.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],p(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(v){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,i,a,s,l,c=0;if(e=e.firstChild){s=new o(e,e.parentNode),t=t||n.schema?n.schema.getNonEmptyElements():null;do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(i=n.getAttribs(e),r=i.length;r--;)if(l=i[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!b.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new a(this)},nodeIndex:function(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=g(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;
+i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(c.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(c.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1==e.nodeType?(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null):null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&(n=this.getContentEditable(e),null===n);e=e.parentNode);return n},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},f.DOM=new f(document),f}),r(b,[y,u],function(e,t){function n(){function e(e,t){function n(){o.remove(s),a&&(a.onreadystatechange=a.onload=a=null),t()}function i(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var o=r,a,s;s=o.uniqueId(),a=document.createElement("script"),a.id=s,a.type="text/javascript",a.src=e,"onreadystatechange"in a?a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&n()}:a.onload=n,a.onerror=i,(document.getElementsByTagName("head")[0]||document.body).appendChild(a)}var t=0,n=1,a=2,s={},l=[],c={},u=[],d=0,f;this.isDone=function(e){return s[e]==a},this.markDone=function(e){s[e]=a},this.add=this.load=function(e,n,r){var i=s[e];i==f&&(l.push(e),s[e]=t),n&&(c[e]||(c[e]=[]),c[e].push({func:n,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(l,e,t)},this.loadScripts=function(t,r,l){function p(e){i(c[e],function(e){e.func.call(e.scope)}),c[e]=f}var h;u.push({func:r,scope:l||this}),(h=function(){var r=o(t);t.length=0,i(r,function(t){return s[t]==a?void p(t):void(s[t]!=n&&(s[t]=n,d++,e(t,function(){s[t]=a,d--,p(t),h()})))}),d||(i(u,function(e){e.func.call(e.scope)}),u.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(C,[b,u],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",-1!=n.indexOf(","+i.substr(0,2)+","))i=i.substr(0,2);else if(-1==n.indexOf(","+i+","))return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&a.call(s?s:e)}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(x,[u,h],function(e,t){function n(e,t){var n=e.childNodes;return t--,t>n.length-1?t=n.length-1:0>t&&(t=0),n[t]||e}function r(e){this.walk=function(t,r){function o(e){var t;return t=e[0],3===t.nodeType&&t===c&&u>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===f&&e.length>0&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e}function a(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function s(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function l(e,t,n){var i=n?"nextSibling":"previousSibling";for(g=e,v=g.parentNode;g&&g!=t;g=v)v=g.parentNode,y=a(g==e?g:g[i],i),y.length&&(n||y.reverse(),r(o(y)))}var c=t.startContainer,u=t.startOffset,d=t.endContainer,f=t.endOffset,p,h,m,g,v,y,b;if(b=e.select("td.mce-item-selected,th.mce-item-selected"),b.length>0)return void i(b,function(e){r([e])});if(1==c.nodeType&&c.hasChildNodes()&&(c=c.childNodes[u]),1==d.nodeType&&d.hasChildNodes()&&(d=n(d,f)),c==d)return r(o([c]));for(p=e.findCommonAncestor(c,d),g=c;g;g=g.parentNode){if(g===d)return l(c,p,!0);if(g===p)break}for(g=d;g;g=g.parentNode){if(g===c)return l(d,p);if(g===p)break}h=s(c,p)||c,m=s(d,p)||d,l(c,h,!0),y=a(h==c?h:h.nextSibling,"nextSibling",m==d?m.nextSibling:m),y.length&&r(o(y)),l(d,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||f);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function s(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function l(n,r){var a,s,l;if(r=r||c,l=e.getParent(r.parentNode,e.isBlock)||f,n&&"BR"==r.nodeName&&g&&e.isEmpty(l))return c=r.parentNode,u=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);p=a[n?"prev":"next"]();){if("false"===e.getContentEditableParent(p))return;if(3===p.nodeType&&p.nodeValue.length>0)return c=p,u=n?p.nodeValue.length:0,void(i=!0);if(e.isBlock(p)||h[p.nodeName.toLowerCase()])return;s=p}o&&s&&(c=s,i=!0,u=0)}var c,u,d,f=e.getRoot(),p,h,m,g;if(c=n[(r?"start":"end")+"Container"],u=n[(r?"start":"end")+"Offset"],g=1==c.nodeType&&u===c.childNodes.length,h=e.schema.getNonEmptyElements(),m=r,1==c.nodeType&&u>c.childNodes.length-1&&(m=!1),9===c.nodeType&&(c=e.getRoot(),u=0),c===f){if(m&&(p=c.childNodes[u>0?u-1:0],p&&(h[p.nodeName]||"TABLE"==p.nodeName)))return;if(c.hasChildNodes()&&(u=Math.min(!m&&u>0?u-1:u,c.childNodes.length-1),c=c.childNodes[u],u=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){p=c,d=new t(c,f);do{if(3===p.nodeType&&p.nodeValue.length>0){u=m?0:p.nodeValue.length,c=p,i=!0;break}if(h[p.nodeName.toLowerCase()]){u=e.nodeIndex(p),c=p.parentNode,"IMG"!=p.nodeName||m||u++,i=!0;break}}while(p=m?d.next():d.prev())}}o&&(3===c.nodeType&&0===u&&l(!0),1===c.nodeType&&(p=c.childNodes[u],p||(p=c.childNodes[u-1]),!p||"BR"!==p.nodeName||s(p,"A")||a(p)||a(p,!0)||l(!0,p))),m&&!o&&3===c.nodeType&&u===c.nodeValue.length&&l(!1),i&&n["set"+(r?"Start":"End")](c,u)}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}var i=e.each;return r.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},r}),r(w,[x],function(e){return function(t){function n(e){var n,r;if(r=t.$(e).parentsUntil(t.getBody()).add(e),r.length===i.length){for(n=r.length;n>=0&&r[n]===i[n];n--);if(-1===n)return i=r,!0}return i=r,!1}var r,i=[];"onselectionchange"in t.getDoc()||t.on("NodeChange Click MouseUp KeyUp Focus",function(n){var i,o;i=t.selection.getRng(),o={startContainer:i.startContainer,startOffset:i.startOffset,endContainer:i.endContainer,endOffset:i.endOffset},"nodechange"!=n.type&&e.compareRanges(o,r)||t.fire("SelectionChange"),r=o}),t.on("contextmenu",function(){t.fire("SelectionChange")}),t.on("SelectionChange",function(){var e=t.selection.getStart(!0);t.selection.isCollapsed()||n(e)||!t.dom.isChildOf(e,t.getBody())||t.nodeChanged({selectionChange:!0})}),t.on("MouseUp",function(e){e.isDefaultPrevented()||setTimeout(function(){t.nodeChanged()},0)}),this.nodeChanged=function(e){var n=t.selection,r,i,o;t.initialized&&n&&!t.settings.disable_nodechange&&!t.settings.readonly&&(o=t.getBody(),r=n.getStart()||o,r=r.ownerDocument!=t.getDoc()?t.getBody():r,"IMG"==r.nodeName&&n.isCollapsed()&&(r=r.parentNode),i=[],t.dom.getParent(r,function(e){return e===o?!0:void i.push(e)}),e=e||{},e.element=r,e.parents=i,t.fire("NodeChange",e))}}}),r(_,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(E,[u],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e,t){var n={},r,i;for(r=0,i=e.length;i>r;r++)n[e[r]]=t||{};return n}var s,c,u,d=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),c=3;c<d.length;c++)"string"==typeof d[c]&&(d[c]=t(d[c])),r.push.apply(r,d[c]);for(e=t(e),s=e.length;s--;)u=[].concat(l,t(n)),a[e[s]]={attributes:i(u),attributesOrder:u,children:i(r,o)}}function r(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},l,c,u,d,f,p;return i[e]?i[e]:(l=t("id accesskey class dir lang style tabindex title"),c=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),u=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(l.push.apply(l,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),c.push.apply(c,t("article aside details dialog figure header footer hgroup section nav")),u.push.apply(u,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(l.push("xml:lang"),p=t("acronym applet basefont big font strike tt"),u.push.apply(u,p),s(p,function(e){n(e,"",u)}),f=t("center dir isindex noframes"),c.push.apply(c,f),d=[].concat(c,u),s(f,function(e){n(e,"",d)})),d=d||[].concat(c,u),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",d),n("address dt dd div caption","",d),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",u),n("blockquote","cite",d),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",d),n("dl","","dt dd"),n("a","href target rel media hreflang type",u),n("q","cite",u),n("ins del","cite datetime",d),n("img","src alt usemap ismap width height"),n("iframe","src name width height",d),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",d,"param"),n("param","name value"),n("map","name",d,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",d),n("th","colspan rowspan headers scope abbr",d),n("form","accept-charset action autocomplete enctype method name novalidate target",d),n("fieldset","disabled form name",d,"legend"),n("label","form for",u),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?d:u),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",d,"li"),n("noscript","",d),"html4"!=e&&(n("wbr"),n("ruby","",u,"rt rp"),n("figcaption","",d),n("mark rt rp summary bdi","",u),n("canvas","width height",d),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",d,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",d,"track source"),n("source","src type media"),n("track","kind src srclang label default"),n("datalist","",u,"option"),n("article section nav aside header footer","",d),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",d,"figcaption"),n("time","datetime",u),n("dialog","open",d),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",u),n("progress","value max",u),n("meter","value min max low high optimum",u),n("details","open",d,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(r("script","language xml:space"),r("style","xml:space"),r("object","declare classid code codebase codetype archive standby align border hspace vspace"),r("embed","align name hspace vspace"),r("param","valuetype type"),r("a","charset name rev shape coords"),r("br","clear"),r("applet","codebase archive code object alt name width height align hspace vspace"),r("img","name longdesc align border hspace vspace"),r("iframe","longdesc frameborder marginwidth marginheight scrolling align"),r("font basefont","size color face"),r("input","usemap align"),r("select","onchange"),r("textarea"),r("h1 h2 h3 h4 h5 h6 div p legend caption","align"),r("ul","type compact"),r("li","type"),r("ol dl menu dir","compact"),r("pre","width xml:space"),r("hr","align noshade size width"),r("isindex","prompt"),r("table","summary width frame rules cellspacing cellpadding align bgcolor"),r("col","width align char charoff valign"),r("colgroup","width align char charoff valign"),r("thead","align char charoff valign"),r("tr","align char charoff valign bgcolor"),r("th","axis align char charoff valign nowrap bgcolor width height"),r("form","accept"),r("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),r("tfoot","align char charoff valign"),r("tbody","align char charoff valign"),r("area","nohref"),r("body","background bgcolor text link vlink alink")),"html4"!=e&&(r("input button select textarea","autofocus"),r("input textarea","placeholder"),r("a","download"),r("link script img","crossorigin"),r("iframe","sandbox seamless allowfullscreen")),s(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,i[e]=a,a)}function r(e,t){var n;return e&&(n={},"string"==typeof e&&(e={"*":e}),s(e,function(e,r){n[r]="map"==t?a(e,/[, ]/):c(e,/[, ]/)})),n}var i={},o={},a=e.makeMap,s=e.each,l=e.extend,c=e.explode,u=e.inArray;return function(e){function o(t,n,r){var o=e[t];return o?o=a(o,/[, ]/,a(o.toUpperCase(),/[, ]/)):(o=i[t],o||(o=a(n," ",a(n.toUpperCase()," ")),o=l(o,r),i[t]=o)),o}function d(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function f(e){var n,r,i,o,s,l,c,f,p,h,m,g,v,b,x,w,_,E,N,k=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,S=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),y["@"]&&(w=y["@"].attributes,_=y["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=k.exec(e[n])){if(b=s[1],p=s[2],x=s[3],f=s[5],g={},v=[],l={attributes:g,attributesOrder:v},"#"===b&&(l.paddEmpty=!0),"-"===b&&(l.removeEmpty=!0),"!"===s[4]&&(l.removeEmptyAttrs=!0),w){for(E in w)g[E]=w[E];v.push.apply(v,_)}if(f)for(f=t(f,"|"),i=0,o=f.length;o>i;i++)if(s=S.exec(f[i])){if(c={},m=s[1],h=s[2].replace(/::/g,":"),b=s[3],N=s[4],"!"===m&&(l.attributesRequired=l.attributesRequired||[],l.attributesRequired.push(h),c.required=!0),"-"===m){delete g[h],v.splice(u(v,h),1);continue}b&&("="===b&&(l.attributesDefault=l.attributesDefault||[],l.attributesDefault.push({name:h,value:N}),c.defaultValue=N),":"===b&&(l.attributesForced=l.attributesForced||[],l.attributesForced.push({name:h,value:N}),c.forcedValue=N),"<"===b&&(c.validValues=a(N,"?"))),T.test(h)?(l.attributePatterns=l.attributePatterns||[],c.pattern=d(h),l.attributePatterns.push(c)):(g[h]||v.push(h),g[h]=c)}w||"@"!=p||(w=g,_=v),x&&(l.outputName=p,y[x]=l),T.test(p)?(l.pattern=d(p),C.push(l)):y[p]=l}}function p(e){y={},C=[],f(e),s(_,function(e,t){b[t]=e.children})}function h(e){var n=/^(~)?(.+)$/;e&&(i.text_block_elements=i.block_elements=null,s(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",o=t[2];if(b[o]=b[i],L[o]=i,r||(R[o.toUpperCase()]={},R[o]={}),!y[o]){var a=y[i];a=l({},a),delete a.removeEmptyAttrs,delete a.removeEmpty,y[o]=a}s(b,function(e,t){e[i]&&(b[t]=e=l({},b[t]),e[o]=e[i])})}))}function m(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&s(t(e,","),function(e){var r=n.exec(e),i,o;r&&(o=r[1],i=o?b[r[2]]:b[r[2]]={"#comment":{}},i=b[r[2]],s(t(r[3],"|"),function(e){"-"===o?(b[r[2]]=i=l({},b[r[2]]),delete i[e]):i[e]={}}))})}function g(e){var t=y[e],n;if(t)return t;for(n=C.length;n--;)if(t=C[n],t.pattern.test(e))return t}var v=this,y={},b={},C=[],x,w,_,E,N,k,S,T,R,A,B,D,L={},H={};e=e||{},_=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),x=r(e.valid_styles),w=r(e.invalid_styles,"map"),T=r(e.valid_classes,"map"),E=o("whitespace_elements","pre script noscript style textarea video audio iframe object"),N=o("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),k=o("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),S=o("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),A=o("non_empty_elements","td th iframe video audio object script",k),B=o("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),R=o("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup",B),D=o("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),s((e.special||"script noscript style textarea").split(" "),function(e){H[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?p(e.valid_elements):(s(_,function(e,t){y[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},b[t]=e.children}),"html5"!=e.schema&&s(t("strong/b em/i"),function(e){e=t(e,"/"),y[e[1]].outputName=e[0]}),y.img.attributesDefault=[{name:"alt",value:""}],s(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){y[e]&&(y[e].removeEmpty=!0)}),s(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){y[e].paddEmpty=!0}),s(t("span"),function(e){y[e].removeEmptyAttrs=!0})),h(e.custom_elements),m(e.valid_children),f(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&s(c(e.invalid_elements),function(e){y[e]&&delete y[e]}),g("span")||f("span[!data-mce-type|*]"),v.children=b,v.getValidStyles=function(){return x},v.getInvalidStyles=function(){return w},v.getValidClasses=function(){return T},v.getBoolAttrs=function(){return S},v.getBlockElements=function(){return R},v.getTextBlockElements=function(){return B},v.getTextInlineElements=function(){return D},v.getShortEndedElements=function(){return k},v.getSelfClosingElements=function(){return N},v.getNonEmptyElements=function(){return A},v.getWhiteSpaceElements=function(){return E},v.getSpecialElements=function(){return H},v.isValidChild=function(e,t){var n=b[e];return!(!n||!n[t])},v.isValid=function(e,t){var n,r,i=g(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},v.getElementRule=g,v.getCustomElements=function(){return L},v.addValidElements=f,v.setValidElements=p,v.addCustomElements=h,v.addValidChildren=m,v.elements=y}}),r(N,[E,g,u],function(e,t,n){function r(e,t,n){var r=1,i,o,a,s;for(s=e.getShortEndedElements(),a=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g,a.lastIndex=i=n;o=a.exec(t);){if(i=a.lastIndex,"/"===o[1])r--;else if(!o[1]){if(o[2]in s)continue;r++}if(0===r)break}return i}function i(i,a){function s(){}var l=this;i=i||{},l.schema=a=a||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),o("comment cdata text start end pi doctype".split(" "),function(e){e&&(l[e]=i[e]||s)}),l.parse=function(e){function o(e){var t,n;for(t=p.length;t--&&p[t].name!==e;);if(t>=0){for(n=p.length-1;n>=t;n--)e=p[n],e.valid&&l.end(e.name);p.length=t}}function s(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in x?t:z(n||r||o||""),_&&!y&&0!==t.indexOf("data-")){if(a=T[t],!a&&R){for(s=R.length;s--&&(a=R[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(V[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{c=decodeURIComponent(c)}catch(u){c=unescape(c)}if(U.test(c))return;if(!i.allow_html_data_urls&&$.test(c)&&!/^data:image\//i.test(c))return}h.map[t]=n,h.push({name:t,value:n})}var l=this,c,u=0,d,f,p=[],h,m,g,v,y,b,C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F=0,z=t.decode,W,V=n.makeMap("src,href,data,background,formaction,poster"),U=/((java|vb)script|mhtml):/i,$=/^data:/i;for(M=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-_\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),P=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,C=a.getShortEndedElements(),H=i.self_closing_elements||a.getSelfClosingElements(),x=a.getBoolAttrs(),_=i.validate,b=i.remove_internals,W=i.fix_self_closing,O=a.getSpecialElements();c=M.exec(e);){if(u<c.index&&l.text(z(e.substr(u,c.index-u))),d=c[6])d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),o(d);else if(d=c[7]){if(d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),w=d in C,W&&H[d]&&p.length>0&&p[p.length-1].name===d&&o(d),!_||(E=a.getElementRule(d))){if(N=!0,_&&(T=E.attributes,R=E.attributePatterns),(S=c[8])?(y=-1!==S.indexOf("data-mce-type"),y&&b&&(N=!1),h=[],h.map={},S.replace(P,s)):(h=[],h.map={}),_&&!y){if(A=E.attributesRequired,B=E.attributesDefault,D=E.attributesForced,L=E.removeEmptyAttrs,L&&!h.length&&(N=!1),D)for(m=D.length;m--;)k=D[m],v=k.name,I=k.value,"{$uid}"===I&&(I="mce_"+F++),h.map[v]=I,h.push({name:v,value:I});if(B)for(m=B.length;m--;)k=B[m],v=k.name,v in h.map||(I=k.value,"{$uid}"===I&&(I="mce_"+F++),h.map[v]=I,h.push({name:v,value:I}));if(A){for(m=A.length;m--&&!(A[m]in h.map););-1===m&&(N=!1)}if(k=h.map["data-mce-bogus"]){if("all"===k){u=r(a,e,M.lastIndex),M.lastIndex=u;continue}N=!1}}N&&l.start(d,h,w)}else N=!1;if(f=O[d]){f.lastIndex=u=c.index+c[0].length,(c=f.exec(e))?(N&&(g=e.substr(u,c.index-u)),u=c.index+c[0].length):(g=e.substr(u),u=e.length),N&&(g.length>0&&l.text(g,!0),l.end(d)),M.lastIndex=u;continue}w||(S&&S.indexOf("/")==S.length-1?N&&l.end(d):p.push({name:d,valid:N}))}else(d=c[1])?(">"===d.charAt(0)&&(d=" "+d),i.allow_conditional_comments||"[if"!==d.substr(0,3)||(d=" "+d),l.comment(d)):(d=c[2])?l.cdata(d):(d=c[3])?l.doctype(d):(d=c[4])&&l.pi(d,c[5]);u=c.index+c[0].length}for(u<e.length&&l.text(z(e.substr(u))),m=p.length-1;m>=0;m--)d=p[m],d.valid&&l.end(d.name)}}var o=n.each;return i.findEndTag=r,i}),r(k,[_,E,N,u],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,p,h,m,g,v,y;for(m=i("tr,td,th,tbody,thead,tfoot,table"),h=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!m[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),p=0;p<a.length-1;p++){for(l.isValidChild(c.name,a[p].name)?(d=u.filterNode(a[p].clone()),c.append(d)):d=c,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,d.append(f),f=y;c=d}s.isEmpty(h)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(h)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],p={},h={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=p[n],r?r.push(e):p[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=h[n],r?r.push(e):h[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(D,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=u(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=p[t],i?i.push(r):p[t]=[r]),r}function m(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(D,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,E,N,k,S,T,R,A=[],B,D,L,H,M,P,O,I;if(o=o||{},p={},h={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,S=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,M=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,D=/[ \t\r\n]+$/,L=/[ \t\r\n]+/g,H=/^[ \t\r\n]+$/,v=new n({validate:S,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(L," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,m(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,m(b)},start:function(e,t,n){var r,i,o,a,s;if(o=S?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(N=h[a],N?N.push(r):h[a]=[r]);T[e]&&m(r),n||(b=r),!B&&M[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=S?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||H.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(D,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||H.test(i))&&(n.remove(),n=o),n=o}if(B&&M[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,b.unwrap(),void(b=a);b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),S&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(k in p){for(N=d[k],C=p[k],_=C.length;_--;)C[_].parent||C.splice(_,1);for(x=0,w=N.length;w>x;x++)N[x](C,k,o)}for(x=0,w=f.length;w>x;x++)if(N=f[x],N.name in h){for(C=h[N.name],_=C.length;_--;)C[_].parent||C.splice(_,1);
+for(_=0,E=N.callbacks.length;E>_;_++)N.callbacks[_](C,N.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,p,h;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(h=new e("#text",3),h.value="\xa0",i.replace(h))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}}),r.validate&&l.getValidClasses()&&u.addAttributeFilter("class",function(e){for(var t=e.length,n,r,i,o,a,s=l.getValidClasses(),c,u;t--;){for(n=e[t],r=n.attr("class").split(" "),a="",i=0;i<r.length;i++)o=r[i],u=!1,c=s["*"],c&&c[o]&&(u=!0),c=s[n.name],u||!c||c[o]||(u=!0),u&&(a&&(a+=" "),a+=o);a.length||(a=null),n.attr("class",a)}})}}),r(S,[g,u],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(T,[S,E],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,h,m;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},m=r.getElementRule(e.name),p=0,h=m.attributesOrder.length;h>p;p++)u=m.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,h=c.length;h>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(R,[y,k,g,T,_,E,d,u],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n=e.length,r;n--;)r=e[n],r.attr("tabindex",r.attributes.map["data-mce-tabindex"]),r.attr(t,null)}),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class"),r&&(r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null))}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o,a;r--;)i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t?(a=i.attr("type"),a&&i.attr("type","mce-no/type"==a?null:a.replace(/^mce\-/,"")),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")):o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,h,m;return a.ie&&s.select("script,style,select,map").length>0?(m=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,m)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),h=new r(e,d),n.content=h.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(A,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(3==l.nodeType&&(u=l.nodeValue,s+=u.length,s>=i)){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(3==l.nodeType&&(s+=l.nodeValue.length,s>=i)){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,h;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(h=t.childNodes,h.length?(n>=h.length?i.insertAfter(a,h[h.length-1]):t.insertBefore(a,h[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span>&#xFEFF;</span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,p=f.body,h,m;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="&#xFEFF;":d=null,s.innerHTML="<span>&#xFEFF;</span><span>&#xFEFF;</span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(m=s.childNodes[l],a=p.createControlRange(),a.addElement(m),a.select(),h=e.getRng(),h.item&&m===h.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(B,[d],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey},metaKeyPressed:function(t){return e.mac?t.metaKey:t.ctrlKey&&!t.altKey}}}),r(D,[B,u,d],function(e,t,n){return function(r,i){function o(e){var t=i.settings.object_resizing;return t===!1||n.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:i.dom.is(e,t))}function a(t){var n,r,o,a,s;n=t.screenX-T,r=t.screenY-R,P=n*k[2]+D,O=r*k[3]+L,P=5>P?5:P,O=5>O?5:O,o="IMG"==w.nodeName&&i.settings.resize_img_proportional!==!1?!e.modifierPressed(t):e.modifierPressed(t)||"IMG"==w.nodeName&&k[2]*k[3]!==0,o&&(W(n)>W(r)?(O=V(P*H),P=V(O/H)):(P=V(O/H),O=V(P*H))),C.setStyles(_,{width:P,height:O}),a=k.startPos.x+n,s=k.startPos.y+r,a=a>0?a:0,s=s>0?s:0,C.setStyles(E,{left:a,top:s,display:"block"}),E.innerHTML=P+" &times; "+O,k[2]<0&&_.clientWidth<=P&&C.setStyle(_,"left",A+(D-P)),k[3]<0&&_.clientHeight<=O&&C.setStyle(_,"top",B+(L-O)),n=U.scrollWidth-$,r=U.scrollHeight-q,n+r!==0&&C.setStyles(E,{left:a-n,top:s-r}),M||(i.fire("ObjectResizeStart",{target:w,width:D,height:L}),M=!0)}function s(){function e(e,t){t&&(w.style[e]||!i.schema.isValid(w.nodeName.toLowerCase(),e)?C.setStyle(w,e,t):C.setAttrib(w,e,t))}M=!1,e("width",P),e("height",O),C.unbind(I,"mousemove",a),C.unbind(I,"mouseup",s),F!=I&&(C.unbind(F,"mousemove",a),C.unbind(F,"mouseup",s)),C.remove(_),C.remove(E),z&&"TABLE"!=w.nodeName||l(w),i.fire("ObjectResized",{target:w,width:P,height:O}),C.setAttrib(w,"style",C.getAttrib(w,"style")),i.nodeChanged()}function l(e,t,r){var l,u,d,f,p;g(),l=C.getPos(e,U),A=l.x,B=l.y,p=e.getBoundingClientRect(),u=p.width||p.right-p.left,d=p.height||p.bottom-p.top,w!=e&&(m(),w=e,P=O=0),f=i.fire("ObjectSelected",{target:e}),o(e)&&!f.isDefaultPrevented()?x(N,function(e,i){function o(t){T=t.screenX,R=t.screenY,D=w.clientWidth,L=w.clientHeight,H=L/D,k=e,e.startPos={x:u*e[0]+A,y:d*e[1]+B},$=U.scrollWidth,q=U.scrollHeight,_=w.cloneNode(!0),C.addClass(_,"mce-clonedresizable"),C.setAttrib(_,"data-mce-bogus","all"),_.contentEditable=!1,_.unSelectabe=!0,C.setStyles(_,{left:A,top:B,margin:0}),_.removeAttribute("data-mce-selected"),U.appendChild(_),C.bind(I,"mousemove",a),C.bind(I,"mouseup",s),F!=I&&(C.bind(F,"mousemove",a),C.bind(F,"mouseup",s)),E=C.add(U,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},D+" &times; "+L)}var l,c;return t?void(i==t&&o(r)):(l=C.get("mceResizeHandle"+i),l?C.show(l):(c=U,l=C.add(c,"div",{id:"mceResizeHandle"+i,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+i+"-resize; margin:0; padding:0"}),n.ie&&(l.contentEditable=!1)),e.elm||(C.bind(l,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),o(e)}),e.elm=l),void C.setStyles(l,{left:u*e[0]+A-l.offsetWidth/2,top:d*e[1]+B-l.offsetHeight/2}))}):c(),w.setAttribute("data-mce-selected","1")}function c(){var e,t;g(),w&&w.removeAttribute("data-mce-selected");for(e in N)t=C.get("mceResizeHandle"+e),t&&(C.unbind(t),C.remove(t))}function u(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n,i;if(!M)return x(C.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),i="mousedown"==e.type?e.target:r.getNode(),i=C.$(i).closest(z?"table":"table,img,hr")[0],t(i,U)&&(v(),n=r.getStart(!0),t(n,i)&&t(r.getEnd(!0),i)&&(!z||i!=n&&"IMG"!==n.nodeName))?void l(i):void c()}function d(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,u;n=t.getBoundingClientRect(),c=S.clientX-n.left,u=S.clientY-n.top;for(r in N)if(o=N[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],W(a-c)<8&&W(s-u)<8){k=o;break}M=!0,i.fire("ObjectResizeStart",{target:w,width:w.clientWidth,height:w.clientHeight}),i.getDoc().selection.empty(),l(t,r,S)}function h(e){var t=e.srcElement;if(t!=w){if(i.fire("ObjectSelected",{target:t}),m(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),w=t,d(t,"resizestart",p))}}function m(){f(w,"resizestart",p)}function g(){for(var e in N){var t=N[e];t.elm&&(C.unbind(t.elm),delete t.elm)}}function v(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function y(e){var t;if(z){t=I.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function b(){w=_=null,z&&(m(),f(U,"controlselect",h))}var C=i.dom,x=t.each,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I=i.getDoc(),F=document,z=n.ie&&n.ie<11,W=Math.abs,V=Math.round,U=i.getBody(),$,q;N={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var j=".mce-content-body";return i.contentStyles.push(j+" div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}"+j+" .mce-resizehandle:hover {background: #000}"+j+" img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}"+j+" .mce-clonedresizable {position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+j+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}"),i.on("init",function(){z?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),y(e.target))}),d(U,"controlselect",h),i.on("mousedown",function(e){S=e})):(v(),n.ie>=11&&(i.on("mouseup",function(e){var t=e.target.nodeName;!M&&/^(TABLE|IMG|HR)$/.test(t)&&(i.selection.select(e.target,"TABLE"==t),i.nodeChanged())}),i.dom.bind(U,"mscontrolselect",function(e){/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&window.setTimeout(function(){i.selection.select(e.target)},0))}))),i.on("nodechange ResizeEditor",u),i.on("keydown keyup",function(e){w&&"TABLE"==w.nodeName&&u(e)}),i.on("hide",c)}),i.on("remove",g),{isResizable:o,showResizeRect:l,hideResizeRect:c,updateResizeRect:u,controlSelect:y,destroy:b}}}),r(L,[d,u],function(e,t){function n(n){var r=n.dom;this.getBookmark=function(e,i){function o(e,n){var i=0;return t.each(r.select(e),function(e,t){e==n&&(i=t)}),i}function a(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function s(){function e(e,t){var n=e[t?"startContainer":"endContainer"],a=e[t?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==n.nodeType){if(i)for(l=n.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=n.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(r.nodeIndex(c[a],i)+u);for(;n&&n!=o;n=n.parentNode)s.push(r.nodeIndex(n,i));return s}var t=n.getRng(!0),o=r.getRoot(),a={};return a.start=e(t,!0),n.isCollapsed()||(a.end=e(t)),a}var l,c,u,d,f,p,h="&#xFEFF;",m;if(2==e)return p=n.getNode(),f=p?p.nodeName:null,"IMG"==f?{name:f,index:o(f,p)}:n.tridentSel?n.tridentSel.getBookmark(e):s();if(e)return{rng:n.getRng()};if(l=n.getRng(),u=r.uniqueId(),d=n.isCollapsed(),m="overflow:hidden;line-height:0px",l.duplicate||l.item){if(l.item)return p=l.item(0),f=p.nodeName,{name:f,index:o(f,p)};c=l.duplicate();try{l.collapse(),l.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_start" style="'+m+'">'+h+"</span>"),d||(c.collapse(!1),l.moveToElementText(c.parentElement()),0===l.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_end" style="'+m+'">'+h+"</span>"))}catch(g){return null}}else{if(p=n.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:o(f,p)};c=a(l.cloneRange()),d||(c.collapse(!1),c.insertNode(r.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:m},h))),l=a(l),l.collapse(!0),l.insertNode(r.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:m},h))}return n.moveToBookmark({id:u,keep:1}),{id:u}},this.moveToBookmark=function(i){function o(e){var t=i[e?"start":"end"],n,r,o,a;if(t){for(o=t[0],r=c,n=t.length-1;n>=1;n--){if(a=r.childNodes,t[n]>a.length-1)return;r=a[t[n]]}3===r.nodeType&&(o=Math.min(t[0],r.nodeValue.length)),1===r.nodeType&&(o=Math.min(t[0],r.childNodes.length)),e?l.setStart(r,o):l.setEnd(r,o)}return!0}function a(n){var o=r.get(i.id+"_"+n),a,s,l,c,h=i.keep;if(o&&(a=o.parentNode,"start"==n?(h?(a=o.firstChild,s=1):s=r.nodeIndex(o),u=d=a,f=p=s):(h?(a=o.firstChild,s=1):s=r.nodeIndex(o),d=a,p=s),!h)){for(c=o.previousSibling,l=o.nextSibling,t.each(t.grep(o.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});o=r.get(i.id+"_"+n);)r.remove(o,1);c&&l&&c.nodeType==l.nodeType&&3==c.nodeType&&!e.opera&&(s=c.nodeValue.length,c.appendData(l.nodeValue),r.remove(l),"start"==n?(u=d=c,f=p=s):(d=c,p=s))}}function s(t){return!r.isBlock(t)||t.innerHTML||e.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t}var l,c,u,d,f,p;if(i)if(i.start){if(l=r.createRng(),c=r.getRoot(),n.tridentSel)return n.tridentSel.moveToBookmark(i);o(!0)&&o()&&n.setRng(l)}else i.id?(a("start"),a("end"),u&&(l=r.createRng(),l.setStart(s(u),f),l.setEnd(s(d),p),n.setRng(l))):i.name?n.select(r.select(i.name)[i.index]):i.rng&&n.setRng(i.rng)}}return n.isBookmarkNode=function(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},n}),r(H,[h,A,D,x,L,d,u],function(e,n,r,i,o,a,s){function l(e,t,i,a){var s=this;s.dom=e,s.win=t,s.serializer=i,s.editor=a,s.bookmarkManager=new o(s),s.controlSelection=new r(s,a),s.win.getSelection||(s.tridentSel=new n(s))}var c=s.each,u=s.trim,d=a.ie;return l.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(e){var t=this,n=t.getRng(),r,i,o,a;if(n.duplicate||n.item){if(n.item)return n.item(0);for(o=n.duplicate(),o.collapse(1),r=o.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),i=a=n.parentElement();a=a.parentNode;)if(a==r){r=i;break}return r}return r=n.startContainer,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[Math.min(r.childNodes.length-1,n.startOffset)])),r&&3==r.nodeType?r.parentNode:r},getEnd:function(e){var t=this,n=t.getRng(),r,i;return n.duplicate||n.item?n.item?n.item(0):(n=n.duplicate(),n.collapse(0),r=n.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),r&&"BODY"==r.nodeName?r.lastChild||r:r):(r=n.endContainer,i=n.endOffset,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[i>0?i-1:i])),r&&3==r.nodeType?r.parentNode:r)},getBookmark:function(e,t){return this.bookmarkManager.getBookmark(e,t)},moveToBookmark:function(e){return this.bookmarkManager.moveToBookmark(e)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a=n.win.document,s;if(!e&&n.lastFocusBookmark){var l=n.lastFocusBookmark;return l.startContainer?(i=a.createRange(),i.setStart(l.startContainer,l.startOffset),i.setEnd(l.endContainer,l.endOffset)):i=l,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(d&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r;if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return void n.tridentSel.addRange(e)}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,l=t.dom.getRoot();return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return!d&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};c(n.selectorChangedData,function(e,t){c(o,function(n){return i.is(n,t)?(r[t]||(c(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),c(r,function(e,n){a[n]||(delete r[n],c(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e){function t(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var n,r,i=this,o=i.dom,a=o.getRoot(),s,l;if("BODY"!=a.nodeName){var c=i.getScrollContainer();if(c)return n=t(e).y-t(c).y,l=c.clientHeight,s=c.scrollTop,void((s>n||n+25>s+l)&&(c.scrollTop=s>n?n:n-l+25))}r=o.getViewPort(i.editor.getWin()),n=o.getPos(e).y,s=r.y,l=r.h,(n<r.y||n+25>s+l)&&i.editor.getWin().scrollTo(0,s>n?n:n-l+25)},placeCaretAt:function(e,t){var n=this.editor.getDoc(),r,i;if(n.caretPositionFromPoint)i=n.caretPositionFromPoint(e,t),r=n.createRange(),r.setStart(i.offsetNode,i.offset),r.collapse(!0);else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(n.body.createTextRange){r=n.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(o){r.collapse(t<n.body.clientHeight)}}this.setRng(r)},_moveEndPoint:function(t,n,r){var i=n,o=new e(n,i),s=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==u(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(s[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(a.ie&&a.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?o.next():o.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},destroy:function(){this.win=null,this.controlSelection.destroy()}},l}),r(M,[L,u],function(e,t){function n(t){this.compare=function(n,i){function o(e){var n={};return r(t.getAttribs(e),function(r){var i=r.nodeName.toLowerCase();0!==i.indexOf("_")&&"style"!==i&&"data-mce-style"!==i&&(n[i]=t.getAttrib(e,i))}),n}function a(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],"undefined"==typeof n)return!1;if(e[r]!=n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0}return n.nodeName!=i.nodeName?!1:a(o(n),o(i))&&a(t.parseStyle(t.getAttrib(n,"style")),t.parseStyle(t.getAttrib(i,"style")))?!e.isBookmarkNode(n)&&!e.isBookmarkNode(i):!1}}var r=t.each;return n}),r(P,[u],function(e){function t(e,t){function r(e){return e.replace(/%(\w+)/g,"")}var i,o,a=e.dom,s="",l,c;if(c=e.settings.preview_styles,c===!1)return"";if(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof t){if(t=e.formatter.get(t),!t)return;t=t[0]}return i=t.block||t.inline||"span",o=a.create(i),n(t.styles,function(e,t){e=r(e),e&&a.setStyle(o,t,e)}),n(t.attributes,function(e,t){e=r(e),e&&a.setAttrib(o,t,e)}),n(t.classes,function(e){e=r(e),a.hasClass(o,e)||a.addClass(o,e)}),e.fire("PreviewFormats"),a.setStyles(o,{position:"absolute",left:-65535}),e.getBody().appendChild(o),l=a.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,n(c.split(" "),function(t){var n=a.getStyle(o,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=a.getStyle(e.getBody(),t,!0),"#ffffff"==a.toHex(n).toLowerCase())||"color"==t&&"#000000"==a.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(s+="padding:0 2px;"),s+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),a.remove(o),s}var n=e.each;return{getCssText:t}}),r(O,[h,x,L,M,u,P],function(e,t,n,r,i,o){return function(a){function s(e){return e.nodeType&&(e=e.nodeName),!!a.schema.getTextBlockElements()[e.toLowerCase()]}function l(e,t){return V.getParents(e,t,V.getRoot())}function c(e){return 1===e.nodeType&&"_mce_caret"===e.id}function u(){p({valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],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:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0},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"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0
+},onformat:function(e,t,n){ot(n,function(t,n){V.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),ot("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){p(e,{block:e,remove:"all"})}),p(a.settings.formats)}function d(){a.addShortcut("ctrl+b","bold_desc","Bold"),a.addShortcut("ctrl+i","italic_desc","Italic"),a.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)a.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);a.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),a.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),a.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function f(e){return e?W[e]:W}function p(e,t){e&&("string"!=typeof e?ot(e,function(e,t){p(t,e)}):(t=t.length?t:[t],ot(t,function(e){e.deep===et&&(e.deep=!e.selector),e.split===et&&(e.split=!e.selector||e.inline),e.remove===et&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),W[e]=t))}function h(e){var t;return a.dom.getParent(e,function(e){return t=a.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function m(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=h(e.parentNode),a.dom.getStyle(e,"color")&&t?a.dom.setStyle(e,"text-decoration",t):a.dom.getStyle(e,"textdecoration")===t&&a.dom.setStyle(e,"text-decoration",null))}function g(t,n,r){function i(e,t){if(t=t||d,e){if(t.onformat&&t.onformat(e,t,n,r),ot(t.styles,function(t,r){V.setStyle(e,r,R(t,n))}),t.styles){var i=V.getAttrib(e,"style");i&&e.setAttribute("data-mce-style",i)}ot(t.attributes,function(t,r){V.setAttrib(e,r,R(t,n))}),ot(t.classes,function(t){t=R(t,n),V.hasClass(e,t)||V.addClass(e,t)})}}function o(){function t(t,n){var i=new e(n);for(r=i.current();r;r=i.prev())if(r.childNodes.length>1||r==t||"BR"==r.tagName)return r}var n=a.selection.getRng(),i=n.startContainer,o=n.endContainer;if(i!=o&&0===n.endOffset){var s=t(i,o),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function l(e,r,o){var a=[],l,f,p=!0;l=d.inline||d.block,f=V.create(l),i(f),$.walk(e,function(e){function r(e){var m,g,y,C,x;return x=p,m=e.nodeName.toLowerCase(),g=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&tt(e)&&(x=p,p="true"===tt(e),C=!0),k(m,"br")?(h=0,void(d.block&&V.remove(e))):d.wrapper&&b(e,t,n)?void(h=0):p&&!C&&d.block&&!d.wrapper&&s(m)&&q(g,l)?(e=V.rename(e,l),i(e),a.push(e),void(h=0)):d.selector&&(ot(u,function(t){"collapsed"in t&&t.collapsed!==v||V.is(e,t.selector)&&!c(e)&&(i(e,t),y=!0)}),!d.inline||y)?void(h=0):void(!p||C||!q(l,m)||!q(g,l)||!o&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||c(e)||d.inline&&j(e)?(h=0,ot(at(e.childNodes),r),C&&(p=x),h=0):(h||(h=V.clone(f,J),e.parentNode.insertBefore(h,e),a.push(h)),h.appendChild(e)))}var h;ot(e,r)}),d.links===!0&&ot(a,function(e){function t(e){"A"===e.nodeName&&i(e,d),ot(at(e.childNodes),t)}t(e)}),ot(a,function(e){function r(e){var t=0;return ot(e.childNodes,function(e){A(e)||it(e)||t++}),t}function o(e){var t,n;return ot(e.childNodes,function(e){return 1!=e.nodeType||it(e)||c(e)?void 0:(t=e,J)}),t&&!it(t)&&N(t,d)&&(n=V.clone(t,J),i(n),V.replace(n,e,Q),V.remove(t,1)),n||e}var s;if(s=r(e),(a.length>1||!j(e))&&0===s)return void V.remove(e,1);if(d.inline||d.wrapper){if(d.exact||1!==s||(e=o(e)),ot(u,function(t){ot(V.select(t.inline,e),function(e){it(e)||H(t,n,e,t.exact?e:null)})}),b(e.parentNode,t,n))return V.remove(e,1),e=0,Q;d.merge_with_parents&&V.getParent(e.parentNode,function(r){return b(r,t,n)?(V.remove(e,1),e=0,Q):void 0}),e&&d.merge_siblings!==!1&&(e=O(P(e),e),e=O(e,P(e,Q)))}})}var u=f(t),d=u[0],p,h,v=!r&&U.isCollapsed();if(d)if(r)r.nodeType?(h=V.createRng(),h.setStartBefore(r),h.setEndAfter(r),l(D(h,u),null,!0)):l(r,null,!0);else if(v&&d.inline&&!V.select("td.mce-item-selected,th.mce-item-selected").length)F("apply",t,n);else{var y=a.selection.getNode();Y||!u[0].defaultBlock||V.getParent(y,V.isBlock)||g(u[0].defaultBlock),a.selection.setRng(o()),p=U.getBookmark(),l(D(U.getRng(Q),u),p),d.styles&&(d.styles.color||d.styles.textDecoration)&&(st(y,m,"childNodes"),m(y)),U.moveToBookmark(p),z(U.getRng(Q)),a.nodeChanged()}}function v(e,t,n,r){function i(e){var n,r,o,a,s;if(1===e.nodeType&&tt(e)&&(a=y,y="true"===tt(e),s=!0),n=at(e.childNodes),y&&!s)for(r=0,o=p.length;o>r&&!H(p[r],t,e,e);r++);if(m.deep&&n.length){for(r=0,o=n.length;o>r;r++)i(n[r]);s&&(y=a)}}function o(n){var i;return ot(l(n.parentNode).reverse(),function(n){var o;i||"_start"==n.id||"_end"==n.id||(o=b(n,e,t,r),o&&o.split!==!1&&(i=n))}),i}function s(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=V.clone(o,J),c=0;c<p.length;c++)if(H(p[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||m.mixed&&j(e)||(n=V.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function c(e){return s(o(e),e,e,!0)}function u(e){var t=V.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return it(n)&&(n=n[e?"firstChild":"lastChild"]),V.remove(t,!0),n}function d(e){var t,n,r=e.commonAncestorContainer;e=D(e,p,Q),m.split&&(t=I(e,Q),n=I(e),t!=n?(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName)&&/^(TH|TD)$/.test(n.nodeName)&&n.firstChild&&(n=n.firstChild||n),t=B(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=B(n,"span",{id:"_end","data-mce-type":"bookmark"}),c(t),c(n),t=u(Q),n=u()):t=n=c(t),e.startContainer=t.parentNode,e.startOffset=K(t),e.endContainer=n.parentNode,e.endOffset=K(n)+1),$.walk(e,function(e){ot(e,function(e){i(e),1===e.nodeType&&"underline"===a.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===h(e.parentNode)&&H({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var p=f(e),m=p[0],g,v,y=!0;return n?void(n.nodeType?(v=V.createRng(),v.setStartBefore(n),v.setEndAfter(n),d(v)):d(n)):void(U.isCollapsed()&&m.inline&&!V.select("td.mce-item-selected,th.mce-item-selected").length?F("remove",e,t,r):(g=U.getBookmark(),d(U.getRng(Q)),U.moveToBookmark(g),m.inline&&C(e,t,U.getStart())&&z(U.getRng(!0)),a.nodeChanged()))}function y(e,t,n){var r=f(e);!C(e,t,n)||"toggle"in r[0]&&!r[0].toggle?g(e,t,n):v(e,t,n)}function b(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===et){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?V.getAttrib(e,o):S(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!k(a,T(R(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?V.getAttrib(e,s[l]):S(e,s[l]))return t;return t}var o=f(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],N(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!V.hasClass(e,l[s]))return;return a}}function C(e,t,n){function r(n){var r=V.getRoot();return n===r?!1:(n=V.getParent(n,function(n){return n.parentNode===r||!!b(n,e,t,!0)}),b(n,e,t))}var i;return n?r(n):(n=U.getNode(),r(n)?Q:(i=U.getStart(),i!=n&&r(i)?Q:J))}function x(e,t){var n,r=[],i={};return n=U.getStart(),V.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&b(n,a,t)&&(i[a]=!0,r.push(a))},V.getRoot()),r}function w(e){var t=f(e),n,r,i,o,a;if(t)for(n=U.getStart(),r=l(n),o=t.length-1;o>=0;o--){if(a=t[o].selector,!a||t[o].defaultBlock)return Q;for(i=r.length-1;i>=0;i--)if(V.is(r[i],a))return Q}return J}function _(e,t,n){var r;return Z||(Z={},r={},a.on("NodeChange",function(e){var t=l(e.element),n={};t=i.grep(t,function(e){return 1==e.nodeType&&!e.getAttribute("data-mce-bogus")}),ot(Z,function(e,i){ot(t,function(o){return b(o,i,{},e.similar)?(r[i]||(ot(e,function(e){e(!0,{node:o,format:i,parents:t})}),r[i]=e),n[i]=e,!1):void 0})}),ot(r,function(i,o){n[o]||(delete r[o],ot(i,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),ot(e.split(","),function(e){Z[e]||(Z[e]=[],Z[e].similar=n),Z[e].push(t)}),this}function E(e){return o.getCssText(a,e)}function N(e,t){return k(e,t.inline)?Q:k(e,t.block)?Q:t.selector?1==e.nodeType&&V.is(e,t.selector):void 0}function k(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function S(e,t){return T(V.getStyle(e,t),t)}function T(e,t){return("color"==t||"backgroundColor"==t)&&(e=V.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function R(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function A(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function B(e,t,n){var r=V.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function D(t,n,r){function i(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=V.getRoot(),3==r.nodeType&&!A(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&j(i))return i;for(o=i[a];o;o=o[a])if(!it(o)&&!A(o)&&!t(o))return i;if(i.parentNode==s){r=i;break}i=i.parentNode}return r}function o(e,t){for(t===et&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function c(e){for(var t=e;t;){if(1===t.nodeType&&tt(t))return"false"===tt(t)?t:e;t=t.parentNode}return e}function u(t,n,i){function o(e,t){var n,o,a=e.nodeValue;return"undefined"==typeof t&&(t=i?a.length:0),i?(n=a.lastIndexOf(" ",t),o=a.lastIndexOf("\xa0",t),n=n>o?n:o,-1===n||r||n++):(n=a.indexOf(" ",t),o=a.indexOf("\xa0",t),n=-1!==n&&(-1===o||o>n)?n:o),n}var s,l,c,u;if(3===t.nodeType){if(c=o(t,n),-1!==c)return{container:t,offset:c};u=t}for(s=new e(t,V.getParent(t,j)||a.getBody());l=s[i?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=o(l),-1!==c)return{container:l,offset:c}}else if(j(l))break;return u?(n=i?0:u.length,{container:u,offset:n}):void 0}function d(e,r){var i,o,a,s;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=l(e),o=0;o<i.length;o++)for(a=0;a<n.length;a++)if(s=n[a],!("collapsed"in s&&s.collapsed!==t.collapsed)&&V.is(i[o],s.selector))return i[o];return e}function f(e,t){var r,i=V.getRoot();if(n[0].wrapper||(r=V.getParent(e,n[0].block,i)),r||(r=V.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=i&&s(e)})),r&&n[0].wrapper&&(r=l(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!j(r[t])&&(r=r[t],!k(r,"br")););return r||e}var p,h,m,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(it(g.parentNode)||it(g))&&(g=it(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(it(y.parentNode)||it(y))&&(y=it(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(m=u(g,v,!0),m&&(g=m.container,v=m.offset),m=u(y,b),m&&(y=m.container,b=m.offset)),h=o(y,b),h.node)){for(;h.node&&0===h.offset&&h.node.previousSibling;)h=o(h.node.previousSibling);h.node&&h.offset>0&&3===h.node.nodeType&&" "===h.node.nodeValue.charAt(h.offset-1)&&h.offset>1&&(y=h.node,y.splitText(h.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=i(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=i())),n[0].selector&&n[0].expand!==J&&!n[0].inline&&(g=d(g,"previousSibling"),y=d(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(j(g)||(g=i(!0)),j(y)||(y=i()))),1==g.nodeType&&(v=K(g),g=g.parentNode),1==y.nodeType&&(b=K(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function L(e,t){return t.links&&"A"==e.tagName}function H(e,t,n,r){var i,o,a;if(!N(n,e)&&!L(n,e))return J;if("all"!=e.remove)for(ot(e.styles,function(i,o){i=T(R(i,t),o),"number"==typeof o&&(o=i,r=0),(e.remove_similar||!r||k(S(r,o),i))&&V.setStyle(n,o,""),a=1}),a&&""===V.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),ot(e.attributes,function(e,i){var o;if(e=R(e,t),"number"==typeof i&&(i=e,r=0),!r||k(V.getAttrib(r,i),e)){if("class"==i&&(e=V.getAttrib(n,i),e&&(o="",ot(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void V.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),X.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),ot(e.classes,function(e){e=R(e,t),(!r||V.hasClass(r,e))&&V.removeClass(n,e)}),o=V.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return J;return"none"!=e.remove?(M(n,e),Q):void 0}function M(e,t){function n(e,t,n){return e=P(e,t,n),!e||"BR"==e.nodeName||j(e)}var r=e.parentNode,i;t.block&&(Y?r==V.getRoot()&&(t.list_block&&k(e,t.list_block)||ot(at(e.childNodes),function(e){q(Y,e.nodeName.toLowerCase())?i?i.appendChild(e):(i=B(e,Y),V.setAttribs(i,a.settings.forced_root_block_attrs)):i=0})):j(e)&&!j(r)&&(n(e,J)||n(e.firstChild,Q,1)||e.insertBefore(V.create("br"),e.firstChild),n(e,Q)||n(e.lastChild,J,1)||e.appendChild(V.create("br")))),t.selector&&t.inline&&!k(t.inline,e)||V.remove(e,1)}function P(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!A(e))return e}function O(e,t){function n(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!it(i))return i}return e}var i,o,a=new r(V);if(e&&t&&(e=n(e,"previousSibling"),t=n(t,"nextSibling"),a.compare(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return V.remove(t),ot(at(t.childNodes),function(t){e.appendChild(t)}),e}return t}function I(t,n){var r,i,o;return r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1==r.nodeType&&(o=r.childNodes.length-1,!n&&i&&i--,r=r.childNodes[i>o?o:i]),3===r.nodeType&&n&&i>=r.nodeValue.length&&(r=new e(r,a.getBody()).next()||r),3!==r.nodeType||n||0!==i||(r=new e(r,a.getBody()).prev()||r),r}function F(t,n,r,i){function o(e){var t=V.create("span",{id:y,"data-mce-bogus":!0,style:C?"color:red":""});return e&&t.appendChild(a.getDoc().createTextNode(G)),t}function l(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==G||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function c(e){for(;e;){if(e.id===y)return e;e=e.parentNode}}function u(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=U.getRng(!0),l(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),V.remove(e)):(n=u(e),n.nodeValue.charAt(0)===G&&(n.deleteData(0,1),r.startContainer==n&&r.startOffset--,r.endContainer==n&&r.endOffset--),V.remove(e,1)),U.setRng(r);else if(e=c(U.getStart()),!e)for(;e=V.get(y);)d(e,!1)}function p(){var e,t,i,a,s,l,d;e=U.getRng(!0),a=e.startOffset,l=e.startContainer,d=l.nodeValue,t=c(U.getStart()),t&&(i=u(t)),d&&a>0&&a<d.length&&/\w/.test(d.charAt(a))&&/\w/.test(d.charAt(a-1))?(s=U.getBookmark(),e.collapse(!0),e=D(e,f(n)),e=$.split(e),g(n,r,e),U.moveToBookmark(s)):(t&&i.nodeValue===G?g(n,r,t):(t=o(!0),i=t.firstChild,e.insertNode(t),a=1,g(n,r,t)),U.setCursorLocation(i,a))}function h(){var e=U.getRng(!0),t,a,l,c,u,d,p=[],h,m;for(t=e.startContainer,a=e.startOffset,u=t,3==t.nodeType&&(a!=t.nodeValue.length&&(c=!0),u=u.parentNode);u;){if(b(u,n,r,i)){d=u;break}u.nextSibling&&(c=!0),p.push(u),u=u.parentNode}if(d)if(c)l=U.getBookmark(),e.collapse(!0),e=D(e,f(n),!0),e=$.split(e),v(n,r,e),U.moveToBookmark(l);else{for(m=o(),u=m,h=p.length-1;h>=0;h--)u.appendChild(V.clone(p[h],!1)),u=u.firstChild;u.appendChild(V.doc.createTextNode(G)),u=u.firstChild;var g=V.getParent(d,s);g&&V.isEmpty(g)?d.parentNode.replaceChild(m,d):V.insertAfter(m,d),U.setCursorLocation(u,1),V.isEmpty(d)&&V.remove(d)}}function m(){var e;e=c(U.getStart()),e&&!V.isEmpty(e)&&st(e,function(e){1!=e.nodeType||e.id===y||V.isEmpty(e)||V.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var y="_mce_caret",C=a.settings.caret_debug;a._hasCaretEvents||(rt=function(){var e=[],t;if(l(c(U.getStart()),e))for(t=e.length;t--;)V.setAttrib(e[t],"data-mce-bogus","1")},nt=function(e){var t=e.keyCode;d(),(8==t||37==t||39==t)&&d(c(U.getStart())),m()},a.on("SetContent",function(e){e.selection&&m()}),a._hasCaretEvents=!0),"apply"==t?p():h()}function z(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=K(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,V.getParent(n,V.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!A(a))return l=V.create("a",{"data-mce-bogus":"all"},G),a.parentNode.insertBefore(l,a),t.setStart(a,0),U.setRng(t),void V.remove(l)}var W={},V=a.dom,U=a.selection,$=new t(V),q=a.schema.isValidChild,j=V.isBlock,Y=a.settings.forced_root_block,K=V.nodeIndex,G="\ufeff",X=/^(src|href|style)$/,J=!1,Q=!0,Z,et,tt=V.getContentEditable,nt,rt,it=n.isBookmarkNode,ot=i.each,at=i.grep,st=i.walk,lt=i.extend;lt(this,{get:f,register:p,apply:g,remove:v,toggle:y,match:C,matchAll:x,matchNode:b,canApply:w,formatChanged:_,getCssText:E}),u(),d(),a.on("BeforeGetContent",function(e){rt&&"raw"!=e.format&&rt()}),a.on("mouseup keydown",function(e){nt&&nt(e)})}}),r(I,[d,u,N],function(e,t,n){var r=t.trim,i;return i=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(t){function o(){var e=t.getContent({format:"raw",no_events:1}),o=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,a,s,l,c,u,d=t.schema;for(e=e.replace(i,""),u=d.getShortEndedElements();c=o.exec(e);)s=o.lastIndex,l=c[0].length,a=u[c[1]]?s:n.findEndTag(d,e,s),e=e.substring(0,s-l)+e.substring(a),o.lastIndex=s-l;return r(e)}function a(e){s.typing=!1,s.add({},e)}var s=this,l=0,c=[],u,d,f=0;return t.on("init",function(){s.add()}),t.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&s.beforeChange()}),t.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&a(e)}),t.on("ObjectResizeStart",function(){s.beforeChange()}),t.on("SaveContent ObjectResized blur",a),t.on("DragEnd",a),t.on("KeyUp",function(n){var r=n.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||n.ctrlKey)&&(a(),t.nodeChanged()),(46==r||8==r||e.mac&&(91==r||93==r))&&t.nodeChanged(),d&&s.typing&&(t.isDirty()||(t.isNotDirty=!c[0]||o()==c[0].content,t.isNotDirty||t.fire("change",{level:c[0],lastLevel:null})),t.fire("TypingUndo"),d=!1,t.nodeChanged())}),t.on("KeyDown",function(e){var t=e.keyCode;return t>=33&&36>=t||t>=37&&40>=t||45==t?void(s.typing&&a(e)):void((16>t||t>20)&&224!=t&&91!=t&&!s.typing&&(s.beforeChange(),s.typing=!0,s.add({},e),d=!0))}),t.on("MouseDown",function(e){s.typing&&a(e)}),t.addShortcut("ctrl+z","","Undo"),t.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),t.on("AddUndo Undo Redo ClearUndos",function(e){e.isDefaultPrevented()||t.nodeChanged()}),s={data:c,typing:!1,beforeChange:function(){f||(u=t.selection.getBookmark(2,!0))},add:function(e,n){var r,i=t.settings,a;if(e=e||{},e.content=o(),f||t.removed)return null;if(a=c[l],t.fire("BeforeAddUndo",{level:e,lastLevel:a,originalEvent:n}).isDefaultPrevented())return null;if(a&&a.content==e.content)return null;if(c[l]&&(c[l].beforeBookmark=u),i.custom_undo_redo_levels&&c.length>i.custom_undo_redo_levels){for(r=0;r<c.length-1;r++)c[r]=c[r+1];c.length--,l=c.length}e.bookmark=t.selection.getBookmark(2,!0),l<c.length-1&&(c.length=l+1),c.push(e),l=c.length-1;var s={level:e,lastLevel:a,originalEvent:n};return t.fire("AddUndo",s),l>0&&(t.isNotDirty=!1,t.fire("change",s)),e},undo:function(){var e;return s.typing&&(s.add(),s.typing=!1),l>0&&(e=c[--l],0===l&&(t.isNotDirty=!0),t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.beforeBookmark),t.fire("undo",{level:e})),e},redo:function(){var e;return l<c.length-1&&(e=c[++l],t.setContent(e.content,{format:"raw"}),t.selection.moveToBookmark(e.bookmark),t.fire("redo",{level:e})),e},clear:function(){c=[],l=0,s.typing=!1,t.fire("ClearUndos")},hasUndo:function(){return l>0||s.typing&&c[0]&&o()!=c[0].content},hasRedo:function(){return l<c.length-1&&!this.typing},transact:function(e){s.beforeChange();try{f++,e()}finally{f--}s.add()}}}}),r(F,[h,x,d],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function f(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function h(e){var t=e,n=[],r;if(t){for(;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||d[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}}function m(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,u;if(t){if(n.ie&&n.ie<9&&A&&A.firstChild&&A.firstChild==A.lastChild&&"BR"==A.firstChild.tagName&&a.remove(A.firstChild),/^(LI|DT|DD)$/.test(t.nodeName)){var f=r(t.firstChild);f&&/^(UL|OL|DL)$/.test(f.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),n.ie||t.normalize(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(d[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!B||9>B)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}}function g(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function v(e){var t=T,n,i,o,s=u.getTextInlineElements();if(e||"TABLE"==P?(n=a.create(e||I),g(n)):n=A.cloneNode(!1),o=n,l.keep_styles!==!1)do if(s[t.nodeName]){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while(t=t.parentNode);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function y(t){var n,r,i;if(3==T.nodeType&&(t?R>0:R<T.nodeValue.length))return!1;if(T.parentNode==A&&F&&!t)return!0;if(t&&1==T.nodeType&&T==A.firstChild)return!0;if("TABLE"===T.nodeName||T.previousSibling&&"TABLE"==T.previousSibling.nodeName)return F&&!t||!F&&t;for(n=new e(T,A),3==T.nodeType&&(t&&0===R?n.prev():t||R!=T.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),d[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function b(e,t){var n,r,o,s,l,c,d=I||"P";if(r=a.getParent(e,a.isBlock),c=i.getBody().nodeName.toLowerCase(),!r||!f(r)){if(r=r||S,!r.hasChildNodes())return n=a.create(d),g(n),r.appendChild(n),N.setStart(n,0),N.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&u.isValidChild(c,d.toLowerCase())){for(n=a.create(d),g(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;N.setStart(e,t),N.setEnd(e,t)}}return e}function C(){function e(e){for(var t=M[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===A}function t(){var e=M.parentNode;return/^(LI|DT|DD)$/.test(e.nodeName)?e:M}var n=M.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(I="LI"),L=I?v(I):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(L,t()):a.replace(L,M):e(!0)?"LI"==n?(a.insertAfter(L,t()),L.appendChild(a.doc.createTextNode(" ")),L.appendChild(M)):M.parentNode.insertBefore(L,M):e()?(a.insertAfter(L,t()),p(L)):(M=t(),k=N.cloneRange(),k.setStartAfter(A),k.setEndAfter(M),H=k.extractContents(),"LI"==I&&"LI"==H.firstChild.nodeName?(L=H.firstChild,a.insertAfter(H,M)):(a.insertAfter(H,M),a.insertAfter(L,M))),a.remove(A),m(L),c.add()}function x(){i.execCommand("InsertLineBreak",!1,o)}function w(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function _(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function E(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(a.getStyle(t,"float",!0)))&&a.add(e,"br"))}var N,k,S,T,R,A,B,D,L,H,M,P,O,I,F;if(N=s.getRng(!0),!o.isDefaultPrevented()){if(!N.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(N),T=N.startContainer,R=N.startOffset,I=(l.force_p_newlines?"p":"")||l.forced_root_block,I=I?I.toUpperCase():"",B=a.doc.documentMode,D=o.shiftKey,1==T.nodeType&&T.hasChildNodes()&&(F=R>T.childNodes.length-1,T=T.childNodes[Math.min(R,T.childNodes.length-1)]||T,R=F&&3==T.nodeType?T.nodeValue.length:0),S=_(T)){if(c.beforeChange(),!a.isBlock(S)&&S!=a.getRoot())return void((!I||D)&&x());if((I&&!D||!I&&D)&&(T=b(T,R)),A=a.getParent(T,a.isBlock),M=A?a.getParent(A.parentNode,a.isBlock):null,P=A?A.nodeName.toUpperCase():"",O=M?M.nodeName.toUpperCase():"","LI"!=O||o.ctrlKey||(A=M,P=O),/^(LI|DT|DD)$/.test(P)){if(!I&&D)return void x();if(a.isEmpty(A))return void C()}if("PRE"==P&&l.br_in_pre!==!1){if(!D)return void x()}else if(!I&&!D&&"LI"!=P||I&&D)return void x();I&&A===i.getBody()||(I=I||"P",y()?(L=/^(H[1-6]|PRE|FIGURE)$/.test(P)&&"HGROUP"!=O?v(I):v(),l.end_container_on_empty_block&&f(M)&&a.isEmpty(A)?L=a.split(M,A):a.insertAfter(L,A),m(L)):y(!0)?(L=A.parentNode.insertBefore(v(),A),p(L),m(A)):(k=N.cloneRange(),k.setEndAfter(A),H=k.extractContents(),w(H),L=H.firstChild,a.insertAfter(H,A),h(L),E(A),m(L)),a.setAttrib(L,"id",""),i.fire("NewBlock",{newBlock:L}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(z,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,h,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",m),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",m)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){h=t,t=t.nextSibling,r.remove(h);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t),g=!0),h=t,t=t.nextSibling,p.appendChild(h)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(W,[T,d,u,M,x,h],function(e,n,r,i,o,a){var s=r.each,l=r.extend,c=r.map,u=r.inArray,d=r.explode,f=n.gecko,p=n.ie,h=n.ie&&n.ie<11,m=!0,g=!1;return function(r){function v(e,t,n){var r;return e=e.toLowerCase(),(r=T.exec[e])?(r(e,t,n),m):g}function y(e){var t;return e=e.toLowerCase(),(t=T.state[e])?t(e):-1}function b(e){var t;return e=e.toLowerCase(),(t=T.value[e])?t(e):g}function C(e,t){t=t||"exec",s(e,function(e,n){s(n.toLowerCase().split(","),function(n){T[t][n]=e})})}function x(e,n,i){return n===t&&(n=g),i===t&&(i=null),r.getDoc().execCommand(e,n,i)}function w(e){return A.match(e)}function _(e,n){A.toggle(e,n?{value:n}:t),r.nodeChanged()}function E(e){B=S.getBookmark(e)}function N(){S.moveToBookmark(B)}var k=r.dom,S=r.selection,T={state:{},exec:{},value:{}},R=r.settings,A=r.formatter,B;l(this,{execCommand:v,queryCommandState:y,queryCommandValue:b,addCommands:C}),C({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){r.undoManager.add()},"Cut,Copy,Paste":function(e){var t=r.getDoc(),i;try{x(e)}catch(o){i=m}if(i||!t.queryCommandSupported(e)){var a=r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");n.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),r.windowManager.alert(a)}},unlink:function(){if(S.isCollapsed()){var e=S.getNode();return void("A"==e.tagName&&r.dom.remove(e,!0))}A.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),s("left,center,right,justify".split(","),function(e){t!=e&&A.remove("align"+e)}),_("align"+t),v("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;x(e),t=k.getParent(S.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(E(),k.split(n,t),N()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){_(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){_(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=d(R.font_size_style_values),r=d(R.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),_(e,n)},RemoveFormat:function(e){A.remove(e)},mceBlockQuote:function(){_("blockquote")},FormatBlock:function(e,t,n){return _(n||"p")},mceCleanup:function(){var e=S.getBookmark();r.setContent(r.getContent({cleanup:m}),{cleanup:m}),S.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var i=n||S.getNode();i!=r.getBody()&&(E(),r.dom.remove(i,m),N())},mceSelectNodeDepth:function(e,t,n){var i=0;k.getParent(S.getNode(),function(e){return 1==e.nodeType&&i++==n?(S.select(e),g):void 0},r.getBody())},mceSelectNode:function(e,t,n){S.select(n)},mceInsertContent:function(t,n,o){function a(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=S.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^&nbsp;/," "):t("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),i<r.length?e=e.replace(/&nbsp;(<br>|)$/," "):t("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}function l(e){if(w)for(b=e.firstChild;b;b=b.walk(!0))_[b.name]&&b.attr("data-mce-new","true")}function c(){if(w){var e=r.getBody(),t=new i(k);s(k.select("*[data-mce-new]"),function(n){n.removeAttribute("data-mce-new");for(var r=n.parentNode;r&&r!=e;r=r.parentNode)t.compare(r,n)&&k.remove(n,!0)})}}var u,d,f,h,m,g,v,y,b,C,x,w,_=r.schema.getTextInlineElements();"string"!=typeof o&&(w=o.merge,o=o.content),/^ | $/.test(o)&&(o=a(o)),u=r.parser,d=new e({},r.schema),x='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#x200B;</span>',g={content:o,format:"html",selection:!0},r.fire("BeforeSetContent",g),o=g.content,-1==o.indexOf("{$caret}")&&(o+="{$caret}"),o=o.replace(/\{\$caret\}/,x),y=S.getRng();var E=y.startContainer||(y.parentElement?y.parentElement():null),N=r.getBody();E===N&&S.isCollapsed()&&k.isBlock(N.firstChild)&&k.isEmpty(N.firstChild)&&(y=k.createRng(),y.setStart(N.firstChild,0),y.setEnd(N.firstChild,0),S.setRng(y)),S.isCollapsed()||r.getDoc().execCommand("Delete",!1,null),f=S.getNode();var T={context:f.nodeName.toLowerCase()};if(m=u.parse(o,T),l(m),b=m.lastChild,"mce_marker"==b.attr("id"))for(v=b,b=b.prev;b;b=b.walk(!0))if(3==b.type||!k.isBlock(b.name)){r.schema.isValidChild(b.parent.name,"span")&&b.parent.insert(v,b,"br"===b.name);
+break}if(T.invalid){for(S.setContent(x),f=S.getNode(),h=r.getBody(),9==f.nodeType?f=b=h:b=f;b!==h;)f=b,b=b.parentNode;o=f==h?h.innerHTML:k.getOuterHTML(f),o=d.serialize(u.parse(o.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return d.serialize(m)}))),f==h?k.setHTML(h,o):k.setOuterHTML(f,o)}else o=d.serialize(m),b=f.firstChild,C=f.lastChild,!b||b===C&&"BR"===b.nodeName?k.setHTML(f,o):S.setContent(o);c(),v=k.get("mce_marker"),S.scrollIntoView(v),y=k.createRng(),b=v.previousSibling,b&&3==b.nodeType?(y.setStart(b,b.nodeValue.length),p||(C=v.nextSibling,C&&3==C.nodeType&&(b.appendData(C.data),C.parentNode.removeChild(C)))):(y.setStartBefore(v),y.setEndBefore(v)),k.remove(v),S.setRng(y),r.fire("SetContent",g),r.addVisual()},mceInsertRawHTML:function(e,t,n){S.setContent("tiny_mce_marker"),r.setContent(r.getContent().replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){_(n)},mceSetContent:function(e,t,n){r.setContent(n)},"Indent,Outdent":function(e){var t,n,i;t=R.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),y("InsertUnorderedList")||y("InsertOrderedList")?x(e):(R.forced_root_block||k.getParent(S.getNode(),k.isBlock)||A.apply("div"),s(S.getSelectedBlocks(),function(o){if("LI"!=o.nodeName){var a=r.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==k.getStyle(o,"direction",!0)?"Right":"Left","outdent"==e?(i=Math.max(0,parseInt(o.style[a]||0,10)-t),k.setStyle(o,a,i?i+n:"")):(i=parseInt(o.style[a]||0,10)+t+n,k.setStyle(o,a,i))}}))},mceRepaint:function(){if(f)try{E(m),S.getSel()&&S.getSel().selectAllChildren(r.getBody()),S.collapse(m),N()}catch(e){}},InsertHorizontalRule:function(){r.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){r.hasVisual=!r.hasVisual,r.addVisual()},mceReplaceContent:function(e,t,n){r.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,S.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=k.getParent(S.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||A.remove("link"),n.href&&A.apply("link",n,r)},selectAll:function(){var e=k.getRoot(),t;S.getRng().setStart?(t=k.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),S.setRng(t)):(t=S.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){x("Delete");var e=r.getBody();k.isEmpty(e)&&(r.setContent(""),e.firstChild&&k.isBlock(e.firstChild)?r.selection.setCursorLocation(e.firstChild,0):r.selection.setCursorLocation(e,0))},mceNewDocument:function(){r.setContent("")},InsertLineBreak:function(e,t,n){function i(){for(var e=new a(p,v),t,n=r.schema.getNonEmptyElements();t=e.next();)if(n[t.nodeName.toLowerCase()]||t.length>0)return!0}var s=n,l,c,u,d=S.getRng(!0);new o(k).normalize(d);var f=d.startOffset,p=d.startContainer;if(1==p.nodeType&&p.hasChildNodes()){var g=f>p.childNodes.length-1;p=p.childNodes[Math.min(f,p.childNodes.length-1)]||p,f=g&&3==p.nodeType?p.nodeValue.length:0}var v=k.getParent(p,k.isBlock),y=v?v.nodeName.toUpperCase():"",b=v?k.getParent(v.parentNode,k.isBlock):null,C=b?b.nodeName.toUpperCase():"",x=s&&s.ctrlKey;"LI"!=C||x||(v=b,y=C),p&&3==p.nodeType&&f>=p.nodeValue.length&&(h||i()||(l=k.create("br"),d.insertNode(l),d.setStartAfter(l),d.setEndAfter(l),c=!0)),l=k.create("br"),d.insertNode(l);var w=k.doc.documentMode;return h&&"PRE"==y&&(!w||8>w)&&l.parentNode.insertBefore(k.doc.createTextNode("\r"),l),u=k.create("span",{},"&nbsp;"),l.parentNode.insertBefore(u,l),S.scrollIntoView(u),k.remove(u),c?(d.setStartBefore(l),d.setEndBefore(l)):(d.setStartAfter(l),d.setEndAfter(l)),S.setRng(d),r.undoManager.add(),m}}),C({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=S.isCollapsed()?[k.getParent(S.getNode(),k.isBlock)]:S.getSelectedBlocks(),r=c(n,function(e){return!!A.matchNode(e,t)});return-1!==u(r,m)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return w(e)},mceBlockQuote:function(){return w("blockquote")},Outdent:function(){var e;if(R.inline_styles){if((e=k.getParent(S.getStart(),k.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return m;if((e=k.getParent(S.getEnd(),k.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return m}return y("InsertUnorderedList")||y("InsertOrderedList")||!R.inline_styles&&!!k.getParent(S.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=k.getParent(S.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),C({"FontSize,FontName":function(e){var t=0,n;return(n=k.getParent(S.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),C({Undo:function(){r.undoManager.undo()},Redo:function(){r.undoManager.redo()}})}}),r(V,[u],function(e){function t(e,o){var a=this,s,l;if(e=r(e),o=a.settings=o||{},s=o.base_uri,/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(a.source=e);var c=0===e.indexOf("//");0!==e.indexOf("/")||c||(e=(s?s.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(l=o.base_uri?o.base_uri.path:new t(location.href).directory,""===o.base_uri.protocol?e="//mce_host"+a.toAbsPath(l,e):(e=/([^#?]*)([#?]?.*)/.exec(e),e=(s&&s.protocol||"http")+"://mce_host"+a.toAbsPath(l,e[1])+e[2])),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(i,function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),a[t]=r}),s&&(a.protocol||(a.protocol=s.protocol),a.userInfo||(a.userInfo=s.userInfo),a.port||"mce_host"!==a.host||(a.port=s.port),a.host&&"mce_host"!==a.host||(a.host=s.host),a.source=""),c&&(a.protocol="")}var n=e.each,r=e.trim,i="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),o={ftp:21,http:80,https:443,mailto:25};return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(n&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=o[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(U,[u],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r($,[u],function(e){function t(e){function t(){return!1}function n(){return!0}function r(r,i){var a,s,l,d;if(r=r.toLowerCase(),i=i||{},i.type=r,i.target||(i.target=c),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=n},i.stopPropagation=function(){i.isPropagationStopped=n},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=n},i.isDefaultPrevented=t,i.isPropagationStopped=t,i.isImmediatePropagationStopped=t),e.beforeFire&&e.beforeFire(i),a=u[r])for(s=0,l=a.length;l>s;s++){if(a[s]=d=a[s],d.once&&o(r,d),i.isImmediatePropagationStopped())return i.stopPropagation(),i;if(d.call(c,i)===!1)return i.preventDefault(),i}return i}function i(e,n,r){var i,o,a;if(n===!1&&(n=t),n)for(o=e.toLowerCase().split(" "),a=o.length;a--;)e=o[a],i=u[e],i||(i=u[e]=[],d(e,!0)),r?i.unshift(n):i.push(n);return l}function o(e,t){var n,r,i,o,a;if(e)for(o=e.toLowerCase().split(" "),n=o.length;n--;){if(e=o[n],r=u[e],!e){for(i in u)d(i,!1),delete u[i];return l}if(r){if(t)for(a=r.length;a--;)r[a]===t&&(r=r.slice(0,a).concat(r.slice(a+1)),u[e]=r);else r.length=0;r.length||(d(e,!1),delete u[e])}}else{for(e in u)d(e,!1);u={}}return l}function a(e,t,n){return t.once=!0,i(e,t,n)}function s(e){return e=e.toLowerCase(),!(!u[e]||0===u[e].length)}var l=this,c,u={},d;e=e||{},c=e.scope||l,d=e.toggleEvent||t,l.fire=r,l.on=i,l.off=o,l.once=a,l.has=s}var n=e.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchend"," ");return t.isNative=function(e){return!!n[e.toLowerCase()]},t}),r(q,[U],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.psuedo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,p,h;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,h=e,p=0,i=o-1;i>=0;i--)for(c=a[i];h;){if(c.psuedo)for(f=h.parent().items(),u=d=f.length;u--&&f[u]!==h;);for(s=0,l=c.length;l>s;s++)if(!c[s](h,u,d)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;h=h.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(j,[u,q,U],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(Y,[u,y],function(e,t){var n=0;return{id:function(){return"mceu_"+n++},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(K,[U,u,$,j,Y],function(e,t,n,r,i){function o(e){return e._eventDispatcher||(e._eventDispatcher=new n({scope:e,toggleEvent:function(t,r){r&&n.isNative(t)&&(e._nativeEvents||(e._nativeEvents={}),e._nativeEvents[t]=!0,e._rendered&&e.bindPendingEvents())}})),e._eventDispatcher}var a="onmousewheel"in document,s=!1,l="mce-",c=e.extend({Statics:{classPrefix:l},isRtl:function(){return c.rtl},classPrefix:l,init:function(e){var n=this,r,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=e.id||i.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},this._elmCache={},r=e.classes)for(r=r.split(" "),r.map={},o=r.length;o--;)r.map[r[o]]=!0;n._classes=r||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,r,o=e.getEl(),a,s,l,c,u,d,f,p;n=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),p=i.getSize(o),d=t.minWidth,f=t.minHeight,l=d||p.width,c=f||p.height,a=t.width,s=t.height,u=t.autoResize,u="undefined"!=typeof u?u:!a&&!s,a=a||l,s=s||c;var h=n.left+n.right,m=n.top+n.bottom,g=t.maxWidth||65535,v=t.maxHeight||65535;return e._layoutRect=r={x:t.x||0,y:t.y||0,w:a,h:s,deltaW:h,deltaH:m,contentW:a-h,contentH:s-m,innerW:a-h,innerH:s-m,startMinWidth:d||0,startMinHeight:f||0,minW:Math.min(l,g),minH:Math.min(c,v),maxW:g,maxH:v,autoResize:u,scrollW:0},e._lastLayoutRect={},r},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(l=c.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s,l;l=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=l(r.x)+"px",s.x=r.x),r.y!==s.y&&(t.top=l(r.y)+"px",s.y=r.y),r.w!==s.w&&(t.width=l(r.w-o)+"px",s.w=r.w),r.h!==s.h&&(t.height=l(r.h-a)+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=l(r.innerW)+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=l(r.innerH)+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return"string"!=typeof e?e:function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this;return o(r).on(e,n(t)),r},off:function(e,t){return o(this).off(e,t),this},fire:function(e,t,n){var r=this;if(t=t||{},t.control||(t.control=r),t=o(r).fire(e,t),n!==!1&&r.parent)for(var i=r.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return o(this).has(e)},parents:function(e){var t=this,n,i=new r;for(n=t.parent();n;n=n.parent())i.add(n);return e&&(i=i.filter(e)),i},parentsAndSelf:function(e){return new r(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return i.innerHtml(this.getEl(),e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=i.get(t)),this._elmCache[t]},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return c.translate?c.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),r,o;if(e.items){var a=e.items().toArray();for(o=a.length;o--;)a[o].remove()}n&&n.items&&(r=[],n.items().each(function(t){t!==e&&r.push(t)}),n.items().set(r),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&i.off(t);var s=e.getRoot().controlIdLookup;return s&&delete s[e._id],t&&t.parentNode&&t.parentNode.removeChild(t),e._rendered=!1,e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(i.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(i.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,r,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||i.css(e.getEl(),"display","none"),e.settings.border&&(r=e.borderBox(),i.css(e.getEl(),{"border-top-width":r.top,"border-right-width":r.right,"border-bottom-width":r.bottom,"border-left-width":r.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r<s.length&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;i<a.length;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function r(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,l,c,u,d,f,p;if(o._rendered=!0,f=o._nativeEvents){for(u=o.parents().toArray(),u.unshift(o),l=0,c=u.length;!d&&c>l;l++)d=u[l]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=l,l=0;c>l;l++)u[l]._eventsRoot=d;var h=d._delegates;h||(h=d._delegates={});for(p in f){if(!f)return!1;"wheel"!==p||s?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(i.on(d.getEl(),"mouseleave",t),i.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):h[p]||(i.on(d.getEl(),p,e),h[p]=!0),f[p]=!1):a?i.on(o.getEl(),"mousewheel",r):i.on(o.getEl(),"DOMMouseScroll",r)}}},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){return this.repaint(),this}});return c}),r(G,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(X,[],function(){return function(e){function t(e){return e=e||b,e&&e.getAttribute("role")}function n(e){for(var n,r=e||b;r=r.parentNode;)if(n=t(r))return n}function r(e){var t=b;return t?t.getAttribute("aria-"+e):void 0}function i(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t}function o(e){return i(e)&&!e.hidden?!0:/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(t(e))?!0:!1}function a(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){o(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||y.getEl()),n}function s(e){var t,n;e=e||C,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function l(e){var t=s(e),n=a(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?c(t.lastAriaIndex,n):c(0,n)}function c(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function u(e,t){var n=-1,r=s();t=t||a(r.getEl());for(var i=0;i<t.length;i++)t[i]===b&&(n=i);n+=e,r.lastAriaIndex=c(n,t)}function d(){var e=n();"tablist"==e?u(-1,a(b.parentNode)):C.parent().submenu?g():u(-1)}function f(){var e=t(),i=n();"tablist"==i?u(1,a(b.parentNode)):"menuitem"==e&&"menu"==i&&r("haspopup")?v():u(1)}function p(){u(-1)}function h(){var e=t(),i=n();"menuitem"==e&&"menubar"==i?v():"button"==e&&r("haspopup")?v({key:"down"}):u(1)}function m(e){var t=n();if("tablist"==t){var r=a(C.getEl("body"))[0];r&&r.focus()}else u(e.shiftKey?-1:1)}function g(){C.fire("cancel")}function v(e){e=e||{},C.fire("click",{target:b,aria:e})}var y=e.root,b,C;try{b=document.activeElement}catch(x){b=document.body}return C=y.getParentCtrl(b),y.on("keydown",function(e){function t(e,t){i(b)||t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,d);break;case 39:t(e,f);break;case 38:t(e,p);break;case 40:t(e,h);break;case 27:g();break;case 14:case 13:case 32:t(e,v);break;case 9:m(e)!==!1&&e.preventDefault()}}),y.on("focusin",function(e){b=e.target,C=e.control}),{focusFirst:l}}}),r(J,[K,j,q,G,X,u,Y],function(e,t,n,r,i,o,a){var s={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var n=this;n._super(e),e=n.settings,n._fixed=e.fixed,n._items=new t,n.isRtl()&&n.addClass("rtl"),n.addClass("container"),n.addClass("container-body","body"),e.containerCls&&n.addClass(e.containerCls),n._layout=r.create((e.layout||n.layout)+"layout"),n.settings.items&&n.add(n.settings.items),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=s[e]=s[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},preRender:function(){},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();
+"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(Q,[Y],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,u,d,f;r=r||{},l=function(n){var l=t(),p,h;n.preventDefault(),s=n.button,p=i(),d=n.screenX,f=n.screenY,h=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,cursor:h}),a.body.appendChild(o),e.on(a,"mousemove",u),e.on(a,"mouseup",c),r.start(n)},u=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-d,e.deltaY=e.screenY-f,e.preventDefault(),void r.drag(e))},c=function(t){e.off(a,"mousemove",u),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r(Z,[Y,Q],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,p,h,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return void e.css(f,"display","none");e.css(f,"display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),h=d["client"+s]-2*o,h-=n&&r?f["client"+u]:0,m=d["scroll"+s],g=h/m,v={},v[y]=d["offset"+a]+o,v[b]=h,e.css(f,v),v={},v[y]=d["scroll"+a]*g,v[b]=h*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;i.getEl().appendChild(e.createFragment('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+u+'t" class="'+d+'scrollbar-thumb"></div></div>')),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var t,u,d,f,p=i.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(u),d+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(et,[J,Z],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(tt,[Y],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,c=p.height,p=e.getSize(n),u=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this._fixed){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(nt,[Y],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(rt,[et,tt,nt,Y],function(e,t,n,r){function i(){function e(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}c||(c=function(t){if(2!=t.button)for(var n=f.length;n--;){var r=f[n],i=r.getParentCtrl(t.target);if(r.settings.autohide){if(i&&(e(i,r)||r.parent()===i))continue;t=r.fire("autohide",{target:t.target}),t.isDefaultPrevented()||r.hide()}}},r.on(document,"click",c))}function o(){u||(u=function(){var e;for(e=f.length;e--;)s(f[e])},r.on(window,"scroll",u))}function a(){if(!d){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;d=function(){document.all&&t==e.clientWidth&&n==e.clientHeight||(t=e.clientWidth,n=e.clientHeight,m.hideAll())},r.on(window,"resize",d)}}function s(e){function t(t,n){for(var r,i=0;i<f.length;i++)if(f[i]!=e)for(r=f[i].parent();r&&(r=r.parent());)r==e&&f[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e._fixed?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}function l(e){var t;for(t=f.length;t--;)f[t]===e&&f.splice(t,1);for(t=p.length;t--;)p[t]===e&&p.splice(t,1)}var c,u,d,f=[],p=[],h,m=e.extend({Mixins:[t,n],init:function(e){function t(){var e,t=m.zIndex||65535,i;if(p.length)for(e=0;e<p.length;e++)p[e].modal&&(t++,i=p[e]),p[e].getEl().style.zIndex=t,p[e].zIndex=t,t++;var o=document.getElementById(n.classPrefix+"modal-block");i?r.css(o,"z-index",i.zIndex-1):o&&(o.parentNode.removeChild(o),h=!1),m.currentZIndex=t}var n=this;n._super(e),n._eventsRoot=n,n.addClass("floatpanel"),e.autohide&&(i(),a(),f.push(n)),e.autofix&&(o(),n.on("move",function(){s(this)})),n.on("postrender show",function(e){if(e.control==n){var i,o=n.classPrefix;n.modal&&!h&&(i=r.createFragment('<div id="'+o+'modal-block" class="'+o+"reset "+o+'fade"></div>'),i=i.firstChild,n.getContainerElm().appendChild(i),setTimeout(function(){r.addClass(i,o+"in"),r.addClass(n.getEl(),o+"in")},0),h=!0),p.push(n),t()}}),n.on("close hide",function(e){if(e.control==n){for(var r=p.length;r--;)p[r]===n&&p.splice(r,1);t()}}),n.on("show",function(){n.parents().each(function(e){return e._fixed?(n.fixed(!0),!1):void 0})}),e.popover&&(n._preBodyHtml='<div class="'+n.classPrefix+'arrow"></div>',n.addClass("popover").addClass("bottom").addClass(n.isRtl()?"end":"start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=f.length;t--&&f[t]!==e;);return-1===t&&f.push(e),n},hide:function(){return l(this),this._super()},hideAll:function(){m.hideAll()},close:function(){var e=this;return e.fire("close"),e.remove()},remove:function(){l(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return m.hideAll=function(){for(var e=f.length;e--;){var t=f[e];t&&t.settings.autohide&&(t.hide(),f.splice(e,1))}},m}),r(it,[rt,et,Y,Q],function(e,t,n,r){var i=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.addClass("rtl"),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close()}),n.on("cancel",function(){n.close()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=Math.max(0,a.w/2-t.w/2),t.y=Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><button type="button" class="'+r+'close" aria-hidden="true">\xd7</button><div id="'+n+'-dragh" class="'+r+'dragh"></div></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes()+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.classes("body")+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.addClass("in")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new r(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t=e.classPrefix;e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),e._fullscreen&&(n.removeClass(document.documentElement,t+"fullscreen"),n.removeClass(document.body,t+"fullscreen"))},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return i}),r(ot,[it],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){function r(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),o(t)}}}var i,o=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:i=[r("Ok",!0,!0),r("Cancel",!1)];break;case t.YES_NO:case t.YES_NO_CANCEL:i=[r("Yes",1,!0),r("No",0)],n.buttons==t.YES_NO_CANCEL&&i.push(r("Cancel",-1));break;default:i=[r("Ok",!0,!0)]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:i,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){o(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(at,[it,ot],function(e,t){return function(n){function r(){return o.length?o[o.length-1]:void 0}var i=this,o=[];i.windows=o,n.on("remove",function(){for(var e=o.length;e--;)o[e].close()}),i.open=function(t,r){var i;return n.editorManager.setActive(n),t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),i=new e(t),o.push(i),i.on("close",function(){for(var e=o.length;e--;)o[e]===i&&o.splice(e,1);n.focus()}),t.data&&i.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),i.features=t||{},i.params=r||{},n.nodeChanged(),i.renderTo().reflow()},i.alert=function(e,r,i){t.alert(e,function(){r?r.call(i||this):n.focus()})},i.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},i.close=function(){r()&&r().close()},i.getParams=function(){return r()?r().params:null},i.setParams=function(e){r()&&(r().params=e)},i.getWindows=function(){return o}}}),r(st,[B,x,_,g,d,u],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function u(){function t(e){var t=new i(function(){});o.each(a.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&a.dom.setAttrib(e,"style",a.dom.getAttrib(e,"style"))}),t.observe(a.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null);var n=a.selection.getRng(),r=n.startContainer.parentNode;o.each(t.takeRecords(),function(e){if(q.isChildOf(e.target,a.getBody())){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}o.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),q.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),a.selection.setRng(n))}})}}),t.disconnect(),o.each(a.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")})}var n=a.getDoc(),r="data:text/mce-internal,",i=window.MutationObserver,s,l;i||(s=!0,i=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMSubtreeModified",e,!1),r.removeEventListener("DOMNodeInsertedIntoDocument",e,!1),r.removeEventListener("DOMNodeInserted",e,!1),r.removeEventListener("DOMAttrModified",t,!1)},this.takeRecords=function(){return n}}),a.on("keydown",function(n){var r=n.keyCode==$,i=e.metaKeyPressed(n);if(!c(n)&&(r||n.keyCode==U)){var o=a.selection.getRng(),s=o.startContainer,l=o.startOffset;if(!i&&o.collapsed&&3==s.nodeType&&(r?l<s.data.length:l>0))return;n.preventDefault(),i&&a.selection.getSel().modify("extend",r?"forward":"backward","word"),t(r)}}),a.on("keypress",function(n){c(n)||j.isCollapsed()||!n.charCode||e.metaKeyPressed(n)||(n.preventDefault(),t(!0),a.selection.setContent(String.fromCharCode(n.charCode)))}),a.addCommand("Delete",function(){t()}),a.addCommand("ForwardDelete",function(){t(!0)}),s||(a.on("dragstart",function(e){var t;a.selection.isCollapsed()&&"IMG"==e.target.tagName&&j.select(e.target),l=j.getRng(),t=a.selection.getContent(),t.length>0&&e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(t))}),a.on("drop",function(e){if(!c(e)){var i=e.dataTransfer.getData("URL");if(!i||-1==i.indexOf(r)||!n.caretRangeFromPoint)return;i=unescape(i.substr(r.length)),n.caretRangeFromPoint&&(e.preventDefault(),window.setTimeout(function(){var r=n.caretRangeFromPoint(e.x,e.y);l&&(j.setRng(l),l=null),t(),j.setRng(r),a.insertContent(i)},0))}}),a.on("cut",function(e){!c(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",a.selection.getContent()),e.clipboardData.setData("text/plain",a.selection.getContent({format:"text"})),t(!0))}))}function d(){function e(e){var t=q.create("body"),n=e.cloneContents();return t.appendChild(n),j.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(a.getBody()),t.compareRanges(n,r)}var i=e(n),o=q.createRng();o.selectNode(a.getBody());var s=e(o);return i===s}a.on("keydown",function(e){var t=e.keyCode,r,i;if(!c(e)&&(t==$||t==U)){if(r=a.selection.isCollapsed(),i=a.getBody(),r&&!q.isEmpty(i))return;if(!r&&!n(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),i.firstChild&&q.isBlock(i.firstChild)?a.selection.setCursorLocation(i.firstChild,0):a.selection.setCursorLocation(i,0),a.nodeChanged()}})}function f(){a.on("keydown",function(t){!c(t)&&65==t.keyCode&&e.metaKeyPressed(t)&&(t.preventDefault(),a.execCommand("SelectAll"))})}function p(){a.settings.content_editable||(q.bind(a.getDoc(),"focusin",function(){j.setRng(j.getRng())}),q.bind(a.getDoc(),"mousedown",function(e){e.target==a.getDoc().documentElement&&(a.getBody().focus(),j.setRng(j.getRng()))}))}function h(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===U){if(!a.getBody().getElementsByTagName("hr").length)return;if(j.isCollapsed()&&0===j.getRng(!0).startOffset){var t=j.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return q.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(q.remove(n),e.preventDefault())}}})}function m(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&(e.preventDefault(),j.getSel().setBaseAndExtent(t,0,t,1),a.nodeChanged()),"A"==t.nodeName&&q.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),j.select(t))})}function v(){function e(){var e=q.getAttribs(j.getStart().cloneNode(!1));return function(){var t=j.getStart();t!==a.getBody()&&(q.setAttrib(t,"style",null),V(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!j.isCollapsed()&&q.getParent(j.getStart(),q.isBlock)!=q.getParent(j.getEnd(),q.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),q.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){document.body.setAttribute("role","application")}function b(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===U&&j.isCollapsed()&&0===j.getRng(!0).startOffset){var t=j.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function C(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),q.addClass(a.getBody(),"mceHideBrInPre"),K.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),G.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function x(){q.bind(a.getBody(),"mouseup",function(){var e,t=j.getNode();"IMG"==t.nodeName&&((e=q.getStyle(t,"width"))&&(q.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),q.setStyle(t,"width","")),(e=q.getStyle(t,"height"))&&(q.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),q.setStyle(t,"height","")))})}function w(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=j.getRng(),r=n.startContainer,i=n.startOffset,o=q.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=q.createRng(),n.setStart(r,0),n.setEnd(r,0),j.setRng(n))}})}function _(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),Y.object_resizing||s("enableObjectResizing",!1)}Y.readonly||a.on("BeforeExecCommand MouseDown",e)}function E(){function e(){V(q.select("a"),function(e){var t=e.parentNode,n=q.getRoot();if(t.lastChild===e){for(;t&&!q.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}q.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function N(){Y.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",Y.forced_root_block)})}function k(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function S(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=U||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),q.remove(t.item(0)),a.undoManager.add()))})}function T(){var e;l()>=10&&(e="",V("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function R(){l()<9&&(K.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),G.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function A(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),q.unbind(r,"mouseup",n),q.unbind(r,"mousemove",t),a=o=0}var r=q.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,q.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(q.bind(r,"mouseup",n),q.bind(r,"mousemove",t),q.getRoot().focus(),a.select())}})}function B(){a.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||j.normalize()},!0)}function D(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function L(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}function H(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){"HTML"==e.target.nodeName&&(a.getBody().focus(),a.selection.normalize(),a.nodeChanged())}))}function M(){i.mac&&a.on("keydown",function(t){!e.metaKeyPressed(t)||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),a.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","word"))})}function P(){s("AutoUrlDetect",!1)}function O(){a.inline||a.on("focus blur beforegetcontent",function(){var e=a.dom.create("br");a.getBody().appendChild(e),e.parentNode.removeChild(e)},!0)}function I(){a.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function F(){a.on("touchstart",function(e){var t,n,r,i;t=e.target,n=(new Date).getTime(),i=e.changedTouches,!i||i.length>1||(r=i[0],a.once("touchend",function(e){var i=e.changedTouches[0],o;(new Date).getTime()-n>500||Math.abs(r.clientX-i.clientX)>5||Math.abs(r.clientY-i.clientY)>5||(o={target:t},V("pageX pageY clientX clientY screenX screenY".split(" "),function(e){o[e]=i[e]}),o=a.fire("click",o),o.isDefaultPrevented()||a.selection.placeCaretAt(i.clientX,i.clientY))}))})}function z(){a.on("init",function(){a.dom.bind(a.getBody(),"submit",function(e){e.preventDefault()})})}function W(){K.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"==e[t].attr("class")&&e[t].remove()})}var V=o.each,U=e.BACKSPACE,$=e.DELETE,q=a.dom,j=a.selection,Y=a.settings,K=a.parser,G=a.serializer,X=i.gecko,J=i.ie,Q=i.webkit;w(),d(),B(),Q&&(u(),p(),g(),N(),z(),b(),W(),F(),i.iOS?(L(),H(),I()):f()),J&&i.ie<11&&(h(),y(),C(),x(),S(),T(),R(),A()),i.ie>=11&&(H(),O(),b()),i.ie&&(f(),P()),X&&(h(),m(),v(),_(),E(),k(),D(),M(),b())}}),r(lt,[$],function(e){function t(t){return t._eventDispatcher||(t._eventDispatcher=new e({scope:t,toggleEvent:function(n,r){e.isNative(n)&&t.toggleNativeEvent&&t.toggleNativeEvent(n,r)}})),t._eventDispatcher}return{fire:function(e,n,r){var i=this;if(i.removed&&"remove"!==e)return n;if(n=t(i).fire(e,n,r),r!==!1&&i.parent)for(var o=i.parent();o&&!n.isPropagationStopped();)o.fire(e,n,!1),o=o.parent();return n},on:function(e,n,r){return t(this).on(e,n,r)},off:function(e,n){return t(this).off(e,n)},once:function(e,n){return t(this).once(e,n)},hasEventListeners:function(e){return t(this).has(e)}}}),r(ct,[lt,y,u],function(e,t,n){function r(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=o.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()}function i(e,t){var n=r(e,t),i;if(e.delegates||(e.delegates={}),!e.delegates[t])if(e.settings.event_root){if(a||(a={},e.editorManager.on("removeEditor",function(){var t;if(!e.editorManager.activeEditor&&a){for(t in a)e.dom.unbind(r(e,t));a=null}})),a[t])return;i=function(n){for(var r=n.target,i=e.editorManager.editors,a=i.length;a--;){var s=i[a].getBody();(s===r||o.isChildOf(r,s))&&(i[a].hidden||i[a].fire(t,n))}},a[t]=i,o.bind(n,t,i)}else i=function(n){e.hidden||e.fire(t,n)},o.bind(n,t,i),e.delegates[t]=i}var o=t.DOM,a,s={bindPendingEventDelegates:function(){var e=this;n.each(e._pendingNativeEvents,function(t){i(e,t)})},toggleNativeEvent:function(e,t){var n=this;n.settings.readonly||"focus"!=e&&"blur"!=e&&(t?n.initialized?i(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(r(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e=this,t;if(e.delegates){for(t in e.delegates)e.dom.unbind(r(e,t),t,e.delegates[t]);delete e.delegates}e.inline||(e.getBody().onload=null,e.dom.unbind(e.getWin()),e.dom.unbind(e.getDoc())),e.dom.unbind(e.getBody()),e.dom.unbind(e.getContainer())}};return s=n.extend({},e,s)}),r(ut,[u,d],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&n(s,function(n){var r=t.mac?e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0})}),a.add=function(t,a,l,c){var u;return u=l,"string"==typeof l?l=function(){o.execCommand(u,!1,null)}:e.isArray(u)&&(l=function(){o.execCommand(u[0],u[1],u[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:/^[0-9]{2,}$/.test(e)?t.keyCode=parseInt(e,10):(t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0))}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(dt,[y,f,C,w,_,R,T,H,O,I,F,z,W,V,b,l,at,E,k,st,d,u,ct,ut],function(e,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,E){function N(e,t,i){var o=this,a,s;a=o.documentBaseUrl=i.documentBaseURL,s=i.baseURI,o.settings=t=R({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:a,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:o.convertURL,url_converter_scope:o,ie7_compat:!0},t),r.language=t.language||"en",r.languageLoad=t.language_load,r.baseURL=i.baseURL,o.id=t.id=e,o.isNotDirty=!0,o.plugins={},o.documentBaseURI=new h(t.document_base_url||a,{base_uri:s}),o.baseURI=s,o.contentCSS=[],o.contentStyles=[],o.shortcuts=new E(o),o.execCommands={},o.queryStateCommands={},o.queryValueCommands={},o.loadedCSS={},t.target&&(o.targetElm=t.target),o.suffix=i.suffix,o.editorManager=i,o.inline=t.inline,i.fire("SetupEditor",o),o.execCallback("setup",o),o.$=n.overrideDefaults(function(){return{context:o.inline?o.getBody():o.getDoc(),element:o.getBody()}})}var k=e.DOM,S=r.ThemeManager,T=r.PluginManager,R=w.extend,A=w.each,B=w.explode,D=w.inArray,L=w.trim,H=w.resolve,M=g.Event,P=x.gecko,O=x.ie;return N.prototype={render:function(){function e(){k.unbind(window,"ready",e),n.render()}function t(){var e=m.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!S.urls[r.theme]){var t=r.theme_url;
+t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",S.load(r.theme,t)}w.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),A(r.external_plugins,function(e,t){T.load(t,e),r.plugins+=" "+t}),A(r.plugins.split(/[ ,]/),function(e){if(e=L(e),e&&!T.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=T.dependencies(e);A(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=T.createUrl(t,e),T.load(e.resource,e)})}else T.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!M.domLoaded)return void k.bind(window,"ready",e);if(n.getElement()&&x.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||k.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(k.insertAfter(k.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},k.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=!0,a._mceOldSubmit(a)})),n.windowManager=new v(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=k.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),t()}},init:function(){function e(n){var r=T.get(n),i,o;i=T.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=L(n),r&&-1===D(m,n)&&(A(T.dependencies(n),function(t){e(t)}),o=new r(t,i,t.$),t.plugins[n]=o,o.init&&(o.init(t,i),m.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,h,m=[];if(t.rtl=this.editorManager.i18n.rtl,t.editorManager.add(t),n.aria_label=n.aria_label||k.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=S.get(n.theme),t.theme=new c(t,S.urls[n.theme]),t.theme.init&&t.theme.init(t,S.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""),t.$)):t.theme=n.theme),A(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&A(B(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!x.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',h=0;h<t.contentCSS.length;h++){var g=t.contentCSS[h];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+g+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),n.content_security_policy&&(t.iframeHTML+='<meta http-equiv="Content-Security-Policy" content="'+n.content_security_policy+'" />'),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" data-id="'+t.id+'"><br></body></html>';var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&(u=v);var y=k.create("iframe",{id:t.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}});if(y.onload=function(){y.onload=null,t.fire("load")},k.setAttrib(y,"src",u||'javascript:""'),t.contentAreaContainer=l.iframeContainer,t.iframeElement=y,s=k.add(l.iframeContainer,y),O)try{t.getDoc()}catch(b){s.src=u=v}l.editorContainer&&(k.get(l.editorContainer).style.display=t.orgDisplay,t.hidden=k.isHidden(l.editorContainer)),t.getElement().style.display="none",k.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,r=n.settings,s=n.getElement(),h=n.getDoc(),m,g;r.inline||(n.getElement().style.visibility=n.orgVisibility),t||r.content_editable||(h.open(),h.write(n.iframeHTML),h.close()),r.content_editable&&(n.on("remove",function(){var e=this.getBody();k.removeClass(e,"mce-content-body"),k.removeClass(e,"mce-edit-focus"),k.setAttrib(e,"contentEditable",null)}),k.addClass(s,"mce-content-body"),n.contentDocument=h=r.content_document||document,n.contentWindow=r.content_window||window,n.bodyElement=s,r.content_document=r.content_window=null,r.root_name=s.nodeName.toLowerCase()),m=n.getBody(),m.disabled=!0,r.readonly||(n.inline&&"static"==k.getStyle(m,"position",!0)&&(m.style.position="relative"),m.contentEditable=n.getParam("content_editable_state",!0)),m.disabled=!1,n.schema=new y(r),n.dom=new e(h,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:r.force_hex_style_colors,class_filter:r.class_filter,update_styles:!0,root_element:n.inline?n.getBody():null,collect:r.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new b(r,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)i=e[r],a=i.attr(t),s="data-mce-"+t,i.attributes.map[s]||("style"===t?(a=o.serializeStyle(o.parseStyle(a),i.name),a.length||(a=null),i.attr(s,a),i.attr(t,a)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name)))}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"no/type"))}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,r,i=n.schema.getNonEmptyElements();t--;)r=e[t],r.isEmpty(i)&&(r.append(new o("br",1)).shortEnded=!0)}),n.serializer=new a(r,n),n.selection=new l(n.dom,n.getWin(),n.serializer,n),n.formatter=new c(n),n.undoManager=new u(n),n.forceBlocks=new f(n),n.enterKey=new d(n),n.editorCommands=new p(n),n._nodeChangeDispatcher=new i(n),n.fire("PreInit"),r.browser_spellcheck||r.gecko_spellcheck||(h.body.spellcheck=!1,k.setAttrib(m,"spellcheck","false")),n.fire("PostRender"),n.quirks=new C(n),r.directionality&&(m.dir=r.directionality),r.nowrap&&(m.style.whiteSpace="nowrap"),r.protect&&n.on("BeforeSetContent",function(e){A(r.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),r.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,n.bindPendingEventDelegates(),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.contentStyles.length>0&&(g="",A(n.contentStyles,function(e){g+=e+"\r\n"}),n.dom.addStyle(g)),A(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),r.auto_focus&&setTimeout(function(){var e;e=r.auto_focus===!0?n:n.editorManager.get(r.auto_focus),e.focus()},100),s=h=m=null},focus:function(e){var t=this,n=t.selection,r=t.settings.content_editable,i,o,a=t.getDoc(),s;if(!e){if(i=n.getRng(),i.item&&(o=i.item(0)),t._refreshContentEditable(),r||(x.opera||t.getBody().focus(),t.getWin().focus()),P||r){if(s=t.getBody(),s.setActive)try{s.setActive()}catch(l){s.focus()}else s.focus();r&&n.normalize()}o&&o.ownerDocument==a&&(i=a.body.createControlRange(),i.addElement(o),i.select())}t.editorManager.setActive(t)},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?H(r):0,n=H(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?A(r.split(r.indexOf("=")>0?/[;,](?![^=;,]*(?:[;,]|$))/:","),function(e){e=e.split("="),i[L(e[0])]=L(e.length>1?e[1]:e)}):i=r,i):r},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=R({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented())return!1;if((a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0)return i.fire("ExecCommand",{command:e,ui:t,value:n}),!0;if(A(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o)return o;if(i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n))return i.fire("ExecCommand",{command:e,ui:t,value:n}),!0;if(i.editorCommands.execCommand(e,t,n))return i.fire("ExecCommand",{command:e,ui:t,value:n}),!0;try{o=i.getDoc().execCommand(e,t,n)}catch(s){}return o?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):!1},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r===!0||r===!1))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;e.hidden&&(e.hidden=!1,e.inline?e.getBody().contentEditable=!0:(k.show(e.getContainer()),k.hide(e.id)),e.load(),e.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(O&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e==e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(k.hide(e.getContainer()),k.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=k.getParent(t.id,"form"))&&A(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=O&&11>O?"":'<br data-mce-bogus="1">',e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):O||(e='<br data-mce-bogus="1">'),n.dom.setHTML(r,e),n.fire("SetContent",t)):("raw"!==t.format&&(e=new s({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=L(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?L(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e,t){t&&(e=R({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=k.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=k.get(this.id)),this.targetElm},getWin:function(){var e=this,t;return e.contentWindow||(t=e.iframeElement,t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),A(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||!n.hasVisual?i.removeClass(e,o):i.addClass(e,o));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&n.hasVisual?i.addClass(e,o):i.removeClass(e,o)))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;e.removed||(e.save(),e.removed=1,e.unbindAllNativeEvents(),e.hasHiddenInput&&k.remove(e.getElement().nextSibling),e.inline||(O&&10>O&&e.getDoc().execCommand("SelectAll",!1,null),k.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null),e.fire("remove"),e.editorManager.remove(e),k.remove(e.getContainer()),e.destroy())},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),k.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.bodyElement=t.contentDocument=t.contentWindow=null,t.iframeElement=t.targetElm=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return P?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},R(N.prototype,_),N}),r(ft,[],function(){var e={};return{rtl:!1,add:function(t,n){for(var r in n)e[r]=n[r];this.rtl=this.rtl||"rtl"===e._dir},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(pt,[y,d],function(e,t){function n(e){function s(){try{return document.activeElement}catch(e){return document.body}}function l(e,t){if(t&&t.startContainer){if(!e.isChildOf(t.startContainer,e.getRoot())||!e.isChildOf(t.endContainer,e.getRoot()))return;return{startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return t}function c(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function u(e){return!!a.getParent(e,n.isEditorUIElement)}function d(n){var d=n.editor;d.on("init",function(){(d.inline||t.ie)&&("onbeforedeactivate"in document&&t.ie<9?d.dom.bind(d.getBody(),"beforedeactivate",function(e){if(e.target==d.getBody())try{d.lastRng=d.selection.getRng()}catch(t){}}):d.on("nodechange mouseup keyup",function(e){var t=s();"nodechange"==e.type&&e.selectionChange||(t&&t.id==d.id+"_ifr"&&(t=d.getBody()),d.dom.isChildOf(t,d.getBody())&&(d.lastRng=d.selection.getRng()))}),t.webkit&&!r&&(r=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(d.lastRng=n)}},a.bind(document,"selectionchange",r)))}),d.on("setcontent",function(){d.lastRng=null}),d.on("mousedown",function(){d.selection.lastFocusBookmark=null}),d.on("focusin",function(){var t=e.focusedEditor;d.selection.lastFocusBookmark&&(d.selection.setRng(c(d,d.selection.lastFocusBookmark)),d.selection.lastFocusBookmark=null),t!=d&&(t&&t.fire("blur",{focusedEditor:d}),e.setActive(d),e.focusedEditor=d,d.fire("focus",{blurredEditor:t}),d.focus(!0)),d.lastRng=null}),d.on("focusout",function(){window.setTimeout(function(){var t=e.focusedEditor;u(s())||t!=d||(d.fire("blur",{focusedEditor:null}),e.focusedEditor=null,d.selection&&(d.selection.lastFocusBookmark=null))},0)}),i||(i=function(t){var n=e.activeEditor;n&&t.target.ownerDocument==document&&(n.selection&&t.target!=n.getBody()&&(n.selection.lastFocusBookmark=l(n.dom,n.lastRng)),t.target==document.body||u(t.target)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},a.bind(document,"focusin",i)),d.inline&&!o&&(o=function(t){var n=e.activeEditor;if(n.inline&&!n.dom.isChildOf(t.target,n.getBody())){var r=n.selection.getRng();r.collapsed||(n.lastRng=r)}},a.bind(document,"mouseup",o))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(a.unbind(document,"selectionchange",r),a.unbind(document,"focusin",i),a.unbind(document,"mouseup",o),r=i=o=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var r,i,o,a=e.DOM;return n.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},n}),r(ht,[dt,f,y,V,d,u,lt,ft,pt],function(e,t,n,r,i,o,a,s,l){function c(e){var t=v.editors,n;delete t[e.id];for(var r=0;r<t.length;r++)if(t[r]==e){t.splice(r,1),n=!0;break}return v.activeEditor==e&&(v.activeEditor=t[0]),v.focusedEditor==e&&(v.focusedEditor=null),n}function u(e){return e&&!(e.getContainer()||e.getBody()).parentNode&&(c(e),e.unbindAllNativeEvents(),e.destroy(!0),e=null),e}var d=n.DOM,f=o.explode,p=o.each,h=o.extend,m=0,g,v;return v={$:t,majorVersion:"4",minorVersion:"1.4",releaseDate:"2014-08-22",editors:[],i18n:s,activeEditor:null,setup:function(){var e=this,t,n,i="",o,a;if(n=document.location.href,/^[^:]+:\/\/\/?[^\/]+\//.test(n)&&(n=n.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/")),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else{for(var s=document.getElementsByTagName("script"),c=0;c<s.length;c++)if(a=s[c].src,/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(a)){-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/"));break}!t&&document.currentScript&&(a=document.currentScript.src,-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/")))}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new l(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!d.get(t)?e.name:d.uniqueId(),e.setAttribute("id",t)),t}function r(t,n,r){if(!u(s.get(t))){var i=new e(t,n,s);i.targetElm=i.targetElm||r,l.push(i),i.render()}}function i(e){var n=t[e];if(n)return n.apply(s,Array.prototype.slice.call(arguments,2))}function o(e,t){return t.constructor===RegExp?t.test(e.className):d.hasClass(e,t)}function a(){var e,s;if(d.unbind(window,"ready",a),i("onpageload"),t.types)return void p(t.types,function(e){p(d.select(e.selector),function(i){r(n(i),h({},t,e),i)})});if(t.selector)return void p(d.select(t.selector),function(e){r(n(e),t,e)});switch(t.target&&r(n(t.target),t),t.mode){case"exact":e=t.elements||"",e.length>0&&p(f(e),function(e){var n;(n=d.get(e))?r(e,t,n):p(document.forms,function(n){p(n.elements,function(n){n.name===e&&(e="mce_editor_"+m++,d.setAttrib(n,"id",e),r(e,t,n))})})});break;case"textareas":case"specific_textareas":p(d.select("textarea"),function(e){t.editor_deselector&&o(e,t.editor_deselector)||(!t.editor_selector||o(e,t.editor_selector))&&r(n(e),t,e)})}t.oninit&&(e=s=0,p(l,function(t){s++,t.initialized?e++:t.on("init",function(){e++,e==s&&i("oninit")}),e==s&&i("oninit")}))}var s=this,l=[];s.settings=t,d.bind(window,"ready",a)},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),g||(g=function(){t.fire("BeforeUnload")},d.bind(window,"beforeunload",g)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;{if(e)return"string"==typeof e?(e=e.selector||e,void p(d.select(e),function(e){i=r[e.id],i&&t.remove(i)})):(i=e,r[i.id]?(c(i)&&t.fire("RemoveEditor",{editor:i}),r.length||d.unbind(window,"beforeunload",g),i.remove(),i):null);for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){p(this.editors,function(e){e.save()})},addI18n:function(e,t){s.add(e,t)},translate:function(e){return s.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!=e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},h(v,a),v.setup(),window.tinymce=window.tinyMCE=v,v}),r(mt,[ht,u],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(gt,[lt,u],function(e,t){var n={send:function(e){function t(){!e.async||4==r.readyState||i++>1e4?(e.success&&1e4>i&&200==r.status?e.success.call(e.success_scope,""+r.responseText,r,e):e.error&&e.error.call(e.error_scope,i>1e4?"TIMED_OUT":"GENERAL",r,e),r=null):setTimeout(t,10)}var r,i=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",r=new XMLHttpRequest){if(r.overrideMimeType&&r.overrideMimeType(e.content_type),r.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(r.withCredentials=!0),e.content_type&&r.setRequestHeader("Content-Type",e.content_type),r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r=n.fire("beforeSend",{xhr:r,settings:e}).xhr,r.send(e.data),!e.async)return t();setTimeout(t,10)}}};return t.extend(n,e),n}),r(vt,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb      t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(yt,[vt,gt,u],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(bt,[y],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(Ct,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(xt,[y,l,b,C,u,d],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(wt,[U,u],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(_t,[wt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(Et,[K,tt],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div></div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Nt,[K,Et],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(kt,[Nt],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},icon:function(e){var t=this,n=t.classPrefix;if("undefined"==typeof e)return t.settings.icon;if(t.settings.icon=e,e=e?n+"ico "+n+"i-"+t.settings.icon:"",t._rendered){var r=t.getEl().firstChild,i=r.getElementsByTagName("i")[0];e?(i&&i==r.firstChild||(i=document.createElement("i"),r.insertBefore(i,r.firstChild)),i.className=e):i&&r.removeChild(i),t.text(t._text)}return t},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},text:function(e){var t=this;
+if(t._rendered){var n=t.getEl().lastChild.lastChild;n&&(n.data=t.translate(e))}return t._super(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i;return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?"\xa0":"")+e.encode(e._text):"")+"</button></div>"}})}),r(St,[J],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(Tt,[Nt],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span></div>"}})}),r(Rt,[Nt,G,Y],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("combobox"),t.subinput=!0,t.ariaTarget="inp",e=t.settings,e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){for(var r=n.target,i=t.getEl();r&&r!=i;)r.id&&-1!=r.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),r=r.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){return e.preventDefault(),t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),e.placeholder&&(t.addClass("placeholder"),t.on("focusin",function(){t._hasOnChange||(n.on(t.getEl("inp"),"change",function(){t.fire("change")}),t._hasOnChange=!0),t.hasClass("placeholder")&&(t.getEl("inp").value="",t.removeClass("placeholder"))}),t.on("focusout",function(){0===t.value().length&&(t.getEl("inp").value=e.placeholder,t.addClass("placeholder"))}))},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl("inp").disabled=e),t._super(e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-n.getSize(r).width-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),n.css(t.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},remove:function(){n.off(this.getEl("inp")),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'"><input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="1"'+l+" />"+s+"</div>"}})}),r(At,[Rt],function(e){return e.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.addClass("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl().getElementsByTagName("i")[0];if(t)try{t.style.background=e}catch(n){}},value:function(e){var t=this;return"undefined"!=typeof e&&t._rendered&&t.repaintColor(e),t._super(e)}})}),r(Bt,[kt,rt],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),r(Dt,[Bt,y],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(Lt,[],function(){function e(e){function i(e,i,o){var a,s,l,c,u,d;return a=0,s=0,l=0,e/=255,i/=255,o/=255,u=t(e,t(i,o)),d=n(e,n(i,o)),u==d?(l=u,{h:0,s:0,v:100*l}):(c=e==u?i-o:o==u?e-i:o-e,a=e==u?3:o==u?1:5,a=60*(a-c/(d-u)),s=(d-u)/d,l=d,{h:r(a),s:r(100*s),v:r(100*l)})}function o(e,i,o){var a,s,l,c;if(e=(parseInt(e,10)||0)%360,i=parseInt(i,10)/100,o=parseInt(o,10)/100,i=n(0,t(i,1)),o=n(0,t(o,1)),0===i)return void(d=f=p=r(255*o));switch(a=e/60,s=o*i,l=s*(1-Math.abs(a%2-1)),c=o-s,Math.floor(a)){case 0:d=s,f=l,p=0;break;case 1:d=l,f=s,p=0;break;case 2:d=0,f=s,p=l;break;case 3:d=0,f=l,p=s;break;case 4:d=l,f=0,p=s;break;case 5:d=s,f=0,p=l;break;default:d=f=p=0}d=r(255*(d+c)),f=r(255*(f+c)),p=r(255*(p+c))}function a(){function e(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+e(d)+e(f)+e(p)}function s(){return{r:d,g:f,b:p}}function l(){return i(d,f,p)}function c(e){var t;return"object"==typeof e?"r"in e?(d=e.r,f=e.g,p=e.b):"v"in e&&o(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(d=parseInt(t[1],10),f=parseInt(t[2],10),p=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(d=parseInt(t[1],16),f=parseInt(t[2],16),p=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(d=parseInt(t[1]+t[1],16),f=parseInt(t[2]+t[2],16),p=parseInt(t[3]+t[3],16)),d=0>d?0:d>255?255:d,f=0>f?0:f>255?255:f,p=0>p?0:p>255?255:p,u}var u=this,d=0,f=0,p=0;e&&c(e),u.toRgb=s,u.toHsv=l,u.toHex=a,u.parse=c}var t=Math.min,n=Math.max,r=Math.round;return e}),r(Ht,[Nt,Q,Y,Lt],function(e,t,n,r){return e.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){function e(e,t){var r=n.getPos(e),i,o;return i=t.pageX-r.x,o=t.pageY-r.y,i=Math.max(0,Math.min(i/e.clientWidth,1)),o=Math.max(0,Math.min(o/e.clientHeight,1)),{x:i,y:o}}function i(e,t){var i=(360-e.h)/360;n.css(d,{top:100*i+"%"}),t||n.css(p,{left:e.s+"%",top:100-e.v+"%"}),f.style.background=new r({s:100,v:100,h:e.h}).toHex(),s.color().parse({s:e.s,v:e.v,h:e.h})}function o(t){var n;n=e(f,t),c.s=100*n.x,c.v=100*(1-n.y),i(c),s.fire("change")}function a(t){var n;n=e(u,t),c=l.toHsv(),c.h=360*(1-n.y),i(c,!0),s.fire("change")}var s=this,l=s.color(),c,u,d,f,p;u=s.getEl("h"),d=s.getEl("hp"),f=s.getEl("sv"),p=s.getEl("svp"),s._repaint=function(){c=l.toHsv(),i(c)},s._super(),s._svdraghelper=new t(s._id+"-sv",{start:o,drag:o}),s._hdraghelper=new t(s._id+"-h",{start:a,drag:a}),s._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){var t=this;return arguments.length?(t.color().parse(e),void(t._rendered&&t._repaint())):t.color().toHex()},color:function(){return this._color||(this._color=new r),this._color},renderHtml:function(){function e(){var e,t,n="",i,a;for(i="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",a=o.split(","),e=0,t=a.length-1;t>e;e++)n+='<div class="'+r+'colorpicker-h-chunk" style="height:'+100/t+"%;"+i+a[e]+",endColorstr="+a[e+1]+");-ms-"+i+a[e]+",endColorstr="+a[e+1]+')"></div>';return n}var t=this,n=t._id,r=t.classPrefix,i,o="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",a="background: -ms-linear-gradient(top,"+o+");background: linear-gradient(to bottom,"+o+");";return i='<div id="'+n+'-h" class="'+r+'colorpicker-h" style="'+a+'">'+e()+'<div id="'+n+'-hp" class="'+r+'colorpicker-h-marker"></div></div>','<div id="'+n+'" class="'+t.classes()+'"><div id="'+n+'-sv" class="'+r+'colorpicker-sv"><div class="'+r+'colorpicker-overlay1"><div class="'+r+'colorpicker-overlay2"><div id="'+n+'-svp" class="'+r+'colorpicker-selector1"><div class="'+r+'colorpicker-selector2"></div></div></div></div></div>'+i+"</div>"}})}),r(Mt,[Nt],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes()+'">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'" aria-level="'+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item">\xa0</div>'),i}})}),r(Pt,[Mt,ht],function(e,t){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var n=this,r=t.activeEditor;return n.on("select",function(e){r.focus(),r.selection.select(this.data()[e.index].element),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});if(s.isDefaultPrevented()||i.push({name:s.name,element:o[a]}),s.isPropagationStopped())break}n.data(i)}),n._super()}})}),r(Ot,[J],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(It,[J,Ot,u],function(e,t,n){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,r=e.items();e.settings.formItemDefaults||(e.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),r.each(function(r){var i,o=r.settings.label;o&&(i=new t(n.extend({items:{type:"label",id:r._id+"-l",text:o,flex:0,forId:r._id,disabled:r.disabled()}},e.settings.formItemDefaults)),i.type="formitem",r.aria("labelledby",r._id+"-l"),"undefined"==typeof r.settings.flex&&(r.settings.flex=1),e.replace(r,i),i.add(r))})},recalcLabels:function(){var e=this,t=0,n=[],r,i,o;if(e.settings.labelGapCalc!==!1)for(o="children"==e.settings.labelGapCalc?e.find("formitem"):e.items(),o.filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(Ft,[It],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(zt,[Rt,u],function(e,t){return e.extend({init:function(e){var n=this,r=tinymce.activeEditor,i=r.settings,o,a,s;e.spellcheck=!1,s=i.file_picker_types||i.file_browser_callback_types,s&&(s=t.makeMap(s,/[, ]/)),(!s||s[e.filetype])&&(a=i.file_picker_callback,!a||s&&!s[e.filetype]?(a=i.file_browser_callback,!a||s&&!s[e.filetype]||(o=function(){a(n.getEl("inp").id,n.value(),e.filetype,window)})):o=function(){var i=n.fire("beforecall").meta;i=t.extend({filetype:e.filetype},i),a.call(r,function(e,t){n.value(e).fire("change",{meta:t})},n.value(),i)}),o&&(e.icon="browse",e.onaction=o),n._super(e)}})}),r(Wt,[_t],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Vt,[_t],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v=[],y,b,C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F,z=Math.max,W=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(k="y",E="h",N="minH",S="maxH",R="innerH",T="top",A="deltaH",B="contentH",P="left",H="w",D="x",L="innerW",M="minW",O="right",I="deltaW",F="contentW"):(k="x",E="w",N="minW",S="maxW",R="innerW",T="left",A="deltaW",B="contentW",P="top",H="h",D="y",L="innerH",M="minH",O="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),m=p.settings,g=m.flex,d-=n-1>t?c:0,g>0&&(u+=g,h[S]&&v.push(p),h.flex=g),d-=h[N],y=o[P]+h[M]+o[O],y>_&&(_=y);if(x={},x[N]=0>d?i[N]-d+i[A]:i[R]-d+i[A],x[M]=_+i[I],x[B]=i[R]-d,x[F]=_,x.minW=W(x.minW,i.maxW),x.minH=W(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],h=p.layoutRect(),b=h[S],y=h[N]+h.flex*C,y>b?(d-=h[S]-h[N],u-=h.flex,h.flex=0,h.maxFlexSize=b):h.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[D]=o[P],t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),y=h.maxFlexSize||h[N],"center"===s?x[D]=Math.round(i[L]/2-h[H]/2):"stretch"===s?(x[H]=z(h[M]||0,i[L]-o[P]-o[O]),x[D]=o[P]):"end"===s&&(x[D]=i[L]-h[H]-o.top),h.flex>0&&(y+=h.flex*C),x[E]=y,x[k]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var V=e.parent();V&&(V._lastRect=null,V.recalc())}}})}),r(Ut,[wt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r($t,[K,Nt,rt,u,ht,d],function(e,t,n,r,i,o){function a(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function r(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function i(){function t(e){var n=[];if(e)return s(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a,o.cmd=e.cmd}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?e.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var t=this;t.parent().on("show",function(){var n,r;n=t.settings.format,n&&(t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))),r=t.settings.cmd,r&&t.active(e.queryCommandState(r))})},onclick:function(){this.settings.format&&l(this.settings.format),this.settings.cmd&&e.execCommand(this.settings.cmd)}}}}function o(t){return function(){function n(){return e.undoManager?e.undoManager[t]():!1}var r=this;t="redo"==t?"hasRedo":"hasUndo",r.disabled(!n()),e.on("Undo Redo AddUndo TypingUndo ClearUndos",function(){r.disabled(!n())})}}function a(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function l(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var c;c=i(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){l(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:o("undo"),cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:o("redo"),cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:o("undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:o("redo"),cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:a,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:c}),e.addButton("formatselect",function(){var n=[],i=r(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6");return s(i,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:i[0][0],values:n,fixedWidth:!0,onselect:l,onPostRender:t(n)}}),e.addButton("fontselect",function(){var n="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",i=[],o=r(e.settings.font_formats||n);return s(o,function(e){i.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:i,fixedWidth:!0,onPostRender:t(i,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var n=[],r="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||r;return s(i.split(" "),function(e){var t=e,r=e,i=e.split("=");i.length>1&&(t=i[0],r=i[1]),n.push({text:t,value:r})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:n,fixedWidth:!0,onPostRender:t(n,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:c})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(qt,[_t],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,E=[],N=[],k,S,T,R,A,B;t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,A="reverseRows"in t?t.reverseRows:e.isRtl(),C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]);for(d=0;r>d;d++)E.push(0);for(f=0;n>f;f++)N.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),k=c.minW,S=c.minH,E[d]=k>E[d]?k:E[d],N[f]=S>N[f]?S:N[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=E[d]+(d>0?y:0),T-=(d>0?y:0)+E[d];for(R=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=N[f]+(f>0?b:0),R-=(f>0?b:0)+N[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var D;D="start"==t.packV?0:R>0?Math.floor(R/n):0;var L=0,H=t.flexWidths;if(H)for(d=0;d<H.length;d++)L+=H[d];else L=r;var M=T/L;for(d=0;r>d;d++)E[d]+=H?H[d]*M:M;for(h=g.top,f=0;n>f;f++){for(p=g.left,s=N[f]+D,d=0;r>d&&(B=A?f*r+r-1-d:f*r+d,u=i[B],u);d++)m=u.settings,c=u.layoutRect(),a=Math.max(E[d],c.startMinWidth),c.x=p,c.y=h,v=m.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=m.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=h+s/2-c.h/2:"bottom"==v?c.y=h+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();h+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var P=e.parent();P&&(P._lastRect=null,P.recalc())}}})}),r(jt,[Nt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(Yt,[Nt,Y],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.addClass("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t+'"':"")+">"+e.encode(e._text)+"</label>"}})}),r(Kt,[J],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e._super()}})}),r(Gt,[Kt],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(Xt,[kt,G,Gt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon?r+"ico "+r+"i-"+e.settings.icon:"";return e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"></i>':"")+"<span>"+(e._text?(i?"\xa0":"")+e.encode(e._text):"")+'</span> <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n<r.length;n++)r[n].innerHTML=(t.settings.icon&&e?"\xa0":"")+t.encode(e);return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Jt,[Xt],function(e){return e.extend({init:function(e){function t(r){for(var a=0;a<r.length;a++){if(i=r[a].selected||e.value===r[a].value){o=o||r[a].text,n._value=r[a].value;break}r[a].menu&&t(r[a].menu)}}var n=this,r,i,o,a;n._values=r=e.values,r&&("undefined"!=typeof e.value&&t(r),!i&&r.length>0&&(o=r[0].text,n._value=r[0].value),e.menu=r),e.text=e.text||o||r[0].text,n._super(e),n.addClass("listbox"),n.on("select",function(t){var r=t.control;
+a&&(t.lastControl=a),e.multiple?r.active(!r.active()):n.value(t.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){i=e.value()===n,i&&(o=o||e.text()),e.active(i),e.menu&&t(e.menu,n)})}function n(t){for(var r=0;r<t.length;r++)i=t[r].value==e,i&&(o=o||t[r].text),t[r].active=i,t[r].menu&&n(t[r].menu)}var r=this,i,o,a;return"undefined"!=typeof e&&(r.menu?t(r.menu,e):(a=r.settings.menu,n(a)),r.text(o||this.settings.text)),r._super(e)}})}),r(Qt,[Nt,G,d],function(e,t,n){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),e.preview&&t.addClass("menu-item-preview"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.addClass("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.addClass("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("show hide",function(e){e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),r.on("hide",function(t){t.control===r&&e.removeClass("selected")}),r.submenu=!0),r._parentMenu=i,r.addClass("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.removeClass(r._lastRel),r.addClass(o),r._lastRel=o,e.addClass("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,r=e.settings,i=e.classPrefix,o=e.encode(e._text),a=e.settings.icon,s="",l=r.shortcut;return a&&e.parent().addClass("menu-has-icons"),r.image&&(a="none",s=" style=\"background-image: url('"+r.image+"')\""),l&&n.mac&&(l=l.replace(/ctrl\+alt\+/i,"&#x2325;&#x2318;"),l=l.replace(/ctrl\+/i,"&#x2318;"),l=l.replace(/alt\+/i,"&#x2325;"),l=l.replace(/shift\+/i,"&#x21E7;")),a=i+"ico "+i+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==o?'<i class="'+a+'"'+s+"></i>\xa0":"")+("-"!==o?'<span id="'+t+'-text" class="'+i+'text">'+o+"</span>":"")+(l?'<div id="'+t+'-shortcut" class="'+i+'menu-shortcut">'+l+"</div>":"")+(r.menu?'<div class="'+i+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),e.parent().hideAll()))}),e._super(),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(Zt,[rt,Qt,u],function(e,t,n){var r=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var r=e.items,i=r.length;i--;)r[i]=n.extend({},e.itemDefaults,r[i]);t._super(e),t.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return r}),r(en,[Tt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(tn,[Nt,Q],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(nn,[Nt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(rn,[Xt,Y],function(e,t){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,n=e.getEl(),r=e.layoutRect(),i,o;return e._super(),i=n.firstChild,o=n.lastChild,t.css(i,{width:r.w-t.getSize(o).width,height:r.h-2}),t.css(o,{height:r.h-2}),e},activeMenu:function(e){var n=this;t.toggleClass(n.getEl().lastChild,n.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(r?'<i class="'+r+'"></i>':"")+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1">'+(e._menuBtnText?(r?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void t.call(this,e);n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(on,[Ut],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(an,[et,Y],function(e,t){return e.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t.removeClass(n,this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t.addClass(n,this.classPrefix+"active"),this.items()[e].show().fire("showtab"),this.reflow(),this.items().each(function(t,n){e!=n&&t.hide()})},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,n,r,i;r=t.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(e){r=Math.max(r,e.layoutRect().minW),i=Math.max(i,e.layoutRect().minH)}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=t.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,n=e._super(),n.deltaH+=o,n.innerH=n.h-n.deltaH,n}})}),r(sn,[Nt,Y],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.hasEventListeners("submit")&&t.toJSON?(t.fire("submit",{data:t.toJSON()}),!1):void 0})})},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl().disabled=e),t._super(e)},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),e.disabled()&&(i+=' disabled="disabled"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="1"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="1"'+i+" />"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()},remove:function(){t.off(this.getEl()),this._super()}})}),r(ln,[Y,K],function(e,t){return function(n,r){var i=this,o,a=t.classPrefix;i.show=function(t){return i.hide(),o=!0,window.setTimeout(function(){o&&n.appendChild(e.createFragment('<div class="'+a+"throbber"+(r?" "+a+"throbber-inline":"")+'"></div>'))},t||0),i},i.hide=function(){var e=n.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),o=!1,i}}}),a([l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F,z,W,V,U,$,q,j,Y,K,G,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,ht,mt,gt,vt,yt,bt,Ct,xt,wt,_t,Et,Nt,kt,St,Tt,Rt,At,Bt,Dt,Lt,Ht,Mt,Pt,Ot,It,Ft,zt,Wt,Vt,Ut,$t,qt,jt,Yt,Kt,Gt,Xt,Jt,Qt,Zt,en,tn,nn,rn,on,an,sn,ln])}(this);
\ No newline at end of file
index cd5e6be8caf5dd83f0cf7601e7783badc18715fd..1f4a11f8619b098c6b5038b42727f645cacb13cd 100644 (file)
@@ -95,10 +95,8 @@ header('Content-Type: text/html; charset=' . get_bloginfo('charset'));
 </head>
 <body class="windows wp-core-ui">
 <script type="text/javascript">
 </head>
 <body class="windows wp-core-ui">
 <script type="text/javascript">
-var win = window.dialogArguments || opener || parent || top;
-
-if ( win && win.tinymce && win.tinymce.isMac ) {
-       document.body.className = document.body.className.replace(/windows/, 'macos');
+if ( navigator.userAgent.indexOf( 'Mac OS' ) > -1 ) {
+       document.body.className = document.body.className.replace( /windows/, 'macos' );
 }
 </script>
 
 }
 </script>
 
index 31e96a8a7621cc5b36c731c4df328e1374eec127..8fdf8e4db13a62e101fffe55631409e8ab01ba5b 100644 (file)
Binary files a/wp-includes/js/tinymce/wp-tinymce.js.gz and b/wp-includes/js/tinymce/wp-tinymce.js.gz differ
index 03abd2d9dea9299e989ea7b96f4c9b0f4c2ab356..922df9fc150d94d3102f041914ae68aab44cc2bc 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Disable error reporting
  *
 /**
  * Disable error reporting
  *
- * Set this to error_reporting( E_ALL ) or error_reporting( E_ALL | E_STRICT ) for debugging
+ * Set this to error_reporting( -1 ) for debugging.
  */
 error_reporting(0);
 
  */
 error_reporting(0);
 
index 4b30bb0ac64facf480627602a92c41885110c308..d7d8f0187f5feb32b9d1881b6f70acf33bea6857 100644 (file)
@@ -3,25 +3,27 @@
 // utility functions
 
 var wpCookies = {
 // utility functions
 
 var wpCookies = {
-// The following functions are from Cookie.js class in TinyMCE, Moxiecode, used under LGPL.
+// The following functions are from Cookie.js class in TinyMCE 3, Moxiecode, used under LGPL.
 
 
-       each : function(obj, cb, scope) {
+       each: function( obj, cb, scope ) {
                var n, l;
 
                var n, l;
 
-               if ( !obj )
+               if ( ! obj ) {
                        return 0;
                        return 0;
+               }
 
                scope = scope || obj;
 
 
                scope = scope || obj;
 
-               if ( typeof(obj.length) != 'undefined' ) {
+               if ( typeof( obj.length ) !== 'undefined' ) {
                        for ( n = 0, l = obj.length; n < l; n++ ) {
                        for ( n = 0, l = obj.length; n < l; n++ ) {
-                               if ( cb.call(scope, obj[n], n, obj) === false )
+                               if ( cb.call( scope, obj[n], n, obj ) === false ) {
                                        return 0;
                                        return 0;
+                               }
                        }
                } else {
                        for ( n in obj ) {
                                if ( obj.hasOwnProperty(n) ) {
                        }
                } else {
                        for ( n in obj ) {
                                if ( obj.hasOwnProperty(n) ) {
-                                       if ( cb.call(scope, obj[n], n, obj) === false ) {
+                                       if ( cb.call( scope, obj[n], n, obj ) === false ) {
                                                return 0;
                                        }
                                }
                                                return 0;
                                        }
                                }
@@ -34,17 +36,18 @@ var wpCookies = {
         * Get a multi-values cookie.
         * Returns a JS object with the name: 'value' pairs.
         */
         * Get a multi-values cookie.
         * Returns a JS object with the name: 'value' pairs.
         */
-       getHash : function(name) {
-               var all = this.get(name), ret;
+       getHash: function( name ) {
+               var cookie = this.get( name ), values;
 
 
-               if ( all ) {
-                       this.each( all.split('&'), function(pair) {
+               if ( cookie ) {
+                       this.each( cookie.split('&'), function( pair ) {
                                pair = pair.split('=');
                                pair = pair.split('=');
-                               ret = ret || {};
-                               ret[pair[0]] = pair[1];
+                               values = values || {};
+                               values[pair[0]] = pair[1];
                        });
                }
                        });
                }
-               return ret;
+
+               return values;
        },
 
        /**
        },
 
        /**
@@ -52,45 +55,47 @@ var wpCookies = {
         *
         * 'values_obj' is the JS object that is stored. It is encoded as URI in wpCookies.set().
         */
         *
         * 'values_obj' is the JS object that is stored. It is encoded as URI in wpCookies.set().
         */
-       setHash : function(name, values_obj, expires, path, domain, secure) {
+       setHash: function( name, values_obj, expires, path, domain, secure ) {
                var str = '';
 
                var str = '';
 
-               this.each(values_obj, function(val, key) {
-                       str += (!str ? '' : '&') + key + '=' + val;
+               this.each( values_obj, function( val, key ) {
+                       str += ( ! str ? '' : '&' ) + key + '=' + val;
                });
 
                });
 
-               this.set(name, str, expires, path, domain, secure);
+               this.set( name, str, expires, path, domain, secure );
        },
 
        /**
         * Get a cookie.
         */
        },
 
        /**
         * Get a cookie.
         */
-       get : function(name) {
+       get: function( name ) {
                var e, b,
                        cookie = document.cookie,
                        p = name + '=';
 
                var e, b,
                        cookie = document.cookie,
                        p = name + '=';
 
-               if ( !cookie )
+               if ( ! cookie ) {
                        return;
                        return;
+               }
 
 
-               b = cookie.indexOf('; ' + p);
+               b = cookie.indexOf( '; ' + p );
 
 
-               if ( b == -1 ) {
+               if ( b === -1 ) {
                        b = cookie.indexOf(p);
 
                        b = cookie.indexOf(p);
 
-                       if ( b !== 0 )
+                       if ( b !== 0 ) {
                                return null;
                                return null;
-
+                       }
                } else {
                        b += 2;
                }
 
                e = cookie.indexOf( ';', b );
 
                } else {
                        b += 2;
                }
 
                e = cookie.indexOf( ';', b );
 
-               if ( e == -1 )
+               if ( e === -1 ) {
                        e = cookie.length;
                        e = cookie.length;
+               }
 
 
-               return decodeURIComponent( cookie.substring(b + p.length, e) );
+               return decodeURIComponent( cookie.substring( b + p.length, e ) );
        },
 
        /**
        },
 
        /**
@@ -99,13 +104,13 @@ var wpCookies = {
         * The 'expires' arg can be either a JS Date() object set to the expiration date (back-compat)
         * or the number of seconds until expiration
         */
         * The 'expires' arg can be either a JS Date() object set to the expiration date (back-compat)
         * or the number of seconds until expiration
         */
-       set : function(name, value, expires, path, domain, secure) {
+       set: function( name, value, expires, path, domain, secure ) {
                var d = new Date();
 
                var d = new Date();
 
-               if ( typeof(expires) == 'object' && expires.toGMTString ) {
+               if ( typeof( expires ) === 'object' && expires.toGMTString ) {
                        expires = expires.toGMTString();
                        expires = expires.toGMTString();
-               } else if ( parseInt(expires, 10) ) {
-                       d.setTime( d.getTime() + ( parseInt(expires, 10) * 1000 ) ); // time must be in miliseconds
+               } else if ( parseInt( expires, 10 ) ) {
+                       d.setTime( d.getTime() + ( parseInt( expires, 10 ) * 1000 ) ); // time must be in miliseconds
                        expires = d.toGMTString();
                } else {
                        expires = '';
                        expires = d.toGMTString();
                } else {
                        expires = '';
@@ -123,41 +128,57 @@ var wpCookies = {
         *
         * This is done by setting it to an empty value and setting the expiration time in the past.
         */
         *
         * This is done by setting it to an empty value and setting the expiration time in the past.
         */
-       remove : function(name, path) {
-               this.set(name, '', -1000, path);
+       remove: function( name, path, domain, secure ) {
+               this.set( name, '', -1000, path, domain, secure );
        }
 };
 
 // Returns the value as string. Second arg or empty string is returned when value is not set.
 function getUserSetting( name, def ) {
        }
 };
 
 // Returns the value as string. Second arg or empty string is returned when value is not set.
 function getUserSetting( name, def ) {
-       var obj = getAllUserSettings();
+       var settings = getAllUserSettings();
 
 
-       if ( obj.hasOwnProperty(name) )
-               return obj[name];
+       if ( settings.hasOwnProperty( name ) ) {
+               return settings[name];
+       }
 
 
-       if ( typeof def != 'undefined' )
+       if ( typeof def !== 'undefined' ) {
                return def;
                return def;
+       }
 
        return '';
 }
 
 // Both name and value must be only ASCII letters, numbers or underscore
 // and the shorter, the better (cookies can store maximum 4KB). Not suitable to store text.
 
        return '';
 }
 
 // Both name and value must be only ASCII letters, numbers or underscore
 // and the shorter, the better (cookies can store maximum 4KB). Not suitable to store text.
+// The value is converted and stored as string.
 function setUserSetting( name, value, _del ) {
 function setUserSetting( name, value, _del ) {
-       if ( 'object' !== typeof userSettings )
+       if ( 'object' !== typeof userSettings ) {
                return false;
                return false;
+       }
+
+       var uid = userSettings.uid,
+               settings = wpCookies.getHash( 'wp-settings-' + uid ),
+               path = userSettings.url,
+               secure = !! userSettings.secure;
+
+       name = name.toString().replace( /[^A-Za-z0-9_]/, '' );
 
 
-       var cookie = 'wp-settings-' + userSettings.uid, all = wpCookies.getHash(cookie) || {}, path = userSettings.url,
-       n = name.toString().replace(/[^A-Za-z0-9_]/, ''), v = value.toString().replace(/[^A-Za-z0-9_]/, '');
+       if ( typeof value === 'number' ) {
+               value = parseInt( value, 10 );
+       } else {
+               value = value.toString().replace( /[^A-Za-z0-9_]/, '' );
+       }
+
+       settings = settings || {};
 
        if ( _del ) {
 
        if ( _del ) {
-               delete all[n];
+               delete settings[name];
        } else {
        } else {
-               all[n] = v;
+               settings[name] = value;
        }
 
        }
 
-       wpCookies.setHash(cookie, all, 31536000, path);
-       wpCookies.set('wp-settings-time-'+userSettings.uid, userSettings.time, 31536000, path);
+       wpCookies.setHash( 'wp-settings-' + uid, settings, 31536000, path, '', secure );
+       wpCookies.set( 'wp-settings-time-' + uid, userSettings.time, 31536000, path, '', secure );
 
        return name;
 }
 
        return name;
 }
@@ -168,8 +189,9 @@ function deleteUserSetting( name ) {
 
 // Returns all settings as js object.
 function getAllUserSettings() {
 
 // Returns all settings as js object.
 function getAllUserSettings() {
-       if ( 'object' !== typeof userSettings )
+       if ( 'object' !== typeof userSettings ) {
                return {};
                return {};
+       }
 
 
-       return wpCookies.getHash('wp-settings-' + userSettings.uid) || {};
+       return wpCookies.getHash( 'wp-settings-' + userSettings.uid ) || {};
 }
 }
index cdc637a6186d6c245c189deda7b027dc2e9bb3f1..4bb7c9a240c0fec565f7f571f6271cfdc8fd23e2 100644 (file)
@@ -1 +1 @@
-function getUserSetting(a,b){var c=getAllUserSettings();return c.hasOwnProperty(a)?c[a]:"undefined"!=typeof b?b:""}function setUserSetting(a,b,c){if("object"!=typeof userSettings)return!1;var d="wp-settings-"+userSettings.uid,e=wpCookies.getHash(d)||{},f=userSettings.url,g=a.toString().replace(/[^A-Za-z0-9_]/,""),h=b.toString().replace(/[^A-Za-z0-9_]/,"");return c?delete e[g]:e[g]=h,wpCookies.setHash(d,e,31536e3,f),wpCookies.set("wp-settings-time-"+userSettings.uid,userSettings.time,31536e3,f),a}function deleteUserSetting(a){return setUserSetting(a,"",1)}function getAllUserSettings(){return"object"!=typeof userSettings?{}:wpCookies.getHash("wp-settings-"+userSettings.uid)||{}}var wpCookies={each:function(a,b,c){var d,e;if(!a)return 0;if(c=c||a,"undefined"!=typeof a.length){for(d=0,e=a.length;e>d;d++)if(b.call(c,a[d],d,a)===!1)return 0}else for(d in a)if(a.hasOwnProperty(d)&&b.call(c,a[d],d,a)===!1)return 0;return 1},getHash:function(a){var b,c=this.get(a);return c&&this.each(c.split("&"),function(a){a=a.split("="),b=b||{},b[a[0]]=a[1]}),b},setHash:function(a,b,c,d,e,f){var g="";this.each(b,function(a,b){g+=(g?"&":"")+b+"="+a}),this.set(a,g,c,d,e,f)},get:function(a){var b,c,d=document.cookie,e=a+"=";if(d){if(c=d.indexOf("; "+e),-1==c){if(c=d.indexOf(e),0!==c)return null}else c+=2;return b=d.indexOf(";",c),-1==b&&(b=d.length),decodeURIComponent(d.substring(c+e.length,b))}},set:function(a,b,c,d,e,f){var g=new Date;"object"==typeof c&&c.toGMTString?c=c.toGMTString():parseInt(c,10)?(g.setTime(g.getTime()+1e3*parseInt(c,10)),c=g.toGMTString()):c="",document.cookie=a+"="+encodeURIComponent(b)+(c?"; expires="+c:"")+(d?"; path="+d:"")+(e?"; domain="+e:"")+(f?"; secure":"")},remove:function(a,b){this.set(a,"",-1e3,b)}};
\ No newline at end of file
+function getUserSetting(a,b){var c=getAllUserSettings();return c.hasOwnProperty(a)?c[a]:"undefined"!=typeof b?b:""}function setUserSetting(a,b,c){if("object"!=typeof userSettings)return!1;var d=userSettings.uid,e=wpCookies.getHash("wp-settings-"+d),f=userSettings.url,g=!!userSettings.secure;return a=a.toString().replace(/[^A-Za-z0-9_]/,""),b="number"==typeof b?parseInt(b,10):b.toString().replace(/[^A-Za-z0-9_]/,""),e=e||{},c?delete e[a]:e[a]=b,wpCookies.setHash("wp-settings-"+d,e,31536e3,f,"",g),wpCookies.set("wp-settings-time-"+d,userSettings.time,31536e3,f,"",g),a}function deleteUserSetting(a){return setUserSetting(a,"",1)}function getAllUserSettings(){return"object"!=typeof userSettings?{}:wpCookies.getHash("wp-settings-"+userSettings.uid)||{}}var wpCookies={each:function(a,b,c){var d,e;if(!a)return 0;if(c=c||a,"undefined"!=typeof a.length){for(d=0,e=a.length;e>d;d++)if(b.call(c,a[d],d,a)===!1)return 0}else for(d in a)if(a.hasOwnProperty(d)&&b.call(c,a[d],d,a)===!1)return 0;return 1},getHash:function(a){var b,c=this.get(a);return c&&this.each(c.split("&"),function(a){a=a.split("="),b=b||{},b[a[0]]=a[1]}),b},setHash:function(a,b,c,d,e,f){var g="";this.each(b,function(a,b){g+=(g?"&":"")+b+"="+a}),this.set(a,g,c,d,e,f)},get:function(a){var b,c,d=document.cookie,e=a+"=";if(d){if(c=d.indexOf("; "+e),-1===c){if(c=d.indexOf(e),0!==c)return null}else c+=2;return b=d.indexOf(";",c),-1===b&&(b=d.length),decodeURIComponent(d.substring(c+e.length,b))}},set:function(a,b,c,d,e,f){var g=new Date;"object"==typeof c&&c.toGMTString?c=c.toGMTString():parseInt(c,10)?(g.setTime(g.getTime()+1e3*parseInt(c,10)),c=g.toGMTString()):c="",document.cookie=a+"="+encodeURIComponent(b)+(c?"; expires="+c:"")+(d?"; path="+d:"")+(e?"; domain="+e:"")+(f?"; secure":"")},remove:function(a,b,c,d){this.set(a,"",-1e3,b,c,d)}};
\ No newline at end of file
index 7d1c6774e8897e2466829175abde458269bc65b0..04012176e2e0de159e98fa38f0a1db9f37d1b715 100644 (file)
@@ -2,7 +2,10 @@
 var wpLink;
 
 ( function( $ ) {
 var wpLink;
 
 ( function( $ ) {
-       var inputs = {}, rivers = {}, editor, searchTimer, River, Query;
+       var editor, searchTimer, River, Query,
+               inputs = {},
+               rivers = {},
+               isTouch = ( 'ontouchend' in document );
 
        wpLink = {
                timeToTriggerRiver: 150,
 
        wpLink = {
                timeToTriggerRiver: 150,
@@ -31,6 +34,11 @@ var wpLink;
                        rivers.recent = new River( $( '#most-recent-results' ) );
                        rivers.elements = inputs.dialog.find( '.query-results' );
 
                        rivers.recent = new River( $( '#most-recent-results' ) );
                        rivers.elements = inputs.dialog.find( '.query-results' );
 
+                       // Get search notice text
+                       inputs.queryNotice = $( '#query-notice-message' );
+                       inputs.queryNoticeTextDefault = inputs.queryNotice.find( '.query-notice-default' );
+                       inputs.queryNoticeTextHint = inputs.queryNotice.find( '.query-notice-hint' );
+
                        // Bind event handlers
                        inputs.dialog.keydown( wpLink.keydown );
                        inputs.dialog.keyup( wpLink.keyup );
                        // Bind event handlers
                        inputs.dialog.keydown( wpLink.keydown );
                        inputs.dialog.keyup( wpLink.keyup );
@@ -43,10 +51,19 @@ var wpLink;
                                wpLink.close();
                        });
 
                                wpLink.close();
                        });
 
-                       $( '#wp-link-search-toggle' ).click( wpLink.toggleInternalLinking );
+                       $( '#wp-link-search-toggle' ).on( 'click', wpLink.toggleInternalLinking );
 
                        rivers.elements.on( 'river-select', wpLink.updateFields );
 
 
                        rivers.elements.on( 'river-select', wpLink.updateFields );
 
+                       // Display 'hint' message when search field or 'query-results' box are focused
+                       inputs.search.on( 'focus.wplink', function() {
+                               inputs.queryNoticeTextDefault.hide();
+                               inputs.queryNoticeTextHint.removeClass( 'screen-reader-text' ).show();
+                       } ).on( 'blur.wplink', function() {
+                               inputs.queryNoticeTextDefault.show();
+                               inputs.queryNoticeTextHint.addClass( 'screen-reader-text' ).hide();
+                       } );
+
                        inputs.search.keyup( function() {
                                var self = this;
 
                        inputs.search.keyup( function() {
                                var self = this;
 
@@ -59,7 +76,7 @@ var wpLink;
 
                open: function( editorId ) {
                        var ed;
 
                open: function( editorId ) {
                        var ed;
-                       
+
                        wpLink.range = null;
 
                        if ( editorId ) {
                        wpLink.range = null;
 
                        if ( editorId ) {
@@ -95,6 +112,7 @@ var wpLink;
                        inputs.backdrop.show();
 
                        wpLink.refresh();
                        inputs.backdrop.show();
 
                        wpLink.refresh();
+                       $( document ).trigger( 'wplink-open', inputs.wrap );
                },
 
                isMCE: function() {
                },
 
                isMCE: function() {
@@ -106,18 +124,26 @@ var wpLink;
                        rivers.search.refresh();
                        rivers.recent.refresh();
 
                        rivers.search.refresh();
                        rivers.recent.refresh();
 
-                       if ( wpLink.isMCE() )
+                       if ( wpLink.isMCE() ) {
                                wpLink.mceRefresh();
                                wpLink.mceRefresh();
-                       else
+                       } else {
                                wpLink.setDefaultValues();
                                wpLink.setDefaultValues();
+                       }
+
+                       if ( isTouch ) {
+                               // Close the onscreen keyboard
+                               inputs.url.focus().blur();
+                       } else {
+                               // Focus the URL field and highlight its contents.
+                               // If this is moved above the selection changes,
+                               // IE will show a flashing cursor over the dialog.
+                               inputs.url.focus()[0].select();
+                       }
 
 
-                       // Focus the URL field and highlight its contents.
-                       //     If this is moved above the selection changes,
-                       //     IE will show a flashing cursor over the dialog.
-                       inputs.url.focus()[0].select();
                        // Load the most recent results if this is the first time opening the panel.
                        // Load the most recent results if this is the first time opening the panel.
-                       if ( ! rivers.recent.ul.children().length )
+                       if ( ! rivers.recent.ul.children().length ) {
                                rivers.recent.ajax();
                                rivers.recent.ajax();
+                       }
                },
 
                mceRefresh: function() {
                },
 
                mceRefresh: function() {
@@ -153,6 +179,7 @@ var wpLink;
 
                        inputs.backdrop.hide();
                        inputs.wrap.hide();
 
                        inputs.backdrop.hide();
                        inputs.wrap.hide();
+                       $( document ).trigger( 'wplink-close', inputs.wrap );
                },
 
                getAttrs: function() {
                },
 
                getAttrs: function() {
@@ -260,17 +287,28 @@ var wpLink;
                        editor.selection.collapse();
                },
 
                        editor.selection.collapse();
                },
 
-               updateFields: function( e, li, originalEvent ) {
+               updateFields: function( e, li ) {
                        inputs.url.val( li.children( '.item-permalink' ).val() );
                        inputs.title.val( li.hasClass( 'no-title' ) ? '' : li.children( '.item-title' ).text() );
                        inputs.url.val( li.children( '.item-permalink' ).val() );
                        inputs.title.val( li.hasClass( 'no-title' ) ? '' : li.children( '.item-title' ).text() );
-                       if ( originalEvent && originalEvent.type == 'click' )
-                               inputs.url.focus();
                },
 
                setDefaultValues: function() {
                },
 
                setDefaultValues: function() {
-                       // Set URL and description to defaults.
-                       // Leave the new tab setting as-is.
-                       inputs.url.val( 'http://' );
+                       var selection = editor && editor.selection.getContent(),
+                               emailRegexp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i,
+                               urlRegexp = /^(https?|ftp):\/\/[A-Z0-9.-]+\.[A-Z]{2,4}[^ "]*$/i;
+
+                       if ( selection && emailRegexp.test( selection ) ) {
+                               // Selection is email address
+                               inputs.url.val( 'mailto:' + selection );
+                       } else if ( selection && urlRegexp.test( selection ) ) {
+                               // Selection is URL
+                               inputs.url.val( selection.replace( /&amp;|&#0?38;/gi, '&' ) );
+                       } else {
+                               // Set URL to default.
+                               inputs.url.val( 'http://' );
+                       }
+
+                       // Set description to default.
                        inputs.title.val( '' );
 
                        // Update save prompt.
                        inputs.title.val( '' );
 
                        // Update save prompt.
@@ -322,6 +360,8 @@ var wpLink;
                        } else if ( key.TAB === event.keyCode ) {
                                id = event.target.id;
 
                        } else if ( key.TAB === event.keyCode ) {
                                id = event.target.id;
 
+                               // wp-link-submit must always be the last focusable element in the dialog.
+                               // following focusable elements will be skipped on keyboard navigation.
                                if ( id === 'wp-link-submit' && ! event.shiftKey ) {
                                        inputs.close.focus();
                                        event.preventDefault();
                                if ( id === 'wp-link-submit' && ! event.shiftKey ) {
                                        inputs.close.focus();
                                        event.preventDefault();
@@ -335,6 +375,11 @@ var wpLink;
                                return;
                        }
 
                                return;
                        }
 
+                       if ( document.activeElement &&
+                               ( document.activeElement.id === 'link-title-field' || document.activeElement.id === 'url-field' ) ) {
+                               return;
+                       }
+
                        fn = event.keyCode === key.UP ? 'prev' : 'next';
                        clearInterval( wpLink.keyInterval );
                        wpLink[ fn ]();
                        fn = event.keyCode === key.UP ? 'prev' : 'next';
                        clearInterval( wpLink.keyInterval );
                        wpLink[ fn ]();
@@ -374,12 +419,13 @@ var wpLink;
                        };
                },
 
                        };
                },
 
-               toggleInternalLinking: function() {
+               toggleInternalLinking: function( event ) {
                        var visible = inputs.wrap.hasClass( 'search-panel-visible' );
 
                        inputs.wrap.toggleClass( 'search-panel-visible', ! visible );
                        setUserSetting( 'wplink', visible ? '0' : '1' );
                        inputs[ ! visible ? 'search' : 'url' ].focus();
                        var visible = inputs.wrap.hasClass( 'search-panel-visible' );
 
                        inputs.wrap.toggleClass( 'search-panel-visible', ! visible );
                        setUserSetting( 'wplink', visible ? '0' : '1' );
                        inputs[ ! visible ? 'search' : 'url' ].focus();
+                       event.preventDefault();
                }
        };
 
                }
        };
 
@@ -489,7 +535,7 @@ var wpLink;
 
                        if ( ! results ) {
                                if ( firstPage ) {
 
                        if ( ! results ) {
                                if ( firstPage ) {
-                                       list += '<li class="unselectable"><span class="item-title"><em>' +
+                                       list += '<li class="unselectable no-matches-found"><span class="item-title"><em>' +
                                                wpLinkL10n.noMatchesFound + '</em></span></li>';
                                }
                        } else {
                                                wpLinkL10n.noMatchesFound + '</em></span></li>';
                                }
                        } else {
index 5aaeeef1965260f181cc7f13047eab60f941f058..cbdcd13d9d0e5cf5d2337977852efa49045a9ed7 100644 (file)
@@ -1 +1 @@
-var wpLink;!function(a){var b,c,d,e,f={},g={};wpLink={timeToTriggerRiver:150,minRiverAJAXDuration:200,riverBottomThreshold:5,keySensitivity:100,lastSearch:"",textarea:"",init:function(){f.wrap=a("#wp-link-wrap"),f.dialog=a("#wp-link"),f.backdrop=a("#wp-link-backdrop"),f.submit=a("#wp-link-submit"),f.close=a("#wp-link-close"),f.url=a("#url-field"),f.nonce=a("#_ajax_linking_nonce"),f.title=a("#link-title-field"),f.openInNewTab=a("#link-target-checkbox"),f.search=a("#search-field"),g.search=new d(a("#search-results")),g.recent=new d(a("#most-recent-results")),g.elements=f.dialog.find(".query-results"),f.dialog.keydown(wpLink.keydown),f.dialog.keyup(wpLink.keyup),f.submit.click(function(a){a.preventDefault(),wpLink.update()}),f.close.add(f.backdrop).add("#wp-link-cancel a").click(function(a){a.preventDefault(),wpLink.close()}),a("#wp-link-search-toggle").click(wpLink.toggleInternalLinking),g.elements.on("river-select",wpLink.updateFields),f.search.keyup(function(){var a=this;window.clearTimeout(c),c=window.setTimeout(function(){wpLink.searchInternalLinks.call(a)},500)})},open:function(c){var d;wpLink.range=null,c&&(window.wpActiveEditor=c),window.wpActiveEditor&&(this.textarea=a("#"+window.wpActiveEditor).get(0),"undefined"!=typeof tinymce&&(d=tinymce.get(wpActiveEditor),b=d&&!d.isHidden()?d:null,b&&tinymce.isIE&&(b.windowManager.bookmark=b.selection.getBookmark())),!wpLink.isMCE()&&document.selection&&(this.textarea.focus(),this.range=document.selection.createRange()),f.wrap.show(),f.backdrop.show(),wpLink.refresh())},isMCE:function(){return b&&!b.isHidden()},refresh:function(){g.search.refresh(),g.recent.refresh(),wpLink.isMCE()?wpLink.mceRefresh():wpLink.setDefaultValues(),f.url.focus()[0].select(),g.recent.ul.children().length||g.recent.ajax()},mceRefresh:function(){var a;(a=b.dom.getParent(b.selection.getNode(),"A"))?(f.url.val(b.dom.getAttrib(a,"href")),f.title.val(b.dom.getAttrib(a,"title")),f.openInNewTab.prop("checked","_blank"===b.dom.getAttrib(a,"target")),f.submit.val(wpLinkL10n.update)):wpLink.setDefaultValues()},close:function(){wpLink.isMCE()?b.focus():(wpLink.textarea.focus(),wpLink.range&&(wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select())),f.backdrop.hide(),f.wrap.hide()},getAttrs:function(){return{href:f.url.val(),title:f.title.val(),target:f.openInNewTab.prop("checked")?"_blank":""}},update:function(){wpLink.isMCE()?wpLink.mceUpdate():wpLink.htmlUpdate()},htmlUpdate:function(){var a,b,c,d,e,f,g,h=wpLink.textarea;h&&(a=wpLink.getAttrs(),a.href&&"http://"!=a.href&&(b='<a href="'+a.href+'"',a.title&&(f=a.title.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),b+=' title="'+f+'"'),a.target&&(b+=' target="'+a.target+'"'),b+=">",document.selection&&wpLink.range?(h.focus(),wpLink.range.text=b+wpLink.range.text+"</a>",wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select(),wpLink.range=null):"undefined"!=typeof h.selectionStart&&(c=h.selectionStart,d=h.selectionEnd,g=h.value.substring(c,d),b=b+g+"</a>",e=c+b.length,c==d&&(e-="</a>".length),h.value=h.value.substring(0,c)+b+h.value.substring(d,h.value.length),h.selectionStart=h.selectionEnd=e),wpLink.close(),h.focus()))},mceUpdate:function(){var a,c=wpLink.getAttrs();return wpLink.close(),b.focus(),tinymce.isIE&&b.selection.moveToBookmark(b.windowManager.bookmark),a=b.dom.getParent(b.selection.getNode(),"a[href]"),c.href&&"http://"!=c.href?(a?b.dom.setAttribs(a,c):b.execCommand("mceInsertLink",!1,c),void b.selection.collapse()):void b.execCommand("unlink")},updateFields:function(a,b,c){f.url.val(b.children(".item-permalink").val()),f.title.val(b.hasClass("no-title")?"":b.children(".item-title").text()),c&&"click"==c.type&&f.url.focus()},setDefaultValues:function(){f.url.val("http://"),f.title.val(""),f.submit.val(wpLinkL10n.save)},searchInternalLinks:function(){var b,c=a(this),d=c.val();if(d.length>2){if(g.recent.hide(),g.search.show(),wpLink.lastSearch==d)return;wpLink.lastSearch=d,b=c.parent().find(".spinner").show(),g.search.change(d),g.search.ajax(function(){b.hide()})}else g.search.hide(),g.recent.show()},next:function(){g.search.next(),g.recent.next()},prev:function(){g.search.prev(),g.recent.prev()},keydown:function(b){var c,d,e=a.ui.keyCode;e.ESCAPE===b.keyCode?(wpLink.close(),b.stopImmediatePropagation()):e.TAB===b.keyCode&&(d=b.target.id,"wp-link-submit"!==d||b.shiftKey?"wp-link-close"===d&&b.shiftKey&&(f.submit.focus(),b.preventDefault()):(f.close.focus(),b.preventDefault())),(b.keyCode===e.UP||b.keyCode===e.DOWN)&&(c=b.keyCode===e.UP?"prev":"next",clearInterval(wpLink.keyInterval),wpLink[c](),wpLink.keyInterval=setInterval(wpLink[c],wpLink.keySensitivity),b.preventDefault())},keyup:function(b){var c=a.ui.keyCode;(b.which===c.UP||b.which===c.DOWN)&&(clearInterval(wpLink.keyInterval),b.preventDefault())},delayedCallback:function(a,b){var c,d,e,f;return b?(setTimeout(function(){return d?a.apply(f,e):void(c=!0)},b),function(){return c?a.apply(this,arguments):(e=arguments,f=this,void(d=!0))}):a},toggleInternalLinking:function(){var a=f.wrap.hasClass("search-panel-visible");f.wrap.toggleClass("search-panel-visible",!a),setUserSetting("wplink",a?"0":"1"),f[a?"url":"search"].focus()}},d=function(b,c){var d=this;this.element=b,this.ul=b.children("ul"),this.contentHeight=b.children("#link-selector-height"),this.waiting=b.find(".river-waiting"),this.change(c),this.refresh(),a("#wp-link .query-results, #wp-link #link-selector").scroll(function(){d.maybeLoad()}),b.on("click","li",function(b){d.select(a(this),b)})},a.extend(d.prototype,{refresh:function(){this.deselect(),this.visible=this.element.is(":visible")},show:function(){this.visible||(this.deselect(),this.element.show(),this.visible=!0)},hide:function(){this.element.hide(),this.visible=!1},select:function(a,b){var c,d,e,f;a.hasClass("unselectable")||a==this.selected||(this.deselect(),this.selected=a.addClass("selected"),c=a.outerHeight(),d=this.element.height(),e=a.position().top,f=this.element.scrollTop(),0>e?this.element.scrollTop(f+e):e+c>d&&this.element.scrollTop(f+e-d+c),this.element.trigger("river-select",[a,b,this]))},deselect:function(){this.selected&&this.selected.removeClass("selected"),this.selected=!1},prev:function(){if(this.visible){var a;this.selected&&(a=this.selected.prev("li"),a.length&&this.select(a))}},next:function(){if(this.visible){var b=this.selected?this.selected.next("li"):a("li:not(.unselectable):first",this.element);b.length&&this.select(b)}},ajax:function(a){var b=this,c=1==this.query.page?0:wpLink.minRiverAJAXDuration,d=wpLink.delayedCallback(function(c,d){b.process(c,d),a&&a(c,d)},c);this.query.ajax(d)},change:function(a){this.query&&this._search==a||(this._search=a,this.query=new e(a),this.element.scrollTop(0))},process:function(b,c){var d="",e=!0,f="",g=1==c.page;b?a.each(b,function(){f=e?"alternate":"",f+=this.title?"":" no-title",d+=f?'<li class="'+f+'">':"<li>",d+='<input type="hidden" class="item-permalink" value="'+this.permalink+'" />',d+='<span class="item-title">',d+=this.title?this.title:wpLinkL10n.noTitle,d+='</span><span class="item-info">'+this.info+"</span></li>",e=!e}):g&&(d+='<li class="unselectable"><span class="item-title"><em>'+wpLinkL10n.noMatchesFound+"</em></span></li>"),this.ul[g?"html":"append"](d)},maybeLoad:function(){var a=this,b=this.element,c=b.scrollTop()+b.height();!this.query.ready()||c<this.contentHeight.height()-wpLink.riverBottomThreshold||setTimeout(function(){var c=b.scrollTop(),d=c+b.height();!a.query.ready()||d<a.contentHeight.height()-wpLink.riverBottomThreshold||(a.waiting.show(),b.scrollTop(c+a.waiting.outerHeight()),a.ajax(function(){a.waiting.hide()}))},wpLink.timeToTriggerRiver)}}),e=function(a){this.page=1,this.allLoaded=!1,this.querying=!1,this.search=a},a.extend(e.prototype,{ready:function(){return!(this.querying||this.allLoaded)},ajax:function(b){var c=this,d={action:"wp-link-ajax",page:this.page,_ajax_linking_nonce:f.nonce.val()};this.search&&(d.search=this.search),this.querying=!0,a.post(ajaxurl,d,function(a){c.page++,c.querying=!1,c.allLoaded=!a,b(a,d)},"json")}}),a(document).ready(wpLink.init)}(jQuery);
\ No newline at end of file
+var wpLink;!function(a){var b,c,d,e,f={},g={},h="ontouchend"in document;wpLink={timeToTriggerRiver:150,minRiverAJAXDuration:200,riverBottomThreshold:5,keySensitivity:100,lastSearch:"",textarea:"",init:function(){f.wrap=a("#wp-link-wrap"),f.dialog=a("#wp-link"),f.backdrop=a("#wp-link-backdrop"),f.submit=a("#wp-link-submit"),f.close=a("#wp-link-close"),f.url=a("#url-field"),f.nonce=a("#_ajax_linking_nonce"),f.title=a("#link-title-field"),f.openInNewTab=a("#link-target-checkbox"),f.search=a("#search-field"),g.search=new d(a("#search-results")),g.recent=new d(a("#most-recent-results")),g.elements=f.dialog.find(".query-results"),f.queryNotice=a("#query-notice-message"),f.queryNoticeTextDefault=f.queryNotice.find(".query-notice-default"),f.queryNoticeTextHint=f.queryNotice.find(".query-notice-hint"),f.dialog.keydown(wpLink.keydown),f.dialog.keyup(wpLink.keyup),f.submit.click(function(a){a.preventDefault(),wpLink.update()}),f.close.add(f.backdrop).add("#wp-link-cancel a").click(function(a){a.preventDefault(),wpLink.close()}),a("#wp-link-search-toggle").on("click",wpLink.toggleInternalLinking),g.elements.on("river-select",wpLink.updateFields),f.search.on("focus.wplink",function(){f.queryNoticeTextDefault.hide(),f.queryNoticeTextHint.removeClass("screen-reader-text").show()}).on("blur.wplink",function(){f.queryNoticeTextDefault.show(),f.queryNoticeTextHint.addClass("screen-reader-text").hide()}),f.search.keyup(function(){var a=this;window.clearTimeout(c),c=window.setTimeout(function(){wpLink.searchInternalLinks.call(a)},500)})},open:function(c){var d;wpLink.range=null,c&&(window.wpActiveEditor=c),window.wpActiveEditor&&(this.textarea=a("#"+window.wpActiveEditor).get(0),"undefined"!=typeof tinymce&&(d=tinymce.get(wpActiveEditor),b=d&&!d.isHidden()?d:null,b&&tinymce.isIE&&(b.windowManager.bookmark=b.selection.getBookmark())),!wpLink.isMCE()&&document.selection&&(this.textarea.focus(),this.range=document.selection.createRange()),f.wrap.show(),f.backdrop.show(),wpLink.refresh(),a(document).trigger("wplink-open",f.wrap))},isMCE:function(){return b&&!b.isHidden()},refresh:function(){g.search.refresh(),g.recent.refresh(),wpLink.isMCE()?wpLink.mceRefresh():wpLink.setDefaultValues(),h?f.url.focus().blur():f.url.focus()[0].select(),g.recent.ul.children().length||g.recent.ajax()},mceRefresh:function(){var a;(a=b.dom.getParent(b.selection.getNode(),"A"))?(f.url.val(b.dom.getAttrib(a,"href")),f.title.val(b.dom.getAttrib(a,"title")),f.openInNewTab.prop("checked","_blank"===b.dom.getAttrib(a,"target")),f.submit.val(wpLinkL10n.update)):wpLink.setDefaultValues()},close:function(){wpLink.isMCE()?b.focus():(wpLink.textarea.focus(),wpLink.range&&(wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select())),f.backdrop.hide(),f.wrap.hide(),a(document).trigger("wplink-close",f.wrap)},getAttrs:function(){return{href:f.url.val(),title:f.title.val(),target:f.openInNewTab.prop("checked")?"_blank":""}},update:function(){wpLink.isMCE()?wpLink.mceUpdate():wpLink.htmlUpdate()},htmlUpdate:function(){var a,b,c,d,e,f,g,h=wpLink.textarea;h&&(a=wpLink.getAttrs(),a.href&&"http://"!=a.href&&(b='<a href="'+a.href+'"',a.title&&(f=a.title.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),b+=' title="'+f+'"'),a.target&&(b+=' target="'+a.target+'"'),b+=">",document.selection&&wpLink.range?(h.focus(),wpLink.range.text=b+wpLink.range.text+"</a>",wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select(),wpLink.range=null):"undefined"!=typeof h.selectionStart&&(c=h.selectionStart,d=h.selectionEnd,g=h.value.substring(c,d),b=b+g+"</a>",e=c+b.length,c==d&&(e-="</a>".length),h.value=h.value.substring(0,c)+b+h.value.substring(d,h.value.length),h.selectionStart=h.selectionEnd=e),wpLink.close(),h.focus()))},mceUpdate:function(){var a,c=wpLink.getAttrs();return wpLink.close(),b.focus(),tinymce.isIE&&b.selection.moveToBookmark(b.windowManager.bookmark),a=b.dom.getParent(b.selection.getNode(),"a[href]"),c.href&&"http://"!=c.href?(a?b.dom.setAttribs(a,c):b.execCommand("mceInsertLink",!1,c),void b.selection.collapse()):void b.execCommand("unlink")},updateFields:function(a,b){f.url.val(b.children(".item-permalink").val()),f.title.val(b.hasClass("no-title")?"":b.children(".item-title").text())},setDefaultValues:function(){var a=b&&b.selection.getContent(),c=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i,d=/^(https?|ftp):\/\/[A-Z0-9.-]+\.[A-Z]{2,4}[^ "]*$/i;f.url.val(a&&c.test(a)?"mailto:"+a:a&&d.test(a)?a.replace(/&amp;|&#0?38;/gi,"&"):"http://"),f.title.val(""),f.submit.val(wpLinkL10n.save)},searchInternalLinks:function(){var b,c=a(this),d=c.val();if(d.length>2){if(g.recent.hide(),g.search.show(),wpLink.lastSearch==d)return;wpLink.lastSearch=d,b=c.parent().find(".spinner").show(),g.search.change(d),g.search.ajax(function(){b.hide()})}else g.search.hide(),g.recent.show()},next:function(){g.search.next(),g.recent.next()},prev:function(){g.search.prev(),g.recent.prev()},keydown:function(b){var c,d,e=a.ui.keyCode;e.ESCAPE===b.keyCode?(wpLink.close(),b.stopImmediatePropagation()):e.TAB===b.keyCode&&(d=b.target.id,"wp-link-submit"!==d||b.shiftKey?"wp-link-close"===d&&b.shiftKey&&(f.submit.focus(),b.preventDefault()):(f.close.focus(),b.preventDefault())),(b.keyCode===e.UP||b.keyCode===e.DOWN)&&(!document.activeElement||"link-title-field"!==document.activeElement.id&&"url-field"!==document.activeElement.id)&&(c=b.keyCode===e.UP?"prev":"next",clearInterval(wpLink.keyInterval),wpLink[c](),wpLink.keyInterval=setInterval(wpLink[c],wpLink.keySensitivity),b.preventDefault())},keyup:function(b){var c=a.ui.keyCode;(b.which===c.UP||b.which===c.DOWN)&&(clearInterval(wpLink.keyInterval),b.preventDefault())},delayedCallback:function(a,b){var c,d,e,f;return b?(setTimeout(function(){return d?a.apply(f,e):void(c=!0)},b),function(){return c?a.apply(this,arguments):(e=arguments,f=this,void(d=!0))}):a},toggleInternalLinking:function(a){var b=f.wrap.hasClass("search-panel-visible");f.wrap.toggleClass("search-panel-visible",!b),setUserSetting("wplink",b?"0":"1"),f[b?"url":"search"].focus(),a.preventDefault()}},d=function(b,c){var d=this;this.element=b,this.ul=b.children("ul"),this.contentHeight=b.children("#link-selector-height"),this.waiting=b.find(".river-waiting"),this.change(c),this.refresh(),a("#wp-link .query-results, #wp-link #link-selector").scroll(function(){d.maybeLoad()}),b.on("click","li",function(b){d.select(a(this),b)})},a.extend(d.prototype,{refresh:function(){this.deselect(),this.visible=this.element.is(":visible")},show:function(){this.visible||(this.deselect(),this.element.show(),this.visible=!0)},hide:function(){this.element.hide(),this.visible=!1},select:function(a,b){var c,d,e,f;a.hasClass("unselectable")||a==this.selected||(this.deselect(),this.selected=a.addClass("selected"),c=a.outerHeight(),d=this.element.height(),e=a.position().top,f=this.element.scrollTop(),0>e?this.element.scrollTop(f+e):e+c>d&&this.element.scrollTop(f+e-d+c),this.element.trigger("river-select",[a,b,this]))},deselect:function(){this.selected&&this.selected.removeClass("selected"),this.selected=!1},prev:function(){if(this.visible){var a;this.selected&&(a=this.selected.prev("li"),a.length&&this.select(a))}},next:function(){if(this.visible){var b=this.selected?this.selected.next("li"):a("li:not(.unselectable):first",this.element);b.length&&this.select(b)}},ajax:function(a){var b=this,c=1==this.query.page?0:wpLink.minRiverAJAXDuration,d=wpLink.delayedCallback(function(c,d){b.process(c,d),a&&a(c,d)},c);this.query.ajax(d)},change:function(a){this.query&&this._search==a||(this._search=a,this.query=new e(a),this.element.scrollTop(0))},process:function(b,c){var d="",e=!0,f="",g=1==c.page;b?a.each(b,function(){f=e?"alternate":"",f+=this.title?"":" no-title",d+=f?'<li class="'+f+'">':"<li>",d+='<input type="hidden" class="item-permalink" value="'+this.permalink+'" />',d+='<span class="item-title">',d+=this.title?this.title:wpLinkL10n.noTitle,d+='</span><span class="item-info">'+this.info+"</span></li>",e=!e}):g&&(d+='<li class="unselectable no-matches-found"><span class="item-title"><em>'+wpLinkL10n.noMatchesFound+"</em></span></li>"),this.ul[g?"html":"append"](d)},maybeLoad:function(){var a=this,b=this.element,c=b.scrollTop()+b.height();!this.query.ready()||c<this.contentHeight.height()-wpLink.riverBottomThreshold||setTimeout(function(){var c=b.scrollTop(),d=c+b.height();!a.query.ready()||d<a.contentHeight.height()-wpLink.riverBottomThreshold||(a.waiting.show(),b.scrollTop(c+a.waiting.outerHeight()),a.ajax(function(){a.waiting.hide()}))},wpLink.timeToTriggerRiver)}}),e=function(a){this.page=1,this.allLoaded=!1,this.querying=!1,this.search=a},a.extend(e.prototype,{ready:function(){return!(this.querying||this.allLoaded)},ajax:function(b){var c=this,d={action:"wp-link-ajax",page:this.page,_ajax_linking_nonce:f.nonce.val()};this.search&&(d.search=this.search),this.querying=!0,a.post(ajaxurl,d,function(a){c.page++,c.querying=!1,c.allLoaded=!a,b(a,d)},"json")}}),a(document).ready(wpLink.init)}(jQuery);
\ No newline at end of file
index 9d8d6fed1934fff3d2de3ec8617061d5c8f9efa7..0b552955e2fe2eb4ad96be778e9617393b8eefb0 100644 (file)
 if ( ! defined( 'CUSTOM_TAGS' ) )
        define( 'CUSTOM_TAGS', false );
 
 if ( ! defined( 'CUSTOM_TAGS' ) )
        define( 'CUSTOM_TAGS', false );
 
+// Ensure that these variables are added to the global namespace
+// (e.g. if using namespaces / autoload in the current PHP environment).
+global $allowedposttags, $allowedtags, $allowedentitynames;
+
 if ( ! CUSTOM_TAGS ) {
        /**
         * Kses global for default allowable HTML tags.
 if ( ! CUSTOM_TAGS ) {
        /**
         * Kses global for default allowable HTML tags.
@@ -987,7 +991,9 @@ function wp_kses_bad_protocol($string, $allowed_protocols) {
 }
 
 /**
 }
 
 /**
- * Removes any null characters in $string.
+ * Removes any invalid control characters in $string.
+ *
+ * Also removes any instance of the '\0' string.
  *
  * @since 1.0.0
  *
  *
  * @since 1.0.0
  *
@@ -995,7 +1001,7 @@ function wp_kses_bad_protocol($string, $allowed_protocols) {
  * @return string
  */
 function wp_kses_no_null($string) {
  * @return string
  */
 function wp_kses_no_null($string) {
-       $string = preg_replace('/\0+/', '', $string);
+       $string = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F]/', '', $string);
        $string = preg_replace('/(\\\\0)+/', '', $string);
 
        return $string;
        $string = preg_replace('/(\\\\0)+/', '', $string);
 
        return $string;
index 541cb15f99086deb94967813ba3216cf8f5793c3..23174552448bdb2f83c3329d96361fdf07a30c19 100644 (file)
@@ -24,9 +24,9 @@
  * @return string The locale of the blog or from the 'locale' hook.
  */
 function get_locale() {
  * @return string The locale of the blog or from the 'locale' hook.
  */
 function get_locale() {
-       global $locale;
+       global $locale, $wp_local_package;
 
 
-       if ( isset( $locale ) )
+       if ( isset( $locale ) ) {
                /**
                 * Filter WordPress install's locale ID.
                 *
                /**
                 * Filter WordPress install's locale ID.
                 *
@@ -35,23 +35,37 @@ function get_locale() {
                 * @param string $locale The locale ID.
                 */
                return apply_filters( 'locale', $locale );
                 * @param string $locale The locale ID.
                 */
                return apply_filters( 'locale', $locale );
+       }
+
+       if ( isset( $wp_local_package ) ) {
+               $locale = $wp_local_package;
+       }
 
 
-       // WPLANG is defined in wp-config.
-       if ( defined( 'WPLANG' ) )
+       // WPLANG was defined in wp-config.
+       if ( defined( 'WPLANG' ) ) {
                $locale = WPLANG;
                $locale = WPLANG;
+       }
 
        // If multisite, check options.
        if ( is_multisite() ) {
                // Don't check blog option when installing.
 
        // If multisite, check options.
        if ( is_multisite() ) {
                // Don't check blog option when installing.
-               if ( defined( 'WP_INSTALLING' ) || ( false === $ms_locale = get_option( 'WPLANG' ) ) )
-                       $ms_locale = get_site_option('WPLANG');
+               if ( defined( 'WP_INSTALLING' ) || ( false === $ms_locale = get_option( 'WPLANG' ) ) ) {
+                       $ms_locale = get_site_option( 'WPLANG' );
+               }
 
 
-               if ( $ms_locale !== false )
+               if ( $ms_locale !== false ) {
                        $locale = $ms_locale;
                        $locale = $ms_locale;
+               }
+       } else {
+               $db_locale = get_option( 'WPLANG' );
+               if ( $db_locale !== false ) {
+                       $locale = $db_locale;
+               }
        }
 
        }
 
-       if ( empty( $locale ) )
+       if ( empty( $locale ) ) {
                $locale = 'en_US';
                $locale = 'en_US';
+       }
 
        /** This filter is documented in wp-includes/l10n.php */
        return apply_filters( 'locale', $locale );
 
        /** This filter is documented in wp-includes/l10n.php */
        return apply_filters( 'locale', $locale );
@@ -517,23 +531,32 @@ function unload_textdomain( $domain ) {
  * @see load_textdomain()
  *
  * @since 1.5.0
  * @see load_textdomain()
  *
  * @since 1.5.0
+ *
+ * @param string $locale Optional. Locale to load. Defaults to get_locale().
  */
  */
-function load_default_textdomain() {
-       $locale = get_locale();
+function load_default_textdomain( $locale = null ) {
+       if ( null === $locale ) {
+               $locale = get_locale();
+       }
 
 
-       load_textdomain( 'default', WP_LANG_DIR . "/$locale.mo" );
+       // Unload previously loaded strings so we can switch translations.
+       unload_textdomain( 'default' );
+
+       $return = load_textdomain( 'default', WP_LANG_DIR . "/$locale.mo" );
 
        if ( ( is_multisite() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) ) && ! file_exists(  WP_LANG_DIR . "/admin-$locale.mo" ) ) {
                load_textdomain( 'default', WP_LANG_DIR . "/ms-$locale.mo" );
 
        if ( ( is_multisite() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) ) && ! file_exists(  WP_LANG_DIR . "/admin-$locale.mo" ) ) {
                load_textdomain( 'default', WP_LANG_DIR . "/ms-$locale.mo" );
-               return;
+               return $return;
        }
 
        }
 
-       if ( is_admin() || ( defined( 'WP_REPAIRING' ) && WP_REPAIRING ) )
+       if ( is_admin() || defined( 'WP_INSTALLING' ) || ( defined( 'WP_REPAIRING' ) && WP_REPAIRING ) ) {
                load_textdomain( 'default', WP_LANG_DIR . "/admin-$locale.mo" );
                load_textdomain( 'default', WP_LANG_DIR . "/admin-$locale.mo" );
+       }
 
        if ( is_network_admin() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) )
                load_textdomain( 'default', WP_LANG_DIR . "/admin-network-$locale.mo" );
 
 
        if ( is_network_admin() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) )
                load_textdomain( 'default', WP_LANG_DIR . "/admin-network-$locale.mo" );
 
+       return $return;
 }
 
 /**
 }
 
 /**
@@ -548,6 +571,8 @@ function load_default_textdomain() {
  * @param string $domain          Unique identifier for retrieving translated strings
  * @param string $deprecated      Use the $plugin_rel_path parameter instead.
  * @param string $plugin_rel_path Optional. Relative path to WP_PLUGIN_DIR where the .mo file resides.
  * @param string $domain          Unique identifier for retrieving translated strings
  * @param string $deprecated      Use the $plugin_rel_path parameter instead.
  * @param string $plugin_rel_path Optional. Relative path to WP_PLUGIN_DIR where the .mo file resides.
+ *                                Default false.
+ * @return bool True when textdomain is successfully loaded, false otherwise.
  */
 function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path = false ) {
        $locale = get_locale();
  */
 function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path = false ) {
        $locale = get_locale();
@@ -656,6 +681,8 @@ function load_theme_textdomain( $domain, $path = false ) {
  * @since 2.9.0
  *
  * @param string $domain Text domain. Unique identifier for retrieving translated strings.
  * @since 2.9.0
  *
  * @param string $domain Text domain. Unique identifier for retrieving translated strings.
+ * @param string $path   Optional. Path to the directory containing the .mo file.
+ *                       Default false.
  * @return bool True when the theme textdomain is successfully loaded, false otherwise.
  */
 function load_child_theme_textdomain( $domain, $path = false ) {
  * @return bool True when the theme textdomain is successfully loaded, false otherwise.
  */
 function load_child_theme_textdomain( $domain, $path = false ) {
@@ -669,6 +696,8 @@ function load_child_theme_textdomain( $domain, $path = false ) {
  *
  * If there isn't one, returns empty Translations instance.
  *
  *
  * If there isn't one, returns empty Translations instance.
  *
+ * @since 2.8.0
+ *
  * @param string $domain Text domain. Unique identifier for retrieving translated strings.
  * @return Translations A Translations instance.
  */
  * @param string $domain Text domain. Unique identifier for retrieving translated strings.
  * @return Translations A Translations instance.
  */
@@ -684,6 +713,7 @@ function get_translations_for_domain( $domain ) {
  * Whether there are translations for the text domain.
  *
  * @since 3.0.0
  * Whether there are translations for the text domain.
  *
  * @since 3.0.0
+ *
  * @param string $domain Text domain. Unique identifier for retrieving translated strings.
  * @return bool Whether there are translations.
  */
  * @param string $domain Text domain. Unique identifier for retrieving translated strings.
  * @return bool Whether there are translations.
  */
@@ -803,3 +833,69 @@ function wp_get_pomo_file_data( $po_file ) {
        }
        return $headers;
 }
        }
        return $headers;
 }
+
+/**
+ * Language selector.
+ *
+ * @since 4.0.0
+ *
+ * @see get_available_languages()
+ * @see wp_get_available_translations()
+ *
+ * @param array $args Optional arguments. Default empty array.
+ */
+function wp_dropdown_languages( $args = array() ) {
+       require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
+
+       $args = wp_parse_args( $args, array(
+               'id'        => '',
+               'name'      => '',
+               'languages' => array(),
+               'selected'  => ''
+       ) );
+
+       if ( empty( $args['languages'] ) ) {
+               return false;
+       }
+
+       $translations = wp_get_available_translations();
+
+       /*
+        * $args['languages'] should only contain the locales. Find the locale in
+        * $translations to get the native name. Fall back to locale.
+        */
+       $languages = array();
+       foreach ( $args['languages'] as $locale ) {
+               if ( isset( $translations[ $locale ] ) ) {
+                       $translation = $translations[ $locale ];
+                       $languages[] = array(
+                               'language'    => $translation['language'],
+                               'native_name' => $translation['native_name'],
+                               'lang'        => $translation['iso'][1],
+                       );
+               } else {
+                       $languages[] = array(
+                               'language'    => $locale,
+                               'native_name' => $locale,
+                               'lang'        => '',
+                       );
+               }
+       }
+
+       printf( '<select name="%s" id="%s">', esc_attr( $args['name'] ), esc_attr( $args['id'] ) );
+
+       // List installed languages.
+       echo '<option value="" lang="en">English (United States)</option>';
+       foreach ( $languages as $language ) {
+               $selected = selected( $language['language'], $args['selected'], false );
+               printf(
+                       '<option value="%s" lang="%s"%s>%s</option>',
+                       esc_attr( $language['language'] ),
+                       esc_attr( $language['lang'] ),
+                       $selected,
+                       esc_html( $language['native_name'] )
+               );
+       }
+
+       echo '</select>';
+}
index 07f260d498c09e6ae010391030f71f6b3dae3aa7..7a7b7874ed616a3da0e3efb82a4c291a9fbec804 100644 (file)
@@ -136,11 +136,11 @@ function get_permalink( $id = 0, $leavename = false ) {
                return false;
 
        if ( $post->post_type == 'page' )
                return false;
 
        if ( $post->post_type == 'page' )
-               return get_page_link($post->ID, $leavename, $sample);
+               return get_page_link($post, $leavename, $sample);
        elseif ( $post->post_type == 'attachment' )
        elseif ( $post->post_type == 'attachment' )
-               return get_attachment_link( $post->ID, $leavename );
+               return get_attachment_link( $post, $leavename );
        elseif ( in_array($post->post_type, get_post_types( array('_builtin' => false) ) ) )
        elseif ( in_array($post->post_type, get_post_types( array('_builtin' => false) ) ) )
-               return get_post_permalink($post->ID, $leavename, $sample);
+               return get_post_permalink($post, $leavename, $sample);
 
        $permalink = get_option('permalink_structure');
 
 
        $permalink = get_option('permalink_structure');
 
@@ -290,7 +290,7 @@ function get_post_permalink( $id = 0, $leavename = false, $sample = false ) {
  *
  * @since 1.0.0
  *
  *
  * @since 1.0.0
  *
- * @param int $post_id Optional. Post ID.
+ * @param int|WP_Post $post_id Optional. Post ID or WP_Post object. Default is global $post.
  * @param mixed $deprecated Not used.
  * @return string
  */
  * @param mixed $deprecated Not used.
  * @return string
  */
@@ -1196,23 +1196,25 @@ function get_edit_post_link( $id = 0, $context = 'display' ) {
  *
  * @since 1.0.0
  *
  *
  * @since 1.0.0
  *
- * @param string $link Optional. Anchor text.
+ * @param string $text Optional. Anchor text.
  * @param string $before Optional. Display before edit link.
  * @param string $after Optional. Display after edit link.
  * @param int $id Optional. Post ID.
  */
  * @param string $before Optional. Display before edit link.
  * @param string $after Optional. Display after edit link.
  * @param int $id Optional. Post ID.
  */
-function edit_post_link( $link = null, $before = '', $after = '', $id = 0 ) {
-       if ( !$post = get_post( $id ) )
+function edit_post_link( $text = null, $before = '', $after = '', $id = 0 ) {
+       if ( ! $post = get_post( $id ) ) {
                return;
                return;
+       }
 
 
-       if ( !$url = get_edit_post_link( $post->ID ) )
+       if ( ! $url = get_edit_post_link( $post->ID ) ) {
                return;
                return;
+       }
 
 
-       if ( null === $link )
-               $link = __('Edit This');
+       if ( null === $text ) {
+               $text = __( 'Edit This' );
+       }
 
 
-       $post_type_obj = get_post_type_object( $post->post_type );
-       $link = '<a class="post-edit-link" href="' . $url . '">' . $link . '</a>';
+       $link = '<a class="post-edit-link" href="' . $url . '">' . $text . '</a>';
 
        /**
         * Filter the post edit link anchor tag.
 
        /**
         * Filter the post edit link anchor tag.
@@ -1221,8 +1223,9 @@ function edit_post_link( $link = null, $before = '', $after = '', $id = 0 ) {
         *
         * @param string $link    Anchor tag for the edit link.
         * @param int    $post_id Post ID.
         *
         * @param string $link    Anchor tag for the edit link.
         * @param int    $post_id Post ID.
+        * @param string $text    Anchor text.
         */
         */
-       echo $before . apply_filters( 'edit_post_link', $link, $post->ID ) . $after;
+       echo $before . apply_filters( 'edit_post_link', $link, $post->ID, $text ) . $after;
 }
 
 /**
 }
 
 /**
@@ -1298,20 +1301,22 @@ function get_edit_comment_link( $comment_id = 0 ) {
  *
  * @since 1.0.0
  *
  *
  * @since 1.0.0
  *
- * @param string $link Optional. Anchor text.
+ * @param string $text Optional. Anchor text.
  * @param string $before Optional. Display before edit link.
  * @param string $after Optional. Display after edit link.
  */
  * @param string $before Optional. Display before edit link.
  * @param string $after Optional. Display after edit link.
  */
-function edit_comment_link( $link = null, $before = '', $after = '' ) {
+function edit_comment_link( $text = null, $before = '', $after = '' ) {
        global $comment;
 
        global $comment;
 
-       if ( !current_user_can( 'edit_comment', $comment->comment_ID ) )
+       if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) ) {
                return;
                return;
+       }
 
 
-       if ( null === $link )
-               $link = __('Edit This');
+       if ( null === $text ) {
+               $text = __( 'Edit This' );
+       }
 
 
-       $link = '<a class="comment-edit-link" href="' . get_edit_comment_link( $comment->comment_ID ) . '">' . $link . '</a>';
+       $link = '<a class="comment-edit-link" href="' . get_edit_comment_link( $comment->comment_ID ) . '">' . $text . '</a>';
 
        /**
         * Filter the comment edit link anchor tag.
 
        /**
         * Filter the comment edit link anchor tag.
@@ -1320,8 +1325,9 @@ function edit_comment_link( $link = null, $before = '', $after = '' ) {
         *
         * @param string $link       Anchor tag for the edit link.
         * @param int    $comment_id Comment ID.
         *
         * @param string $link       Anchor tag for the edit link.
         * @param int    $comment_id Comment ID.
+        * @param string $text       Anchor text.
         */
         */
-       echo $before . apply_filters( 'edit_comment_link', $link, $comment->comment_ID ) . $after;
+       echo $before . apply_filters( 'edit_comment_link', $link, $comment->comment_ID, $text ) . $after;
 }
 
 /**
 }
 
 /**
@@ -1471,41 +1477,41 @@ function get_adjacent_post( $in_same_term = false, $excluded_terms = '', $previo
        $current_post_date = $post->post_date;
 
        $join = '';
        $current_post_date = $post->post_date;
 
        $join = '';
-       $posts_in_ex_terms_sql = '';
+       $where = '';
+
        if ( $in_same_term || ! empty( $excluded_terms ) ) {
                $join = " INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id";
        if ( $in_same_term || ! empty( $excluded_terms ) ) {
                $join = " INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id";
+               $where = $wpdb->prepare( "AND tt.taxonomy = %s", $taxonomy );
+
+               if ( ! empty( $excluded_terms ) && ! is_array( $excluded_terms ) ) {
+                       // back-compat, $excluded_terms used to be $excluded_terms with IDs separated by " and "
+                       if ( false !== strpos( $excluded_terms, ' and ' ) ) {
+                               _deprecated_argument( __FUNCTION__, '3.3', sprintf( __( 'Use commas instead of %s to separate excluded terms.' ), "'and'" ) );
+                               $excluded_terms = explode( ' and ', $excluded_terms );
+                       } else {
+                               $excluded_terms = explode( ',', $excluded_terms );
+                       }
+
+                       $excluded_terms = array_map( 'intval', $excluded_terms );
+               }
 
                if ( $in_same_term ) {
                        if ( ! is_object_in_taxonomy( $post->post_type, $taxonomy ) )
                                return '';
                        $term_array = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
 
                if ( $in_same_term ) {
                        if ( ! is_object_in_taxonomy( $post->post_type, $taxonomy ) )
                                return '';
                        $term_array = wp_get_object_terms( $post->ID, $taxonomy, array( 'fields' => 'ids' ) );
+
+                       // Remove any exclusions from the term array to include.
+                       $term_array = array_diff( $term_array, (array) $excluded_terms );
+                       $term_array = array_map( 'intval', $term_array );
+
                        if ( ! $term_array || is_wp_error( $term_array ) )
                                return '';
                        if ( ! $term_array || is_wp_error( $term_array ) )
                                return '';
-                       $join .= $wpdb->prepare( " AND tt.taxonomy = %s AND tt.term_id IN (" . implode( ',', array_map( 'intval', $term_array ) ) . ")", $taxonomy );
+
+                       $where .= " AND tt.term_id IN (" . implode( ',', $term_array ) . ")";
                }
 
                }
 
-               $posts_in_ex_terms_sql = $wpdb->prepare( "AND tt.taxonomy = %s", $taxonomy );
                if ( ! empty( $excluded_terms ) ) {
                if ( ! empty( $excluded_terms ) ) {
-                       if ( ! is_array( $excluded_terms ) ) {
-                               // back-compat, $excluded_terms used to be $excluded_terms with IDs separated by " and "
-                               if ( false !== strpos( $excluded_terms, ' and ' ) ) {
-                                       _deprecated_argument( __FUNCTION__, '3.3', sprintf( __( 'Use commas instead of %s to separate excluded terms.' ), "'and'" ) );
-                                       $excluded_terms = explode( ' and ', $excluded_terms );
-                               } else {
-                                       $excluded_terms = explode( ',', $excluded_terms );
-                               }
-                       }
-
-                       $excluded_terms = array_map( 'intval', $excluded_terms );
-
-                       if ( ! empty( $term_array ) ) {
-                               $excluded_terms = array_diff( $excluded_terms, $term_array );
-                               $posts_in_ex_terms_sql = '';
-                       }
-
-                       if ( ! empty( $excluded_terms ) ) {
-                               $posts_in_ex_terms_sql = $wpdb->prepare( " AND tt.taxonomy = %s AND tt.term_id NOT IN (" . implode( $excluded_terms, ',' ) . ')', $taxonomy );
-                       }
+                       $where .= " AND p.ID NOT IN ( SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id IN (" . implode( $excluded_terms, ',' ) . ') )';
                }
        }
 
                }
        }
 
@@ -1539,7 +1545,7 @@ function get_adjacent_post( $in_same_term = false, $excluded_terms = '', $previo
         * @param bool   $in_same_term   Whether post should be in a same taxonomy term.
         * @param array  $excluded_terms Array of excluded term IDs.
         */
         * @param bool   $in_same_term   Whether post should be in a same taxonomy term.
         * @param array  $excluded_terms Array of excluded term IDs.
         */
-       $where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $posts_in_ex_terms_sql", $current_post_date, $post->post_type), $in_same_term, $excluded_terms );
+       $where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $where", $current_post_date, $post->post_type ), $in_same_term, $excluded_terms );
 
        /**
         * Filter the ORDER BY clause in the SQL for an adjacent post query.
 
        /**
         * Filter the ORDER BY clause in the SQL for an adjacent post query.
@@ -1649,8 +1655,9 @@ function adjacent_posts_rel_link( $title = '%title', $in_same_term = false, $exc
  *
  */
 function adjacent_posts_rel_link_wp_head() {
  *
  */
 function adjacent_posts_rel_link_wp_head() {
-       if ( !is_singular() || is_attachment() )
+       if ( ! is_single() || is_attachment() ) {
                return;
                return;
+       }
        adjacent_posts_rel_link();
 }
 
        adjacent_posts_rel_link();
 }
 
@@ -1752,8 +1759,8 @@ function get_boundary_post( $in_same_term = false, $excluded_terms = '', $start
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  * @return string
  */
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  * @return string
  */
-function get_previous_post_link( $format = '&laquo; %link', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' ) {
-       return get_adjacent_post_link( $format, $link, $in_same_cat, $excluded_terms, true, $taxonomy );
+function get_previous_post_link( $format = '&laquo; %link', $link = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
+       return get_adjacent_post_link( $format, $link, $in_same_term, $excluded_terms, true, $taxonomy );
 }
 
 /**
 }
 
 /**
@@ -1768,8 +1775,8 @@ function get_previous_post_link( $format = '&laquo; %link', $link = '%title', $i
  * @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  */
  * @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  */
-function previous_post_link( $format = '&laquo; %link', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' ) {
-       echo get_previous_post_link( $format, $link, $in_same_cat, $excluded_terms, $taxonomy );
+function previous_post_link( $format = '&laquo; %link', $link = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
+       echo get_previous_post_link( $format, $link, $in_same_term, $excluded_terms, $taxonomy );
 }
 
 /**
 }
 
 /**
@@ -1784,8 +1791,8 @@ function previous_post_link( $format = '&laquo; %link', $link = '%title', $in_sa
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  * @return string
  */
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  * @return string
  */
-function get_next_post_link( $format = '%link &raquo;', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' ) {
-       return get_adjacent_post_link( $format, $link, $in_same_cat, $excluded_terms, false, $taxonomy );
+function get_next_post_link( $format = '%link &raquo;', $link = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
+       return get_adjacent_post_link( $format, $link, $in_same_term, $excluded_terms, false, $taxonomy );
 }
 
 /**
 }
 
 /**
@@ -1800,8 +1807,8 @@ function get_next_post_link( $format = '%link &raquo;', $link = '%title', $in_sa
  * @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  */
  * @param array|string $excluded_terms Optional. Array or comma-separated list of excluded term IDs.
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  */
-function next_post_link( $format = '%link &raquo;', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' ) {
-        echo get_next_post_link( $format, $link, $in_same_cat, $excluded_terms, $taxonomy );
+function next_post_link( $format = '%link &raquo;', $link = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' ) {
+        echo get_next_post_link( $format, $link, $in_same_term, $excluded_terms, $taxonomy );
 }
 
 /**
 }
 
 /**
@@ -1819,11 +1826,11 @@ function next_post_link( $format = '%link &raquo;', $link = '%title', $in_same_c
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  * @return string
  */
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  * @return string
  */
-function get_adjacent_post_link( $format, $link, $in_same_cat = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' ) {
+function get_adjacent_post_link( $format, $link, $in_same_term = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' ) {
        if ( $previous && is_attachment() )
                $post = get_post( get_post()->post_parent );
        else
        if ( $previous && is_attachment() )
                $post = get_post( get_post()->post_parent );
        else
-               $post = get_adjacent_post( $in_same_cat, $excluded_terms, $previous, $taxonomy );
+               $post = get_adjacent_post( $in_same_term, $excluded_terms, $previous, $taxonomy );
 
        if ( ! $post ) {
                $output = '';
 
        if ( ! $post ) {
                $output = '';
@@ -1875,14 +1882,14 @@ function get_adjacent_post_link( $format, $link, $in_same_cat = false, $excluded
  *
  * @param string       $format         Link anchor format.
  * @param string       $link           Link permalink format.
  *
  * @param string       $format         Link anchor format.
  * @param string       $link           Link permalink format.
- * @param bool         $in_same_cat    Optional. Whether link should be in a same category.
+ * @param bool         $in_same_term   Optional. Whether link should be in a same taxonomy term.
  * @param array|string $excluded_terms Optional. Array or comma-separated list of excluded category IDs.
  * @param bool         $previous       Optional. Whether to display link to previous or next post. Default true.
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  * @return string
  */
  * @param array|string $excluded_terms Optional. Array or comma-separated list of excluded category IDs.
  * @param bool         $previous       Optional. Whether to display link to previous or next post. Default true.
  * @param string       $taxonomy       Optional. Taxonomy, if $in_same_term is true. Default 'category'.
  * @return string
  */
-function adjacent_post_link( $format, $link, $in_same_cat = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' ) {
-       echo get_adjacent_post_link( $format, $link, $in_same_cat, $excluded_terms, $previous, $taxonomy );
+function adjacent_post_link( $format, $link, $in_same_term = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' ) {
+       echo get_adjacent_post_link( $format, $link, $in_same_term, $excluded_terms, $previous, $taxonomy );
 }
 
 /**
 }
 
 /**
@@ -2619,22 +2626,24 @@ function content_url($path = '') {
 }
 
 /**
 }
 
 /**
- * Retrieve the url to the plugins directory or to a specific file within that directory.
- * You can hardcode the plugin slug in $path or pass __FILE__ as a second argument to get the correct folder name.
+ * Retrieve a URL within the plugins or mu-plugins directory.
+ *
+ * Defaults to the plugins directory URL if no arguments are supplied.
  *
  * @since 2.6.0
  *
  *
  * @since 2.6.0
  *
- * @param string $path Optional. Path relative to the plugins url.
- * @param string $plugin Optional. The plugin file that you want to be relative to - i.e. pass in __FILE__
- * @return string Plugins url link with optional path appended.
+ * @param  string $path   Optional. Extra path appended to the end of the URL, including
+ *                        the relative directory if $plugin is supplied. Default empty.
+ * @param  string $plugin Optional. A full path to a file inside a plugin or mu-plugin.
+ *                        The URL will be relative to its directory. Default empty.
+ *                        Typically this is done by passing `__FILE__` as the argument.
+ * @return string Plugins URL link with optional paths appended.
 */
 */
-function plugins_url($path = '', $plugin = '') {
+function plugins_url( $path = '', $plugin = '' ) {
 
 
-       $mu_plugin_dir = WPMU_PLUGIN_DIR;
-       foreach ( array('path', 'plugin', 'mu_plugin_dir') as $var ) {
-               $$var = str_replace('\\' ,'/', $$var); // sanitize for Win32 installs
-               $$var = preg_replace('|/+|', '/', $$var);
-       }
+       $path = wp_normalize_path( $path );
+       $plugin = wp_normalize_path( $plugin );
+       $mu_plugin_dir = wp_normalize_path( WPMU_PLUGIN_DIR );
 
        if ( !empty($plugin) && 0 === strpos($plugin, $mu_plugin_dir) )
                $url = WPMU_PLUGIN_URL;
 
        if ( !empty($plugin) && 0 === strpos($plugin, $mu_plugin_dir) )
                $url = WPMU_PLUGIN_URL;
@@ -2839,15 +2848,13 @@ function self_admin_url($path = '', $scheme = 'admin') {
  */
 function set_url_scheme( $url, $scheme = null ) {
        $orig_scheme = $scheme;
  */
 function set_url_scheme( $url, $scheme = null ) {
        $orig_scheme = $scheme;
-       if ( ! in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) {
-               if ( ( 'login_post' == $scheme || 'rpc' == $scheme ) && ( force_ssl_login() || force_ssl_admin() ) )
-                       $scheme = 'https';
-               elseif ( ( 'login' == $scheme ) && force_ssl_admin() )
-                       $scheme = 'https';
-               elseif ( ( 'admin' == $scheme ) && force_ssl_admin() )
-                       $scheme = 'https';
-               else
-                       $scheme = ( is_ssl() ? 'https' : 'http' );
+
+       if ( ! $scheme ) {
+               $scheme = is_ssl() ? 'https' : 'http';
+       } elseif ( $scheme === 'admin' || $scheme === 'login' || $scheme === 'login_post' || $scheme === 'rpc' ) {
+               $scheme = is_ssl() || force_ssl_admin() ? 'https' : 'http';
+       } elseif ( $scheme !== 'http' && $scheme !== 'https' && $scheme !== 'relative' ) {
+               $scheme = is_ssl() ? 'https' : 'http';
        }
 
        $url = trim( $url );
        }
 
        $url = trim( $url );
index f46572e3ccd5b240221255e9f0c58854916b8593..07f2283ab9a8ac5eb7959da5a1af4038125dbb81 100644 (file)
 /**
  * Turn register globals off.
  *
 /**
  * Turn register globals off.
  *
- * @access private
  * @since 2.1.0
  * @since 2.1.0
- * @return null Will return null if register_globals PHP directive was disabled
+ * @access private
+ *
+ * @return null Will return null if register_globals PHP directive was disabled.
  */
 function wp_unregister_GLOBALS() {
        if ( !ini_get( 'register_globals' ) )
  */
 function wp_unregister_GLOBALS() {
        if ( !ini_get( 'register_globals' ) )
@@ -32,10 +33,13 @@ function wp_unregister_GLOBALS() {
 }
 
 /**
 }
 
 /**
- * Fix $_SERVER variables for various setups.
+ * Fix `$_SERVER` variables for various setups.
  *
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
+ *
+ * @global string $PHP_SELF The filename of the currently executing script,
+ *                          relative to the document root.
  */
 function wp_fix_server_vars() {
        global $PHP_SELF;
  */
 function wp_fix_server_vars() {
        global $PHP_SELF;
@@ -92,16 +96,21 @@ function wp_fix_server_vars() {
 }
 
 /**
 }
 
 /**
- * Check for the required PHP version, and the MySQL extension or a database drop-in.
+ * Check for the required PHP version, and the MySQL extension or
+ * a database drop-in.
  *
  * Dies if requirements are not met.
  *
  *
  * Dies if requirements are not met.
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
+ *
+ * @global string $required_php_version The required PHP version string.
+ * @global string $wp_version           The WordPress version string.
  */
 function wp_check_php_mysql_versions() {
        global $required_php_version, $wp_version;
        $php_version = phpversion();
  */
 function wp_check_php_mysql_versions() {
        global $required_php_version, $wp_version;
        $php_version = phpversion();
+
        if ( version_compare( $required_php_version, $php_version, '>' ) ) {
                wp_load_translations_early();
                header( 'Content-Type: text/html; charset=utf-8' );
        if ( version_compare( $required_php_version, $php_version, '>' ) ) {
                wp_load_translations_early();
                header( 'Content-Type: text/html; charset=utf-8' );
@@ -117,6 +126,7 @@ function wp_check_php_mysql_versions() {
 
 /**
  * Don't load all of WordPress when handling a favicon.ico request.
 
 /**
  * Don't load all of WordPress when handling a favicon.ico request.
+ *
  * Instead, send the headers for a zero-length favicon and bail.
  *
  * @since 3.0.0
  * Instead, send the headers for a zero-length favicon and bail.
  *
  * @since 3.0.0
@@ -130,7 +140,7 @@ function wp_favicon_request() {
 }
 
 /**
 }
 
 /**
- * Dies with a maintenance message when conditions are met.
+ * Die with a maintenance message when conditions are met.
  *
  * Checks for a file in the WordPress root directory named ".maintenance".
  * This file will contain the variable $upgrading, set to the time the file
  *
  * Checks for a file in the WordPress root directory named ".maintenance".
  * This file will contain the variable $upgrading, set to the time the file
@@ -140,8 +150,10 @@ function wp_favicon_request() {
  * The default message can be replaced by using a drop-in (maintenance.php in
  * the wp-content directory).
  *
  * The default message can be replaced by using a drop-in (maintenance.php in
  * the wp-content directory).
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
+ *
+ * @global int $upgrading the unix timestamp marking when upgrading WordPress began.
  */
 function wp_maintenance() {
        if ( !file_exists( ABSPATH . '.maintenance' ) || defined( 'WP_INSTALLING' ) )
  */
 function wp_maintenance() {
        if ( !file_exists( ABSPATH . '.maintenance' ) || defined( 'WP_INSTALLING' ) )
@@ -184,11 +196,14 @@ function wp_maintenance() {
 }
 
 /**
 }
 
 /**
- * PHP 5 standard microtime start capture.
+ * Start the WordPress micro-timer.
  *
  *
- * @access private
  * @since 0.71
  * @since 0.71
- * @global float $timestart Seconds from when function is called.
+ * @access private
+ *
+ * @global float $timestart Unix timestamp set at the beginning of the page load.
+ * @see timer_stop()
+ *
  * @return bool Always returns true.
  */
 function timer_start() {
  * @return bool Always returns true.
  */
 function timer_start() {
@@ -223,33 +238,34 @@ function timer_stop( $display = 0, $precision = 3 ) {
 }
 
 /**
 }
 
 /**
- * Sets PHP error handling and handles WordPress debug mode.
+ * Set PHP error reporting based on WordPress debug settings.
  *
  *
- * Uses three constants: WP_DEBUG, WP_DEBUG_DISPLAY, and WP_DEBUG_LOG. All three can be
- * defined in wp-config.php. Example: <code> define( 'WP_DEBUG', true ); </code>
+ * Uses three constants: `WP_DEBUG`, `WP_DEBUG_DISPLAY`, and `WP_DEBUG_LOG`.
+ * All three can be defined in wp-config.php, and by default are set to false.
  *
  *
- * WP_DEBUG_DISPLAY and WP_DEBUG_LOG perform no function unless WP_DEBUG is true.
- * WP_DEBUG defaults to false.
+ * When `WP_DEBUG` is true, all PHP notices are reported. WordPress will also
+ * display internal notices: when a deprecated WordPress function, function
+ * argument, or file is used. Deprecated code may be removed from a later
+ * version.
  *
  *
- * When WP_DEBUG is true, all PHP notices are reported. WordPress will also display
- * notices, including one when a deprecated WordPress function, function argument,
- * or file is used. Deprecated code may be removed from a later version.
+ * It is strongly recommended that plugin and theme developers use `WP_DEBUG`
+ * in their development environments.
  *
  *
- * It is strongly recommended that plugin and theme developers use WP_DEBUG in their
- * development environments.
+ * `WP_DEBUG_DISPLAY` and `WP_DEBUG_LOG` perform no function unless `WP_DEBUG`
+ * is true.
  *
  *
- * When WP_DEBUG_DISPLAY is true, WordPress will force errors to be displayed.
- * WP_DEBUG_DISPLAY defaults to true. Defining it as null prevents WordPress from
- * changing the global configuration setting. Defining WP_DEBUG_DISPLAY as false
- * will force errors to be hidden.
+ * When `WP_DEBUG_DISPLAY` is true, WordPress will force errors to be displayed.
+ * `WP_DEBUG_DISPLAY` defaults to true. Defining it as null prevents WordPress
+ * from changing the global configuration setting. Defining `WP_DEBUG_DISPLAY`
+ * as false will force errors to be hidden.
  *
  *
- * When WP_DEBUG_LOG is true, errors will be logged to wp-content/debug.log.
- * WP_DEBUG_LOG defaults to false.
+ * When `WP_DEBUG_LOG` is true, errors will be logged to debug.log in the content
+ * directory.
  *
  * Errors are never displayed for XML-RPC requests.
  *
  *
  * Errors are never displayed for XML-RPC requests.
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
  */
 function wp_debug_mode() {
        if ( WP_DEBUG ) {
  */
 function wp_debug_mode() {
        if ( WP_DEBUG ) {
@@ -272,30 +288,42 @@ function wp_debug_mode() {
 }
 
 /**
 }
 
 /**
- * Sets the location of the language directory.
- *
- * To set directory manually, define <code>WP_LANG_DIR</code> in wp-config.php.
+ * Set the location of the language directory.
  *
  *
- * If the language directory exists within WP_CONTENT_DIR, that is used.
- * Otherwise if the language directory exists within WPINC, that's used.
- * Finally, if neither of the preceding directories are found,
- * WP_CONTENT_DIR/languages is used.
+ * To set directory manually, define the `WP_LANG_DIR` constant
+ * in wp-config.php.
  *
  *
- * The WP_LANG_DIR constant was introduced in 2.1.0.
+ * If the language directory exists within `WP_CONTENT_DIR`, it
+ * is used. Otherwise the language directory is assumed to live
+ * in `WPINC`.
  *
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
  */
 function wp_set_lang_dir() {
        if ( !defined( 'WP_LANG_DIR' ) ) {
                if ( file_exists( WP_CONTENT_DIR . '/languages' ) && @is_dir( WP_CONTENT_DIR . '/languages' ) || !@is_dir(ABSPATH . WPINC . '/languages') ) {
  */
 function wp_set_lang_dir() {
        if ( !defined( 'WP_LANG_DIR' ) ) {
                if ( file_exists( WP_CONTENT_DIR . '/languages' ) && @is_dir( WP_CONTENT_DIR . '/languages' ) || !@is_dir(ABSPATH . WPINC . '/languages') ) {
-                       define( 'WP_LANG_DIR', WP_CONTENT_DIR . '/languages' ); // no leading slash, no trailing slash, full path, not relative to ABSPATH
+                       /**
+                        * Server path of the language directory.
+                        *
+                        * No leading slash, no trailing slash, full path, not relative to ABSPATH
+                        *
+                        * @since 2.1.0
+                        */
+                       define( 'WP_LANG_DIR', WP_CONTENT_DIR . '/languages' );
                        if ( !defined( 'LANGDIR' ) ) {
                                // Old static relative path maintained for limited backwards compatibility - won't work in some cases
                                define( 'LANGDIR', 'wp-content/languages' );
                        }
                } else {
                        if ( !defined( 'LANGDIR' ) ) {
                                // Old static relative path maintained for limited backwards compatibility - won't work in some cases
                                define( 'LANGDIR', 'wp-content/languages' );
                        }
                } else {
-                       define( 'WP_LANG_DIR', ABSPATH . WPINC . '/languages' ); // no leading slash, no trailing slash, full path, not relative to ABSPATH
+                       /**
+                        * Server path of the language directory.
+                        *
+                        * No leading slash, no trailing slash, full path, not relative to `ABSPATH`.
+                        *
+                        * @since 2.1.0
+                        */
+                       define( 'WP_LANG_DIR', ABSPATH . WPINC . '/languages' );
                        if ( !defined( 'LANGDIR' ) ) {
                                // Old relative path maintained for backwards compatibility
                                define( 'LANGDIR', WPINC . '/languages' );
                        if ( !defined( 'LANGDIR' ) ) {
                                // Old relative path maintained for backwards compatibility
                                define( 'LANGDIR', WPINC . '/languages' );
@@ -305,14 +333,11 @@ function wp_set_lang_dir() {
 }
 
 /**
 }
 
 /**
- * Load the correct database class file.
- *
- * This function is used to load the database class file either at runtime or by
- * wp-admin/setup-config.php. We must globalize $wpdb to ensure that it is
- * defined globally by the inline code in wp-db.php.
+ * Load the database class file and instantiate the `$wpdb` global.
  *
  * @since 2.5.0
  *
  * @since 2.5.0
- * @global $wpdb WordPress Database Object
+ *
+ * @global wpdb $wpdb The WordPress database class.
  */
 function require_wp_db() {
        global $wpdb;
  */
 function require_wp_db() {
        global $wpdb;
@@ -328,18 +353,16 @@ function require_wp_db() {
 }
 
 /**
 }
 
 /**
- * Sets the database table prefix and the format specifiers for database table columns.
- *
- * Columns not listed here default to %s.
+ * Set the database table prefix and the format specifiers for database
+ * table columns.
  *
  *
- * @see wpdb::$field_types Since 2.8.0
- * @see wpdb::prepare()
- * @see wpdb::insert()
- * @see wpdb::update()
- * @see wpdb::set_prefix()
+ * Columns not listed here default to `%s`.
  *
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
+ *
+ * @global wpdb   $wpdb         The WordPress database class.
+ * @global string $table_prefix The database table prefix.
  */
 function wp_set_wpdb_vars() {
        global $wpdb, $table_prefix;
  */
 function wp_set_wpdb_vars() {
        global $wpdb, $table_prefix;
@@ -363,14 +386,15 @@ function wp_set_wpdb_vars() {
 }
 
 /**
 }
 
 /**
- * Access/Modify private global variable $_wp_using_ext_object_cache
+ * Access/Modify private global variable `$_wp_using_ext_object_cache`.
  *
  *
- * Toggle $_wp_using_ext_object_cache on and off without directly touching global
+ * Toggle `$_wp_using_ext_object_cache` on and off without directly
+ * touching global.
  *
  * @since 3.7.0
  *
  *
  * @since 3.7.0
  *
- * @param bool $using Whether external object cache is being used
- * @return bool The current 'using' setting
+ * @param bool $using Whether external object cache is being used.
+ * @return bool The current 'using' setting.
  */
 function wp_using_ext_object_cache( $using = null ) {
        global $_wp_using_ext_object_cache;
  */
 function wp_using_ext_object_cache( $using = null ) {
        global $_wp_using_ext_object_cache;
@@ -381,13 +405,15 @@ function wp_using_ext_object_cache( $using = null ) {
 }
 
 /**
 }
 
 /**
- * Starts the WordPress object cache.
+ * Start the WordPress object cache.
  *
  * If an object-cache.php file exists in the wp-content directory,
  * it uses that drop-in as an external object cache.
  *
  *
  * If an object-cache.php file exists in the wp-content directory,
  * it uses that drop-in as an external object cache.
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
+ *
+ * @global int $blog_id Blog ID.
  */
 function wp_start_object_cache() {
        global $blog_id;
  */
 function wp_start_object_cache() {
        global $blog_id;
@@ -402,18 +428,23 @@ function wp_start_object_cache() {
 
                $first_init = true;
        } else if ( ! wp_using_ext_object_cache() && file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) {
 
                $first_init = true;
        } else if ( ! wp_using_ext_object_cache() && file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) {
-               // Sometimes advanced-cache.php can load object-cache.php before it is loaded here.
-               // This breaks the function_exists check above and can result in $_wp_using_ext_object_cache
-               // being set incorrectly. Double check if an external cache exists.
+               /*
+                * Sometimes advanced-cache.php can load object-cache.php before
+                * it is loaded here. This breaks the function_exists check above
+                * and can result in `$_wp_using_ext_object_cache` being set
+                * incorrectly. Double check if an external cache exists.
+                */
                wp_using_ext_object_cache( true );
        }
 
        if ( ! wp_using_ext_object_cache() )
                require_once ( ABSPATH . WPINC . '/cache.php' );
 
                wp_using_ext_object_cache( true );
        }
 
        if ( ! wp_using_ext_object_cache() )
                require_once ( ABSPATH . WPINC . '/cache.php' );
 
-       // If cache supports reset, reset instead of init if already initialized.
-       // Reset signals to the cache that global IDs have changed and it may need to update keys
-       // and cleanup caches.
+       /*
+        * If cache supports reset, reset instead of init if already
+        * initialized. Reset signals to the cache that global IDs
+        * have changed and it may need to update keys and cleanup caches.
+        */
        if ( ! $first_init && function_exists( 'wp_cache_switch_to_blog' ) )
                wp_cache_switch_to_blog( $blog_id );
        elseif ( function_exists( 'wp_cache_init' ) )
        if ( ! $first_init && function_exists( 'wp_cache_switch_to_blog' ) )
                wp_cache_switch_to_blog( $blog_id );
        elseif ( function_exists( 'wp_cache_init' ) )
@@ -426,18 +457,23 @@ function wp_start_object_cache() {
 }
 
 /**
 }
 
 /**
- * Redirects to the installer if WordPress is not installed.
+ * Redirect to the installer if WordPress is not installed.
  *
  *
- * Dies with an error message when multisite is enabled.
+ * Dies with an error message when Multisite is enabled.
  *
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
  */
 function wp_not_installed() {
        if ( is_multisite() ) {
  */
 function wp_not_installed() {
        if ( is_multisite() ) {
-               if ( ! is_blog_installed() && ! defined( 'WP_INSTALLING' ) )
+               if ( ! is_blog_installed() && ! defined( 'WP_INSTALLING' ) ) {
+                       nocache_headers();
+
                        wp_die( __( 'The site you have requested is not installed properly. Please contact the system administrator.' ) );
                        wp_die( __( 'The site you have requested is not installed properly. Please contact the system administrator.' ) );
+               }
        } elseif ( ! is_blog_installed() && false === strpos( $_SERVER['PHP_SELF'], 'install.php' ) && !defined( 'WP_INSTALLING' ) ) {
        } elseif ( ! is_blog_installed() && false === strpos( $_SERVER['PHP_SELF'], 'install.php' ) && !defined( 'WP_INSTALLING' ) ) {
+               nocache_headers();
+
                require( ABSPATH . WPINC . '/kses.php' );
                require( ABSPATH . WPINC . '/pluggable.php' );
                require( ABSPATH . WPINC . '/formatting.php' );
                require( ABSPATH . WPINC . '/kses.php' );
                require( ABSPATH . WPINC . '/pluggable.php' );
                require( ABSPATH . WPINC . '/formatting.php' );
@@ -450,15 +486,16 @@ function wp_not_installed() {
 }
 
 /**
 }
 
 /**
- * Returns array of must-use plugin files to be included in global scope.
+ * Retrieve an array of must-use plugin files.
  *
  *
- * The default directory is wp-content/mu-plugins. To change the default directory
- * manually, define <code>WPMU_PLUGIN_DIR</code> and <code>WPMU_PLUGIN_URL</code>
+ * The default directory is wp-content/mu-plugins. To change the default
+ * directory manually, define `WPMU_PLUGIN_DIR` and `WPMU_PLUGIN_URL`
  * in wp-config.php.
  *
  * in wp-config.php.
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
- * @return array Files to include
+ * @access private
+ *
+ * @return array Files to include.
  */
 function wp_get_mu_plugins() {
        $mu_plugins = array();
  */
 function wp_get_mu_plugins() {
        $mu_plugins = array();
@@ -477,15 +514,18 @@ function wp_get_mu_plugins() {
 }
 
 /**
 }
 
 /**
- * Returns array of plugin files to be included in global scope.
+ * Retrieve an array of active and valid plugin files.
  *
  *
- * The default directory is wp-content/plugins. To change the default directory
- * manually, define <code>WP_PLUGIN_DIR</code> and <code>WP_PLUGIN_URL</code>
+ * While upgrading or installing WordPress, no plugins are returned.
+ *
+ * The default directory is wp-content/plugins. To change the default
+ * directory manually, define `WP_PLUGIN_DIR` and `WP_PLUGIN_URL`
  * in wp-config.php.
  *
  * in wp-config.php.
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
- * @return array Files to include
+ * @access private
+ *
+ * @return array Files.
  */
 function wp_get_active_and_valid_plugins() {
        $plugins = array();
  */
 function wp_get_active_and_valid_plugins() {
        $plugins = array();
@@ -515,13 +555,13 @@ function wp_get_active_and_valid_plugins() {
 }
 
 /**
 }
 
 /**
- * Sets internal encoding using mb_internal_encoding().
+ * Set internal encoding.
  *
  *
- * In most cases the default internal encoding is latin1, which is of no use,
- * since we want to use the mb_ functions for utf-8 strings.
+ * In most cases the default internal encoding is latin1, which is
+ * of no use, since we want to use the `mb_` functions for `utf-8` strings.
  *
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
  */
 function wp_set_internal_encoding() {
        if ( function_exists( 'mb_internal_encoding' ) ) {
  */
 function wp_set_internal_encoding() {
        if ( function_exists( 'mb_internal_encoding' ) ) {
@@ -532,13 +572,13 @@ function wp_set_internal_encoding() {
 }
 
 /**
 }
 
 /**
- * Add magic quotes to $_GET, $_POST, $_COOKIE, and $_SERVER.
+ * Add magic quotes to `$_GET`, `$_POST`, `$_COOKIE`, and `$_SERVER`.
  *
  *
- * Also forces $_REQUEST to be $_GET + $_POST. If $_SERVER, $_COOKIE,
- * or $_ENV are needed, use those superglobals directly.
+ * Also forces `$_REQUEST` to be `$_GET + $_POST`. If `$_SERVER`,
+ * `$_COOKIE`, or `$_ENV` are needed, use those superglobals directly.
  *
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
  */
 function wp_magic_quotes() {
        // If already slashed, strip.
  */
 function wp_magic_quotes() {
        // If already slashed, strip.
@@ -561,8 +601,8 @@ function wp_magic_quotes() {
 /**
  * Runs just before PHP shuts down execution.
  *
 /**
  * Runs just before PHP shuts down execution.
  *
- * @access private
  * @since 1.2.0
  * @since 1.2.0
+ * @access private
  */
 function shutdown_action_hook() {
        /**
  */
 function shutdown_action_hook() {
        /**
@@ -571,6 +611,7 @@ function shutdown_action_hook() {
         * @since 1.2.0
         */
        do_action( 'shutdown' );
         * @since 1.2.0
         */
        do_action( 'shutdown' );
+
        wp_cache_close();
 }
 
        wp_cache_close();
 }
 
@@ -578,26 +619,25 @@ function shutdown_action_hook() {
  * Copy an object.
  *
  * @since 2.7.0
  * Copy an object.
  *
  * @since 2.7.0
- * @deprecated 3.2
+ * @deprecated 3.2.0
  *
  *
- * @param object $object The object to clone
- * @return object The cloned object
+ * @param object $object The object to clone.
+ * @return object The cloned object.
  */
  */
-
 function wp_clone( $object ) {
        // Use parens for clone to accommodate PHP 4. See #17880
        return clone( $object );
 }
 
 /**
 function wp_clone( $object ) {
        // Use parens for clone to accommodate PHP 4. See #17880
        return clone( $object );
 }
 
 /**
- * Whether the current request is for a network or blog admin page
+ * Whether the current request is for an administrative interface page.
  *
  *
- * Does not inform on whether the user is an admin! Use capability checks to
- * tell if the user should be accessing a section or not.
+ * Does not check if the user is an administrator; {@see current_user_can()}
+ * for checking roles and capabilities.
  *
  * @since 1.5.1
  *
  *
  * @since 1.5.1
  *
- * @return bool True if inside WordPress administration pages.
+ * @return bool True if inside WordPress administration interface, false otherwise.
  */
 function is_admin() {
        if ( isset( $GLOBALS['current_screen'] ) )
  */
 function is_admin() {
        if ( isset( $GLOBALS['current_screen'] ) )
@@ -609,14 +649,16 @@ function is_admin() {
 }
 
 /**
 }
 
 /**
- * Whether the current request is for a blog admin screen /wp-admin/
+ * Whether the current request is for a site's admininstrative interface.
  *
  *
- * Does not inform on whether the user is a blog admin! Use capability checks to
- * tell if the user should be accessing a section or not.
+ * e.g. `/wp-admin/`
+ *
+ * Does not check if the user is an administrator; {@see current_user_can()}
+ * for checking roles and capabilities.
  *
  * @since 3.1.0
  *
  *
  * @since 3.1.0
  *
- * @return bool True if inside WordPress network administration pages.
+ * @return bool True if inside WordPress blog administration pages.
  */
 function is_blog_admin() {
        if ( isset( $GLOBALS['current_screen'] ) )
  */
 function is_blog_admin() {
        if ( isset( $GLOBALS['current_screen'] ) )
@@ -628,10 +670,12 @@ function is_blog_admin() {
 }
 
 /**
 }
 
 /**
- * Whether the current request is for a network admin screen /wp-admin/network/
+ * Whether the current request is for the network administrative interface.
  *
  *
- * Does not inform on whether the user is a network admin! Use capability checks to
- * tell if the user should be accessing a section or not.
+ * e.g. `/wp-admin/network/`
+ *
+ * Does not check if the user is an administrator; {@see current_user_can()}
+ * for checking roles and capabilities.
  *
  * @since 3.1.0
  *
  *
  * @since 3.1.0
  *
@@ -647,10 +691,13 @@ function is_network_admin() {
 }
 
 /**
 }
 
 /**
- * Whether the current request is for a user admin screen /wp-admin/user/
+ * Whether the current request is for a user admin screen.
+ *
+ * e.g. `/wp-admin/user/`
  *
  *
- * Does not inform on whether the user is an admin! Use capability checks to
- * tell if the user should be accessing a section or not.
+ * Does not inform on whether the user is an admin! Use capability
+ * checks to tell if the user should be accessing a section or not
+ * {@see current_user_can()}.
  *
  * @since 3.1.0
  *
  *
  * @since 3.1.0
  *
@@ -666,11 +713,11 @@ function is_user_admin() {
 }
 
 /**
 }
 
 /**
- * Whether Multisite support is enabled
+ * If Multisite is enabled.
  *
  * @since 3.0.0
  *
  *
  * @since 3.0.0
  *
- * @return bool True if multisite is enabled, false otherwise.
+ * @return bool True if Multisite is enabled, false otherwise.
  */
 function is_multisite() {
        if ( defined( 'MULTISITE' ) )
  */
 function is_multisite() {
        if ( defined( 'MULTISITE' ) )
@@ -683,7 +730,7 @@ function is_multisite() {
 }
 
 /**
 }
 
 /**
- * Retrieve the current blog id
+ * Retrieve the current blog ID.
  *
  * @since 3.1.0
  *
  *
  * @since 3.1.0
  *
@@ -695,16 +742,19 @@ function get_current_blog_id() {
 }
 
 /**
 }
 
 /**
- * Attempts an early load of translations.
+ * Attempt an early load of translations.
  *
  *
- * Used for errors encountered during the initial loading process, before the locale has been
- * properly detected and loaded.
+ * Used for errors encountered during the initial loading process, before
+ * the locale has been properly detected and loaded.
  *
  *
- * Designed for unusual load sequences (like setup-config.php) or for when the script will then
- * terminate with an error, otherwise there is a risk that a file can be double-included.
+ * Designed for unusual load sequences (like setup-config.php) or for when
+ * the script will then terminate with an error, otherwise there is a risk
+ * that a file can be double-included.
  *
  * @since 3.4.0
  * @access private
  *
  * @since 3.4.0
  * @access private
+ *
+ * @global $wp_locale The WordPress date and time locale object.
  */
 function wp_load_translations_early() {
        global $text_direction, $wp_locale;
  */
 function wp_load_translations_early() {
        global $text_direction, $wp_locale;
index 25354618d90e279b4512d93fc8c2b9d60cc5403b..afb690e89f5a48482ae02e5058323627ef15daa6 100644 (file)
@@ -50,7 +50,8 @@ function wp_underscore_audio_template() {
 function wp_underscore_video_template() {
        $video_types = wp_get_video_extensions();
 ?>
 function wp_underscore_video_template() {
        $video_types = wp_get_video_extensions();
 ?>
-<#  var w, h, settings = wp.media.view.settings,
+<#  var w_rule = h_rule = '',
+               w, h, settings = wp.media.view.settings,
                isYouTube = ! _.isEmpty( data.model.src ) && data.model.src.match(/youtube|youtu\.be/);
 
        if ( settings.contentWidth && data.model.width >= settings.contentWidth ) {
                isYouTube = ! _.isEmpty( data.model.src ) && data.model.src.match(/youtube|youtu\.be/);
 
        if ( settings.contentWidth && data.model.width >= settings.contentWidth ) {
@@ -60,16 +61,23 @@ function wp_underscore_video_template() {
        }
 
        if ( w !== data.model.width ) {
        }
 
        if ( w !== data.model.width ) {
-               h = Math.ceil( ( h * w ) / data.model.width );
+               h = Math.ceil( ( data.model.height * w ) / data.model.width );
        } else {
                h = data.model.height;
        }
        } else {
                h = data.model.height;
        }
+
+       if ( w ) {
+               w_rule = 'width: ' + w + 'px; ';
+       }
+       if ( h ) {
+               h_rule = 'height: ' + h + 'px;';
+       }
 #>
 #>
-<div style="max-width: 100%; width: {{ w }}px">
+<div style="{{ w_rule }}{{ h_rule }}" class="wp-video">
 <video controls
        class="wp-video-shortcode{{ isYouTube ? ' youtube-video' : '' }}"
 <video controls
        class="wp-video-shortcode{{ isYouTube ? ' youtube-video' : '' }}"
-       width="{{ w }}"
-       height="{{ h }}"
+       <# if ( w ) { #>width="{{ w }}"<# } #>
+       <# if ( h ) { #>height="{{ h }}"<# } #>
        <?php
        $props = array( 'poster' => '', 'preload' => 'metadata' );
        foreach ( $props as $key => $value ):
        <?php
        $props = array( 'poster' => '', 'preload' => 'metadata' );
        foreach ( $props as $key => $value ):
@@ -119,6 +127,16 @@ function wp_print_media_templates() {
        if ( $is_IE && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 7') !== false )
                $class .= ' ie7';
        ?>
        if ( $is_IE && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 7') !== false )
                $class .= ' ie7';
        ?>
+       <!--[if lte IE 8]>
+       <style>
+               .attachment:focus {
+                       outline: #1e8cbe solid;
+               }
+               .selected.attachment {
+                       outline: #1e8cbe solid;
+               }
+       </style>
+       <![endif]-->
        <script type="text/html" id="tmpl-media-frame">
                <div class="media-frame-menu"></div>
                <div class="media-frame-title"></div>
        <script type="text/html" id="tmpl-media-frame">
                <div class="media-frame-menu"></div>
                <div class="media-frame-title"></div>
@@ -130,7 +148,7 @@ function wp_print_media_templates() {
 
        <script type="text/html" id="tmpl-media-modal">
                <div class="<?php echo $class; ?>">
 
        <script type="text/html" id="tmpl-media-modal">
                <div class="<?php echo $class; ?>">
-                       <a class="media-modal-close" href="#" title="<?php esc_attr_e('Close'); ?>"><span class="media-modal-icon"></span></a>
+                       <a class="media-modal-close" href="#"><span class="media-modal-icon"><span class="screen-reader-text"><?php _e( 'Close media panel' ); ?></span></span></a>
                        <div class="media-modal-content"></div>
                </div>
                <div class="media-modal-backdrop"></div>
                        <div class="media-modal-content"></div>
                </div>
                <div class="media-modal-backdrop"></div>
@@ -150,12 +168,15 @@ function wp_print_media_templates() {
 
        <script type="text/html" id="tmpl-uploader-inline">
                <# var messageClass = data.message ? 'has-upload-message' : 'no-upload-message'; #>
 
        <script type="text/html" id="tmpl-uploader-inline">
                <# var messageClass = data.message ? 'has-upload-message' : 'no-upload-message'; #>
+               <# if ( data.canClose ) { #>
+               <button class="close dashicons dashicons-no"><span class="screen-reader-text"><?php _e( 'Close uploader' ); ?></span></button>
+               <# } #>
                <div class="uploader-inline-content {{ messageClass }}">
                <# if ( data.message ) { #>
                        <h3 class="upload-message">{{ data.message }}</h3>
                <# } #>
                <?php if ( ! _device_can_upload() ) : ?>
                <div class="uploader-inline-content {{ messageClass }}">
                <# if ( data.message ) { #>
                        <h3 class="upload-message">{{ data.message }}</h3>
                <# } #>
                <?php if ( ! _device_can_upload() ) : ?>
-                       <h3 class="upload-instructions"><?php printf( __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://wordpress.org/mobile/' ); ?></h3>
+                       <h3 class="upload-instructions"><?php printf( __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://apps.wordpress.org/' ); ?></h3>
                <?php elseif ( is_multisite() && ! is_upload_space_available() ) : ?>
                        <h3 class="upload-instructions"><?php _e( 'Upload Limit Exceeded' ); ?></h3>
                        <?php
                <?php elseif ( is_multisite() && ! is_upload_space_available() ) : ?>
                        <h3 class="upload-instructions"><?php _e( 'Upload Limit Exceeded' ); ?></h3>
                        <?php
@@ -165,6 +186,7 @@ function wp_print_media_templates() {
                <?php else : ?>
                        <div class="upload-ui">
                                <h3 class="upload-instructions drop-instructions"><?php _e( 'Drop files anywhere to upload' ); ?></h3>
                <?php else : ?>
                        <div class="upload-ui">
                                <h3 class="upload-instructions drop-instructions"><?php _e( 'Drop files anywhere to upload' ); ?></h3>
+                               <p class="upload-instructions drop-instructions"><?php _ex( 'or', 'Uploader: Drop files here - or - Select Files' ); ?></p>
                                <a href="#" class="browser button button-hero"><?php _e( 'Select Files' ); ?></a>
                        </div>
 
                                <a href="#" class="browser button button-hero"><?php _e( 'Select Files' ); ?></a>
                        </div>
 
@@ -186,24 +208,14 @@ function wp_print_media_templates() {
                                        do_action( 'post-plupload-upload-ui' );
                                }
 
                                        do_action( 'post-plupload-upload-ui' );
                                }
 
-                               $upload_size_unit = $max_upload_size = wp_max_upload_size();
-                               $byte_sizes = array( 'KB', 'MB', 'GB' );
-
-                               for ( $u = -1; $upload_size_unit > 1024 && $u < count( $byte_sizes ) - 1; $u++ ) {
-                                       $upload_size_unit /= 1024;
-                               }
-
-                               if ( $u < 0 ) {
-                                       $upload_size_unit = 0;
-                                       $u = 0;
-                               } else {
-                                       $upload_size_unit = (int) $upload_size_unit;
+                               $max_upload_size = wp_max_upload_size();
+                               if ( ! $max_upload_size ) {
+                                       $max_upload_size = 0;
                                }
                                }
-
                                ?>
 
                                <p class="max-upload-size"><?php
                                ?>
 
                                <p class="max-upload-size"><?php
-                                       printf( __( 'Maximum upload file size: %d%s.' ), esc_html($upload_size_unit), esc_html($byte_sizes[$u]) );
+                                       printf( __( 'Maximum upload file size: %s.' ), esc_html( size_format( $max_upload_size ) ) );
                                ?></p>
 
                                <# if ( data.suggestedWidth && data.suggestedHeight ) { #>
                                ?></p>
 
                                <# if ( data.suggestedWidth && data.suggestedHeight ) { #>
@@ -220,6 +232,15 @@ function wp_print_media_templates() {
                </div>
        </script>
 
                </div>
        </script>
 
+       <script type="text/html" id="tmpl-media-library-view-switcher">
+               <a href="<?php echo esc_url( add_query_arg( 'mode', 'list', $_SERVER['REQUEST_URI'] ) ) ?>" class="view-list">
+                       <span class="screen-reader-text"><?php _e( 'List View' ); ?></span>
+               </a>
+               <a href="<?php echo esc_url( add_query_arg( 'mode', 'grid', $_SERVER['REQUEST_URI'] ) ) ?>" class="view-grid current">
+                       <span class="screen-reader-text"><?php _e( 'Grid View' ); ?></span>
+               </a>
+       </script>
+
        <script type="text/html" id="tmpl-uploader-status">
                <h3><?php _e( 'Uploading' ); ?></h3>
                <a class="upload-dismiss-errors" href="#"><?php _e('Dismiss Errors'); ?></a>
        <script type="text/html" id="tmpl-uploader-status">
                <h3><?php _e( 'Uploading' ); ?></h3>
                <a class="upload-dismiss-errors" href="#"><?php _e('Dismiss Errors'); ?></a>
@@ -241,35 +262,203 @@ function wp_print_media_templates() {
                <span class="upload-error-message">{{ data.message }}</span>
        </script>
 
                <span class="upload-error-message">{{ data.message }}</span>
        </script>
 
-       <script type="text/html" id="tmpl-attachment">
-               <div class="attachment-preview type-{{ data.type }} subtype-{{ data.subtype }} {{ data.orientation }}">
-                       <# if ( data.uploading ) { #>
-                               <div class="media-progress-bar"><div></div></div>
-                       <# } else if ( 'image' === data.type ) { #>
-                               <div class="thumbnail">
-                                       <div class="centered">
-                                               <img src="{{ data.size.url }}" draggable="false" />
-                                       </div>
+       <script type="text/html" id="tmpl-edit-attachment-frame">
+               <div class="edit-media-header">
+                       <button class="left dashicons <# if ( ! data.hasPrevious ) { #> disabled <# } #>"><span class="screen-reader-text"><?php _e( 'Edit previous media item' ); ?></span></button>
+                       <button class="right dashicons <# if ( ! data.hasNext ) { #> disabled <# } #>"><span class="screen-reader-text"><?php _e( 'Edit next media item' ); ?></span></button>
+               </div>
+               <div class="media-frame-title"></div>
+               <div class="media-frame-content"></div>
+       </script>
+
+       <script type="text/html" id="tmpl-attachment-details-two-column">
+               <div class="attachment-media-view {{ data.orientation }}">
+                       <div class="thumbnail thumbnail-{{ data.type }}">
+                               <# if ( data.uploading ) { #>
+                                       <div class="media-progress-bar"><div></div></div>
+                               <# } else if ( 'image' === data.type && data.sizes && data.sizes.large ) { #>
+                                       <img class="details-image" src="{{ data.sizes.large.url }}" draggable="false" />
+                               <# } else if ( 'image' === data.type && data.sizes && data.sizes.full ) { #>
+                                       <img class="details-image" src="{{ data.sizes.full.url }}" draggable="false" />
+                               <# } else if ( -1 === jQuery.inArray( data.type, [ 'audio', 'video' ] ) ) { #>
+                                       <img class="details-image" src="{{ data.icon }}" class="icon" draggable="false" />
+                               <# } #>
+
+                               <# if ( 'audio' === data.type ) { #>
+                               <div class="wp-media-wrapper">
+                                       <audio style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none">
+                                               <source type="{{ data.mime }}" src="{{ data.url }}"/>
+                                       </audio>
                                </div>
                                </div>
-                       <# } else { #>
-                               <img src="{{ data.icon }}" class="icon" draggable="false" />
-                               <div class="filename">
-                                       <div>{{ data.filename }}</div>
+                               <# } else if ( 'video' === data.type ) {
+                                       var w_rule = h_rule = '';
+                                       if ( data.width ) {
+                                               w_rule = 'width: ' + data.width + 'px;';
+                                       } else if ( wp.media.view.settings.contentWidth ) {
+                                               w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;';
+                                       }
+                                       if ( data.height ) {
+                                               h_rule = 'height: ' + data.height + 'px;';
+                                       }
+                               #>
+                               <div style="{{ w_rule }}{{ h_rule }}" class="wp-media-wrapper wp-video">
+                                       <video controls="controls" class="wp-video-shortcode" preload="metadata"
+                                               <# if ( data.width ) { #>width="{{ data.width }}"<# } #>
+                                               <# if ( data.height ) { #>height="{{ data.height }}"<# } #>
+                                               <# if ( data.image && data.image.src !== data.icon ) { #>poster="{{ data.image.src }}"<# } #>>
+                                               <source type="{{ data.mime }}" src="{{ data.url }}"/>
+                                       </video>
                                </div>
                                </div>
-                       <# } #>
+                               <# } #>
+
+                               <div class="attachment-actions">
+                                       <# if ( 'image' === data.type && ! data.uploading && data.sizes ) { #>
+                                               <a class="button edit-attachment" href="#"><?php _e( 'Edit Image' ); ?></a>
+                                       <# } #>
+                               </div>
+                       </div>
+               </div>
+               <div class="attachment-info">
+                       <span class="settings-save-status">
+                               <span class="spinner"></span>
+                               <span class="saved"><?php esc_html_e('Saved.'); ?></span>
+                       </span>
+                       <div class="details">
+                               <div class="filename"><strong><?php _e( 'File name:' ); ?></strong> {{ data.filename }}</div>
+                               <div class="filename"><strong><?php _e( 'File type:' ); ?></strong> {{ data.mime }}</div>
+                               <div class="uploaded"><strong><?php _e( 'Uploaded on:' ); ?></strong> {{ data.dateFormatted }}</div>
+
+                               <div class="file-size"><strong><?php _e( 'File size:' ); ?></strong> {{ data.filesizeHumanReadable }}</div>
+                               <# if ( 'image' === data.type && ! data.uploading ) { #>
+                                       <# if ( data.width && data.height ) { #>
+                                               <div class="dimensions"><strong><?php _e( 'Dimensions:' ); ?></strong> {{ data.width }} &times; {{ data.height }}</div>
+                                       <# } #>
+                               <# } #>
+
+                               <# if ( data.fileLength ) { #>
+                                       <div class="file-length"><strong><?php _e( 'Length:' ); ?></strong> {{ data.fileLength }}</div>
+                               <# } #>
+
+                               <# if ( 'audio' === data.type && data.meta.bitrate ) { #>
+                                       <div class="bitrate">
+                                               <strong><?php _e( 'Bitrate:' ); ?></strong> {{ Math.round( data.meta.bitrate / 1000 ) }}kb/s
+                                               <# if ( data.meta.bitrate_mode ) { #>
+                                               {{ ' ' + data.meta.bitrate_mode.toUpperCase() }}
+                                               <# } #>
+                                       </div>
+                               <# } #>
+
+                               <div class="compat-meta">
+                                       <# if ( data.compat && data.compat.meta ) { #>
+                                               {{{ data.compat.meta }}}
+                                       <# } #>
+                               </div>
+                       </div>
+
+                       <div class="settings">
+                               <label class="setting" data-setting="url">
+                                       <span class="name"><?php _e('URL'); ?></span>
+                                       <input type="text" value="{{ data.url }}" readonly />
+                               </label>
+                               <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #>
+                               <label class="setting" data-setting="title">
+                                       <span class="name"><?php _e('Title'); ?></span>
+                                       <input type="text" value="{{ data.title }}" {{ maybeReadOnly }} />
+                               </label>
+                               <# if ( 'audio' === data.type ) { #>
+                               <?php foreach ( array(
+                                       'artist' => __( 'Artist' ),
+                                       'album' => __( 'Album' ),
+                               ) as $key => $label ) : ?>
+                               <label class="setting" data-setting="<?php echo esc_attr( $key ) ?>">
+                                       <span class="name"><?php echo $label ?></span>
+                                       <input type="text" value="{{ data.<?php echo $key ?> || data.meta.<?php echo $key ?> || '' }}" />
+                               </label>
+                               <?php endforeach; ?>
+                               <# } #>
+                               <label class="setting" data-setting="caption">
+                                       <span class="name"><?php _e( 'Caption' ); ?></span>
+                                       <textarea {{ maybeReadOnly }}>{{ data.caption }}</textarea>
+                               </label>
+                               <# if ( 'image' === data.type ) { #>
+                                       <label class="setting" data-setting="alt">
+                                               <span class="name"><?php _e( 'Alt Text' ); ?></span>
+                                               <input type="text" value="{{ data.alt }}" {{ maybeReadOnly }} />
+                                       </label>
+                               <# } #>
+                               <label class="setting" data-setting="description">
+                                       <span class="name"><?php _e('Description'); ?></span>
+                                       <textarea {{ maybeReadOnly }}>{{ data.description }}</textarea>
+                               </label>
+                               <label class="setting">
+                                       <span class="name"><?php _e( 'Uploaded By' ); ?></span>
+                                       <span class="value">{{ data.authorName }}</span>
+                               </label>
+                               <# if ( data.uploadedTo ) { #>
+                                       <label class="setting">
+                                               <span class="name"><?php _e( 'Uploaded To' ); ?></span>
+                                               <# if ( data.uploadedToLink ) { #>
+                                                       <span class="value"><a href="{{ data.uploadedToLink }}">{{ data.uploadedToTitle }}</a></span>
+                                               <# } else { #>
+                                                       <span class="value">{{ data.uploadedToTitle }}</span>
+                                               <# } #>
+                                       </label>
+                               <# } #>
+                               <div class="attachment-compat"></div>
+                       </div>
+
+                       <div class="actions">
+                               <a class="view-attachment" href="{{ data.link }}"><?php _e( 'View attachment page' ); ?></a> |
+                               <a href="post.php?post={{ data.id }}&action=edit"><?php _e( 'Edit more details' ); ?></a>
+                               <# if ( ! data.uploading && data.can.remove ) { #> |
+                                               <?php if ( MEDIA_TRASH ): ?>
+                                               <# if ( 'trash' === data.status ) { #>
+                                                       <a class="untrash-attachment" href="#"><?php _e( 'Untrash' ); ?></a>
+                                               <# } else { #>
+                                                       <a class="trash-attachment" href="#"><?php _e( 'Trash' ); ?></a>
+                                               <# } #>
+                                               <?php else: ?>
+                                                       <a class="delete-attachment" href="#"><?php _e( 'Delete Permanently' ); ?></a>
+                                               <?php endif; ?>
+                                       <# } #>
+                       </div>
 
 
+               </div>
+       </script>
+
+       <script type="text/html" id="tmpl-attachment">
+               <div class="attachment-preview js--select-attachment type-{{ data.type }} subtype-{{ data.subtype }} {{ data.orientation }}">
+                       <div class="thumbnail">
+                               <# if ( data.uploading ) { #>
+                                       <div class="media-progress-bar"><div style="width: {{ data.percent }}%"></div></div>
+                               <# } else if ( 'image' === data.type && data.sizes ) { #>
+                                       <div class="centered">
+                                               <img src="{{ data.size.url }}" draggable="false" alt="" />
+                                       </div>
+                               <# } else { #>
+                                       <div class="centered">
+                                               <# if ( data.image && data.image.src && data.image.src !== data.icon ) { #>
+                                                       <img src="{{ data.image.src }}" class="thumbnail" draggable="false" />
+                                               <# } else { #>
+                                                       <img src="{{ data.icon }}" class="icon" draggable="false" />
+                                               <# } #>
+                                       </div>
+                                       <div class="filename">
+                                               <div>{{ data.filename }}</div>
+                                       </div>
+                               <# } #>
+                       </div>
                        <# if ( data.buttons.close ) { #>
                                <a class="close media-modal-icon" href="#" title="<?php esc_attr_e('Remove'); ?>"></a>
                        <# } #>
                        <# if ( data.buttons.close ) { #>
                                <a class="close media-modal-icon" href="#" title="<?php esc_attr_e('Remove'); ?>"></a>
                        <# } #>
-
-                       <# if ( data.buttons.check ) { #>
-                               <a class="check" href="#" title="<?php esc_attr_e('Deselect'); ?>"><div class="media-modal-icon"></div></a>
-                       <# } #>
                </div>
                </div>
+               <# if ( data.buttons.check ) { #>
+                       <a class="check" href="#" title="<?php esc_attr_e('Deselect'); ?>" tabindex="-1"><div class="media-modal-icon"></div></a>
+               <# } #>
                <#
                var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly';
                <#
                var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly';
-               if ( data.describe ) { #>
-                       <# if ( 'image' === data.type ) { #>
+               if ( data.describe ) {
+                       if ( 'image' === data.type ) { #>
                                <input type="text" value="{{ data.caption }}" class="describe" data-setting="caption"
                                        placeholder="<?php esc_attr_e('Caption this image&hellip;'); ?>" {{ maybeReadOnly }} />
                        <# } else { #>
                                <input type="text" value="{{ data.caption }}" class="describe" data-setting="caption"
                                        placeholder="<?php esc_attr_e('Caption this image&hellip;'); ?>" {{ maybeReadOnly }} />
                        <# } else { #>
@@ -281,8 +470,8 @@ function wp_print_media_templates() {
                                        <# } else { #>
                                                placeholder="<?php esc_attr_e('Describe this media file&hellip;'); ?>"
                                        <# } #> {{ maybeReadOnly }} />
                                        <# } else { #>
                                                placeholder="<?php esc_attr_e('Describe this media file&hellip;'); ?>"
                                        <# } #> {{ maybeReadOnly }} />
-                       <# } #>
-               <# } #>
+                       <# }
+               } #>
        </script>
 
        <script type="text/html" id="tmpl-attachment-details">
        </script>
 
        <script type="text/html" id="tmpl-attachment-details">
@@ -295,10 +484,10 @@ function wp_print_media_templates() {
                        </span>
                </h3>
                <div class="attachment-info">
                        </span>
                </h3>
                <div class="attachment-info">
-                       <div class="thumbnail">
+                       <div class="thumbnail thumbnail-{{ data.type }}">
                                <# if ( data.uploading ) { #>
                                        <div class="media-progress-bar"><div></div></div>
                                <# if ( data.uploading ) { #>
                                        <div class="media-progress-bar"><div></div></div>
-                               <# } else if ( 'image' === data.type ) { #>
+                               <# } else if ( 'image' === data.type && data.sizes ) { #>
                                        <img src="{{ data.size.url }}" draggable="false" />
                                <# } else { #>
                                        <img src="{{ data.icon }}" class="icon" draggable="false" />
                                        <img src="{{ data.size.url }}" draggable="false" />
                                <# } else { #>
                                        <img src="{{ data.icon }}" class="icon" draggable="false" />
@@ -308,12 +497,13 @@ function wp_print_media_templates() {
                                <div class="filename">{{ data.filename }}</div>
                                <div class="uploaded">{{ data.dateFormatted }}</div>
 
                                <div class="filename">{{ data.filename }}</div>
                                <div class="uploaded">{{ data.dateFormatted }}</div>
 
+                               <div class="file-size">{{ data.filesizeHumanReadable }}</div>
                                <# if ( 'image' === data.type && ! data.uploading ) { #>
                                        <# if ( data.width && data.height ) { #>
                                                <div class="dimensions">{{ data.width }} &times; {{ data.height }}</div>
                                        <# } #>
 
                                <# if ( 'image' === data.type && ! data.uploading ) { #>
                                        <# if ( data.width && data.height ) { #>
                                                <div class="dimensions">{{ data.width }} &times; {{ data.height }}</div>
                                        <# } #>
 
-                                       <# if ( data.can.save ) { #>
+                                       <# if ( data.can.save && data.sizes ) { #>
                                                <a class="edit-attachment" href="{{ data.editLink }}&amp;image-editor" target="_blank"><?php _e( 'Edit Image' ); ?></a>
                                                <a class="refresh-attachment" href="#"><?php _e( 'Refresh' ); ?></a>
                                        <# } #>
                                                <a class="edit-attachment" href="{{ data.editLink }}&amp;image-editor" target="_blank"><?php _e( 'Edit Image' ); ?></a>
                                                <a class="refresh-attachment" href="#"><?php _e( 'Refresh' ); ?></a>
                                        <# } #>
@@ -325,7 +515,11 @@ function wp_print_media_templates() {
 
                                <# if ( ! data.uploading && data.can.remove ) { #>
                                        <?php if ( MEDIA_TRASH ): ?>
 
                                <# if ( ! data.uploading && data.can.remove ) { #>
                                        <?php if ( MEDIA_TRASH ): ?>
+                                       <# if ( 'trash' === data.status ) { #>
+                                               <a class="untrash-attachment" href="#"><?php _e( 'Untrash' ); ?></a>
+                                       <# } else { #>
                                                <a class="trash-attachment" href="#"><?php _e( 'Trash' ); ?></a>
                                                <a class="trash-attachment" href="#"><?php _e( 'Trash' ); ?></a>
+                                       <# } #>
                                        <?php else: ?>
                                                <a class="delete-attachment" href="#"><?php _e( 'Delete Permanently' ); ?></a>
                                        <?php endif; ?>
                                        <?php else: ?>
                                                <a class="delete-attachment" href="#"><?php _e( 'Delete Permanently' ); ?></a>
                                        <?php endif; ?>
@@ -339,25 +533,40 @@ function wp_print_media_templates() {
                        </div>
                </div>
 
                        </div>
                </div>
 
+               <label class="setting" data-setting="url">
+                       <span class="name"><?php _e('URL'); ?></span>
+                       <input type="text" value="{{ data.url }}" readonly />
+               </label>
                <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #>
                <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #>
-                       <label class="setting" data-setting="title">
-                               <span><?php _e('Title'); ?></span>
-                               <input type="text" value="{{ data.title }}" {{ maybeReadOnly }} />
-                       </label>
-                       <label class="setting" data-setting="caption">
-                               <span><?php _e('Caption'); ?></span>
-                               <textarea {{ maybeReadOnly }}>{{ data.caption }}</textarea>
-                       </label>
+               <label class="setting" data-setting="title">
+                       <span class="name"><?php _e('Title'); ?></span>
+                       <input type="text" value="{{ data.title }}" {{ maybeReadOnly }} />
+               </label>
+               <# if ( 'audio' === data.type ) { #>
+               <?php foreach ( array(
+                       'artist' => __( 'Artist' ),
+                       'album' => __( 'Album' ),
+               ) as $key => $label ) : ?>
+               <label class="setting" data-setting="<?php echo esc_attr( $key ) ?>">
+                       <span class="name"><?php echo $label ?></span>
+                       <input type="text" value="{{ data.<?php echo $key ?> || data.meta.<?php echo $key ?> || '' }}" />
+               </label>
+               <?php endforeach; ?>
+               <# } #>
+               <label class="setting" data-setting="caption">
+                       <span class="name"><?php _e('Caption'); ?></span>
+                       <textarea {{ maybeReadOnly }}>{{ data.caption }}</textarea>
+               </label>
                <# if ( 'image' === data.type ) { #>
                        <label class="setting" data-setting="alt">
                <# if ( 'image' === data.type ) { #>
                        <label class="setting" data-setting="alt">
-                               <span><?php _e('Alt Text'); ?></span>
+                               <span class="name"><?php _e('Alt Text'); ?></span>
                                <input type="text" value="{{ data.alt }}" {{ maybeReadOnly }} />
                        </label>
                <# } #>
                                <input type="text" value="{{ data.alt }}" {{ maybeReadOnly }} />
                        </label>
                <# } #>
-                       <label class="setting" data-setting="description">
-                               <span><?php _e('Description'); ?></span>
-                               <textarea {{ maybeReadOnly }}>{{ data.description }}</textarea>
-                       </label>
+               <label class="setting" data-setting="description">
+                       <span class="name"><?php _e('Description'); ?></span>
+                       <textarea {{ maybeReadOnly }}>{{ data.description }}</textarea>
+               </label>
        </script>
 
        <script type="text/html" id="tmpl-media-selection">
        </script>
 
        <script type="text/html" id="tmpl-media-selection">
@@ -491,13 +700,15 @@ function wp_print_media_templates() {
                                        data-user-setting="urlbutton"
                                <# } #>>
 
                                        data-user-setting="urlbutton"
                                <# } #>>
 
-                               <option value="post" selected>
+                               <option value="post" <# if ( ! wp.media.galleryDefaults.link || 'post' == wp.media.galleryDefaults.link ) {
+                                       #>selected="selected"<# }
+                               #>>
                                        <?php esc_attr_e('Attachment Page'); ?>
                                </option>
                                        <?php esc_attr_e('Attachment Page'); ?>
                                </option>
-                               <option value="file">
+                               <option value="file" <# if ( 'file' == wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>>
                                        <?php esc_attr_e('Media File'); ?>
                                </option>
                                        <?php esc_attr_e('Media File'); ?>
                                </option>
-                               <option value="none">
+                               <option value="none" <# if ( 'none' == wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>>
                                        <?php esc_attr_e('None'); ?>
                                </option>
                        </select>
                                        <?php esc_attr_e('None'); ?>
                                </option>
                        </select>
@@ -508,7 +719,9 @@ function wp_print_media_templates() {
                        <select class="columns" name="columns"
                                data-setting="columns">
                                <?php for ( $i = 1; $i <= 9; $i++ ) : ?>
                        <select class="columns" name="columns"
                                data-setting="columns">
                                <?php for ( $i = 1; $i <= 9; $i++ ) : ?>
-                                       <option value="<?php echo esc_attr( $i ); ?>" <?php selected( $i, 3 ); ?>>
+                                       <option value="<?php echo esc_attr( $i ); ?>" <#
+                                               if ( <?php echo $i ?> == wp.media.galleryDefaults.columns ) { #>selected="selected"<# }
+                                       #>>
                                                <?php echo esc_html( $i ); ?>
                                        </option>
                                <?php endfor; ?>
                                                <?php echo esc_html( $i ); ?>
                                        </option>
                                <?php endfor; ?>
@@ -556,10 +769,13 @@ function wp_print_media_templates() {
        </script>
 
        <script type="text/html" id="tmpl-embed-link-settings">
        </script>
 
        <script type="text/html" id="tmpl-embed-link-settings">
-               <label class="setting">
-                       <span><?php _e('Title'); ?></span>
+               <label class="setting title">
+                       <span><?php _e( 'Title' ); ?></span>
                        <input type="text" class="alignment" data-setting="title" />
                </label>
                        <input type="text" class="alignment" data-setting="title" />
                </label>
+               <div class="embed-container" style="display: none;">
+                       <div class="embed-preview"></div>
+               </div>
        </script>
 
        <script type="text/html" id="tmpl-embed-image-settings">
        </script>
 
        <script type="text/html" id="tmpl-embed-image-settings">
@@ -616,35 +832,6 @@ function wp_print_media_templates() {
                </div>
        </script>
 
                </div>
        </script>
 
-       <script type="text/html" id="tmpl-attachments-css">
-               <style type="text/css" id="{{ data.id }}-css">
-                       #{{ data.id }} {
-                               padding: 0 {{ data.gutter }}px;
-                       }
-
-                       #{{ data.id }} .attachment {
-                               margin: {{ data.gutter }}px;
-                               width: {{ data.edge }}px;
-                       }
-
-                       #{{ data.id }} .attachment-preview,
-                       #{{ data.id }} .attachment-preview .thumbnail {
-                               width: {{ data.edge }}px;
-                               height: {{ data.edge }}px;
-                       }
-
-                       #{{ data.id }} .portrait .thumbnail img {
-                               max-width: {{ data.edge }}px;
-                               height: auto;
-                       }
-
-                       #{{ data.id }} .landscape .thumbnail img {
-                               width: auto;
-                               max-height: {{ data.edge }}px;
-                       }
-               </style>
-       </script>
-
        <script type="text/html" id="tmpl-image-details">
                <div class="media-embed">
                        <div class="embed-media-settings">
        <script type="text/html" id="tmpl-image-details">
                <div class="media-embed">
                        <div class="embed-media-settings">
@@ -976,9 +1163,6 @@ function wp_print_media_templates() {
        </script>
 
        <script type="text/html" id="tmpl-editor-gallery">
        </script>
 
        <script type="text/html" id="tmpl-editor-gallery">
-               <div class="toolbar">
-                       <div class="dashicons dashicons-edit edit"></div><div class="dashicons dashicons-no-alt remove"></div>
-               </div>
                <# if ( data.attachments ) { #>
                        <div class="gallery gallery-columns-{{ data.columns }}">
                                <# _.each( data.attachments, function( attachment, index ) { #>
                <# if ( data.attachments ) { #>
                        <div class="gallery gallery-columns-{{ data.columns }}">
                                <# _.each( data.attachments, function( attachment, index ) { #>
@@ -990,9 +1174,11 @@ function wp_print_media_templates() {
                                                                <img src="{{ attachment.url }}" />
                                                        <# } #>
                                                </dt>
                                                                <img src="{{ attachment.url }}" />
                                                        <# } #>
                                                </dt>
-                                               <dd class="wp-caption-text gallery-caption">
-                                                       {{ attachment.caption }}
-                                               </dd>
+                                               <# if ( attachment.caption ) { #>
+                                                       <dd class="wp-caption-text gallery-caption">
+                                                               {{ attachment.caption }}
+                                                       </dd>
+                                               <# } #>
                                        </dl>
                                        <# if ( index % data.columns === data.columns - 1 ) { #>
                                                <br style="clear: both;">
                                        </dl>
                                        <# if ( index % data.columns === data.columns - 1 ) { #>
                                                <br style="clear: both;">
@@ -1006,50 +1192,6 @@ function wp_print_media_templates() {
                <# } #>
        </script>
 
                <# } #>
        </script>
 
-       <script type="text/html" id="tmpl-editor-audio">
-               <div class="toolbar">
-                       <div class="dashicons dashicons-edit edit"></div>
-                       <div class="dashicons dashicons-no-alt remove"></div>
-               </div>
-               <?php wp_underscore_audio_template() ?>
-               <div class="wpview-overlay"></div>
-       </script>
-
-       <script type="text/html" id="tmpl-editor-video">
-               <div class="toolbar">
-                       <div class="dashicons dashicons-edit edit"></div>
-                       <div class="dashicons dashicons-no-alt remove"></div>
-               </div>
-               <?php wp_underscore_video_template() ?>
-               <div class="wpview-overlay"></div>
-       </script>
-
-       <?php wp_underscore_playlist_templates() ?>
-
-       <script type="text/html" id="tmpl-editor-playlist">
-               <div class="toolbar">
-                       <div class="dashicons dashicons-edit edit"></div>
-                       <div class="dashicons dashicons-no-alt remove"></div>
-               </div>
-               <# if ( data.tracks ) { #>
-                       <div class="wp-playlist wp-{{ data.type }}-playlist wp-playlist-{{ data.style }}">
-                               <# if ( 'audio' === data.type ){ #>
-                               <div class="wp-playlist-current-item"></div>
-                               <# } #>
-                               <{{ data.type }} controls="controls" preload="none" <#
-                                       if ( data.width ) { #> width="{{ data.width }}"<# }
-                                       #><# if ( data.height ) { #> height="{{ data.height }}"<# } #>></{{ data.type }}>
-                               <div class="wp-playlist-next"></div>
-                               <div class="wp-playlist-prev"></div>
-                       </div>
-                       <div class="wpview-overlay"></div>
-               <# } else { #>
-                       <div class="wpview-error">
-                               <div class="dashicons dashicons-video-alt3"></div><p><?php _e( 'No items found.' ); ?></p>
-                       </div>
-               <# } #>
-       </script>
-
        <script type="text/html" id="tmpl-crop-content">
                <img class="crop-image" src="{{ data.url }}">
                <div class="upload-errors"></div>
        <script type="text/html" id="tmpl-crop-content">
                <img class="crop-image" src="{{ data.url }}">
                <div class="upload-errors"></div>
index 974aa7995c2c2115aeb9a6436f7e52e073caf684..b49e324f67f7bb8720214057d967190bea5d75d4 100644 (file)
@@ -911,8 +911,9 @@ function gallery_shortcode( $attr ) {
 
        if ( ! empty( $attr['ids'] ) ) {
                // 'ids' is explicitly ordered, unless you specify otherwise.
 
        if ( ! empty( $attr['ids'] ) ) {
                // 'ids' is explicitly ordered, unless you specify otherwise.
-               if ( empty( $attr['orderby'] ) )
+               if ( empty( $attr['orderby'] ) ) {
                        $attr['orderby'] = 'post__in';
                        $attr['orderby'] = 'post__in';
+               }
                $attr['include'] = $attr['ids'];
        }
 
                $attr['include'] = $attr['ids'];
        }
 
@@ -930,18 +931,20 @@ function gallery_shortcode( $attr ) {
         * @param array  $attr   Attributes of the gallery shortcode.
         */
        $output = apply_filters( 'post_gallery', '', $attr );
         * @param array  $attr   Attributes of the gallery shortcode.
         */
        $output = apply_filters( 'post_gallery', '', $attr );
-       if ( $output != '' )
+       if ( $output != '' ) {
                return $output;
                return $output;
+       }
 
        // We're trusting author input, so let's at least make sure it looks like a valid orderby statement
        if ( isset( $attr['orderby'] ) ) {
                $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
 
        // We're trusting author input, so let's at least make sure it looks like a valid orderby statement
        if ( isset( $attr['orderby'] ) ) {
                $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
-               if ( !$attr['orderby'] )
+               if ( ! $attr['orderby'] ) {
                        unset( $attr['orderby'] );
                        unset( $attr['orderby'] );
+               }
        }
 
        $html5 = current_theme_supports( 'html5', 'gallery' );
        }
 
        $html5 = current_theme_supports( 'html5', 'gallery' );
-       extract(shortcode_atts(array(
+       $atts = shortcode_atts( array(
                'order'      => 'ASC',
                'orderby'    => 'menu_order ID',
                'id'         => $post ? $post->ID : 0,
                'order'      => 'ASC',
                'orderby'    => 'menu_order ID',
                'id'         => $post ? $post->ID : 0,
@@ -953,53 +956,59 @@ function gallery_shortcode( $attr ) {
                'include'    => '',
                'exclude'    => '',
                'link'       => ''
                'include'    => '',
                'exclude'    => '',
                'link'       => ''
-       ), $attr, 'gallery'));
+       ), $attr, 'gallery' );
 
 
-       $id = intval($id);
-       if ( 'RAND' == $order )
-               $orderby = 'none';
+       $id = intval( $atts['id'] );
+       if ( 'RAND' == $atts['order'] ) {
+               $atts['orderby'] = 'none';
+       }
 
 
-       if ( !empty($include) ) {
-               $_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
+       if ( ! empty( $atts['include'] ) ) {
+               $_attachments = get_posts( array( 'include' => $atts['include'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
 
                $attachments = array();
                foreach ( $_attachments as $key => $val ) {
                        $attachments[$val->ID] = $_attachments[$key];
                }
 
                $attachments = array();
                foreach ( $_attachments as $key => $val ) {
                        $attachments[$val->ID] = $_attachments[$key];
                }
-       } elseif ( !empty($exclude) ) {
-               $attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
+       } elseif ( ! empty( $atts['exclude'] ) ) {
+               $attachments = get_children( array( 'post_parent' => $id, 'exclude' => $atts['exclude'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
        } else {
        } else {
-               $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
+               $attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
        }
 
        }
 
-       if ( empty($attachments) )
+       if ( empty( $attachments ) ) {
                return '';
                return '';
+       }
 
        if ( is_feed() ) {
                $output = "\n";
 
        if ( is_feed() ) {
                $output = "\n";
-               foreach ( $attachments as $att_id => $attachment )
-                       $output .= wp_get_attachment_link($att_id, $size, true) . "\n";
+               foreach ( $attachments as $att_id => $attachment ) {
+                       $output .= wp_get_attachment_link( $att_id, $atts['size'], true ) . "\n";
+               }
                return $output;
        }
 
                return $output;
        }
 
-       $itemtag = tag_escape($itemtag);
-       $captiontag = tag_escape($captiontag);
-       $icontag = tag_escape($icontag);
+       $itemtag = tag_escape( $atts['itemtag'] );
+       $captiontag = tag_escape( $atts['captiontag'] );
+       $icontag = tag_escape( $atts['icontag'] );
        $valid_tags = wp_kses_allowed_html( 'post' );
        $valid_tags = wp_kses_allowed_html( 'post' );
-       if ( ! isset( $valid_tags[ $itemtag ] ) )
+       if ( ! isset( $valid_tags[ $itemtag ] ) ) {
                $itemtag = 'dl';
                $itemtag = 'dl';
-       if ( ! isset( $valid_tags[ $captiontag ] ) )
+       }
+       if ( ! isset( $valid_tags[ $captiontag ] ) ) {
                $captiontag = 'dd';
                $captiontag = 'dd';
-       if ( ! isset( $valid_tags[ $icontag ] ) )
+       }
+       if ( ! isset( $valid_tags[ $icontag ] ) ) {
                $icontag = 'dt';
                $icontag = 'dt';
+       }
 
 
-       $columns = intval($columns);
+       $columns = intval( $atts['columns'] );
        $itemwidth = $columns > 0 ? floor(100/$columns) : 100;
        $float = is_rtl() ? 'right' : 'left';
 
        $selector = "gallery-{$instance}";
 
        $itemwidth = $columns > 0 ? floor(100/$columns) : 100;
        $float = is_rtl() ? 'right' : 'left';
 
        $selector = "gallery-{$instance}";
 
-       $gallery_style = $gallery_div = '';
+       $gallery_style = '';
 
        /**
         * Filter whether to print default gallery styles.
 
        /**
         * Filter whether to print default gallery styles.
@@ -1032,7 +1041,7 @@ function gallery_shortcode( $attr ) {
                </style>\n\t\t";
        }
 
                </style>\n\t\t";
        }
 
-       $size_class = sanitize_html_class( $size );
+       $size_class = sanitize_html_class( $atts['size'] );
        $gallery_div = "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>";
 
        /**
        $gallery_div = "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>";
 
        /**
@@ -1047,19 +1056,19 @@ function gallery_shortcode( $attr ) {
 
        $i = 0;
        foreach ( $attachments as $id => $attachment ) {
 
        $i = 0;
        foreach ( $attachments as $id => $attachment ) {
-               if ( ! empty( $link ) && 'file' === $link )
-                       $image_output = wp_get_attachment_link( $id, $size, false, false );
-               elseif ( ! empty( $link ) && 'none' === $link )
-                       $image_output = wp_get_attachment_image( $id, $size, false );
-               else
-                       $image_output = wp_get_attachment_link( $id, $size, true, false );
-
+               if ( ! empty( $atts['link'] ) && 'file' === $atts['link'] ) {
+                       $image_output = wp_get_attachment_link( $id, $atts['size'], false, false );
+               } elseif ( ! empty( $atts['link'] ) && 'none' === $atts['link'] ) {
+                       $image_output = wp_get_attachment_image( $id, $atts['size'], false );
+               } else {
+                       $image_output = wp_get_attachment_link( $id, $atts['size'], true, false );
+               }
                $image_meta  = wp_get_attachment_metadata( $id );
 
                $orientation = '';
                $image_meta  = wp_get_attachment_metadata( $id );
 
                $orientation = '';
-               if ( isset( $image_meta['height'], $image_meta['width'] ) )
+               if ( isset( $image_meta['height'], $image_meta['width'] ) ) {
                        $orientation = ( $image_meta['height'] > $image_meta['width'] ) ? 'portrait' : 'landscape';
                        $orientation = ( $image_meta['height'] > $image_meta['width'] ) ? 'portrait' : 'landscape';
-
+               }
                $output .= "<{$itemtag} class='gallery-item'>";
                $output .= "
                        <{$icontag} class='gallery-icon {$orientation}'>
                $output .= "<{$itemtag} class='gallery-item'>";
                $output .= "
                        <{$icontag} class='gallery-icon {$orientation}'>
@@ -1152,7 +1161,30 @@ add_action( 'wp_playlist_scripts', 'wp_playlist_scripts' );
  *
  * @since 3.9.0
  *
  *
  * @since 3.9.0
  *
- * @param array $attr Playlist shortcode attributes.
+ * @param array $attr {
+ *     Array of default playlist attributes.
+ *
+ *     @type string  $type         Type of playlist to display. Accepts 'audio' or 'video'. Default 'audio'.
+ *     @type string  $order        Designates ascending or descending order of items in the playlist.
+ *                                 Accepts 'ASC', 'DESC', or 'RAND'. Default 'ASC'.
+ *     @type string  $orderby      Any column, or columns, to sort the playlist. If $ids are
+ *                                 passed, this defaults to the order of the $ids array ('post__in').
+ *                                 Otherwise default is 'menu_order ID'.
+ *     @type int     $id           If an explicit $ids array is not present, this parameter
+ *                                 will determine which attachments are used for the playlist.
+ *                                 Default is the current post ID.
+ *     @type array   $ids          Create a playlist out of these explicit attachment IDs. If empty,
+ *                                 a playlist will be created from all $type attachments of $id.
+ *                                 Default empty.
+ *     @type array   $exclude      List of specific attachment IDs to exclude from the playlist. Default empty.
+ *     @type string  $style        Playlist style to use. Accepts 'light' or 'dark'. Default 'light'.
+ *     @type bool    $tracklist    Whether to show or hide the playlist. Default true.
+ *     @type bool    $tracknumbers Whether to show or hide the numbers next to entries in the playlist. Default true.
+ *     @type bool    $images       Show or hide the video or audio thumbnail (Featured Image/post
+ *                                 thumbnail). Default true.
+ *     @type bool    $artists      Whether to show or hide artist name in the playlist. Default true.
+ * }
+ *
  * @return string Playlist output. Empty string if the passed type is unsupported.
  */
 function wp_playlist_shortcode( $attr ) {
  * @return string Playlist output. Empty string if the passed type is unsupported.
  */
 function wp_playlist_shortcode( $attr ) {
@@ -1196,7 +1228,7 @@ function wp_playlist_shortcode( $attr ) {
                        unset( $attr['orderby'] );
        }
 
                        unset( $attr['orderby'] );
        }
 
-       extract( shortcode_atts( array(
+       $atts = shortcode_atts( array(
                'type'          => 'audio',
                'order'         => 'ASC',
                'orderby'       => 'menu_order ID',
                'type'          => 'audio',
                'order'         => 'ASC',
                'orderby'       => 'menu_order ID',
@@ -1208,32 +1240,32 @@ function wp_playlist_shortcode( $attr ) {
                'tracknumbers' => true,
                'images'        => true,
                'artists'       => true
                'tracknumbers' => true,
                'images'        => true,
                'artists'       => true
-       ), $attr, 'playlist' ) );
+       ), $attr, 'playlist' );
 
 
-       $id = intval( $id );
-       if ( 'RAND' == $order ) {
-               $orderby = 'none';
+       $id = intval( $atts['id'] );
+       if ( 'RAND' == $atts['order'] ) {
+               $atts['orderby'] = 'none';
        }
 
        $args = array(
                'post_status' => 'inherit',
                'post_type' => 'attachment',
        }
 
        $args = array(
                'post_status' => 'inherit',
                'post_type' => 'attachment',
-               'post_mime_type' => $type,
-               'order' => $order,
-               'orderby' => $orderby
+               'post_mime_type' => $atts['type'],
+               'order' => $atts['order'],
+               'orderby' => $atts['orderby']
        );
 
        );
 
-       if ( ! empty( $include ) ) {
-               $args['include'] = $include;
+       if ( ! empty( $atts['include'] ) ) {
+               $args['include'] = $atts['include'];
                $_attachments = get_posts( $args );
 
                $attachments = array();
                foreach ( $_attachments as $key => $val ) {
                        $attachments[$val->ID] = $_attachments[$key];
                }
                $_attachments = get_posts( $args );
 
                $attachments = array();
                foreach ( $_attachments as $key => $val ) {
                        $attachments[$val->ID] = $_attachments[$key];
                }
-       } elseif ( ! empty( $exclude ) ) {
+       } elseif ( ! empty( $atts['exclude'] ) ) {
                $args['post_parent'] = $id;
                $args['post_parent'] = $id;
-               $args['exclude'] = $exclude;
+               $args['exclude'] = $atts['exclude'];
                $attachments = get_children( $args );
        } else {
                $args['post_parent'] = $id;
                $attachments = get_children( $args );
        } else {
                $args['post_parent'] = $id;
@@ -1260,12 +1292,14 @@ function wp_playlist_shortcode( $attr ) {
        $theme_width = empty( $content_width ) ? $default_width : ( $content_width - $outer );
        $theme_height = empty( $content_width ) ? $default_height : round( ( $default_height * $theme_width ) / $default_width );
 
        $theme_width = empty( $content_width ) ? $default_width : ( $content_width - $outer );
        $theme_height = empty( $content_width ) ? $default_height : round( ( $default_height * $theme_width ) / $default_width );
 
-       $data = compact( 'type' );
-
-       // don't pass strings to JSON, will be truthy in JS
-       foreach ( array( 'tracklist', 'tracknumbers', 'images', 'artists' ) as $key ) {
-               $data[$key] = filter_var( $$key, FILTER_VALIDATE_BOOLEAN );
-       }
+       $data = array(
+               'type' => $atts['type'],
+               // don't pass strings to JSON, will be truthy in JS
+               'tracklist' => wp_validate_boolean( $atts['tracklist'] ),
+               'tracknumbers' => wp_validate_boolean( $atts['tracknumbers'] ),
+               'images' => wp_validate_boolean( $atts['images'] ),
+               'artists' => wp_validate_boolean( $atts['artists'] ),
+       );
 
        $tracks = array();
        foreach ( $attachments as $attachment ) {
 
        $tracks = array();
        foreach ( $attachments as $attachment ) {
@@ -1289,7 +1323,7 @@ function wp_playlist_shortcode( $attr ) {
                                }
                        }
 
                                }
                        }
 
-                       if ( 'video' === $type ) {
+                       if ( 'video' === $atts['type'] ) {
                                if ( ! empty( $meta['width'] ) && ! empty( $meta['height'] ) ) {
                                        $width = $meta['width'];
                                        $height = $meta['height'];
                                if ( ! empty( $meta['width'] ) && ! empty( $meta['height'] ) ) {
                                        $width = $meta['width'];
                                        $height = $meta['height'];
@@ -1309,12 +1343,12 @@ function wp_playlist_shortcode( $attr ) {
                        }
                }
 
                        }
                }
 
-               if ( $images ) {
-                       $id = get_post_thumbnail_id( $attachment->ID );
-                       if ( ! empty( $id ) ) {
-                               list( $src, $width, $height ) = wp_get_attachment_image_src( $id, 'full' );
+               if ( $atts['images'] ) {
+                       $thumb_id = get_post_thumbnail_id( $attachment->ID );
+                       if ( ! empty( $thumb_id ) ) {
+                               list( $src, $width, $height ) = wp_get_attachment_image_src( $thumb_id, 'full' );
                                $track['image'] = compact( 'src', 'width', 'height' );
                                $track['image'] = compact( 'src', 'width', 'height' );
-                               list( $src, $width, $height ) = wp_get_attachment_image_src( $id, 'thumbnail' );
+                               list( $src, $width, $height ) = wp_get_attachment_image_src( $thumb_id, 'thumbnail' );
                                $track['thumb'] = compact( 'src', 'width', 'height' );
                        } else {
                                $src = wp_mime_type_icon( $attachment->ID );
                                $track['thumb'] = compact( 'src', 'width', 'height' );
                        } else {
                                $src = wp_mime_type_icon( $attachment->ID );
@@ -1329,8 +1363,8 @@ function wp_playlist_shortcode( $attr ) {
        }
        $data['tracks'] = $tracks;
 
        }
        $data['tracks'] = $tracks;
 
-       $safe_type = esc_attr( $type );
-       $safe_style = esc_attr( $style );
+       $safe_type = esc_attr( $atts['type'] );
+       $safe_style = esc_attr( $atts['style'] );
 
        ob_start();
 
 
        ob_start();
 
@@ -1343,10 +1377,10 @@ function wp_playlist_shortcode( $attr ) {
                 * @param string $type  Type of playlist. Possible values are 'audio' or 'video'.
                 * @param string $style The 'theme' for the playlist. Core provides 'light' and 'dark'.
                 */
                 * @param string $type  Type of playlist. Possible values are 'audio' or 'video'.
                 * @param string $style The 'theme' for the playlist. Core provides 'light' and 'dark'.
                 */
-               do_action( 'wp_playlist_scripts', $type, $style );
+               do_action( 'wp_playlist_scripts', $atts['type'], $atts['style'] );
        } ?>
 <div class="wp-playlist wp-<?php echo $safe_type ?>-playlist wp-playlist-<?php echo $safe_style ?>">
        } ?>
 <div class="wp-playlist wp-<?php echo $safe_type ?>-playlist wp-playlist-<?php echo $safe_style ?>">
-       <?php if ( 'audio' === $type ): ?>
+       <?php if ( 'audio' === $atts['type'] ): ?>
        <div class="wp-playlist-current-item"></div>
        <?php endif ?>
        <<?php echo $safe_type ?> controls="controls" preload="none" width="<?php
        <div class="wp-playlist-current-item"></div>
        <?php endif ?>
        <<?php echo $safe_type ?> controls="controls" preload="none" width="<?php
@@ -1365,7 +1399,7 @@ function wp_playlist_shortcode( $attr ) {
        }
        ?></ol>
        </noscript>
        }
        ?></ol>
        </noscript>
-       <script type="application/json"><?php echo json_encode( $data ) ?></script>
+       <script type="application/json" class="wp-playlist-script"><?php echo json_encode( $data ) ?></script>
 </div>
        <?php
        return ob_get_clean();
 </div>
        <?php
        return ob_get_clean();
@@ -1429,6 +1463,9 @@ function wp_get_attachment_id3_keys( $attachment, $context = 'display' ) {
                $fields['genre']            = __( 'Genre' );
                $fields['year']             = __( 'Year' );
                $fields['length_formatted'] = _x( 'Length', 'video or audio' );
                $fields['genre']            = __( 'Genre' );
                $fields['year']             = __( 'Year' );
                $fields['length_formatted'] = _x( 'Length', 'video or audio' );
+       } elseif ( 'js' === $context ) {
+               $fields['bitrate']          = __( 'Bitrate' );
+               $fields['bitrate_mode']     = __( 'Bitrate Mode' );
        }
 
        /**
        }
 
        /**
@@ -1482,9 +1519,10 @@ function wp_audio_shortcode( $attr, $content = '' ) {
         * @param string $content   Shortcode content.
         * @param int    $instances Unique numeric ID of this audio shortcode instance.
         */
         * @param string $content   Shortcode content.
         * @param int    $instances Unique numeric ID of this audio shortcode instance.
         */
-       $html = apply_filters( 'wp_audio_shortcode_override', '', $attr, $content, $instances );
-       if ( '' !== $html )
-               return $html;
+       $override = apply_filters( 'wp_audio_shortcode_override', '', $attr, $content, $instances );
+       if ( '' !== $override ) {
+               return $override;
+       }
 
        $audio = null;
 
 
        $audio = null;
 
@@ -1495,38 +1533,42 @@ function wp_audio_shortcode( $attr, $content = '' ) {
                'autoplay' => '',
                'preload'  => 'none'
        );
                'autoplay' => '',
                'preload'  => 'none'
        );
-       foreach ( $default_types as $type )
+       foreach ( $default_types as $type ) {
                $defaults_atts[$type] = '';
                $defaults_atts[$type] = '';
+       }
 
        $atts = shortcode_atts( $defaults_atts, $attr, 'audio' );
 
        $atts = shortcode_atts( $defaults_atts, $attr, 'audio' );
-       extract( $atts );
 
        $primary = false;
 
        $primary = false;
-       if ( ! empty( $src ) ) {
-               $type = wp_check_filetype( $src, wp_get_mime_types() );
-               if ( ! in_array( strtolower( $type['ext'] ), $default_types ) )
-                       return sprintf( '<a class="wp-embedded-audio" href="%s">%s</a>', esc_url( $src ), esc_html( $src ) );
+       if ( ! empty( $atts['src'] ) ) {
+               $type = wp_check_filetype( $atts['src'], wp_get_mime_types() );
+               if ( ! in_array( strtolower( $type['ext'] ), $default_types ) ) {
+                       return sprintf( '<a class="wp-embedded-audio" href="%s">%s</a>', esc_url( $atts['src'] ), esc_html( $atts['src'] ) );
+               }
                $primary = true;
                array_unshift( $default_types, 'src' );
        } else {
                foreach ( $default_types as $ext ) {
                $primary = true;
                array_unshift( $default_types, 'src' );
        } else {
                foreach ( $default_types as $ext ) {
-                       if ( ! empty( $$ext ) ) {
-                               $type = wp_check_filetype( $$ext, wp_get_mime_types() );
-                               if ( strtolower( $type['ext'] ) === $ext )
+                       if ( ! empty( $atts[ $ext ] ) ) {
+                               $type = wp_check_filetype( $atts[ $ext ], wp_get_mime_types() );
+                               if ( strtolower( $type['ext'] ) === $ext ) {
                                        $primary = true;
                                        $primary = true;
+                               }
                        }
                }
        }
 
        if ( ! $primary ) {
                $audios = get_attached_media( 'audio', $post_id );
                        }
                }
        }
 
        if ( ! $primary ) {
                $audios = get_attached_media( 'audio', $post_id );
-               if ( empty( $audios ) )
+               if ( empty( $audios ) ) {
                        return;
                        return;
+               }
 
                $audio = reset( $audios );
 
                $audio = reset( $audios );
-               $src = wp_get_attachment_url( $audio->ID );
-               if ( empty( $src ) )
+               $atts['src'] = wp_get_attachment_url( $audio->ID );
+               if ( empty( $atts['src'] ) ) {
                        return;
                        return;
+               }
 
                array_unshift( $default_types, 'src' );
        }
 
                array_unshift( $default_types, 'src' );
        }
@@ -1551,45 +1593,49 @@ function wp_audio_shortcode( $attr, $content = '' ) {
         *
         * @param string $class CSS class or list of space-separated classes.
         */
         *
         * @param string $class CSS class or list of space-separated classes.
         */
-       $atts = array(
+       $html_atts = array(
                'class'    => apply_filters( 'wp_audio_shortcode_class', 'wp-audio-shortcode' ),
                'id'       => sprintf( 'audio-%d-%d', $post_id, $instances ),
                'class'    => apply_filters( 'wp_audio_shortcode_class', 'wp-audio-shortcode' ),
                'id'       => sprintf( 'audio-%d-%d', $post_id, $instances ),
-               'loop'     => $loop,
-               'autoplay' => $autoplay,
-               'preload'  => $preload,
+               'loop'     => $atts['loop'],
+               'autoplay' => $atts['autoplay'],
+               'preload'  => $atts['preload'],
                'style'    => 'width: 100%; visibility: hidden;',
        );
 
        // These ones should just be omitted altogether if they are blank
        foreach ( array( 'loop', 'autoplay', 'preload' ) as $a ) {
                'style'    => 'width: 100%; visibility: hidden;',
        );
 
        // These ones should just be omitted altogether if they are blank
        foreach ( array( 'loop', 'autoplay', 'preload' ) as $a ) {
-               if ( empty( $atts[$a] ) )
-                       unset( $atts[$a] );
+               if ( empty( $html_atts[$a] ) ) {
+                       unset( $html_atts[$a] );
+               }
        }
 
        $attr_strings = array();
        }
 
        $attr_strings = array();
-       foreach ( $atts as $k => $v ) {
+       foreach ( $html_atts as $k => $v ) {
                $attr_strings[] = $k . '="' . esc_attr( $v ) . '"';
        }
 
        $html = '';
                $attr_strings[] = $k . '="' . esc_attr( $v ) . '"';
        }
 
        $html = '';
-       if ( 'mediaelement' === $library && 1 === $instances )
+       if ( 'mediaelement' === $library && 1 === $instances ) {
                $html .= "<!--[if lt IE 9]><script>document.createElement('audio');</script><![endif]-->\n";
                $html .= "<!--[if lt IE 9]><script>document.createElement('audio');</script><![endif]-->\n";
+       }
        $html .= sprintf( '<audio %s controls="controls">', join( ' ', $attr_strings ) );
 
        $fileurl = '';
        $source = '<source type="%s" src="%s" />';
        foreach ( $default_types as $fallback ) {
        $html .= sprintf( '<audio %s controls="controls">', join( ' ', $attr_strings ) );
 
        $fileurl = '';
        $source = '<source type="%s" src="%s" />';
        foreach ( $default_types as $fallback ) {
-               if ( ! empty( $$fallback ) ) {
-                       if ( empty( $fileurl ) )
-                               $fileurl = $$fallback;
-                       $type = wp_check_filetype( $$fallback, wp_get_mime_types() );
-                       $url = add_query_arg( '_', $instances, $$fallback );
+               if ( ! empty( $atts[ $fallback ] ) ) {
+                       if ( empty( $fileurl ) ) {
+                               $fileurl = $atts[ $fallback ];
+                       }
+                       $type = wp_check_filetype( $atts[ $fallback ], wp_get_mime_types() );
+                       $url = add_query_arg( '_', $instances, $atts[ $fallback ] );
                        $html .= sprintf( $source, $type['type'], esc_url( $url ) );
                }
        }
 
                        $html .= sprintf( $source, $type['type'], esc_url( $url ) );
                }
        }
 
-       if ( 'mediaelement' === $library )
+       if ( 'mediaelement' === $library ) {
                $html .= wp_mediaelement_fallback( $fileurl );
                $html .= wp_mediaelement_fallback( $fileurl );
+       }
        $html .= '</audio>';
 
        /**
        $html .= '</audio>';
 
        /**
@@ -1674,9 +1720,10 @@ function wp_video_shortcode( $attr, $content = '' ) {
         * @param string $content   Video shortcode content.
         * @param int    $instances Unique numeric ID of this video shortcode instance.
         */
         * @param string $content   Video shortcode content.
         * @param int    $instances Unique numeric ID of this video shortcode instance.
         */
-       $html = apply_filters( 'wp_video_shortcode_override', '', $attr, $content, $instances );
-       if ( '' !== $html )
-               return $html;
+       $override = apply_filters( 'wp_video_shortcode_override', '', $attr, $content, $instances );
+       if ( '' !== $override ) {
+               return $override;
+       }
 
        $video = null;
 
 
        $video = null;
 
@@ -1691,57 +1738,60 @@ function wp_video_shortcode( $attr, $content = '' ) {
                'height'   => 360,
        );
 
                'height'   => 360,
        );
 
-       foreach ( $default_types as $type )
+       foreach ( $default_types as $type ) {
                $defaults_atts[$type] = '';
                $defaults_atts[$type] = '';
+       }
 
        $atts = shortcode_atts( $defaults_atts, $attr, 'video' );
 
        $atts = shortcode_atts( $defaults_atts, $attr, 'video' );
-       extract( $atts );
 
        if ( is_admin() ) {
                // shrink the video so it isn't huge in the admin
 
        if ( is_admin() ) {
                // shrink the video so it isn't huge in the admin
-               if ( $width > $defaults_atts['width'] ) {
-                       $height = round( ( $height * $defaults_atts['width'] ) / $width );
-                       $width = $defaults_atts['width'];
+               if ( $atts['width'] > $defaults_atts['width'] ) {
+                       $atts['height'] = round( ( $atts['height'] * $defaults_atts['width'] ) / $atts['width'] );
+                       $atts['width'] = $defaults_atts['width'];
                }
        } else {
                // if the video is bigger than the theme
                }
        } else {
                // if the video is bigger than the theme
-               if ( ! empty( $content_width ) && $width > $content_width ) {
-                       $height = round( ( $height * $content_width ) / $width );
-                       $width = $content_width;
+               if ( ! empty( $content_width ) && $atts['width'] > $content_width ) {
+                       $atts['height'] = round( ( $atts['height'] * $content_width ) / $atts['width'] );
+                       $atts['width'] = $content_width;
                }
        }
 
                }
        }
 
-       $yt_pattern = '#^https?://(:?www\.)?(:?youtube\.com/watch|youtu\.be/)#';
+       $yt_pattern = '#^https?://(?:www\.)?(?:youtube\.com/watch|youtu\.be/)#';
 
        $primary = false;
 
        $primary = false;
-       if ( ! empty( $src ) ) {
-               if ( ! preg_match( $yt_pattern, $src ) ) {
-                       $type = wp_check_filetype( $src, wp_get_mime_types() );
+       if ( ! empty( $atts['src'] ) ) {
+               if ( ! preg_match( $yt_pattern, $atts['src'] ) ) {
+                       $type = wp_check_filetype( $atts['src'], wp_get_mime_types() );
                        if ( ! in_array( strtolower( $type['ext'] ), $default_types ) ) {
                        if ( ! in_array( strtolower( $type['ext'] ), $default_types ) ) {
-                               return sprintf( '<a class="wp-embedded-video" href="%s">%s</a>', esc_url( $src ), esc_html( $src ) );
+                               return sprintf( '<a class="wp-embedded-video" href="%s">%s</a>', esc_url( $atts['src'] ), esc_html( $atts['src'] ) );
                        }
                }
                $primary = true;
                array_unshift( $default_types, 'src' );
        } else {
                foreach ( $default_types as $ext ) {
                        }
                }
                $primary = true;
                array_unshift( $default_types, 'src' );
        } else {
                foreach ( $default_types as $ext ) {
-                       if ( ! empty( $$ext ) ) {
-                               $type = wp_check_filetype( $$ext, wp_get_mime_types() );
-                               if ( strtolower( $type['ext'] ) === $ext )
+                       if ( ! empty( $atts[ $ext ] ) ) {
+                               $type = wp_check_filetype( $atts[ $ext ], wp_get_mime_types() );
+                               if ( strtolower( $type['ext'] ) === $ext ) {
                                        $primary = true;
                                        $primary = true;
+                               }
                        }
                }
        }
 
        if ( ! $primary ) {
                $videos = get_attached_media( 'video', $post_id );
                        }
                }
        }
 
        if ( ! $primary ) {
                $videos = get_attached_media( 'video', $post_id );
-               if ( empty( $videos ) )
+               if ( empty( $videos ) ) {
                        return;
                        return;
+               }
 
                $video = reset( $videos );
 
                $video = reset( $videos );
-               $src = wp_get_attachment_url( $video->ID );
-               if ( empty( $src ) )
+               $atts['src'] = wp_get_attachment_url( $video->ID );
+               if ( empty( $atts['src'] ) ) {
                        return;
                        return;
+               }
 
                array_unshift( $default_types, 'src' );
        }
 
                array_unshift( $default_types, 'src' );
        }
@@ -1766,75 +1816,85 @@ function wp_video_shortcode( $attr, $content = '' ) {
         *
         * @param string $class CSS class or list of space-separated classes.
         */
         *
         * @param string $class CSS class or list of space-separated classes.
         */
-       $atts = array(
+       $html_atts = array(
                'class'    => apply_filters( 'wp_video_shortcode_class', 'wp-video-shortcode' ),
                'id'       => sprintf( 'video-%d-%d', $post_id, $instances ),
                'class'    => apply_filters( 'wp_video_shortcode_class', 'wp-video-shortcode' ),
                'id'       => sprintf( 'video-%d-%d', $post_id, $instances ),
-               'width'    => absint( $width ),
-               'height'   => absint( $height ),
-               'poster'   => esc_url( $poster ),
-               'loop'     => $loop,
-               'autoplay' => $autoplay,
-               'preload'  => $preload,
+               'width'    => absint( $atts['width'] ),
+               'height'   => absint( $atts['height'] ),
+               'poster'   => esc_url( $atts['poster'] ),
+               'loop'     => $atts['loop'],
+               'autoplay' => $atts['autoplay'],
+               'preload'  => $atts['preload'],
        );
 
        // These ones should just be omitted altogether if they are blank
        foreach ( array( 'poster', 'loop', 'autoplay', 'preload' ) as $a ) {
        );
 
        // These ones should just be omitted altogether if they are blank
        foreach ( array( 'poster', 'loop', 'autoplay', 'preload' ) as $a ) {
-               if ( empty( $atts[$a] ) )
-                       unset( $atts[$a] );
+               if ( empty( $html_atts[$a] ) ) {
+                       unset( $html_atts[$a] );
+               }
        }
 
        $attr_strings = array();
        }
 
        $attr_strings = array();
-       foreach ( $atts as $k => $v ) {
+       foreach ( $html_atts as $k => $v ) {
                $attr_strings[] = $k . '="' . esc_attr( $v ) . '"';
        }
 
        $html = '';
                $attr_strings[] = $k . '="' . esc_attr( $v ) . '"';
        }
 
        $html = '';
-       if ( 'mediaelement' === $library && 1 === $instances )
+       if ( 'mediaelement' === $library && 1 === $instances ) {
                $html .= "<!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->\n";
                $html .= "<!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->\n";
+       }
        $html .= sprintf( '<video %s controls="controls">', join( ' ', $attr_strings ) );
 
        $fileurl = '';
        $source = '<source type="%s" src="%s" />';
        foreach ( $default_types as $fallback ) {
        $html .= sprintf( '<video %s controls="controls">', join( ' ', $attr_strings ) );
 
        $fileurl = '';
        $source = '<source type="%s" src="%s" />';
        foreach ( $default_types as $fallback ) {
-               if ( ! empty( $$fallback ) ) {
-                       if ( empty( $fileurl ) )
-                               $fileurl = $$fallback;
-
-                       if ( 'src' === $fallback && preg_match( $yt_pattern, $src ) ) {
+               if ( ! empty( $atts[ $fallback ] ) ) {
+                       if ( empty( $fileurl ) ) {
+                               $fileurl = $atts[ $fallback ];
+                       }
+                       if ( 'src' === $fallback && preg_match( $yt_pattern, $atts['src'] ) ) {
                                $type = array( 'type' => 'video/youtube' );
                        } else {
                                $type = array( 'type' => 'video/youtube' );
                        } else {
-                               $type = wp_check_filetype( $$fallback, wp_get_mime_types() );
+                               $type = wp_check_filetype( $atts[ $fallback ], wp_get_mime_types() );
                        }
                        }
-                       $url = add_query_arg( '_', $instances, $$fallback );
+                       $url = add_query_arg( '_', $instances, $atts[ $fallback ] );
                        $html .= sprintf( $source, $type['type'], esc_url( $url ) );
                }
        }
 
        if ( ! empty( $content ) ) {
                        $html .= sprintf( $source, $type['type'], esc_url( $url ) );
                }
        }
 
        if ( ! empty( $content ) ) {
-               if ( false !== strpos( $content, "\n" ) )
+               if ( false !== strpos( $content, "\n" ) ) {
                        $content = str_replace( array( "\r\n", "\n", "\t" ), '', $content );
                        $content = str_replace( array( "\r\n", "\n", "\t" ), '', $content );
-
+               }
                $html .= trim( $content );
        }
 
                $html .= trim( $content );
        }
 
-       if ( 'mediaelement' === $library )
+       if ( 'mediaelement' === $library ) {
                $html .= wp_mediaelement_fallback( $fileurl );
                $html .= wp_mediaelement_fallback( $fileurl );
+       }
        $html .= '</video>';
 
        $html .= '</video>';
 
-       $html = sprintf( '<div style="width: %dpx; max-width: 100%%;" class="wp-video">%s</div>', $width, $html );
+       $width_rule = $height_rule = '';
+       if ( ! empty( $atts['width'] ) ) {
+               $width_rule = sprintf( 'width: %dpx; ', $atts['width'] );
+       }
+       if ( ! empty( $atts['height'] ) ) {
+               $height_rule = sprintf( 'height: %dpx; ', $atts['height'] );
+       }
+       $output = sprintf( '<div style="%s%s" class="wp-video">%s</div>', $width_rule, $height_rule, $html );
 
        /**
         * Filter the output of the video shortcode.
         *
         * @since 3.6.0
         *
 
        /**
         * Filter the output of the video shortcode.
         *
         * @since 3.6.0
         *
-        * @param string $html    Video shortcode HTML output.
+        * @param string $output  Video shortcode HTML output.
         * @param array  $atts    Array of video shortcode attributes.
         * @param string $video   Video file.
         * @param int    $post_id Post ID.
         * @param string $library Media library used for the video shortcode.
         */
         * @param array  $atts    Array of video shortcode attributes.
         * @param string $video   Video file.
         * @param int    $post_id Post ID.
         * @param string $library Media library used for the video shortcode.
         */
-       return apply_filters( 'wp_video_shortcode', $html, $atts, $video, $post_id, $library );
+       return apply_filters( 'wp_video_shortcode', $output, $atts, $video, $post_id, $library );
 }
 add_shortcode( 'video', 'wp_video_shortcode' );
 
 }
 add_shortcode( 'video', 'wp_video_shortcode' );
 
@@ -1875,16 +1935,22 @@ function adjacent_image_link($prev = true, $size = 'thumbnail', $text = false) {
        $post = get_post();
        $attachments = array_values( get_children( array( 'post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ) );
 
        $post = get_post();
        $attachments = array_values( get_children( array( 'post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ) );
 
-       foreach ( $attachments as $k => $attachment )
-               if ( $attachment->ID == $post->ID )
+       foreach ( $attachments as $k => $attachment ) {
+               if ( $attachment->ID == $post->ID ) {
                        break;
                        break;
+               }
+       }
+
+       $output = '';
+       $attachment_id = 0;
 
 
-       $k = $prev ? $k - 1 : $k + 1;
+       if ( $attachments ) {
+               $k = $prev ? $k - 1 : $k + 1;
 
 
-       $output = $attachment_id = null;
-       if ( isset( $attachments[ $k ] ) ) {
-               $attachment_id = $attachments[ $k ]->ID;
-               $output = wp_get_attachment_link( $attachment_id, $size, true, false, $text );
+               if ( isset( $attachments[ $k ] ) ) {
+                       $attachment_id = $attachments[ $k ]->ID;
+                       $output = wp_get_attachment_link( $attachment_id, $size, true, false, $text );
+               }
        }
 
        $adjacent = $prev ? 'previous' : 'next';
        }
 
        $adjacent = $prev ? 'previous' : 'next';
@@ -2026,9 +2092,11 @@ function wp_embed_unregister_handler( $id, $priority = 10 ) {
  *
  * @since 2.9.0
  *
  *
  * @since 2.9.0
  *
+ * @param string $url Optional. The URL that should be embedded. Default empty.
+ *
  * @return array Default embed parameters.
  */
  * @return array Default embed parameters.
  */
-function wp_embed_defaults() {
+function wp_embed_defaults( $url = '' ) {
        if ( ! empty( $GLOBALS['content_width'] ) )
                $width = (int) $GLOBALS['content_width'];
 
        if ( ! empty( $GLOBALS['content_width'] ) )
                $width = (int) $GLOBALS['content_width'];
 
@@ -2042,10 +2110,11 @@ function wp_embed_defaults() {
         *
         * @since 2.9.0
         *
         *
         * @since 2.9.0
         *
-        * @param int $width  Width of the embed in pixels.
-        * @param int $height Height of the embed in pixels.
+        * @param int    $width  Width of the embed in pixels.
+        * @param int    $height Height of the embed in pixels.
+        * @param string $url    The URL that should be embedded.
         */
         */
-       return apply_filters( 'embed_defaults', compact( 'width', 'height' ) );
+       return apply_filters( 'embed_defaults', compact( 'width', 'height' ), $url );
 }
 
 /**
 }
 
 /**
@@ -2102,8 +2171,13 @@ function wp_oembed_get( $url, $args = '' ) {
  */
 function wp_oembed_add_provider( $format, $provider, $regex = false ) {
        require_once( ABSPATH . WPINC . '/class-oembed.php' );
  */
 function wp_oembed_add_provider( $format, $provider, $regex = false ) {
        require_once( ABSPATH . WPINC . '/class-oembed.php' );
-       $oembed = _wp_oembed_get_object();
-       $oembed->providers[$format] = array( $provider, $regex );
+
+       if ( did_action( 'plugins_loaded' ) ) {
+               $oembed = _wp_oembed_get_object();
+               $oembed->providers[$format] = array( $provider, $regex );
+       } else {
+               WP_oEmbed::_add_provider_early( $format, $provider, $regex );
+       }
 }
 
 /**
 }
 
 /**
@@ -2119,11 +2193,15 @@ function wp_oembed_add_provider( $format, $provider, $regex = false ) {
 function wp_oembed_remove_provider( $format ) {
        require_once( ABSPATH . WPINC . '/class-oembed.php' );
 
 function wp_oembed_remove_provider( $format ) {
        require_once( ABSPATH . WPINC . '/class-oembed.php' );
 
-       $oembed = _wp_oembed_get_object();
+       if ( did_action( 'plugins_loaded' ) ) {
+               $oembed = _wp_oembed_get_object();
 
 
-       if ( isset( $oembed->providers[ $format ] ) ) {
-               unset( $oembed->providers[ $format ] );
-               return true;
+               if ( isset( $oembed->providers[ $format ] ) ) {
+                       unset( $oembed->providers[ $format ] );
+                       return true;
+               }
+       } else {
+               WP_oEmbed::_remove_provider_early( $format );
        }
 
        return false;
        }
 
        return false;
@@ -2151,6 +2229,8 @@ function wp_maybe_load_embeds() {
                return;
        }
 
                return;
        }
 
+       wp_embed_register_handler( 'youtube_embed_url', '#https?://(www.)?youtube\.com/embed/([^/]+)#i', 'wp_embed_handler_youtube' );
+
        wp_embed_register_handler( 'googlevideo', '#http://video\.google\.([A-Za-z.]{2,5})/videoplay\?docid=([\d-]+)(.*?)#i', 'wp_embed_handler_googlevideo' );
 
        /**
        wp_embed_register_handler( 'googlevideo', '#http://video\.google\.([A-Za-z.]{2,5})/videoplay\?docid=([\d-]+)(.*?)#i', 'wp_embed_handler_googlevideo' );
 
        /**
@@ -2207,6 +2287,38 @@ function wp_embed_handler_googlevideo( $matches, $attr, $url, $rawattr ) {
        return apply_filters( 'embed_googlevideo', '<embed type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=' . esc_attr($matches[2]) . '&amp;hl=en&amp;fs=true" style="width:' . esc_attr($width) . 'px;height:' . esc_attr($height) . 'px" allowFullScreen="true" allowScriptAccess="always" />', $matches, $attr, $url, $rawattr );
 }
 
        return apply_filters( 'embed_googlevideo', '<embed type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docid=' . esc_attr($matches[2]) . '&amp;hl=en&amp;fs=true" style="width:' . esc_attr($width) . 'px;height:' . esc_attr($height) . 'px" allowFullScreen="true" allowScriptAccess="always" />', $matches, $attr, $url, $rawattr );
 }
 
+/**
+ * YouTube embed handler callback.
+ *
+ * Catches URLs that can be parsed but aren't supported by oEmbed.
+ *
+ * @since 4.0.0
+ *
+ * @param array  $matches The regex matches from the provided regex when calling
+ *                        {@see wp_embed_register_handler()}.
+ * @param array  $attr    Embed attributes.
+ * @param string $url     The original URL that was matched by the regex.
+ * @param array  $rawattr The original unmodified attributes.
+ * @return string The embed HTML.
+ */
+function wp_embed_handler_youtube( $matches, $attr, $url, $rawattr ) {
+       global $wp_embed;
+       $embed = $wp_embed->autoembed( "https://youtube.com/watch?v={$matches[2]}" );
+       /**
+        * Filter the YoutTube embed output.
+        *
+        * @since 4.0.0
+        *
+        * @see wp_embed_handler_youtube()
+        *
+        * @param string $embed   YouTube embed output.
+        * @param array  $attr    An array of embed attributes.
+        * @param string $url     The original URL that was matched by the regex.
+        * @param array  $rawattr The original unmodified attributes.
+        */
+       return apply_filters( 'wp_embed_handler_youtube', $embed, $attr, $url, $rawattr );
+}
+
 /**
  * Audio embed handler callback.
  *
 /**
  * Audio embed handler callback.
  *
@@ -2430,11 +2542,6 @@ function wp_plupload_default_settings() {
                ),
        );
 
                ),
        );
 
-       // Multi-file uploading doesn't currently work in iOS Safari,
-       // single-file allows the built-in camera to be used as source for images
-       if ( wp_is_mobile() )
-               $defaults['multi_selection'] = false;
-
        /**
         * Filter the Plupload default settings.
         *
        /**
         * Filter the Plupload default settings.
         *
@@ -2528,8 +2635,28 @@ function wp_prepare_attachment_for_js( $attachment ) {
                        'edit'   => false
                ),
                'editLink'   => false,
                        'edit'   => false
                ),
                'editLink'   => false,
+               'meta'       => false,
        );
 
        );
 
+       $author = new WP_User( $attachment->post_author );
+       $response['authorName'] = $author->display_name;
+
+       if ( $attachment->post_parent ) {
+               $post_parent = get_post( $attachment->post_parent );
+               $parent_type = get_post_type_object( $post_parent->post_type );
+               if ( $parent_type && $parent_type->show_ui && current_user_can( 'edit_post', $attachment->post_parent ) ) {
+                       $response['uploadedToLink'] = get_edit_post_link( $attachment->post_parent, 'raw' );
+               }
+               $response['uploadedToTitle'] = $post_parent->post_title ? $post_parent->post_title : __( '(no title)' );
+       }
+
+       $attached_file = get_attached_file( $attachment->ID );
+       if ( file_exists( $attached_file ) ) {
+               $bytes = filesize( $attached_file );
+               $response['filesizeInBytes'] = $bytes;
+               $response['filesizeHumanReadable'] = size_format( $bytes );
+       }
+
        if ( current_user_can( 'edit_post', $attachment->ID ) ) {
                $response['nonces']['update'] = wp_create_nonce( 'update-post_' . $attachment->ID );
                $response['nonces']['edit'] = wp_create_nonce( 'image_editor-' . $attachment->ID );
        if ( current_user_can( 'edit_post', $attachment->ID ) ) {
                $response['nonces']['update'] = wp_create_nonce( 'update-post_' . $attachment->ID );
                $response['nonces']['edit'] = wp_create_nonce( 'image_editor-' . $attachment->ID );
@@ -2608,7 +2735,9 @@ function wp_prepare_attachment_for_js( $attachment ) {
                        $response['fileLength'] = $meta['length_formatted'];
 
                $response['meta'] = array();
                        $response['fileLength'] = $meta['length_formatted'];
 
                $response['meta'] = array();
-               foreach ( wp_get_attachment_id3_keys( $attachment ) as $key => $label ) {
+               foreach ( wp_get_attachment_id3_keys( $attachment, 'js' ) as $key => $label ) {
+                       $response['meta'][ $key ] = false;
+
                        if ( ! empty( $meta[ $key ] ) ) {
                                $response['meta'][ $key ] = $meta[ $key ];
                        }
                        if ( ! empty( $meta[ $key ] ) ) {
                                $response['meta'][ $key ] = $meta[ $key ];
                        }
@@ -2656,7 +2785,7 @@ function wp_enqueue_media( $args = array() ) {
        if ( did_action( 'wp_enqueue_media' ) )
                return;
 
        if ( did_action( 'wp_enqueue_media' ) )
                return;
 
-       global $content_width, $wpdb;
+       global $content_width, $wpdb, $wp_locale;
 
        $defaults = array(
                'post' => null,
 
        $defaults = array(
                'post' => null,
@@ -2709,6 +2838,15 @@ function wp_enqueue_media( $args = array() ) {
                AND post_mime_type LIKE 'video%'
                LIMIT 1
        " );
                AND post_mime_type LIKE 'video%'
                LIMIT 1
        " );
+       $months = $wpdb->get_results( $wpdb->prepare( "
+               SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month
+               FROM $wpdb->posts
+               WHERE post_type = %s
+               ORDER BY post_date DESC
+       ", 'attachment' ) );
+       foreach ( $months as $month_year ) {
+               $month_year->text = sprintf( __( '%1$s %2$d' ), $wp_locale->get_month( $month_year->month ), $month_year->year );
+       }
 
        $settings = array(
                'tabs'      => $tabs,
 
        $settings = array(
                'tabs'      => $tabs,
@@ -2724,12 +2862,14 @@ function wp_enqueue_media( $args = array() ) {
                ),
                'defaultProps' => $props,
                'attachmentCounts' => array(
                ),
                'defaultProps' => $props,
                'attachmentCounts' => array(
-                       'audio' => (int) $has_audio,
-                       'video' => (int) $has_video,
+                       'audio' => ( $has_audio ) ? 1 : 0,
+                       'video' => ( $has_video ) ? 1 : 0
                ),
                'embedExts'    => $exts,
                'embedMimes'   => $ext_mimes,
                'contentWidth' => $content_width,
                ),
                'embedExts'    => $exts,
                'embedMimes'   => $ext_mimes,
                'contentWidth' => $content_width,
+               'months'       => $months,
+               'mediaTrash'   => MEDIA_TRASH ? 1 : 0
        );
 
        $post = null;
        );
 
        $post = null;
@@ -2780,17 +2920,36 @@ function wp_enqueue_media( $args = array() ) {
                'uploadImagesTitle' => __( 'Upload Images' ),
 
                // Library
                'uploadImagesTitle' => __( 'Upload Images' ),
 
                // Library
-               'mediaLibraryTitle'  => __( 'Media Library' ),
-               'insertMediaTitle'   => __( 'Insert Media' ),
-               'createNewGallery'   => __( 'Create a new gallery' ),
-               'createNewPlaylist'   => __( 'Create a new playlist' ),
-               'createNewVideoPlaylist'   => __( 'Create a new video playlist' ),
-               'returnToLibrary'    => __( '&#8592; Return to library' ),
-               'allMediaItems'      => __( 'All media items' ),
-               'noItemsFound'       => __( 'No items found.' ),
-               'insertIntoPost'     => $hier ? __( 'Insert into page' ) : __( 'Insert into post' ),
-               'uploadedToThisPost' => $hier ? __( 'Uploaded to this page' ) : __( 'Uploaded to this post' ),
-               'warnDelete' =>      __( "You are about to permanently delete this item.\n  'Cancel' to stop, 'OK' to delete." ),
+               'mediaLibraryTitle'      => __( 'Media Library' ),
+               'insertMediaTitle'       => __( 'Insert Media' ),
+               'createNewGallery'       => __( 'Create a new gallery' ),
+               'createNewPlaylist'      => __( 'Create a new playlist' ),
+               'createNewVideoPlaylist' => __( 'Create a new video playlist' ),
+               'returnToLibrary'        => __( '&#8592; Return to library' ),
+               'allMediaItems'          => __( 'All media items' ),
+               'allMediaTypes'          => __( 'All media types' ),
+               'allDates'               => __( 'All dates' ),
+               'noItemsFound'           => __( 'No items found.' ),
+               'insertIntoPost'         => $hier ? __( 'Insert into page' ) : __( 'Insert into post' ),
+               'unattached'             => __( 'Unattached' ),
+               'trash'                  => __( 'Trash' ),
+               'uploadedToThisPost'     => $hier ? __( 'Uploaded to this page' ) : __( 'Uploaded to this post' ),
+               'warnDelete'             => __( "You are about to permanently delete this item.\n  'Cancel' to stop, 'OK' to delete." ),
+               'warnBulkDelete'         => __( "You are about to permanently delete these items.\n  'Cancel' to stop, 'OK' to delete." ),
+               'warnBulkTrash'          => __( "You are about to trash these items.\n  'Cancel' to stop, 'OK' to delete." ),
+               'bulkSelect'             => __( 'Bulk Select' ),
+               'cancelSelection'        => __( 'Cancel Selection' ),
+               'trashSelected'          => __( 'Trash Selected' ),
+               'untrashSelected'        => __( 'Untrash Selected' ),
+               'deleteSelected'         => __( 'Delete Selected' ),
+               'deletePermanently'      => __( 'Delete Permanently' ),
+               'apply'                  => __( 'Apply' ),
+               'filterByDate'           => __( 'Filter by date' ),
+               'filterByType'           => __( 'Filter by type' ),
+               'searchMediaLabel'       => __( 'Search Media' ),
+
+               // Library Details
+               'attachmentDetails'  => __( 'Attachment Details' ),
 
                // From URL
                'insertFromUrlTitle' => __( 'Insert from URL' ),
 
                // From URL
                'insertFromUrlTitle' => __( 'Insert from URL' ),
@@ -2858,6 +3017,10 @@ function wp_enqueue_media( $args = array() ) {
                'updateVideoPlaylist'      => __( 'Update video playlist' ),
                'addToVideoPlaylist'       => __( 'Add to video playlist' ),
                'addToVideoPlaylistTitle'  => __( 'Add to Video Playlist' ),
                'updateVideoPlaylist'      => __( 'Update video playlist' ),
                'addToVideoPlaylist'       => __( 'Add to video playlist' ),
                'addToVideoPlaylistTitle'  => __( 'Add to Video Playlist' ),
+
+               // Media Library
+               'editMetadata' => __( 'Edit Metadata' ),
+               'noMedia'      => __( 'No media attachments found.' ),
        );
 
        /**
        );
 
        /**
@@ -2882,9 +3045,11 @@ function wp_enqueue_media( $args = array() ) {
 
        $strings['settings'] = $settings;
 
 
        $strings['settings'] = $settings;
 
+       // Ensure we enqueue media-editor first, that way media-views is
+       // registered internally before we try to localize it. see #24724.
+       wp_enqueue_script( 'media-editor' );
        wp_localize_script( 'media-views', '_wpMediaViewsL10n', $strings );
 
        wp_localize_script( 'media-views', '_wpMediaViewsL10n', $strings );
 
-       wp_enqueue_script( 'media-editor' );
        wp_enqueue_script( 'media-audiovideo' );
        wp_enqueue_style( 'media-views' );
        if ( is_admin() ) {
        wp_enqueue_script( 'media-audiovideo' );
        wp_enqueue_style( 'media-views' );
        if ( is_admin() ) {
@@ -2912,9 +3077,9 @@ function wp_enqueue_media( $args = array() ) {
  *
  * @since 3.6.0
  *
  *
  * @since 3.6.0
  *
- * @param string $type (Mime) type of media desired
- * @param mixed $post Post ID or object
- * @return array Found attachments
+ * @param string      $type Mime type.
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
+ * @return array Found attachments.
  */
 function get_attached_media( $type, $post = 0 ) {
        if ( ! $post = get_post( $post ) )
  */
 function get_attached_media( $type, $post = 0 ) {
        if ( ! $post = get_post( $post ) )
@@ -2943,7 +3108,7 @@ function get_attached_media( $type, $post = 0 ) {
        $children = get_children( $args );
 
        /**
        $children = get_children( $args );
 
        /**
-        * Filter the
+        * Filter the list of media attached to the given post.
         *
         * @since 3.6.0
         *
         *
         * @since 3.6.0
         *
@@ -3003,7 +3168,6 @@ function get_post_galleries( $post, $html = true ) {
                foreach ( $matches as $shortcode ) {
                        if ( 'gallery' === $shortcode[2] ) {
                                $srcs = array();
                foreach ( $matches as $shortcode ) {
                        if ( 'gallery' === $shortcode[2] ) {
                                $srcs = array();
-                               $count = 1;
 
                                $gallery = do_shortcode_tag( $shortcode );
                                if ( $html ) {
 
                                $gallery = do_shortcode_tag( $shortcode );
                                if ( $html ) {
@@ -3039,7 +3203,7 @@ function get_post_galleries( $post, $html = true ) {
  *
  * @since 3.6.0
  *
  *
  * @since 3.6.0
  *
- * @param int|WP_Post $post Optional. Post ID or object.
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
  * @param bool        $html Whether to return HTML or data.
  * @return string|array Gallery data and srcs parsed from the expanded shortcode.
  */
  * @param bool        $html Whether to return HTML or data.
  * @return string|array Gallery data and srcs parsed from the expanded shortcode.
  */
@@ -3064,8 +3228,8 @@ function get_post_gallery( $post = 0, $html = true ) {
  *
  * @since 3.6.0
  *
  *
  * @since 3.6.0
  *
- * @param mixed $post Optional. Post ID or object.
- * @return array A list of lists, each containing image srcs parsed
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
+ * @return array A list of lists, each containing image srcs parsed.
  *             from an expanded shortcode
  */
 function get_post_galleries_images( $post = 0 ) {
  *             from an expanded shortcode
  */
 function get_post_galleries_images( $post = 0 ) {
@@ -3078,8 +3242,8 @@ function get_post_galleries_images( $post = 0 ) {
  *
  * @since 3.6.0
  *
  *
  * @since 3.6.0
  *
- * @param mixed $post Optional. Post ID or object.
- * @return array A list of a gallery's image srcs in order
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
+ * @return array A list of a gallery's image srcs in order.
  */
 function get_post_gallery_images( $post = 0 ) {
        $gallery = get_post_gallery( $post, false );
  */
 function get_post_gallery_images( $post = 0 ) {
        $gallery = get_post_gallery( $post, false );
@@ -3110,3 +3274,46 @@ function wp_maybe_generate_attachment_metadata( $attachment ) {
                }
        }
 }
                }
        }
 }
+
+/**
+ * Try to convert an attachment URL into a post ID.
+ *
+ * @since 4.0.0
+ *
+ * @global wpdb $wpdb WordPress database access abstraction object.
+ *
+ * @param string $url The URL to resolve.
+ * @return int The found post ID.
+ */
+function attachment_url_to_postid( $url ) {
+       global $wpdb;
+
+       $dir = wp_upload_dir();
+       $path = ltrim( $url, $dir['baseurl'] . '/' );
+
+       $sql = $wpdb->prepare(
+               "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attached_file' AND meta_value = %s",
+               $path
+       );
+       $post_id = $wpdb->get_var( $sql );
+       if ( ! empty( $post_id ) ) {
+               return (int) $post_id;
+       }
+}
+
+/**
+ * Return the URls for CSS files used in an <iframe>-sandbox'd TinyMCE media view
+ *
+ * @since 4.0.0
+ *
+ * @global $wp_version
+ *
+ * @return array The relevant CSS file URLs.
+ */
+function wpview_media_sandbox_styles() {
+       $version = 'ver=' . $GLOBALS['wp_version'];
+       $mediaelement = includes_url( "js/mediaelement/mediaelementplayer.min.css?$version" );
+       $wpmediaelement = includes_url( "js/mediaelement/wp-mediaelement.css?$version" );
+
+       return array( $mediaelement, $wpmediaelement );
+}
index 0f3aaa979d77bc4d9308e3a687766657993f92a7..e3c43cffe663561ed74cae76be064c6d5085853c 100644 (file)
  * @return int|bool The meta ID on success, false on failure.
  */
 function add_metadata($meta_type, $object_id, $meta_key, $meta_value, $unique = false) {
  * @return int|bool The meta ID on success, false on failure.
  */
 function add_metadata($meta_type, $object_id, $meta_key, $meta_value, $unique = false) {
-       if ( !$meta_type || !$meta_key )
-               return false;
+       global $wpdb;
 
 
-       if ( !$object_id = absint($object_id) )
+       if ( ! $meta_type || ! $meta_key || ! is_numeric( $object_id ) ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $table = _get_meta_table($meta_type) )
+       $object_id = absint( $object_id );
+       if ( ! $object_id ) {
                return false;
                return false;
+       }
 
 
-       global $wpdb;
+       $table = _get_meta_table( $meta_type );
+       if ( ! $table ) {
+               return false;
+       }
 
        $column = sanitize_key($meta_type . '_id');
 
 
        $column = sanitize_key($meta_type . '_id');
 
@@ -134,16 +139,21 @@ function add_metadata($meta_type, $object_id, $meta_key, $meta_value, $unique =
  * @return int|bool Meta ID if the key didn't exist, true on successful update, false on failure.
  */
 function update_metadata($meta_type, $object_id, $meta_key, $meta_value, $prev_value = '') {
  * @return int|bool Meta ID if the key didn't exist, true on successful update, false on failure.
  */
 function update_metadata($meta_type, $object_id, $meta_key, $meta_value, $prev_value = '') {
-       if ( !$meta_type || !$meta_key )
-               return false;
+       global $wpdb;
 
 
-       if ( !$object_id = absint($object_id) )
+       if ( ! $meta_type || ! $meta_key || ! is_numeric( $object_id ) ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $table = _get_meta_table($meta_type) )
+       $object_id = absint( $object_id );
+       if ( ! $object_id ) {
                return false;
                return false;
+       }
 
 
-       global $wpdb;
+       $table = _get_meta_table( $meta_type );
+       if ( ! $table ) {
+               return false;
+       }
 
        $column = sanitize_key($meta_type . '_id');
        $id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
 
        $column = sanitize_key($meta_type . '_id');
        $id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
@@ -281,16 +291,21 @@ function update_metadata($meta_type, $object_id, $meta_key, $meta_value, $prev_v
  * @return bool True on successful delete, false on failure.
  */
 function delete_metadata($meta_type, $object_id, $meta_key, $meta_value = '', $delete_all = false) {
  * @return bool True on successful delete, false on failure.
  */
 function delete_metadata($meta_type, $object_id, $meta_key, $meta_value = '', $delete_all = false) {
-       if ( !$meta_type || !$meta_key )
-               return false;
+       global $wpdb;
 
 
-       if ( (!$object_id = absint($object_id)) && !$delete_all )
+       if ( ! $meta_type || ! $meta_key || ! is_numeric( $object_id ) && ! $delete_all ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $table = _get_meta_table($meta_type) )
+       $object_id = absint( $object_id );
+       if ( ! $object_id && ! $delete_all ) {
                return false;
                return false;
+       }
 
 
-       global $wpdb;
+       $table = _get_meta_table( $meta_type );
+       if ( ! $table ) {
+               return false;
+       }
 
        $type_column = sanitize_key($meta_type . '_id');
        $id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
 
        $type_column = sanitize_key($meta_type . '_id');
        $id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
@@ -423,11 +438,14 @@ function delete_metadata($meta_type, $object_id, $meta_key, $meta_value = '', $d
  * @return string|array Single metadata value, or array of values
  */
 function get_metadata($meta_type, $object_id, $meta_key = '', $single = false) {
  * @return string|array Single metadata value, or array of values
  */
 function get_metadata($meta_type, $object_id, $meta_key = '', $single = false) {
-       if ( !$meta_type )
+       if ( ! $meta_type || ! is_numeric( $object_id ) ) {
                return false;
                return false;
+       }
 
 
-       if ( !$object_id = absint($object_id) )
+       $object_id = absint( $object_id );
+       if ( ! $object_id ) {
                return false;
                return false;
+       }
 
        /**
         * Filter whether to retrieve metadata of a specific type.
 
        /**
         * Filter whether to retrieve metadata of a specific type.
@@ -487,11 +505,14 @@ function get_metadata($meta_type, $object_id, $meta_key = '', $single = false) {
  * @return boolean true of the key is set, false if not.
  */
 function metadata_exists( $meta_type, $object_id, $meta_key ) {
  * @return boolean true of the key is set, false if not.
  */
 function metadata_exists( $meta_type, $object_id, $meta_key ) {
-       if ( ! $meta_type )
+       if ( ! $meta_type || ! is_numeric( $object_id ) ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $object_id = absint( $object_id ) )
+       $object_id = absint( $object_id );
+       if ( ! $object_id ) {
                return false;
                return false;
+       }
 
        /** This filter is documented in wp-includes/meta.php */
        $check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, true );
 
        /** This filter is documented in wp-includes/meta.php */
        $check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, true );
@@ -523,14 +544,19 @@ function metadata_exists( $meta_type, $object_id, $meta_key ) {
 function get_metadata_by_mid( $meta_type, $meta_id ) {
        global $wpdb;
 
 function get_metadata_by_mid( $meta_type, $meta_id ) {
        global $wpdb;
 
-       if ( ! $meta_type )
+       if ( ! $meta_type || ! is_numeric( $meta_id ) ) {
                return false;
                return false;
+       }
 
 
-       if ( !$meta_id = absint( $meta_id ) )
+       $meta_id = absint( $meta_id );
+       if ( ! $meta_id ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $table = _get_meta_table($meta_type) )
+       $table = _get_meta_table( $meta_type );
+       if ( ! $table ) {
                return false;
                return false;
+       }
 
        $id_column = ( 'user' == $meta_type ) ? 'umeta_id' : 'meta_id';
 
 
        $id_column = ( 'user' == $meta_type ) ? 'umeta_id' : 'meta_id';
 
@@ -563,14 +589,19 @@ function update_metadata_by_mid( $meta_type, $meta_id, $meta_value, $meta_key =
        global $wpdb;
 
        // Make sure everything is valid.
        global $wpdb;
 
        // Make sure everything is valid.
-       if ( ! $meta_type )
+       if ( ! $meta_type || ! is_numeric( $meta_id ) ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $meta_id = absint( $meta_id ) )
+       $meta_id = absint( $meta_id );
+       if ( ! $meta_id ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $table = _get_meta_table( $meta_type ) )
+       $table = _get_meta_table( $meta_type );
+       if ( ! $table ) {
                return false;
                return false;
+       }
 
        $column = sanitize_key($meta_type . '_id');
        $id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
 
        $column = sanitize_key($meta_type . '_id');
        $id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
@@ -578,7 +609,6 @@ function update_metadata_by_mid( $meta_type, $meta_id, $meta_value, $meta_key =
        // Fetch the meta and go on if it's found.
        if ( $meta = get_metadata_by_mid( $meta_type, $meta_id ) ) {
                $original_key = $meta->meta_key;
        // Fetch the meta and go on if it's found.
        if ( $meta = get_metadata_by_mid( $meta_type, $meta_id ) ) {
                $original_key = $meta->meta_key;
-               $original_value = $meta->meta_value;
                $object_id = $meta->{$column};
 
                // If a new meta_key (last parameter) was specified, change the meta key,
                $object_id = $meta->{$column};
 
                // If a new meta_key (last parameter) was specified, change the meta key,
@@ -651,14 +681,19 @@ function delete_metadata_by_mid( $meta_type, $meta_id ) {
        global $wpdb;
 
        // Make sure everything is valid.
        global $wpdb;
 
        // Make sure everything is valid.
-       if ( ! $meta_type )
+       if ( ! $meta_type || ! is_numeric( $meta_id ) ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $meta_id = absint( $meta_id ) )
+       $meta_id = absint( $meta_id );
+       if ( ! $meta_id ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $table = _get_meta_table( $meta_type ) )
+       $table = _get_meta_table( $meta_type );
+       if ( ! $table ) {
                return false;
                return false;
+       }
 
        // object and id columns
        $column = sanitize_key($meta_type . '_id');
 
        // object and id columns
        $column = sanitize_key($meta_type . '_id');
@@ -729,16 +764,19 @@ function delete_metadata_by_mid( $meta_type, $meta_id ) {
  * @return mixed Metadata cache for the specified objects, or false on failure.
  */
 function update_meta_cache($meta_type, $object_ids) {
  * @return mixed Metadata cache for the specified objects, or false on failure.
  */
 function update_meta_cache($meta_type, $object_ids) {
-       if ( empty( $meta_type ) || empty( $object_ids ) )
+       global $wpdb;
+
+       if ( ! $meta_type || ! $object_ids ) {
                return false;
                return false;
+       }
 
 
-       if ( ! $table = _get_meta_table($meta_type) )
+       $table = _get_meta_table( $meta_type );
+       if ( ! $table ) {
                return false;
                return false;
+       }
 
        $column = sanitize_key($meta_type . '_id');
 
 
        $column = sanitize_key($meta_type . '_id');
 
-       global $wpdb;
-
        if ( !is_array($object_ids) ) {
                $object_ids = preg_replace('|[^0-9,]|', '', $object_ids);
                $object_ids = explode(',', $object_ids);
        if ( !is_array($object_ids) ) {
                $object_ids = preg_replace('|[^0-9,]|', '', $object_ids);
                $object_ids = explode(',', $object_ids);
@@ -848,7 +886,7 @@ class WP_Meta_Query {
         *
         * @param array $meta_query (optional) A meta query
         */
         *
         * @param array $meta_query (optional) A meta query
         */
-       function __construct( $meta_query = false ) {
+       public function __construct( $meta_query = false ) {
                if ( !$meta_query )
                        return;
 
                if ( !$meta_query )
                        return;
 
@@ -876,7 +914,7 @@ class WP_Meta_Query {
         *
         * @param array $qv The query variables
         */
         *
         * @param array $qv The query variables
         */
-       function parse_query_vars( $qv ) {
+       public function parse_query_vars( $qv ) {
                $meta_query = array();
 
                // Simple query needs to be first for orderby=meta_value to work correctly
                $meta_query = array();
 
                // Simple query needs to be first for orderby=meta_value to work correctly
@@ -904,7 +942,7 @@ class WP_Meta_Query {
         * @param string $type MySQL type to cast meta_value
         * @return string MySQL type
         */
         * @param string $type MySQL type to cast meta_value
         * @return string MySQL type
         */
-       function get_cast_for_type( $type = '' ) {
+       public function get_cast_for_type( $type = '' ) {
                if ( empty( $type ) )
                        return 'CHAR';
 
                if ( empty( $type ) )
                        return 'CHAR';
 
@@ -931,7 +969,7 @@ class WP_Meta_Query {
         * @param object $context (optional) The main query object
         * @return array( 'join' => $join_sql, 'where' => $where_sql )
         */
         * @param object $context (optional) The main query object
         * @return array( 'join' => $join_sql, 'where' => $where_sql )
         */
-       function get_sql( $type, $primary_table, $primary_id_column, $context = null ) {
+       public function get_sql( $type, $primary_table, $primary_id_column, $context = null ) {
                global $wpdb;
 
                if ( ! $meta_table = _get_meta_table( $type ) )
                global $wpdb;
 
                if ( ! $meta_table = _get_meta_table( $type ) )
@@ -1041,8 +1079,8 @@ class WP_Meta_Query {
                        } elseif ( 'BETWEEN' == substr( $meta_compare, -7) ) {
                                $meta_value = array_slice( $meta_value, 0, 2 );
                                $meta_compare_string = '%s AND %s';
                        } elseif ( 'BETWEEN' == substr( $meta_compare, -7) ) {
                                $meta_value = array_slice( $meta_value, 0, 2 );
                                $meta_compare_string = '%s AND %s';
-                       } elseif ( 'LIKE' == substr( $meta_compare, -4 ) ) {
-                               $meta_value = '%' . like_escape( $meta_value ) . '%';
+                       } elseif ( 'LIKE' == $meta_compare || 'NOT LIKE' == $meta_compare ) {
+                               $meta_value = '%' . $wpdb->esc_like( $meta_value ) . '%';
                                $meta_compare_string = '%s';
                        } else {
                                $meta_compare_string = '%s';
                                $meta_compare_string = '%s';
                        } else {
                                $meta_compare_string = '%s';
index 16a491818a36bf18318630be3cefd21fdae4b47d..e7016565357498dedac0ed25f9f2a56ae1c9bdd4 100644 (file)
@@ -235,10 +235,14 @@ function get_blog_details( $fields = null, $get_all = true ) {
  *
  * @since MU
  *
  *
  * @since MU
  *
- * @param int $blog_id Blog ID
+ * @param int $blog_id Optional. Blog ID. Defaults to current blog.
  */
  */
-function refresh_blog_details( $blog_id ) {
+function refresh_blog_details( $blog_id = 0 ) {
        $blog_id = (int) $blog_id;
        $blog_id = (int) $blog_id;
+       if ( ! $blog_id ) {
+               $blog_id = get_current_blog_id();
+       }
+
        $details = get_blog_details( $blog_id, false );
        if ( ! $details ) {
                // Make sure clean_blog_cache() gets the blog ID
        $details = get_blog_details( $blog_id, false );
        if ( ! $details ) {
                // Make sure clean_blog_cache() gets the blog ID
@@ -861,11 +865,13 @@ function get_last_updated( $deprecated = '', $start = 0, $quantity = 40 ) {
  */
 function _update_blog_date_on_post_publish( $new_status, $old_status, $post ) {
        $post_type_obj = get_post_type_object( $post->post_type );
  */
 function _update_blog_date_on_post_publish( $new_status, $old_status, $post ) {
        $post_type_obj = get_post_type_object( $post->post_type );
-       if ( ! $post_type_obj->public )
+       if ( ! $post_type_obj || ! $post_type_obj->public ) {
                return;
                return;
+       }
 
 
-       if ( 'publish' != $new_status && 'publish' != $old_status )
+       if ( 'publish' != $new_status && 'publish' != $old_status ) {
                return;
                return;
+       }
 
        // Post was freshly published, published post was saved, or published post was unpublished.
 
 
        // Post was freshly published, published post was saved, or published post was unpublished.
 
@@ -883,12 +889,51 @@ function _update_blog_date_on_post_delete( $post_id ) {
        $post = get_post( $post_id );
 
        $post_type_obj = get_post_type_object( $post->post_type );
        $post = get_post( $post_id );
 
        $post_type_obj = get_post_type_object( $post->post_type );
-       if ( ! $post_type_obj->public )
+       if ( ! $post_type_obj || ! $post_type_obj->public ) {
                return;
                return;
+       }
 
 
-       if ( 'publish' != $post->post_status )
+       if ( 'publish' != $post->post_status ) {
                return;
                return;
+       }
 
        wpmu_update_blogs_date();
 }
 
 
        wpmu_update_blogs_date();
 }
 
+/**
+ * Handler for updating the blog posts count date when a post is deleted.
+ *
+ * @since 4.0.0
+ *
+ * @param int $post_id Post ID.
+ */
+function _update_posts_count_on_delete( $post_id ) {
+       $post = get_post( $post_id );
+
+       if ( ! $post || 'publish' !== $post->post_status ) {
+               return;
+       }
+
+       update_posts_count();
+}
+
+/**
+ * Handler for updating the blog posts count date when a post status changes.
+ *
+ * @since 4.0.0
+ *
+ * @param string $new_status The status the post is changing to.
+ * @param string $old_status The status the post is changing from.
+ */
+function _update_posts_count_on_transition_post_status( $new_status, $old_status ) {
+       if ( $new_status === $old_status ) {
+               return;
+       }
+
+       if ( 'publish' !== $new_status && 'publish' !== $old_status ) {
+               return;
+       }
+
+       update_posts_count();
+}
+
index 8cbd2c35af5b9bcd17736af4aff484ceea095e53..0f7d0ff6d37b88ed498df18c0c91f3140b7db3b3 100644 (file)
@@ -116,15 +116,16 @@ function ms_file_constants() {
  * @since 3.0.0
  */
 function ms_subdomain_constants() {
  * @since 3.0.0
  */
 function ms_subdomain_constants() {
-       static $error = null;
-       static $error_warn = false;
+       static $subdomain_error = null;
+       static $subdomain_error_warn = null;
 
 
-       if ( false === $error )
+       if ( false === $subdomain_error ) {
                return;
                return;
+       }
 
 
-       if ( $error ) {
+       if ( $subdomain_error ) {
                $vhost_deprecated = __( 'The constant <code>VHOST</code> <strong>is deprecated</strong>. Use the boolean constant <code>SUBDOMAIN_INSTALL</code> in wp-config.php to enable a subdomain configuration. Use is_subdomain_install() to check whether a subdomain configuration is enabled.' );
                $vhost_deprecated = __( 'The constant <code>VHOST</code> <strong>is deprecated</strong>. Use the boolean constant <code>SUBDOMAIN_INSTALL</code> in wp-config.php to enable a subdomain configuration. Use is_subdomain_install() to check whether a subdomain configuration is enabled.' );
-               if ( $error_warn ) {
+               if ( $subdomain_error_warn ) {
                        trigger_error( __( '<strong>Conflicting values for the constants VHOST and SUBDOMAIN_INSTALL.</strong> The value of SUBDOMAIN_INSTALL will be assumed to be your subdomain configuration setting.' ) . ' ' . $vhost_deprecated, E_USER_WARNING );
                } else {
                        _deprecated_argument( 'define()', '3.0', $vhost_deprecated );
                        trigger_error( __( '<strong>Conflicting values for the constants VHOST and SUBDOMAIN_INSTALL.</strong> The value of SUBDOMAIN_INSTALL will be assumed to be your subdomain configuration setting.' ) . ' ' . $vhost_deprecated, E_USER_WARNING );
                } else {
                        _deprecated_argument( 'define()', '3.0', $vhost_deprecated );
@@ -133,17 +134,18 @@ function ms_subdomain_constants() {
        }
 
        if ( defined( 'SUBDOMAIN_INSTALL' ) && defined( 'VHOST' ) ) {
        }
 
        if ( defined( 'SUBDOMAIN_INSTALL' ) && defined( 'VHOST' ) ) {
-               if ( SUBDOMAIN_INSTALL == ( 'yes' == VHOST ) ) {
-                       $error = true;
-               } else {
-                       $error = $error_warn = true;
+               $subdomain_error = true;
+               if ( SUBDOMAIN_INSTALL !== ( 'yes' == VHOST ) ) {
+                       $subdomain_error_warn = true;
                }
        } elseif ( defined( 'SUBDOMAIN_INSTALL' ) ) {
                }
        } elseif ( defined( 'SUBDOMAIN_INSTALL' ) ) {
+               $subdomain_error = false;
                define( 'VHOST', SUBDOMAIN_INSTALL ? 'yes' : 'no' );
        } elseif ( defined( 'VHOST' ) ) {
                define( 'VHOST', SUBDOMAIN_INSTALL ? 'yes' : 'no' );
        } elseif ( defined( 'VHOST' ) ) {
-               $error = true;
+               $subdomain_error = true;
                define( 'SUBDOMAIN_INSTALL', 'yes' == VHOST );
        } else {
                define( 'SUBDOMAIN_INSTALL', 'yes' == VHOST );
        } else {
+               $subdomain_error = false;
                define( 'SUBDOMAIN_INSTALL', false );
                define( 'VHOST', 'no' );
        }
                define( 'SUBDOMAIN_INSTALL', false );
                define( 'VHOST', 'no' );
        }
index 759c81f0edcfeda9b28aea8631e26dc1c94b7348..7481ec9a027ccbbf2f4c483463501447cfb3509b 100644 (file)
@@ -34,9 +34,10 @@ add_filter( 'allowed_redirect_hosts', 'redirect_this_site' );
 
 // Administration
 add_filter( 'term_id_filter', 'global_terms', 10, 2 );
 
 // Administration
 add_filter( 'term_id_filter', 'global_terms', 10, 2 );
-add_action( 'publish_post', 'update_posts_count' );
+add_action( 'delete_post', '_update_posts_count_on_delete' );
 add_action( 'delete_post', '_update_blog_date_on_post_delete' );
 add_action( 'transition_post_status', '_update_blog_date_on_post_publish', 10, 3 );
 add_action( 'delete_post', '_update_blog_date_on_post_delete' );
 add_action( 'transition_post_status', '_update_blog_date_on_post_publish', 10, 3 );
+add_action( 'transition_post_status', '_update_posts_count_on_transition_post_status', 10, 2 );
 
 // Counts
 add_action( 'admin_init', 'wp_schedule_update_network_counts');
 
 // Counts
 add_action( 'admin_init', 'wp_schedule_update_network_counts');
@@ -69,6 +70,11 @@ add_filter( 'force_filtered_html_on_import', '__return_true' );
 remove_filter( 'option_siteurl', '_config_wp_siteurl' );
 remove_filter( 'option_home',    '_config_wp_home'    );
 
 remove_filter( 'option_siteurl', '_config_wp_siteurl' );
 remove_filter( 'option_home',    '_config_wp_home'    );
 
+// Some options changes should trigger blog details refresh.
+add_action( 'update_option_blogname',   'refresh_blog_details', 10, 0 );
+add_action( 'update_option_siteurl',    'refresh_blog_details', 10, 0 );
+add_action( 'update_option_post_count', 'refresh_blog_details', 10, 0 );
+
 // If the network upgrade hasn't run yet, assume ms-files.php rewriting is used.
 add_filter( 'default_site_option_ms_files_rewriting', '__return_true' );
 
 // If the network upgrade hasn't run yet, assume ms-files.php rewriting is used.
 add_filter( 'default_site_option_ms_files_rewriting', '__return_true' );
 
index 431ba070aaf4ae5a3b6e8596b0f2b0d93ff5cb86..6d7a2fbd52bef85c4778fa4a40d19fdfed60bddd 100644 (file)
@@ -1761,7 +1761,7 @@ function check_upload_mimes( $mimes ) {
  * WordPress MS stores a blog's post count as an option so as
  * to avoid extraneous COUNTs when a blog's details are fetched
  * with get_blog_details(). This function is called when posts
  * WordPress MS stores a blog's post count as an option so as
  * to avoid extraneous COUNTs when a blog's details are fetched
  * with get_blog_details(). This function is called when posts
- * are published to make sure the count stays current.
+ * are published or unpublished to make sure the count stays current.
  *
  * @since MU
  */
  *
  * @since MU
  */
@@ -2078,11 +2078,9 @@ function is_user_option_local( $key, $user_id = 0, $blog_id = 0 ) {
        global $wpdb;
 
        $current_user = wp_get_current_user();
        global $wpdb;
 
        $current_user = wp_get_current_user();
-       if ( $user_id == 0 )
-               $user_id = $current_user->ID;
-       if ( $blog_id == 0 )
+       if ( $blog_id == 0 ) {
                $blog_id = $wpdb->blogid;
                $blog_id = $wpdb->blogid;
-
+       }
        $local_key = $wpdb->get_blog_prefix( $blog_id ) . $key;
 
        if ( isset( $current_user->$local_key ) )
        $local_key = $wpdb->get_blog_prefix( $blog_id ) . $key;
 
        if ( isset( $current_user->$local_key ) )
index 66047bcc0dd748edf9062dc76117cb67bdbd3f8b..a202034b8cb9061e229cdab77fef12e38b309af1 100644 (file)
@@ -92,7 +92,7 @@ function ms_site_check() {
                if ( file_exists( WP_CONTENT_DIR . '/blog-deleted.php' ) )
                        return WP_CONTENT_DIR . '/blog-deleted.php';
                else
                if ( file_exists( WP_CONTENT_DIR . '/blog-deleted.php' ) )
                        return WP_CONTENT_DIR . '/blog-deleted.php';
                else
-                       wp_die( __( 'This user has elected to delete their account and the content is no longer available.' ), '', array( 'response' => 410 ) );
+                       wp_die( __( 'This site is no longer available.' ), '', array( 'response' => 410 ) );
        }
 
        if ( '2' == $blog->deleted ) {
        }
 
        if ( '2' == $blog->deleted ) {
@@ -125,7 +125,7 @@ function ms_site_check() {
 function get_network_by_path( $domain, $path, $segments = null ) {
        global $wpdb;
 
 function get_network_by_path( $domain, $path, $segments = null ) {
        global $wpdb;
 
-       $domains = $exact_domains = array( $domain );
+       $domains = array( $domain );
        $pieces = explode( '.', $domain );
 
        /*
        $pieces = explode( '.', $domain );
 
        /*
@@ -397,14 +397,17 @@ function ms_not_installed() {
 
        $title = __( 'Error establishing a database connection' );
        $msg  = '<h1>' . $title . '</h1>';
 
        $title = __( 'Error establishing a database connection' );
        $msg  = '<h1>' . $title . '</h1>';
-       if ( ! is_admin() )
+       if ( ! is_admin() ) {
                die( $msg );
                die( $msg );
+       }
        $msg .= '<p>' . __( 'If your site does not display, please contact the owner of this network.' ) . '';
        $msg .= ' ' . __( 'If you are the owner of this network please check that MySQL is running properly and all tables are error free.' ) . '</p>';
        $msg .= '<p>' . __( 'If your site does not display, please contact the owner of this network.' ) . '';
        $msg .= ' ' . __( 'If you are the owner of this network please check that MySQL is running properly and all tables are error free.' ) . '</p>';
-       if ( ! $wpdb->get_var( "SHOW TABLES LIKE '$wpdb->site'" ) )
+       $query = $wpdb->prepare( "SHOW TABLES LIKE %s", $wpdb->esc_like( $wpdb->site ) );
+       if ( ! $wpdb->get_var( $query ) ) {
                $msg .= '<p>' . sprintf( __( '<strong>Database tables are missing.</strong> This means that MySQL is not running, WordPress was not installed properly, or someone deleted <code>%s</code>. You really should look at your database now.' ), $wpdb->site ) . '</p>';
                $msg .= '<p>' . sprintf( __( '<strong>Database tables are missing.</strong> This means that MySQL is not running, WordPress was not installed properly, or someone deleted <code>%s</code>. You really should look at your database now.' ), $wpdb->site ) . '</p>';
-       else
+       } else {
                $msg .= '<p>' . sprintf( __( '<strong>Could not find site <code>%1$s</code>.</strong> Searched for table <code>%2$s</code> in database <code>%3$s</code>. Is that right?' ), rtrim( $domain . $path, '/' ), $wpdb->blogs, DB_NAME ) . '</p>';
                $msg .= '<p>' . sprintf( __( '<strong>Could not find site <code>%1$s</code>.</strong> Searched for table <code>%2$s</code> in database <code>%3$s</code>. Is that right?' ), rtrim( $domain . $path, '/' ), $wpdb->blogs, DB_NAME ) . '</p>';
+       }
        $msg .= '<p><strong>' . __( 'What do I do now?' ) . '</strong> ';
        $msg .= __( 'Read the <a target="_blank" href="http://codex.wordpress.org/Debugging_a_WordPress_Network">bug report</a> page. Some of the guidelines there may help you figure out what went wrong.' );
        $msg .= ' ' . __( 'If you&#8217;re still stuck with this message, then check that your database contains the following tables:' ) . '</p><ul>';
        $msg .= '<p><strong>' . __( 'What do I do now?' ) . '</strong> ';
        $msg .= __( 'Read the <a target="_blank" href="http://codex.wordpress.org/Debugging_a_WordPress_Network">bug report</a> page. Some of the guidelines there may help you figure out what went wrong.' );
        $msg .= ' ' . __( 'If you&#8217;re still stuck with this message, then check that your database contains the following tables:' ) . '</p><ul>';
@@ -426,13 +429,13 @@ function ms_not_installed() {
  *
  * @access private
  * @since 3.0.0
  *
  * @access private
  * @since 3.0.0
- * @deprecated 3.9.0
+ * @deprecated 3.9.0 Use get_current_site() instead.
  *
  * @param object $current_site
  * @return object
  */
 function get_current_site_name( $current_site ) {
  *
  * @param object $current_site
  * @return object
  */
 function get_current_site_name( $current_site ) {
-       _deprecated_function( __FUNCTION__, '3.9' );
+       _deprecated_function( __FUNCTION__, '3.9', 'get_current_site()' );
        return $current_site;
 }
 
        return $current_site;
 }
 
index d4383d3b914afec1d987ca10d79e54686290cb27..7b35e7616fa5c54d02e19e036a13778384eb6033 100644 (file)
  */
 
 /** Include Multisite initialization functions */
  */
 
 /** Include Multisite initialization functions */
-require( ABSPATH . WPINC . '/ms-load.php' );
-require( ABSPATH . WPINC . '/ms-default-constants.php' );
+require_once( ABSPATH . WPINC . '/ms-load.php' );
+require_once( ABSPATH . WPINC . '/ms-default-constants.php' );
 
 
-if ( defined( 'SUNRISE' ) )
+if ( defined( 'SUNRISE' ) ) {
        include_once( WP_CONTENT_DIR . '/sunrise.php' );
        include_once( WP_CONTENT_DIR . '/sunrise.php' );
+}
 
 /** Check for and define SUBDOMAIN_INSTALL and the deprecated VHOST constant. */
 ms_subdomain_constants();
 
 /** Check for and define SUBDOMAIN_INSTALL and the deprecated VHOST constant. */
 ms_subdomain_constants();
index b1b8db1ed5bbd158470d0ba210be7cb56f277322..4d380a25ee0ccfcdaf6e940af22ab608e05bedae 100644 (file)
@@ -21,7 +21,7 @@ class Walker_Nav_Menu extends Walker {
         * @since 3.0.0
         * @var string
         */
         * @since 3.0.0
         * @var string
         */
-       var $tree_type = array( 'post_type', 'taxonomy', 'custom' );
+       public $tree_type = array( 'post_type', 'taxonomy', 'custom' );
 
        /**
         * Database fields to use.
 
        /**
         * Database fields to use.
@@ -31,7 +31,7 @@ class Walker_Nav_Menu extends Walker {
         * @todo Decouple this.
         * @var array
         */
         * @todo Decouple this.
         * @var array
         */
-       var $db_fields = array( 'parent' => 'menu_item_parent', 'id' => 'db_id' );
+       public $db_fields = array( 'parent' => 'menu_item_parent', 'id' => 'db_id' );
 
        /**
         * Starts the list before the elements are added.
 
        /**
         * Starts the list before the elements are added.
@@ -44,7 +44,7 @@ class Walker_Nav_Menu extends Walker {
         * @param int    $depth  Depth of menu item. Used for padding.
         * @param array  $args   An array of arguments. @see wp_nav_menu()
         */
         * @param int    $depth  Depth of menu item. Used for padding.
         * @param array  $args   An array of arguments. @see wp_nav_menu()
         */
-       function start_lvl( &$output, $depth = 0, $args = array() ) {
+       public function start_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat("\t", $depth);
                $output .= "\n$indent<ul class=\"sub-menu\">\n";
        }
                $indent = str_repeat("\t", $depth);
                $output .= "\n$indent<ul class=\"sub-menu\">\n";
        }
@@ -60,7 +60,7 @@ class Walker_Nav_Menu extends Walker {
         * @param int    $depth  Depth of menu item. Used for padding.
         * @param array  $args   An array of arguments. @see wp_nav_menu()
         */
         * @param int    $depth  Depth of menu item. Used for padding.
         * @param array  $args   An array of arguments. @see wp_nav_menu()
         */
-       function end_lvl( &$output, $depth = 0, $args = array() ) {
+       public function end_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat("\t", $depth);
                $output .= "$indent</ul>\n";
        }
                $indent = str_repeat("\t", $depth);
                $output .= "$indent</ul>\n";
        }
@@ -78,11 +78,9 @@ class Walker_Nav_Menu extends Walker {
         * @param array  $args   An array of arguments. @see wp_nav_menu()
         * @param int    $id     Current item ID.
         */
         * @param array  $args   An array of arguments. @see wp_nav_menu()
         * @param int    $id     Current item ID.
         */
-       function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
+       public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
                $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
 
                $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
 
-               $class_names = '';
-
                $classes = empty( $item->classes ) ? array() : (array) $item->classes;
                $classes[] = 'menu-item-' . $item->ID;
 
                $classes = empty( $item->classes ) ? array() : (array) $item->classes;
                $classes[] = 'menu-item-' . $item->ID;
 
@@ -188,7 +186,7 @@ class Walker_Nav_Menu extends Walker {
         * @param int    $depth  Depth of page. Not Used.
         * @param array  $args   An array of arguments. @see wp_nav_menu()
         */
         * @param int    $depth  Depth of page. Not Used.
         * @param array  $args   An array of arguments. @see wp_nav_menu()
         */
-       function end_el( &$output, $item, $depth = 0, $args = array() ) {
+       public function end_el( &$output, $item, $depth = 0, $args = array() ) {
                $output .= "</li>\n";
        }
 
                $output .= "</li>\n";
        }
 
@@ -217,7 +215,7 @@ class Walker_Nav_Menu extends Walker {
  *     @type string        $link_after      Text after the link. Default empty.
  *     @type bool          $echo            Whether to echo the menu or return it. Default true.
  *     @type int           $depth           How many levels of the hierarchy are to be included. 0 means all. Default 0.
  *     @type string        $link_after      Text after the link. Default empty.
  *     @type bool          $echo            Whether to echo the menu or return it. Default true.
  *     @type int           $depth           How many levels of the hierarchy are to be included. 0 means all. Default 0.
- *     @type string        $walker          Allows a custom walker class to be specified. Default empty.
+ *     @type object        $walker          Instance of a custom walker class. Default empty.
  *     @type string        $theme_location  Theme location to be used. Must be registered with register_nav_menu()
  *                                          in order to be selectable by the user.
  *     @type string        $items_wrap      How the list items should be wrapped. Default is a ul with an id and class.
  *     @type string        $theme_location  Theme location to be used. Must be registered with register_nav_menu()
  *                                          in order to be selectable by the user.
  *     @type string        $items_wrap      How the list items should be wrapped. Default is a ul with an id and class.
@@ -279,7 +277,7 @@ function wp_nav_menu( $args = array() ) {
 
        // get the first menu that has items if we still can't find a menu
        if ( ! $menu && !$args->theme_location ) {
 
        // get the first menu that has items if we still can't find a menu
        if ( ! $menu && !$args->theme_location ) {
-               $menus = wp_get_nav_menus();
+               $menus = wp_get_nav_menus( array( 'orderby' => 'name' ) );
                foreach ( $menus as $menu_maybe ) {
                        if ( $menu_items = wp_get_nav_menu_items( $menu_maybe->term_id, array( 'update_post_term_cache' => false ) ) ) {
                                $menu = $menu_maybe;
                foreach ( $menus as $menu_maybe ) {
                        if ( $menu_items = wp_get_nav_menu_items( $menu_maybe->term_id, array( 'update_post_term_cache' => false ) ) ) {
                                $menu = $menu_maybe;
@@ -353,7 +351,8 @@ function wp_nav_menu( $args = array() ) {
         *
         * @since 3.1.0
         *
         *
         * @since 3.1.0
         *
-        * @param array $sorted_menu_items The menu items, sorted by each menu item's menu order.
+        * @param array  $sorted_menu_items The menu items, sorted by each menu item's menu order.
+        * @param object $args              An object containing wp_nav_menu() arguments.
         */
        $sorted_menu_items = apply_filters( 'wp_nav_menu_objects', $sorted_menu_items, $args );
 
         */
        $sorted_menu_items = apply_filters( 'wp_nav_menu_objects', $sorted_menu_items, $args );
 
@@ -384,7 +383,7 @@ function wp_nav_menu( $args = array() ) {
         * @see wp_nav_menu()
         *
         * @param string $items The HTML list content for the menu items.
         * @see wp_nav_menu()
         *
         * @param string $items The HTML list content for the menu items.
-        * @param array  $args  Array of wp_nav_menu() arguments.
+        * @param object $args  An object containing wp_nav_menu() arguments.
         */
        $items = apply_filters( 'wp_nav_menu_items', $items, $args );
        /**
         */
        $items = apply_filters( 'wp_nav_menu_items', $items, $args );
        /**
@@ -395,7 +394,7 @@ function wp_nav_menu( $args = array() ) {
         * @see wp_nav_menu()
         *
         * @param string $items The HTML list content for the menu items.
         * @see wp_nav_menu()
         *
         * @param string $items The HTML list content for the menu items.
-        * @param array  $args  Array of wp_nav_menu() arguments.
+        * @param object $args  An object containing wp_nav_menu() arguments.
         */
        $items = apply_filters( "wp_nav_menu_{$menu->slug}_items", $items, $args );
 
         */
        $items = apply_filters( "wp_nav_menu_{$menu->slug}_items", $items, $args );
 
@@ -417,7 +416,7 @@ function wp_nav_menu( $args = array() ) {
         * @see wp_nav_menu()
         *
         * @param string $nav_menu The HTML content for the navigation menu.
         * @see wp_nav_menu()
         *
         * @param string $nav_menu The HTML content for the navigation menu.
-        * @param array  $args     Array of wp_nav_menu() arguments.
+        * @param object $args     An object containing wp_nav_menu() arguments.
         */
        $nav_menu = apply_filters( 'wp_nav_menu', $nav_menu, $args );
 
         */
        $nav_menu = apply_filters( 'wp_nav_menu', $nav_menu, $args );
 
index 46a6b2b7f7f37f3cfbe4f2cf19df14aec4c853a4..782ecca89c978bde00a7870e875d9b8bcd2d6e09 100644 (file)
@@ -15,7 +15,7 @@
  * @uses get_term
  * @uses get_term_by
  *
  * @uses get_term
  * @uses get_term_by
  *
- * @param string $menu Menu id, slug or name
+ * @param string $menu Menu ID, slug, or name.
  * @return mixed false if $menu param isn't supplied or term does not exist, menu object if successful.
  */
 function wp_get_nav_menu_object( $menu ) {
  * @return mixed false if $menu param isn't supplied or term does not exist, menu object if successful.
  */
 function wp_get_nav_menu_object( $menu ) {
@@ -43,7 +43,7 @@ function wp_get_nav_menu_object( $menu ) {
  *
  * @since 3.0.0
  *
  *
  * @since 3.0.0
  *
- * @param int|string $menu The menu to check (id, slug, or name)
+ * @param int|string $menu The menu to check (ID, slug, or name).
  * @return bool Whether the menu exists.
  */
 function is_nav_menu( $menu ) {
  * @return bool Whether the menu exists.
  */
 function is_nav_menu( $menu ) {
@@ -142,6 +142,12 @@ function get_nav_menu_locations() {
  * @return bool Whether location has a menu.
  */
 function has_nav_menu( $location ) {
  * @return bool Whether location has a menu.
  */
 function has_nav_menu( $location ) {
+       global $_wp_registered_nav_menus;
+
+       if ( ! isset( $_wp_registered_nav_menus[ $location ] ) ) {
+               return false;
+       }
+
        $locations = get_nav_menu_locations();
        return ( ! empty( $locations[ $location ] ) );
 }
        $locations = get_nav_menu_locations();
        return ( ! empty( $locations[ $location ] ) );
 }
@@ -163,8 +169,8 @@ function is_nav_menu_item( $menu_item_id = 0 ) {
  *
  * @since 3.0.0
  *
  *
  * @since 3.0.0
  *
- * @param string $menu_name Menu Name
- * @return mixed Menu object on success|WP_Error on failure
+ * @param string $menu_name Menu name.
+ * @return int|WP_Error Menu ID on success, WP_Error object on failure.
  */
 function wp_create_nav_menu( $menu_name ) {
        return wp_update_nav_menu_object( 0, array( 'menu-name' => $menu_name ) );
  */
 function wp_create_nav_menu( $menu_name ) {
        return wp_update_nav_menu_object( 0, array( 'menu-name' => $menu_name ) );
@@ -175,8 +181,8 @@ function wp_create_nav_menu( $menu_name ) {
  *
  * @since 3.0.0
  *
  *
  * @since 3.0.0
  *
- * @param string $menu name|id|slug
- * @return mixed Menu object on success|WP_Error on failure
+ * @param string $menu Menu ID, slug, or name.
+ * @return bool|WP_Error True on success, false or WP_Error object on failure.
  */
 function wp_delete_nav_menu( $menu ) {
        $menu = wp_get_nav_menu_object( $menu );
  */
 function wp_delete_nav_menu( $menu ) {
        $menu = wp_get_nav_menu_object( $menu );
@@ -221,7 +227,7 @@ function wp_delete_nav_menu( $menu ) {
  *
  * @param int $menu_id The ID of the menu or "0" to create a new menu.
  * @param array $menu_data The array of menu data.
  *
  * @param int $menu_id The ID of the menu or "0" to create a new menu.
  * @param array $menu_data The array of menu data.
- * @return int|WP_Error object The menu's ID or WP_Error object.
+ * @return int|WP_Error Menu ID on success, WP_Error object on failure.
  */
 function wp_update_nav_menu_object( $menu_id = 0, $menu_data = array() ) {
        $menu_id = (int) $menu_id;
  */
 function wp_update_nav_menu_object( $menu_id = 0, $menu_data = array() ) {
        $menu_id = (int) $menu_id;
@@ -547,10 +553,7 @@ function wp_get_nav_menu_items( $menu, $args = array() ) {
        $defaults = array( 'order' => 'ASC', 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item',
                'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true );
        $args = wp_parse_args( $args, $defaults );
        $defaults = array( 'order' => 'ASC', 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item',
                'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true );
        $args = wp_parse_args( $args, $defaults );
-       if ( count( $items ) > 1 )
-               $args['include'] = implode( ',', $items );
-       else
-               $args['include'] = $items[0];
+       $args['include'] = $items;
 
        $items = get_posts( $args );
 
 
        $items = get_posts( $args );
 
index 4cc8c28fa01e3e788bc9aa7016f77dca07a18b08..c6417dbeade3867278f746c8f6e5b29c62909ae3 100644 (file)
@@ -551,13 +551,13 @@ function delete_transient( $transient ) {
 /**
  * Get the value of a transient.
  *
 /**
  * Get the value of a transient.
  *
- * If the transient does not exist or does not have a value, then the return value
- * will be false.
+ * If the transient does not exist, does not have a value, or has expired,
+ * then the return value will be false.
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
- * @param string $transient Transient name. Expected to not be SQL-escaped
- * @return mixed Value of transient
+ * @param string $transient Transient name. Expected to not be SQL-escaped.
+ * @return mixed Value of transient.
  */
 function get_transient( $transient ) {
 
  */
 function get_transient( $transient ) {
 
@@ -620,9 +620,11 @@ function get_transient( $transient ) {
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
- * @param string $transient Transient name. Expected to not be SQL-escaped.
- * @param mixed $value Transient value. Must be serializable if non-scalar. Expected to not be SQL-escaped.
- * @param int $expiration Time until expiration in seconds, default 0
+ * @param string $transient  Transient name. Expected to not be SQL-escaped. Must be
+ *                           45 characters or fewer in length.
+ * @param mixed  $value      Transient value. Must be serializable if non-scalar.
+ *                           Expected to not be SQL-escaped.
+ * @param int    $expiration Optional. Time until expiration in seconds. Default 0.
  * @return bool False if value was not set and true if value was set.
  */
 function set_transient( $transient, $value, $expiration = 0 ) {
  * @return bool False if value was not set and true if value was set.
  */
 function set_transient( $transient, $value, $expiration = 0 ) {
@@ -711,17 +713,17 @@ function set_transient( $transient, $value, $expiration = 0 ) {
  */
 function wp_user_settings() {
 
  */
 function wp_user_settings() {
 
-       if ( ! is_admin() )
-               return;
-
-       if ( defined('DOING_AJAX') )
+       if ( ! is_admin() || defined( 'DOING_AJAX' ) ) {
                return;
                return;
+       }
 
 
-       if ( ! $user_id = get_current_user_id() )
+       if ( ! $user_id = get_current_user_id() ) {
                return;
                return;
+       }
 
 
-       if ( is_super_admin() && ! is_user_member_of_blog() )
+       if ( is_super_admin() && ! is_user_member_of_blog() ) {
                return;
                return;
+       }
 
        $settings = (string) get_user_option( 'user-settings', $user_id );
 
 
        $settings = (string) get_user_option( 'user-settings', $user_id );
 
@@ -744,8 +746,9 @@ function wp_user_settings() {
        }
 
        // The cookie is not set in the current browser or the saved value is newer.
        }
 
        // The cookie is not set in the current browser or the saved value is newer.
-       setcookie( 'wp-settings-' . $user_id, $settings, time() + YEAR_IN_SECONDS, SITECOOKIEPATH );
-       setcookie( 'wp-settings-time-' . $user_id, time(), time() + YEAR_IN_SECONDS, SITECOOKIEPATH );
+       $secure = ( 'https' === parse_url( site_url(), PHP_URL_SCHEME ) );
+       setcookie( 'wp-settings-' . $user_id, $settings, time() + YEAR_IN_SECONDS, SITECOOKIEPATH, null, $secure );
+       setcookie( 'wp-settings-time-' . $user_id, time(), time() + YEAR_IN_SECONDS, SITECOOKIEPATH, null, $secure );
        $_COOKIE['wp-settings-' . $user_id] = $settings;
 }
 
        $_COOKIE['wp-settings-' . $user_id] = $settings;
 }
 
@@ -778,8 +781,9 @@ function get_user_setting( $name, $default = false ) {
  */
 function set_user_setting( $name, $value ) {
 
  */
 function set_user_setting( $name, $value ) {
 
-       if ( headers_sent() )
+       if ( headers_sent() ) {
                return false;
                return false;
+       }
 
        $all_user_settings = get_all_user_settings();
        $all_user_settings[$name] = $value;
 
        $all_user_settings = get_all_user_settings();
        $all_user_settings[$name] = $value;
@@ -800,8 +804,9 @@ function set_user_setting( $name, $value ) {
  */
 function delete_user_setting( $names ) {
 
  */
 function delete_user_setting( $names ) {
 
-       if ( headers_sent() )
+       if ( headers_sent() ) {
                return false;
                return false;
+       }
 
        $all_user_settings = get_all_user_settings();
        $names = (array) $names;
 
        $all_user_settings = get_all_user_settings();
        $names = (array) $names;
@@ -814,8 +819,9 @@ function delete_user_setting( $names ) {
                }
        }
 
                }
        }
 
-       if ( $deleted )
+       if ( $deleted ) {
                return wp_set_all_user_settings( $all_user_settings );
                return wp_set_all_user_settings( $all_user_settings );
+       }
 
        return false;
 }
 
        return false;
 }
@@ -830,23 +836,28 @@ function delete_user_setting( $names ) {
 function get_all_user_settings() {
        global $_updated_user_settings;
 
 function get_all_user_settings() {
        global $_updated_user_settings;
 
-       if ( ! $user_id = get_current_user_id() )
+       if ( ! $user_id = get_current_user_id() ) {
                return array();
                return array();
+       }
 
 
-       if ( isset( $_updated_user_settings ) && is_array( $_updated_user_settings ) )
+       if ( isset( $_updated_user_settings ) && is_array( $_updated_user_settings ) ) {
                return $_updated_user_settings;
                return $_updated_user_settings;
+       }
 
        $user_settings = array();
 
        $user_settings = array();
+
        if ( isset( $_COOKIE['wp-settings-' . $user_id] ) ) {
                $cookie = preg_replace( '/[^A-Za-z0-9=&_]/', '', $_COOKIE['wp-settings-' . $user_id] );
 
        if ( isset( $_COOKIE['wp-settings-' . $user_id] ) ) {
                $cookie = preg_replace( '/[^A-Za-z0-9=&_]/', '', $_COOKIE['wp-settings-' . $user_id] );
 
-               if ( $cookie && strpos( $cookie, '=' ) ) // '=' cannot be 1st char
+               if ( strpos( $cookie, '=' ) ) { // '=' cannot be 1st char
                        parse_str( $cookie, $user_settings );
                        parse_str( $cookie, $user_settings );
-
+               }
        } else {
                $option = get_user_option( 'user-settings', $user_id );
        } else {
                $option = get_user_option( 'user-settings', $user_id );
-               if ( $option && is_string($option) )
+
+               if ( $option && is_string( $option ) ) {
                        parse_str( $option, $user_settings );
                        parse_str( $option, $user_settings );
+               }
        }
 
        $_updated_user_settings = $user_settings;
        }
 
        $_updated_user_settings = $user_settings;
@@ -864,22 +875,25 @@ function get_all_user_settings() {
 function wp_set_all_user_settings( $user_settings ) {
        global $_updated_user_settings;
 
 function wp_set_all_user_settings( $user_settings ) {
        global $_updated_user_settings;
 
-       if ( ! $user_id = get_current_user_id() )
+       if ( ! $user_id = get_current_user_id() ) {
                return false;
                return false;
+       }
 
 
-       if ( is_super_admin() && ! is_user_member_of_blog() )
+       if ( is_super_admin() && ! is_user_member_of_blog() ) {
                return;
                return;
+       }
 
        $settings = '';
        foreach ( $user_settings as $name => $value ) {
                $_name = preg_replace( '/[^A-Za-z0-9_]+/', '', $name );
                $_value = preg_replace( '/[^A-Za-z0-9_]+/', '', $value );
 
 
        $settings = '';
        foreach ( $user_settings as $name => $value ) {
                $_name = preg_replace( '/[^A-Za-z0-9_]+/', '', $name );
                $_value = preg_replace( '/[^A-Za-z0-9_]+/', '', $value );
 
-               if ( ! empty( $_name ) )
+               if ( ! empty( $_name ) ) {
                        $settings .= $_name . '=' . $_value . '&';
                        $settings .= $_name . '=' . $_value . '&';
+               }
        }
 
        }
 
-       $settings = rtrim($settings, '&');
+       $settings = rtrim( $settings, '&' );
        parse_str( $settings, $_updated_user_settings );
 
        update_user_option( $user_id, 'user-settings', $settings, false );
        parse_str( $settings, $_updated_user_settings );
 
        update_user_option( $user_id, 'user-settings', $settings, false );
@@ -894,11 +908,12 @@ function wp_set_all_user_settings( $user_settings ) {
  * @since 2.7.0
  */
 function delete_all_user_settings() {
  * @since 2.7.0
  */
 function delete_all_user_settings() {
-       if ( ! $user_id = get_current_user_id() )
+       if ( ! $user_id = get_current_user_id() ) {
                return;
                return;
+       }
 
        update_user_option( $user_id, 'user-settings', '', false );
 
        update_user_option( $user_id, 'user-settings', '', false );
-       setcookie('wp-settings-' . $user_id, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH);
+       setcookie( 'wp-settings-' . $user_id, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH );
 }
 
 /**
 }
 
 /**
@@ -1287,15 +1302,15 @@ function delete_site_transient( $transient ) {
 /**
  * Get the value of a site transient.
  *
 /**
  * Get the value of a site transient.
  *
- * If the transient does not exist or does not have a value, then the return value
- * will be false.
+ * If the transient does not exist, does not have a value, or has expired,
+ * then the return value will be false.
  *
  * @since 2.9.0
  *
  * @see get_transient()
  *
  * @param string $transient Transient name. Expected to not be SQL-escaped.
  *
  * @since 2.9.0
  *
  * @see get_transient()
  *
  * @param string $transient Transient name. Expected to not be SQL-escaped.
- * @return mixed Value of transient
+ * @return mixed Value of transient.
  */
 function get_site_transient( $transient ) {
 
  */
 function get_site_transient( $transient ) {
 
@@ -1360,9 +1375,10 @@ function get_site_transient( $transient ) {
  *
  * @see set_transient()
  *
  *
  * @see set_transient()
  *
- * @param string $transient Transient name. Expected to not be SQL-escaped.
- * @param mixed $value Transient value. Expected to not be SQL-escaped.
- * @param int $expiration Time until expiration in seconds, default 0
+ * @param string $transient  Transient name. Expected to not be SQL-escaped. Must be
+ *                           40 characters or fewer in length.
+ * @param mixed  $value      Transient value. Expected to not be SQL-escaped.
+ * @param int    $expiration Optional. Time until expiration in seconds. Default 0.
  * @return bool False if value was not set and true if value was set.
  */
 function set_site_transient( $transient, $value, $expiration = 0 ) {
  * @return bool False if value was not set and true if value was set.
  */
 function set_site_transient( $transient, $value, $expiration = 0 ) {
index dae13a4ae0faa06f0e2187315762fdd91555362c..872da82ad05fd0895dbcb07d3aa7d37dcac67cde 100644 (file)
@@ -233,11 +233,31 @@ function wp_mail( $to, $subject, $message, $headers = '', $attachments = array()
         * @param array $args A compacted array of wp_mail() arguments, including the "to" email,
         *                    subject, message, headers, and attachments values.
         */
         * @param array $args A compacted array of wp_mail() arguments, including the "to" email,
         *                    subject, message, headers, and attachments values.
         */
-       extract( apply_filters( 'wp_mail', compact( 'to', 'subject', 'message', 'headers', 'attachments' ) ) );
+       $atts = apply_filters( 'wp_mail', compact( 'to', 'subject', 'message', 'headers', 'attachments' ) );
 
 
-       if ( !is_array($attachments) )
-               $attachments = explode( "\n", str_replace( "\r\n", "\n", $attachments ) );
+       if ( isset( $atts['to'] ) ) {
+               $to = $atts['to'];
+       }
+
+       if ( isset( $atts['subject'] ) ) {
+               $subject = $atts['subject'];
+       }
 
 
+       if ( isset( $atts['message'] ) ) {
+               $message = $atts['message'];
+       }
+
+       if ( isset( $atts['headers'] ) ) {
+               $headers = $atts['headers'];
+       }
+
+       if ( isset( $atts['attachments'] ) ) {
+               $attachments = $atts['attachments'];
+       }
+
+       if ( ! is_array( $attachments ) ) {
+               $attachments = explode( "\n", str_replace( "\r\n", "\n", $attachments ) );
+       }
        global $phpmailer;
 
        // (Re)create it, if it's gone missing
        global $phpmailer;
 
        // (Re)create it, if it's gone missing
@@ -566,6 +586,7 @@ if ( !function_exists('wp_logout') ) :
  * @since 2.5.0
  */
 function wp_logout() {
  * @since 2.5.0
  */
 function wp_logout() {
+       wp_destroy_current_session();
        wp_clear_auth_cookie();
 
        /**
        wp_clear_auth_cookie();
 
        /**
@@ -608,13 +629,16 @@ function wp_validate_auth_cookie($cookie = '', $scheme = '') {
                return false;
        }
 
                return false;
        }
 
-       extract($cookie_elements, EXTR_OVERWRITE);
-
-       $expired = $expiration;
+       $scheme = $cookie_elements['scheme'];
+       $username = $cookie_elements['username'];
+       $hmac = $cookie_elements['hmac'];
+       $token = $cookie_elements['token'];
+       $expired = $expiration = $cookie_elements['expiration'];
 
        // Allow a grace period for POST and AJAX requests
 
        // Allow a grace period for POST and AJAX requests
-       if ( defined('DOING_AJAX') || 'POST' == $_SERVER['REQUEST_METHOD'] )
+       if ( defined('DOING_AJAX') || 'POST' == $_SERVER['REQUEST_METHOD'] ) {
                $expired += HOUR_IN_SECONDS;
                $expired += HOUR_IN_SECONDS;
+       }
 
        // Quick check to see if an honest cookie has expired
        if ( $expired < time() ) {
 
        // Quick check to see if an honest cookie has expired
        if ( $expired < time() ) {
@@ -644,8 +668,8 @@ function wp_validate_auth_cookie($cookie = '', $scheme = '') {
 
        $pass_frag = substr($user->user_pass, 8, 4);
 
 
        $pass_frag = substr($user->user_pass, 8, 4);
 
-       $key = wp_hash($username . $pass_frag . '|' . $expiration, $scheme);
-       $hash = hash_hmac('md5', $username . '|' . $expiration, $key);
+       $key = wp_hash( $username . '|' . $pass_frag . '|' . $expiration . '|' . $token, $scheme );
+       $hash = hash_hmac( 'sha256', $username . '|' . $expiration . '|' . $token, $key );
 
        if ( ! hash_equals( $hash, $hmac ) ) {
                /**
 
        if ( ! hash_equals( $hash, $hmac ) ) {
                /**
@@ -659,8 +683,16 @@ function wp_validate_auth_cookie($cookie = '', $scheme = '') {
                return false;
        }
 
                return false;
        }
 
-       if ( $expiration < time() ) // AJAX/POST grace period set above
+       $manager = WP_Session_Tokens::get_instance( $user->ID );
+       if ( ! $manager->verify( $token ) ) {
+               do_action( 'auth_cookie_bad_session_token', $cookie_elements );
+               return false;
+       }
+
+       // AJAX/POST grace period set above
+       if ( $expiration < time() ) {
                $GLOBALS['login_grace_period'] = 1;
                $GLOBALS['login_grace_period'] = 1;
+       }
 
        /**
         * Fires once an authentication cookie has been validated.
 
        /**
         * Fires once an authentication cookie has been validated.
@@ -685,17 +717,26 @@ if ( !function_exists('wp_generate_auth_cookie') ) :
  * @param int $user_id User ID
  * @param int $expiration Cookie expiration in seconds
  * @param string $scheme Optional. The cookie scheme to use: auth, secure_auth, or logged_in
  * @param int $user_id User ID
  * @param int $expiration Cookie expiration in seconds
  * @param string $scheme Optional. The cookie scheme to use: auth, secure_auth, or logged_in
- * @return string Authentication cookie contents
+ * @param string $token User's session token to use for this cookie
+ * @return string Authentication cookie contents. Empty string if user does not exist.
  */
  */
-function wp_generate_auth_cookie($user_id, $expiration, $scheme = 'auth') {
+function wp_generate_auth_cookie( $user_id, $expiration, $scheme = 'auth', $token = '' ) {
        $user = get_userdata($user_id);
        $user = get_userdata($user_id);
+       if ( ! $user ) {
+               return '';
+       }
+
+       if ( ! $token ) {
+               $manager = WP_Session_Tokens::get_instance( $user_id );
+               $token = $manager->create( $expiration );
+       }
 
        $pass_frag = substr($user->user_pass, 8, 4);
 
 
        $pass_frag = substr($user->user_pass, 8, 4);
 
-       $key = wp_hash($user->user_login . $pass_frag . '|' . $expiration, $scheme);
-       $hash = hash_hmac('md5', $user->user_login . '|' . $expiration, $key);
+       $key = wp_hash( $user->user_login . '|' . $pass_frag . '|' . $expiration . '|' . $token, $scheme );
+       $hash = hash_hmac( 'sha256', $user->user_login . '|' . $expiration . '|' . $token, $key );
 
 
-       $cookie = $user->user_login . '|' . $expiration . '|' . $hash;
+       $cookie = $user->user_login . '|' . $expiration . '|' . $token . '|' . $hash;
 
        /**
         * Filter the authentication cookie.
 
        /**
         * Filter the authentication cookie.
@@ -706,8 +747,9 @@ function wp_generate_auth_cookie($user_id, $expiration, $scheme = 'auth') {
         * @param int    $user_id    User ID.
         * @param int    $expiration Authentication cookie expiration in seconds.
         * @param string $scheme     Cookie scheme used. Accepts 'auth', 'secure_auth', or 'logged_in'.
         * @param int    $user_id    User ID.
         * @param int    $expiration Authentication cookie expiration in seconds.
         * @param string $scheme     Cookie scheme used. Accepts 'auth', 'secure_auth', or 'logged_in'.
+        * @param string $token      User's session token used.
         */
         */
-       return apply_filters( 'auth_cookie', $cookie, $user_id, $expiration, $scheme );
+       return apply_filters( 'auth_cookie', $cookie, $user_id, $expiration, $scheme, $token );
 }
 endif;
 
 }
 endif;
 
@@ -749,12 +791,13 @@ function wp_parse_auth_cookie($cookie = '', $scheme = '') {
        }
 
        $cookie_elements = explode('|', $cookie);
        }
 
        $cookie_elements = explode('|', $cookie);
-       if ( count($cookie_elements) != 3 )
+       if ( count( $cookie_elements ) !== 4 ) {
                return false;
                return false;
+       }
 
 
-       list($username, $expiration, $hmac) = $cookie_elements;
+       list( $username, $expiration, $token, $hmac ) = $cookie_elements;
 
 
-       return compact('username', 'expiration', 'hmac', 'scheme');
+       return compact( 'username', 'expiration', 'token', 'hmac', 'scheme' );
 }
 endif;
 
 }
 endif;
 
@@ -770,6 +813,8 @@ if ( !function_exists('wp_set_auth_cookie') ) :
  *
  * @param int $user_id User ID
  * @param bool $remember Whether to remember the user
  *
  * @param int $user_id User ID
  * @param bool $remember Whether to remember the user
+ * @param mixed $secure  Whether the admin cookies should only be sent over HTTPS.
+ *                       Default is_ssl().
  */
 function wp_set_auth_cookie($user_id, $remember = false, $secure = '') {
        if ( $remember ) {
  */
 function wp_set_auth_cookie($user_id, $remember = false, $secure = '') {
        if ( $remember ) {
@@ -795,8 +840,12 @@ function wp_set_auth_cookie($user_id, $remember = false, $secure = '') {
                $expire = 0;
        }
 
                $expire = 0;
        }
 
-       if ( '' === $secure )
+       if ( '' === $secure ) {
                $secure = is_ssl();
                $secure = is_ssl();
+       }
+
+       // Frontend cookie is secure when the auth cookie is secure and the site's home URL is forced HTTPS.
+       $secure_logged_in_cookie = $secure && 'https' === parse_url( get_option( 'home' ), PHP_URL_SCHEME );
 
        /**
         * Filter whether the connection is secure.
 
        /**
         * Filter whether the connection is secure.
@@ -813,11 +862,11 @@ function wp_set_auth_cookie($user_id, $remember = false, $secure = '') {
         *
         * @since 3.1.0
         *
         *
         * @since 3.1.0
         *
-        * @param bool $cookie  Whether to use a secure cookie when logged-in.
-        * @param int  $user_id User ID.
-        * @param bool $secure  Whether the connection is secure.
+        * @param bool $secure_logged_in_cookie Whether to use a secure cookie when logged-in.
+        * @param int  $user_id                 User ID.
+        * @param bool $secure                  Whether the connection is secure.
         */
         */
-       $secure_logged_in_cookie = apply_filters( 'secure_logged_in_cookie', false, $user_id, $secure );
+       $secure_logged_in_cookie = apply_filters( 'secure_logged_in_cookie', $secure_logged_in_cookie, $user_id, $secure );
 
        if ( $secure ) {
                $auth_cookie_name = SECURE_AUTH_COOKIE;
 
        if ( $secure ) {
                $auth_cookie_name = SECURE_AUTH_COOKIE;
@@ -827,8 +876,11 @@ function wp_set_auth_cookie($user_id, $remember = false, $secure = '') {
                $scheme = 'auth';
        }
 
                $scheme = 'auth';
        }
 
-       $auth_cookie = wp_generate_auth_cookie($user_id, $expiration, $scheme);
-       $logged_in_cookie = wp_generate_auth_cookie($user_id, $expiration, 'logged_in');
+       $manager = WP_Session_Tokens::get_instance( $user_id );
+       $token = $manager->create( $expiration );
+
+       $auth_cookie = wp_generate_auth_cookie( $user_id, $expiration, $scheme, $token );
+       $logged_in_cookie = wp_generate_auth_cookie( $user_id, $expiration, 'logged_in', $token );
 
        /**
         * Fires immediately before the authentication cookie is set.
 
        /**
         * Fires immediately before the authentication cookie is set.
@@ -1133,7 +1185,7 @@ if ( !function_exists('wp_sanitize_redirect') ) :
  * @return string redirect-sanitized URL
  **/
 function wp_sanitize_redirect($location) {
  * @return string redirect-sanitized URL
  **/
 function wp_sanitize_redirect($location) {
-       $location = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%!]|i', '', $location);
+       $location = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%!*]|i', '', $location);
        $location = wp_kses_no_null($location);
 
        // remove %0d and %0a from location
        $location = wp_kses_no_null($location);
 
        // remove %0d and %0a from location
@@ -1655,16 +1707,21 @@ function wp_verify_nonce($nonce, $action = -1) {
                $uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
        }
 
                $uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
        }
 
+       if ( empty( $nonce ) ) {
+               return false;
+       }
+
+       $token = wp_get_session_token();
        $i = wp_nonce_tick();
 
        // Nonce generated 0-12 hours ago
        $i = wp_nonce_tick();
 
        // Nonce generated 0-12 hours ago
-       $expected = substr( wp_hash( $i . '|' . $action . '|' . $uid, 'nonce'), -12, 10 );
+       $expected = substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce'), -12, 10 );
        if ( hash_equals( $expected, $nonce ) ) {
                return 1;
        }
 
        // Nonce generated 12-24 hours ago
        if ( hash_equals( $expected, $nonce ) ) {
                return 1;
        }
 
        // Nonce generated 12-24 hours ago
-       $expected = substr( wp_hash( ( $i - 1 ) . '|' . $action . '|' . $uid, 'nonce' ), -12, 10 );
+       $expected = substr( wp_hash( ( $i - 1 ) . '|' . $action . '|' . $uid . '|' . $token, 'nonce' ), -12, 10 );
        if ( hash_equals( $expected, $nonce ) ) {
                return 2;
        }
        if ( hash_equals( $expected, $nonce ) ) {
                return 2;
        }
@@ -1676,12 +1733,12 @@ endif;
 
 if ( !function_exists('wp_create_nonce') ) :
 /**
 
 if ( !function_exists('wp_create_nonce') ) :
 /**
- * Creates a random, one time use token.
+ * Creates a cryptographic token tied to a specific action, user, and window of time.
  *
  * @since 2.0.3
  *
  *
  * @since 2.0.3
  *
- * @param string|int $action Scalar value to add context to the nonce.
- * @return string The one use form token
+ * @param string $action Scalar value to add context to the nonce.
+ * @return string The token.
  */
 function wp_create_nonce($action = -1) {
        $user = wp_get_current_user();
  */
 function wp_create_nonce($action = -1) {
        $user = wp_get_current_user();
@@ -1691,9 +1748,10 @@ function wp_create_nonce($action = -1) {
                $uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
        }
 
                $uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
        }
 
+       $token = wp_get_session_token();
        $i = wp_nonce_tick();
 
        $i = wp_nonce_tick();
 
-       return substr(wp_hash($i . '|' . $action . '|' . $uid, 'nonce'), -12, 10);
+       return substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce' ), -12, 10 );
 }
 endif;
 
 }
 endif;
 
@@ -1752,45 +1810,51 @@ function wp_salt( $scheme = 'auth' ) {
                $duplicated_keys = array( 'put your unique phrase here' => true );
                foreach ( array( 'AUTH', 'SECURE_AUTH', 'LOGGED_IN', 'NONCE', 'SECRET' ) as $first ) {
                        foreach ( array( 'KEY', 'SALT' ) as $second ) {
                $duplicated_keys = array( 'put your unique phrase here' => true );
                foreach ( array( 'AUTH', 'SECURE_AUTH', 'LOGGED_IN', 'NONCE', 'SECRET' ) as $first ) {
                        foreach ( array( 'KEY', 'SALT' ) as $second ) {
-                               if ( ! defined( "{$first}_{$second}" ) )
+                               if ( ! defined( "{$first}_{$second}" ) ) {
                                        continue;
                                        continue;
+                               }
                                $value = constant( "{$first}_{$second}" );
                                $duplicated_keys[ $value ] = isset( $duplicated_keys[ $value ] );
                        }
                }
        }
 
                                $value = constant( "{$first}_{$second}" );
                                $duplicated_keys[ $value ] = isset( $duplicated_keys[ $value ] );
                        }
                }
        }
 
-       $key = $salt = '';
-       if ( defined( 'SECRET_KEY' ) && SECRET_KEY && empty( $duplicated_keys[ SECRET_KEY ] ) )
-               $key = SECRET_KEY;
-       if ( 'auth' == $scheme && defined( 'SECRET_SALT' ) && SECRET_SALT && empty( $duplicated_keys[ SECRET_SALT ] ) )
-               $salt = SECRET_SALT;
+       $values = array(
+               'key' => '',
+               'salt' => ''
+       );
+       if ( defined( 'SECRET_KEY' ) && SECRET_KEY && empty( $duplicated_keys[ SECRET_KEY ] ) ) {
+               $values['key'] = SECRET_KEY;
+       }
+       if ( 'auth' == $scheme && defined( 'SECRET_SALT' ) && SECRET_SALT && empty( $duplicated_keys[ SECRET_SALT ] ) ) {
+               $values['salt'] = SECRET_SALT;
+       }
 
        if ( in_array( $scheme, array( 'auth', 'secure_auth', 'logged_in', 'nonce' ) ) ) {
                foreach ( array( 'key', 'salt' ) as $type ) {
                        $const = strtoupper( "{$scheme}_{$type}" );
                        if ( defined( $const ) && constant( $const ) && empty( $duplicated_keys[ constant( $const ) ] ) ) {
 
        if ( in_array( $scheme, array( 'auth', 'secure_auth', 'logged_in', 'nonce' ) ) ) {
                foreach ( array( 'key', 'salt' ) as $type ) {
                        $const = strtoupper( "{$scheme}_{$type}" );
                        if ( defined( $const ) && constant( $const ) && empty( $duplicated_keys[ constant( $const ) ] ) ) {
-                               $$type = constant( $const );
-                       } elseif ( ! $$type ) {
-                               $$type = get_site_option( "{$scheme}_{$type}" );
-                               if ( ! $$type ) {
-                                       $$type = wp_generate_password( 64, true, true );
-                                       update_site_option( "{$scheme}_{$type}", $$type );
+                               $values[ $type ] = constant( $const );
+                       } elseif ( ! $values[ $type ] ) {
+                               $values[ $type ] = get_site_option( "{$scheme}_{$type}" );
+                               if ( ! $values[ $type ] ) {
+                                       $values[ $type ] = wp_generate_password( 64, true, true );
+                                       update_site_option( "{$scheme}_{$type}", $values[ $type ] );
                                }
                        }
                }
        } else {
                                }
                        }
                }
        } else {
-               if ( ! $key ) {
-                       $key = get_site_option( 'secret_key' );
-                       if ( ! $key ) {
-                               $key = wp_generate_password( 64, true, true );
-                               update_site_option( 'secret_key', $key );
+               if ( ! $values['key'] ) {
+                       $values['key'] = get_site_option( 'secret_key' );
+                       if ( ! $values['key'] ) {
+                               $values['key'] = wp_generate_password( 64, true, true );
+                               update_site_option( 'secret_key', $values['key'] );
                        }
                }
                        }
                }
-               $salt = hash_hmac( 'md5', $scheme, $key );
+               $values['salt'] = hash_hmac( 'md5', $scheme, $values['key'] );
        }
 
        }
 
-       $cached_salts[ $scheme ] = $key . $salt;
+       $cached_salts[ $scheme ] = $values['key'] . $values['salt'];
 
        /** This filter is documented in wp-includes/pluggable.php */
        return apply_filters( 'salt', $cached_salts[ $scheme ], $scheme );
 
        /** This filter is documented in wp-includes/pluggable.php */
        return apply_filters( 'salt', $cached_salts[ $scheme ], $scheme );
@@ -1833,7 +1897,7 @@ function wp_hash_password($password) {
        global $wp_hasher;
 
        if ( empty($wp_hasher) ) {
        global $wp_hasher;
 
        if ( empty($wp_hasher) ) {
-               require_once( ABSPATH . 'wp-includes/class-phpass.php');
+               require_once( ABSPATH . WPINC . '/class-phpass.php');
                // By default, use the portable hash from phpass
                $wp_hasher = new PasswordHash(8, true);
        }
                // By default, use the portable hash from phpass
                $wp_hasher = new PasswordHash(8, true);
        }
@@ -1891,7 +1955,7 @@ function wp_check_password($password, $hash, $user_id = '') {
        // If the stored hash is longer than an MD5, presume the
        // new style phpass portable hash.
        if ( empty($wp_hasher) ) {
        // If the stored hash is longer than an MD5, presume the
        // new style phpass portable hash.
        if ( empty($wp_hasher) ) {
-               require_once( ABSPATH . 'wp-includes/class-phpass.php');
+               require_once( ABSPATH . WPINC . '/class-phpass.php');
                // By default, use the portable hash from phpass
                $wp_hasher = new PasswordHash(8, true);
        }
                // By default, use the portable hash from phpass
                $wp_hasher = new PasswordHash(8, true);
        }
@@ -1992,6 +2056,10 @@ if ( !function_exists('wp_set_password') ) :
  * For integration with other applications, this function can be overwritten to
  * instead use the other package password checking algorithm.
  *
  * For integration with other applications, this function can be overwritten to
  * instead use the other package password checking algorithm.
  *
+ * Please note: This function should be used sparingly and is really only meant for single-time
+ * application. Leveraging this improperly in a plugin or theme could result in an endless loop
+ * of password resets if precautions are not taken to ensure it does not execute on every page load.
+ *
  * @since 2.5.0
  *
  * @uses $wpdb WordPress database object for queries
  * @since 2.5.0
  *
  * @uses $wpdb WordPress database object for queries
@@ -2207,35 +2275,3 @@ function wp_text_diff( $left_string, $right_string, $args = null ) {
 }
 endif;
 
 }
 endif;
 
-if ( ! function_exists( 'hash_equals' ) ) :
-/**
- * Compare two strings in constant time.
- *
- * This function is NOT pluggable. It is in this file (in addition to
- * compat.php) to prevent errors if, during an update, pluggable.php
- * copies over but compat.php does not.
- *
- * This function was added in PHP 5.6.
- * It can leak the length of a string.
- *
- * @since 3.9.2
- *
- * @param string $a Expected string.
- * @param string $b Actual string.
- * @return bool Whether strings are equal.
- */
-function hash_equals( $a, $b ) {
-       $a_length = strlen( $a );
-       if ( $a_length !== strlen( $b ) ) {
-               return false;
-       }
-       $result = 0;
-
-       // Do not attempt to "optimize" this.
-       for ( $i = 0; $i < $a_length; $i++ ) {
-               $result |= ord( $a[ $i ] ) ^ ord( $b[ $i ] );
-       }
-
-       return $result === 0;
-}
-endif;
index 7eba1bbdb6475c1d9dc0fed400732cc5e8c83acb..d616a2a960e70d762ce5a6c69de6116881dcb527 100644 (file)
@@ -35,7 +35,7 @@ if ( ! isset( $wp_current_filter ) )
        $wp_current_filter = array();
 
 /**
        $wp_current_filter = array();
 
 /**
- * Hooks a function or method to a specific filter action.
+ * Hook a function or method to a specific filter action.
  *
  * WordPress offers filter hooks to allow plugins to modify
  * various types of internal data at runtime.
  *
  * WordPress offers filter hooks to allow plugins to modify
  * various types of internal data at runtime.
@@ -63,17 +63,20 @@ if ( ! isset( $wp_current_filter ) )
  * is valid. It is up to you to take care. This is done for optimization purposes,
  * so everything is as quick as possible.
  *
  * is valid. It is up to you to take care. This is done for optimization purposes,
  * so everything is as quick as possible.
  *
- * @global array $wp_filter      A multidimensional array of all hooks and the callbacks hooked to them.
- * @global array $merged_filters Tracks the tags that need to be merged for later. If the hook is added, it doesn't need to run through that process.
- *
  * @since 0.71
  *
  * @since 0.71
  *
+ * @global array $wp_filter      A multidimensional array of all hooks and the callbacks hooked to them.
+ * @global array $merged_filters Tracks the tags that need to be merged for later. If the hook is added,
+ *                               it doesn't need to run through that process.
+ *
  * @param string   $tag             The name of the filter to hook the $function_to_add callback to.
  * @param callback $function_to_add The callback to be run when the filter is applied.
  * @param string   $tag             The name of the filter to hook the $function_to_add callback to.
  * @param callback $function_to_add The callback to be run when the filter is applied.
- * @param int      $priority        (optional) The order in which the functions associated with a particular action are executed. Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
- *                                  Default 10.
- * @param int      $accepted_args   (optional) The number of arguments the function accepts.
- *                                  Default 1.
+ * @param int      $priority        Optional. Used to specify the order in which the functions
+ *                                  associated with a particular action are executed. Default 10.
+ *                                  Lower numbers correspond with earlier execution,
+ *                                  and functions with the same priority are executed
+ *                                  in the order in which they were added to the action.
+ * @param int      $accepted_args   Optional. The number of arguments the function accepts. Default 1.
  * @return boolean true
  */
 function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
  * @return boolean true
  */
 function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
@@ -90,19 +93,38 @@ function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @global array $wp_filter Stores all of the filters
+ * @global array $wp_filter Stores all of the filters.
  *
  *
- * @param string $tag The name of the filter hook.
- * @param callback $function_to_check optional.
- * @return mixed If $function_to_check is omitted, returns boolean for whether the hook has anything registered.
- *     When checking a specific function, the priority of that hook is returned, or false if the function is not attached.
- *     When using the $function_to_check argument, this function may return a non-boolean value that evaluates to false
- *     (e.g.) 0, so use the === operator for testing the return value.
+ * @param string        $tag               The name of the filter hook.
+ * @param callback|bool $function_to_check Optional. The callback to check for. Default false.
+ * @return bool|int If $function_to_check is omitted, returns boolean for whether the hook has
+ *                  anything registered. When checking a specific function, the priority of that
+ *                  hook is returned, or false if the function is not attached. When using the
+ *                  $function_to_check argument, this function may return a non-boolean value
+ *                  that evaluates to false (e.g.) 0, so use the === operator for testing the
+ *                  return value.
  */
 function has_filter($tag, $function_to_check = false) {
  */
 function has_filter($tag, $function_to_check = false) {
-       global $wp_filter;
+       // Don't reset the internal array pointer
+       $wp_filter = $GLOBALS['wp_filter'];
+
+       $has = ! empty( $wp_filter[ $tag ] );
+
+       // Make sure at least one priority has a filter callback
+       if ( $has ) {
+               $exists = false;
+               foreach ( $wp_filter[ $tag ] as $callbacks ) {
+                       if ( ! empty( $callbacks ) ) {
+                               $exists = true;
+                               break;
+                       }
+               }
+
+               if ( ! $exists ) {
+                       $has = false;
+               }
+       }
 
 
-       $has = !empty($wp_filter[$tag]);
        if ( false === $function_to_check || false == $has )
                return $has;
 
        if ( false === $function_to_check || false == $has )
                return $has;
 
@@ -142,15 +164,15 @@ function has_filter($tag, $function_to_check = false) {
  * $value = apply_filters( 'example_filter', 'filter me', $arg1, $arg2 );
  * </code>
  *
  * $value = apply_filters( 'example_filter', 'filter me', $arg1, $arg2 );
  * </code>
  *
- * @global array $wp_filter         Stores all of the filters
- * @global array $merged_filters    Merges the filter hooks using this function.
- * @global array $wp_current_filter stores the list of current filters with the current one last
- *
  * @since 0.71
  *
  * @since 0.71
  *
- * @param string $tag  The name of the filter hook.
- * @param mixed $value The value on which the filters hooked to <tt>$tag</tt> are applied on.
- * @param mixed $var   Additional variables passed to the functions hooked to <tt>$tag</tt>.
+ * @global array $wp_filter         Stores all of the filters.
+ * @global array $merged_filters    Merges the filter hooks using this function.
+ * @global array $wp_current_filter Stores the list of current filters with the current one last.
+ *
+ * @param string $tag   The name of the filter hook.
+ * @param mixed  $value The value on which the filters hooked to <tt>$tag</tt> are applied on.
+ * @param mixed  $var   Additional variables passed to the functions hooked to <tt>$tag</tt>.
  * @return mixed The filtered value after all hooked functions are applied to it.
  */
 function apply_filters( $tag, $value ) {
  * @return mixed The filtered value after all hooked functions are applied to it.
  */
 function apply_filters( $tag, $value ) {
@@ -158,7 +180,7 @@ function apply_filters( $tag, $value ) {
 
        $args = array();
 
 
        $args = array();
 
-       // Do 'all' actions first
+       // Do 'all' actions first.
        if ( isset($wp_filter['all']) ) {
                $wp_current_filter[] = $tag;
                $args = func_get_args();
        if ( isset($wp_filter['all']) ) {
                $wp_current_filter[] = $tag;
                $args = func_get_args();
@@ -174,7 +196,7 @@ function apply_filters( $tag, $value ) {
        if ( !isset($wp_filter['all']) )
                $wp_current_filter[] = $tag;
 
        if ( !isset($wp_filter['all']) )
                $wp_current_filter[] = $tag;
 
-       // Sort
+       // Sort.
        if ( !isset( $merged_filters[ $tag ] ) ) {
                ksort($wp_filter[$tag]);
                $merged_filters[ $tag ] = true;
        if ( !isset( $merged_filters[ $tag ] ) ) {
                ksort($wp_filter[$tag]);
                $merged_filters[ $tag ] = true;
@@ -206,12 +228,13 @@ function apply_filters( $tag, $value ) {
  * functions hooked to <tt>$tag</tt> are supplied using an array.
  *
  * @since 3.0.0
  * functions hooked to <tt>$tag</tt> are supplied using an array.
  *
  * @since 3.0.0
- * @global array $wp_filter Stores all of the filters
- * @global array $merged_filters Merges the filter hooks using this function.
- * @global array $wp_current_filter stores the list of current filters with the current one last
  *
  *
- * @param string $tag The name of the filter hook.
- * @param array $args The arguments supplied to the functions hooked to <tt>$tag</tt>
+ * @global array $wp_filter         Stores all of the filters
+ * @global array $merged_filters    Merges the filter hooks using this function.
+ * @global array $wp_current_filter Stores the list of current filters with the current one last
+ *
+ * @param string $tag  The name of the filter hook.
+ * @param array  $args The arguments supplied to the functions hooked to $tag.
  * @return mixed The filtered value after all hooked functions are applied to it.
  */
 function apply_filters_ref_array($tag, $args) {
  * @return mixed The filtered value after all hooked functions are applied to it.
  */
 function apply_filters_ref_array($tag, $args) {
@@ -266,22 +289,25 @@ function apply_filters_ref_array($tag, $args) {
  *
  * @since 1.2.0
  *
  *
  * @since 1.2.0
  *
- * @param string $tag The filter hook to which the function to be removed is hooked.
+ * @param string   $tag                The filter hook to which the function to be removed is hooked.
  * @param callback $function_to_remove The name of the function which should be removed.
  * @param callback $function_to_remove The name of the function which should be removed.
- * @param int $priority optional. The priority of the function (default: 10).
- * @param int $accepted_args optional. The number of arguments the function accepts (default: 1).
+ * @param int      $priority           Optional. The priority of the function. Default 10.
  * @return boolean Whether the function existed before it was removed.
  */
 function remove_filter( $tag, $function_to_remove, $priority = 10 ) {
  * @return boolean Whether the function existed before it was removed.
  */
 function remove_filter( $tag, $function_to_remove, $priority = 10 ) {
-       $function_to_remove = _wp_filter_build_unique_id($tag, $function_to_remove, $priority);
+       $function_to_remove = _wp_filter_build_unique_id( $tag, $function_to_remove, $priority );
 
 
-       $r = isset($GLOBALS['wp_filter'][$tag][$priority][$function_to_remove]);
+       $r = isset( $GLOBALS['wp_filter'][ $tag ][ $priority ][ $function_to_remove ] );
 
 
-       if ( true === $r) {
-               unset($GLOBALS['wp_filter'][$tag][$priority][$function_to_remove]);
-               if ( empty($GLOBALS['wp_filter'][$tag][$priority]) )
-                       unset($GLOBALS['wp_filter'][$tag][$priority]);
-               unset($GLOBALS['merged_filters'][$tag]);
+       if ( true === $r ) {
+               unset( $GLOBALS['wp_filter'][ $tag ][ $priority ][ $function_to_remove ] );
+               if ( empty( $GLOBALS['wp_filter'][ $tag ][ $priority ] ) ) {
+                       unset( $GLOBALS['wp_filter'][ $tag ][ $priority ] );
+               }
+               if ( empty( $GLOBALS['wp_filter'][ $tag ] ) ) {
+                       $GLOBALS['wp_filter'][ $tag ] = array();
+               }
+               unset( $GLOBALS['merged_filters'][ $tag ] );
        }
 
        return $r;
        }
 
        return $r;
@@ -292,22 +318,24 @@ function remove_filter( $tag, $function_to_remove, $priority = 10 ) {
  *
  * @since 2.7.0
  *
  *
  * @since 2.7.0
  *
- * @param string $tag The filter to remove hooks from.
- * @param int $priority The priority number to remove.
+ * @param string   $tag      The filter to remove hooks from.
+ * @param int|bool $priority Optional. The priority number to remove. Default false.
  * @return bool True when finished.
  */
  * @return bool True when finished.
  */
-function remove_all_filters($tag, $priority = false) {
+function remove_all_filters( $tag, $priority = false ) {
        global $wp_filter, $merged_filters;
 
        global $wp_filter, $merged_filters;
 
-       if( isset($wp_filter[$tag]) ) {
-               if( false !== $priority && isset($wp_filter[$tag][$priority]) )
-                       unset($wp_filter[$tag][$priority]);
-               else
-                       unset($wp_filter[$tag]);
+       if ( isset( $wp_filter[ $tag ]) ) {
+               if ( false !== $priority && isset( $wp_filter[ $tag ][ $priority ] ) ) {
+                       $wp_filter[ $tag ][ $priority ] = array();
+               } else {
+                       $wp_filter[ $tag ] = array();
+               }
        }
 
        }
 
-       if( isset($merged_filters[$tag]) )
-               unset($merged_filters[$tag]);
+       if ( isset( $merged_filters[ $tag ] ) ) {
+               unset( $merged_filters[ $tag ] );
+       }
 
        return true;
 }
 
        return true;
 }
@@ -342,7 +370,9 @@ function current_action() {
  *
  * The function current_filter() only returns the most recent filter or action
  * being executed. did_action() returns true once the action is initially
  *
  * The function current_filter() only returns the most recent filter or action
  * being executed. did_action() returns true once the action is initially
- * processed. This function allows detection for any filter currently being
+ * processed.
+ *
+ * This function allows detection for any filter currently being
  * executed (despite not being the most recent filter to fire, in the case of
  * hooks called from hook callbacks) to be verified.
  *
  * executed (despite not being the most recent filter to fire, in the case of
  * hooks called from hook callbacks) to be verified.
  *
@@ -354,7 +384,7 @@ function current_action() {
  *
  * @param null|string $filter Optional. Filter to check. Defaults to null, which
  *                            checks if any filter is currently being run.
  *
  * @param null|string $filter Optional. Filter to check. Defaults to null, which
  *                            checks if any filter is currently being run.
- * @return bool Whether the filter is currently in the stack
+ * @return bool Whether the filter is currently in the stack.
  */
 function doing_filter( $filter = null ) {
        global $wp_current_filter;
  */
 function doing_filter( $filter = null ) {
        global $wp_current_filter;
@@ -389,14 +419,19 @@ function doing_action( $action = null ) {
  * one or more of its PHP functions are executed at these points, using the
  * Action API.
  *
  * one or more of its PHP functions are executed at these points, using the
  * Action API.
  *
- * @uses add_filter() Adds an action. Parameter list and functionality are the same.
- *
  * @since 1.2.0
  *
  * @since 1.2.0
  *
- * @param string $tag The name of the action to which the $function_to_add is hooked.
+ * @uses add_filter() Adds an action. Parameter list and functionality are the same.
+ *
+ * @param string   $tag             The name of the action to which the $function_to_add is hooked.
  * @param callback $function_to_add The name of the function you wish to be called.
  * @param callback $function_to_add The name of the function you wish to be called.
- * @param int $priority optional. Used to specify the order in which the functions associated with a particular action are executed (default: 10). Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
- * @param int $accepted_args optional. The number of arguments the function accept (default 1).
+ * @param int      $priority        Optional. Used to specify the order in which the functions
+ *                                  associated with a particular action are executed. Default 10.
+ *                                  Lower numbers correspond with earlier execution,
+ *                                  and functions with the same priority are executed
+ *                                  in the order in which they were added to the action.
+ * @param int      $accepted_args   Optional. The number of arguments the function accept. Default 1.
+ * @return bool Will always return true.
  */
 function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
        return add_filter($tag, $function_to_add, $priority, $accepted_args);
  */
 function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
        return add_filter($tag, $function_to_add, $priority, $accepted_args);
@@ -412,17 +447,17 @@ function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1)
  * You can pass extra arguments to the hooks, much like you can with
  * apply_filters().
  *
  * You can pass extra arguments to the hooks, much like you can with
  * apply_filters().
  *
- * @see apply_filters() This function works similar with the exception that
- * nothing is returned and only the functions or methods are called.
- *
  * @since 1.2.0
  *
  * @since 1.2.0
  *
- * @global array $wp_filter Stores all of the filters
+ * @see apply_filters() This function works similar with the exception that nothing
+ *                      is returned and only the functions or methods are called.
+ * @global array $wp_filter  Stores all of the filters
  * @global array $wp_actions Increments the amount of times action was triggered.
  *
  * @param string $tag The name of the action to be executed.
  * @global array $wp_actions Increments the amount of times action was triggered.
  *
  * @param string $tag The name of the action to be executed.
- * @param mixed $arg,... Optional additional arguments which are passed on to the functions hooked to the action.
- * @return null Will return null if $tag does not exist in $wp_filter array
+ * @param mixed  $arg Optional. Additional arguments which are passed on to the
+ *                    functions hooked to the action. Default empty.
+ * @return null Will return null if $tag does not exist in $wp_filter array.
  */
 function do_action($tag, $arg = '') {
        global $wp_filter, $wp_actions, $merged_filters, $wp_current_filter;
  */
 function do_action($tag, $arg = '') {
        global $wp_filter, $wp_actions, $merged_filters, $wp_current_filter;
@@ -482,7 +517,7 @@ function do_action($tag, $arg = '') {
  * @global array $wp_actions Increments the amount of times action was triggered.
  *
  * @param string $tag The name of the action hook.
  * @global array $wp_actions Increments the amount of times action was triggered.
  *
  * @param string $tag The name of the action hook.
- * @return int The number of times action hook <tt>$tag</tt> is fired
+ * @return int The number of times action hook $tag is fired.
  */
 function did_action($tag) {
        global $wp_actions;
  */
 function did_action($tag) {
        global $wp_actions;
@@ -496,16 +531,15 @@ function did_action($tag) {
 /**
  * Execute functions hooked on a specific action hook, specifying arguments in an array.
  *
 /**
  * Execute functions hooked on a specific action hook, specifying arguments in an array.
  *
- * @see do_action() This function is identical, but the arguments passed to the
- * functions hooked to <tt>$tag</tt> are supplied using an array.
- *
  * @since 2.1.0
  *
  * @since 2.1.0
  *
- * @global array $wp_filter Stores all of the filters
+ * @see do_action() This function is identical, but the arguments passed to the
+ *                  functions hooked to $tag< are supplied using an array.
+ * @global array $wp_filter  Stores all of the filters
  * @global array $wp_actions Increments the amount of times action was triggered.
  *
  * @global array $wp_actions Increments the amount of times action was triggered.
  *
- * @param string $tag The name of the action to be executed.
- * @param array $args The arguments supplied to the functions hooked to <tt>$tag</tt>
+ * @param string $tag  The name of the action to be executed.
+ * @param array  $args The arguments supplied to the functions hooked to <tt>$tag</tt>
  * @return null Will return null if $tag does not exist in $wp_filter array
  */
 function do_action_ref_array($tag, $args) {
  * @return null Will return null if $tag does not exist in $wp_filter array
  */
 function do_action_ref_array($tag, $args) {
@@ -557,12 +591,14 @@ function do_action_ref_array($tag, $args) {
  *
  * @see has_filter() has_action() is an alias of has_filter().
  *
  *
  * @see has_filter() has_action() is an alias of has_filter().
  *
- * @param string $tag The name of the action hook.
- * @param callback $function_to_check optional.
- * @return mixed If $function_to_check is omitted, returns boolean for whether the hook has anything registered.
- *     When checking a specific function, the priority of that hook is returned, or false if the function is not attached.
- *     When using the $function_to_check argument, this function may return a non-boolean value that evaluates to false
- *     (e.g.) 0, so use the === operator for testing the return value.
+ * @param string        $tag               The name of the action hook.
+ * @param callback|bool $function_to_check Optional. The callback to check for. Default false.
+ * @return bool|int If $function_to_check is omitted, returns boolean for whether the hook has
+ *                  anything registered. When checking a specific function, the priority of that
+ *                  hook is returned, or false if the function is not attached. When using the
+ *                  $function_to_check argument, this function may return a non-boolean value
+ *                  that evaluates to false (e.g.) 0, so use the === operator for testing the
+ *                  return value.
  */
 function has_action($tag, $function_to_check = false) {
        return has_filter($tag, $function_to_check);
  */
 function has_action($tag, $function_to_check = false) {
        return has_filter($tag, $function_to_check);
@@ -577,9 +613,9 @@ function has_action($tag, $function_to_check = false) {
  *
  * @since 1.2.0
  *
  *
  * @since 1.2.0
  *
- * @param string $tag The action hook to which the function to be removed is hooked.
+ * @param string   $tag                The action hook to which the function to be removed is hooked.
  * @param callback $function_to_remove The name of the function which should be removed.
  * @param callback $function_to_remove The name of the function which should be removed.
- * @param int $priority optional The priority of the function (default: 10).
+ * @param int      $priority           Optional. The priority of the function. Default 10.
  * @return boolean Whether the function is removed.
  */
 function remove_action( $tag, $function_to_remove, $priority = 10 ) {
  * @return boolean Whether the function is removed.
  */
 function remove_action( $tag, $function_to_remove, $priority = 10 ) {
@@ -591,8 +627,8 @@ function remove_action( $tag, $function_to_remove, $priority = 10 ) {
  *
  * @since 2.7.0
  *
  *
  * @since 2.7.0
  *
- * @param string $tag The action to remove hooks from.
- * @param int $priority The priority number to remove them from.
+ * @param string   $tag      The action to remove hooks from.
+ * @param int|bool $priority The priority number to remove them from. Default false.
  * @return bool True when finished.
  */
 function remove_all_actions($tag, $priority = false) {
  * @return bool True when finished.
  */
 function remove_all_actions($tag, $priority = false) {
@@ -610,11 +646,10 @@ function remove_all_actions($tag, $priority = false) {
  *
  * @since 1.5.0
  *
  *
  * @since 1.5.0
  *
- * @access private
+ * @uses WP_PLUGIN_DIR, WPMU_PLUGIN_DIR
  *
  * @param string $file The filename of plugin.
  * @return string The name of a plugin.
  *
  * @param string $file The filename of plugin.
  * @return string The name of a plugin.
- * @uses WP_PLUGIN_DIR
  */
 function plugin_basename( $file ) {
        global $wp_plugin_paths;
  */
 function plugin_basename( $file ) {
        global $wp_plugin_paths;
@@ -671,24 +706,24 @@ function wp_register_plugin_realpath( $file ) {
 }
 
 /**
 }
 
 /**
- * Gets the filesystem directory path (with trailing slash) for the plugin __FILE__ passed in
+ * Get the filesystem directory path (with trailing slash) for the plugin __FILE__ passed in.
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
- * @param string $file The filename of the plugin (__FILE__)
- * @return string the filesystem path of the directory that contains the plugin
+ * @param string $file The filename of the plugin (__FILE__).
+ * @return string the filesystem path of the directory that contains the plugin.
  */
 function plugin_dir_path( $file ) {
        return trailingslashit( dirname( $file ) );
 }
 
 /**
  */
 function plugin_dir_path( $file ) {
        return trailingslashit( dirname( $file ) );
 }
 
 /**
- * Gets the URL directory path (with trailing slash) for the plugin __FILE__ passed in
+ * Get the URL directory path (with trailing slash) for the plugin __FILE__ passed in.
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
- * @param string $file The filename of the plugin (__FILE__)
- * @return string the URL path of the directory that contains the plugin
+ * @param string $file The filename of the plugin (__FILE__).
+ * @return string the URL path of the directory that contains the plugin.
  */
 function plugin_dir_url( $file ) {
        return trailingslashit( plugins_url( '', $file ) );
  */
 function plugin_dir_url( $file ) {
        return trailingslashit( plugins_url( '', $file ) );
@@ -709,8 +744,8 @@ function plugin_dir_url( $file ) {
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param string $file The filename of the plugin including the path.
- * @param callback $function the function hooked to the 'activate_PLUGIN' action.
+ * @param string   $file     The filename of the plugin including the path.
+ * @param callback $function The function hooked to the 'activate_PLUGIN' action.
  */
 function register_activation_hook($file, $function) {
        $file = plugin_basename($file);
  */
 function register_activation_hook($file, $function) {
        $file = plugin_basename($file);
@@ -732,8 +767,8 @@ function register_activation_hook($file, $function) {
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param string $file The filename of the plugin including the path.
- * @param callback $function the function hooked to the 'deactivate_PLUGIN' action.
+ * @param string   $file     The filename of the plugin including the path.
+ * @param callback $function The function hooked to the 'deactivate_PLUGIN' action.
  */
 function register_deactivation_hook($file, $function) {
        $file = plugin_basename($file);
  */
 function register_deactivation_hook($file, $function) {
        $file = plugin_basename($file);
@@ -762,8 +797,9 @@ function register_deactivation_hook($file, $function) {
  *
  * @since 2.7.0
  *
  *
  * @since 2.7.0
  *
- * @param string $file
- * @param callback $callback The callback to run when the hook is called. Must be a static method or function.
+ * @param string   $file     Plugin file.
+ * @param callback $callback The callback to run when the hook is called. Must be
+ *                           a static method or function.
  */
 function register_uninstall_hook( $file, $callback ) {
        if ( is_array( $callback ) && is_object( $callback[0] ) ) {
  */
 function register_uninstall_hook( $file, $callback ) {
        if ( is_array( $callback ) && is_object( $callback[0] ) ) {
@@ -771,16 +807,19 @@ function register_uninstall_hook( $file, $callback ) {
                return;
        }
 
                return;
        }
 
-       // The option should not be autoloaded, because it is not needed in most
-       // cases. Emphasis should be put on using the 'uninstall.php' way of
-       // uninstalling the plugin.
+       /*
+        * The option should not be autoloaded, because it is not needed in most
+        * cases. Emphasis should be put on using the 'uninstall.php' way of
+        * uninstalling the plugin.
+        */
        $uninstallable_plugins = (array) get_option('uninstall_plugins');
        $uninstallable_plugins[plugin_basename($file)] = $callback;
        $uninstallable_plugins = (array) get_option('uninstall_plugins');
        $uninstallable_plugins[plugin_basename($file)] = $callback;
+
        update_option('uninstall_plugins', $uninstallable_plugins);
 }
 
 /**
        update_option('uninstall_plugins', $uninstallable_plugins);
 }
 
 /**
- * Calls the 'all' hook, which will process the functions hooked into it.
+ * Call the 'all' hook, which will process the functions hooked into it.
  *
  * The 'all' hook passes all of the arguments or parameters that were used for
  * the hook, which this function was called for.
  *
  * The 'all' hook passes all of the arguments or parameters that were used for
  * the hook, which this function was called for.
@@ -793,7 +832,7 @@ function register_uninstall_hook( $file, $callback ) {
  * @since 2.5.0
  * @access private
  *
  * @since 2.5.0
  * @access private
  *
- * @uses $wp_filter Used to process all of the functions in the 'all' hook
+ * @uses $wp_filter Used to process all of the functions in the 'all' hook.
  *
  * @param array $args The collected parameters from the hook that was called.
  */
  *
  * @param array $args The collected parameters from the hook that was called.
  */
@@ -826,15 +865,21 @@ function _wp_call_all_hook($args) {
  * Functions and static method callbacks are just returned as strings and
  * shouldn't have any speed penalty.
  *
  * Functions and static method callbacks are just returned as strings and
  * shouldn't have any speed penalty.
  *
- * @access private
- * @since 2.2.3
  * @link http://trac.wordpress.org/ticket/3875
  *
  * @link http://trac.wordpress.org/ticket/3875
  *
- * @global array $wp_filter Storage for all of the filters and actions
- * @param string $tag Used in counting how many hooks were applied
+ * @since 2.2.3
+ * @access private
+ *
+ * @global array $wp_filter Storage for all of the filters and actions.
+ *
+ * @param string   $tag      Used in counting how many hooks were applied
  * @param callback $function Used for creating unique id
  * @param callback $function Used for creating unique id
- * @param int|bool $priority Used in counting how many hooks were applied. If === false and $function is an object reference, we return the unique id only if it already has one, false otherwise.
- * @return string|bool Unique ID for usage as array key or false if $priority === false and $function is an object reference, and it does not already have a unique id.
+ * @param int|bool $priority Used in counting how many hooks were applied. If === false
+ *                           and $function is an object reference, we return the unique
+ *                           id only if it already has one, false otherwise.
+ * @return string|bool Unique ID for usage as array key or false if $priority === false
+ *                     and $function is an object reference, and it does not already have
+ *                     a unique id.
  */
 function _wp_filter_build_unique_id($tag, $function, $priority) {
        global $wp_filter;
  */
 function _wp_filter_build_unique_id($tag, $function, $priority) {
        global $wp_filter;
index 68c0792fdcf58855d330c559322cefa66106d08f..407c5a83e6a68a5242df8f48cca85d1963fa0d40 100644 (file)
@@ -75,21 +75,23 @@ class MO extends Gettext_Translations {
                $current_addr++;
                $originals_table = chr(0);
 
                $current_addr++;
                $originals_table = chr(0);
 
+               $reader = new POMO_Reader();
+
                foreach($entries as $entry) {
                        $originals_table .= $this->export_original($entry) . chr(0);
                foreach($entries as $entry) {
                        $originals_table .= $this->export_original($entry) . chr(0);
-                       $length = strlen($this->export_original($entry));
+                       $length = $reader->strlen($this->export_original($entry));
                        fwrite($fh, pack('VV', $length, $current_addr));
                        $current_addr += $length + 1; // account for the NULL byte after
                }
 
                $exported_headers = $this->export_headers();
                        fwrite($fh, pack('VV', $length, $current_addr));
                        $current_addr += $length + 1; // account for the NULL byte after
                }
 
                $exported_headers = $this->export_headers();
-               fwrite($fh, pack('VV', strlen($exported_headers), $current_addr));
+               fwrite($fh, pack('VV', $reader->strlen($exported_headers), $current_addr));
                $current_addr += strlen($exported_headers) + 1;
                $translations_table = $exported_headers . chr(0);
 
                foreach($entries as $entry) {
                        $translations_table .= $this->export_translations($entry) . chr(0);
                $current_addr += strlen($exported_headers) + 1;
                $translations_table = $exported_headers . chr(0);
 
                foreach($entries as $entry) {
                        $translations_table .= $this->export_translations($entry) . chr(0);
-                       $length = strlen($this->export_translations($entry));
+                       $length = $reader->strlen($this->export_translations($entry));
                        fwrite($fh, pack('VV', $length, $current_addr));
                        $current_addr += $length + 1;
                }
                        fwrite($fh, pack('VV', $length, $current_addr));
                        $current_addr += $length + 1;
                }
@@ -155,46 +157,49 @@ class MO extends Gettext_Translations {
                if (!is_array($header))
                        return false;
 
                if (!is_array($header))
                        return false;
 
-               extract( $header );
-
                // support revision 0 of MO format specs, only
                // support revision 0 of MO format specs, only
-               if ($revision != 0)
+               if ( $header['revision'] != 0 ) {
                        return false;
                        return false;
+               }
 
                // seek to data blocks
 
                // seek to data blocks
-               $reader->seekto($originals_lenghts_addr);
+               $reader->seekto( $header['originals_lenghts_addr'] );
 
                // read originals' indices
 
                // read originals' indices
-               $originals_lengths_length = $translations_lenghts_addr - $originals_lenghts_addr;
-               if ( $originals_lengths_length != $total * 8 )
+               $originals_lengths_length = $header['translations_lenghts_addr'] - $header['originals_lenghts_addr'];
+               if ( $originals_lengths_length != $header['total'] * 8 ) {
                        return false;
                        return false;
+               }
 
                $originals = $reader->read($originals_lengths_length);
 
                $originals = $reader->read($originals_lengths_length);
-               if ( $reader->strlen( $originals ) != $originals_lengths_length )
+               if ( $reader->strlen( $originals ) != $originals_lengths_length ) {
                        return false;
                        return false;
+               }
 
                // read translations' indices
 
                // read translations' indices
-               $translations_lenghts_length = $hash_addr - $translations_lenghts_addr;
-               if ( $translations_lenghts_length != $total * 8 )
+               $translations_lenghts_length = $header['hash_addr'] - $header['translations_lenghts_addr'];
+               if ( $translations_lenghts_length != $header['total'] * 8 ) {
                        return false;
                        return false;
+               }
 
                $translations = $reader->read($translations_lenghts_length);
 
                $translations = $reader->read($translations_lenghts_length);
-               if ( $reader->strlen( $translations ) != $translations_lenghts_length )
+               if ( $reader->strlen( $translations ) != $translations_lenghts_length ) {
                        return false;
                        return false;
+               }
 
                // transform raw data into set of indices
                $originals    = $reader->str_split( $originals, 8 );
                $translations = $reader->str_split( $translations, 8 );
 
                // skip hash table
 
                // transform raw data into set of indices
                $originals    = $reader->str_split( $originals, 8 );
                $translations = $reader->str_split( $translations, 8 );
 
                // skip hash table
-               $strings_addr = $hash_addr + $hash_length * 4;
+               $strings_addr = $header['hash_addr'] + $header['hash_length'] * 4;
 
                $reader->seekto($strings_addr);
 
                $strings = $reader->read_all();
                $reader->close();
 
 
                $reader->seekto($strings_addr);
 
                $strings = $reader->read_all();
                $reader->close();
 
-               for ( $i = 0; $i < $total; $i++ ) {
+               for ( $i = 0; $i < $header['total']; $i++ ) {
                        $o = unpack( "{$endian}length/{$endian}pos", $originals[$i] );
                        $t = unpack( "{$endian}length/{$endian}pos", $translations[$i] );
                        if ( !$o || !$t ) return false;
                        $o = unpack( "{$endian}length/{$endian}pos", $originals[$i] );
                        $t = unpack( "{$endian}length/{$endian}pos", $translations[$i] );
                        if ( !$o || !$t ) return false;
index 106b6da1640dc7129b92a415cab8d8257000b489..5ad316c08e34254bc43fd35ff873cb2820d6258e 100644 (file)
@@ -172,7 +172,7 @@ class Gettext_Translations extends Translations {
        }
 
        /**
        }
 
        /**
-        * Adds parantheses to the inner parts of ternary operators in
+        * Adds parentheses to the inner parts of ternary operators in
         * plural expressions, because PHP evaluates ternary oerators from left to right
         *
         * @param string $expression the expression without parentheses
         * plural expressions, because PHP evaluates ternary oerators from left to right
         *
         * @param string $expression the expression without parentheses
index be462587a28cc031c36a65aea2e3e5bce83940bf..c736e3167d0c9a24e9895dd44f84c79724e50c32 100644 (file)
@@ -23,10 +23,11 @@ function the_ID() {
  * @since 2.1.0
  * @uses $post
  *
  * @since 2.1.0
  * @uses $post
  *
- * @return int
+ * @return int|bool The ID of the current item in the WordPress Loop. False if $post is not set.
  */
 function get_the_ID() {
  */
 function get_the_ID() {
-       return get_post()->ID;
+       $post = get_post();
+       return ! empty( $post ) ? $post->ID : false;
 }
 
 /**
 }
 
 /**
@@ -65,26 +66,34 @@ function the_title($before = '', $after = '', $echo = true) {
  *
  * @since 2.3.0
  *
  *
  * @since 2.3.0
  *
- * @param string|array $args Optional. Override the defaults.
+ * @param string|array $args {
+ *     Title attribute arguments. Optional.
+ *
+ *     @type string  $before Markup to prepend to the title. Default empty.
+ *     @type string  $after  Markup to append to the title. Default empty.
+ *     @type bool    $echo   Whether to echo or return the title. Default true for echo.
+ *     @type WP_Post $post   Current post object to retrieve the title for.
+ * }
  * @return string|null Null on failure or display. String when echo is false.
  */
 function the_title_attribute( $args = '' ) {
  * @return string|null Null on failure or display. String when echo is false.
  */
 function the_title_attribute( $args = '' ) {
-       $defaults = array('before' => '', 'after' =>  '', 'echo' => true, 'post' => get_post() );
-       $r = wp_parse_args($args, $defaults);
-       extract( $r, EXTR_SKIP );
+       $defaults = array( 'before' => '', 'after' =>  '', 'echo' => true, 'post' => get_post() );
+       $r = wp_parse_args( $args, $defaults );
 
 
-       $title = get_the_title( $post );
+       $title = get_the_title( $r['post'] );
 
 
-       if ( strlen($title) == 0 )
+       if ( strlen( $title ) == 0 ) {
                return;
                return;
+       }
 
 
-       $title = $before . $title . $after;
-       $title = esc_attr(strip_tags($title));
+       $title = $r['before'] . $title . $r['after'];
+       $title = esc_attr( strip_tags( $title ) );
 
 
-       if ( $echo )
+       if ( $r['echo'] ) {
                echo $title;
                echo $title;
-       else
+       } else {
                return $title;
                return $title;
+       }
 }
 
 /**
 }
 
 /**
@@ -96,7 +105,7 @@ function the_title_attribute( $args = '' ) {
  *
  * @since 0.71
  *
  *
  * @since 0.71
  *
- * @param int|WP_Post $post Optional. Post ID or post object.
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
  * @return string
  */
 function get_the_title( $post = 0 ) {
  * @return string
  */
 function get_the_title( $post = 0 ) {
@@ -115,10 +124,11 @@ function get_the_title( $post = 0 ) {
                         *
                         * @since 2.8.0
                         *
                         *
                         * @since 2.8.0
                         *
-                        * @param string $prepend Text displayed before the post title.
-                        *                        Default 'Protected: %s'.
+                        * @param string  $prepend Text displayed before the post title.
+                        *                         Default 'Protected: %s'.
+                        * @param WP_Post $post    Current post object.
                         */
                         */
-                       $protected_title_format = apply_filters( 'protected_title_format', __( 'Protected: %s' ) );
+                       $protected_title_format = apply_filters( 'protected_title_format', __( 'Protected: %s' ), $post );
                        $title = sprintf( $protected_title_format, $title );
                } else if ( isset( $post->post_status ) && 'private' == $post->post_status ) {
 
                        $title = sprintf( $protected_title_format, $title );
                } else if ( isset( $post->post_status ) && 'private' == $post->post_status ) {
 
@@ -129,10 +139,11 @@ function get_the_title( $post = 0 ) {
                         *
                         * @since 2.8.0
                         *
                         *
                         * @since 2.8.0
                         *
-                        * @param string $prepend Text displayed before the post title.
-                        *                        Default 'Private: %s'.
+                        * @param string  $prepend Text displayed before the post title.
+                        *                         Default 'Private: %s'.
+                        * @param WP_Post $post    Current post object.
                         */
                         */
-                       $private_title_format = apply_filters( 'private_title_format', __( 'Private: %s' ) );
+                       $private_title_format = apply_filters( 'private_title_format', __( 'Private: %s' ), $post );
                        $title = sprintf( $private_title_format, $title );
                }
        }
                        $title = sprintf( $private_title_format, $title );
                }
        }
@@ -330,6 +341,9 @@ function get_the_excerpt( $deprecated = '' ) {
                _deprecated_argument( __FUNCTION__, '2.3' );
 
        $post = get_post();
                _deprecated_argument( __FUNCTION__, '2.3' );
 
        $post = get_post();
+       if ( empty( $post ) ) {
+               return '';
+       }
 
        if ( post_password_required() ) {
                return __( 'There is no excerpt because this is a protected post.' );
 
        if ( post_password_required() ) {
                return __( 'There is no excerpt because this is a protected post.' );
@@ -422,8 +436,13 @@ function get_post_class( $class = '', $post_id = null ) {
        }
 
        // sticky for Sticky Posts
        }
 
        // sticky for Sticky Posts
-       if ( is_sticky($post->ID) && is_home() && !is_paged() )
-               $classes[] = 'sticky';
+       if ( is_sticky( $post->ID ) ) {
+               if ( is_home() && ! is_paged() ) {
+                       $classes[] = 'sticky';
+               } elseif ( is_admin() ) {
+                       $classes[] = 'status-sticky';
+               }
+       }
 
        // hentry for hAtom compliance
        $classes[] = 'hentry';
 
        // hentry for hAtom compliance
        $classes[] = 'hentry';
@@ -463,7 +482,9 @@ function get_post_class( $class = '', $post_id = null ) {
         * @param string $class   A comma-separated list of additional classes added to the post.
         * @param int    $post_id The post ID.
         */
         * @param string $class   A comma-separated list of additional classes added to the post.
         * @param int    $post_id The post ID.
         */
-       return apply_filters( 'post_class', $classes, $class, $post->ID );
+       $classes = apply_filters( 'post_class', $classes, $class, $post->ID );
+
+       return array_unique( $classes );
 }
 
 /**
 }
 
 /**
@@ -584,8 +605,9 @@ function get_body_class( $class = '' ) {
 
                $classes[] = 'page-id-' . $page_id;
 
 
                $classes[] = 'page-id-' . $page_id;
 
-               if ( $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'page' AND post_status = 'publish' LIMIT 1", $page_id) ) )
+               if ( get_pages( array( 'parent' => $page_id, 'number' => 1 ) ) ) {
                        $classes[] = 'page-parent';
                        $classes[] = 'page-parent';
+               }
 
                if ( $post->post_parent ) {
                        $classes[] = 'page-child';
 
                if ( $post->post_parent ) {
                        $classes[] = 'page-child';
@@ -612,10 +634,10 @@ function get_body_class( $class = '' ) {
 
        $page = $wp_query->get( 'page' );
 
 
        $page = $wp_query->get( 'page' );
 
-       if ( !$page || $page < 2)
+       if ( ! $page || $page < 2 )
                $page = $wp_query->get( 'paged' );
 
                $page = $wp_query->get( 'paged' );
 
-       if ( $page && $page > 1 ) {
+       if ( $page && $page > 1 && ! is_404() ) {
                $classes[] = 'paged-' . $page;
 
                if ( is_single() )
                $classes[] = 'paged-' . $page;
 
                if ( is_single() )
@@ -655,7 +677,9 @@ function get_body_class( $class = '' ) {
         * @param array  $classes An array of body classes.
         * @param string $class   A comma-separated list of additional classes added to the body.
         */
         * @param array  $classes An array of body classes.
         * @param string $class   A comma-separated list of additional classes added to the body.
         */
-       return apply_filters( 'body_class', $classes, $class );
+       $classes = apply_filters( 'body_class', $classes, $class );
+
+       return array_unique( $classes );
 }
 
 /**
 }
 
 /**
@@ -675,7 +699,7 @@ function post_password_required( $post = null ) {
        if ( ! isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) )
                return true;
 
        if ( ! isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) )
                return true;
 
-       require_once ABSPATH . 'wp-includes/class-phpass.php';
+       require_once ABSPATH . WPINC . '/class-phpass.php';
        $hasher = new PasswordHash( 8, true );
 
        $hash = wp_unslash( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] );
        $hasher = new PasswordHash( 8, true );
 
        $hash = wp_unslash( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] );
@@ -695,33 +719,27 @@ function post_password_required( $post = null ) {
  * Displays page links for paginated posts (i.e. includes the <!--nextpage-->.
  * Quicktag one or more times). This tag must be within The Loop.
  *
  * Displays page links for paginated posts (i.e. includes the <!--nextpage-->.
  * Quicktag one or more times). This tag must be within The Loop.
  *
- * The defaults for overwriting are:
- * 'before' - Default is '<p> Pages:' (string). The html or text to prepend to
- *      each bookmarks.
- * 'after' - Default is '</p>' (string). The html or text to append to each
- *      bookmarks.
- * 'link_before' - Default is '' (string). The html or text to prepend to each
- *      Pages link inside the <a> tag. Also prepended to the current item, which
- *      is not linked.
- * 'link_after' - Default is '' (string). The html or text to append to each
- *      Pages link inside the <a> tag. Also appended to the current item, which
- *      is not linked.
- * 'next_or_number' - Default is 'number' (string). Indicates whether page
- *      numbers should be used. Valid values are number and next.
- * 'separator' - Default is ' ' (string). Text used between pagination links.
- * 'nextpagelink' - Default is 'Next Page' (string). Text for link to next page.
- *      of the bookmark.
- * 'previouspagelink' - Default is 'Previous Page' (string). Text for link to
- *      previous page, if available.
- * 'pagelink' - Default is '%' (String).Format string for page numbers. The % in
- *      the parameter string will be replaced with the page number, so Page %
- *      generates "Page 1", "Page 2", etc. Defaults to %, just the page number.
- * 'echo' - Default is 1 (integer). When not 0, this triggers the HTML to be
- *      echoed and then returned.
- *
  * @since 1.2.0
  *
  * @since 1.2.0
  *
- * @param string|array $args Optional. Overwrite the defaults.
+ * @param string|array $args {
+ *     Optional. Array or string of default arguments.
+ *
+ *     @type string       $before           HTML or text to prepend to each link. Default is '<p> Pages:'.
+ *     @type string       $after            HTML or text to append to each link. Default is '</p>'.
+ *     @type string       $link_before      HTML or text to prepend to each link, inside the <a> tag.
+ *                                          Also prepended to the current item, which is not linked. Default empty.
+ *     @type string       $link_after       HTML or text to append to each Pages link inside the <a> tag.
+ *                                          Also appended to the current item, which is not linked. Default empty.
+ *     @type string       $next_or_number   Indicates whether page numbers should be used. Valid values are number
+ *                                          and next. Default is 'number'.
+ *     @type string       $separator        Text between pagination links. Default is ' '.
+ *     @type string       $nextpagelink     Link text for the next page link, if available. Default is 'Next Page'.
+ *     @type string       $previouspagelink Link text for the previous page link, if available. Default is 'Previous Page'.
+ *     @type string       $pagelink         Format string for page numbers. The % in the parameter string will be
+ *                                          replaced with the page number, so 'Page %' generates "Page 1", "Page 2", etc.
+ *                                          Defaults to '%', just the page number.
+ *     @type int|bool     $echo             Whether to echo or not. Accepts 1|true or 0|false. Default 1|true.
+ * }
  * @return string Formatted output in HTML.
  */
 function wp_link_pages( $args = '' ) {
  * @return string Formatted output in HTML.
  */
 function wp_link_pages( $args = '' ) {
@@ -738,29 +756,28 @@ function wp_link_pages( $args = '' ) {
                'echo'             => 1
        );
 
                'echo'             => 1
        );
 
-       $r = wp_parse_args( $args, $defaults );
+       $params = wp_parse_args( $args, $defaults );
 
        /**
         * Filter the arguments used in retrieving page links for paginated posts.
         *
         * @since 3.0.0
         *
 
        /**
         * Filter the arguments used in retrieving page links for paginated posts.
         *
         * @since 3.0.0
         *
-        * @param array $r An array of arguments for page links for paginated posts.
+        * @param array $params An array of arguments for page links for paginated posts.
         */
         */
-       $r = apply_filters( 'wp_link_pages_args', $r );
-       extract( $r, EXTR_SKIP );
+       $r = apply_filters( 'wp_link_pages_args', $params );
 
        global $page, $numpages, $multipage, $more;
 
        $output = '';
        if ( $multipage ) {
 
        global $page, $numpages, $multipage, $more;
 
        $output = '';
        if ( $multipage ) {
-               if ( 'number' == $next_or_number ) {
-                       $output .= $before;
+               if ( 'number' == $r['next_or_number'] ) {
+                       $output .= $r['before'];
                        for ( $i = 1; $i <= $numpages; $i++ ) {
                        for ( $i = 1; $i <= $numpages; $i++ ) {
-                               $link = $link_before . str_replace( '%', $i, $pagelink ) . $link_after;
-                               if ( $i != $page || ! $more && 1 == $page )
+                               $link = $r['link_before'] . str_replace( '%', $i, $r['pagelink'] ) . $r['link_after'];
+                               if ( $i != $page || ! $more && 1 == $page ) {
                                        $link = _wp_link_page( $i ) . $link . '</a>';
                                        $link = _wp_link_page( $i ) . $link . '</a>';
-
+                               }
                                /**
                                 * Filter the HTML output of individual page number links.
                                 *
                                /**
                                 * Filter the HTML output of individual page number links.
                                 *
@@ -770,28 +787,28 @@ function wp_link_pages( $args = '' ) {
                                 * @param int    $i    Page number for paginated posts' page links.
                                 */
                                $link = apply_filters( 'wp_link_pages_link', $link, $i );
                                 * @param int    $i    Page number for paginated posts' page links.
                                 */
                                $link = apply_filters( 'wp_link_pages_link', $link, $i );
-                               $output .= $separator . $link;
+                               $output .= $r['separator'] . $link;
                        }
                        }
-                       $output .= $after;
+                       $output .= $r['after'];
                } elseif ( $more ) {
                } elseif ( $more ) {
-                       $output .= $before;
-                       $i = $page - 1;
-                       if ( $i ) {
-                               $link = _wp_link_page( $i ) . $link_before . $previouspagelink . $link_after . '</a>';
+                       $output .= $r['before'];
+                       $prev = $page - 1;
+                       if ( $prev ) {
+                               $link = _wp_link_page( $prev ) . $r['link_before'] . $r['previouspagelink'] . $r['link_after'] . '</a>';
 
                                /** This filter is documented in wp-includes/post-template.php */
 
                                /** This filter is documented in wp-includes/post-template.php */
-                               $link = apply_filters( 'wp_link_pages_link', $link, $i );
-                               $output .= $separator . $link;
+                               $link = apply_filters( 'wp_link_pages_link', $link, $prev );
+                               $output .= $r['separator'] . $link;
                        }
                        }
-                       $i = $page + 1;
-                       if ( $i <= $numpages ) {
-                               $link = _wp_link_page( $i ) . $link_before . $nextpagelink . $link_after . '</a>';
+                       $next = $page + 1;
+                       if ( $next <= $numpages ) {
+                               $link = _wp_link_page( $next ) . $r['link_before'] . $r['nextpagelink'] . $r['link_after'] . '</a>';
 
                                /** This filter is documented in wp-includes/post-template.php */
 
                                /** This filter is documented in wp-includes/post-template.php */
-                               $link = apply_filters( 'wp_link_pages_link', $link, $i );
-                               $output .= $separator . $link;
+                               $link = apply_filters( 'wp_link_pages_link', $link, $next );
+                               $output .= $r['separator'] . $link;
                        }
                        }
-                       $output .= $after;
+                       $output .= $r['after'];
                }
        }
 
                }
        }
 
@@ -803,12 +820,12 @@ function wp_link_pages( $args = '' ) {
         * @param string $output HTML output of paginated posts' page links.
         * @param array  $args   An array of arguments.
         */
         * @param string $output HTML output of paginated posts' page links.
         * @param array  $args   An array of arguments.
         */
-       $output = apply_filters( 'wp_link_pages', $output, $args );
+       $html = apply_filters( 'wp_link_pages', $output, $args );
 
 
-       if ( $echo )
-               echo $output;
-
-       return $output;
+       if ( $r['echo'] ) {
+               echo $html;
+       }
+       return $html;
 }
 
 /**
 }
 
 /**
@@ -918,7 +935,7 @@ function the_meta() {
  * @param array|string $args Optional. Override default arguments.
  * @return string HTML content, if not displaying.
  */
  * @param array|string $args Optional. Override default arguments.
  * @return string HTML content, if not displaying.
  */
-function wp_dropdown_pages($args = '') {
+function wp_dropdown_pages( $args = '' ) {
        $defaults = array(
                'depth' => 0, 'child_of' => 0,
                'selected' => 0, 'echo' => 1,
        $defaults = array(
                'depth' => 0, 'child_of' => 0,
                'selected' => 0, 'echo' => 1,
@@ -928,21 +945,23 @@ function wp_dropdown_pages($args = '') {
        );
 
        $r = wp_parse_args( $args, $defaults );
        );
 
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
 
 
-       $pages = get_pages($r);
+       $pages = get_pages( $r );
        $output = '';
        // Back-compat with old system where both id and name were based on $name argument
        $output = '';
        // Back-compat with old system where both id and name were based on $name argument
-       if ( empty($id) )
-               $id = $name;
-
-       if ( ! empty($pages) ) {
-               $output = "<select name='" . esc_attr( $name ) . "' id='" . esc_attr( $id ) . "'>\n";
-               if ( $show_option_no_change )
-                       $output .= "\t<option value=\"-1\">$show_option_no_change</option>";
-               if ( $show_option_none )
-                       $output .= "\t<option value=\"" . esc_attr($option_none_value) . "\">$show_option_none</option>\n";
-               $output .= walk_page_dropdown_tree($pages, $depth, $r);
+       if ( empty( $r['id'] ) ) {
+               $r['id'] = $r['name'];
+       }
+
+       if ( ! empty( $pages ) ) {
+               $output = "<select name='" . esc_attr( $r['name'] ) . "' id='" . esc_attr( $r['id'] ) . "'>\n";
+               if ( $r['show_option_no_change'] ) {
+                       $output .= "\t<option value=\"-1\">" . $r['show_option_no_change'] . "</option>\n";
+               }
+               if ( $r['show_option_none'] ) {
+                       $output .= "\t<option value=\"" . esc_attr( $r['option_none_value'] ) . '">' . $r['show_option_none'] . "</option>\n";
+               }
+               $output .= walk_page_dropdown_tree( $pages, $r['depth'], $r );
                $output .= "</select>\n";
        }
 
                $output .= "</select>\n";
        }
 
@@ -953,12 +972,12 @@ function wp_dropdown_pages($args = '') {
         *
         * @param string $output HTML output for drop down list of pages.
         */
         *
         * @param string $output HTML output for drop down list of pages.
         */
-       $output = apply_filters( 'wp_dropdown_pages', $output );
-
-       if ( $echo )
-               echo $output;
+       $html = apply_filters( 'wp_dropdown_pages', $output );
 
 
-       return $output;
+       if ( $r['echo'] ) {
+               echo $html;
+       }
+       return $html;
 }
 
 /**
 }
 
 /**
@@ -966,30 +985,56 @@ function wp_dropdown_pages($args = '') {
  *
  * @since 1.5.0
  *
  *
  * @since 1.5.0
  *
- * @param array|string $args Optional. Override default arguments.
- * @return string HTML content, if not displaying.
+ * @see get_pages()
+ *
+ * @param array|string $args {
+ *     Array or string of arguments. Optional.
+ *
+ *     @type int    $child_of     Display only the sub-pages of a single page by ID. Default 0 (all pages).
+ *     @type string $authors      Comma-separated list of author IDs. Default empty (all authors).
+ *     @type string $date_format  PHP date format to use for the listed pages. Relies on the 'show_date' parameter.
+ *                                Default is the value of 'date_format' option.
+ *     @type int    $depth        Number of levels in the hierarchy of pages to include in the generated list.
+ *                                Accepts -1 (any depth), 0 (all pages), 1 (top-level pages only), and n (pages to
+ *                                the given n depth). Default 0.
+ *     @type bool   $echo         Whether or not to echo the list of pages. Default true.
+ *     @type string $exclude      Comma-separated list of page IDs to exclude. Default empty.
+ *     @type array  $include      Comma-separated list of page IDs to include. Default empty.
+ *     @type string $link_after   Text or HTML to follow the page link label. Default null.
+ *     @type string $link_before  Text or HTML to precede the page link label. Default null.
+ *     @type string $post_type    Post type to query for. Default 'page'.
+ *     @type string $post_status  Comma-separated list of post statuses to include. Default 'publish'.
+ *     @type string $show_date   Whether to display the page publish or modified date for each page. Accepts
+ *                                'modified' or any other value. An empty value hides the date. Default empty.
+ *     @type string $sort_column  Comma-separated list of column names to sort the pages by. Accepts 'post_author',
+ *                                'post_date', 'post_title', 'post_name', 'post_modified', 'post_modified_gmt',
+ *                                'menu_order', 'post_parent', 'ID', 'rand', or 'comment_count'. Default 'post_title'.
+ *     @type string $title_li     List heading. Passing a null or empty value will result in no heading, and the list
+ *                                will not be wrapped with unordered list `<ul>` tags. Default 'Pages'.
+ *     @type Walker $walker       Walker instance to use for listing pages. Default empty (Walker_Page).
+ * }
+ * @return string HTML list of pages.
  */
  */
-function wp_list_pages($args = '') {
+function wp_list_pages( $args = '' ) {
        $defaults = array(
                'depth' => 0, 'show_date' => '',
        $defaults = array(
                'depth' => 0, 'show_date' => '',
-               'date_format' => get_option('date_format'),
+               'date_format' => get_option( 'date_format' ),
                'child_of' => 0, 'exclude' => '',
                'child_of' => 0, 'exclude' => '',
-               'title_li' => __('Pages'), 'echo' => 1,
+               'title_li' => __( 'Pages' ), 'echo' => 1,
                'authors' => '', 'sort_column' => 'menu_order, post_title',
                'link_before' => '', 'link_after' => '', 'walker' => '',
        );
 
        $r = wp_parse_args( $args, $defaults );
                'authors' => '', 'sort_column' => 'menu_order, post_title',
                'link_before' => '', 'link_after' => '', 'walker' => '',
        );
 
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
 
        $output = '';
        $current_page = 0;
 
        // sanitize, mostly to keep spaces out
 
        $output = '';
        $current_page = 0;
 
        // sanitize, mostly to keep spaces out
-       $r['exclude'] = preg_replace('/[^0-9,]/', '', $r['exclude']);
+       $r['exclude'] = preg_replace( '/[^0-9,]/', '', $r['exclude'] );
 
        // Allow plugins to filter an array of excluded pages (but don't put a nullstring into the array)
 
        // Allow plugins to filter an array of excluded pages (but don't put a nullstring into the array)
-       $exclude_array = ( $r['exclude'] ) ? explode(',', $r['exclude']) : array();
+       $exclude_array = ( $r['exclude'] ) ? explode( ',', $r['exclude'] ) : array();
 
        /**
         * Filter the array of pages to exclude from the pages list.
 
        /**
         * Filter the array of pages to exclude from the pages list.
@@ -1002,12 +1047,12 @@ function wp_list_pages($args = '') {
 
        // Query pages.
        $r['hierarchical'] = 0;
 
        // Query pages.
        $r['hierarchical'] = 0;
-       $pages = get_pages($r);
+       $pages = get_pages( $r );
 
 
-       if ( !empty($pages) ) {
-               if ( $r['title_li'] )
+       if ( ! empty( $pages ) ) {
+               if ( $r['title_li'] ) {
                        $output .= '<li class="pagenav">' . $r['title_li'] . '<ul>';
                        $output .= '<li class="pagenav">' . $r['title_li'] . '<ul>';
-
+               }
                global $wp_query;
                if ( is_page() || is_attachment() || $wp_query->is_posts_page ) {
                        $current_page = get_queried_object_id();
                global $wp_query;
                if ( is_page() || is_attachment() || $wp_query->is_posts_page ) {
                        $current_page = get_queried_object_id();
@@ -1018,10 +1063,11 @@ function wp_list_pages($args = '') {
                        }
                }
 
                        }
                }
 
-               $output .= walk_page_tree($pages, $r['depth'], $current_page, $r);
+               $output .= walk_page_tree( $pages, $r['depth'], $current_page, $r );
 
 
-               if ( $r['title_li'] )
+               if ( $r['title_li'] ) {
                        $output .= '</ul></li>';
                        $output .= '</ul></li>';
+               }
        }
 
        /**
        }
 
        /**
@@ -1034,12 +1080,13 @@ function wp_list_pages($args = '') {
         * @param string $output HTML output of the pages list.
         * @param array  $r      An array of page-listing arguments.
         */
         * @param string $output HTML output of the pages list.
         * @param array  $r      An array of page-listing arguments.
         */
-       $output = apply_filters( 'wp_list_pages', $output, $r );
+       $html = apply_filters( 'wp_list_pages', $output, $r );
 
 
-       if ( $r['echo'] )
-               echo $output;
-       else
-               return $output;
+       if ( $r['echo'] ) {
+               echo $html;
+       } else {
+               return $html;
+       }
 }
 
 /**
 }
 
 /**
@@ -1049,23 +1096,22 @@ function wp_list_pages($args = '') {
  * wp_list_pages()} function. Check that function for more info on those
  * arguments.
  *
  * wp_list_pages()} function. Check that function for more info on those
  * arguments.
  *
- * <ul>
- * <li><strong>sort_column</strong> - How to sort the list of pages. Defaults
- * to 'menu_order, post_title'. Use column for posts table.</li>
- * <li><strong>menu_class</strong> - Class to use for the div ID which contains
- * the page list. Defaults to 'menu'.</li>
- * <li><strong>echo</strong> - Whether to echo list or return it. Defaults to
- * echo.</li>
- * <li><strong>link_before</strong> - Text before show_home argument text.</li>
- * <li><strong>link_after</strong> - Text after show_home argument text.</li>
- * <li><strong>show_home</strong> - If you set this argument, then it will
- * display the link to the home page. The show_home argument really just needs
- * to be set to the value of the text of the link.</li>
- * </ul>
- *
  * @since 2.7.0
  *
  * @since 2.7.0
  *
- * @param array|string $args
+ * @param array|string $args {
+ *     Optional. Arguments to generate a page menu. {@see wp_list_pages()}
+ *     for additional arguments.
+ *
+ * @type string     $sort_column How to short the list of pages. Accepts post column names.
+ *                               Default 'menu_order, post_title'.
+ * @type string     $menu_class  Class to use for the div ID containing the page list. Default 'menu'.
+ * @type bool       $echo        Whether to echo the list or return it. Accepts true (echo) or false (return).
+ *                               Default true.
+ * @type string     $link_before The HTML or text to prepend to $show_home text. Default empty.
+ * @type string     $link_after  The HTML or text to append to $show_home text. Default empty.
+ * @type int|string $show_home   Whether to display the link to the home page. Can just enter the text
+ *                               you'd like shown for the home link. 1|true defaults to 'Home'.
+ * }
  * @return string html menu
  */
 function wp_page_menu( $args = array() ) {
  * @return string html menu
  */
 function wp_page_menu( $args = array() ) {
@@ -1189,7 +1235,7 @@ class Walker_Page extends Walker {
         * @since 2.1.0
         * @var string
         */
         * @since 2.1.0
         * @var string
         */
-       var $tree_type = 'page';
+       public $tree_type = 'page';
 
        /**
         * @see Walker::$db_fields
 
        /**
         * @see Walker::$db_fields
@@ -1197,7 +1243,7 @@ class Walker_Page extends Walker {
         * @todo Decouple this.
         * @var array
         */
         * @todo Decouple this.
         * @var array
         */
-       var $db_fields = array ('parent' => 'post_parent', 'id' => 'ID');
+       public $db_fields = array ('parent' => 'post_parent', 'id' => 'ID');
 
        /**
         * @see Walker::start_lvl()
 
        /**
         * @see Walker::start_lvl()
@@ -1207,7 +1253,7 @@ class Walker_Page extends Walker {
         * @param int $depth Depth of page. Used for padding.
         * @param array $args
         */
         * @param int $depth Depth of page. Used for padding.
         * @param array $args
         */
-       function start_lvl( &$output, $depth = 0, $args = array() ) {
+       public function start_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat("\t", $depth);
                $output .= "\n$indent<ul class='children'>\n";
        }
                $indent = str_repeat("\t", $depth);
                $output .= "\n$indent<ul class='children'>\n";
        }
@@ -1220,7 +1266,7 @@ class Walker_Page extends Walker {
         * @param int $depth Depth of page. Used for padding.
         * @param array $args
         */
         * @param int $depth Depth of page. Used for padding.
         * @param array $args
         */
-       function end_lvl( &$output, $depth = 0, $args = array() ) {
+       public function end_lvl( &$output, $depth = 0, $args = array() ) {
                $indent = str_repeat("\t", $depth);
                $output .= "$indent</ul>\n";
        }
                $indent = str_repeat("\t", $depth);
                $output .= "$indent</ul>\n";
        }
@@ -1235,26 +1281,29 @@ class Walker_Page extends Walker {
         * @param int $current_page Page ID.
         * @param array $args
         */
         * @param int $current_page Page ID.
         * @param array $args
         */
-       function start_el( &$output, $page, $depth = 0, $args = array(), $current_page = 0 ) {
-               if ( $depth )
-                       $indent = str_repeat("\t", $depth);
-               else
+       public function start_el( &$output, $page, $depth = 0, $args = array(), $current_page = 0 ) {
+               if ( $depth ) {
+                       $indent = str_repeat( "\t", $depth );
+               } else {
                        $indent = '';
                        $indent = '';
+               }
 
 
-               extract($args, EXTR_SKIP);
-               $css_class = array('page_item', 'page-item-'.$page->ID);
+               $css_class = array( 'page_item', 'page-item-' . $page->ID );
 
 
-               if( isset( $args['pages_with_children'][ $page->ID ] ) )
+               if ( isset( $args['pages_with_children'][ $page->ID ] ) ) {
                        $css_class[] = 'page_item_has_children';
                        $css_class[] = 'page_item_has_children';
+               }
 
 
-               if ( !empty($current_page) ) {
+               if ( ! empty( $current_page ) ) {
                        $_current_page = get_post( $current_page );
                        $_current_page = get_post( $current_page );
-                       if ( in_array( $page->ID, $_current_page->ancestors ) )
+                       if ( in_array( $page->ID, $_current_page->ancestors ) ) {
                                $css_class[] = 'current_page_ancestor';
                                $css_class[] = 'current_page_ancestor';
-                       if ( $page->ID == $current_page )
+                       }
+                       if ( $page->ID == $current_page ) {
                                $css_class[] = 'current_page_item';
                                $css_class[] = 'current_page_item';
-                       elseif ( $_current_page && $page->ID == $_current_page->post_parent )
+                       } elseif ( $_current_page && $page->ID == $_current_page->post_parent ) {
                                $css_class[] = 'current_page_parent';
                                $css_class[] = 'current_page_parent';
+                       }
                } elseif ( $page->ID == get_option('page_for_posts') ) {
                        $css_class[] = 'current_page_parent';
                }
                } elseif ( $page->ID == get_option('page_for_posts') ) {
                        $css_class[] = 'current_page_parent';
                }
@@ -1273,21 +1322,34 @@ class Walker_Page extends Walker {
                 * @param array   $args         An array of arguments.
                 * @param int     $current_page ID of the current page.
                 */
                 * @param array   $args         An array of arguments.
                 * @param int     $current_page ID of the current page.
                 */
-               $css_class = implode( ' ', apply_filters( 'page_css_class', $css_class, $page, $depth, $args, $current_page ) );
+               $css_classes = implode( ' ', apply_filters( 'page_css_class', $css_class, $page, $depth, $args, $current_page ) );
 
 
-               if ( '' === $page->post_title )
+               if ( '' === $page->post_title ) {
                        $page->post_title = sprintf( __( '#%d (no title)' ), $page->ID );
                        $page->post_title = sprintf( __( '#%d (no title)' ), $page->ID );
+               }
 
 
-               /** This filter is documented in wp-includes/post-template.php */
-               $output .= $indent . '<li class="' . $css_class . '"><a href="' . get_permalink($page->ID) . '">' . $link_before . apply_filters( 'the_title', $page->post_title, $page->ID ) . $link_after . '</a>';
+               $args['link_before'] = empty( $args['link_before'] ) ? '' : $args['link_before'];
+               $args['link_after'] = empty( $args['link_after'] ) ? '' : $args['link_after'];
 
 
-               if ( !empty($show_date) ) {
-                       if ( 'modified' == $show_date )
+               /** This filter is documented in wp-includes/post-template.php */
+               $output .= $indent . sprintf(
+                       '<li class="%s"><a href="%s">%s%s%s</a>',
+                       $css_classes,
+                       get_permalink( $page->ID ),
+                       $args['link_before'],
+                       apply_filters( 'the_title', $page->post_title, $page->ID ),
+                       $args['link_after']
+               );
+
+               if ( ! empty( $args['show_date'] ) ) {
+                       if ( 'modified' == $args['show_date'] ) {
                                $time = $page->post_modified;
                                $time = $page->post_modified;
-                       else
+                       } else {
                                $time = $page->post_date;
                                $time = $page->post_date;
+                       }
 
 
-                       $output .= " " . mysql2date($date_format, $time);
+                       $date_format = empty( $args['date_format'] ) ? '' : $args['date_format'];
+                       $output .= " " . mysql2date( $date_format, $time );
                }
        }
 
                }
        }
 
@@ -1300,7 +1362,7 @@ class Walker_Page extends Walker {
         * @param int $depth Depth of page. Not Used.
         * @param array $args
         */
         * @param int $depth Depth of page. Not Used.
         * @param array $args
         */
-       function end_el( &$output, $page, $depth = 0, $args = array() ) {
+       public function end_el( &$output, $page, $depth = 0, $args = array() ) {
                $output .= "</li>\n";
        }
 
                $output .= "</li>\n";
        }
 
@@ -1318,7 +1380,7 @@ class Walker_PageDropdown extends Walker {
         * @since 2.1.0
         * @var string
         */
         * @since 2.1.0
         * @var string
         */
-       var $tree_type = 'page';
+       public $tree_type = 'page';
 
        /**
         * @see Walker::$db_fields
 
        /**
         * @see Walker::$db_fields
@@ -1326,7 +1388,7 @@ class Walker_PageDropdown extends Walker {
         * @todo Decouple this
         * @var array
         */
         * @todo Decouple this
         * @var array
         */
-       var $db_fields = array ('parent' => 'post_parent', 'id' => 'ID');
+       public $db_fields = array ('parent' => 'post_parent', 'id' => 'ID');
 
        /**
         * @see Walker::start_el()
 
        /**
         * @see Walker::start_el()
@@ -1338,7 +1400,7 @@ class Walker_PageDropdown extends Walker {
         * @param array $args Uses 'selected' argument for selected page to set selected HTML attribute for option element.
         * @param int $id
         */
         * @param array $args Uses 'selected' argument for selected page to set selected HTML attribute for option element.
         * @param int $id
         */
-       function start_el( &$output, $page, $depth = 0, $args = array(), $id = 0 ) {
+       public function start_el( &$output, $page, $depth = 0, $args = array(), $id = 0 ) {
                $pad = str_repeat('&nbsp;', $depth * 3);
 
                $output .= "\t<option class=\"level-$depth\" value=\"$page->ID\"";
                $pad = str_repeat('&nbsp;', $depth * 3);
 
                $output .= "\t<option class=\"level-$depth\" value=\"$page->ID\"";
@@ -1412,8 +1474,6 @@ function wp_get_attachment_link( $id = 0, $size = 'thumbnail', $permalink = fals
        if ( $permalink )
                $url = get_attachment_link( $_post->ID );
 
        if ( $permalink )
                $url = get_attachment_link( $_post->ID );
 
-       $post_title = esc_attr( $_post->post_title );
-
        if ( $text )
                $link_text = $text;
        elseif ( $size && 'none' != $size )
        if ( $text )
                $link_text = $text;
        elseif ( $size && 'none' != $size )
@@ -1460,6 +1520,9 @@ function prepend_attachment($content) {
                        $atts['width'] = (int) $meta['width'];
                        $atts['height'] = (int) $meta['height'];
                }
                        $atts['width'] = (int) $meta['width'];
                        $atts['height'] = (int) $meta['height'];
                }
+               if ( has_post_thumbnail() ) {
+                       $atts['poster'] = wp_get_attachment_url( get_post_thumbnail_id() );
+               }
                $p = wp_video_shortcode( $atts );
        } elseif ( 0 === strpos( $post->post_mime_type, 'audio' ) ) {
                $p = wp_audio_shortcode( array( 'src' => wp_get_attachment_url() ) );
                $p = wp_video_shortcode( $atts );
        } elseif ( 0 === strpos( $post->post_mime_type, 'audio' ) ) {
                $p = wp_audio_shortcode( array( 'src' => wp_get_attachment_url() ) );
@@ -1492,8 +1555,8 @@ function prepend_attachment($content) {
  * Retrieve protected post password form content.
  *
  * @since 1.0.0
  * Retrieve protected post password form content.
  *
  * @since 1.0.0
- * @uses apply_filters() Calls 'the_password_form' filter on output.
- * @param int|WP_Post $post Optional. A post ID or post object.
+ *
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
  * @return string HTML content for password form for password protected post.
  */
 function get_the_password_form( $post = 0 ) {
  * @return string HTML content for password form for password protected post.
  */
 function get_the_password_form( $post = 0 ) {
@@ -1666,7 +1729,7 @@ function wp_post_revision_title_expanded( $revision, $link = true ) {
  * @uses get_edit_post_link()
  * @uses get_the_author_meta()
  *
  * @uses get_edit_post_link()
  * @uses get_the_author_meta()
  *
- * @param int|WP_Post $post_id Optional. Post ID or post object.
+ * @param int|WP_Post $post_id Optional. Post ID or WP_Post object. Default is global $post.
  * @param string $type 'all' (default), 'revision' or 'autosave'
  * @return null
  */
  * @param string $type 'all' (default), 'revision' or 'autosave'
  * @return null
  */
index d537148d29b157f855391c4a6a05eab35273c71b..d9d48a56fe28d01c9617b67dac2e193490010bc5 100644 (file)
@@ -180,13 +180,13 @@ add_action( 'init', 'create_initial_post_types', 0 ); // highest priority
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param int $attachment_id Attachment ID.
- * @param bool $unfiltered Whether to apply filters.
+ * @param int  $attachment_id Attachment ID.
+ * @param bool $unfiltered    Optional. Whether to apply filters. Default false.
  * @return string|bool The file path to where the attached file should be, false otherwise.
  */
 function get_attached_file( $attachment_id, $unfiltered = false ) {
        $file = get_post_meta( $attachment_id, '_wp_attached_file', true );
  * @return string|bool The file path to where the attached file should be, false otherwise.
  */
 function get_attached_file( $attachment_id, $unfiltered = false ) {
        $file = get_post_meta( $attachment_id, '_wp_attached_file', true );
-       // If the file is relative, prepend upload dir
+       // If the file is relative, prepend upload dir.
        if ( $file && 0 !== strpos($file, '/') && !preg_match('|^.:\\\|', $file) && ( ($uploads = wp_upload_dir()) && false === $uploads['error'] ) )
                $file = $uploads['basedir'] . "/$file";
        if ( $unfiltered )
        if ( $file && 0 !== strpos($file, '/') && !preg_match('|^.:\\\|', $file) && ( ($uploads = wp_upload_dir()) && false === $uploads['error'] ) )
                $file = $uploads['basedir'] . "/$file";
        if ( $unfiltered )
@@ -211,8 +211,8 @@ function get_attached_file( $attachment_id, $unfiltered = false ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int $attachment_id Attachment ID
- * @param string $file File path for the attachment
+ * @param int    $attachment_id Attachment ID.
+ * @param string $file          File path for the attachment.
  * @return bool True on success, false on failure.
  */
 function update_attached_file( $attachment_id, $file ) {
  * @return bool True on success, false on failure.
  */
 function update_attached_file( $attachment_id, $file ) {
@@ -242,8 +242,8 @@ function update_attached_file( $attachment_id, $file ) {
  *
  * @since 2.9.0
  *
  *
  * @since 2.9.0
  *
- * @param string $path Full path to the file
- * @return string relative path on success, unchanged path on failure.
+ * @param string $path Full path to the file.
+ * @return string Relative path on success, unchanged path on failure.
  */
 function _wp_relative_upload_path( $path ) {
        $new_path = $path;
  */
 function _wp_relative_upload_path( $path ) {
        $new_path = $path;
@@ -304,16 +304,18 @@ function _wp_relative_upload_path( $path ) {
  * post types are 'post', 'pages', and 'attachments'. The 'post_status'
  * argument will accept any post status within the write administration panels.
  *
  * post types are 'post', 'pages', and 'attachments'. The 'post_status'
  * argument will accept any post status within the write administration panels.
  *
- * @see get_posts() Has additional arguments that can be replaced.
  * @internal Claims made in the long description might be inaccurate.
  * @internal Claims made in the long description might be inaccurate.
- *
  * @since 2.0.0
  *
  * @since 2.0.0
  *
- * @param mixed $args Optional. User defined arguments for replacing the defaults.
- * @param string $output Optional. Constant for return type, either OBJECT (default), ARRAY_A, ARRAY_N.
- * @return array|bool False on failure and the type will be determined by $output parameter.
+ * @see get_posts()
+ *
+ * @param mixed  $args   Optional. User defined arguments for replacing the defaults. Default empty.
+ * @param string $output Optional. Constant for return type. Accepts OBJECT, ARRAY_A, ARRAY_N.
+ *                       Default OBJECt.
+ * @return array Array of children, where the type of each element is determined by $output parameter.
+ *               Empty array on failure.
  */
  */
-function get_children($args = '', $output = OBJECT) {
+function get_children( $args = '', $output = OBJECT ) {
        $kids = array();
        if ( empty( $args ) ) {
                if ( isset( $GLOBALS['post'] ) ) {
        $kids = array();
        if ( empty( $args ) ) {
                if ( isset( $GLOBALS['post'] ) ) {
@@ -378,8 +380,8 @@ function get_children($args = '', $output = OBJECT) {
  * @param string $post Post content.
  * @return array Post before ('main'), after ('extended'), and custom readmore ('more_text').
  */
  * @param string $post Post content.
  * @return array Post before ('main'), after ('extended'), and custom readmore ('more_text').
  */
-function get_extended($post) {
-       //Match the new style more links
+function get_extended( $post ) {
+       //Match the new style more links.
        if ( preg_match('/<!--more(.*?)?-->/', $post, $matches) ) {
                list($main, $extended) = explode($matches[0], $post, 2);
                $more_text = $matches[1];
        if ( preg_match('/<!--more(.*?)?-->/', $post, $matches) ) {
                list($main, $extended) = explode($matches[0], $post, 2);
                $more_text = $matches[1];
@@ -389,7 +391,7 @@ function get_extended($post) {
                $more_text = '';
        }
 
                $more_text = '';
        }
 
-       // ` leading and trailing whitespace
+       //  leading and trailing whitespace.
        $main = preg_replace('/^[\s]*(.*)[\s]*$/', '\\1', $main);
        $extended = preg_replace('/^[\s]*(.*)[\s]*$/', '\\1', $extended);
        $more_text = preg_replace('/^[\s]*(.*)[\s]*$/', '\\1', $more_text);
        $main = preg_replace('/^[\s]*(.*)[\s]*$/', '\\1', $main);
        $extended = preg_replace('/^[\s]*(.*)[\s]*$/', '\\1', $extended);
        $more_text = preg_replace('/^[\s]*(.*)[\s]*$/', '\\1', $more_text);
@@ -404,12 +406,13 @@ function get_extended($post) {
  * $post, must be given as a variable, since it is passed by reference.
  *
  * @since 1.5.1
  * $post, must be given as a variable, since it is passed by reference.
  *
  * @since 1.5.1
- * @link http://codex.wordpress.org/Function_Reference/get_post
  *
  *
- * @param int|WP_Post $post Optional. Post ID or post object.
- * @param string $output Optional, default is Object. Either OBJECT, ARRAY_A, or ARRAY_N.
- * @param string $filter Optional, default is raw.
- * @return WP_Post|null WP_Post on success or null on failure
+ * @param int|WP_Post $post   Optional. Post ID or post object. Defaults to global $post.
+ * @param string      $output Optional, default is Object. Accepts OBJECT, ARRAY_A, or ARRAY_N.
+ *                            Default OBJECT.
+ * @param string      $filter Optional. Type of filter to apply. Accepts 'raw', 'edit', 'db',
+ *                            or 'display'. Default 'raw'.
+ * @return WP_Post|null WP_Post on success or null on failure.
  */
 function get_post( $post = null, $output = OBJECT, $filter = 'raw' ) {
        if ( empty( $post ) && isset( $GLOBALS['post'] ) )
  */
 function get_post( $post = null, $output = OBJECT, $filter = 'raw' ) {
        if ( empty( $post ) && isset( $GLOBALS['post'] ) )
@@ -626,6 +629,15 @@ final class WP_Post {
         */
        public $filter;
 
         */
        public $filter;
 
+       /**
+        * Retrieve WP_Post instance.
+        *
+        * @static
+        * @access public
+        *
+        * @param int $post_id Post ID.
+        * @return WP_Post|bool Post object, false otherwise.
+        */
        public static function get_instance( $post_id ) {
                global $wpdb;
 
        public static function get_instance( $post_id ) {
                global $wpdb;
 
@@ -650,11 +662,22 @@ final class WP_Post {
                return new WP_Post( $_post );
        }
 
                return new WP_Post( $_post );
        }
 
+       /**
+        * Constructor.
+        *
+        * @param WP_Post $post Post object.
+        */
        public function __construct( $post ) {
                foreach ( get_object_vars( $post ) as $key => $value )
                        $this->$key = $value;
        }
 
        public function __construct( $post ) {
                foreach ( get_object_vars( $post ) as $key => $value )
                        $this->$key = $value;
        }
 
+       /**
+        * Isset-er.
+        *
+        * @param string $key Property to check if set.
+        * @return bool
+        */
        public function __isset( $key ) {
                if ( 'ancestors' == $key )
                        return true;
        public function __isset( $key ) {
                if ( 'ancestors' == $key )
                        return true;
@@ -671,6 +694,12 @@ final class WP_Post {
                return metadata_exists( 'post', $this->ID, $key );
        }
 
                return metadata_exists( 'post', $this->ID, $key );
        }
 
+       /**
+        * Getter.
+        *
+        * @param string $key Key to get.
+        * @return array|mixed
+        */
        public function __get( $key ) {
                if ( 'page_template' == $key && $this->__isset( $key ) ) {
                        return get_post_meta( $this->ID, '_wp_page_template', true );
        public function __get( $key ) {
                if ( 'page_template' == $key && $this->__isset( $key ) ) {
                        return get_post_meta( $this->ID, '_wp_page_template', true );
@@ -696,8 +725,7 @@ final class WP_Post {
                        return wp_list_pluck( $terms, 'name' );
                }
 
                        return wp_list_pluck( $terms, 'name' );
                }
 
-               // Rest of the values need filtering
-
+               // Rest of the values need filtering.
                if ( 'ancestors' == $key )
                        $value = get_post_ancestors( $this );
                else
                if ( 'ancestors' == $key )
                        $value = get_post_ancestors( $this );
                else
@@ -709,6 +737,12 @@ final class WP_Post {
                return $value;
        }
 
                return $value;
        }
 
+       /**
+        * {@Missing Summary}
+        *
+        * @param string $filter Filter.
+        * @return $this|array|bool|object|WP_Post
+        */
        public function filter( $filter ) {
                if ( $this->filter == $filter )
                        return $this;
        public function filter( $filter ) {
                if ( $this->filter == $filter )
                        return $this;
@@ -719,6 +753,11 @@ final class WP_Post {
                return sanitize_post( $this, $filter );
        }
 
                return sanitize_post( $this, $filter );
        }
 
+       /**
+        * Convert object to array.
+        *
+        * @return array Object as array.
+        */
        public function to_array() {
                $post = get_object_vars( $this );
 
        public function to_array() {
                $post = get_object_vars( $this );
 
@@ -770,11 +809,13 @@ function get_post_ancestors( $post ) {
  * supported values are found within those functions.
  *
  * @since 2.3.0
  * supported values are found within those functions.
  *
  * @since 2.3.0
- * @uses sanitize_post_field() See for possible $context values.
  *
  *
- * @param string $field Post field name.
- * @param int|WP_Post $post Post ID or post object.
- * @param string $context Optional. How to filter the field. Default is 'display'.
+ * @see sanitize_post_field()
+ *
+ * @param string      $field   Post field name.
+ * @param int|WP_Post $post    Post ID or post object.
+ * @param string      $context Optional. How to filter the field. Accepts 'raw', 'edit', 'db',
+ *                             or 'display'. Default 'display'.
  * @return string The value of the post field on success, empty string on failure.
  */
 function get_post_field( $field, $post, $context = 'display' ) {
  * @return string The value of the post field on success, empty string on failure.
  */
 function get_post_field( $field, $post, $context = 'display' ) {
@@ -797,10 +838,10 @@ function get_post_field( $field, $post, $context = 'display' ) {
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param int|WP_Post $ID Optional. Post ID or post object.
+ * @param int|WP_Post $ID Optional. Post ID or post object. Default empty.
  * @return string|bool The mime type on success, false on failure.
  */
  * @return string|bool The mime type on success, false on failure.
  */
-function get_post_mime_type($ID = '') {
+function get_post_mime_type( $ID = '' ) {
        $post = get_post($ID);
 
        if ( is_object($post) )
        $post = get_post($ID);
 
        if ( is_object($post) )
@@ -817,10 +858,10 @@ function get_post_mime_type($ID = '') {
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param int|WP_Post $ID Optional. Post ID or post object.
+ * @param int|WP_Post $ID Optional. Post ID or post object. Default empty.
  * @return string|bool Post status on success, false on failure.
  */
  * @return string|bool Post status on success, false on failure.
  */
-function get_post_status($ID = '') {
+function get_post_status( $ID = '' ) {
        $post = get_post($ID);
 
        if ( !is_object($post) )
        $post = get_post($ID);
 
        if ( !is_object($post) )
@@ -830,13 +871,20 @@ function get_post_status($ID = '') {
                if ( 'private' == $post->post_status )
                        return 'private';
 
                if ( 'private' == $post->post_status )
                        return 'private';
 
-               // Unattached attachments are assumed to be published
+               // Unattached attachments are assumed to be published.
                if ( ( 'inherit' == $post->post_status ) && ( 0 == $post->post_parent) )
                        return 'publish';
 
                if ( ( 'inherit' == $post->post_status ) && ( 0 == $post->post_parent) )
                        return 'publish';
 
-               // Inherit status from the parent
-               if ( $post->post_parent && ( $post->ID != $post->post_parent ) )
-                       return get_post_status($post->post_parent);
+               // Inherit status from the parent.
+               if ( $post->post_parent && ( $post->ID != $post->post_parent ) ) {
+                       $parent_post_status = get_post_status( $post->post_parent );
+                       if ( 'trash' == $parent_post_status ) {
+                               return get_post_meta( $post->post_parent, '_wp_trash_meta_status', true );
+                       } else {
+                               return $parent_post_status;
+                       }
+               }
+
        }
 
        return $post->post_status;
        }
 
        return $post->post_status;
@@ -854,10 +902,10 @@ function get_post_status($ID = '') {
  */
 function get_post_statuses() {
        $status = array(
  */
 function get_post_statuses() {
        $status = array(
-               'draft'                 => __('Draft'),
-               'pending'               => __('Pending Review'),
-               'private'               => __('Private'),
-               'publish'               => __('Published')
+               'draft'   => __( 'Draft' ),
+               'pending' => __( 'Pending Review' ),
+               'private' => __( 'Private' ),
+               'publish' => __( 'Published' )
        );
 
        return $status;
        );
 
        return $status;
@@ -875,9 +923,9 @@ function get_post_statuses() {
  */
 function get_page_statuses() {
        $status = array(
  */
 function get_page_statuses() {
        $status = array(
-               'draft'                 => __('Draft'),
-               'private'               => __('Private'),
-               'publish'               => __('Published')
+               'draft'   => __( 'Draft' ),
+               'private' => __( 'Private' ),
+               'publish' => __( 'Published' )
        );
 
        return $status;
        );
 
        return $status;
@@ -890,25 +938,42 @@ function get_page_statuses() {
  * parameters given. The function will accept an array (second optional
  * parameter), along with a string for the post status name.
  *
  * parameters given. The function will accept an array (second optional
  * parameter), along with a string for the post status name.
  *
- *
- * Optional $args contents:
- *
- * label - A descriptive name for the post status marked for translation. Defaults to $post_status.
- * public - Whether posts of this status should be shown in the front end of the site. Defaults to true.
- * exclude_from_search - Whether to exclude posts with this post status from search results. Defaults to false.
- * show_in_admin_all_list - Whether to include posts in the edit listing for their post type
- * show_in_admin_status_list - Show in the list of statuses with post counts at the top of the edit
- *                             listings, e.g. All (12) | Published (9) | My Custom Status (2) ...
- *
  * Arguments prefixed with an _underscore shouldn't be used by plugins and themes.
  *
  * @since 3.0.0
  * @uses $wp_post_statuses Inserts new post status object into the list
  *
  * @param string $post_status Name of the post status.
  * Arguments prefixed with an _underscore shouldn't be used by plugins and themes.
  *
  * @since 3.0.0
  * @uses $wp_post_statuses Inserts new post status object into the list
  *
  * @param string $post_status Name of the post status.
- * @param array|string $args See above description.
+ * @param array|string $args {
+ *     Optional. Array or string of post status arguments.
+ *
+ *     @type bool|string $label                     A descriptive name for the post status marked
+ *                                                  for translation. Defaults to value of $post_status.
+ *     @type bool|array  $label_count               Descriptive text to use for nooped plurals.
+ *                                                  Default array of $label, twice
+ *     @type bool        $exclude_from_search       Whether to exclude posts with this post status
+ *                                                  from search results. Default is value of $internal.
+ *     @type bool        $_builtin                  Whether the status is built-in. Core-use only.
+ *                                                  Default false.
+ *     @type bool        $public                    Whether posts of this status should be shown
+ *                                                  in the front end of the site. Default true.
+ *     @type bool        $internal                  Whether the status is for internal use only.
+ *                                                  Default false.
+ *     @type bool        $protected                 Whether posts with this status should be protected.
+ *                                                  Default false.
+ *     @type bool        $private                   Whether posts with this status should be private.
+ *                                                  Default false.
+ *     @type bool        $publicly_queryable        Whether posts with this status should be publicly-
+ *                                                  queryable. Default is value of $public.
+ *     @type bool        $show_in_admin_all_list    Whether to include posts in the edit listing for
+ *                                                  their post type. Default is value of $internal.
+ *     @type bool        $show_in_admin_status_list Show in the list of statuses with post counts at
+ *                                                  the top of the edit listings,
+ *                                                  e.g. All (12) | Published (9) | My Custom Status (2)
+ *                                                  Default is value of $internal.
+ * }
  */
  */
-function register_post_status($post_status, $args = array()) {
+function register_post_status( $post_status, $args = array() ) {
        global $wp_post_statuses;
 
        if (!is_array($wp_post_statuses))
        global $wp_post_statuses;
 
        if (!is_array($wp_post_statuses))
@@ -934,6 +999,7 @@ function register_post_status($post_status, $args = array()) {
        $post_status = sanitize_key($post_status);
        $args->name = $post_status;
 
        $post_status = sanitize_key($post_status);
        $args->name = $post_status;
 
+       // Set various defaults.
        if ( null === $args->public && null === $args->internal && null === $args->protected && null === $args->private )
                $args->internal = true;
 
        if ( null === $args->public && null === $args->internal && null === $args->protected && null === $args->private )
                $args->internal = true;
 
@@ -973,15 +1039,16 @@ function register_post_status($post_status, $args = array()) {
 }
 
 /**
 }
 
 /**
- * Retrieve a post status object by name
+ * Retrieve a post status object by name.
  *
  * @since 3.0.0
  *
  * @since 3.0.0
- * @uses $wp_post_statuses
- * @see register_post_status
- * @see get_post_statuses
  *
  *
- * @param string $post_status The name of a registered post status
- * @return object A post status object
+ * @global array $wp_post_statuses List of post statuses.
+ *
+ * @see register_post_status()
+ *
+ * @param string $post_status The name of a registered post status.
+ * @return object A post status object.
  */
 function get_post_status_object( $post_status ) {
        global $wp_post_statuses;
  */
 function get_post_status_object( $post_status ) {
        global $wp_post_statuses;
@@ -996,15 +1063,18 @@ function get_post_status_object( $post_status ) {
  * Get a list of all registered post status objects.
  *
  * @since 3.0.0
  * Get a list of all registered post status objects.
  *
  * @since 3.0.0
- * @uses $wp_post_statuses
- * @see register_post_status
- * @see get_post_status_object
- *
- * @param array|string $args An array of key => value arguments to match against the post status objects.
- * @param string $output The type of output to return, either post status 'names' or 'objects'. 'names' is the default.
- * @param string $operator The logical operation to perform. 'or' means only one element
- *  from the array needs to match; 'and' means all elements must match. The default is 'and'.
- * @return array A list of post status names or objects
+ *
+ * @global array $wp_post_statuses List of post statuses.
+ *
+ * @see register_post_status()
+ *
+ * @param array|string $args     Optional. Array or string of post status arguments. Default array.
+ * @param string       $output   Optional. The type of output to return. Accepts post status 'names'
+ *                               or 'objects'. Default 'names'.
+ * @param string       $operator Optional. The logical operation to perform. 'or' means only one element
+ *                               from the array needs to match; 'and' means all elements must match.
+ *                               Default 'and'.
+ * @return array A list of post status names or objects.
  */
 function get_post_stati( $args = array(), $output = 'names', $operator = 'and' ) {
        global $wp_post_statuses;
  */
 function get_post_stati( $args = array(), $output = 'names', $operator = 'and' ) {
        global $wp_post_statuses;
@@ -1020,7 +1090,8 @@ function get_post_stati( $args = array(), $output = 'names', $operator = 'and' )
  * A false return value might also mean that the post type does not exist.
  *
  * @since 3.0.0
  * A false return value might also mean that the post type does not exist.
  *
  * @since 3.0.0
- * @see get_post_type_object
+ *
+ * @see get_post_type_object()
  *
  * @param string $post_type Post type name
  * @return bool Whether post type is hierarchical.
  *
  * @param string $post_type Post type name
  * @return bool Whether post type is hierarchical.
@@ -1034,12 +1105,13 @@ function is_post_type_hierarchical( $post_type ) {
 }
 
 /**
 }
 
 /**
- * Checks if a post type is registered.
+ * Check if a post type is registered.
  *
  * @since 3.0.0
  *
  * @since 3.0.0
- * @uses get_post_type_object()
  *
  *
- * @param string $post_type Post type name
+ * @see get_post_type_object()
+ *
+ * @param string $post_type Post type name.
  * @return bool Whether post type is registered.
  */
 function post_type_exists( $post_type ) {
  * @return bool Whether post type is registered.
  */
 function post_type_exists( $post_type ) {
@@ -1051,7 +1123,7 @@ function post_type_exists( $post_type ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int|WP_Post $post Optional. Post ID or post object.
+ * @param int|WP_Post $post Optional. Post ID or post object. Default is global $post.
  * @return string|bool Post type on success, false on failure.
  */
 function get_post_type( $post = null ) {
  * @return string|bool Post type on success, false on failure.
  */
 function get_post_type( $post = null ) {
@@ -1062,15 +1134,16 @@ function get_post_type( $post = null ) {
 }
 
 /**
 }
 
 /**
- * Retrieve a post type object by name
+ * Retrieve a post type object by name.
  *
  * @since 3.0.0
  *
  * @since 3.0.0
- * @uses $wp_post_types
- * @see register_post_type
- * @see get_post_types
  *
  *
- * @param string $post_type The name of a registered post type
- * @return object A post type object
+ * @global array $wp_post_types List of post types.
+ *
+ * @see register_post_type()
+ *
+ * @param string $post_type The name of a registered post type.
+ * @return object A post type object.
  */
 function get_post_type_object( $post_type ) {
        global $wp_post_types;
  */
 function get_post_type_object( $post_type ) {
        global $wp_post_types;
@@ -1085,14 +1158,19 @@ function get_post_type_object( $post_type ) {
  * Get a list of all registered post type objects.
  *
  * @since 2.9.0
  * Get a list of all registered post type objects.
  *
  * @since 2.9.0
- * @uses $wp_post_types
- * @see register_post_type
- *
- * @param array|string $args An array of key => value arguments to match against the post type objects.
- * @param string $output The type of output to return, either post type 'names' or 'objects'. 'names' is the default.
- * @param string $operator The logical operation to perform. 'or' means only one element
- *  from the array needs to match; 'and' means all elements must match. The default is 'and'.
- * @return array A list of post type names or objects
+ *
+ * @global array $wp_post_types List of post types.
+ *
+ * @see register_post_type()
+ *
+ * @param array|string $args     Optional. An array of key => value arguments to match against
+ *                               the post type objects. Default empty array.
+ * @param string       $output   Optional. The type of output to return. Accepts post type 'names'
+ *                               or 'objects'. Default 'names'.
+ * @param string       $operator Optaionl. The logical operation to perform. 'or' means only one
+ *                               element from the array needs to match; 'and' means all elements
+ *                               must match. Default 'and'.
+ * @return array A list of post type names or objects.
  */
 function get_post_types( $args = array(), $output = 'names', $operator = 'and' ) {
        global $wp_post_types;
  */
 function get_post_types( $args = array(), $output = 'names', $operator = 'and' ) {
        global $wp_post_types;
@@ -1109,91 +1187,111 @@ function get_post_types( $args = array(), $output = 'names', $operator = 'and' )
  * parameters given. The function will accept an array (second optional
  * parameter), along with a string for the post type name.
  *
  * parameters given. The function will accept an array (second optional
  * parameter), along with a string for the post type name.
  *
- * Optional $args contents:
- *
- * - label - Name of the post type shown in the menu. Usually plural. If not set, labels['name'] will be used.
- * - labels - An array of labels for this post type.
- *     * If not set, post labels are inherited for non-hierarchical types and page labels for hierarchical ones.
- *     * You can see accepted values in {@link get_post_type_labels()}.
- * - description - A short descriptive summary of what the post type is. Defaults to blank.
- * - public - Whether a post type is intended for use publicly either via the admin interface or by front-end users.
- *     * Defaults to false.
- *     * While the default settings of exclude_from_search, publicly_queryable, show_ui, and show_in_nav_menus are
- *       inherited from public, each does not rely on this relationship and controls a very specific intention.
- * - hierarchical - Whether the post type is hierarchical (e.g. page). Defaults to false.
- * - exclude_from_search - Whether to exclude posts with this post type from front end search results.
- *     * If not set, the opposite of public's current value is used.
- * - publicly_queryable - Whether queries can be performed on the front end for the post type as part of parse_request().
- *     * ?post_type={post_type_key}
- *     * ?{post_type_key}={single_post_slug}
- *     * ?{post_type_query_var}={single_post_slug}
- *     * If not set, the default is inherited from public.
- * - show_ui - Whether to generate a default UI for managing this post type in the admin.
- *     * If not set, the default is inherited from public.
- * - show_in_menu - Where to show the post type in the admin menu.
- *     * If true, the post type is shown in its own top level menu.
- *     * If false, no menu is shown
- *     * If a string of an existing top level menu (eg. 'tools.php' or 'edit.php?post_type=page'), the post type will
- *       be placed as a sub menu of that.
- *     * show_ui must be true.
- *     * If not set, the default is inherited from show_ui
- * - show_in_nav_menus - Makes this post type available for selection in navigation menus.
- *     * If not set, the default is inherited from public.
- * - show_in_admin_bar - Makes this post type available via the admin bar.
- *     * If not set, the default is inherited from show_in_menu
- * - menu_position - The position in the menu order the post type should appear.
- *     * show_in_menu must be true
- *     * Defaults to null, which places it at the bottom of its area.
- * - menu_icon - The url to the icon to be used for this menu. Defaults to use the posts icon.
- *     * Pass a base64-encoded SVG using a data URI, which will be colored to match the color scheme.
- *      This should begin with 'data:image/svg+xml;base64,'.
- *     * Pass the name of a Dashicons helper class to use a font icon, e.g. 'dashicons-chart-pie'.
- *     * Pass 'none' to leave div.wp-menu-image empty so an icon can be added via CSS.
- * - capability_type - The string to use to build the read, edit, and delete capabilities. Defaults to 'post'.
- *     * May be passed as an array to allow for alternative plurals when using this argument as a base to construct the
- *       capabilities, e.g. array('story', 'stories').
- * - capabilities - Array of capabilities for this post type.
- *     * By default the capability_type is used as a base to construct capabilities.
- *     * You can see accepted values in {@link get_post_type_capabilities()}.
- * - map_meta_cap - Whether to use the internal default meta capability handling. Defaults to false.
- * - supports - An alias for calling add_post_type_support() directly. Defaults to title and editor.
- *     * See {@link add_post_type_support()} for documentation.
- * - register_meta_box_cb - Provide a callback function that sets up the meta boxes
- *     for the edit form. Do remove_meta_box() and add_meta_box() calls in the callback.
- * - taxonomies - An array of taxonomy identifiers that will be registered for the post type.
- *     * Default is no taxonomies.
- *     * Taxonomies can be registered later with register_taxonomy() or register_taxonomy_for_object_type().
- * - has_archive - True to enable post type archives. Default is false.
- *     * Will generate the proper rewrite rules if rewrite is enabled.
- * - rewrite - Triggers the handling of rewrites for this post type. Defaults to true, using $post_type as slug.
- *     * To prevent rewrite, set to false.
- *     * To specify rewrite rules, an array can be passed with any of these keys
- *         * 'slug' => string Customize the permastruct slug. Defaults to $post_type key
- *         * 'with_front' => bool Should the permastruct be prepended with WP_Rewrite::$front. Defaults to true.
- *         * 'feeds' => bool Should a feed permastruct be built for this post type. Inherits default from has_archive.
- *         * 'pages' => bool Should the permastruct provide for pagination. Defaults to true.
- *         * 'ep_mask' => const Assign an endpoint mask.
- *             * If not specified and permalink_epmask is set, inherits from permalink_epmask.
- *             * If not specified and permalink_epmask is not set, defaults to EP_PERMALINK
- * - query_var - Sets the query_var key for this post type. Defaults to $post_type key
- *     * If false, a post type cannot be loaded at ?{query_var}={post_slug}
- *     * If specified as a string, the query ?{query_var_string}={post_slug} will be valid.
- * - can_export - Allows this post type to be exported. Defaults to true.
- * - delete_with_user - Whether to delete posts of this type when deleting a user.
- *     * If true, posts of this type belonging to the user will be moved to trash when then user is deleted.
- *     * If false, posts of this type belonging to the user will *not* be trashed or deleted.
- *     * If not set (the default), posts are trashed if post_type_supports('author'). Otherwise posts are not trashed or deleted.
- * - _builtin - true if this post type is a native or "built-in" post_type. THIS IS FOR INTERNAL USE ONLY!
- * - _edit_link - URL segement to use for edit link of this post type. THIS IS FOR INTERNAL USE ONLY!
- *
  * @since 2.9.0
  * @since 2.9.0
- * @uses $wp_post_types Inserts new post type object into the list
- * @uses $wp_rewrite Gets default feeds
- * @uses $wp Adds query vars
+ *
+ * @global array      $wp_post_types List of post types.
+ * @global WP_Rewrite $wp_rewrite    Used for default feeds.
+ * @global WP         $wp            Used to add query vars.
  *
  * @param string $post_type Post type key, must not exceed 20 characters.
  *
  * @param string $post_type Post type key, must not exceed 20 characters.
- * @param array|string $args See optional args description above.
- * @return object|WP_Error the registered post type object, or an error object.
+ * @param array|string $args {
+ *     Array or string of arguments for registering a post type.
+ *
+ *     @type string      $label                Name of the post type shown in the menu. Usually plural.
+ *                                             Default is value of $labels['name'].
+ *     @type array       $labels               An array of labels for this post type. If not set, post
+ *                                             labels are inherited for non-hierarchical types and page
+ *                                             labels for hierarchical ones. {@see get_post_type_labels()}.
+ *     @type string      $description          A short descriptive summary of what the post type is.
+ *                                             Default empty.
+ *     @type bool        $public               Whether a post type is intended for use publicly either via
+ *                                             the admin interface or by front-end users. While the default
+ *                                             settings of $exclude_from_search, $publicly_queryable, $show_ui,
+ *                                             and $show_in_nav_menus are inherited from public, each does not
+ *                                             rely on this relationship and controls a very specific intention.
+ *                                             Default false.
+ *     @type bool        $hierarchical         Whether the post type is hierarchical (e.g. page). Default false.
+ *     @type bool        $exclude_from_search  Whether to exclude posts with this post type from front end search
+ *                                             results. Default is the opposite value of $public.
+ *     @type bool        $publicly_queryable   Whether queries can be performed on the front end for the post type
+ *                                             as part of {@see parse_request()}. Endpoints would include:
+ *                                             * ?post_type={post_type_key}
+ *                                             * ?{post_type_key}={single_post_slug}
+ *                                             * ?{post_type_query_var}={single_post_slug}
+ *                                             If not set, the default is inherited from $public.
+ *     @type bool        $show_ui              Whether to generate a default UI for managing this post type in the
+ *                                             admin. Default is value of $public.
+ *     @type bool        $show_in_menu         Where to show the post type in the admin menu. To work, $show_ui
+ *                                             must be true. If true, the post type is shown in its own top level
+ *                                             menu. If false, no menu is shown. If a string of an existing top
+ *                                             level menu (eg. 'tools.php' or 'edit.php?post_type=page'), the post
+ *                                             type will be placed as a sub-menu of that.
+ *                                             Default is value of $show_ui.
+ *     @type bool        $show_in_nav_menus    Makes this post type available for selection in navigation menus.
+ *                                             Default is value $public.
+ *     @type bool        $show_in_admin_bar    Makes this post type available via the admin bar. Default is value
+ *                                             of $show_in_menu.
+ *     @type int         $menu_position        The position in the menu order the post type should appear. To work,
+ *                                             $show_in_menu must be true. Default null (at the bottom).
+ *     @type string      $menu_icon            The url to the icon to be used for this menu. Pass a base64-encoded
+ *                                             SVG using a data URI, which will be colored to match the color scheme
+ *                                             -- this should begin with 'data:image/svg+xml;base64,'. Pass the name
+ *                                             of a Dashicons helper class to use a font icon, e.g.
+ *                                             'dashicons-chart-pie'. Pass 'none' to leave div.wp-menu-image empty
+ *                                             so an icon can be added via CSS. Defaults to use the posts icon.
+ *     @type string      $capability_type      The string to use to build the read, edit, and delete capabilities.
+ *                                             May be passed as an array to allow for alternative plurals when using
+ *                                             this argument as a base to construct the capabilities, e.g.
+ *                                             array('story', 'stories'). Default 'post'.
+ *     @type array       $capabilities         Array of capabilities for this post type. $capability_type is used
+ *                                             as a base to construct capabilities by default.
+ *                                             {@see get_post_type_capabilities()}.
+ *     @type bool        $map_meta_cap         Whether to use the internal default meta capability handling.
+ *                                             Default false.
+ *     @type array       $supports             An alias for calling {@see add_post_type_support()} directly.
+ *                                             Defaults to array containing 'title' & 'editor'.
+ *     @type callback    $register_meta_box_cb Provide a callback function that sets up the meta boxes for the
+ *                                             edit form. Do remove_meta_box() and add_meta_box() calls in the
+ *                                             callback. Default null.
+ *     @type array       $taxonomies           An array of taxonomy identifiers that will be registered for the
+ *                                             post type. Taxonomies can be registered later with
+ *                                             {@see register_taxonomy()} or {@see register_taxonomy_for_object_type()}.
+ *                                             Default empty array.
+ *     @type bool|string $has_archive          Whether there should be post type archives, or if a string, the
+ *                                             archive slug to use. Will generate the proper rewrite rules if
+ *                                             $rewrite is enabled. Default false.
+ *     @type bool|array  $rewrite              {
+ *         Triggers the handling of rewrites for this post type. To prevent rewrite, set to false.
+ *         Defaults to true, using $post_type as slug. To specify rewrite rules, an array can be
+ *         passed with any of these keys:
+ *
+ *         @type string $slug       Customize the permastruct slug. Defaults to $post_type key.
+ *         @type bool   $with_front Whether the permastruct should be prepended with WP_Rewrite::$front.
+ *                                  Default true.
+ *         @type bool   $feeds      Whether the feed permastruct should be built for this post type.
+ *                                  Default is value of $has_archive.
+ *         @type bool   $pages      Whether the permastruct should provide for pagination. Default true.
+ *         @type const  $ep_mask    Endpoint mask to assign. If not specified and permalink_epmask is set,
+ *                                  inherits from $permalink_epmask. If not specified and permalink_epmask
+ *                                  is not set, defaults to EP_PERMALINK.
+ *     }
+ *     @type string|bool $query_var            Sets the query_var key for this post type. Defaults to $post_type
+ *                                             key. If false, a post type cannot be loaded at
+ *                                             ?{query_var}={post_slug}. If specified as a string, the query
+ *                                             ?{query_var_string}={post_slug} will be valid.
+ *     @type bool        $can_export           Whether to allow this post type to be exported. Default true.
+ *     @type bool        $delete_with_user     Whether to delete posts of this type when deleting a user. If true,
+ *                                             posts of this type belonging to the user will be moved to trash
+ *                                             when then user is deleted. If false, posts of this type belonging
+ *                                             to the user will *not* be trashed or deleted. If not set (the default),
+ *                                             posts are trashed if post_type_supports('author'). Otherwise posts
+ *                                             are not trashed or deleted. Default null.
+ *     @type bool        $_builtin             FOR INTERNAL USE ONLY! True if this post type is a native or
+ *                                             "built-in" post_type. Default false.
+ *     @type string      $_edit_link           FOR INTERNAL USE ONLY! URL segment to use for edit link of
+ *                                             this post type. Default 'post.php?post=%d'.
+ * }
+ * @return object|WP_Error The registered post type object, or an error object.
  */
 function register_post_type( $post_type, $args = array() ) {
        global $wp_post_types, $wp_rewrite, $wp;
  */
 function register_post_type( $post_type, $args = array() ) {
        global $wp_post_types, $wp_rewrite, $wp;
@@ -1235,8 +1333,10 @@ function register_post_type( $post_type, $args = array() ) {
        $post_type = sanitize_key( $post_type );
        $args->name = $post_type;
 
        $post_type = sanitize_key( $post_type );
        $args->name = $post_type;
 
-       if ( strlen( $post_type ) > 20 )
+       if ( strlen( $post_type ) > 20 ) {
+               _doing_it_wrong( __FUNCTION__, __( 'Post types cannot exceed 20 characters in length' ), '4.0' );
                return new WP_Error( 'post_type_too_long', __( 'Post types cannot exceed 20 characters in length' ) );
                return new WP_Error( 'post_type_too_long', __( 'Post types cannot exceed 20 characters in length' ) );
+       }
 
        // If not set, default to the setting for public.
        if ( null === $args->publicly_queryable )
 
        // If not set, default to the setting for public.
        if ( null === $args->publicly_queryable )
@@ -1262,7 +1362,7 @@ function register_post_type( $post_type, $args = array() ) {
        if ( null === $args->exclude_from_search )
                $args->exclude_from_search = !$args->public;
 
        if ( null === $args->exclude_from_search )
                $args->exclude_from_search = !$args->public;
 
-       // Back compat with quirky handling in version 3.0. #14122
+       // Back compat with quirky handling in version 3.0. #14122.
        if ( empty( $args->capabilities ) && null === $args->map_meta_cap && in_array( $args->capability_type, array( 'post', 'page' ) ) )
                $args->map_meta_cap = true;
 
        if ( empty( $args->capabilities ) && null === $args->map_meta_cap && in_array( $args->capability_type, array( 'post', 'page' ) ) )
                $args->map_meta_cap = true;
 
@@ -1337,6 +1437,7 @@ function register_post_type( $post_type, $args = array() ) {
                add_permastruct( $post_type, "{$args->rewrite['slug']}/%$post_type%", $permastruct_args );
        }
 
                add_permastruct( $post_type, "{$args->rewrite['slug']}/%$post_type%", $permastruct_args );
        }
 
+       // Register the post type meta box if a custom callback was specified.
        if ( $args->register_meta_box_cb )
                add_action( 'add_meta_boxes_' . $post_type, $args->register_meta_box_cb, 10, 1 );
 
        if ( $args->register_meta_box_cb )
                add_action( 'add_meta_boxes_' . $post_type, $args->register_meta_box_cb, 10, 1 );
 
@@ -1357,7 +1458,7 @@ function register_post_type( $post_type, $args = array() ) {
         * @since 3.3.0
         *
         * @param string $post_type Post type.
         * @since 3.3.0
         *
         * @param string $post_type Post type.
-        * @param array  $args      Arguments used to register the post type.
+        * @param object $args      Arguments used to register the post type.
         */
        do_action( 'registered_post_type', $post_type, $args );
 
         */
        do_action( 'registered_post_type', $post_type, $args );
 
@@ -1365,7 +1466,7 @@ function register_post_type( $post_type, $args = array() ) {
 }
 
 /**
 }
 
 /**
- * Builds an object with all post type capabilities out of a post type object
+ * Build an object with all post type capabilities out of a post type object
  *
  * Post type capabilities use the 'capability_type' argument as a base, if the
  * capability is not set in the 'capabilities' argument array or if the
  *
  * Post type capabilities use the 'capability_type' argument as a base, if the
  * capability is not set in the 'capabilities' argument array or if the
@@ -1411,11 +1512,13 @@ function register_post_type( $post_type, $args = array() ) {
  * only assigned by default if the post type is registered with the 'map_meta_cap'
  * argument set to true (default is false).
  *
  * only assigned by default if the post type is registered with the 'map_meta_cap'
  * argument set to true (default is false).
  *
- * @see map_meta_cap()
  * @since 3.0.0
  *
  * @since 3.0.0
  *
- * @param object $args Post type registration arguments
- * @return object object with all the capabilities as member variables
+ * @see register_post_type()
+ * @see map_meta_cap()
+ *
+ * @param object $args Post type registration arguments.
+ * @return object object with all the capabilities as member variables.
  */
 function get_post_type_capabilities( $args ) {
        if ( ! is_array( $args->capability_type ) )
  */
 function get_post_type_capabilities( $args ) {
        if ( ! is_array( $args->capability_type ) )
@@ -1464,10 +1567,12 @@ function get_post_type_capabilities( $args ) {
 }
 
 /**
 }
 
 /**
- * Stores or returns a list of post type meta caps for map_meta_cap().
+ * Store or return a list of post type meta caps for map_meta_cap().
  *
  * @since 3.1.0
  * @access private
  *
  * @since 3.1.0
  * @access private
+ *
+ * @param null|array $capabilities Post type meta capabilities.
  */
 function _post_type_meta_capabilities( $capabilities = null ) {
        static $meta_caps = array();
  */
 function _post_type_meta_capabilities( $capabilities = null ) {
        static $meta_caps = array();
@@ -1480,30 +1585,37 @@ function _post_type_meta_capabilities( $capabilities = null ) {
 }
 
 /**
 }
 
 /**
- * Builds an object with all post type labels out of a post type object
+ * Build an object with all post type labels out of a post type object
  *
  * Accepted keys of the label array in the post type object:
  *
  * Accepted keys of the label array in the post type object:
- * - name - general name for the post type, usually plural. The same and overridden by $post_type_object->label. Default is Posts/Pages
+ *
+ * - name - general name for the post type, usually plural. The same and overridden
+ *          by $post_type_object->label. Default is Posts/Pages
  * - singular_name - name for one object of this post type. Default is Post/Page
  * - singular_name - name for one object of this post type. Default is Post/Page
- * - add_new - Default is Add New for both hierarchical and non-hierarchical types. When internationalizing this string, please use a {@link http://codex.wordpress.org/I18n_for_WordPress_Developers#Disambiguation_by_context gettext context} matching your post type. Example: <code>_x('Add New', 'product');</code>
- * - add_new_item - Default is Add New Post/Add New Page
- * - edit_item - Default is Edit Post/Edit Page
- * - new_item - Default is New Post/New Page
- * - view_item - Default is View Post/View Page
- * - search_items - Default is Search Posts/Search Pages
- * - not_found - Default is No posts found/No pages found
- * - not_found_in_trash - Default is No posts found in Trash/No pages found in Trash
- * - parent_item_colon - This string isn't used on non-hierarchical types. In hierarchical ones the default is Parent Page:
- * - all_items - String for the submenu. Default is All Posts/All Pages
- * - menu_name - Default is the same as <code>name</code>
- *
- * Above, the first default value is for non-hierarchical post types (like posts) and the second one is for hierarchical post types (like pages).
+ * - add_new - Default is Add New for both hierarchical and non-hierarchical types.
+ *             When internationalizing this string, please use a gettext context
+ *             {@see http://codex.wordpress.org/I18n_for_WordPress_Developers#Disambiguation_by_context}
+ *             matching your post type. Example: <code>_x('Add New', 'product');</code>.
+ * - add_new_item - Default is Add New Post/Add New Page.
+ * - edit_item - Default is Edit Post/Edit Page.
+ * - new_item - Default is New Post/New Page.
+ * - view_item - Default is View Post/View Page.
+ * - search_items - Default is Search Posts/Search Pages.
+ * - not_found - Default is No posts found/No pages found.
+ * - not_found_in_trash - Default is No posts found in Trash/No pages found in Trash.
+ * - parent_item_colon - This string isn't used on non-hierarchical types. In hierarchical
+ *                       ones the default is 'Parent Page:'.
+ * - all_items - String for the submenu. Default is All Posts/All Pages.
+ * - menu_name - Default is the same as <code>name</code>.
+ *
+ * Above, the first default value is for non-hierarchical post types (like posts)
+ * and the second one is for hierarchical post types (like pages).
  *
  * @since 3.0.0
  * @access private
  *
  *
  * @since 3.0.0
  * @access private
  *
- * @param object $post_type_object
- * @return object object with all the labels as member variables
+ * @param object $post_type_object Post type object.
+ * @return object object with all the labels as member variables.
  */
 function get_post_type_labels( $post_type_object ) {
        $nohier_vs_hier_defaults = array(
  */
 function get_post_type_labels( $post_type_object ) {
        $nohier_vs_hier_defaults = array(
@@ -1542,10 +1654,14 @@ function get_post_type_labels( $post_type_object ) {
 }
 
 /**
 }
 
 /**
- * Builds an object with custom-something object (post type, taxonomy) labels out of a custom-something object
+ * Build an object with custom-something object (post type, taxonomy) labels
+ * out of a custom-something object
  *
  *
- * @access private
  * @since 3.0.0
  * @since 3.0.0
+ * @access private
+ *
+ * @param object $object                  A custom-something object.
+ * @param array  $nohier_vs_hier_defaults Hierarchical vs non-hierarchical default labels.
  */
 function _get_custom_object_labels( $object, $nohier_vs_hier_defaults ) {
        $object->labels = (array) $object->labels;
  */
 function _get_custom_object_labels( $object, $nohier_vs_hier_defaults ) {
        $object->labels = (array) $object->labels;
@@ -1573,7 +1689,7 @@ function _get_custom_object_labels( $object, $nohier_vs_hier_defaults ) {
 }
 
 /**
 }
 
 /**
- * Adds submenus for post types.
+ * Add submenus for post types.
  *
  * @access private
  * @since 3.1.0
  *
  * @access private
  * @since 3.1.0
@@ -1581,7 +1697,7 @@ function _get_custom_object_labels( $object, $nohier_vs_hier_defaults ) {
 function _add_post_type_submenus() {
        foreach ( get_post_types( array( 'show_ui' => true ) ) as $ptype ) {
                $ptype_obj = get_post_type_object( $ptype );
 function _add_post_type_submenus() {
        foreach ( get_post_types( array( 'show_ui' => true ) ) as $ptype ) {
                $ptype_obj = get_post_type_object( $ptype );
-               // Submenus only.
+               // Sub-menus only.
                if ( ! $ptype_obj->show_in_menu || $ptype_obj->show_in_menu === true )
                        continue;
                add_submenu_page( $ptype_obj->show_in_menu, $ptype_obj->labels->name, $ptype_obj->labels->all_items, $ptype_obj->cap->edit_posts, "edit.php?post_type=$ptype" );
                if ( ! $ptype_obj->show_in_menu || $ptype_obj->show_in_menu === true )
                        continue;
                add_submenu_page( $ptype_obj->show_in_menu, $ptype_obj->labels->name, $ptype_obj->labels->all_items, $ptype_obj->cap->edit_posts, "edit.php?post_type=$ptype" );
@@ -1604,7 +1720,7 @@ add_action( 'admin_menu', '_add_post_type_submenus' );
  * @since 3.0.0
  *
  * @param string       $post_type The post type for which to add the feature.
  * @since 3.0.0
  *
  * @param string       $post_type The post type for which to add the feature.
- * @param string|array $feature   The feature being added, accpets an array of
+ * @param string|array $feature   The feature being added, accepts an array of
  *                                feature strings or a single string.
  */
 function add_post_type_support( $post_type, $feature ) {
  *                                feature strings or a single string.
  */
 function add_post_type_support( $post_type, $feature ) {
@@ -1623,8 +1739,9 @@ function add_post_type_support( $post_type, $feature ) {
  * Remove support for a feature from a post type.
  *
  * @since 3.0.0
  * Remove support for a feature from a post type.
  *
  * @since 3.0.0
- * @param string $post_type The post type for which to remove the feature
- * @param string $feature The feature being removed
+ *
+ * @param string $post_type The post type for which to remove the feature.
+ * @param string $feature   The feature being removed.
  */
 function remove_post_type_support( $post_type, $feature ) {
        global $_wp_post_type_features;
  */
 function remove_post_type_support( $post_type, $feature ) {
        global $_wp_post_type_features;
@@ -1637,10 +1754,10 @@ function remove_post_type_support( $post_type, $feature ) {
  * Get all the post type features
  *
  * @since 3.4.0
  * Get all the post type features
  *
  * @since 3.4.0
- * @param string $post_type The post type
- * @return array
+ *
+ * @param string $post_type The post type.
+ * @return array Post type supports list.
  */
  */
-
 function get_all_post_type_supports( $post_type ) {
        global $_wp_post_type_features;
 
 function get_all_post_type_supports( $post_type ) {
        global $_wp_post_type_features;
 
@@ -1651,14 +1768,14 @@ function get_all_post_type_supports( $post_type ) {
 }
 
 /**
 }
 
 /**
- * Checks a post type's support for a given feature
+ * Check a post type's support for a given feature.
  *
  * @since 3.0.0
  *
  * @since 3.0.0
- * @param string $post_type The post type being checked
- * @param string $feature the feature being checked
- * @return boolean
+ *
+ * @param string $post_type The post type being checked.
+ * @param string $feature the feature being checked.
+ * @return bool Whether the post type supports the given feature.
  */
  */
-
 function post_type_supports( $post_type, $feature ) {
        global $_wp_post_type_features;
 
 function post_type_supports( $post_type, $feature ) {
        global $_wp_post_type_features;
 
@@ -1666,17 +1783,17 @@ function post_type_supports( $post_type, $feature ) {
 }
 
 /**
 }
 
 /**
- * Updates the post type for the post ID.
+ * Update the post type for the post ID.
  *
  * The page or post cache will be cleaned for the post ID.
  *
  * @since 2.5.0
  *
  *
  * The page or post cache will be cleaned for the post ID.
  *
  * @since 2.5.0
  *
- * @uses $wpdb
+ * @global wpdb $wpdb WordPress database access abstraction object.
  *
  *
- * @param int $post_id Post ID to change post type. Not actually optional.
- * @param string $post_type Optional, default is post. Supported values are 'post' or 'page' to
- *  name a few.
+ * @param int    $post_id   Optional. Post ID to change post type. Default 0.
+ * @param string $post_type Optional. Post type. Accepts 'post' or 'page' to
+ *                          name a few. Default 'post'.
  * @return int Amount of rows changed. Should be 1 for success and 0 for failure.
  */
 function set_post_type( $post_id = 0, $post_type = 'post' ) {
  * @return int Amount of rows changed. Should be 1 for success and 0 for failure.
  */
 function set_post_type( $post_id = 0, $post_type = 'post' ) {
@@ -1694,27 +1811,32 @@ function set_post_type( $post_id = 0, $post_type = 'post' ) {
  * Retrieve list of latest posts or posts matching criteria.
  *
  * The defaults are as follows:
  * Retrieve list of latest posts or posts matching criteria.
  *
  * The defaults are as follows:
- *     'numberposts' - Default is 5. Total number of posts to retrieve.
- *     'offset' - Default is 0. See {@link WP_Query::query()} for more.
- *     'category' - What category to pull the posts from.
- *     'orderby' - Default is 'date', which orders based on post_date. How to order the posts.
- *     'order' - Default is 'DESC'. The order to retrieve the posts.
- *     'include' - See {@link WP_Query::query()} for more.
- *     'exclude' - See {@link WP_Query::query()} for more.
- *     'meta_key' - See {@link WP_Query::query()} for more.
- *     'meta_value' - See {@link WP_Query::query()} for more.
- *     'post_type' - Default is 'post'. Can be 'page', or 'attachment' to name a few.
- *     'post_parent' - The parent of the post or post type.
- *     'post_status' - Default is 'publish'. Post status to retrieve.
  *
  * @since 1.2.0
  *
  * @since 1.2.0
- * @uses WP_Query::query() See for more default arguments and information.
- * @link http://codex.wordpress.org/Template_Tags/get_posts
  *
  *
- * @param array $args Optional. Overrides defaults.
+ * @see WP_Query::parse_query()
+ *
+ * @param array $args {
+ *     Optional. Arguments to retrieve posts. {@see WP_Query::parse_query()} for more
+ *     available arguments.
+ *
+ *     @type int        $numberposts      Total number of posts to retrieve. Is an alias of $posts_per_page
+ *                                        in WP_Query. Accepts 1+ and -1 for all. Default 5.
+ *     @type int        $offset           The number of posts to offset before retrieval. Default 0.
+ *     @type int|string $category         Category ID or comma-separated list of IDs (this or any children).
+ *                                        Is an alias of $cat in WP_Query. Default 0.
+ *     @type string     $orderby          Which field to order posts by. Accepts post fields. Default 'date'.
+ *     @type array      $include          An array of post IDs to retrieve, sticky posts will be included.
+ *                                        Is an alias of $post__in in WP_Query. Default empty array.
+ *     @type array      $exclude          An array of post IDs not to retrieve. Default empty array.
+ *     @type string     $meta_key         Custom field key. Default empty.
+ *     @type mixed      $meta_value       Custom field value. Default empty string.
+ *     @type string     $post_type        Post type. Default 'post'.
+ *     @type bool       $suppress_filters Whether to suppress filters. Default true.
+ * }
  * @return array List of posts.
  */
  * @return array List of posts.
  */
-function get_posts($args = null) {
+function get_posts( $args = null ) {
        $defaults = array(
                'numberposts' => 5, 'offset' => 0,
                'category' => 0, 'orderby' => 'date',
        $defaults = array(
                'numberposts' => 5, 'offset' => 0,
                'category' => 0, 'orderby' => 'date',
@@ -1756,16 +1878,16 @@ function get_posts($args = null) {
  * Post meta data is called "Custom Fields" on the Administration Screen.
  *
  * @since 1.5.0
  * Post meta data is called "Custom Fields" on the Administration Screen.
  *
  * @since 1.5.0
- * @link http://codex.wordpress.org/Function_Reference/add_post_meta
  *
  *
- * @param int $post_id Post ID.
- * @param string $meta_key Metadata name.
- * @param mixed $meta_value Metadata value. Must be serializable if non-scalar.
- * @param bool $unique Optional, default is false. Whether the same key should not be added.
+ * @param int    $post_id    Post ID.
+ * @param string $meta_key   Metadata name.
+ * @param mixed  $meta_value Metadata value. Must be serializable if non-scalar.
+ * @param bool   $unique     Optional. Whether the same key should not be added.
+ *                           Default false.
  * @return int|bool Meta ID on success, false on failure.
  */
  * @return int|bool Meta ID on success, false on failure.
  */
-function add_post_meta($post_id, $meta_key, $meta_value, $unique = false) {
-       // make sure meta is added to the post, not a revision
+function add_post_meta( $post_id, $meta_key, $meta_value, $unique = false ) {
+       // Make sure meta is added to the post, not a revision.
        if ( $the_post = wp_is_post_revision($post_id) )
                $post_id = $the_post;
 
        if ( $the_post = wp_is_post_revision($post_id) )
                $post_id = $the_post;
 
@@ -1780,15 +1902,15 @@ function add_post_meta($post_id, $meta_key, $meta_value, $unique = false) {
  * allows removing all metadata matching key, if needed.
  *
  * @since 1.5.0
  * allows removing all metadata matching key, if needed.
  *
  * @since 1.5.0
- * @link http://codex.wordpress.org/Function_Reference/delete_post_meta
  *
  *
- * @param int $post_id post ID
- * @param string $meta_key Metadata name.
- * @param mixed $meta_value Optional. Metadata value. Must be serializable if non-scalar.
+ * @param int    $post_id    Post ID.
+ * @param string $meta_key   Metadata name.
+ * @param mixed  $meta_value Optional. Metadata value. Must be serializable if
+ *                           non-scalar. Default empty.
  * @return bool True on success, false on failure.
  */
  * @return bool True on success, false on failure.
  */
-function delete_post_meta($post_id, $meta_key, $meta_value = '') {
-       // make sure meta is added to the post, not a revision
+function delete_post_meta( $post_id, $meta_key, $meta_value = '' ) {
+       // Make sure meta is added to the post, not a revision.
        if ( $the_post = wp_is_post_revision($post_id) )
                $post_id = $the_post;
 
        if ( $the_post = wp_is_post_revision($post_id) )
                $post_id = $the_post;
 
@@ -1799,15 +1921,15 @@ function delete_post_meta($post_id, $meta_key, $meta_value = '') {
  * Retrieve post meta field for a post.
  *
  * @since 1.5.0
  * Retrieve post meta field for a post.
  *
  * @since 1.5.0
- * @link http://codex.wordpress.org/Function_Reference/get_post_meta
  *
  *
- * @param int $post_id Post ID.
- * @param string $key Optional. The meta key to retrieve. By default, returns data for all keys.
- * @param bool $single Whether to return a single value.
- * @return mixed Will be an array if $single is false. Will be value of meta data field if $single
- *  is true.
+ * @param int    $post_id Post ID.
+ * @param string $key     Optional. The meta key to retrieve. By default, returns
+ *                        data for all keys. Default empty.
+ * @param bool   $single  Optional. Whether to return a single value. Default false.
+ * @return mixed Will be an array if $single is false. Will be value of meta data
+ *               field if $single is true.
  */
  */
-function get_post_meta($post_id, $key = '', $single = false) {
+function get_post_meta( $post_id, $key = '', $single = false ) {
        return get_metadata('post', $post_id, $key, $single);
 }
 
        return get_metadata('post', $post_id, $key, $single);
 }
 
@@ -1820,16 +1942,17 @@ function get_post_meta($post_id, $key = '', $single = false) {
  * If the meta field for the post does not exist, it will be added.
  *
  * @since 1.5.0
  * If the meta field for the post does not exist, it will be added.
  *
  * @since 1.5.0
- * @link http://codex.wordpress.org/Function_Reference/update_post_meta
  *
  *
- * @param int $post_id Post ID.
- * @param string $meta_key Metadata key.
- * @param mixed $meta_value Metadata value. Must be serializable if non-scalar.
- * @param mixed $prev_value Optional. Previous value to check before removing.
- * @return int|bool Meta ID if the key didn't exist, true on successful update, false on failure.
+ * @param int    $post_id    Post ID.
+ * @param string $meta_key   Metadata key.
+ * @param mixed  $meta_value Metadata value. Must be serializable if non-scalar.
+ * @param mixed  $prev_value Optional. Previous value to check before removing.
+ *                           Default empty.
+ * @return int|bool Meta ID if the key didn't exist, true on successful update,
+ *                  false on failure.
  */
  */
-function update_post_meta($post_id, $meta_key, $meta_value, $prev_value = '') {
-       // make sure meta is added to the post, not a revision
+function update_post_meta( $post_id, $meta_key, $meta_value, $prev_value = '' ) {
+       // Make sure meta is added to the post, not a revision.
        if ( $the_post = wp_is_post_revision($post_id) )
                $post_id = $the_post;
 
        if ( $the_post = wp_is_post_revision($post_id) )
                $post_id = $the_post;
 
@@ -1842,9 +1965,9 @@ function update_post_meta($post_id, $meta_key, $meta_value, $prev_value = '') {
  * @since 2.3.0
  *
  * @param string $post_meta_key Key to search for when deleting.
  * @since 2.3.0
  *
  * @param string $post_meta_key Key to search for when deleting.
- * @return bool Whether the post meta key was deleted from the database
+ * @return bool Whether the post meta key was deleted from the database.
  */
  */
-function delete_post_meta_by_key($post_meta_key) {
+function delete_post_meta_by_key( $post_meta_key ) {
        return delete_metadata( 'post', null, $post_meta_key, '', true );
 }
 
        return delete_metadata( 'post', null, $post_meta_key, '', true );
 }
 
@@ -1855,10 +1978,9 @@ function delete_post_meta_by_key($post_meta_key) {
  * so the function is optimized to be called more than once.
  *
  * @since 1.2.0
  * so the function is optimized to be called more than once.
  *
  * @since 1.2.0
- * @link http://codex.wordpress.org/Function_Reference/get_post_custom
  *
  *
- * @param int $post_id Post ID.
- * @return array
+ * @param int $post_id Optional. Post ID. Default is ID of the global $post.
+ * @return array Post meta for the given post.
  */
 function get_post_custom( $post_id = 0 ) {
        $post_id = absint( $post_id );
  */
 function get_post_custom( $post_id = 0 ) {
        $post_id = absint( $post_id );
@@ -1874,10 +1996,10 @@ function get_post_custom( $post_id = 0 ) {
  * If there are no meta fields, then nothing (null) will be returned.
  *
  * @since 1.2.0
  * If there are no meta fields, then nothing (null) will be returned.
  *
  * @since 1.2.0
- * @link http://codex.wordpress.org/Function_Reference/get_post_custom_keys
  *
  *
- * @param int $post_id post ID
- * @return array|null Either array of the keys, or null if keys could not be retrieved.
+ * @param int $post_id Optional. Post ID. Default is ID of the global $post.
+ * @return array|null Either array of the keys, or null if keys could not be
+ *                    retrieved.
  */
 function get_post_custom_keys( $post_id = 0 ) {
        $custom = get_post_custom( $post_id );
  */
 function get_post_custom_keys( $post_id = 0 ) {
        $custom = get_post_custom( $post_id );
@@ -1896,10 +2018,9 @@ function get_post_custom_keys( $post_id = 0 ) {
  * will be retrieved and only the meta field key values returned.
  *
  * @since 1.2.0
  * will be retrieved and only the meta field key values returned.
  *
  * @since 1.2.0
- * @link http://codex.wordpress.org/Function_Reference/get_post_custom_values
  *
  *
- * @param string $key Meta field key.
- * @param int $post_id Post ID
+ * @param string $key     Optional. Meta field key. Default empty.
+ * @param int    $post_id Optional. Post ID. Default is ID of the global $post.
  * @return array Meta field values.
  */
 function get_post_custom_values( $key = '', $post_id = 0 ) {
  * @return array Meta field values.
  */
 function get_post_custom_values( $key = '', $post_id = 0 ) {
@@ -1919,7 +2040,7 @@ function get_post_custom_values( $key = '', $post_id = 0 ) {
  *
  * @since 2.7.0
  *
  *
  * @since 2.7.0
  *
- * @param int $post_id Optional. Post ID.
+ * @param int $post_id Optional. Post ID. Default is ID of the global $post.
  * @return bool Whether post is sticky.
  */
 function is_sticky( $post_id = 0 ) {
  * @return bool Whether post is sticky.
  */
 function is_sticky( $post_id = 0 ) {
@@ -1942,18 +2063,23 @@ function is_sticky( $post_id = 0 ) {
 /**
  * Sanitize every post field.
  *
 /**
  * Sanitize every post field.
  *
- * If the context is 'raw', then the post object or array will get minimal santization of the int fields.
+ * If the context is 'raw', then the post object or array will get minimal
+ * sanitization of the integer fields.
  *
  * @since 2.3.0
  *
  * @since 2.3.0
- * @uses sanitize_post_field() Used to sanitize the fields.
  *
  *
- * @param object|WP_Post|array $post The Post Object or Array
- * @param string $context Optional, default is 'display'. How to sanitize post fields.
- * @return object|WP_Post|array The now sanitized Post Object or Array (will be the same type as $post)
+ * @see sanitize_post_field()
+ *
+ * @param object|WP_Post|array $post    The Post Object or Array
+ * @param string               $context Optional. How to sanitize post fields.
+ *                                      Accepts 'raw', 'edit', 'db', or 'display'.
+ *                                      Default 'display'.
+ * @return object|WP_Post|array The now sanitized Post Object or Array (will be the
+ *                              same type as $post).
  */
  */
-function sanitize_post($post, $context = 'display') {
+function sanitize_post( $post, $context = 'display' ) {
        if ( is_object($post) ) {
        if ( is_object($post) ) {
-               // Check if post already filtered for this context
+               // Check if post already filtered for this context.
                if ( isset($post->filter) && $context == $post->filter )
                        return $post;
                if ( !isset($post->ID) )
                if ( isset($post->filter) && $context == $post->filter )
                        return $post;
                if ( !isset($post->ID) )
@@ -1962,7 +2088,7 @@ function sanitize_post($post, $context = 'display') {
                        $post->$field = sanitize_post_field($field, $post->$field, $post->ID, $context);
                $post->filter = $context;
        } else {
                        $post->$field = sanitize_post_field($field, $post->$field, $post->ID, $context);
                $post->filter = $context;
        } else {
-               // Check if post already filtered for this context
+               // Check if post already filtered for this context.
                if ( isset($post['filter']) && $context == $post['filter'] )
                        return $post;
                if ( !isset($post['ID']) )
                if ( isset($post['filter']) && $context == $post['filter'] )
                        return $post;
                if ( !isset($post['ID']) )
@@ -1977,17 +2103,17 @@ function sanitize_post($post, $context = 'display') {
 /**
  * Sanitize post field based on context.
  *
 /**
  * Sanitize post field based on context.
  *
- * Possible context values are:  'raw', 'edit', 'db', 'display', 'attribute' and 'js'. The
- * 'display' context is used by default. 'attribute' and 'js' contexts are treated like 'display'
- * when calling filters.
+ * Possible context values are:  'raw', 'edit', 'db', 'display', 'attribute' and
+ * 'js'. The 'display' context is used by default. 'attribute' and 'js' contexts
+ * are treated like 'display' when calling filters.
  *
  * @since 2.3.0
  *
  *
  * @since 2.3.0
  *
- * @param string $field The Post Object field name.
- * @param mixed $value The Post Object value.
- * @param int $post_id Post ID.
- * @param string $context How to sanitize post fields. Looks for 'raw', 'edit', 'db', 'display',
- *               'attribute' and 'js'.
+ * @param string $field   The Post Object field name.
+ * @param mixed  $value   The Post Object value.
+ * @param int    $post_id Post ID.
+ * @param string $context How to sanitize post fields. Looks for 'raw', 'edit',
+ *                        'db', 'display', 'attribute' and 'js'.
  * @return mixed Sanitized value.
  */
 function sanitize_post_field($field, $value, $post_id, $context) {
  * @return mixed Sanitized value.
  */
 function sanitize_post_field($field, $value, $post_id, $context) {
@@ -1995,7 +2121,7 @@ function sanitize_post_field($field, $value, $post_id, $context) {
        if ( in_array($field, $int_fields) )
                $value = (int) $value;
 
        if ( in_array($field, $int_fields) )
                $value = (int) $value;
 
-       // Fields which contain arrays of ints.
+       // Fields which contain arrays of integers.
        $array_int_fields = array( 'ancestors' );
        if ( in_array($field, $array_int_fields) ) {
                $value = array_map( 'absint', $value);
        $array_int_fields = array( 'ancestors' );
        if ( in_array($field, $array_int_fields) ) {
                $value = array_map( 'absint', $value);
@@ -2019,7 +2145,8 @@ function sanitize_post_field($field, $value, $post_id, $context) {
                        /**
                         * Filter the value of a specific post field to edit.
                         *
                        /**
                         * Filter the value of a specific post field to edit.
                         *
-                        * The dynamic portion of the hook name, $field, refers to the post field name.
+                        * The dynamic portion of the hook name, $field, refers to the post
+                        * field name.
                         *
                         * @since 2.3.0
                         *
                         *
                         * @since 2.3.0
                         *
@@ -2058,7 +2185,8 @@ function sanitize_post_field($field, $value, $post_id, $context) {
                        /**
                         * Filter the value of a specific post field before saving.
                         *
                        /**
                         * Filter the value of a specific post field before saving.
                         *
-                        * The dynamic portion of the hook name, $field, refers to the post field name.
+                        * The dynamic portion of the hook name, $field, refers to the post
+                        * field name.
                         *
                         * @since 2.3.0
                         *
                         *
                         * @since 2.3.0
                         *
@@ -2083,7 +2211,8 @@ function sanitize_post_field($field, $value, $post_id, $context) {
                        /**
                         * Filter the value of a specific post field before saving.
                         *
                        /**
                         * Filter the value of a specific post field before saving.
                         *
-                        * The dynamic portion of the hook name, $field, refers to the post field name.
+                        * The dynamic portion of the hook name, $field, refers to the post
+                        * field name.
                         *
                         * @since 2.3.0
                         *
                         *
                         * @since 2.3.0
                         *
@@ -2099,7 +2228,8 @@ function sanitize_post_field($field, $value, $post_id, $context) {
                        /**
                         * Filter the value of a specific post field for display.
                         *
                        /**
                         * Filter the value of a specific post field for display.
                         *
-                        * The dynamic portion of the hook name, $field, refers to the post field name.
+                        * The dynamic portion of the hook name, $field, refers to the post
+                        * field name.
                         *
                         * @since 2.3.0
                         *
                         *
                         * @since 2.3.0
                         *
@@ -2132,7 +2262,7 @@ function sanitize_post_field($field, $value, $post_id, $context) {
  *
  * @param int $post_id Post ID.
  */
  *
  * @param int $post_id Post ID.
  */
-function stick_post($post_id) {
+function stick_post( $post_id ) {
        $stickies = get_option('sticky_posts');
 
        if ( !is_array($stickies) )
        $stickies = get_option('sticky_posts');
 
        if ( !is_array($stickies) )
@@ -2145,7 +2275,7 @@ function stick_post($post_id) {
 }
 
 /**
 }
 
 /**
- * Unstick a post.
+ * Un-stick a post.
  *
  * Sticky posts should be displayed at the top of the front page.
  *
  *
  * Sticky posts should be displayed at the top of the front page.
  *
@@ -2153,7 +2283,7 @@ function stick_post($post_id) {
  *
  * @param int $post_id Post ID.
  */
  *
  * @param int $post_id Post ID.
  */
-function unstick_post($post_id) {
+function unstick_post( $post_id ) {
        $stickies = get_option('sticky_posts');
 
        if ( !is_array($stickies) )
        $stickies = get_option('sticky_posts');
 
        if ( !is_array($stickies) )
@@ -2172,19 +2302,19 @@ function unstick_post($post_id) {
 }
 
 /**
 }
 
 /**
- * Return the cache key for wp_count_posts() based on the passed arguments
+ * Return the cache key for wp_count_posts() based on the passed arguments.
  *
  * @since 3.9.0
  *
  *
  * @since 3.9.0
  *
- * @param string $type Optional. Post type to retrieve count
- * @param string $perm Optional. 'readable' or empty.
+ * @param string $type Optional. Post type to retrieve count Default 'post'.
+ * @param string $perm Optional. 'readable' or empty. Default empty.
  * @return string The cache key.
  */
 function _count_posts_cache_key( $type = 'post', $perm = '' ) {
        $cache_key = 'posts-' . $type;
        if ( 'readable' == $perm && is_user_logged_in() ) {
                $post_type_object = get_post_type_object( $type );
  * @return string The cache key.
  */
 function _count_posts_cache_key( $type = 'post', $perm = '' ) {
        $cache_key = 'posts-' . $type;
        if ( 'readable' == $perm && is_user_logged_in() ) {
                $post_type_object = get_post_type_object( $type );
-               if ( ! current_user_can( $post_type_object->cap->read_private_posts ) ) {
+               if ( $post_type_object && ! current_user_can( $post_type_object->cap->read_private_posts ) ) {
                        $cache_key .= '_' . $perm . '_' . get_current_user_id();
                }
        }
                        $cache_key .= '_' . $perm . '_' . get_current_user_id();
                }
        }
@@ -2202,13 +2332,11 @@ function _count_posts_cache_key( $type = 'post', $perm = '' ) {
  * The $perm parameter checks for 'readable' value and if the user can read
  * private posts, it will display that for the user that is signed in.
  *
  * The $perm parameter checks for 'readable' value and if the user can read
  * private posts, it will display that for the user that is signed in.
  *
- * @link http://codex.wordpress.org/Template_Tags/wp_count_posts
- *
  * @since 2.5.0
  *
  * @since 2.5.0
  *
- * @param string $type Optional. Post type to retrieve count
- * @param string $perm Optional. 'readable' or empty.
- * @return object Number of posts for each status
+ * @param string $type Optional. Post type to retrieve count. Default 'post'.
+ * @param string $perm Optional. 'readable' or empty. Default empty.
+ * @return object Number of posts for each status.
  */
 function wp_count_posts( $type = 'post', $perm = '' ) {
        global $wpdb;
  */
 function wp_count_posts( $type = 'post', $perm = '' ) {
        global $wpdb;
@@ -2265,7 +2393,8 @@ function wp_count_posts( $type = 'post', $perm = '' ) {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param string|array $mime_type Optional. Array or comma-separated list of MIME patterns.
+ * @param string|array $mime_type Optional. Array or comma-separated list of
+ *                                MIME patterns. Default empty.
  * @return object An object containing the attachment counts by mime type.
  */
 function wp_count_attachments( $mime_type = '' ) {
  * @return object An object containing the attachment counts by mime type.
  */
 function wp_count_attachments( $mime_type = '' ) {
@@ -2285,18 +2414,20 @@ function wp_count_attachments( $mime_type = '' ) {
         *
         * @since 3.7.0
         *
         *
         * @since 3.7.0
         *
-        * @param object $counts    An object containing the attachment counts by mime type.
-        * @param string $mime_type The mime type pattern used to filter the attachments counted.
+        * @param object $counts    An object containing the attachment counts by
+        *                          mime type.
+        * @param string $mime_type The mime type pattern used to filter the attachments
+        *                          counted.
         */
        return apply_filters( 'wp_count_attachments', (object) $counts, $mime_type );
 }
 
 /**
         */
        return apply_filters( 'wp_count_attachments', (object) $counts, $mime_type );
 }
 
 /**
- * Get default post mime types
+ * Get default post mime types.
  *
  * @since 2.9.0
  *
  *
  * @since 2.9.0
  *
- * @return array
+ * @return array List of post mime types.
  */
 function get_post_mime_types() {
        $post_mime_types = array(       //      array( adj, noun )
  */
 function get_post_mime_types() {
        $post_mime_types = array(       //      array( adj, noun )
@@ -2324,32 +2455,42 @@ function get_post_mime_types() {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param string|array $wildcard_mime_types e.g. audio/mpeg or image (same as image/*) or
- *  flash (same as *flash*).
- * @param string|array $real_mime_types post_mime_type values
- * @return array array(wildcard=>array(real types))
+ * @param string|array $wildcard_mime_types Mime types, e.g. audio/mpeg or image (same as image/*)
+ *                                          or flash (same as *flash*).
+ * @param string|array $real_mime_types     Real post mime type values.
+ * @return array array(wildcard=>array(real types)).
  */
  */
-function wp_match_mime_types($wildcard_mime_types, $real_mime_types) {
+function wp_match_mime_types( $wildcard_mime_types, $real_mime_types ) {
        $matches = array();
        $matches = array();
-       if ( is_string($wildcard_mime_types) )
-               $wildcard_mime_types = array_map('trim', explode(',', $wildcard_mime_types));
-       if ( is_string($real_mime_types) )
-               $real_mime_types = array_map('trim', explode(',', $real_mime_types));
+       if ( is_string( $wildcard_mime_types ) ) {
+               $wildcard_mime_types = array_map( 'trim', explode( ',', $wildcard_mime_types ) );
+       }
+       if ( is_string( $real_mime_types ) ) {
+               $real_mime_types = array_map( 'trim', explode( ',', $real_mime_types ) );
+       }
+
+       $patternses = array();
        $wild = '[-._a-z0-9]*';
        $wild = '[-._a-z0-9]*';
+
        foreach ( (array) $wildcard_mime_types as $type ) {
        foreach ( (array) $wildcard_mime_types as $type ) {
-               $type = str_replace('*', $wild, $type);
-               $patternses[1][$type] = "^$type$";
+               $regex = str_replace( '__wildcard__', $wild, preg_quote( str_replace( '*', '__wildcard__', $type ) ) );
+               $patternses[1][$type] = "^$regex$";
                if ( false === strpos($type, '/') ) {
                if ( false === strpos($type, '/') ) {
-                       $patternses[2][$type] = "^$type/";
-                       $patternses[3][$type] = $type;
+                       $patternses[2][$type] = "^$regex/";
+                       $patternses[3][$type] = $regex;
                }
        }
                }
        }
-       asort($patternses);
-       foreach ( $patternses as $patterns )
-               foreach ( $patterns as $type => $pattern )
-                       foreach ( (array) $real_mime_types as $real )
-                               if ( preg_match("#$pattern#", $real) && ( empty($matches[$type]) || false === array_search($real, $matches[$type]) ) )
+       asort( $patternses );
+
+       foreach ( $patternses as $patterns ) {
+               foreach ( $patterns as $type => $pattern ) {
+                       foreach ( (array) $real_mime_types as $real ) {
+                               if ( preg_match( "#$pattern#", $real ) && ( empty( $matches[$type] ) || false === array_search( $real, $matches[$type] ) ) ) {
                                        $matches[$type][] = $real;
                                        $matches[$type][] = $real;
+                               }
+                       }
+               }
+       }
        return $matches;
 }
 
        return $matches;
 }
 
@@ -2358,11 +2499,13 @@ function wp_match_mime_types($wildcard_mime_types, $real_mime_types) {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param string|array $post_mime_types List of mime types or comma separated string of mime types.
- * @param string $table_alias Optional. Specify a table alias, if needed.
+ * @param string|array $post_mime_types List of mime types or comma separated string
+ *                                      of mime types.
+ * @param string       $table_alias     Optional. Specify a table alias, if needed.
+ *                                      Default empty.
  * @return string The SQL AND clause for mime searching.
  */
  * @return string The SQL AND clause for mime searching.
  */
-function wp_post_mime_type_where($post_mime_types, $table_alias = '') {
+function wp_post_mime_type_where( $post_mime_types, $table_alias = '' ) {
        $where = '';
        $wildcards = array('', '%', '%/%');
        if ( is_string($post_mime_types) )
        $where = '';
        $wildcards = array('', '%', '%/%');
        if ( is_string($post_mime_types) )
@@ -2400,22 +2543,25 @@ function wp_post_mime_type_where($post_mime_types, $table_alias = '') {
 }
 
 /**
 }
 
 /**
- * Trashes or deletes a post or page.
+ * Trash or delete a post or page.
  *
  *
- * When the post and page is permanently deleted, everything that is tied to it is deleted also.
- * This includes comments, post meta fields, and terms associated with the post.
+ * When the post and page is permanently deleted, everything that is tied to
+ * it is deleted also. This includes comments, post meta fields, and terms
+ * associated with the post.
  *
  *
- * The post or page is moved to trash instead of permanently deleted unless trash is
- * disabled, item is already in the trash, or $force_delete is true.
+ * The post or page is moved to trash instead of permanently deleted unless
+ * trash is disabled, item is already in the trash, or $force_delete is true.
  *
  * @since 1.0.0
  *
  *
  * @since 1.0.0
  *
- * @uses wp_delete_attachment() if post type is 'attachment'.
- * @uses wp_trash_post() if item should be trashed.
+ * @global wpdb $wpdb WordPress database access abstraction object.
+ * @see wp_delete_attachment()
+ * @see wp_trash_post()
  *
  *
- * @param int $postid Post ID.
- * @param bool $force_delete Whether to bypass trash and force deletion. Defaults to false.
- * @return mixed False on failure
+ * @param int  $postid       Optional. Post ID. Default 0.
+ * @param bool $force_delete Optional. Whether to bypass trash and force deletion.
+ *                           Default false.
+ * @return array|bool|WP_Post False on failure.
  */
 function wp_delete_post( $postid = 0, $force_delete = false ) {
        global $wpdb;
  */
 function wp_delete_post( $postid = 0, $force_delete = false ) {
        global $wpdb;
@@ -2449,20 +2595,20 @@ function wp_delete_post( $postid = 0, $force_delete = false ) {
        $parent_where = array( 'post_parent' => $postid );
 
        if ( is_post_type_hierarchical( $post->post_type ) ) {
        $parent_where = array( 'post_parent' => $postid );
 
        if ( is_post_type_hierarchical( $post->post_type ) ) {
-               // Point children of this page to its parent, also clean the cache of affected children
+               // Point children of this page to its parent, also clean the cache of affected children.
                $children_query = $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent = %d AND post_type = %s", $postid, $post->post_type );
                $children = $wpdb->get_results( $children_query );
 
                $wpdb->update( $wpdb->posts, $parent_data, $parent_where + array( 'post_type' => $post->post_type ) );
        }
 
                $children_query = $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_parent = %d AND post_type = %s", $postid, $post->post_type );
                $children = $wpdb->get_results( $children_query );
 
                $wpdb->update( $wpdb->posts, $parent_data, $parent_where + array( 'post_type' => $post->post_type ) );
        }
 
-       // Do raw query. wp_get_post_revisions() is filtered
+       // Do raw query. wp_get_post_revisions() is filtered.
        $revision_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'revision'", $postid ) );
        // Use wp_delete_post (via wp_delete_post_revision) again. Ensures any meta/misplaced data gets cleaned up.
        foreach ( $revision_ids as $revision_id )
                wp_delete_post_revision( $revision_id );
 
        $revision_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'revision'", $postid ) );
        // Use wp_delete_post (via wp_delete_post_revision) again. Ensures any meta/misplaced data gets cleaned up.
        foreach ( $revision_ids as $revision_id )
                wp_delete_post_revision( $revision_id );
 
-       // Point all attachments to this post up one level
+       // Point all attachments to this post up one level.
        $wpdb->update( $wpdb->posts, $parent_data, $parent_where + array( 'post_type' => 'attachment' ) );
 
        $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d", $postid ));
        $wpdb->update( $wpdb->posts, $parent_data, $parent_where + array( 'post_type' => 'attachment' ) );
 
        $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d", $postid ));
@@ -2519,20 +2665,23 @@ function wp_delete_post( $postid = 0, $force_delete = false ) {
 }
 
 /**
 }
 
 /**
- * Resets the page_on_front, show_on_front, and page_for_post settings when a
- * linked page is deleted or trashed.
+ * Reset the page_on_front, show_on_front, and page_for_post settings when
+ * linked page is deleted or trashed.
  *
  * Also ensures the post is no longer sticky.
  *
  *
  * Also ensures the post is no longer sticky.
  *
- * @access private
  * @since 3.7.0
  * @since 3.7.0
- * @param $post_id
+ * @access private
+ *
+ * @param int $post_id Post ID.
  */
 function _reset_front_page_settings_for_post( $post_id ) {
        $post = get_post( $post_id );
        if ( 'page' == $post->post_type ) {
  */
 function _reset_front_page_settings_for_post( $post_id ) {
        $post = get_post( $post_id );
        if ( 'page' == $post->post_type ) {
-               // If the page is defined in option page_on_front or post_for_posts,
-               // adjust the corresponding options
+               /*
+                * If the page is defined in option page_on_front or post_for_posts,
+                * adjust the corresponding options.
+                */
                if ( get_option( 'page_on_front' ) == $post->ID ) {
                        update_option( 'show_on_front', 'posts' );
                        update_option( 'page_on_front', 0 );
                if ( get_option( 'page_on_front' ) == $post->ID ) {
                        update_option( 'show_on_front', 'posts' );
                        update_option( 'page_on_front', 0 );
@@ -2547,18 +2696,19 @@ add_action( 'before_delete_post', '_reset_front_page_settings_for_post' );
 add_action( 'wp_trash_post',      '_reset_front_page_settings_for_post' );
 
 /**
 add_action( 'wp_trash_post',      '_reset_front_page_settings_for_post' );
 
 /**
- * Moves a post or page to the Trash
+ * Move a post or page to the Trash
  *
  * If trash is disabled, the post or page is permanently deleted.
  *
  * @since 2.9.0
  *
  *
  * If trash is disabled, the post or page is permanently deleted.
  *
  * @since 2.9.0
  *
- * @uses wp_delete_post() if trash is disabled
+ * @see wp_delete_post()
  *
  *
- * @param int $post_id Post ID.
- * @return mixed False on failure
+ * @param int $post_id Optional. Post ID. Default is ID of the global $post
+ *                     if EMPTY_TRASH_DAYS equals true.
+ * @return bool|array Post data array, otherwise false.
  */
  */
-function wp_trash_post($post_id = 0) {
+function wp_trash_post( $post_id = 0 ) {
        if ( !EMPTY_TRASH_DAYS )
                return wp_delete_post($post_id, true);
 
        if ( !EMPTY_TRASH_DAYS )
                return wp_delete_post($post_id, true);
 
@@ -2598,14 +2748,14 @@ function wp_trash_post($post_id = 0) {
 }
 
 /**
 }
 
 /**
- * Restores a post or page from the Trash
+ * Restore a post or page from the Trash.
  *
  * @since 2.9.0
  *
  *
  * @since 2.9.0
  *
- * @param int $post_id Post ID.
- * @return mixed False on failure
+ * @param int $post_id Optional. Post ID. Default is ID of the global $post.
+ * @return WP_Post|bool WP_Post object. False on failure.
  */
  */
-function wp_untrash_post($post_id = 0) {
+function wp_untrash_post( $post_id = 0 ) {
        if ( !$post = get_post($post_id, ARRAY_A) )
                return $post;
 
        if ( !$post = get_post($post_id, ARRAY_A) )
                return $post;
 
@@ -2645,14 +2795,16 @@ function wp_untrash_post($post_id = 0) {
 }
 
 /**
 }
 
 /**
- * Moves comments for a post to the trash
+ * Moves comments for a post to the trash.
  *
  * @since 2.9.0
  *
  *
  * @since 2.9.0
  *
- * @param int|WP_Post $post Optional. Post ID or post object.
- * @return mixed False on failure
+ * @global wpdb $wpdb WordPress database access abstraction object.
+ *
+ * @param int|WP_Post $post Optional. Post ID or post object. Defaults to global $post.
+ * @return mixed False on failure.
  */
  */
-function wp_trash_post_comments($post = null) {
+function wp_trash_post_comments( $post = null ) {
        global $wpdb;
 
        $post = get_post($post);
        global $wpdb;
 
        $post = get_post($post);
@@ -2674,13 +2826,13 @@ function wp_trash_post_comments($post = null) {
        if ( empty($comments) )
                return;
 
        if ( empty($comments) )
                return;
 
-       // Cache current status for each comment
+       // Cache current status for each comment.
        $statuses = array();
        foreach ( $comments as $comment )
                $statuses[$comment->comment_ID] = $comment->comment_approved;
        add_post_meta($post_id, '_wp_trash_meta_comments_status', $statuses);
 
        $statuses = array();
        foreach ( $comments as $comment )
                $statuses[$comment->comment_ID] = $comment->comment_approved;
        add_post_meta($post_id, '_wp_trash_meta_comments_status', $statuses);
 
-       // Set status for all comments to post-trashed
+       // Set status for all comments to post-trashed.
        $result = $wpdb->update($wpdb->comments, array('comment_approved' => 'post-trashed'), array('comment_post_ID' => $post_id));
 
        clean_comment_cache( array_keys($statuses) );
        $result = $wpdb->update($wpdb->comments, array('comment_approved' => 'post-trashed'), array('comment_post_ID' => $post_id));
 
        clean_comment_cache( array_keys($statuses) );
@@ -2699,14 +2851,14 @@ function wp_trash_post_comments($post = null) {
 }
 
 /**
 }
 
 /**
- * Restore comments for a post from the trash
+ * Restore comments for a post from the trash.
  *
  * @since 2.9.0
  *
  *
  * @since 2.9.0
  *
- * @param int|WP_Post $post Optional. Post ID or post object.
- * @return mixed False on failure
+ * @param int|WP_Post $post Optional. Post ID or post object. Defaults to global $post.
+ * @return mixed False on failure.
  */
  */
-function wp_untrash_post_comments($post = null) {
+function wp_untrash_post_comments( $post = null ) {
        global $wpdb;
 
        $post = get_post($post);
        global $wpdb;
 
        $post = get_post($post);
@@ -2729,7 +2881,7 @@ function wp_untrash_post_comments($post = null) {
         */
        do_action( 'untrash_post_comments', $post_id );
 
         */
        do_action( 'untrash_post_comments', $post_id );
 
-       // Restore each comment to its original status
+       // Restore each comment to its original status.
        $group_by_status = array();
        foreach ( $statuses as $comment_id => $comment_status )
                $group_by_status[$comment_status][] = $comment_id;
        $group_by_status = array();
        foreach ( $statuses as $comment_id => $comment_status )
                $group_by_status[$comment_status][] = $comment_id;
@@ -2764,11 +2916,12 @@ function wp_untrash_post_comments($post = null) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @uses wp_get_object_terms() Retrieves the categories. Args details can be found here.
+ * @see wp_get_object_terms()
  *
  *
- * @param int $post_id Optional. The Post ID.
- * @param array $args Optional. Overwrite the defaults.
- * @return array
+ * @param int   $post_id Optional. The Post ID. Does not default to the ID of the
+ *                       global $post. Default 0.
+ * @param array $args    Optional. Category arguments. Default empty.
+ * @return array List of categories.
  */
 function wp_get_post_categories( $post_id = 0, $args = array() ) {
        $post_id = (int) $post_id;
  */
 function wp_get_post_categories( $post_id = 0, $args = array() ) {
        $post_id = (int) $post_id;
@@ -2789,9 +2942,10 @@ function wp_get_post_categories( $post_id = 0, $args = array() ) {
  *
  * @since 2.3.0
  *
  *
  * @since 2.3.0
  *
- * @uses wp_get_object_terms() Gets the tags for returning. Args can be found here
+ * @uses wp_get_object_terms()
  *
  *
- * @param int $post_id Optional. The Post ID
+ * @param int   $post_id Optional. The Post ID. Does not default to the ID of the
+ *                       global $post. Defualt 0.
  * @param array $args Optional. Overwrite the defaults
  * @return array List of post tags.
  */
  * @param array $args Optional. Overwrite the defaults
  * @return array List of post tags.
  */
@@ -2808,11 +2962,12 @@ function wp_get_post_tags( $post_id = 0, $args = array() ) {
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
- * @uses wp_get_object_terms() Gets the tags for returning. Args can be found here
+ * @uses wp_get_object_terms()
  *
  *
- * @param int $post_id Optional. The Post ID
- * @param string $taxonomy The taxonomy for which to retrieve terms. Defaults to post_tag.
- * @param array $args Optional. Overwrite the defaults
+ * @param int    $post_id  Optional. The Post ID. Does not default to the ID of the
+ *                         global $post. Default 0.
+ * @param string $taxonomy Optional. The taxonomy for which to retrieve terms. Default 'post_tag'.
+ * @param array  $args     Optional. {@link wp_get_object_terms()} arguments. Default empty array.
  * @return array List of post tags.
  */
 function wp_get_post_terms( $post_id = 0, $taxonomy = 'post_tag', $args = array() ) {
  * @return array List of post tags.
  */
 function wp_get_post_terms( $post_id = 0, $taxonomy = 'post_tag', $args = array() ) {
@@ -2827,16 +2982,16 @@ function wp_get_post_terms( $post_id = 0, $taxonomy = 'post_tag', $args = array(
 }
 
 /**
 }
 
 /**
- * Retrieve number of recent posts.
+ * Retrieve number of recent posts.
  *
  * @since 1.0.0
  *
  * @since 1.0.0
- * @uses wp_parse_args()
- * @uses get_posts()
  *
  *
- * @param string $deprecated Deprecated.
- * @param array $args Optional. Overrides defaults.
- * @param string $output Optional.
- * @return unknown.
+ * @see get_posts()
+ *
+ * @param string $deprecated Not used.
+ * @param array  $args       Optional. Arguments to retrieve posts. Default empty array.
+ * @param string $output     Optional. Type of output. Accepts ARRAY_A or ''. Default ARRAY_A.
+ * @return array|bool Associative array if $output equals ARRAY_A, array or false if no results.
  */
 function wp_get_recent_posts( $args = array(), $output = ARRAY_A ) {
 
  */
 function wp_get_recent_posts( $args = array(), $output = ARRAY_A ) {
 
@@ -2845,7 +3000,7 @@ function wp_get_recent_posts( $args = array(), $output = ARRAY_A ) {
                $args = array( 'numberposts' => absint( $args ) );
        }
 
                $args = array( 'numberposts' => absint( $args ) );
        }
 
-       // Set default arguments
+       // Set default arguments.
        $defaults = array(
                'numberposts' => 10, 'offset' => 0,
                'category' => 0, 'orderby' => 'post_date',
        $defaults = array(
                'numberposts' => 10, 'offset' => 0,
                'category' => 0, 'orderby' => 'post_date',
@@ -2859,7 +3014,7 @@ function wp_get_recent_posts( $args = array(), $output = ARRAY_A ) {
 
        $results = get_posts( $r );
 
 
        $results = get_posts( $r );
 
-       // Backward compatibility. Prior to 3.1 expected posts to be returned in array
+       // Backward compatibility. Prior to 3.1 expected posts to be returned in array.
        if ( ARRAY_A == $output ){
                foreach( $results as $key => $result ) {
                        $results[$key] = get_object_vars( $result );
        if ( ARRAY_A == $output ){
                foreach( $results as $key => $result ) {
                        $results[$key] = get_object_vars( $result );
@@ -2880,30 +3035,34 @@ function wp_get_recent_posts( $args = array(), $output = ARRAY_A ) {
  * and 'post_date_gmt' keys. You can close the comments or open the comments by
  * setting the value for 'comment_status' key.
  *
  * and 'post_date_gmt' keys. You can close the comments or open the comments by
  * setting the value for 'comment_status' key.
  *
- * @global wpdb $wpdb    WordPress database abstraction object.
- *
  * @since 1.0.0
  *
  * @since 1.0.0
  *
+ * @see sanitize_post()
+ * @global wpdb $wpdb WordPress database abstraction object.
+ *
  * @param array $postarr {
  *     An array of elements that make up a post to update or insert.
  *
  * @param array $postarr {
  *     An array of elements that make up a post to update or insert.
  *
- *     @type int    $ID                    The post ID. If equal to something other than 0, the post with that ID will
- *                                         be updated. Default 0.
+ *     @type int    $ID                    The post ID. If equal to something other than 0,
+ *                                         the post with that ID will be updated. Default 0.
  *     @type string $post_status           The post status. Default 'draft'.
  *     @type string $post_type             The post type. Default 'post'.
  *     @type string $post_status           The post status. Default 'draft'.
  *     @type string $post_type             The post type. Default 'post'.
- *     @type int    $post_author           The ID of the user who added the post. Default the current user ID.
- *     @type bool   $ping_status           Whether the post can accept pings. Default value of 'default_ping_status' option.
+ *     @type int    $post_author           The ID of the user who added the post. Default is
+ *                                         the current user ID.
+ *     @type bool   $ping_status           Whether the post can accept pings. Default is the
+ *                                         value of 'default_ping_status' option.
  *     @type int    $post_parent           Set this for the post it belongs to, if any. Default 0.
  *     @type int    $menu_order            The order it is displayed. Default 0.
  *     @type int    $post_parent           Set this for the post it belongs to, if any. Default 0.
  *     @type int    $menu_order            The order it is displayed. Default 0.
- *     @type string $to_ping               Space or carriage return-separated list of URLs to ping. Default empty string.
- *     @type string $pinged                Space or carriage return-separated list of URLs that have been pinged.
+ *     @type string $to_ping               Space or carriage return-separated list of URLs to ping.
  *                                         Default empty string.
  *                                         Default empty string.
+ *     @type string $pinged                Space or carriage return-separated list of URLs that have
+ *                                         been pinged. Default empty string.
  *     @type string $post_password         The password to access the post. Default empty string.
  *     @type string $guid'                 Global Unique ID for referencing the post.
  *     @type string $post_content_filtered The filtered post content. Default empty string.
  *     @type string $post_excerpt          The post excerpt. Default empty string.
  * }
  *     @type string $post_password         The password to access the post. Default empty string.
  *     @type string $guid'                 Global Unique ID for referencing the post.
  *     @type string $post_content_filtered The filtered post content. Default empty string.
  *     @type string $post_excerpt          The post excerpt. Default empty string.
  * }
- * @param bool  $wp_error Optional. Allow return of WP_Error on failure.
+ * @param bool  $wp_error Optional. Whether to allow return of WP_Error on failure. Default false.
  * @return int|WP_Error The post ID on success. The value 0 or WP_Error on failure.
  */
 function wp_insert_post( $postarr, $wp_error = false ) {
  * @return int|WP_Error The post ID on success. The value 0 or WP_Error on failure.
  */
 function wp_insert_post( $postarr, $wp_error = false ) {
@@ -2915,7 +3074,7 @@ function wp_insert_post( $postarr, $wp_error = false ) {
                'ping_status' => get_option('default_ping_status'), 'post_parent' => 0,
                'menu_order' => 0, 'to_ping' =>  '', 'pinged' => '', 'post_password' => '',
                'guid' => '', 'post_content_filtered' => '', 'post_excerpt' => '', 'import_id' => 0,
                'ping_status' => get_option('default_ping_status'), 'post_parent' => 0,
                'menu_order' => 0, 'to_ping' =>  '', 'pinged' => '', 'post_password' => '',
                'guid' => '', 'post_content_filtered' => '', 'post_excerpt' => '', 'import_id' => 0,
-               'post_content' => '', 'post_title' => '');
+               'post_content' => '', 'post_title' => '', 'context' => '');
 
        $postarr = wp_parse_args($postarr, $defaults);
 
 
        $postarr = wp_parse_args($postarr, $defaults);
 
@@ -2923,32 +3082,44 @@ function wp_insert_post( $postarr, $wp_error = false ) {
 
        $postarr = sanitize_post($postarr, 'db');
 
 
        $postarr = sanitize_post($postarr, 'db');
 
-       // export array as variables
-       extract($postarr, EXTR_SKIP);
-
        // Are we updating or creating?
        $post_ID = 0;
        $update = false;
        // Are we updating or creating?
        $post_ID = 0;
        $update = false;
-       if ( ! empty( $ID ) ) {
+       $guid = $postarr['guid'];
+
+       if ( ! empty( $postarr['ID'] ) ) {
                $update = true;
 
                $update = true;
 
-               // Get the post ID and GUID
-               $post_ID = $ID;
+               // Get the post ID and GUID.
+               $post_ID = $postarr['ID'];
                $post_before = get_post( $post_ID );
                if ( is_null( $post_before ) ) {
                $post_before = get_post( $post_ID );
                if ( is_null( $post_before ) ) {
-                       if ( $wp_error )
+                       if ( $wp_error ) {
                                return new WP_Error( 'invalid_post', __( 'Invalid post ID.' ) );
                                return new WP_Error( 'invalid_post', __( 'Invalid post ID.' ) );
+                       }
                        return 0;
                }
 
                $guid = get_post_field( 'guid', $post_ID );
                        return 0;
                }
 
                $guid = get_post_field( 'guid', $post_ID );
-               $previous_status = get_post_field('post_status', $ID);
+               $previous_status = get_post_field('post_status', $post_ID );
        } else {
                $previous_status = 'new';
        }
 
        } else {
                $previous_status = 'new';
        }
 
-       $maybe_empty = ! $post_content && ! $post_title && ! $post_excerpt && post_type_supports( $post_type, 'editor' )
-               && post_type_supports( $post_type, 'title' ) && post_type_supports( $post_type, 'excerpt' );
+       $post_type = empty( $postarr['post_type'] ) ? 'post' : $postarr['post_type'];
+
+       $post_title = $postarr['post_title'];
+       $post_content = $postarr['post_content'];
+       $post_excerpt = $postarr['post_excerpt'];
+       if ( isset( $postarr['post_name'] ) ) {
+               $post_name = $postarr['post_name'];
+       }
+
+       $maybe_empty = 'attachment' !== $post_type
+               && ! $post_content && ! $post_title && ! $post_excerpt
+               && post_type_supports( $post_type, 'editor' )
+               && post_type_supports( $post_type, 'title' )
+               && post_type_supports( $post_type, 'excerpt' );
 
        /**
         * Filter whether the post should be considered "empty".
 
        /**
         * Filter whether the post should be considered "empty".
@@ -2967,74 +3138,89 @@ function wp_insert_post( $postarr, $wp_error = false ) {
         * @param array $postarr     Array of post data.
         */
        if ( apply_filters( 'wp_insert_post_empty_content', $maybe_empty, $postarr ) ) {
         * @param array $postarr     Array of post data.
         */
        if ( apply_filters( 'wp_insert_post_empty_content', $maybe_empty, $postarr ) ) {
-               if ( $wp_error )
+               if ( $wp_error ) {
                        return new WP_Error( 'empty_content', __( 'Content, title, and excerpt are empty.' ) );
                        return new WP_Error( 'empty_content', __( 'Content, title, and excerpt are empty.' ) );
-               else
+               } else {
                        return 0;
                        return 0;
+               }
        }
 
        }
 
-       if ( empty($post_type) )
-               $post_type = 'post';
-
-       if ( empty($post_status) )
-               $post_status = 'draft';
+       $post_status = empty( $postarr['post_status'] ) ? 'draft' : $postarr['post_status'];
+       if ( 'attachment' === $post_type && ! in_array( $post_status, array( 'inherit', 'private', 'trash' ) ) ) {
+               $post_status = 'inherit';
+       }
 
 
-       if ( !empty($post_category) )
-               $post_category = array_filter($post_category); // Filter out empty terms
+       if ( ! empty( $postarr['post_category'] ) ) {
+               // Filter out empty terms.
+               $post_category = array_filter( $postarr['post_category'] );
+       }
 
        // Make sure we set a valid category.
 
        // Make sure we set a valid category.
-       if ( empty($post_category) || 0 == count($post_category) || !is_array($post_category) ) {
+       if ( empty( $post_category ) || 0 == count( $post_category ) || ! is_array( $post_category ) ) {
                // 'post' requires at least one category.
                // 'post' requires at least one category.
-               if ( 'post' == $post_type && 'auto-draft' != $post_status )
+               if ( 'post' == $post_type && 'auto-draft' != $post_status ) {
                        $post_category = array( get_option('default_category') );
                        $post_category = array( get_option('default_category') );
-               else
+               } else {
                        $post_category = array();
                        $post_category = array();
+               }
        }
 
        }
 
-       if ( empty($post_author) )
-               $post_author = $user_id;
-
-       // Don't allow contributors to set the post slug for pending review posts
-       if ( 'pending' == $post_status && !current_user_can( 'publish_posts' ) )
+       // Don't allow contributors to set the post slug for pending review posts.
+       if ( 'pending' == $post_status && !current_user_can( 'publish_posts' ) ) {
                $post_name = '';
                $post_name = '';
+       }
 
 
-       // Create a valid post name. Drafts and pending posts are allowed to have an empty
-       // post name.
+       /*
+        * Create a valid post name. Drafts and pending posts are allowed to have
+        * an empty post name.
+        */
        if ( empty($post_name) ) {
        if ( empty($post_name) ) {
-               if ( !in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) )
+               if ( !in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) ) {
                        $post_name = sanitize_title($post_title);
                        $post_name = sanitize_title($post_title);
-               else
+               } else {
                        $post_name = '';
                        $post_name = '';
+               }
        } else {
                // On updates, we need to check to see if it's using the old, fixed sanitization context.
                $check_name = sanitize_title( $post_name, '', 'old-save' );
        } else {
                // On updates, we need to check to see if it's using the old, fixed sanitization context.
                $check_name = sanitize_title( $post_name, '', 'old-save' );
-               if ( $update && strtolower( urlencode( $post_name ) ) == $check_name && get_post_field( 'post_name', $ID ) == $check_name )
+               if ( $update && strtolower( urlencode( $post_name ) ) == $check_name && get_post_field( 'post_name', $post_ID ) == $check_name ) {
                        $post_name = $check_name;
                        $post_name = $check_name;
-               else // new post, or slug has changed.
+               } else { // new post, or slug has changed.
                        $post_name = sanitize_title($post_name);
                        $post_name = sanitize_title($post_name);
+               }
        }
 
        }
 
-       // If the post date is empty (due to having been new or a draft) and status is not 'draft' or 'pending', set date to now
-       if ( empty($post_date) || '0000-00-00 00:00:00' == $post_date )
-               $post_date = current_time('mysql');
+       /*
+        * If the post date is empty (due to having been new or a draft) and status
+        * is not 'draft' or 'pending', set date to now.
+        */
+       if ( empty( $postarr['post_date'] ) || '0000-00-00 00:00:00' == $postarr['post_date'] ) {
+               $post_date = current_time( 'mysql' );
+       } else {
+               $post_date = $postarr['post_date'];
+       }
 
 
-               // validate the date
-               $mm = substr( $post_date, 5, 2 );
-               $jj = substr( $post_date, 8, 2 );
-               $aa = substr( $post_date, 0, 4 );
-               $valid_date = wp_checkdate( $mm, $jj, $aa, $post_date );
-               if ( !$valid_date ) {
-                       if ( $wp_error )
-                               return new WP_Error( 'invalid_date', __( 'Whoops, the provided date is invalid.' ) );
-                       else
-                               return 0;
+       // Validate the date.
+       $mm = substr( $post_date, 5, 2 );
+       $jj = substr( $post_date, 8, 2 );
+       $aa = substr( $post_date, 0, 4 );
+       $valid_date = wp_checkdate( $mm, $jj, $aa, $post_date );
+       if ( ! $valid_date ) {
+               if ( $wp_error ) {
+                       return new WP_Error( 'invalid_date', __( 'Whoops, the provided date is invalid.' ) );
+               } else {
+                       return 0;
                }
                }
+       }
 
 
-       if ( empty($post_date_gmt) || '0000-00-00 00:00:00' == $post_date_gmt ) {
-               if ( !in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) )
-                       $post_date_gmt = get_gmt_from_date($post_date);
-               else
+       if ( empty( $postarr['post_date_gmt'] ) || '0000-00-00 00:00:00' == $postarr['post_date_gmt'] ) {
+               if ( ! in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) ) {
+                       $post_date_gmt = get_gmt_from_date( $post_date );
+               } else {
                        $post_date_gmt = '0000-00-00 00:00:00';
                        $post_date_gmt = '0000-00-00 00:00:00';
+               }
+       } else {
+               $post_date_gmt = $postarr['post_date_gmt'];
        }
 
        if ( $update || '0000-00-00 00:00:00' == $post_date ) {
        }
 
        if ( $update || '0000-00-00 00:00:00' == $post_date ) {
@@ -3045,37 +3231,58 @@ function wp_insert_post( $postarr, $wp_error = false ) {
                $post_modified_gmt = $post_date_gmt;
        }
 
                $post_modified_gmt = $post_date_gmt;
        }
 
-       if ( 'publish' == $post_status ) {
-               $now = gmdate('Y-m-d H:i:59');
-               if ( mysql2date('U', $post_date_gmt, false) > mysql2date('U', $now, false) )
-                       $post_status = 'future';
-       } elseif( 'future' == $post_status ) {
-               $now = gmdate('Y-m-d H:i:59');
-               if ( mysql2date('U', $post_date_gmt, false) <= mysql2date('U', $now, false) )
-                       $post_status = 'publish';
+       if ( 'attachment' !== $post_type ) {
+               if ( 'publish' == $post_status ) {
+                       $now = gmdate('Y-m-d H:i:59');
+                       if ( mysql2date('U', $post_date_gmt, false) > mysql2date('U', $now, false) ) {
+                               $post_status = 'future';
+                       }
+               } elseif( 'future' == $post_status ) {
+                       $now = gmdate('Y-m-d H:i:59');
+                       if ( mysql2date('U', $post_date_gmt, false) <= mysql2date('U', $now, false) ) {
+                               $post_status = 'publish';
+                       }
+               }
        }
 
        }
 
-       if ( empty($comment_status) ) {
-               if ( $update )
+       if ( empty( $postarr['comment_status'] ) ) {
+               if ( $update ) {
                        $comment_status = 'closed';
                        $comment_status = 'closed';
-               else
+               } else {
                        $comment_status = get_option('default_comment_status');
                        $comment_status = get_option('default_comment_status');
+               }
+       } else {
+               $comment_status = $postarr['comment_status'];
        }
        }
-       if ( empty($ping_status) )
-               $ping_status = get_option('default_ping_status');
 
 
-       if ( isset($to_ping) )
-               $to_ping = sanitize_trackback_urls( $to_ping );
-       else
-               $to_ping = '';
+       // These variables are needed by compact() later.
+       $post_content_filtered = $postarr['post_content_filtered'];
+       $post_author = empty( $postarr['post_author'] ) ? $user_id : $postarr['post_author'];
+       $ping_status = empty( $postarr['ping_status'] ) ? get_option( 'default_ping_status' ) : $postarr['ping_status'];
+       $to_ping = isset( $postarr['to_ping'] ) ? sanitize_trackback_urls( $postarr['to_ping'] ) : '';
+       $pinged = isset( $postarr['pinged'] ) ? $postarr['pinged'] : '';
+       $import_id = isset( $postarr['import_id'] ) ? $postarr['import_id'] : 0;
+
+       /*
+        * The 'wp_insert_post_parent' filter expects all variables to be present.
+        * Previously, these variables would have already been extracted
+        */
+       if ( isset( $postarr['menu_order'] ) ) {
+               $menu_order = (int) $postarr['menu_order'];
+       } else {
+               $menu_order = 0;
+       }
 
 
-       if ( ! isset($pinged) )
-               $pinged = '';
+       $post_password = isset( $postarr['post_password'] ) ? $postarr['post_password'] : '';
+       if ( 'private' == $post_status ) {
+               $post_password = '';
+       }
 
 
-       if ( isset($post_parent) )
-               $post_parent = (int) $post_parent;
-       else
+       if ( isset( $postarr['post_parent'] ) ) {
+               $post_parent = (int) $postarr['post_parent'];
+       } else {
                $post_parent = 0;
                $post_parent = 0;
+       }
 
        /**
         * Filter the post parent -- used to check for and prevent hierarchy loops.
 
        /**
         * Filter the post parent -- used to check for and prevent hierarchy loops.
@@ -3089,28 +3296,35 @@ function wp_insert_post( $postarr, $wp_error = false ) {
         */
        $post_parent = apply_filters( 'wp_insert_post_parent', $post_parent, $post_ID, compact( array_keys( $postarr ) ), $postarr );
 
         */
        $post_parent = apply_filters( 'wp_insert_post_parent', $post_parent, $post_ID, compact( array_keys( $postarr ) ), $postarr );
 
-       if ( isset($menu_order) )
-               $menu_order = (int) $menu_order;
-       else
-               $menu_order = 0;
-
-       if ( !isset($post_password) || 'private' == $post_status )
-               $post_password = '';
+       $post_name = wp_unique_post_slug( $post_name, $post_ID, $post_status, $post_type, $post_parent );
 
 
-       $post_name = wp_unique_post_slug($post_name, $post_ID, $post_status, $post_type, $post_parent);
+       // Don't unslash.
+       $post_mime_type = isset( $postarr['post_mime_type'] ) ? $postarr['post_mime_type'] : '';
 
 
-       // expected_slashed (everything!)
-       $data = compact( array( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'guid' ) );
+       // Expected_slashed (everything!).
+       $data = compact( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'post_mime_type', 'guid' );
 
 
-       /**
-        * Filter slashed post data just before it is inserted into the database.
-        *
-        * @since 2.7.0
-        *
-        * @param array $data    Array of slashed post data.
-        * @param array $postarr Array of sanitized, but otherwise unmodified post data.
-        */
-       $data = apply_filters( 'wp_insert_post_data', $data, $postarr );
+       if ( 'attachment' === $post_type ) {
+               /**
+                * Filter attachment post data before it is updated in or added to the database.
+                *
+                * @since 3.9.0
+                *
+                * @param array $data    An array of sanitized attachment post data.
+                * @param array $postarr An array of unsanitized attachment post data.
+                */
+               $data = apply_filters( 'wp_insert_attachment_data', $data, $postarr );
+       } else {
+               /**
+                * Filter slashed post data just before it is inserted into the database.
+                *
+                * @since 2.7.0
+                *
+                * @param array $data    An array of slashed post data.
+                * @param array $postarr An array of sanitized, but otherwise unmodified post data.
+                */
+               $data = apply_filters( 'wp_insert_post_data', $data, $postarr );
+       }
        $data = wp_unslash( $data );
        $where = array( 'ID' => $post_ID );
 
        $data = wp_unslash( $data );
        $where = array( 'ID' => $post_ID );
 
@@ -3125,78 +3339,120 @@ function wp_insert_post( $postarr, $wp_error = false ) {
                 */
                do_action( 'pre_post_update', $post_ID, $data );
                if ( false === $wpdb->update( $wpdb->posts, $data, $where ) ) {
                 */
                do_action( 'pre_post_update', $post_ID, $data );
                if ( false === $wpdb->update( $wpdb->posts, $data, $where ) ) {
-                       if ( $wp_error )
+                       if ( $wp_error ) {
                                return new WP_Error('db_update_error', __('Could not update post in the database'), $wpdb->last_error);
                                return new WP_Error('db_update_error', __('Could not update post in the database'), $wpdb->last_error);
-                       else
+                       } else {
                                return 0;
                                return 0;
+                       }
                }
        } else {
                }
        } else {
-               if ( isset($post_mime_type) )
-                       $data['post_mime_type'] = wp_unslash( $post_mime_type ); // This isn't in the update
-               // If there is a suggested ID, use it if not already present
-               if ( !empty($import_id) ) {
+               // If there is a suggested ID, use it if not already present.
+               if ( ! empty( $import_id ) ) {
                        $import_id = (int) $import_id;
                        if ( ! $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE ID = %d", $import_id) ) ) {
                                $data['ID'] = $import_id;
                        }
                }
                if ( false === $wpdb->insert( $wpdb->posts, $data ) ) {
                        $import_id = (int) $import_id;
                        if ( ! $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE ID = %d", $import_id) ) ) {
                                $data['ID'] = $import_id;
                        }
                }
                if ( false === $wpdb->insert( $wpdb->posts, $data ) ) {
-                       if ( $wp_error )
+                       if ( $wp_error ) {
                                return new WP_Error('db_insert_error', __('Could not insert post into the database'), $wpdb->last_error);
                                return new WP_Error('db_insert_error', __('Could not insert post into the database'), $wpdb->last_error);
-                       else
+                       } else {
                                return 0;
                                return 0;
+                       }
                }
                $post_ID = (int) $wpdb->insert_id;
 
                }
                $post_ID = (int) $wpdb->insert_id;
 
-               // use the newly generated $post_ID
+               // Use the newly generated $post_ID.
                $where = array( 'ID' => $post_ID );
        }
 
                $where = array( 'ID' => $post_ID );
        }
 
-       if ( empty($data['post_name']) && !in_array( $data['post_status'], array( 'draft', 'pending', 'auto-draft' ) ) ) {
-               $data['post_name'] = sanitize_title($data['post_title'], $post_ID);
+       if ( empty( $data['post_name'] ) && ! in_array( $data['post_status'], array( 'draft', 'pending', 'auto-draft' ) ) ) {
+               $data['post_name'] = sanitize_title( $data['post_title'], $post_ID );
                $wpdb->update( $wpdb->posts, array( 'post_name' => $data['post_name'] ), $where );
        }
 
                $wpdb->update( $wpdb->posts, array( 'post_name' => $data['post_name'] ), $where );
        }
 
-       if ( is_object_in_taxonomy($post_type, 'category') )
+       if ( is_object_in_taxonomy( $post_type, 'category' ) ) {
                wp_set_post_categories( $post_ID, $post_category );
                wp_set_post_categories( $post_ID, $post_category );
+       }
 
 
-       if ( isset( $tags_input ) && is_object_in_taxonomy($post_type, 'post_tag') )
-               wp_set_post_tags( $post_ID, $tags_input );
+       if ( isset( $postarr['tags_input'] ) && is_object_in_taxonomy( $post_type, 'post_tag' ) ) {
+               wp_set_post_tags( $post_ID, $postarr['tags_input'] );
+       }
 
 
-       // new-style support for all custom taxonomies
-       if ( !empty($tax_input) ) {
-               foreach ( $tax_input as $taxonomy => $tags ) {
+       // New-style support for all custom taxonomies.
+       if ( ! empty( $postarr['tax_input'] ) ) {
+               foreach ( $postarr['tax_input'] as $taxonomy => $tags ) {
                        $taxonomy_obj = get_taxonomy($taxonomy);
                        $taxonomy_obj = get_taxonomy($taxonomy);
-                       if ( is_array($tags) ) // array = hierarchical, string = non-hierarchical.
+                       // array = hierarchical, string = non-hierarchical.
+                       if ( is_array( $tags ) ) {
                                $tags = array_filter($tags);
                                $tags = array_filter($tags);
-                       if ( current_user_can($taxonomy_obj->cap->assign_terms) )
+                       }
+                       if ( current_user_can( $taxonomy_obj->cap->assign_terms ) ) {
                                wp_set_post_terms( $post_ID, $tags, $taxonomy );
                                wp_set_post_terms( $post_ID, $tags, $taxonomy );
+                       }
                }
        }
 
        $current_guid = get_post_field( 'guid', $post_ID );
 
                }
        }
 
        $current_guid = get_post_field( 'guid', $post_ID );
 
-       // Set GUID
-       if ( !$update && '' == $current_guid )
+       // Set GUID.
+       if ( ! $update && '' == $current_guid ) {
                $wpdb->update( $wpdb->posts, array( 'guid' => get_permalink( $post_ID ) ), $where );
                $wpdb->update( $wpdb->posts, array( 'guid' => get_permalink( $post_ID ) ), $where );
+       }
+
+       if ( 'attachment' === $postarr['post_type'] ) {
+               if ( ! empty( $postarr['file'] ) ) {
+                       update_attached_file( $post_ID, $postarr['file'] );
+               }
+
+               if ( ! empty( $postarr['context'] ) ) {
+                       add_post_meta( $post_ID, '_wp_attachment_context', $postarr['context'], true );
+               }
+       }
 
        clean_post_cache( $post_ID );
 
 
        clean_post_cache( $post_ID );
 
-       $post = get_post($post_ID);
+       $post = get_post( $post_ID );
 
 
-       if ( !empty($page_template) && 'page' == $data['post_type'] ) {
-               $post->page_template = $page_template;
+       if ( ! empty( $postarr['page_template'] ) && 'page' == $data['post_type'] ) {
+               $post->page_template = $postarr['page_template'];
                $page_templates = wp_get_theme()->get_page_templates( $post );
                $page_templates = wp_get_theme()->get_page_templates( $post );
-               if ( 'default' != $page_template && ! isset( $page_templates[ $page_template ] ) ) {
-                       if ( $wp_error )
+               if ( 'default' != $postarr['page_template'] && ! isset( $page_templates[ $postarr['page_template'] ] ) ) {
+                       if ( $wp_error ) {
                                return new WP_Error('invalid_page_template', __('The page template is invalid.'));
                                return new WP_Error('invalid_page_template', __('The page template is invalid.'));
-                       else
+                       } else {
                                return 0;
                                return 0;
+                       }
                }
                }
-               update_post_meta($post_ID, '_wp_page_template',  $page_template);
+               update_post_meta( $post_ID, '_wp_page_template', $postarr['page_template'] );
        }
 
        }
 
-       wp_transition_post_status($data['post_status'], $previous_status, $post);
+       if ( 'attachment' !== $postarr['post_type'] ) {
+               wp_transition_post_status( $data['post_status'], $previous_status, $post );
+       } else {
+               if ( $update ) {
+                       /**
+                        * Fires once an existing attachment has been updated.
+                        *
+                        * @since 2.0.0
+                        *
+                        * @param int $post_ID Attachment ID.
+                        */
+                       do_action( 'edit_attachment', $post_ID );
+               } else {
+
+                       /**
+                        * Fires once an attachment has been added.
+                        *
+                        * @since 2.0.0
+                        *
+                        * @param int $post_ID Attachment ID.
+                        */
+                       do_action( 'add_attachment', $post_ID );
+               }
+
+               return $post_ID;
+       }
 
        if ( $update ) {
                /**
 
        if ( $update ) {
                /**
@@ -3269,18 +3525,19 @@ function wp_insert_post( $postarr, $wp_error = false ) {
  *
  * @since 1.0.0
  *
  *
  * @since 1.0.0
  *
- * @param array|object $postarr Post data. Arrays are expected to be escaped, objects are not.
- * @param bool $wp_error Optional. Allow return of WP_Error on failure.
+ * @param array|object $postarr  Optional. Post data. Arrays are expected to be escaped,
+ *                               objects are not. Default array.
+ * @param bool         $wp_error Optional. Allow return of WP_Error on failure. Default false.
  * @return int|WP_Error The value 0 or WP_Error on failure. The post ID on success.
  */
 function wp_update_post( $postarr = array(), $wp_error = false ) {
        if ( is_object($postarr) ) {
  * @return int|WP_Error The value 0 or WP_Error on failure. The post ID on success.
  */
 function wp_update_post( $postarr = array(), $wp_error = false ) {
        if ( is_object($postarr) ) {
-               // non-escaped post was passed
+               // Non-escaped post was passed.
                $postarr = get_object_vars($postarr);
                $postarr = wp_slash($postarr);
        }
 
                $postarr = get_object_vars($postarr);
                $postarr = wp_slash($postarr);
        }
 
-       // First, get all of the original fields
+       // First, get all of the original fields.
        $post = get_post($postarr['ID'], ARRAY_A);
 
        if ( is_null( $post ) ) {
        $post = get_post($postarr['ID'], ARRAY_A);
 
        if ( is_null( $post ) ) {
@@ -3299,7 +3556,7 @@ function wp_update_post( $postarr = array(), $wp_error = false ) {
        else
                $post_cats = $post['post_category'];
 
        else
                $post_cats = $post['post_category'];
 
-       // Drafts shouldn't be assigned a date unless explicitly done so by the user
+       // Drafts shouldn't be assigned a date unless explicitly done so by the user.
        if ( isset( $post['post_status'] ) && in_array($post['post_status'], array('draft', 'pending', 'auto-draft')) && empty($postarr['edit_date']) &&
                         ('0000-00-00 00:00:00' == $post['post_date_gmt']) )
                $clear_date = true;
        if ( isset( $post['post_status'] ) && in_array($post['post_status'], array('draft', 'pending', 'auto-draft')) && empty($postarr['edit_date']) &&
                         ('0000-00-00 00:00:00' == $post['post_date_gmt']) )
                $clear_date = true;
@@ -3324,7 +3581,8 @@ function wp_update_post( $postarr = array(), $wp_error = false ) {
  * Publish a post by transitioning the post status.
  *
  * @since 2.1.0
  * Publish a post by transitioning the post status.
  *
  * @since 2.1.0
- * @uses $wpdb
+ *
+ * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param int|WP_Post $post Post ID or post object.
  */
  *
  * @param int|WP_Post $post Post ID or post object.
  */
@@ -3347,10 +3605,13 @@ function wp_publish_post( $post ) {
 
        /** This action is documented in wp-includes/post.php */
        do_action( 'edit_post', $post->ID, $post );
 
        /** This action is documented in wp-includes/post.php */
        do_action( 'edit_post', $post->ID, $post );
+
        /** This action is documented in wp-includes/post.php */
        do_action( "save_post_{$post->post_type}", $post->ID, $post, true );
        /** This action is documented in wp-includes/post.php */
        do_action( "save_post_{$post->post_type}", $post->ID, $post, true );
+
        /** This action is documented in wp-includes/post.php */
        do_action( 'save_post', $post->ID, $post, true );
        /** This action is documented in wp-includes/post.php */
        do_action( 'save_post', $post->ID, $post, true );
+
        /** This action is documented in wp-includes/post.php */
        do_action( 'wp_insert_post', $post->ID, $post, true );
 }
        /** This action is documented in wp-includes/post.php */
        do_action( 'wp_insert_post', $post->ID, $post, true );
 }
@@ -3364,9 +3625,10 @@ function wp_publish_post( $post ) {
  * @since 2.5.0
  *
  * @param int|WP_Post $post_id Post ID or post object.
  * @since 2.5.0
  *
  * @param int|WP_Post $post_id Post ID or post object.
- * @return null Nothing is returned. Which can mean that no action is required or post was published.
+ * @return null Nothing is returned. Which can mean that no action is required
+ *              or post was published.
  */
  */
-function check_and_publish_future_post($post_id) {
+function check_and_publish_future_post( $post_id ) {
 
        $post = get_post($post_id);
 
 
        $post = get_post($post_id);
 
@@ -3378,7 +3640,8 @@ function check_and_publish_future_post($post_id) {
 
        $time = strtotime( $post->post_date_gmt . ' GMT' );
 
 
        $time = strtotime( $post->post_date_gmt . ' GMT' );
 
-       if ( $time > time() ) { // Uh oh, someone jumped the gun!
+       // Uh oh, someone jumped the gun!
+       if ( $time > time() ) {
                wp_clear_scheduled_hook( 'publish_future_post', array( $post_id ) ); // clear anything else in the system
                wp_schedule_single_event( $time, 'publish_future_post', array( $post_id ) );
                return;
                wp_clear_scheduled_hook( 'publish_future_post', array( $post_id ) ); // clear anything else in the system
                wp_schedule_single_event( $time, 'publish_future_post', array( $post_id ) );
                return;
@@ -3392,14 +3655,15 @@ function check_and_publish_future_post($post_id) {
  *
  * @since 2.8.0
  *
  *
  * @since 2.8.0
  *
- * @global wpdb $wpdb
+ * @global wpdb $wpdb WordPress database abstraction object.
  * @global WP_Rewrite $wp_rewrite
  * @global WP_Rewrite $wp_rewrite
- * @param string $slug the desired slug (post_name)
- * @param integer $post_ID
- * @param string $post_status no uniqueness checks are made if the post is still draft or pending
- * @param string $post_type
- * @param integer $post_parent
- * @return string unique slug for the post, based on $post_name (with a -1, -2, etc. suffix)
+ *
+ * @param string $slug        The desired slug (post_name).
+ * @param int    $post_ID     Post ID.
+ * @param string $post_status No uniqueness checks are made if the post is still draft or pending.
+ * @param string $post_type   Post type.
+ * @param int    $post_parent Post parent ID.
+ * @return string Unique slug for the post, based on $post_name (with a -1, -2, etc. suffix)
  */
 function wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent ) {
        if ( in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) || ( 'inherit' == $post_status && 'revision' == $post_type ) )
  */
 function wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent ) {
        if ( in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) || ( 'inherit' == $post_status && 'revision' == $post_type ) )
@@ -3507,14 +3771,15 @@ function wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_p
 }
 
 /**
 }
 
 /**
- * Truncates a post slug.
+ * Truncate a post slug.
  *
  * @since 3.6.0
  * @access private
  *
  * @since 3.6.0
  * @access private
- * @uses utf8_uri_encode() Makes sure UTF-8 characters are properly cut and encoded.
  *
  *
- * @param string $slug The slug to truncate.
- * @param int $length Max length of the slug.
+ * @see utf8_uri_encode()
+ *
+ * @param string $slug   The slug to truncate.
+ * @param int    $length Optional. Max length of the slug. Default 200 (characters).
  * @return string The truncated slug.
  */
 function _truncate_post_slug( $slug, $length = 200 ) {
  * @return string The truncated slug.
  */
 function _truncate_post_slug( $slug, $length = 200 ) {
@@ -3530,17 +3795,18 @@ function _truncate_post_slug( $slug, $length = 200 ) {
 }
 
 /**
 }
 
 /**
- * Adds tags to a post.
+ * Add tags to a post.
  *
  *
- * @uses wp_set_post_tags() Same first two parameters, but the last parameter is always set to true.
+ * @see wp_set_post_tags()
  *
  * @since 2.3.0
  *
  *
  * @since 2.3.0
  *
- * @param int $post_id Post ID
- * @param string $tags The tags to set for the post, separated by commas.
- * @return bool|null Will return false if $post_id is not an integer or is 0. Will return null otherwise
+ * @param int    $post_id Optional. The Post ID. Does not default to the ID of the global $post.
+ *                        Default 0.
+ * @param string $tags    Optional. The tags to set for the post, separated by commas. Default empty.
+ * @return bool|null Will return false if $post_id is not an integer or is 0. Will return null otherwise.
  */
  */
-function wp_add_post_tags($post_id = 0, $tags = '') {
+function wp_add_post_tags( $post_id = 0, $tags = '' ) {
        return wp_set_post_tags($post_id, $tags, true);
 }
 
        return wp_set_post_tags($post_id, $tags, true);
 }
 
@@ -3548,11 +3814,14 @@ function wp_add_post_tags($post_id = 0, $tags = '') {
  * Set the tags for a post.
  *
  * @since 2.3.0
  * Set the tags for a post.
  *
  * @since 2.3.0
- * @uses wp_set_object_terms() Sets the tags for the post.
  *
  *
- * @param int $post_id Post ID.
- * @param string $tags The tags to set for the post, separated by commas.
- * @param bool $append If true, don't delete existing tags, just add on. If false, replace the tags with the new tags.
+ * @see wp_set_object_terms()
+ *
+ * @param int    $post_id Optional. The Post ID. Does not default to the ID of the global $post.
+ * @param string $tags    Optional. The tags to set for the post, separated by commas.
+ *                        Default empty.
+ * @param bool   $append  Optional. If true, don't delete existing tags, just add on. If false,
+ *                        replace the tags with the new tags. Default false.
  * @return mixed Array of affected term IDs. WP_Error or false on failure.
  */
 function wp_set_post_tags( $post_id = 0, $tags = '', $append = false ) {
  * @return mixed Array of affected term IDs. WP_Error or false on failure.
  */
 function wp_set_post_tags( $post_id = 0, $tags = '', $append = false ) {
@@ -3563,12 +3832,14 @@ function wp_set_post_tags( $post_id = 0, $tags = '', $append = false ) {
  * Set the terms for a post.
  *
  * @since 2.8.0
  * Set the terms for a post.
  *
  * @since 2.8.0
- * @uses wp_set_object_terms() Sets the tags for the post.
  *
  *
- * @param int $post_id Post ID.
- * @param string $tags The tags to set for the post, separated by commas.
- * @param string $taxonomy Taxonomy name. Defaults to 'post_tag'.
- * @param bool $append If true, don't delete existing tags, just add on. If false, replace the tags with the new tags.
+ * @see wp_set_object_terms()
+ *
+ * @param int    $post_id  Optional. The Post ID. Does not default to the ID of the global $post.
+ * @param string $tags     Optional. The tags to set for the post, separated by commas. Default empty.
+ * @param string $taxonomy Optional. Taxonomy name. Default 'post_tag'.
+ * @param bool   $append   Optional. If true, don't delete existing tags, just add on. If false,
+ *                         replace the tags with the new tags. Default false.
  * @return mixed Array of affected term IDs. WP_Error or false on failure.
  */
 function wp_set_post_terms( $post_id = 0, $tags = '', $taxonomy = 'post_tag', $append = false ) {
  * @return mixed Array of affected term IDs. WP_Error or false on failure.
  */
 function wp_set_post_terms( $post_id = 0, $tags = '', $taxonomy = 'post_tag', $append = false ) {
@@ -3587,8 +3858,10 @@ function wp_set_post_terms( $post_id = 0, $tags = '', $taxonomy = 'post_tag', $a
                $tags = explode( ',', trim( $tags, " \n\t\r\0\x0B," ) );
        }
 
                $tags = explode( ',', trim( $tags, " \n\t\r\0\x0B," ) );
        }
 
-       // Hierarchical taxonomies must always pass IDs rather than names so that children with the same
-       // names but different parents aren't confused.
+       /*
+        * Hierarchical taxonomies must always pass IDs rather than names so that
+        * children with the same names but different parents aren't confused.
+        */
        if ( is_taxonomy_hierarchical( $taxonomy ) ) {
                $tags = array_unique( array_map( 'intval', $tags ) );
        }
        if ( is_taxonomy_hierarchical( $taxonomy ) ) {
                $tags = array_unique( array_map( 'intval', $tags ) );
        }
@@ -3604,9 +3877,12 @@ function wp_set_post_terms( $post_id = 0, $tags = '', $taxonomy = 'post_tag', $a
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int $post_ID Post ID.
+ * @param int       $post_ID         Optional. The Post ID. Does not default to the ID
+ *                                   of the global $post. Default 0.
  * @param array|int $post_categories Optional. List of categories or ID of category.
  * @param array|int $post_categories Optional. List of categories or ID of category.
- * @param bool $append If true, don't delete existing categories, just add on. If false, replace the categories with the new categories.
+ *                                   Default empty array.
+ * @param bool      $append         If true, don't delete existing categories, just add on.
+ *                                  If false, replace the categories with the new categories.
  * @return bool|mixed
  */
 function wp_set_post_categories( $post_ID = 0, $post_categories = array(), $append = false ) {
  * @return bool|mixed
  */
 function wp_set_post_categories( $post_ID = 0, $post_categories = array(), $append = false ) {
@@ -3645,13 +3921,11 @@ function wp_set_post_categories( $post_ID = 0, $post_categories = array(), $appe
  *
  * @since 2.3.0
  *
  *
  * @since 2.3.0
  *
- * @link http://codex.wordpress.org/Post_Status_Transitions
- *
  * @param string $new_status Transition to this post status.
  * @param string $old_status Previous post status.
  * @param object $post Post data.
  */
  * @param string $new_status Transition to this post status.
  * @param string $old_status Previous post status.
  * @param object $post Post data.
  */
-function wp_transition_post_status($new_status, $old_status, $post) {
+function wp_transition_post_status( $new_status, $old_status, $post ) {
        /**
         * Fires when a post is transitioned from one status to another.
         *
        /**
         * Fires when a post is transitioned from one status to another.
         *
@@ -3694,16 +3968,17 @@ function wp_transition_post_status($new_status, $old_status, $post) {
 //
 
 /**
 //
 
 /**
- * Add a URL to those already pung.
+ * Add a URL to those already pinged.
  *
  * @since 1.5.0
  *
  * @since 1.5.0
- * @uses $wpdb
  *
  *
- * @param int $post_id Post ID.
- * @param string $uri Ping URI.
+ * @global wpdb $wpdb WordPress database abstraction object.
+ *
+ * @param int    $post_id Post ID.
+ * @param string $uri     Ping URI.
  * @return int How many rows were updated.
  */
  * @return int How many rows were updated.
  */
-function add_ping($post_id, $uri) {
+function add_ping( $post_id, $uri ) {
        global $wpdb;
        $pung = $wpdb->get_var( $wpdb->prepare( "SELECT pinged FROM $wpdb->posts WHERE ID = %d", $post_id ));
        $pung = trim($pung);
        global $wpdb;
        $pung = $wpdb->get_var( $wpdb->prepare( "SELECT pinged FROM $wpdb->posts WHERE ID = %d", $post_id ));
        $pung = trim($pung);
@@ -3720,7 +3995,7 @@ function add_ping($post_id, $uri) {
         */
        $new = apply_filters( 'add_ping', $new );
 
         */
        $new = apply_filters( 'add_ping', $new );
 
-       // expected_slashed ($new)
+       // expected_slashed ($new).
        $new = wp_unslash($new);
        return $wpdb->update( $wpdb->posts, array( 'pinged' => $new ), array( 'ID' => $post_id ) );
 }
        $new = wp_unslash($new);
        return $wpdb->update( $wpdb->posts, array( 'pinged' => $new ), array( 'ID' => $post_id ) );
 }
@@ -3731,9 +4006,9 @@ function add_ping($post_id, $uri) {
  * @since 1.5.0
  *
  * @param int $post_id Post ID.
  * @since 1.5.0
  *
  * @param int $post_id Post ID.
- * @return array List of enclosures
+ * @return array List of enclosures.
  */
  */
-function get_enclosed($post_id) {
+function get_enclosed( $post_id ) {
        $custom_fields = get_post_custom( $post_id );
        $pung = array();
        if ( !is_array( $custom_fields ) )
        $custom_fields = get_post_custom( $post_id );
        $pung = array();
        if ( !is_array( $custom_fields ) )
@@ -3764,12 +4039,13 @@ function get_enclosed($post_id) {
  * Retrieve URLs already pinged for a post.
  *
  * @since 1.5.0
  * Retrieve URLs already pinged for a post.
  *
  * @since 1.5.0
- * @uses $wpdb
+ *
+ * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param int $post_id Post ID.
  * @return array
  */
  *
  * @param int $post_id Post ID.
  * @return array
  */
-function get_pung($post_id) {
+function get_pung( $post_id ) {
        global $wpdb;
        $pung = $wpdb->get_var( $wpdb->prepare( "SELECT pinged FROM $wpdb->posts WHERE ID = %d", $post_id ));
        $pung = trim($pung);
        global $wpdb;
        $pung = $wpdb->get_var( $wpdb->prepare( "SELECT pinged FROM $wpdb->posts WHERE ID = %d", $post_id ));
        $pung = trim($pung);
@@ -3790,12 +4066,13 @@ function get_pung($post_id) {
  * Retrieve URLs that need to be pinged.
  *
  * @since 1.5.0
  * Retrieve URLs that need to be pinged.
  *
  * @since 1.5.0
- * @uses $wpdb
+ *
+ * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param int $post_id Post ID
  * @return array
  */
  *
  * @param int $post_id Post ID
  * @return array
  */
-function get_to_ping($post_id) {
+function get_to_ping( $post_id ) {
        global $wpdb;
        $to_ping = $wpdb->get_var( $wpdb->prepare( "SELECT to_ping FROM $wpdb->posts WHERE ID = %d", $post_id ));
        $to_ping = sanitize_trackback_urls( $to_ping );
        global $wpdb;
        $to_ping = $wpdb->get_var( $wpdb->prepare( "SELECT to_ping FROM $wpdb->posts WHERE ID = %d", $post_id ));
        $to_ping = sanitize_trackback_urls( $to_ping );
@@ -3817,28 +4094,25 @@ function get_to_ping($post_id) {
  *
  * @since 1.0.0
  *
  *
  * @since 1.0.0
  *
- * @param string $tb_list Comma separated list of URLs
- * @param int $post_id Post ID
+ * @param string $tb_list Comma separated list of URLs.
+ * @param int    $post_id Post ID.
  */
  */
-function trackback_url_list($tb_list, $post_id) {
+function trackback_url_list( $tb_list, $post_id ) {
        if ( ! empty( $tb_list ) ) {
        if ( ! empty( $tb_list ) ) {
-               // get post data
-               $postdata = get_post($post_id, ARRAY_A);
+               // Get post data.
+               $postdata = get_post( $post_id, ARRAY_A );
 
 
-               // import postdata as variables
-               extract($postdata, EXTR_SKIP);
+               // Form an excerpt.
+               $excerpt = strip_tags( $postdata['post_excerpt'] ? $postdata['post_excerpt'] : $postdata['post_content'] );
 
 
-               // form an excerpt
-               $excerpt = strip_tags($post_excerpt ? $post_excerpt : $post_content);
-
-               if (strlen($excerpt) > 255) {
-                       $excerpt = substr($excerpt,0,252) . '&hellip;';
+               if ( strlen( $excerpt ) > 255 ) {
+                       $excerpt = substr( $excerpt, 0, 252 ) . '&hellip;';
                }
 
                }
 
-               $trackback_urls = explode(',', $tb_list);
-               foreach( (array) $trackback_urls as $tb_url) {
-                       $tb_url = trim($tb_url);
-                       trackback($tb_url, wp_unslash($post_title), $excerpt, $post_id);
+               $trackback_urls = explode( ',', $tb_list );
+               foreach( (array) $trackback_urls as $tb_url ) {
+                       $tb_url = trim( $tb_url );
+                       trackback( $tb_url, wp_unslash( $postdata['post_title'] ), $excerpt, $post_id );
                }
        }
 }
                }
        }
 }
@@ -3851,7 +4125,8 @@ function trackback_url_list($tb_list, $post_id) {
  * Get a list of page IDs.
  *
  * @since 2.0.0
  * Get a list of page IDs.
  *
  * @since 2.0.0
- * @uses $wpdb
+ *
+ * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @return array List of page IDs.
  */
  *
  * @return array List of page IDs.
  */
@@ -3873,12 +4148,14 @@ function get_all_page_ids() {
  * Use get_post() instead of get_page().
  *
  * @since 1.5.1
  * Use get_post() instead of get_page().
  *
  * @since 1.5.1
- * @deprecated 3.5.0
- *
- * @param mixed $page Page object or page ID. Passed by reference.
- * @param string $output What to output. OBJECT, ARRAY_A, or ARRAY_N.
- * @param string $filter How the return value should be filtered.
- * @return WP_Post|null WP_Post on success or null on failure
+ * @deprecated 3.5.0 Use get_post()
+ *
+ * @param mixed  $page   Page object or page ID. Passed by reference.
+ * @param string $output Optional. What to output. Accepts OBJECT, ARRAY_A, or ARRAY_N.
+ *                       Default OBJECT.
+ * @param string $filter Optional. How the return value should be filtered. Accepts 'raw',
+ *                       'edit', 'db', 'display'. Default 'raw'.
+ * @return WP_Post|null WP_Post on success or null on failure.
  */
 function get_page( $page, $output = OBJECT, $filter = 'raw') {
        return get_post( $page, $output, $filter );
  */
 function get_page( $page, $output = OBJECT, $filter = 'raw') {
        return get_post( $page, $output, $filter );
@@ -3888,12 +4165,14 @@ function get_page( $page, $output = OBJECT, $filter = 'raw') {
  * Retrieves a page given its path.
  *
  * @since 2.1.0
  * Retrieves a page given its path.
  *
  * @since 2.1.0
- * @uses $wpdb
  *
  *
- * @param string $page_path Page path
- * @param string $output Optional. Output type. OBJECT, ARRAY_N, or ARRAY_A. Default OBJECT.
- * @param string|array $post_type Optional. Post type or array of post types. Default page.
- * @return WP_Post|null WP_Post on success or null on failure
+ * @global wpdb $wpdb WordPress database abstraction object.
+ *
+ * @param string       $page_path Page path.
+ * @param string       $output    Optional. Output type. Accepts OBJECT, ARRAY_N, or ARRAY_A.
+ *                                Default OBJECT.
+ * @param string|array $post_type Optional. Post type or array of post types. Default 'page'.
+ * @return WP_Post|null WP_Post on success or null on failure.
  */
 function get_page_by_path( $page_path, $output = OBJECT, $post_type = 'page' ) {
        global $wpdb;
  */
 function get_page_by_path( $page_path, $output = OBJECT, $post_type = 'page' ) {
        global $wpdb;
@@ -3957,11 +4236,13 @@ function get_page_by_path( $page_path, $output = OBJECT, $post_type = 'page' ) {
  * Retrieve a page given its title.
  *
  * @since 2.1.0
  * Retrieve a page given its title.
  *
  * @since 2.1.0
- * @uses $wpdb
  *
  *
- * @param string $page_title Page title
- * @param string $output Optional. Output type. OBJECT, ARRAY_N, or ARRAY_A. Default OBJECT.
- * @param string|array $post_type Optional. Post type or array of post types. Default page.
+ * @global wpdb $wpdb WordPress database abstraction object.
+ *
+ * @param string       $page_title Page title
+ * @param string       $output     Optional. Output type. OBJECT, ARRAY_N, or ARRAY_A.
+ *                                 Default OBJECT.
+ * @param string|array $post_type  Optional. Post type or array of post types. Default 'page'.
  * @return WP_Post|null WP_Post on success or null on failure
  */
 function get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' ) {
  * @return WP_Post|null WP_Post on success or null on failure
  */
 function get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' ) {
@@ -4002,9 +4283,9 @@ function get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' )
  *
  * @since 1.5.1
  *
  *
  * @since 1.5.1
  *
- * @param int $page_id Page ID.
- * @param array $pages List of pages' objects.
- * @return array
+ * @param int   $page_id Page ID.
+ * @param array $pages   List of pages' objects.
+ * @return array List of page children.
  */
 function get_page_children($page_id, $pages) {
        $page_list = array();
  */
 function get_page_children($page_id, $pages) {
        $page_list = array();
@@ -4026,8 +4307,8 @@ function get_page_children($page_id, $pages) {
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
- * @param array $pages Posts array.
- * @param int $page_id Parent page ID.
+ * @param array $pages   Posts array, passed by reference.
+ * @param int   $page_id Optional. Parent page ID. Default 0.
  * @return array A list arranged by hierarchy. Children immediately follow their parents.
  */
 function get_page_hierarchy( &$pages, $page_id = 0 ) {
  * @return array A list arranged by hierarchy. Children immediately follow their parents.
  */
 function get_page_hierarchy( &$pages, $page_id = 0 ) {
@@ -4049,10 +4330,17 @@ function get_page_hierarchy( &$pages, $page_id = 0 ) {
 }
 
 /**
 }
 
 /**
- * function to traverse and return all the nested children post names of a root page.
+ * Traverse and return all the nested children post names of a root page.
+ *
  * $children contains parent-children relations
  *
  * @since 2.9.0
  * $children contains parent-children relations
  *
  * @since 2.9.0
+ *
+ * @see _page_traverse_name()
+ *
+ * @param int   $page_id   Page ID.
+ * @param array &$children Parent-children relations, passed by reference.
+ * @param array &$result   Result, passed by reference.
  */
 function _page_traverse_name( $page_id, &$children, &$result ){
        if ( isset( $children[ $page_id ] ) ){
  */
 function _page_traverse_name( $page_id, &$children, &$result ){
        if ( isset( $children[ $page_id ] ) ){
@@ -4064,13 +4352,13 @@ function _page_traverse_name( $page_id, &$children, &$result ){
 }
 
 /**
 }
 
 /**
- * Builds URI for a page.
+ * Build URI for a page.
  *
  * Sub pages will be in the "directory" under the parent page post name.
  *
  * @since 1.5.0
  *
  *
  * Sub pages will be in the "directory" under the parent page post name.
  *
  * @since 1.5.0
  *
- * @param mixed $page Page object or page ID.
+ * @param WP_Post|object|int $page Page object or page ID.
  * @return string|false Page URI, false on error.
  */
 function get_page_uri( $page ) {
  * @return string|false Page URI, false on error.
  */
 function get_page_uri( $page ) {
@@ -4091,7 +4379,7 @@ function get_page_uri( $page ) {
 /**
  * Retrieve a list of pages.
  *
 /**
  * Retrieve a list of pages.
  *
- * @global wpdb $wpdb WordPress database abstraction object
+ * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @since 1.5.0
  *
  *
  * @since 1.5.0
  *
@@ -4128,8 +4416,6 @@ function get_page_uri( $page ) {
 function get_pages( $args = array() ) {
        global $wpdb;
 
 function get_pages( $args = array() ) {
        global $wpdb;
 
-       $pages = false;
-
        $defaults = array(
                'child_of' => 0, 'sort_order' => 'ASC',
                'sort_column' => 'post_title', 'hierarchical' => 1,
        $defaults = array(
                'child_of' => 0, 'sort_order' => 'ASC',
                'sort_column' => 'post_title', 'hierarchical' => 1,
@@ -4141,26 +4427,37 @@ function get_pages( $args = array() ) {
        );
 
        $r = wp_parse_args( $args, $defaults );
        );
 
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
-       $number = (int) $number;
-       $offset = (int) $offset;
 
 
-       // Make sure the post type is hierarchical
+       $number = (int) $r['number'];
+       $offset = (int) $r['offset'];
+       $child_of = (int) $r['child_of'];
+       $hierarchical = $r['hierarchical'];
+       $exclude = $r['exclude'];
+       $meta_key = $r['meta_key'];
+       $meta_value = $r['meta_value'];
+       $parent = $r['parent'];
+       $post_status = $r['post_status'];
+
+       // Make sure the post type is hierarchical.
        $hierarchical_post_types = get_post_types( array( 'hierarchical' => true ) );
        $hierarchical_post_types = get_post_types( array( 'hierarchical' => true ) );
-       if ( !in_array( $post_type, $hierarchical_post_types ) )
-               return $pages;
+       if ( ! in_array( $r['post_type'], $hierarchical_post_types ) ) {
+               return false;
+       }
 
 
-       if ( $parent > 0 && ! $child_of )
+       if ( $parent > 0 && ! $child_of ) {
                $hierarchical = false;
                $hierarchical = false;
+       }
 
 
-       // Make sure we have a valid post status
-       if ( !is_array( $post_status ) )
+       // Make sure we have a valid post status.
+       if ( ! is_array( $post_status ) ) {
                $post_status = explode( ',', $post_status );
                $post_status = explode( ',', $post_status );
-       if ( array_diff( $post_status, get_post_stati() ) )
-               return $pages;
+       }
+       if ( array_diff( $post_status, get_post_stati() ) ) {
+               return false;
+       }
 
 
-       // $args can be whatever, only use the args defined in defaults to compute the key
-       $key = md5( serialize( compact(array_keys($defaults)) ) );
+       // $args can be whatever, only use the args defined in defaults to compute the key.
+       $key = md5( serialize( wp_array_slice_assoc( $r, array_keys( $defaults ) ) ) );
        $last_changed = wp_cache_get( 'last_changed', 'posts' );
        if ( ! $last_changed ) {
                $last_changed = microtime();
        $last_changed = wp_cache_get( 'last_changed', 'posts' );
        if ( ! $last_changed ) {
                $last_changed = microtime();
@@ -4169,59 +4466,62 @@ function get_pages( $args = array() ) {
 
        $cache_key = "get_pages:$key:$last_changed";
        if ( $cache = wp_cache_get( $cache_key, 'posts' ) ) {
 
        $cache_key = "get_pages:$key:$last_changed";
        if ( $cache = wp_cache_get( $cache_key, 'posts' ) ) {
-               // Convert to WP_Post instances
+               // Convert to WP_Post instances.
                $pages = array_map( 'get_post', $cache );
                /** This filter is documented in wp-includes/post.php */
                $pages = apply_filters( 'get_pages', $pages, $r );
                return $pages;
        }
 
                $pages = array_map( 'get_post', $cache );
                /** This filter is documented in wp-includes/post.php */
                $pages = apply_filters( 'get_pages', $pages, $r );
                return $pages;
        }
 
-       if ( !is_array($cache) )
-               $cache = array();
-
        $inclusions = '';
        $inclusions = '';
-       if ( ! empty( $include ) ) {
+       if ( ! empty( $r['include'] ) ) {
                $child_of = 0; //ignore child_of, parent, exclude, meta_key, and meta_value params if using include
                $parent = -1;
                $exclude = '';
                $meta_key = '';
                $meta_value = '';
                $hierarchical = false;
                $child_of = 0; //ignore child_of, parent, exclude, meta_key, and meta_value params if using include
                $parent = -1;
                $exclude = '';
                $meta_key = '';
                $meta_value = '';
                $hierarchical = false;
-               $incpages = wp_parse_id_list( $include );
-               if ( ! empty( $incpages ) )
+               $incpages = wp_parse_id_list( $r['include'] );
+               if ( ! empty( $incpages ) ) {
                        $inclusions = ' AND ID IN (' . implode( ',', $incpages ) .  ')';
                        $inclusions = ' AND ID IN (' . implode( ',', $incpages ) .  ')';
+               }
        }
 
        $exclusions = '';
        if ( ! empty( $exclude ) ) {
                $expages = wp_parse_id_list( $exclude );
        }
 
        $exclusions = '';
        if ( ! empty( $exclude ) ) {
                $expages = wp_parse_id_list( $exclude );
-               if ( ! empty( $expages ) )
+               if ( ! empty( $expages ) ) {
                        $exclusions = ' AND ID NOT IN (' . implode( ',', $expages ) .  ')';
                        $exclusions = ' AND ID NOT IN (' . implode( ',', $expages ) .  ')';
+               }
        }
 
        $author_query = '';
        }
 
        $author_query = '';
-       if (!empty($authors)) {
-               $post_authors = preg_split('/[\s,]+/',$authors);
+       if ( ! empty( $r['authors'] ) ) {
+               $post_authors = preg_split( '/[\s,]+/', $r['authors'] );
 
                if ( ! empty( $post_authors ) ) {
                        foreach ( $post_authors as $post_author ) {
                                //Do we have an author id or an author login?
                                if ( 0 == intval($post_author) ) {
                                        $post_author = get_user_by('login', $post_author);
 
                if ( ! empty( $post_authors ) ) {
                        foreach ( $post_authors as $post_author ) {
                                //Do we have an author id or an author login?
                                if ( 0 == intval($post_author) ) {
                                        $post_author = get_user_by('login', $post_author);
-                                       if ( empty($post_author) )
+                                       if ( empty( $post_author ) ) {
                                                continue;
                                                continue;
-                                       if ( empty($post_author->ID) )
+                                       }
+                                       if ( empty( $post_author->ID ) ) {
                                                continue;
                                                continue;
+                                       }
                                        $post_author = $post_author->ID;
                                }
 
                                        $post_author = $post_author->ID;
                                }
 
-                               if ( '' == $author_query )
+                               if ( '' == $author_query ) {
                                        $author_query = $wpdb->prepare(' post_author = %d ', $post_author);
                                        $author_query = $wpdb->prepare(' post_author = %d ', $post_author);
-                               else
+                               } else {
                                        $author_query .= $wpdb->prepare(' OR post_author = %d ', $post_author);
                                        $author_query .= $wpdb->prepare(' OR post_author = %d ', $post_author);
+                               }
                        }
                        }
-                       if ( '' != $author_query )
+                       if ( '' != $author_query ) {
                                $author_query = " AND ($author_query)";
                                $author_query = " AND ($author_query)";
+                       }
                }
        }
 
                }
        }
 
@@ -4233,36 +4533,41 @@ function get_pages( $args = array() ) {
                // meta_key and meta_value might be slashed
                $meta_key = wp_unslash($meta_key);
                $meta_value = wp_unslash($meta_value);
                // meta_key and meta_value might be slashed
                $meta_key = wp_unslash($meta_key);
                $meta_value = wp_unslash($meta_value);
-               if ( '' !== $meta_key )
+               if ( '' !== $meta_key ) {
                        $where .= $wpdb->prepare(" AND $wpdb->postmeta.meta_key = %s", $meta_key);
                        $where .= $wpdb->prepare(" AND $wpdb->postmeta.meta_key = %s", $meta_key);
-               if ( '' !== $meta_value )
+               }
+               if ( '' !== $meta_value ) {
                        $where .= $wpdb->prepare(" AND $wpdb->postmeta.meta_value = %s", $meta_value);
                        $where .= $wpdb->prepare(" AND $wpdb->postmeta.meta_value = %s", $meta_value);
+               }
 
        }
 
        if ( is_array( $parent ) ) {
                $post_parent__in = implode( ',', array_map( 'absint', (array) $parent ) );
 
        }
 
        if ( is_array( $parent ) ) {
                $post_parent__in = implode( ',', array_map( 'absint', (array) $parent ) );
-               if ( ! empty( $post_parent__in ) )
+               if ( ! empty( $post_parent__in ) ) {
                        $where .= " AND post_parent IN ($post_parent__in)";
                        $where .= " AND post_parent IN ($post_parent__in)";
+               }
        } elseif ( $parent >= 0 ) {
                $where .= $wpdb->prepare(' AND post_parent = %d ', $parent);
        }
 
        if ( 1 == count( $post_status ) ) {
        } elseif ( $parent >= 0 ) {
                $where .= $wpdb->prepare(' AND post_parent = %d ', $parent);
        }
 
        if ( 1 == count( $post_status ) ) {
-               $where_post_type = $wpdb->prepare( "post_type = %s AND post_status = %s", $post_type, array_shift( $post_status ) );
+               $where_post_type = $wpdb->prepare( "post_type = %s AND post_status = %s", $r['post_type'], array_shift( $post_status ) );
        } else {
                $post_status = implode( "', '", $post_status );
        } else {
                $post_status = implode( "', '", $post_status );
-               $where_post_type = $wpdb->prepare( "post_type = %s AND post_status IN ('$post_status')", $post_type );
+               $where_post_type = $wpdb->prepare( "post_type = %s AND post_status IN ('$post_status')", $r['post_type'] );
        }
 
        $orderby_array = array();
        }
 
        $orderby_array = array();
-       $allowed_keys = array('author', 'post_author', 'date', 'post_date', 'title', 'post_title', 'name', 'post_name', 'modified',
-                                                 'post_modified', 'modified_gmt', 'post_modified_gmt', 'menu_order', 'parent', 'post_parent',
-                                                 'ID', 'rand', 'comment_count');
-       foreach ( explode( ',', $sort_column ) as $orderby ) {
+       $allowed_keys = array( 'author', 'post_author', 'date', 'post_date', 'title', 'post_title', 'name', 'post_name', 'modified',
+               'post_modified', 'modified_gmt', 'post_modified_gmt', 'menu_order', 'parent', 'post_parent',
+               'ID', 'rand', 'comment_count' );
+
+       foreach ( explode( ',', $r['sort_column'] ) as $orderby ) {
                $orderby = trim( $orderby );
                $orderby = trim( $orderby );
-               if ( !in_array( $orderby, $allowed_keys ) )
+               if ( ! in_array( $orderby, $allowed_keys ) ) {
                        continue;
                        continue;
+               }
 
                switch ( $orderby ) {
                        case 'menu_order':
 
                switch ( $orderby ) {
                        case 'menu_order':
@@ -4277,10 +4582,11 @@ function get_pages( $args = array() ) {
                                $orderby = "$wpdb->posts.comment_count";
                                break;
                        default:
                                $orderby = "$wpdb->posts.comment_count";
                                break;
                        default:
-                               if ( 0 === strpos( $orderby, 'post_' ) )
+                               if ( 0 === strpos( $orderby, 'post_' ) ) {
                                        $orderby = "$wpdb->posts." . $orderby;
                                        $orderby = "$wpdb->posts." . $orderby;
-                               else
+                               } else {
                                        $orderby = "$wpdb->posts.post_" . $orderby;
                                        $orderby = "$wpdb->posts.post_" . $orderby;
+                               }
                }
 
                $orderby_array[] = $orderby;
                }
 
                $orderby_array[] = $orderby;
@@ -4288,16 +4594,18 @@ function get_pages( $args = array() ) {
        }
        $sort_column = ! empty( $orderby_array ) ? implode( ',', $orderby_array ) : "$wpdb->posts.post_title";
 
        }
        $sort_column = ! empty( $orderby_array ) ? implode( ',', $orderby_array ) : "$wpdb->posts.post_title";
 
-       $sort_order = strtoupper( $sort_order );
-       if ( '' !== $sort_order && !in_array( $sort_order, array( 'ASC', 'DESC' ) ) )
+       $sort_order = strtoupper( $r['sort_order'] );
+       if ( '' !== $sort_order && ! in_array( $sort_order, array( 'ASC', 'DESC' ) ) ) {
                $sort_order = 'ASC';
                $sort_order = 'ASC';
+       }
 
        $query = "SELECT * FROM $wpdb->posts $join WHERE ($where_post_type) $where ";
        $query .= $author_query;
        $query .= " ORDER BY " . $sort_column . " " . $sort_order ;
 
 
        $query = "SELECT * FROM $wpdb->posts $join WHERE ($where_post_type) $where ";
        $query .= $author_query;
        $query .= " ORDER BY " . $sort_column . " " . $sort_order ;
 
-       if ( !empty($number) )
+       if ( ! empty( $number ) ) {
                $query .= ' LIMIT ' . $offset . ',' . $number;
                $query .= ' LIMIT ' . $offset . ',' . $number;
+       }
 
        $pages = $wpdb->get_results($query);
 
 
        $pages = $wpdb->get_results($query);
 
@@ -4307,7 +4615,7 @@ function get_pages( $args = array() ) {
                return $pages;
        }
 
                return $pages;
        }
 
-       // Sanitize before caching so it'll only get done once
+       // Sanitize before caching so it'll only get done once.
        $num_pages = count($pages);
        for ($i = 0; $i < $num_pages; $i++) {
                $pages[$i] = sanitize_post($pages[$i], 'raw');
        $num_pages = count($pages);
        for ($i = 0; $i < $num_pages; $i++) {
                $pages[$i] = sanitize_post($pages[$i], 'raw');
@@ -4316,11 +4624,12 @@ function get_pages( $args = array() ) {
        // Update cache.
        update_post_cache( $pages );
 
        // Update cache.
        update_post_cache( $pages );
 
-       if ( $child_of || $hierarchical )
+       if ( $child_of || $hierarchical ) {
                $pages = get_page_children($child_of, $pages);
                $pages = get_page_children($child_of, $pages);
+       }
 
 
-       if ( ! empty( $exclude_tree ) ) {
-               $exclude = wp_parse_id_list( $exclude_tree );
+       if ( ! empty( $r['exclude_tree'] ) ) {
+               $exclude = wp_parse_id_list( $r['exclude_tree'] );
                foreach( $exclude as $id ) {
                        $children = get_page_children( $id, $pages );
                        foreach ( $children as $child ) {
                foreach( $exclude as $id ) {
                        $children = get_page_children( $id, $pages );
                        foreach ( $children as $child ) {
@@ -4337,12 +4646,13 @@ function get_pages( $args = array() ) {
        }
 
        $page_structure = array();
        }
 
        $page_structure = array();
-       foreach ( $pages as $page )
+       foreach ( $pages as $page ) {
                $page_structure[] = $page->ID;
                $page_structure[] = $page->ID;
+       }
 
        wp_cache_set( $cache_key, $page_structure, 'posts' );
 
 
        wp_cache_set( $cache_key, $page_structure, 'posts' );
 
-       // Convert to WP_Post instances
+       // Convert to WP_Post instances.
        $pages = array_map( 'get_post', $pages );
 
        /**
        $pages = array_map( 'get_post', $pages );
 
        /**
@@ -4386,7 +4696,7 @@ function is_local_attachment($url) {
 /**
  * Insert an attachment.
  *
 /**
  * Insert an attachment.
  *
- * If you set the 'ID' in the $object parameter, it will mean that you are
+ * If you set the 'ID' in the $args parameter, it will mean that you are
  * updating and attempt to update the attachment. You can also set the
  * attachment name or title by setting the key 'post_name' or 'post_title'.
  *
  * updating and attempt to update the attachment. You can also set the
  * attachment name or title by setting the key 'post_name' or 'post_title'.
  *
@@ -4397,211 +4707,29 @@ function is_local_attachment($url) {
  * comments are allowed. You can close them manually or keep them open by
  * setting the value for the 'comment_status' key.
  *
  * comments are allowed. You can close them manually or keep them open by
  * setting the value for the 'comment_status' key.
  *
- * The $object parameter can have the following:
- *     'post_status'   - Default is 'draft'. Can not be overridden, set the same as parent post.
- *     'post_type'     - Default is 'post', will be set to attachment. Can not override.
- *     'post_author'   - Default is current user ID. The ID of the user, who added the attachment.
- *     'ping_status'   - Default is the value in default ping status option. Whether the attachment
- *                       can accept pings.
- *     'post_parent'   - Default is 0. Can use $parent parameter or set this for the post it belongs
- *                       to, if any.
- *     'menu_order'    - Default is 0. The order it is displayed.
- *     'to_ping'       - Whether to ping.
- *     'pinged'        - Default is empty string.
- *     'post_password' - Default is empty string. The password to access the attachment.
- *     'guid'          - Global Unique ID for referencing the attachment.
- *     'post_content_filtered' - Attachment post content filtered.
- *     'post_excerpt'  - Attachment excerpt.
- *
  * @since 2.0.0
  * @since 2.0.0
- * @uses $wpdb
  *
  *
- * @param string|array $object Arguments to override defaults.
- * @param string $file Optional filename.
- * @param int $parent Parent post ID.
+ * @see wp_insert_post()
+ *
+ * @param string|array $args   Arguments for inserting an attachment.
+ * @param string       $file   Optional. Filename.
+ * @param int          $parent Optional. Parent post ID.
  * @return int Attachment ID.
  */
  * @return int Attachment ID.
  */
-function wp_insert_attachment($object, $file = false, $parent = 0) {
-       global $wpdb;
-
-       $user_id = get_current_user_id();
-
-       $defaults = array('post_status' => 'inherit', 'post_type' => 'post', 'post_author' => $user_id,
-               'ping_status' => get_option('default_ping_status'), 'post_parent' => 0, 'post_title' => '',
-               'menu_order' => 0, 'to_ping' =>  '', 'pinged' => '', 'post_password' => '', 'post_content' => '',
-               'guid' => '', 'post_content_filtered' => '', 'post_excerpt' => '', 'import_id' => 0, 'context' => '');
-
-       $object = wp_parse_args($object, $defaults);
-       if ( !empty($parent) )
-               $object['post_parent'] = $parent;
-
-       unset( $object[ 'filter' ] );
-
-       $object = sanitize_post($object, 'db');
-
-       // export array as variables
-       extract($object, EXTR_SKIP);
-
-       if ( empty($post_author) )
-               $post_author = $user_id;
-
-       $post_type = 'attachment';
-
-       if ( ! in_array( $post_status, array( 'inherit', 'private' ) ) )
-               $post_status = 'inherit';
-
-       if ( !empty($post_category) )
-               $post_category = array_filter($post_category); // Filter out empty terms
-
-       // Make sure we set a valid category.
-       if ( empty($post_category) || 0 == count($post_category) || !is_array($post_category) ) {
-               $post_category = array();
-       }
-
-       // Are we updating or creating?
-       if ( !empty($ID) ) {
-               $update = true;
-               $post_ID = (int) $ID;
-       } else {
-               $update = false;
-               $post_ID = 0;
-       }
-
-       // Create a valid post name.
-       if ( empty($post_name) )
-               $post_name = sanitize_title($post_title);
-       else
-               $post_name = sanitize_title($post_name);
-
-       // expected_slashed ($post_name)
-       $post_name = wp_unique_post_slug($post_name, $post_ID, $post_status, $post_type, $post_parent);
-
-       if ( empty($post_date) )
-               $post_date = current_time('mysql');
-       if ( empty($post_date_gmt) )
-               $post_date_gmt = current_time('mysql', 1);
-
-       if ( empty($post_modified) )
-               $post_modified = $post_date;
-       if ( empty($post_modified_gmt) )
-               $post_modified_gmt = $post_date_gmt;
-
-       if ( empty($comment_status) ) {
-               if ( $update )
-                       $comment_status = 'closed';
-               else
-                       $comment_status = get_option('default_comment_status');
-       }
-       if ( empty($ping_status) )
-               $ping_status = get_option('default_ping_status');
-
-       if ( isset($to_ping) )
-               $to_ping = preg_replace('|\s+|', "\n", $to_ping);
-       else
-               $to_ping = '';
-
-       if ( isset($post_parent) )
-               $post_parent = (int) $post_parent;
-       else
-               $post_parent = 0;
-
-       if ( isset($menu_order) )
-               $menu_order = (int) $menu_order;
-       else
-               $menu_order = 0;
-
-       if ( !isset($post_password) )
-               $post_password = '';
-
-       if ( ! isset($pinged) )
-               $pinged = '';
-
-       // expected_slashed (everything!)
-       $data = compact( array( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'post_mime_type', 'guid' ) );
-
-       /**
-        * Filter attachment post data before it is updated in or added
-        * to the database.
-        *
-        * @since 3.9.0
-        *
-        * @param array $data   Array of sanitized attachment post data.
-        * @param array $object Array of un-sanitized attachment post data.
-        */
-       $data = apply_filters( 'wp_insert_attachment_data', $data, $object );
-       $data = wp_unslash( $data );
-
-       if ( $update ) {
-               $wpdb->update( $wpdb->posts, $data, array( 'ID' => $post_ID ) );
-       } else {
-               // If there is a suggested ID, use it if not already present
-               if ( !empty($import_id) ) {
-                       $import_id = (int) $import_id;
-                       if ( ! $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE ID = %d", $import_id) ) ) {
-                               $data['ID'] = $import_id;
-                       }
-               }
-
-               $wpdb->insert( $wpdb->posts, $data );
-               $post_ID = (int) $wpdb->insert_id;
-       }
-
-       if ( empty($post_name) ) {
-               $post_name = sanitize_title($post_title, $post_ID);
-               $wpdb->update( $wpdb->posts, compact("post_name"), array( 'ID' => $post_ID ) );
-       }
-
-       if ( is_object_in_taxonomy($post_type, 'category') )
-               wp_set_post_categories( $post_ID, $post_category );
-
-       if ( isset( $tags_input ) && is_object_in_taxonomy($post_type, 'post_tag') )
-               wp_set_post_tags( $post_ID, $tags_input );
-
-       // support for all custom taxonomies
-       if ( !empty($tax_input) ) {
-               foreach ( $tax_input as $taxonomy => $tags ) {
-                       $taxonomy_obj = get_taxonomy($taxonomy);
-                       if ( is_array($tags) ) // array = hierarchical, string = non-hierarchical.
-                               $tags = array_filter($tags);
-                       if ( current_user_can($taxonomy_obj->cap->assign_terms) )
-                               wp_set_post_terms( $post_ID, $tags, $taxonomy );
-               }
-       }
-
-       if ( $file )
-               update_attached_file( $post_ID, $file );
-
-       clean_post_cache( $post_ID );
-
-       if ( ! empty( $context ) )
-               add_post_meta( $post_ID, '_wp_attachment_context', $context, true );
-
-       if ( $update) {
-               /**
-                * Fires once an existing attachment has been updated.
-                *
-                * @since 2.0.0
-                *
-                * @param int $post_ID Attachment ID.
-                */
-               do_action( 'edit_attachment', $post_ID );
-       } else {
+function wp_insert_attachment( $args, $file = false, $parent = 0 ) {
+       $defaults = array(
+               'file'        => $file,
+               'post_parent' => $parent
+       );
+       $data = wp_parse_args( $args, $defaults );
 
 
-               /**
-                * Fires once an attachment has been added.
-                *
-                * @since 2.0.0
-                *
-                * @param int $post_ID Attachment ID.
-                */
-               do_action( 'add_attachment', $post_ID );
-       }
+       $data['post_type'] = 'attachment';
 
 
-       return $post_ID;
+       return wp_insert_post( $data );
 }
 
 /**
 }
 
 /**
- * Trashes or deletes an attachment.
+ * Trash or delete an attachment.
  *
  * When an attachment is permanently deleted, the file will also be removed.
  * Deletion removes all post meta fields, taxonomy, comments, etc. associated
  *
  * When an attachment is permanently deleted, the file will also be removed.
  * Deletion removes all post meta fields, taxonomy, comments, etc. associated
@@ -4611,10 +4739,12 @@ function wp_insert_attachment($object, $file = false, $parent = 0) {
  * for media is disabled, item is already in the trash, or $force_delete is true.
  *
  * @since 2.0.0
  * for media is disabled, item is already in the trash, or $force_delete is true.
  *
  * @since 2.0.0
- * @uses $wpdb
  *
  *
- * @param int $post_id Attachment ID.
- * @param bool $force_delete Whether to bypass trash and force deletion. Defaults to false.
+ * @global wpdb $wpdb WordPress database access abstraction object.
+ *
+ * @param int  $post_id      Attachment ID.
+ * @param bool $force_delete Optional. Whether to bypass trash and force deletion.
+ *                           Default false.
  * @return mixed False on failure. Post data on success.
  */
 function wp_delete_attachment( $post_id, $force_delete = false ) {
  * @return mixed False on failure. Post data on success.
  */
 function wp_delete_attachment( $post_id, $force_delete = false ) {
@@ -4657,7 +4787,8 @@ function wp_delete_attachment( $post_id, $force_delete = false ) {
        wp_delete_object_term_relationships($post_id, array('category', 'post_tag'));
        wp_delete_object_term_relationships($post_id, get_object_taxonomies($post->post_type));
 
        wp_delete_object_term_relationships($post_id, array('category', 'post_tag'));
        wp_delete_object_term_relationships($post_id, get_object_taxonomies($post->post_type));
 
-       delete_metadata( 'post', null, '_thumbnail_id', $post_id, true ); // delete all for any posts.
+       // Delete all for any posts.
+       delete_metadata( 'post', null, '_thumbnail_id', $post_id, true );
 
        $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d", $post_id ));
        foreach ( $comment_ids as $comment_id )
 
        $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d", $post_id ));
        foreach ( $comment_ids as $comment_id )
@@ -4679,8 +4810,8 @@ function wp_delete_attachment( $post_id, $force_delete = false ) {
        $uploadpath = wp_upload_dir();
 
        if ( ! empty($meta['thumb']) ) {
        $uploadpath = wp_upload_dir();
 
        if ( ! empty($meta['thumb']) ) {
-               // Don't delete the thumb if another attachment uses it
-               if (! $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE %s AND post_id <> %d", '%' . $meta['thumb'] . '%', $post_id)) ) {
+               // Don't delete the thumb if another attachment uses it.
+               if (! $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE %s AND post_id <> %d", '%' . $wpdb->esc_like( $meta['thumb'] ) . '%', $post_id)) ) {
                        $thumbfile = str_replace(basename($file), $meta['thumb'], $file);
                        /** This filter is documented in wp-admin/custom-header.php */
                        $thumbfile = apply_filters( 'wp_delete_file', $thumbfile );
                        $thumbfile = str_replace(basename($file), $meta['thumb'], $file);
                        /** This filter is documented in wp-admin/custom-header.php */
                        $thumbfile = apply_filters( 'wp_delete_file', $thumbfile );
@@ -4688,7 +4819,7 @@ function wp_delete_attachment( $post_id, $force_delete = false ) {
                }
        }
 
                }
        }
 
-       // remove intermediate and backup images if there are any
+       // Remove intermediate and backup images if there are any.
        foreach ( $intermediate_sizes as $intermediate ) {
                /** This filter is documented in wp-admin/custom-header.php */
                $intermediate_file = apply_filters( 'wp_delete_file', $intermediate['path'] );
        foreach ( $intermediate_sizes as $intermediate ) {
                /** This filter is documented in wp-admin/custom-header.php */
                $intermediate_file = apply_filters( 'wp_delete_file', $intermediate['path'] );
@@ -4720,8 +4851,8 @@ function wp_delete_attachment( $post_id, $force_delete = false ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int $post_id Attachment ID
- * @param bool $unfiltered Optional, default is false. If true, filters are not run.
+ * @param int  $post_id    Attachment ID. Default 0.
+ * @param bool $unfiltered Optional. If true, filters are not run. Default false.
  * @return string|bool Attachment meta field. False on failure.
  */
 function wp_get_attachment_metadata( $post_id = 0, $unfiltered = false ) {
  * @return string|bool Attachment meta field. False on failure.
  */
 function wp_get_attachment_metadata( $post_id = 0, $unfiltered = false ) {
@@ -4751,9 +4882,9 @@ function wp_get_attachment_metadata( $post_id = 0, $unfiltered = false ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int $post_id Attachment ID.
- * @param array $data Attachment data.
- * @return int
+ * @param int   $post_id Attachment ID.
+ * @param array $data    Attachment data.
+ * @return int|bool False if $post is invalid.
  */
 function wp_update_attachment_metadata( $post_id, $data ) {
        $post_id = (int) $post_id;
  */
 function wp_update_attachment_metadata( $post_id, $data ) {
        $post_id = (int) $post_id;
@@ -4779,8 +4910,8 @@ function wp_update_attachment_metadata( $post_id, $data ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int $post_id Attachment ID.
- * @return string
+ * @param int $post_id Optional. Attachment ID. Default 0.
+ * @return string|bool Attachment URL, otherwise false.
  */
 function wp_get_attachment_url( $post_id = 0 ) {
        $post_id = (int) $post_id;
  */
 function wp_get_attachment_url( $post_id = 0 ) {
        $post_id = (int) $post_id;
@@ -4791,19 +4922,30 @@ function wp_get_attachment_url( $post_id = 0 ) {
                return false;
 
        $url = '';
                return false;
 
        $url = '';
-       if ( $file = get_post_meta( $post->ID, '_wp_attached_file', true) ) { //Get attached file
-               if ( ($uploads = wp_upload_dir()) && false === $uploads['error'] ) { //Get upload directory
-                       if ( 0 === strpos($file, $uploads['basedir']) ) //Check that the upload base exists in the file location
-                               $url = str_replace($uploads['basedir'], $uploads['baseurl'], $file); //replace file location with url location
-                       elseif ( false !== strpos($file, 'wp-content/uploads') )
+       // Get attached file.
+       if ( $file = get_post_meta( $post->ID, '_wp_attached_file', true) ) {
+               // Get upload directory.
+               if ( ($uploads = wp_upload_dir()) && false === $uploads['error'] ) {
+                       // Check that the upload base exists in the file location.
+                       if ( 0 === strpos( $file, $uploads['basedir'] ) ) {
+                               // Replace file location with url location.
+                               $url = str_replace($uploads['basedir'], $uploads['baseurl'], $file);
+                       } elseif ( false !== strpos($file, 'wp-content/uploads') ) {
                                $url = $uploads['baseurl'] . substr( $file, strpos($file, 'wp-content/uploads') + 18 );
                                $url = $uploads['baseurl'] . substr( $file, strpos($file, 'wp-content/uploads') + 18 );
-                       else
-                               $url = $uploads['baseurl'] . "/$file"; //Its a newly uploaded file, therefor $file is relative to the basedir.
+                       } else {
+                               // It's a newly-uploaded file, therefore $file is relative to the basedir.
+                               $url = $uploads['baseurl'] . "/$file";
+                       }
                }
        }
 
                }
        }
 
-       if ( empty($url) ) //If any of the above options failed, Fallback on the GUID as used pre-2.7, not recommended to rely upon this.
+       /*
+        * If any of the above options failed, Fallback on the GUID as used pre-2.7,
+        * not recommended to rely upon this.
+        */
+       if ( empty($url) ) {
                $url = get_the_guid( $post->ID );
                $url = get_the_guid( $post->ID );
+       }
 
        /**
         * Filter the attachment URL.
 
        /**
         * Filter the attachment URL.
@@ -4826,7 +4968,7 @@ function wp_get_attachment_url( $post_id = 0 ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int $post_id Attachment ID.
+ * @param int $post_id Optional. Attachment ID. Default 0.
  * @return mixed False on failure. Thumbnail file path on success.
  */
 function wp_get_attachment_thumb_file( $post_id = 0 ) {
  * @return mixed False on failure. Thumbnail file path on success.
  */
 function wp_get_attachment_thumb_file( $post_id = 0 ) {
@@ -4857,7 +4999,7 @@ function wp_get_attachment_thumb_file( $post_id = 0 ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int $post_id Attachment ID
+ * @param int $post_id Optional. Attachment ID. Default 0.
  * @return string|bool False on failure. Thumbnail URL on success.
  */
 function wp_get_attachment_thumb_url( $post_id = 0 ) {
  * @return string|bool False on failure. Thumbnail URL on success.
  */
 function wp_get_attachment_thumb_url( $post_id = 0 ) {
@@ -4892,8 +5034,8 @@ function wp_get_attachment_thumb_url( $post_id = 0 ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int $post_id Attachment ID
- * @return bool
+ * @param int $post_id Optional. Attachment ID. Default 0.
+ * @return bool Whether the attachment is an image.
  */
 function wp_attachment_is_image( $post_id = 0 ) {
        $post_id = (int) $post_id;
  */
 function wp_attachment_is_image( $post_id = 0 ) {
        $post_id = (int) $post_id;
@@ -4918,7 +5060,7 @@ function wp_attachment_is_image( $post_id = 0 ) {
  * @since 2.1.0
  *
  * @param string|int $mime MIME type or attachment ID.
  * @since 2.1.0
  *
  * @param string|int $mime MIME type or attachment ID.
- * @return string|bool
+ * @return string|bool Icon, false otherwise.
  */
 function wp_mime_type_icon( $mime = 0 ) {
        if ( !is_numeric($mime) )
  */
 function wp_mime_type_icon( $mime = 0 ) {
        if ( !is_numeric($mime) )
@@ -4997,7 +5139,7 @@ function wp_mime_type_icon( $mime = 0 ) {
                        wp_cache_add( 'icon_files', $icon_files, 'default', 600 );
                }
 
                        wp_cache_add( 'icon_files', $icon_files, 'default', 600 );
                }
 
-               // Icon basename - extension = MIME wildcard
+               // Icon basename - extension = MIME wildcard.
                foreach ( $icon_files as $file => $uri )
                        $types[ preg_replace('/^([^.]*).*$/', '$1', basename($file)) ] =& $icon_files[$file];
 
                foreach ( $icon_files as $file => $uri )
                        $types[ preg_replace('/^([^.]*).*$/', '$1', basename($file)) ] =& $icon_files[$file];
 
@@ -5034,7 +5176,7 @@ function wp_mime_type_icon( $mime = 0 ) {
 }
 
 /**
 }
 
 /**
- * Checked for changed slugs for published post objects and save the old slug.
+ * Check for changed slugs for published post objects and save the old slug.
  *
  * The function is used when a post object of any type is updated,
  * by comparing the current and previous post objects.
  *
  * The function is used when a post object of any type is updated,
  * by comparing the current and previous post objects.
@@ -5048,27 +5190,27 @@ function wp_mime_type_icon( $mime = 0 ) {
  *
  * @since 2.1.0
  *
  *
  * @since 2.1.0
  *
- * @param int $post_id Post ID.
- * @param object $post The Post Object
- * @param object $post_before The Previous Post Object
+ * @param int     $post_id     Post ID.
+ * @param WP_Post $post        The Post Object
+ * @param WP_Post $post_before The Previous Post Object
  * @return int Same as $post_id
  */
  * @return int Same as $post_id
  */
-function wp_check_for_changed_slugs($post_id, $post, $post_before) {
-       // dont bother if it hasnt changed
+function wp_check_for_changed_slugs( $post_id, $post, $post_before ) {
+       // Don't bother if it hasnt changed.
        if ( $post->post_name == $post_before->post_name )
                return;
 
        if ( $post->post_name == $post_before->post_name )
                return;
 
-       // we're only concerned with published, non-hierarchical objects
+       // We're only concerned with published, non-hierarchical objects.
        if ( $post->post_status != 'publish' || is_post_type_hierarchical( $post->post_type ) )
                return;
 
        $old_slugs = (array) get_post_meta($post_id, '_wp_old_slug');
 
        if ( $post->post_status != 'publish' || is_post_type_hierarchical( $post->post_type ) )
                return;
 
        $old_slugs = (array) get_post_meta($post_id, '_wp_old_slug');
 
-       // if we haven't added this old slug before, add it now
+       // If we haven't added this old slug before, add it now.
        if ( !empty( $post_before->post_name ) && !in_array($post_before->post_name, $old_slugs) )
                add_post_meta($post_id, '_wp_old_slug', $post_before->post_name);
 
        if ( !empty( $post_before->post_name ) && !in_array($post_before->post_name, $old_slugs) )
                add_post_meta($post_id, '_wp_old_slug', $post_before->post_name);
 
-       // if the new slug was used previously, delete it from the list
+       // If the new slug was used previously, delete it from the list.
        if ( in_array($post->post_name, $old_slugs) )
                delete_post_meta($post_id, '_wp_old_slug', $post->post_name);
 }
        if ( in_array($post->post_name, $old_slugs) )
                delete_post_meta($post_id, '_wp_old_slug', $post->post_name);
 }
@@ -5083,7 +5225,7 @@ function wp_check_for_changed_slugs($post_id, $post, $post_before) {
  *
  * @since 2.2.0
  *
  *
  * @since 2.2.0
  *
- * @param string $post_type currently only supports 'post' or 'page'.
+ * @param string $post_type Post type. Currently only supports 'post' or 'page'.
  * @return string SQL code that can be added to a where clause.
  */
 function get_private_posts_cap_sql( $post_type ) {
  * @return string SQL code that can be added to a where clause.
  */
 function get_private_posts_cap_sql( $post_type ) {
@@ -5093,19 +5235,22 @@ function get_private_posts_cap_sql( $post_type ) {
 /**
  * Retrieve the post SQL based on capability, author, and type.
  *
 /**
  * Retrieve the post SQL based on capability, author, and type.
  *
- * @see get_private_posts_cap_sql() for full description.
- *
  * @since 3.0.0
  * @since 3.0.0
- * @param string $post_type Post type.
- * @param bool $full Optional. Returns a full WHERE statement instead of just an 'andalso' term.
- * @param int $post_author Optional. Query posts having a single author ID.
- * @param bool $public_only Optional. Only return public posts. Skips cap checks for $current_user.  Default is false.
+ *
+ * @see get_private_posts_cap_sql()
+ *
+ * @param string $post_type   Post type.
+ * @param bool   $full        Optional. Returns a full WHERE statement instead of just
+ *                            an 'andalso' term. Default true.
+ * @param int    $post_author Optional. Query posts having a single author ID. Default null.
+ * @param bool   $public_only Optional. Only return public posts. Skips cap checks for
+ *                            $current_user.  Default false.
  * @return string SQL WHERE code that can be added to a query.
  */
 function get_posts_by_author_sql( $post_type, $full = true, $post_author = null, $public_only = false ) {
        global $wpdb;
 
  * @return string SQL WHERE code that can be added to a query.
  */
 function get_posts_by_author_sql( $post_type, $full = true, $post_author = null, $public_only = false ) {
        global $wpdb;
 
-       // Private posts
+       // Private posts.
        $post_type_obj = get_post_type_object( $post_type );
        if ( ! $post_type_obj )
                return $full ? 'WHERE 1 = 0' : ' 1 = 0 ';
        $post_type_obj = get_post_type_object( $post_type );
        if ( ! $post_type_obj )
                return $full ? 'WHERE 1 = 0' : ' 1 = 0 ';
@@ -5135,7 +5280,7 @@ function get_posts_by_author_sql( $post_type, $full = true, $post_author = null,
 
        $sql .= "(post_status = 'publish'";
 
 
        $sql .= "(post_status = 'publish'";
 
-       // Only need to check the cap if $public_only is false
+       // Only need to check the cap if $public_only is false.
        if ( false === $public_only ) {
                if ( current_user_can( $cap ) ) {
                        // Does the user have the capability to view private posts? Guess so.
        if ( false === $public_only ) {
                if ( current_user_can( $cap ) ) {
                        // Does the user have the capability to view private posts? Guess so.
@@ -5165,10 +5310,11 @@ function get_posts_by_author_sql( $post_type, $full = true, $post_author = null,
  *
  * @since 0.71
  *
  *
  * @since 0.71
  *
- * @param string $timezone The location to get the time. Can be 'gmt', 'blog', or 'server'.
+ * @param string $timezone The location to get the time. Accepts 'gmt', 'blog',
+ *                         or 'server'. Default 'server'.
  * @return string The date of the last post.
  */
  * @return string The date of the last post.
  */
-function get_lastpostdate($timezone = 'server') {
+function get_lastpostdate( $timezone = 'server' ) {
        /**
         * Filter the date the last post was published.
         *
        /**
         * Filter the date the last post was published.
         *
@@ -5190,10 +5336,11 @@ function get_lastpostdate($timezone = 'server') {
  *
  * @since 1.2.0
  *
  *
  * @since 1.2.0
  *
- * @param string $timezone The location to get the time. Can be 'gmt', 'blog', or 'server'.
+ * @param string $timezone The location to get the time. Accepts 'gmt', 'blog', or 'server'.
+ *                         Default 'server'.
  * @return string The date the post was last modified.
  */
  * @return string The date the post was last modified.
  */
-function get_lastpostmodified($timezone = 'server') {
+function get_lastpostmodified( $timezone = 'server' ) {
        $lastpostmodified = _get_last_post_time( $timezone, 'modified' );
 
        $lastpostdate = get_lastpostdate($timezone);
        $lastpostmodified = _get_last_post_time( $timezone, 'modified' );
 
        $lastpostdate = get_lastpostdate($timezone);
@@ -5217,7 +5364,7 @@ function get_lastpostmodified($timezone = 'server') {
  * @access private
  * @since 3.1.0
  *
  * @access private
  * @since 3.1.0
  *
- * @param string $timezone The location to get the time. Can be 'gmt', 'blog', or 'server'.
+ * @param string $timezone The location to get the time. Accepts 'gmt', 'blog', or 'server'.
  * @param string $field Field to check. Can be 'date' or 'modified'.
  * @return string The date.
  */
  * @param string $field Field to check. Can be 'date' or 'modified'.
  * @return string The date.
  */
@@ -5264,7 +5411,7 @@ function _get_last_post_time( $timezone, $field ) {
  *
  * @since 1.5.1
  *
  *
  * @since 1.5.1
  *
- * @param array $posts Array of post objects
+ * @param array $posts Array of post objects, passed by reference.
  */
 function update_post_cache( &$posts ) {
        if ( ! $posts )
  */
 function update_post_cache( &$posts ) {
        if ( ! $posts )
@@ -5285,6 +5432,8 @@ function update_post_cache( &$posts ) {
  *
  * @since 2.0.0
  *
  *
  * @since 2.0.0
  *
+ * @global wpdb $wpdb WordPress database access abstraction object.
+ *
  * @param int|WP_Post $post Post ID or post object to remove from the cache.
  */
 function clean_post_cache( $post ) {
  * @param int|WP_Post $post Post ID or post object to remove from the cache.
  */
 function clean_post_cache( $post ) {
@@ -5314,9 +5463,6 @@ function clean_post_cache( $post ) {
         */
        do_action( 'clean_post_cache', $post->ID, $post );
 
         */
        do_action( 'clean_post_cache', $post->ID, $post );
 
-       if ( is_post_type_hierarchical( $post->post_type ) )
-               wp_cache_delete( 'get_pages', 'posts' );
-
        if ( 'page' == $post->post_type ) {
                wp_cache_delete( 'all_page_ids', 'posts' );
 
        if ( 'page' == $post->post_type ) {
                wp_cache_delete( 'all_page_ids', 'posts' );
 
@@ -5338,16 +5484,12 @@ function clean_post_cache( $post ) {
  *
  * @since 1.5.0
  *
  *
  * @since 1.5.0
  *
- * @uses update_post_cache()
- * @uses update_object_term_cache()
- * @uses update_postmeta_cache()
- *
- * @param array $posts Array of Post objects
- * @param string $post_type The post type of the posts in $posts. Default is 'post'.
- * @param bool $update_term_cache Whether to update the term cache. Default is true.
- * @param bool $update_meta_cache Whether to update the meta cache. Default is true.
+ * @param array  $posts             Array of Post objects
+ * @param string $post_type         Optional. Post type. Default 'post'.
+ * @param bool   $update_term_cache Optional. Whether to update the term cache. Default true.
+ * @param bool   $update_meta_cache Optional. Whether to update the meta cache. Default true.
  */
  */
-function update_post_caches(&$posts, $post_type = 'post', $update_term_cache = true, $update_meta_cache = true) {
+function update_post_caches( &$posts, $post_type = 'post', $update_term_cache = true, $update_meta_cache = true ) {
        // No point in doing all this work if we didn't match any posts.
        if ( !$posts )
                return;
        // No point in doing all this work if we didn't match any posts.
        if ( !$posts )
                return;
@@ -5391,9 +5533,10 @@ function update_post_caches(&$posts, $post_type = 'post', $update_term_cache = t
  * @since 2.1.0
  *
  * @param array $post_ids List of post IDs.
  * @since 2.1.0
  *
  * @param array $post_ids List of post IDs.
- * @return bool|array Returns false if there is nothing to update or an array of metadata.
+ * @return bool|array Returns false if there is nothing to update or an array
+ *                    of metadata.
  */
  */
-function update_postmeta_cache($post_ids) {
+function update_postmeta_cache( $post_ids ) {
        return update_meta_cache('post', $post_ids);
 }
 
        return update_meta_cache('post', $post_ids);
 }
 
@@ -5403,15 +5546,16 @@ function update_postmeta_cache($post_ids) {
  * Cleaning means delete from the cache. Optionally will clean the term
  * object cache associated with the attachment ID.
  *
  * Cleaning means delete from the cache. Optionally will clean the term
  * object cache associated with the attachment ID.
  *
- * This function will not run if $_wp_suspend_cache_invalidation is not empty. See
- * wp_suspend_cache_invalidation().
+ * This function will not run if $_wp_suspend_cache_invalidation is not empty.
  *
  * @since 3.0.0
  *
  *
  * @since 3.0.0
  *
- * @param int $id The attachment ID in the cache to clean
- * @param bool $clean_terms optional. Whether to clean terms cache
+ * @see wp_suspend_cache_invalidation()
+ *
+ * @param int  $id          The attachment ID in the cache to clean.
+ * @param bool $clean_terms Optional. Whether to clean terms cache. Default false.
  */
  */
-function clean_attachment_cache($id, $clean_terms = false) {
+function clean_attachment_cache( $id, $clean_terms = false ) {
        global $_wp_suspend_cache_invalidation;
 
        if ( !empty($_wp_suspend_cache_invalidation) )
        global $_wp_suspend_cache_invalidation;
 
        if ( !empty($_wp_suspend_cache_invalidation) )
@@ -5444,18 +5588,19 @@ function clean_attachment_cache($id, $clean_terms = false) {
  *
  * @since 2.3.0
  * @access private
  *
  * @since 2.3.0
  * @access private
- * @uses $wpdb
- * @uses wp_clear_scheduled_hook() with 'publish_future_post' and post ID.
  *
  *
- * @param string $new_status New post status
- * @param string $old_status Previous post status
- * @param object $post Object type containing the post information
+ * @see wp_clear_scheduled_hook()
+ * @global wpdb $wpdb WordPress database access abstraction object.
+ *
+ * @param string  $new_status New post status.
+ * @param string  $old_status Previous post status.
+ * @param WP_Post $post       Post object.
  */
  */
-function _transition_post_status($new_status, $old_status, $post) {
+function _transition_post_status( $new_status, $old_status, $post ) {
        global $wpdb;
 
        if ( $old_status != 'publish' && $new_status == 'publish' ) {
        global $wpdb;
 
        if ( $old_status != 'publish' && $new_status == 'publish' ) {
-               // Reset GUID if transitioning to publish and it is empty
+               // Reset GUID if transitioning to publish and it is empty.
                if ( '' == get_the_guid($post->ID) )
                        $wpdb->update( $wpdb->posts, array( 'guid' => get_permalink( $post->ID ) ), array( 'ID' => $post->ID ) );
 
                if ( '' == get_the_guid($post->ID) )
                        $wpdb->update( $wpdb->posts, array( 'guid' => get_permalink( $post->ID ) ), array( 'ID' => $post->ID ) );
 
@@ -5470,7 +5615,7 @@ function _transition_post_status($new_status, $old_status, $post) {
                do_action('private_to_published', $post->ID);
        }
 
                do_action('private_to_published', $post->ID);
        }
 
-       // If published posts changed clear the lastpostmodified cache
+       // If published posts changed clear the lastpostmodified cache.
        if ( 'publish' == $new_status || 'publish' == $old_status) {
                foreach ( array( 'server', 'gmt', 'blog' ) as $timezone ) {
                        wp_cache_delete( "lastpostmodified:$timezone", 'timeinfo' );
        if ( 'publish' == $new_status || 'publish' == $old_status) {
                foreach ( array( 'server', 'gmt', 'blog' ) as $timezone ) {
                        wp_cache_delete( "lastpostmodified:$timezone", 'timeinfo' );
@@ -5495,10 +5640,11 @@ function _transition_post_status($new_status, $old_status, $post) {
  * @since 2.3.0
  * @access private
  *
  * @since 2.3.0
  * @access private
  *
- * @param int $deprecated Not used. Can be set to null. Never implemented.
- *   Not marked as deprecated with _deprecated_argument() as it conflicts with
- *   wp_transition_post_status() and the default filter for _future_post_hook().
- * @param object $post Object type containing the post information
+ * @param int     $deprecated Not used. Can be set to null. Never implemented. Not marked
+ *                            as deprecated with _deprecated_argument() as it conflicts with
+ *                            wp_transition_post_status() and the default filter for
+ *                            {@see _future_post_hook()}.
+ * @param WP_Post $post       Post object.
  */
 function _future_post_hook( $deprecated, $post ) {
        wp_clear_scheduled_hook( 'publish_future_post', array( $post->ID ) );
  */
 function _future_post_hook( $deprecated, $post ) {
        wp_clear_scheduled_hook( 'publish_future_post', array( $post->ID ) );
@@ -5508,13 +5654,14 @@ function _future_post_hook( $deprecated, $post ) {
 /**
  * Hook to schedule pings and enclosures when a post is published.
  *
 /**
  * Hook to schedule pings and enclosures when a post is published.
  *
+ * Uses XMLRPC_REQUEST and WP_IMPORTING constants.
+ *
  * @since 2.3.0
  * @access private
  * @since 2.3.0
  * @access private
- * @uses XMLRPC_REQUEST and WP_IMPORTING constants.
  *
  *
- * @param int $post_id The ID in the database table of the post being published
+ * @param int $post_id The ID in the database table of the post being published.
  */
  */
-function _publish_post_hook($post_id) {
+function _publish_post_hook( $post_id ) {
        if ( defined( 'XMLRPC_REQUEST' ) ) {
                /**
                 * Fires when _publish_post_hook() is called during an XML-RPC request.
        if ( defined( 'XMLRPC_REQUEST' ) ) {
                /**
                 * Fires when _publish_post_hook() is called during an XML-RPC request.
@@ -5537,13 +5684,13 @@ function _publish_post_hook($post_id) {
 }
 
 /**
 }
 
 /**
- * Returns the post's parent's post_ID
+ * Return the post's parent's post_ID
  *
  * @since 3.1.0
  *
  * @param int $post_id
  *
  *
  * @since 3.1.0
  *
  * @param int $post_id
  *
- * @return int|bool false on error
+ * @return int|bool Post parent ID, otherwise false.
  */
 function wp_get_post_parent_id( $post_ID ) {
        $post = get_post( $post_ID );
  */
 function wp_get_post_parent_id( $post_ID ) {
        $post = get_post( $post_ID );
@@ -5553,38 +5700,37 @@ function wp_get_post_parent_id( $post_ID ) {
 }
 
 /**
 }
 
 /**
- * Checks the given subset of the post hierarchy for hierarchy loops.
- * Prevents loops from forming and breaks those that it finds.
+ * Check the given subset of the post hierarchy for hierarchy loops.
  *
  *
- * Attached to the wp_insert_post_parent filter.
+ * Prevents loops from forming and breaks those that it finds. Attached
+ * to the 'wp_insert_post_parent' filter.
  *
  * @since 3.1.0
  *
  * @since 3.1.0
- * @uses wp_find_hierarchy_loop()
  *
  *
- * @param int $post_parent ID of the parent for the post we're checking.
- * @param int $post_ID ID of the post we're checking.
+ * @see wp_find_hierarchy_loop()
  *
  *
- * @return int The new post_parent for the post.
+ * @param int $post_parent ID of the parent for the post we're checking.
+ * @param int $post_ID     ID of the post we're checking.
+ * @return int The new post_parent for the post, 0 otherwise.
  */
 function wp_check_post_hierarchy_for_loops( $post_parent, $post_ID ) {
  */
 function wp_check_post_hierarchy_for_loops( $post_parent, $post_ID ) {
-       // Nothing fancy here - bail
+       // Nothing fancy here - bail.
        if ( !$post_parent )
                return 0;
 
        if ( !$post_parent )
                return 0;
 
-       // New post can't cause a loop
+       // New post can't cause a loop.
        if ( empty( $post_ID ) )
                return $post_parent;
 
        if ( empty( $post_ID ) )
                return $post_parent;
 
-       // Can't be its own parent
+       // Can't be its own parent.
        if ( $post_parent == $post_ID )
                return 0;
 
        if ( $post_parent == $post_ID )
                return 0;
 
-       // Now look for larger loops
-
+       // Now look for larger loops.
        if ( !$loop = wp_find_hierarchy_loop( 'wp_get_post_parent_id', $post_ID, $post_parent ) )
                return $post_parent; // No loop
 
        if ( !$loop = wp_find_hierarchy_loop( 'wp_get_post_parent_id', $post_ID, $post_parent ) )
                return $post_parent; // No loop
 
-       // Setting $post_parent to the given value causes a loop
+       // Setting $post_parent to the given value causes a loop.
        if ( isset( $loop[$post_ID] ) )
                return 0;
 
        if ( isset( $loop[$post_ID] ) )
                return 0;
 
@@ -5596,19 +5742,19 @@ function wp_check_post_hierarchy_for_loops( $post_parent, $post_ID ) {
 }
 
 /**
 }
 
 /**
- * Sets a post thumbnail.
+ * Set a post thumbnail.
  *
  * @since 3.1.0
  *
  *
  * @since 3.1.0
  *
- * @param int|WP_Post $post Post ID or post object where thumbnail should be attached.
- * @param int $thumbnail_id Thumbnail to attach.
+ * @param int|WP_Post $post         Post ID or post object where thumbnail should be attached.
+ * @param int         $thumbnail_id Thumbnail to attach.
  * @return bool True on success, false on failure.
  */
 function set_post_thumbnail( $post, $thumbnail_id ) {
        $post = get_post( $post );
        $thumbnail_id = absint( $thumbnail_id );
        if ( $post && $thumbnail_id && get_post( $thumbnail_id ) ) {
  * @return bool True on success, false on failure.
  */
 function set_post_thumbnail( $post, $thumbnail_id ) {
        $post = get_post( $post );
        $thumbnail_id = absint( $thumbnail_id );
        if ( $post && $thumbnail_id && get_post( $thumbnail_id ) ) {
-               if ( $thumbnail_html = wp_get_attachment_image( $thumbnail_id, 'thumbnail' ) )
+               if ( wp_get_attachment_image( $thumbnail_id, 'thumbnail' ) )
                        return update_post_meta( $post->ID, '_thumbnail_id', $thumbnail_id );
                else
                        return delete_post_meta( $post->ID, '_thumbnail_id' );
                        return update_post_meta( $post->ID, '_thumbnail_id', $thumbnail_id );
                else
                        return delete_post_meta( $post->ID, '_thumbnail_id' );
@@ -5617,7 +5763,7 @@ function set_post_thumbnail( $post, $thumbnail_id ) {
 }
 
 /**
 }
 
 /**
- * Removes a post thumbnail.
+ * Remove a post thumbnail.
  *
  * @since 3.3.0
  *
  *
  * @since 3.3.0
  *
@@ -5632,27 +5778,35 @@ function delete_post_thumbnail( $post ) {
 }
 
 /**
 }
 
 /**
- * Deletes auto-drafts for new posts that are > 7 days old
+ * Delete auto-drafts for new posts that are > 7 days old.
  *
  * @since 3.4.0
  *
  * @since 3.4.0
+ *
+ * @global wpdb $wpdb WordPress database access abstraction object.
  */
 function wp_delete_auto_drafts() {
        global $wpdb;
 
  */
 function wp_delete_auto_drafts() {
        global $wpdb;
 
-       // Cleanup old auto-drafts more than 7 days old
+       // Cleanup old auto-drafts more than 7 days old.
        $old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" );
        $old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" );
-       foreach ( (array) $old_posts as $delete )
-               wp_delete_post( $delete, true ); // Force delete
+       foreach ( (array) $old_posts as $delete ) {
+               // Force delete.
+               wp_delete_post( $delete, true );
+       }
 }
 
 /**
 }
 
 /**
- * Update the custom taxonomies' term counts when a post's status is changed. For example, default posts term counts (for custom taxonomies) don't include private / draft posts.
+ * Update the custom taxonomies' term counts when a post's status is changed.
+ *
+ * For example, default posts term counts (for custom taxonomies) don't include
+ * private / draft posts.
  *
  *
- * @access private
- * @param string $new_status
- * @param string $old_status
- * @param object $post
  * @since 3.3.0
  * @since 3.3.0
+ * @access private
+ *
+ * @param string  $new_status New post status.
+ * @param string  $old_status Old post status.
+ * @param WP_Post $post       Post object.
  */
 function _update_term_count_on_transition_post_status( $new_status, $old_status, $post ) {
        // Update counts for the post's terms.
  */
 function _update_term_count_on_transition_post_status( $new_status, $old_status, $post ) {
        // Update counts for the post's terms.
@@ -5666,12 +5820,13 @@ function _update_term_count_on_transition_post_status( $new_status, $old_status,
  * Adds any posts from the given ids to the cache that do not already exist in cache
  *
  * @since 3.4.0
  * Adds any posts from the given ids to the cache that do not already exist in cache
  *
  * @since 3.4.0
- *
  * @access private
  *
  * @access private
  *
- * @param array $post_ids ID list
- * @param bool $update_term_cache Whether to update the term cache. Default is true.
- * @param bool $update_meta_cache Whether to update the meta cache. Default is true.
+ * @see update_post_caches()
+ *
+ * @param array $post_ids          ID list
+ * @param bool  $update_term_cache Optional. Whether to update the term cache. Default true.
+ * @param bool  $update_meta_cache Optional. Whether to update the meta cache. Default true.
  */
 function _prime_post_caches( $ids, $update_term_cache = true, $update_meta_cache = true ) {
        global $wpdb;
  */
 function _prime_post_caches( $ids, $update_term_cache = true, $update_meta_cache = true ) {
        global $wpdb;
index fcaac1008ffd453d476659967a01ac755e30d171..39a22c7dc5ca25411d8d3477ea6418a5a3668232 100644 (file)
@@ -845,7 +845,7 @@ class WP_Query {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $query;
+       public $query;
 
        /**
         * Query vars, after parsing
 
        /**
         * Query vars, after parsing
@@ -854,7 +854,7 @@ class WP_Query {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $query_vars = array();
+       public $query_vars = array();
 
        /**
         * Taxonomy query, as passed to get_tax_sql()
 
        /**
         * Taxonomy query, as passed to get_tax_sql()
@@ -863,7 +863,7 @@ class WP_Query {
         * @access public
         * @var object WP_Tax_Query
         */
         * @access public
         * @var object WP_Tax_Query
         */
-       var $tax_query;
+       public $tax_query;
 
        /**
         * Metadata query container
 
        /**
         * Metadata query container
@@ -872,7 +872,7 @@ class WP_Query {
         * @access public
         * @var object WP_Meta_Query
         */
         * @access public
         * @var object WP_Meta_Query
         */
-       var $meta_query = false;
+       public $meta_query = false;
 
        /**
         * Date query container
 
        /**
         * Date query container
@@ -881,7 +881,7 @@ class WP_Query {
         * @access public
         * @var object WP_Date_Query
         */
         * @access public
         * @var object WP_Date_Query
         */
-       var $date_query = false;
+       public $date_query = false;
 
        /**
         * Holds the data for a single object that is queried.
 
        /**
         * Holds the data for a single object that is queried.
@@ -892,7 +892,7 @@ class WP_Query {
         * @access public
         * @var object|array
         */
         * @access public
         * @var object|array
         */
-       var $queried_object;
+       public $queried_object;
 
        /**
         * The ID of the queried object.
 
        /**
         * The ID of the queried object.
@@ -901,7 +901,7 @@ class WP_Query {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $queried_object_id;
+       public $queried_object_id;
 
        /**
         * Get post database query.
 
        /**
         * Get post database query.
@@ -910,7 +910,7 @@ class WP_Query {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $request;
+       public $request;
 
        /**
         * List of posts.
 
        /**
         * List of posts.
@@ -919,7 +919,7 @@ class WP_Query {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $posts;
+       public $posts;
 
        /**
         * The amount of posts for the current query.
 
        /**
         * The amount of posts for the current query.
@@ -928,7 +928,7 @@ class WP_Query {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $post_count = 0;
+       public $post_count = 0;
 
        /**
         * Index of the current item in the loop.
 
        /**
         * Index of the current item in the loop.
@@ -937,7 +937,7 @@ class WP_Query {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $current_post = -1;
+       public $current_post = -1;
 
        /**
         * Whether the loop has started and the caller is in the loop.
 
        /**
         * Whether the loop has started and the caller is in the loop.
@@ -946,7 +946,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $in_the_loop = false;
+       public $in_the_loop = false;
 
        /**
         * The current post.
 
        /**
         * The current post.
@@ -955,7 +955,7 @@ class WP_Query {
         * @access public
         * @var WP_Post
         */
         * @access public
         * @var WP_Post
         */
-       var $post;
+       public $post;
 
        /**
         * The list of comments for current post.
 
        /**
         * The list of comments for current post.
@@ -964,7 +964,7 @@ class WP_Query {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $comments;
+       public $comments;
 
        /**
         * The amount of comments for the posts.
 
        /**
         * The amount of comments for the posts.
@@ -973,7 +973,7 @@ class WP_Query {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $comment_count = 0;
+       public $comment_count = 0;
 
        /**
         * The index of the comment in the comment loop.
 
        /**
         * The index of the comment in the comment loop.
@@ -982,7 +982,7 @@ class WP_Query {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $current_comment = -1;
+       public $current_comment = -1;
 
        /**
         * Current comment ID.
 
        /**
         * Current comment ID.
@@ -991,7 +991,7 @@ class WP_Query {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $comment;
+       public $comment;
 
        /**
         * The amount of found posts for the current query.
 
        /**
         * The amount of found posts for the current query.
@@ -1002,7 +1002,7 @@ class WP_Query {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $found_posts = 0;
+       public $found_posts = 0;
 
        /**
         * The amount of pages.
 
        /**
         * The amount of pages.
@@ -1011,7 +1011,7 @@ class WP_Query {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $max_num_pages = 0;
+       public $max_num_pages = 0;
 
        /**
         * The amount of comment pages.
 
        /**
         * The amount of comment pages.
@@ -1020,7 +1020,7 @@ class WP_Query {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $max_num_comment_pages = 0;
+       public $max_num_comment_pages = 0;
 
        /**
         * Set if query is single post.
 
        /**
         * Set if query is single post.
@@ -1029,7 +1029,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_single = false;
+       public $is_single = false;
 
        /**
         * Set if query is preview of blog.
 
        /**
         * Set if query is preview of blog.
@@ -1038,7 +1038,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_preview = false;
+       public $is_preview = false;
 
        /**
         * Set if query returns a page.
 
        /**
         * Set if query returns a page.
@@ -1047,7 +1047,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_page = false;
+       public $is_page = false;
 
        /**
         * Set if query is an archive list.
 
        /**
         * Set if query is an archive list.
@@ -1056,7 +1056,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_archive = false;
+       public $is_archive = false;
 
        /**
         * Set if query is part of a date.
 
        /**
         * Set if query is part of a date.
@@ -1065,7 +1065,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_date = false;
+       public $is_date = false;
 
        /**
         * Set if query contains a year.
 
        /**
         * Set if query contains a year.
@@ -1074,7 +1074,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_year = false;
+       public $is_year = false;
 
        /**
         * Set if query contains a month.
 
        /**
         * Set if query contains a month.
@@ -1083,7 +1083,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_month = false;
+       public $is_month = false;
 
        /**
         * Set if query contains a day.
 
        /**
         * Set if query contains a day.
@@ -1092,7 +1092,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_day = false;
+       public $is_day = false;
 
        /**
         * Set if query contains time.
 
        /**
         * Set if query contains time.
@@ -1101,7 +1101,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_time = false;
+       public $is_time = false;
 
        /**
         * Set if query contains an author.
 
        /**
         * Set if query contains an author.
@@ -1110,7 +1110,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_author = false;
+       public $is_author = false;
 
        /**
         * Set if query contains category.
 
        /**
         * Set if query contains category.
@@ -1119,7 +1119,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_category = false;
+       public $is_category = false;
 
        /**
         * Set if query contains tag.
 
        /**
         * Set if query contains tag.
@@ -1128,7 +1128,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_tag = false;
+       public $is_tag = false;
 
        /**
         * Set if query contains taxonomy.
 
        /**
         * Set if query contains taxonomy.
@@ -1137,7 +1137,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_tax = false;
+       public $is_tax = false;
 
        /**
         * Set if query was part of a search result.
 
        /**
         * Set if query was part of a search result.
@@ -1146,7 +1146,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_search = false;
+       public $is_search = false;
 
        /**
         * Set if query is feed display.
 
        /**
         * Set if query is feed display.
@@ -1155,7 +1155,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_feed = false;
+       public $is_feed = false;
 
        /**
         * Set if query is comment feed display.
 
        /**
         * Set if query is comment feed display.
@@ -1164,7 +1164,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_comment_feed = false;
+       public $is_comment_feed = false;
 
        /**
         * Set if query is trackback.
 
        /**
         * Set if query is trackback.
@@ -1173,7 +1173,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_trackback = false;
+       public $is_trackback = false;
 
        /**
         * Set if query is blog homepage.
 
        /**
         * Set if query is blog homepage.
@@ -1182,7 +1182,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_home = false;
+       public $is_home = false;
 
        /**
         * Set if query couldn't found anything.
 
        /**
         * Set if query couldn't found anything.
@@ -1191,7 +1191,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_404 = false;
+       public $is_404 = false;
 
        /**
         * Set if query is within comments popup window.
 
        /**
         * Set if query is within comments popup window.
@@ -1200,7 +1200,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_comments_popup = false;
+       public $is_comments_popup = false;
 
        /**
         * Set if query is paged
 
        /**
         * Set if query is paged
@@ -1209,7 +1209,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_paged = false;
+       public $is_paged = false;
 
        /**
         * Set if query is part of administration page.
 
        /**
         * Set if query is part of administration page.
@@ -1218,7 +1218,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_admin = false;
+       public $is_admin = false;
 
        /**
         * Set if query is an attachment.
 
        /**
         * Set if query is an attachment.
@@ -1227,7 +1227,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_attachment = false;
+       public $is_attachment = false;
 
        /**
         * Set if is single, is a page, or is an attachment.
 
        /**
         * Set if is single, is a page, or is an attachment.
@@ -1236,7 +1236,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_singular = false;
+       public $is_singular = false;
 
        /**
         * Set if query is for robots.
 
        /**
         * Set if query is for robots.
@@ -1245,7 +1245,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_robots = false;
+       public $is_robots = false;
 
        /**
         * Set if query contains posts.
 
        /**
         * Set if query contains posts.
@@ -1256,7 +1256,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_posts_page = false;
+       public $is_posts_page = false;
 
        /**
         * Set if query is for a post type archive.
 
        /**
         * Set if query is for a post type archive.
@@ -1265,7 +1265,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $is_post_type_archive = false;
+       public $is_post_type_archive = false;
 
        /**
         * Stores the ->query_vars state like md5(serialize( $this->query_vars ) ) so we know
 
        /**
         * Stores the ->query_vars state like md5(serialize( $this->query_vars ) ) so we know
@@ -1274,7 +1274,7 @@ class WP_Query {
         * @since 3.1.0
         * @access private
         */
         * @since 3.1.0
         * @access private
         */
-       var $query_vars_hash = false;
+       private $query_vars_hash = false;
 
        /**
         * Whether query vars have changed since the initial parse_query() call. Used to catch modifications to query vars made
 
        /**
         * Whether query vars have changed since the initial parse_query() call. Used to catch modifications to query vars made
@@ -1283,7 +1283,7 @@ class WP_Query {
         * @since 3.1.1
         * @access private
         */
         * @since 3.1.1
         * @access private
         */
-       var $query_vars_changed = true;
+       private $query_vars_changed = true;
 
        /**
         * Set if post thumbnails are cached
 
        /**
         * Set if post thumbnails are cached
@@ -1292,7 +1292,7 @@ class WP_Query {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-        var $thumbnails_cached = false;
+        public $thumbnails_cached = false;
 
        /**
         * Cached list of search stopwords.
 
        /**
         * Cached list of search stopwords.
@@ -1310,7 +1310,7 @@ class WP_Query {
         * @since 2.0.0
         * @access private
         */
         * @since 2.0.0
         * @access private
         */
-       function init_query_flags() {
+       private function init_query_flags() {
                $this->is_single = false;
                $this->is_preview = false;
                $this->is_page = false;
                $this->is_single = false;
                $this->is_preview = false;
                $this->is_page = false;
@@ -1346,7 +1346,7 @@ class WP_Query {
         * @since 1.5.0
         * @access public
         */
         * @since 1.5.0
         * @access public
         */
-       function init() {
+       public function init() {
                unset($this->posts);
                unset($this->query);
                $this->query_vars = array();
                unset($this->posts);
                unset($this->query);
                $this->query_vars = array();
@@ -1374,7 +1374,7 @@ class WP_Query {
         * @since 1.5.0
         * @access public
         */
         * @since 1.5.0
         * @access public
         */
-       function parse_query_vars() {
+       public function parse_query_vars() {
                $this->parse_query();
        }
 
                $this->parse_query();
        }
 
@@ -1387,7 +1387,7 @@ class WP_Query {
         * @param array $array Defined query variables.
         * @return array Complete query variables with undefined ones filled in empty.
         */
         * @param array $array Defined query variables.
         * @return array Complete query variables with undefined ones filled in empty.
         */
-       function fill_query_vars($array) {
+       public function fill_query_vars($array) {
                $keys = array(
                        'error'
                        , 'm'
                $keys = array(
                        'error'
                        , 'm'
@@ -1449,9 +1449,99 @@ class WP_Query {
         * @since 1.5.0
         * @access public
         *
         * @since 1.5.0
         * @access public
         *
-        * @param string|array $query Optional query.
+        * @param string|array $query {
+        *     Optional. Array or string of Query parameters.
+        *
+        *     @type int          $attachment_id           Attachment post ID. Used for 'attachment' post_type.
+        *     @type int|string   $author                  Author ID, or comma-separated list of IDs.
+        *     @type string       $author_name             User 'user_nicename'.
+        *     @type array        $author__in              An array of author IDs to query from.
+        *     @type array        $author__not_in          An array of author IDs not to query from.
+        *     @type bool         $cache_results           Whether to cache post information. Default true.
+        *     @type int|string   $cat                     Category ID or comma-separated list of IDs (this or any children).
+        *     @type array        $category__and           An array of category IDs (AND in).
+        *     @type array        $category__in            An array of category IDs (OR in, no children).
+        *     @type array        $category__not_in        An array of category IDs (NOT in).
+        *     @type string       $category_name           Use category slug (not name, this or any children).
+        *     @type int          $comments_per_page       The number of comments to return per page.
+        *                                                 Default 'comments_per_page' option.
+        *     @type int|string   $comments_popup          Whether the query is within the comments popup. Default empty.
+        *     @type array        $date_query              An associative array of WP_Date_Query arguments.
+        *                                                 {@see WP_Date_Query::__construct()}
+        *     @type int          $day                     Day of the month. Default empty. Accepts numbers 1-31.
+        *     @type bool         $exact                   Whether to search by exact keyword. Default false.
+        *     @type string|array $fields                  Which fields to return. Single field or all fields (string),
+        *                                                 or array of fields. 'id=>parent' uses 'id' and 'post_parent'.
+        *                                                 Default all fields. Accepts 'ids', 'id=>parent'.
+        *     @type int          $hour                    Hour of the day. Default empty. Accepts numbers 0-23.
+        *     @type bool         $ignore_sticky_posts     Whether to ignore sticky posts or not. Setting this to false
+        *                                                 excludes stickies from 'post__in'. Accepts 1|true, 0|false.
+        *                                                 Default 0|false.
+        *     @type int          $m                       Combination YearMonth. Accepts any four-digit year and month
+        *                                                 numbers 1-12. Default empty.
+        *     @type string       $meta_compare            Comparison operator to test the 'meta_value'.
+        *     @type string       $meta_key                Custom field key.
+        *     @type array        $meta_query              An associative array of WP_Meta_Query arguments.
+        *                                                 {@see WP_Meta_Query->queries}
+        *     @type string       $meta_value              Custom field value.
+        *     @type int          $meta_value_num          Custom field value number.
+        *     @type int          $menu_order              The menu order of the posts.
+        *     @type int          $monthnum                The two-digit month. Default empty. Accepts numbers 1-12.
+        *     @type string       $name                    Post slug.
+        *     @type bool         $nopaging                Show all posts (true) or paginate (false). Default false.
+        *     @type bool         $no_found_rows           Whether to skip counting the total rows found. Enabling can improve
+        *                                                 performance. Default false.
+        *     @type int          $offset                  The number of posts to offset before retrieval.
+        *     @type string       $order                   Designates ascending or descending order of posts. Default 'DESC'.
+        *                                                 Accepts 'ASC', 'DESC'.
+        *     @type string       $orderby                 Sort retrieved posts by parameter. One or more options can be
+        *                                                 passed. To use 'meta_value', or 'meta_value_num',
+        *                                                 'meta_key=keyname' must be also be defined. Default 'date'.
+        *                                                 Accepts 'none', 'name', 'author', 'date', 'title', 'modified',
+        *                                                 'menu_order', 'parent', 'ID', 'rand', 'comment_count'.
+        *     @type int          $p                       Post ID.
+        *     @type int          $page                    Show the number of posts that would show up on page X of a
+        *                                                 static front page.
+        *     @type int          $paged                   The number of the current page.
+        *     @type int          $page_id                 Page ID.
+        *     @type string       $pagename                Page slug.
+        *     @type string       $perm                    Show posts if user has the appropriate capability.
+        *     @type array        $post__in                An array of post IDs to retrieve, sticky posts will be included
+        *     @type string       $post_mime_type          The mime type of the post. Used for 'attachment' post_type.
+        *     @type array        $post__not_in            An array of post IDs not to retrieve. Note: a string of comma-
+        *                                                 separated IDs will NOT work.
+        *     @type int          $post_parent             Page ID to retrieve child pages for. Use 0 to only retrieve
+        *                                                 top-level pages.
+        *     @type array        $post_parent__in         An array containing parent page IDs to query child pages from.
+        *     @type array        $post_parent__not_in     An array containing parent page IDs not to query child pages from.
+        *     @type string|array $post_type               A post type slug (string) or array of post type slugs.
+        *                                                 Default 'any' if using 'tax_query'.
+        *     @type string|array $post_status             A post status (string) or array of post statuses.
+        *     @type int          $posts_per_page          The number of posts to query for. Use -1 to request all posts.
+        *     @type int          $posts_per_archive_page  The number of posts to query for by archive page. Overrides
+        *                                                 'posts_per_page' when is_archive(), or is_search() are true.
+        *     @type string       $s                       Search keyword.
+        *     @type int          $second                  Second of the minute. Default empty. Accepts numbers 0-60.
+        *     @type array        $search_terms            Array of search terms.
+        *     @type bool         $sentence                Whether to search by phrase. Default false.
+        *     @type bool         $suppress_filters        Whether to suppress filters. Default false.
+        *     @type string       $tag                     Tag slug. Comma-separated (either), Plus-separated (all).
+        *     @type array        $tag__and                An array of tag ids (AND in).
+        *     @type array        $tag__in                 An array of tag ids (OR in).
+        *     @type array        $tag__not_in             An array of tag ids (NOT in).
+        *     @type int          $tag_id                  Tag id or comma-separated list of IDs.
+        *     @type array        $tag_slug__and           An array of tag slugs (AND in).
+        *     @type array        $tag_slug__in            An array of tag slugs (OR in). unless 'ignore_sticky_posts' is
+        *                                                 true. Note: a string of comma-separated IDs will NOT work.
+        *     @type array        $tax_query               An associative array of WP_Tax_Query arguments.
+        *                                                 {@see WP_Tax_Query->queries}
+        *     @type bool         $update_post_meta_cache  Whether to update the post meta cache. Default true.
+        *     @type bool         $update_post_term_cache  Whether to update the post term cache. Default true.
+        *     @type int          $w                       The week number of the year. Default empty. Accepts numbers 0-53.
+        *     @type int          $year                    The four-digit year. Default empty. Accepts any four-digit year.
+        * }
         */
         */
-       function parse_query( $query =  '' ) {
+       public function parse_query( $query =  '' ) {
                if ( ! empty( $query ) ) {
                        $this->init();
                        $this->query = $this->query_vars = wp_parse_args( $query );
                if ( ! empty( $query ) ) {
                        $this->init();
                        $this->query = $this->query_vars = wp_parse_args( $query );
@@ -1510,9 +1600,9 @@ class WP_Query {
                        $this->is_page = true;
                        $this->is_single = false;
                } else {
                        $this->is_page = true;
                        $this->is_single = false;
                } else {
-               // Look for archive queries. Dates, categories, authors, search, post type archives.
+                       // Look for archive queries. Dates, categories, authors, search, post type archives.
 
 
-                       if ( !empty($qv['s']) ) {
+                       if ( isset( $this->query['s'] ) ) {
                                $this->is_search = true;
                        }
 
                                $this->is_search = true;
                        }
 
@@ -1727,6 +1817,8 @@ class WP_Query {
        /**
         * Parses various taxonomy related query vars.
         *
        /**
         * Parses various taxonomy related query vars.
         *
+        * For BC, this method is not marked as protected. See [28987].
+        *
         * @access protected
         * @since 3.1.0
         *
         * @access protected
         * @since 3.1.0
         *
@@ -1977,11 +2069,13 @@ class WP_Query {
                $searchand = '';
                $q['search_orderby_title'] = array();
                foreach ( $q['search_terms'] as $term ) {
                $searchand = '';
                $q['search_orderby_title'] = array();
                foreach ( $q['search_terms'] as $term ) {
-                       $term = like_escape( esc_sql( $term ) );
-                       if ( $n )
-                               $q['search_orderby_title'][] = "$wpdb->posts.post_title LIKE '%$term%'";
+                       if ( $n ) {
+                               $like = '%' . $wpdb->esc_like( $term ) . '%';
+                               $q['search_orderby_title'][] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $like );
+                       }
 
 
-                       $search .= "{$searchand}(($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}'))";
+                       $like = $n . $wpdb->esc_like( $term ) . $n;
+                       $search .= $wpdb->prepare( "{$searchand}(($wpdb->posts.post_title LIKE %s) OR ($wpdb->posts.post_content LIKE %s))", $like, $like );
                        $searchand = ' AND ';
                }
 
                        $searchand = ' AND ';
                }
 
@@ -2078,15 +2172,13 @@ class WP_Query {
        protected function parse_search_order( &$q ) {
                global $wpdb;
 
        protected function parse_search_order( &$q ) {
                global $wpdb;
 
-               $search_orderby = '';
-
                if ( $q['search_terms_count'] > 1 ) {
                        $num_terms = count( $q['search_orderby_title'] );
                if ( $q['search_terms_count'] > 1 ) {
                        $num_terms = count( $q['search_orderby_title'] );
-                       $search_orderby_s = like_escape( esc_sql( $q['s'] ) );
+                       $like = '%' . $wpdb->esc_like( $q['s'] ) . '%';
 
                        $search_orderby = '(CASE ';
                        // sentence match in 'post_title'
 
                        $search_orderby = '(CASE ';
                        // sentence match in 'post_title'
-                       $search_orderby .= "WHEN $wpdb->posts.post_title LIKE '%{$search_orderby_s}%' THEN 1 ";
+                       $search_orderby .= $wpdb->prepare( "WHEN $wpdb->posts.post_title LIKE %s THEN 1 ", $like );
 
                        // sanity limit, sort as sentence when more than 6 terms
                        // (few searches are longer than 6 terms and most titles are not)
 
                        // sanity limit, sort as sentence when more than 6 terms
                        // (few searches are longer than 6 terms and most titles are not)
@@ -2099,7 +2191,7 @@ class WP_Query {
                        }
 
                        // sentence match in 'post_content'
                        }
 
                        // sentence match in 'post_content'
-                       $search_orderby .= "WHEN $wpdb->posts.post_content LIKE '%{$search_orderby_s}%' THEN 4 ";
+                       $search_orderby .= $wpdb->prepare( "WHEN $wpdb->posts.post_content LIKE %s THEN 4 ", $like );
                        $search_orderby .= 'ELSE 5 END)';
                } else {
                        // single word or sentence search
                        $search_orderby .= 'ELSE 5 END)';
                } else {
                        // single word or sentence search
@@ -2109,13 +2201,104 @@ class WP_Query {
                return $search_orderby;
        }
 
                return $search_orderby;
        }
 
+       /**
+        * If the passed orderby value is allowed, convert the alias to a
+        * properly-prefixed orderby value.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @global wpdb $wpdb WordPress database access abstraction object.
+        *
+        * @param string $orderby Alias for the field to order by.
+        * @return string|bool Table-prefixed value to used in the ORDER clause. False otherwise.
+        */
+       protected function parse_orderby( $orderby ) {
+               global $wpdb;
+
+               // Used to filter values.
+               $allowed_keys = array(
+                       'post_name', 'post_author', 'post_date', 'post_title', 'post_modified',
+                       'post_parent', 'post_type', 'name', 'author', 'date', 'title', 'modified',
+                       'parent', 'type', 'ID', 'menu_order', 'comment_count', 'rand',
+               );
+
+               $meta_key = $this->get( 'meta_key' );
+               if ( ! empty( $meta_key ) ) {
+                       $allowed_keys[] = $meta_key;
+                       $allowed_keys[] = 'meta_value';
+                       $allowed_keys[] = 'meta_value_num';
+               }
+
+               if ( ! in_array( $orderby, $allowed_keys ) ) {
+                       return false;
+               }
+
+               switch ( $orderby ) {
+                       case 'post_name':
+                       case 'post_author':
+                       case 'post_date':
+                       case 'post_title':
+                       case 'post_modified':
+                       case 'post_parent':
+                       case 'post_type':
+                       case 'ID':
+                       case 'menu_order':
+                       case 'comment_count':
+                               $orderby = "$wpdb->posts.{$orderby}";
+                               break;
+                       case 'rand':
+                               $orderby = 'RAND()';
+                               break;
+                       case $meta_key:
+                       case 'meta_value':
+                               $type = $this->get( 'meta_type' );
+                               if ( ! empty( $type ) ) {
+                                       $meta_type = $this->meta_query->get_cast_for_type( $type );
+                                       $orderby = "CAST($wpdb->postmeta.meta_value AS {$meta_type})";
+                               } else {
+                                       $orderby = "$wpdb->postmeta.meta_value";
+                               }
+                               break;
+                       case 'meta_value_num':
+                               $orderby = "$wpdb->postmeta.meta_value+0";
+                               break;
+                       default:
+                               $orderby = "$wpdb->posts.post_" . $orderby;
+                               break;
+               }
+
+               return $orderby;
+       }
+
+       /**
+        * Parse an 'order' query variable and cast it to ASC or DESC as necessary.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @param string $order The 'order' query variable.
+        * @return string The sanitized 'order' query variable.
+        */
+       protected function parse_order( $order ) {
+               if ( ! is_string( $order ) || empty( $order ) ) {
+                       return 'DESC';
+               }
+
+               if ( 'ASC' === strtoupper( $order ) ) {
+                       return 'ASC';
+               } else {
+                       return 'DESC';
+               }
+       }
+
        /**
         * Sets the 404 property and saves whether query is feed.
         *
         * @since 2.0.0
         * @access public
         */
        /**
         * Sets the 404 property and saves whether query is feed.
         *
         * @since 2.0.0
         * @access public
         */
-       function set_404() {
+       public function set_404() {
                $is_feed = $this->is_feed;
 
                $this->init_query_flags();
                $is_feed = $this->is_feed;
 
                $this->init_query_flags();
@@ -2134,7 +2317,7 @@ class WP_Query {
         * @param mixed  $default   Value to return if the query variable is not set. Default ''.
         * @return mixed
         */
         * @param mixed  $default   Value to return if the query variable is not set. Default ''.
         * @return mixed
         */
-       function get( $query_var, $default = '' ) {
+       public function get( $query_var, $default = '' ) {
                if ( isset( $this->query_vars[ $query_var ] ) ) {
                        return $this->query_vars[ $query_var ];
                }
                if ( isset( $this->query_vars[ $query_var ] ) ) {
                        return $this->query_vars[ $query_var ];
                }
@@ -2151,7 +2334,7 @@ class WP_Query {
         * @param string $query_var Query variable key.
         * @param mixed $value Query variable value.
         */
         * @param string $query_var Query variable key.
         * @param mixed $value Query variable value.
         */
-       function set($query_var, $value) {
+       public function set($query_var, $value) {
                $this->query_vars[$query_var] = $value;
        }
 
                $this->query_vars[$query_var] = $value;
        }
 
@@ -2167,7 +2350,7 @@ class WP_Query {
         *
         * @return array List of posts.
         */
         *
         * @return array List of posts.
         */
-       function get_posts() {
+       public function get_posts() {
                global $wpdb;
 
                $this->parse_query();
                global $wpdb;
 
                $this->parse_query();
@@ -2212,7 +2395,6 @@ class WP_Query {
                $join = '';
                $search = '';
                $groupby = '';
                $join = '';
                $search = '';
                $groupby = '';
-               $fields = '';
                $post_status_join = false;
                $page = 1;
 
                $post_status_join = false;
                $page = 1;
 
@@ -2264,6 +2446,7 @@ class WP_Query {
                                $q['nopaging'] = false;
                        }
                }
                                $q['nopaging'] = false;
                        }
                }
+
                if ( $this->is_feed ) {
                        // This overrides posts_per_page.
                        if ( ! empty( $q['posts_per_rss'] ) ) {
                if ( $this->is_feed ) {
                        // This overrides posts_per_page.
                        if ( ! empty( $q['posts_per_rss'] ) ) {
@@ -2372,11 +2555,11 @@ class WP_Query {
                                if ( !$ptype_obj || !$ptype_obj->query_var || empty($q[ $ptype_obj->query_var ]) )
                                        continue;
 
                                if ( !$ptype_obj || !$ptype_obj->query_var || empty($q[ $ptype_obj->query_var ]) )
                                        continue;
 
-                               if ( ! $ptype_obj->hierarchical || strpos($q[ $ptype_obj->query_var ], '/') === false ) {
-                                       // Non-hierarchical post_types & parent-level-hierarchical post_types can directly use 'name'
+                               if ( ! $ptype_obj->hierarchical ) {
+                                       // Non-hierarchical post types can directly use 'name'.
                                        $q['name'] = $q[ $ptype_obj->query_var ];
                                } else {
                                        $q['name'] = $q[ $ptype_obj->query_var ];
                                } else {
-                                       // Hierarchical post_types will operate through the
+                                       // Hierarchical post types will operate through 'pagename'.
                                        $q['pagename'] = $q[ $ptype_obj->query_var ];
                                        $q['name'] = '';
                                }
                                        $q['pagename'] = $q[ $ptype_obj->query_var ];
                                        $q['name'] = '';
                                }
@@ -2470,8 +2653,9 @@ class WP_Query {
                }
 
                // If a search pattern is specified, load the posts that match.
                }
 
                // If a search pattern is specified, load the posts that match.
-               if ( ! empty( $q['s'] ) )
+               if ( ! empty( $q['s'] ) ) {
                        $search = $this->parse_search( $q );
                        $search = $this->parse_search( $q );
+               }
 
                /**
                 * Filter the search SQL that is used in the WHERE clause of WP_Query.
 
                /**
                 * Filter the search SQL that is used in the WHERE clause of WP_Query.
@@ -2611,12 +2795,23 @@ class WP_Query {
 
                $where .= $search . $whichauthor . $whichmimetype;
 
 
                $where .= $search . $whichauthor . $whichmimetype;
 
-               if ( empty($q['order']) || ((strtoupper($q['order']) != 'ASC') && (strtoupper($q['order']) != 'DESC')) )
+               if ( ! isset( $q['order'] ) ) {
                        $q['order'] = 'DESC';
                        $q['order'] = 'DESC';
+               } else {
+                       $q['order'] = $this->parse_order( $q['order'] );
+               }
 
 
-               // Order by
-               if ( empty($q['orderby']) ) {
-                       $orderby = "$wpdb->posts.post_date " . $q['order'];
+               // Order by.
+               if ( empty( $q['orderby'] ) ) {
+                       /*
+                        * Boolean false or empty array blanks out ORDER BY,
+                        * while leaving the value unset or otherwise empty sets the default.
+                        */
+                       if ( isset( $q['orderby'] ) && ( is_array( $q['orderby'] ) || false === $q['orderby'] ) ) {
+                               $orderby = '';
+                       } else {
+                               $orderby = "$wpdb->posts.post_date " . $q['order'];
+                       }
                } elseif ( 'none' == $q['orderby'] ) {
                        $orderby = '';
                } elseif ( $q['orderby'] == 'post__in' && ! empty( $post__in ) ) {
                } elseif ( 'none' == $q['orderby'] ) {
                        $orderby = '';
                } elseif ( $q['orderby'] == 'post__in' && ! empty( $post__in ) ) {
@@ -2624,59 +2819,41 @@ class WP_Query {
                } elseif ( $q['orderby'] == 'post_parent__in' && ! empty( $post_parent__in ) ) {
                        $orderby = "FIELD( {$wpdb->posts}.post_parent, $post_parent__in )";
                } else {
                } elseif ( $q['orderby'] == 'post_parent__in' && ! empty( $post_parent__in ) ) {
                        $orderby = "FIELD( {$wpdb->posts}.post_parent, $post_parent__in )";
                } else {
-                       // Used to filter values
-                       $allowed_keys = array('name', 'author', 'date', 'title', 'modified', 'menu_order', 'parent', 'ID', 'rand', 'comment_count');
-                       if ( !empty($q['meta_key']) ) {
-                               $allowed_keys[] = $q['meta_key'];
-                               $allowed_keys[] = 'meta_value';
-                               $allowed_keys[] = 'meta_value_num';
-                       }
-                       $q['orderby'] = urldecode($q['orderby']);
-                       $q['orderby'] = addslashes_gpc($q['orderby']);
-
                        $orderby_array = array();
                        $orderby_array = array();
-                       foreach ( explode( ' ', $q['orderby'] ) as $i => $orderby ) {
-                               // Only allow certain values for safety
-                               if ( ! in_array($orderby, $allowed_keys) )
-                                       continue;
+                       if ( is_array( $q['orderby'] ) ) {
+                               foreach ( $q['orderby'] as $_orderby => $order ) {
+                                       $orderby = addslashes_gpc( urldecode( $_orderby ) );
+                                       $parsed  = $this->parse_orderby( $orderby );
 
 
-                               switch ( $orderby ) {
-                                       case 'menu_order':
-                                               $orderby = "$wpdb->posts.menu_order";
-                                               break;
-                                       case 'ID':
-                                               $orderby = "$wpdb->posts.ID";
-                                               break;
-                                       case 'rand':
-                                               $orderby = 'RAND()';
-                                               break;
-                                       case $q['meta_key']:
-                                       case 'meta_value':
-                                               if ( isset( $q['meta_type'] ) ) {
-                                                       $meta_type = $this->meta_query->get_cast_for_type( $q['meta_type'] );
-                                                       $orderby = "CAST($wpdb->postmeta.meta_value AS {$meta_type})";
-                                               } else {
-                                                       $orderby = "$wpdb->postmeta.meta_value";
-                                               }
-                                               break;
-                                       case 'meta_value_num':
-                                               $orderby = "$wpdb->postmeta.meta_value+0";
-                                               break;
-                                       case 'comment_count':
-                                               $orderby = "$wpdb->posts.comment_count";
-                                               break;
-                                       default:
-                                               $orderby = "$wpdb->posts.post_" . $orderby;
+                                       if ( ! $parsed ) {
+                                               continue;
+                                       }
+
+                                       $orderby_array[] = $parsed . ' ' . $this->parse_order( $order );
                                }
                                }
+                               $orderby = implode( ', ', $orderby_array );
 
 
-                               $orderby_array[] = $orderby;
-                       }
-                       $orderby = implode( ',', $orderby_array );
+                       } else {
+                               $q['orderby'] = urldecode( $q['orderby'] );
+                               $q['orderby'] = addslashes_gpc( $q['orderby'] );
+
+                               foreach ( explode( ' ', $q['orderby'] ) as $i => $orderby ) {
+                                       $parsed = $this->parse_orderby( $orderby );
+                                       // Only allow certain values for safety.
+                                       if ( ! $parsed ) {
+                                               continue;
+                                       }
 
 
-                       if ( empty( $orderby ) )
-                               $orderby = "$wpdb->posts.post_date ".$q['order'];
-                       else
-                               $orderby .= " {$q['order']}";
+                                       $orderby_array[] = $parsed;
+                               }
+                               $orderby = implode( ' ' . $q['order'] . ', ', $orderby_array );
+
+                               if ( empty( $orderby ) ) {
+                                       $orderby = "$wpdb->posts.post_date ".$q['order'];
+                               } else {
+                                       $orderby .= " {$q['order']}";
+                               }
+                       }
                }
 
                // Order search results by relevance only when another "orderby" is not specified in the query.
                }
 
                // Order search results by relevance only when another "orderby" is not specified in the query.
@@ -2760,9 +2937,12 @@ class WP_Query {
                        $r_status = array();
                        $p_status = array();
                        $e_status = array();
                        $r_status = array();
                        $p_status = array();
                        $e_status = array();
-                       if ( in_array('any', $q_status) ) {
-                               foreach ( get_post_stati( array('exclude_from_search' => true) ) as $status )
-                                       $e_status[] = "$wpdb->posts.post_status <> '$status'";
+                       if ( in_array( 'any', $q_status ) ) {
+                               foreach ( get_post_stati( array( 'exclude_from_search' => true ) ) as $status ) {
+                                       if ( ! in_array( $status, $q_status ) ) {
+                                               $e_status[] = "$wpdb->posts.post_status <> '$status'";
+                                       }
+                               }
                        } else {
                                foreach ( get_post_stati() as $status ) {
                                        if ( in_array( $status, $q_status ) ) {
                        } else {
                                foreach ( get_post_stati() as $status ) {
                                        if ( in_array( $status, $q_status ) ) {
@@ -2870,7 +3050,7 @@ class WP_Query {
                                $page = 1;
 
                        if ( empty($q['offset']) ) {
                                $page = 1;
 
                        if ( empty($q['offset']) ) {
-                               $pgstrt = ($page - 1) * $q['posts_per_page'] . ', ';
+                               $pgstrt = absint( ( $page - 1 ) * $q['posts_per_page'] ) . ', ';
                        } else { // we're ignoring $page and using 'offset'
                                $q['offset'] = absint($q['offset']);
                                $pgstrt = $q['offset'] . ', ';
                        } else { // we're ignoring $page and using 'offset'
                                $q['offset'] = absint($q['offset']);
                                $pgstrt = $q['offset'] . ', ';
@@ -2879,7 +3059,7 @@ class WP_Query {
                }
 
                // Comments feeds
                }
 
                // Comments feeds
-               if ( $this->is_comment_feed && ( $this->is_archive || $this->is_search || !$this->is_singular ) ) {
+               if ( $this->is_comment_feed && ! $this->is_singular ) {
                        if ( $this->is_archive || $this->is_search ) {
                                $cjoin = "JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) $join ";
                                $cwhere = "WHERE comment_approved = '1' $where";
                        if ( $this->is_archive || $this->is_search ) {
                                $cjoin = "JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) $join ";
                                $cwhere = "WHERE comment_approved = '1' $where";
@@ -3054,9 +3234,13 @@ class WP_Query {
                         */
                        $clauses = (array) apply_filters_ref_array( 'posts_clauses', array( compact( $pieces ), &$this ) );
 
                         */
                        $clauses = (array) apply_filters_ref_array( 'posts_clauses', array( compact( $pieces ), &$this ) );
 
-                       foreach ( $pieces as $piece ) {
-                               $$piece = isset( $clauses[ $piece ] ) ? $clauses[ $piece ] : '';
-                       }
+                       $where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
+                       $groupby = isset( $clauses[ 'groupby' ] ) ? $clauses[ 'groupby' ] : '';
+                       $join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
+                       $orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
+                       $distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
+                       $fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
+                       $limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
                }
 
                /**
                }
 
                /**
@@ -3173,8 +3357,14 @@ class WP_Query {
                         * @param WP_Query &$this  The WP_Query instance (passed by reference).
                         */
                        $clauses = (array) apply_filters_ref_array( 'posts_clauses_request', array( compact( $pieces ), &$this ) );
                         * @param WP_Query &$this  The WP_Query instance (passed by reference).
                         */
                        $clauses = (array) apply_filters_ref_array( 'posts_clauses_request', array( compact( $pieces ), &$this ) );
-                       foreach ( $pieces as $piece )
-                               $$piece = isset( $clauses[ $piece ] ) ? $clauses[ $piece ] : '';
+
+                       $where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
+                       $groupby = isset( $clauses[ 'groupby' ] ) ? $clauses[ 'groupby' ] : '';
+                       $join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
+                       $orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
+                       $distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
+                       $fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
+                       $limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
                }
 
                if ( ! empty($groupby) )
                }
 
                if ( ! empty($groupby) )
@@ -3425,7 +3615,7 @@ class WP_Query {
         * @since 3.5.0
         * @access private
         */
         * @since 3.5.0
         * @access private
         */
-       function set_found_posts( $q, $limits ) {
+       private function set_found_posts( $q, $limits ) {
                global $wpdb;
 
                // Bail if posts is an empty array. Continue if posts is an empty string,
                global $wpdb;
 
                // Bail if posts is an empty array. Continue if posts is an empty string,
@@ -3469,7 +3659,7 @@ class WP_Query {
         *
         * @return WP_Post Next post.
         */
         *
         * @return WP_Post Next post.
         */
-       function next_post() {
+       public function next_post() {
 
                $this->current_post++;
 
 
                $this->current_post++;
 
@@ -3488,7 +3678,7 @@ class WP_Query {
         * @uses $post
         * @uses do_action_ref_array() Calls 'loop_start' if loop has just started
         */
         * @uses $post
         * @uses do_action_ref_array() Calls 'loop_start' if loop has just started
         */
-       function the_post() {
+       public function the_post() {
                global $post;
                $this->in_the_loop = true;
 
                global $post;
                $this->in_the_loop = true;
 
@@ -3517,7 +3707,7 @@ class WP_Query {
         *
         * @return bool True if posts are available, false if end of loop.
         */
         *
         * @return bool True if posts are available, false if end of loop.
         */
-       function have_posts() {
+       public function have_posts() {
                if ( $this->current_post + 1 < $this->post_count ) {
                        return true;
                } elseif ( $this->current_post + 1 == $this->post_count && $this->post_count > 0 ) {
                if ( $this->current_post + 1 < $this->post_count ) {
                        return true;
                } elseif ( $this->current_post + 1 == $this->post_count && $this->post_count > 0 ) {
@@ -3543,7 +3733,7 @@ class WP_Query {
         * @since 1.5.0
         * @access public
         */
         * @since 1.5.0
         * @access public
         */
-       function rewind_posts() {
+       public function rewind_posts() {
                $this->current_post = -1;
                if ( $this->post_count > 0 ) {
                        $this->post = $this->posts[0];
                $this->current_post = -1;
                if ( $this->post_count > 0 ) {
                        $this->post = $this->posts[0];
@@ -3558,7 +3748,7 @@ class WP_Query {
         *
         * @return object Comment object.
         */
         *
         * @return object Comment object.
         */
-       function next_comment() {
+       public function next_comment() {
                $this->current_comment++;
 
                $this->comment = $this->comments[$this->current_comment];
                $this->current_comment++;
 
                $this->comment = $this->comments[$this->current_comment];
@@ -3573,7 +3763,7 @@ class WP_Query {
         * @global object $comment Current comment.
         * @uses do_action() Calls 'comment_loop_start' hook when first comment is processed.
         */
         * @global object $comment Current comment.
         * @uses do_action() Calls 'comment_loop_start' hook when first comment is processed.
         */
-       function the_comment() {
+       public function the_comment() {
                global $comment;
 
                $comment = $this->next_comment();
                global $comment;
 
                $comment = $this->next_comment();
@@ -3598,7 +3788,7 @@ class WP_Query {
         *
         * @return bool True, if more comments. False, if no more posts.
         */
         *
         * @return bool True, if more comments. False, if no more posts.
         */
-       function have_comments() {
+       public function have_comments() {
                if ( $this->current_comment + 1 < $this->comment_count ) {
                        return true;
                } elseif ( $this->current_comment + 1 == $this->comment_count ) {
                if ( $this->current_comment + 1 < $this->comment_count ) {
                        return true;
                } elseif ( $this->current_comment + 1 == $this->comment_count ) {
@@ -3614,7 +3804,7 @@ class WP_Query {
         * @since 2.2.0
         * @access public
         */
         * @since 2.2.0
         * @access public
         */
-       function rewind_comments() {
+       public function rewind_comments() {
                $this->current_comment = -1;
                if ( $this->comment_count > 0 ) {
                        $this->comment = $this->comments[0];
                $this->current_comment = -1;
                if ( $this->comment_count > 0 ) {
                        $this->comment = $this->comments[0];
@@ -3630,7 +3820,7 @@ class WP_Query {
         * @param string $query URL query string.
         * @return array List of posts.
         */
         * @param string $query URL query string.
         * @return array List of posts.
         */
-       function query( $query ) {
+       public function query( $query ) {
                $this->init();
                $this->query = $this->query_vars = wp_parse_args( $query );
                return $this->get_posts();
                $this->init();
                $this->query = $this->query_vars = wp_parse_args( $query );
                return $this->get_posts();
@@ -3648,7 +3838,7 @@ class WP_Query {
         *
         * @return object
         */
         *
         * @return object
         */
-       function get_queried_object() {
+       public function get_queried_object() {
                if ( isset($this->queried_object) )
                        return $this->queried_object;
 
                if ( isset($this->queried_object) )
                        return $this->queried_object;
 
@@ -3697,7 +3887,7 @@ class WP_Query {
                        $page_for_posts = get_option('page_for_posts');
                        $this->queried_object = get_post( $page_for_posts );
                        $this->queried_object_id = (int) $this->queried_object->ID;
                        $page_for_posts = get_option('page_for_posts');
                        $this->queried_object = get_post( $page_for_posts );
                        $this->queried_object_id = (int) $this->queried_object->ID;
-               } elseif ( $this->is_singular && !is_null($this->post) ) {
+               } elseif ( $this->is_singular && ! empty( $this->post ) ) {
                        $this->queried_object = $this->post;
                        $this->queried_object_id = (int) $this->post->ID;
                } elseif ( $this->is_author ) {
                        $this->queried_object = $this->post;
                        $this->queried_object_id = (int) $this->post->ID;
                } elseif ( $this->is_author ) {
@@ -3716,7 +3906,7 @@ class WP_Query {
         *
         * @return int
         */
         *
         * @return int
         */
-       function get_queried_object_id() {
+       public function get_queried_object_id() {
                $this->get_queried_object();
 
                if ( isset($this->queried_object_id) ) {
                $this->get_queried_object();
 
                if ( isset($this->queried_object_id) ) {
@@ -3737,12 +3927,64 @@ class WP_Query {
         * @param string $query URL query string.
         * @return WP_Query
         */
         * @param string $query URL query string.
         * @return WP_Query
         */
-       function __construct($query = '') {
+       public function __construct($query = '') {
                if ( ! empty($query) ) {
                        $this->query($query);
                }
        }
 
                if ( ! empty($query) ) {
                        $this->query($query);
                }
        }
 
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
+       /**
+        * Make private/protected methods readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param callable $name      Method to call.
+        * @param array    $arguments Arguments to pass when calling.
+        * @return mixed|bool Return value of the callback, otherwise false.
+        */
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this, $name ), $arguments );
+       }
+
        /**
         * Is the query for an existing archive page?
         *
        /**
         * Is the query for an existing archive page?
         *
@@ -3752,7 +3994,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_archive() {
+       public function is_archive() {
                return (bool) $this->is_archive;
        }
 
                return (bool) $this->is_archive;
        }
 
@@ -3764,7 +4006,7 @@ class WP_Query {
         * @param mixed $post_types Optional. Post type or array of posts types to check against.
         * @return bool
         */
         * @param mixed $post_types Optional. Post type or array of posts types to check against.
         * @return bool
         */
-       function is_post_type_archive( $post_types = '' ) {
+       public function is_post_type_archive( $post_types = '' ) {
                if ( empty( $post_types ) || ! $this->is_post_type_archive )
                        return (bool) $this->is_post_type_archive;
 
                if ( empty( $post_types ) || ! $this->is_post_type_archive )
                        return (bool) $this->is_post_type_archive;
 
@@ -3784,7 +4026,7 @@ class WP_Query {
         * @param mixed $attachment Attachment ID, title, slug, or array of such.
         * @return bool
         */
         * @param mixed $attachment Attachment ID, title, slug, or array of such.
         * @return bool
         */
-       function is_attachment( $attachment = '' ) {
+       public function is_attachment( $attachment = '' ) {
                if ( ! $this->is_attachment ) {
                        return false;
                }
                if ( ! $this->is_attachment ) {
                        return false;
                }
@@ -3818,7 +4060,7 @@ class WP_Query {
         * @param mixed $author Optional. User ID, nickname, nicename, or array of User IDs, nicknames, and nicenames
         * @return bool
         */
         * @param mixed $author Optional. User ID, nickname, nicename, or array of User IDs, nicknames, and nicenames
         * @return bool
         */
-       function is_author( $author = '' ) {
+       public function is_author( $author = '' ) {
                if ( !$this->is_author )
                        return false;
 
                if ( !$this->is_author )
                        return false;
 
@@ -3850,7 +4092,7 @@ class WP_Query {
         * @param mixed $category Optional. Category ID, name, slug, or array of Category IDs, names, and slugs.
         * @return bool
         */
         * @param mixed $category Optional. Category ID, name, slug, or array of Category IDs, names, and slugs.
         * @return bool
         */
-       function is_category( $category = '' ) {
+       public function is_category( $category = '' ) {
                if ( !$this->is_category )
                        return false;
 
                if ( !$this->is_category )
                        return false;
 
@@ -3882,7 +4124,7 @@ class WP_Query {
         * @param mixed $tag Optional. Tag ID, name, slug, or array of Tag IDs, names, and slugs.
         * @return bool
         */
         * @param mixed $tag Optional. Tag ID, name, slug, or array of Tag IDs, names, and slugs.
         * @return bool
         */
-       function is_tag( $tag = '' ) {
+       public function is_tag( $tag = '' ) {
                if ( ! $this->is_tag )
                        return false;
 
                if ( ! $this->is_tag )
                        return false;
 
@@ -3919,7 +4161,7 @@ class WP_Query {
         * @param mixed $term. Optional. Term ID, name, slug or array of Term IDs, names, and slugs.
         * @return bool
         */
         * @param mixed $term. Optional. Term ID, name, slug or array of Term IDs, names, and slugs.
         * @return bool
         */
-       function is_tax( $taxonomy = '', $term = '' ) {
+       public function is_tax( $taxonomy = '', $term = '' ) {
                global $wp_taxonomies;
 
                if ( !$this->is_tax )
                global $wp_taxonomies;
 
                if ( !$this->is_tax )
@@ -3954,7 +4196,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_comments_popup() {
+       public function is_comments_popup() {
                return (bool) $this->is_comments_popup;
        }
 
                return (bool) $this->is_comments_popup;
        }
 
@@ -3965,7 +4207,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_date() {
+       public function is_date() {
                return (bool) $this->is_date;
        }
 
                return (bool) $this->is_date;
        }
 
@@ -3976,7 +4218,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_day() {
+       public function is_day() {
                return (bool) $this->is_day;
        }
 
                return (bool) $this->is_day;
        }
 
@@ -3988,7 +4230,7 @@ class WP_Query {
         * @param string|array $feeds Optional feed types to check.
         * @return bool
         */
         * @param string|array $feeds Optional feed types to check.
         * @return bool
         */
-       function is_feed( $feeds = '' ) {
+       public function is_feed( $feeds = '' ) {
                if ( empty( $feeds ) || ! $this->is_feed )
                        return (bool) $this->is_feed;
                $qv = $this->get( 'feed' );
                if ( empty( $feeds ) || ! $this->is_feed )
                        return (bool) $this->is_feed;
                $qv = $this->get( 'feed' );
@@ -4004,7 +4246,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_comment_feed() {
+       public function is_comment_feed() {
                return (bool) $this->is_comment_feed;
        }
 
                return (bool) $this->is_comment_feed;
        }
 
@@ -4026,7 +4268,7 @@ class WP_Query {
         *
         * @return bool True, if front of site.
         */
         *
         * @return bool True, if front of site.
         */
-       function is_front_page() {
+       public function is_front_page() {
                // most likely case
                if ( 'posts' == get_option( 'show_on_front') && $this->is_home() )
                        return true;
                // most likely case
                if ( 'posts' == get_option( 'show_on_front') && $this->is_home() )
                        return true;
@@ -4052,7 +4294,7 @@ class WP_Query {
         *
         * @return bool True if blog view homepage.
         */
         *
         * @return bool True if blog view homepage.
         */
-       function is_home() {
+       public function is_home() {
                return (bool) $this->is_home;
        }
 
                return (bool) $this->is_home;
        }
 
@@ -4063,7 +4305,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_month() {
+       public function is_month() {
                return (bool) $this->is_month;
        }
 
                return (bool) $this->is_month;
        }
 
@@ -4078,10 +4320,10 @@ class WP_Query {
         *
         * @since 3.1.0
         *
         *
         * @since 3.1.0
         *
-        * @param mixed $page Page ID, title, slug, or array of such.
+        * @param mixed $page Page ID, title, slug, path, or array of such.
         * @return bool
         */
         * @return bool
         */
-       function is_page( $page = '' ) {
+       public function is_page( $page = '' ) {
                if ( !$this->is_page )
                        return false;
 
                if ( !$this->is_page )
                        return false;
 
@@ -4092,12 +4334,24 @@ class WP_Query {
 
                $page = (array) $page;
 
 
                $page = (array) $page;
 
-               if ( in_array( $page_obj->ID, $page ) )
+               if ( in_array( $page_obj->ID, $page ) ) {
                        return true;
                        return true;
-               elseif ( in_array( $page_obj->post_title, $page ) )
+               } elseif ( in_array( $page_obj->post_title, $page ) ) {
                        return true;
                        return true;
-               else if ( in_array( $page_obj->post_name, $page ) )
+               } else if ( in_array( $page_obj->post_name, $page ) ) {
                        return true;
                        return true;
+               } else {
+                       foreach ( $page as $pagepath ) {
+                               if ( ! strpos( $pagepath, '/' ) ) {
+                                       continue;
+                               }
+                               $pagepath_obj = get_page_by_path( $pagepath );
+
+                               if ( $pagepath_obj && ( $pagepath_obj->ID == $page_obj->ID ) ) {
+                                       return true;
+                               }
+                       }
+               }
 
                return false;
        }
 
                return false;
        }
@@ -4109,7 +4363,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_paged() {
+       public function is_paged() {
                return (bool) $this->is_paged;
        }
 
                return (bool) $this->is_paged;
        }
 
@@ -4120,7 +4374,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_preview() {
+       public function is_preview() {
                return (bool) $this->is_preview;
        }
 
                return (bool) $this->is_preview;
        }
 
@@ -4131,7 +4385,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_robots() {
+       public function is_robots() {
                return (bool) $this->is_robots;
        }
 
                return (bool) $this->is_robots;
        }
 
@@ -4142,7 +4396,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_search() {
+       public function is_search() {
                return (bool) $this->is_search;
        }
 
                return (bool) $this->is_search;
        }
 
@@ -4159,10 +4413,10 @@ class WP_Query {
         *
         * @since 3.1.0
         *
         *
         * @since 3.1.0
         *
-        * @param mixed $post Post ID, title, slug, or array of such.
+        * @param mixed $post Post ID, title, slug, path, or array of such.
         * @return bool
         */
         * @return bool
         */
-       function is_single( $post = '' ) {
+       public function is_single( $post = '' ) {
                if ( !$this->is_single )
                        return false;
 
                if ( !$this->is_single )
                        return false;
 
@@ -4173,13 +4427,24 @@ class WP_Query {
 
                $post = (array) $post;
 
 
                $post = (array) $post;
 
-               if ( in_array( $post_obj->ID, $post ) )
+               if ( in_array( $post_obj->ID, $post ) ) {
                        return true;
                        return true;
-               elseif ( in_array( $post_obj->post_title, $post ) )
+               } elseif ( in_array( $post_obj->post_title, $post ) ) {
                        return true;
                        return true;
-               elseif ( in_array( $post_obj->post_name, $post ) )
+               } elseif ( in_array( $post_obj->post_name, $post ) ) {
                        return true;
                        return true;
+               } else {
+                       foreach ( $post as $postpath ) {
+                               if ( ! strpos( $postpath, '/' ) ) {
+                                       continue;
+                               }
+                               $postpath_obj = get_page_by_path( $postpath, OBJECT, $post_obj->post_type );
 
 
+                               if ( $postpath_obj && ( $postpath_obj->ID == $post_obj->ID ) ) {
+                                       return true;
+                               }
+                       }
+               }
                return false;
        }
 
                return false;
        }
 
@@ -4197,7 +4462,7 @@ class WP_Query {
         * @param mixed $post_types Optional. Post Type or array of Post Types
         * @return bool
         */
         * @param mixed $post_types Optional. Post Type or array of Post Types
         * @return bool
         */
-       function is_singular( $post_types = '' ) {
+       public function is_singular( $post_types = '' ) {
                if ( empty( $post_types ) || !$this->is_singular )
                        return (bool) $this->is_singular;
 
                if ( empty( $post_types ) || !$this->is_singular )
                        return (bool) $this->is_singular;
 
@@ -4213,7 +4478,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_time() {
+       public function is_time() {
                return (bool) $this->is_time;
        }
 
                return (bool) $this->is_time;
        }
 
@@ -4224,7 +4489,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_trackback() {
+       public function is_trackback() {
                return (bool) $this->is_trackback;
        }
 
                return (bool) $this->is_trackback;
        }
 
@@ -4235,7 +4500,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_year() {
+       public function is_year() {
                return (bool) $this->is_year;
        }
 
                return (bool) $this->is_year;
        }
 
@@ -4246,7 +4511,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_404() {
+       public function is_404() {
                return (bool) $this->is_404;
        }
 
                return (bool) $this->is_404;
        }
 
@@ -4257,7 +4522,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function is_main_query() {
+       public function is_main_query() {
                global $wp_the_query;
                return $wp_the_query === $this;
        }
                global $wp_the_query;
                return $wp_the_query === $this;
        }
@@ -4270,7 +4535,7 @@ class WP_Query {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function reset_postdata() {
+       public function reset_postdata() {
                if ( ! empty( $this->post ) ) {
                        $GLOBALS['post'] = $this->post;
                        setup_postdata( $this->post );
                if ( ! empty( $this->post ) ) {
                        $GLOBALS['post'] = $this->post;
                        setup_postdata( $this->post );
index 48523032e7798022e8998c479e433831e04ee548..45e436f567bd1ca3c7bd5a3e447b4ed35070ce9f 100644 (file)
@@ -190,7 +190,6 @@ function wp_get_post_autosave( $post_id, $user_id = 0 ) {
                                continue;
 
                        return $revision;
                                continue;
 
                        return $revision;
-                       break;
                }
        }
 
                }
        }
 
@@ -254,7 +253,6 @@ function _wp_put_post_revision( $post = null, $autosave = false ) {
        if ( isset($post['post_type']) && 'revision' == $post['post_type'] )
                return new WP_Error( 'post_type', __( 'Cannot create a revision of a revision' ) );
 
        if ( isset($post['post_type']) && 'revision' == $post['post_type'] )
                return new WP_Error( 'post_type', __( 'Cannot create a revision of a revision' ) );
 
-       $post_id = $post['ID'];
        $post = _wp_post_revision_fields( $post, $autosave );
        $post = wp_slash($post); //since data is from db
 
        $post = _wp_post_revision_fields( $post, $autosave );
        $post = wp_slash($post); //since data is from db
 
@@ -411,7 +409,7 @@ function wp_delete_post_revision( $revision_id ) {
  *
  * @uses get_children()
  *
  *
  * @uses get_children()
  *
- * @param int|object $post_id Post ID or post object
+ * @param int|WP_Post $post_id Optional. Post ID or WP_Post object. Default is global $post.
  * @return array An array of revisions, or an empty array if none.
  */
 function wp_get_post_revisions( $post_id = 0, $args = null ) {
  * @return array An array of revisions, or an empty array if none.
  */
 function wp_get_post_revisions( $post_id = 0, $args = null ) {
@@ -419,7 +417,7 @@ function wp_get_post_revisions( $post_id = 0, $args = null ) {
        if ( ! $post || empty( $post->ID ) )
                return array();
 
        if ( ! $post || empty( $post->ID ) )
                return array();
 
-       $defaults = array( 'order' => 'DESC', 'orderby' => 'date', 'check_enabled' => true );
+       $defaults = array( 'order' => 'DESC', 'orderby' => 'date ID', 'check_enabled' => true );
        $args = wp_parse_args( $args, $defaults );
 
        if ( $args['check_enabled'] && ! wp_revisions_enabled( $post ) )
        $args = wp_parse_args( $args, $defaults );
 
        if ( $args['check_enabled'] && ! wp_revisions_enabled( $post ) )
index 0de3b3e34db5dd4176b776c15f4dd100a3b256c4..67dade306002fc49cca9f6e7dd3f89e35f9b2e3d 100644 (file)
@@ -571,7 +571,7 @@ class WP_Rewrite {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $index = 'index.php';
+       public $index = 'index.php';
 
        /**
         * Variable name to use for regex matches in the rewritten query.
 
        /**
         * Variable name to use for regex matches in the rewritten query.
@@ -654,7 +654,7 @@ class WP_Rewrite {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $use_verbose_rules = false;
+       public $use_verbose_rules = false;
 
        /**
         * Could post permalinks be confused with those of pages?
 
        /**
         * Could post permalinks be confused with those of pages?
@@ -672,7 +672,7 @@ class WP_Rewrite {
         * @access public
         * @var bool
         */
         * @access public
         * @var bool
         */
-       var $use_verbose_page_rules = true;
+       public $use_verbose_page_rules = true;
 
        /**
         * Rewrite tags that can be used in permalink structures.
 
        /**
         * Rewrite tags that can be used in permalink structures.
@@ -763,7 +763,7 @@ class WP_Rewrite {
         *
         * @return bool True, if permalinks are enabled.
         */
         *
         * @return bool True, if permalinks are enabled.
         */
-       function using_permalinks() {
+       public function using_permalinks() {
                return ! empty($this->permalink_structure);
        }
 
                return ! empty($this->permalink_structure);
        }
 
@@ -777,7 +777,7 @@ class WP_Rewrite {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function using_index_permalinks() {
+       public function using_index_permalinks() {
                if ( empty($this->permalink_structure) )
                        return false;
 
                if ( empty($this->permalink_structure) )
                        return false;
 
@@ -798,7 +798,7 @@ class WP_Rewrite {
         *
         * @return bool
         */
         *
         * @return bool
         */
-       function using_mod_rewrite_permalinks() {
+       public function using_mod_rewrite_permalinks() {
                if ( $this->using_permalinks() && ! $this->using_index_permalinks() )
                        return true;
                else
                if ( $this->using_permalinks() && ! $this->using_index_permalinks() )
                        return true;
                else
@@ -821,7 +821,7 @@ class WP_Rewrite {
         * @param int $number Index number.
         * @return string
         */
         * @param int $number Index number.
         * @return string
         */
-       function preg_index($number) {
+       public function preg_index($number) {
                $match_prefix = '$';
                $match_suffix = '';
 
                $match_prefix = '$';
                $match_suffix = '';
 
@@ -844,7 +844,7 @@ class WP_Rewrite {
         *
         * @return array Array of page URIs as first element and attachment URIs as second element.
         */
         *
         * @return array Array of page URIs as first element and attachment URIs as second element.
         */
-       function page_uri_index() {
+       public function page_uri_index() {
                global $wpdb;
 
                //get pages in order of hierarchy, i.e. children after parents
                global $wpdb;
 
                //get pages in order of hierarchy, i.e. children after parents
@@ -886,7 +886,7 @@ class WP_Rewrite {
         *
         * @return array
         */
         *
         * @return array
         */
-       function page_rewrite_rules() {
+       public function page_rewrite_rules() {
                // the extra .? at the beginning prevents clashes with other regular expressions in the rules array
                $this->add_rewrite_tag( '%pagename%', '(.?.+?)', 'pagename=' );
 
                // the extra .? at the beginning prevents clashes with other regular expressions in the rules array
                $this->add_rewrite_tag( '%pagename%', '(.?.+?)', 'pagename=' );
 
@@ -913,7 +913,7 @@ class WP_Rewrite {
         *
         * @return bool|string False on no permalink structure. Date permalink structure.
         */
         *
         * @return bool|string False on no permalink structure. Date permalink structure.
         */
-       function get_date_permastruct() {
+       public function get_date_permastruct() {
                if ( isset($this->date_structure) )
                        return $this->date_structure;
 
                if ( isset($this->date_structure) )
                        return $this->date_structure;
 
@@ -967,7 +967,7 @@ class WP_Rewrite {
         *
         * @return bool|string False on failure. Year structure on success.
         */
         *
         * @return bool|string False on failure. Year structure on success.
         */
-       function get_year_permastruct() {
+       public function get_year_permastruct() {
                $structure = $this->get_date_permastruct();
 
                if ( empty($structure) )
                $structure = $this->get_date_permastruct();
 
                if ( empty($structure) )
@@ -992,7 +992,7 @@ class WP_Rewrite {
         *
         * @return bool|string False on failure. Year/Month structure on success.
         */
         *
         * @return bool|string False on failure. Year/Month structure on success.
         */
-       function get_month_permastruct() {
+       public function get_month_permastruct() {
                $structure = $this->get_date_permastruct();
 
                if ( empty($structure) )
                $structure = $this->get_date_permastruct();
 
                if ( empty($structure) )
@@ -1015,7 +1015,7 @@ class WP_Rewrite {
         *
         * @return bool|string False on failure. Year/Month/Day structure on success.
         */
         *
         * @return bool|string False on failure. Year/Month/Day structure on success.
         */
-       function get_day_permastruct() {
+       public function get_day_permastruct() {
                return $this->get_date_permastruct();
        }
 
                return $this->get_date_permastruct();
        }
 
@@ -1032,7 +1032,7 @@ class WP_Rewrite {
         *
         * @return bool|string False on failure. Category permalink structure.
         */
         *
         * @return bool|string False on failure. Category permalink structure.
         */
-       function get_category_permastruct() {
+       public function get_category_permastruct() {
                return $this->get_extra_permastruct('category');
        }
 
                return $this->get_extra_permastruct('category');
        }
 
@@ -1049,7 +1049,7 @@ class WP_Rewrite {
         *
         * @return bool|string False on failure. Tag permalink structure.
         */
         *
         * @return bool|string False on failure. Tag permalink structure.
         */
-       function get_tag_permastruct() {
+       public function get_tag_permastruct() {
                return $this->get_extra_permastruct('post_tag');
        }
 
                return $this->get_extra_permastruct('post_tag');
        }
 
@@ -1062,7 +1062,7 @@ class WP_Rewrite {
         * @param string $name Permalink structure name.
         * @return string|bool False if not found. Permalink structure string.
         */
         * @param string $name Permalink structure name.
         * @return string|bool False if not found. Permalink structure string.
         */
-       function get_extra_permastruct($name) {
+       public function get_extra_permastruct($name) {
                if ( empty($this->permalink_structure) )
                        return false;
 
                if ( empty($this->permalink_structure) )
                        return false;
 
@@ -1084,7 +1084,7 @@ class WP_Rewrite {
         *
         * @return string|bool False if not found. Permalink structure string.
         */
         *
         * @return string|bool False if not found. Permalink structure string.
         */
-       function get_author_permastruct() {
+       public function get_author_permastruct() {
                if ( isset($this->author_structure) )
                        return $this->author_structure;
 
                if ( isset($this->author_structure) )
                        return $this->author_structure;
 
@@ -1110,7 +1110,7 @@ class WP_Rewrite {
         *
         * @return string|bool False if not found. Permalink structure string.
         */
         *
         * @return string|bool False if not found. Permalink structure string.
         */
-       function get_search_permastruct() {
+       public function get_search_permastruct() {
                if ( isset($this->search_structure) )
                        return $this->search_structure;
 
                if ( isset($this->search_structure) )
                        return $this->search_structure;
 
@@ -1136,7 +1136,7 @@ class WP_Rewrite {
         *
         * @return string|bool False if not found. Permalink structure string.
         */
         *
         * @return string|bool False if not found. Permalink structure string.
         */
-       function get_page_permastruct() {
+       public function get_page_permastruct() {
                if ( isset($this->page_structure) )
                        return $this->page_structure;
 
                if ( isset($this->page_structure) )
                        return $this->page_structure;
 
@@ -1162,7 +1162,7 @@ class WP_Rewrite {
         *
         * @return string|bool False if not found. Permalink structure string.
         */
         *
         * @return string|bool False if not found. Permalink structure string.
         */
-       function get_feed_permastruct() {
+       public function get_feed_permastruct() {
                if ( isset($this->feed_structure) )
                        return $this->feed_structure;
 
                if ( isset($this->feed_structure) )
                        return $this->feed_structure;
 
@@ -1188,7 +1188,7 @@ class WP_Rewrite {
         *
         * @return string|bool False if not found. Permalink structure string.
         */
         *
         * @return string|bool False if not found. Permalink structure string.
         */
-       function get_comment_feed_permastruct() {
+       public function get_comment_feed_permastruct() {
                if ( isset($this->comment_feed_structure) )
                        return $this->comment_feed_structure;
 
                if ( isset($this->comment_feed_structure) )
                        return $this->comment_feed_structure;
 
@@ -1218,7 +1218,7 @@ class WP_Rewrite {
         * @param string $regex Regular expression to substitute the tag for in rewrite rules.
         * @param string $query String to append to the rewritten query. Must end in '='.
         */
         * @param string $regex Regular expression to substitute the tag for in rewrite rules.
         * @param string $query String to append to the rewritten query. Must end in '='.
         */
-       function add_rewrite_tag( $tag, $regex, $query ) {
+       public function add_rewrite_tag( $tag, $regex, $query ) {
                $position = array_search( $tag, $this->rewritecode );
                if ( false !== $position && null !== $position ) {
                        $this->rewritereplace[ $position ] = $regex;
                $position = array_search( $tag, $this->rewritecode );
                if ( false !== $position && null !== $position ) {
                        $this->rewritereplace[ $position ] = $regex;
@@ -1250,7 +1250,7 @@ class WP_Rewrite {
         * @param bool $endpoints Should endpoints be applied to the generated rewrite rules? Default is true.
         * @return array Rewrite rule list.
         */
         * @param bool $endpoints Should endpoints be applied to the generated rewrite rules? Default is true.
         * @return array Rewrite rule list.
         */
-       function generate_rewrite_rules($permalink_structure, $ep_mask = EP_NONE, $paged = true, $feed = true, $forcomments = false, $walk_dirs = true, $endpoints = true) {
+       public function generate_rewrite_rules($permalink_structure, $ep_mask = EP_NONE, $paged = true, $feed = true, $forcomments = false, $walk_dirs = true, $endpoints = true) {
                //build a regex to match the feed section of URLs, something like (feed|atom|rss|rss2)/?
                $feedregex2 = '';
                foreach ( (array) $this->feeds as $feed_name)
                //build a regex to match the feed section of URLs, something like (feed|atom|rss|rss2)/?
                $feedregex2 = '';
                foreach ( (array) $this->feeds as $feed_name)
@@ -1520,7 +1520,7 @@ class WP_Rewrite {
         * @param bool $walk_dirs Optional, default is false. Whether to create list of directories to walk over.
         * @return array
         */
         * @param bool $walk_dirs Optional, default is false. Whether to create list of directories to walk over.
         * @return array
         */
-       function generate_rewrite_rule($permalink_structure, $walk_dirs = false) {
+       public function generate_rewrite_rule($permalink_structure, $walk_dirs = false) {
                return $this->generate_rewrite_rules($permalink_structure, EP_NONE, false, false, false, $walk_dirs);
        }
 
                return $this->generate_rewrite_rules($permalink_structure, EP_NONE, false, false, false, $walk_dirs);
        }
 
@@ -1542,7 +1542,7 @@ class WP_Rewrite {
         *
         * @return array An associate array of matches and queries.
         */
         *
         * @return array An associate array of matches and queries.
         */
-       function rewrite_rules() {
+       public function rewrite_rules() {
                $rewrite = array();
 
                if ( empty($this->permalink_structure) )
                $rewrite = array();
 
                if ( empty($this->permalink_structure) )
@@ -1744,7 +1744,7 @@ class WP_Rewrite {
         *
         * @return array Rewrite rules.
         */
         *
         * @return array Rewrite rules.
         */
-       function wp_rewrite_rules() {
+       public function wp_rewrite_rules() {
                $this->rules = get_option('rewrite_rules');
                if ( empty($this->rules) ) {
                        $this->matches = 'matches';
                $this->rules = get_option('rewrite_rules');
                if ( empty($this->rules) ) {
                        $this->matches = 'matches';
@@ -1769,7 +1769,7 @@ class WP_Rewrite {
         *
         * @return string
         */
         *
         * @return string
         */
-       function mod_rewrite_rules() {
+       public function mod_rewrite_rules() {
                if ( ! $this->using_permalinks() )
                        return '';
 
                if ( ! $this->using_permalinks() )
                        return '';
 
@@ -1867,7 +1867,7 @@ class WP_Rewrite {
         *
         * @return string
         */
         *
         * @return string
         */
-       function iis7_url_rewrite_rules( $add_parent_tags = false ) {
+       public function iis7_url_rewrite_rules( $add_parent_tags = false ) {
 
                if ( ! $this->using_permalinks() )
                        return '';
 
                if ( ! $this->using_permalinks() )
                        return '';
@@ -1922,7 +1922,7 @@ class WP_Rewrite {
         * @param string $redirect URL regex redirects to when regex matches request.
         * @param string $after Optional, default is bottom. Location to place rule.
         */
         * @param string $redirect URL regex redirects to when regex matches request.
         * @param string $after Optional, default is bottom. Location to place rule.
         */
-       function add_rule($regex, $redirect, $after = 'bottom') {
+       public function add_rule($regex, $redirect, $after = 'bottom') {
                //get everything up to the first ?
                $index = (strpos($redirect, '?') == false ? strlen($redirect) : strpos($redirect, '?'));
                $front = substr($redirect, 0, $index);
                //get everything up to the first ?
                $index = (strpos($redirect, '?') == false ? strlen($redirect) : strpos($redirect, '?'));
                $front = substr($redirect, 0, $index);
@@ -1948,7 +1948,7 @@ class WP_Rewrite {
         * @param string $regex Regular expression to match against request.
         * @param string $redirect URL regex redirects to when regex matches request.
         */
         * @param string $regex Regular expression to match against request.
         * @param string $redirect URL regex redirects to when regex matches request.
         */
-       function add_external_rule($regex, $redirect) {
+       public function add_external_rule($regex, $redirect) {
                $this->non_wp_rules[$regex] = $redirect;
        }
 
                $this->non_wp_rules[$regex] = $redirect;
        }
 
@@ -1966,7 +1966,7 @@ class WP_Rewrite {
         * @param int    $places    Endpoint mask describing the places the endpoint should be added.
         * @param string $query_var Name of the corresponding query variable. Default is value of $name.
         */
         * @param int    $places    Endpoint mask describing the places the endpoint should be added.
         * @param string $query_var Name of the corresponding query variable. Default is value of $name.
         */
-       function add_endpoint( $name, $places, $query_var = null ) {
+       public function add_endpoint( $name, $places, $query_var = null ) {
                global $wp;
                if ( null === $query_var ) {
                        $query_var = $name;
                global $wp;
                if ( null === $query_var ) {
                        $query_var = $name;
@@ -2003,7 +2003,7 @@ class WP_Rewrite {
         *                          rules built for each in turn? Default is true.
         *     - endpoints (bool) - Should endpoints be applied to the generated rewrite rules? Default is true.
         */
         *                          rules built for each in turn? Default is true.
         *     - endpoints (bool) - Should endpoints be applied to the generated rewrite rules? Default is true.
         */
-       function add_permastruct( $name, $struct, $args = array() ) {
+       public function add_permastruct( $name, $struct, $args = array() ) {
                // backwards compatibility for the old parameters: $with_front and $ep_mask
                if ( ! is_array( $args ) )
                        $args = array( 'with_front' => $args );
                // backwards compatibility for the old parameters: $with_front and $ep_mask
                if ( ! is_array( $args ) )
                        $args = array( 'with_front' => $args );
@@ -2042,7 +2042,7 @@ class WP_Rewrite {
         * @access public
         * @param bool $hard Whether to update .htaccess (hard flush) or just update rewrite_rules option (soft flush). Default is true (hard).
         */
         * @access public
         * @param bool $hard Whether to update .htaccess (hard flush) or just update rewrite_rules option (soft flush). Default is true (hard).
         */
-       function flush_rules($hard = true) {
+       public function flush_rules($hard = true) {
                delete_option('rewrite_rules');
                $this->wp_rewrite_rules();
                /**
                delete_option('rewrite_rules');
                $this->wp_rewrite_rules();
                /**
@@ -2073,7 +2073,7 @@ class WP_Rewrite {
         * @since 1.5.0
         * @access public
         */
         * @since 1.5.0
         * @access public
         */
-       function init() {
+       public function init() {
                $this->extra_rules = $this->non_wp_rules = $this->endpoints = array();
                $this->permalink_structure = get_option('permalink_structure');
                $this->front = substr($this->permalink_structure, 0, strpos($this->permalink_structure, '%'));
                $this->extra_rules = $this->non_wp_rules = $this->endpoints = array();
                $this->permalink_structure = get_option('permalink_structure');
                $this->front = substr($this->permalink_structure, 0, strpos($this->permalink_structure, '%'));
@@ -2110,7 +2110,7 @@ class WP_Rewrite {
         *
         * @param string $permalink_structure Permalink structure.
         */
         *
         * @param string $permalink_structure Permalink structure.
         */
-       function set_permalink_structure($permalink_structure) {
+       public function set_permalink_structure($permalink_structure) {
                if ( $permalink_structure != $this->permalink_structure ) {
                        $old_permalink_structure = $this->permalink_structure;
                        update_option('permalink_structure', $permalink_structure);
                if ( $permalink_structure != $this->permalink_structure ) {
                        $old_permalink_structure = $this->permalink_structure;
                        update_option('permalink_structure', $permalink_structure);
@@ -2140,7 +2140,7 @@ class WP_Rewrite {
         *
         * @param string $category_base Category permalink structure base.
         */
         *
         * @param string $category_base Category permalink structure base.
         */
-       function set_category_base($category_base) {
+       public function set_category_base($category_base) {
                if ( $category_base != get_option('category_base') ) {
                        update_option('category_base', $category_base);
                        $this->init();
                if ( $category_base != get_option('category_base') ) {
                        update_option('category_base', $category_base);
                        $this->init();
@@ -2159,7 +2159,7 @@ class WP_Rewrite {
         *
         * @param string $tag_base Tag permalink structure base.
         */
         *
         * @param string $tag_base Tag permalink structure base.
         */
-       function set_tag_base( $tag_base ) {
+       public function set_tag_base( $tag_base ) {
                if ( $tag_base != get_option( 'tag_base') ) {
                        update_option( 'tag_base', $tag_base );
                        $this->init();
                if ( $tag_base != get_option( 'tag_base') ) {
                        update_option( 'tag_base', $tag_base );
                        $this->init();
@@ -2174,7 +2174,7 @@ class WP_Rewrite {
         *
         * @return WP_Rewrite
         */
         *
         * @return WP_Rewrite
         */
-       function __construct() {
+       public function __construct() {
                $this->init();
        }
 }
                $this->init();
        }
 }
index ab6ead0f2ca8e1e3c54a87bd722b94e75744f217..7759003c65c642ec5a40dc95e29a2e728c1a7324 100644 (file)
@@ -247,7 +247,7 @@ class MagpieRSS {
                }
                elseif ($this->feed_type == ATOM and $this->incontent  ) {
                        // balance tags properly
                }
                elseif ($this->feed_type == ATOM and $this->incontent  ) {
                        // balance tags properly
-                       // note:  i don't think this is actually neccessary
+                       // note: This may not actually be necessary
                        if ( $this->stack[0] == $el )
                        {
                                $this->append_content("</$el>");
                        if ( $this->stack[0] == $el )
                        {
                                $this->append_content("</$el>");
@@ -724,7 +724,7 @@ class RSSCache {
        Function:       set
        Purpose:        add an item to the cache, keyed on url
        Input:          url from wich the rss file was fetched
        Function:       set
        Purpose:        add an item to the cache, keyed on url
        Input:          url from wich the rss file was fetched
-       Output:         true on sucess
+       Output:         true on success
 \*=======================================================================*/
        function set ($url, $rss) {
                $cache_option = 'rss_' . $this->file_name( $url );
 \*=======================================================================*/
        function set ($url, $rss) {
                $cache_option = 'rss_' . $this->file_name( $url );
index 1779ae748f3591a53d1a1d99fc4193c08c99cd9b..ab228b371cc8a77cdd68bd1dce33a49909f43c5c 100644 (file)
@@ -48,7 +48,7 @@ require( ABSPATH . WPINC . '/functions.wp-styles.php' );
  * @param object $scripts WP_Scripts object.
  */
 function wp_default_scripts( &$scripts ) {
  * @param object $scripts WP_Scripts object.
  */
 function wp_default_scripts( &$scripts ) {
-       include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
 
        $develop_src = false !== strpos( $wp_version, '-src' );
 
 
        $develop_src = false !== strpos( $wp_version, '-src' );
 
@@ -74,6 +74,7 @@ function wp_default_scripts( &$scripts ) {
                'url' => (string) SITECOOKIEPATH,
                'uid' => (string) get_current_user_id(),
                'time' => (string) time(),
                'url' => (string) SITECOOKIEPATH,
                'uid' => (string) get_current_user_id(),
                'time' => (string) time(),
+               'secure' => (string) ( 'https' === parse_url( site_url(), PHP_URL_SCHEME ) ),
        ) );
 
        $scripts->add( 'common', "/wp-admin/js/common$suffix.js", array('jquery', 'hoverIntent', 'utils'), false, 1 );
        ) );
 
        $scripts->add( 'common', "/wp-admin/js/common$suffix.js", array('jquery', 'hoverIntent', 'utils'), false, 1 );
@@ -159,8 +160,8 @@ function wp_default_scripts( &$scripts ) {
        $scripts->add( 'cropper', '/wp-includes/js/crop/cropper.js', array('scriptaculous-dragdrop') );
 
        // jQuery
        $scripts->add( 'cropper', '/wp-includes/js/crop/cropper.js', array('scriptaculous-dragdrop') );
 
        // jQuery
-       $scripts->add( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '1.11.0' );
-       $scripts->add( 'jquery-core', '/wp-includes/js/jquery/jquery.js', array(), '1.11.0' );
+       $scripts->add( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '1.11.1' );
+       $scripts->add( 'jquery-core', '/wp-includes/js/jquery/jquery.js', array(), '1.11.1' );
        $scripts->add( 'jquery-migrate', "/wp-includes/js/jquery/jquery-migrate$suffix.js", array(), '1.2.1' );
 
        // full jQuery UI
        $scripts->add( 'jquery-migrate', "/wp-includes/js/jquery/jquery-migrate$suffix.js", array(), '1.2.1' );
 
        // full jQuery UI
@@ -234,12 +235,6 @@ function wp_default_scripts( &$scripts ) {
 
        $scripts->add( 'swfobject', "/wp-includes/js/swfobject.js", array(), '2.2-20120417');
 
 
        $scripts->add( 'swfobject', "/wp-includes/js/swfobject.js", array(), '2.2-20120417');
 
-       // common bits for both uploaders
-       $max_upload_size = ( (int) ( $max_up = @ini_get('upload_max_filesize') ) < (int) ( $max_post = @ini_get('post_max_size') ) ) ? $max_up : $max_post;
-
-       if ( empty($max_upload_size) )
-               $max_upload_size = __('not configured');
-
        // error message for both plupload and swfupload
        $uploader_l10n = array(
                'queue_limit_exceeded' => __('You have attempted to queue too many files.'),
        // error message for both plupload and swfupload
        $uploader_l10n = array(
                'queue_limit_exceeded' => __('You have attempted to queue too many files.'),
@@ -307,9 +302,9 @@ function wp_default_scripts( &$scripts ) {
 
        $scripts->add( 'imgareaselect', "/wp-includes/js/imgareaselect/jquery.imgareaselect$suffix.js", array('jquery'), '0.9.10', 1 );
 
 
        $scripts->add( 'imgareaselect', "/wp-includes/js/imgareaselect/jquery.imgareaselect$suffix.js", array('jquery'), '0.9.10', 1 );
 
-       $scripts->add( 'mediaelement', "/wp-includes/js/mediaelement/mediaelement-and-player.min.js", array('jquery'), '2.14.2', 1 );
+       $scripts->add( 'mediaelement', "/wp-includes/js/mediaelement/mediaelement-and-player.min.js", array('jquery'), '2.15.0', 1 );
        did_action( 'init' ) && $scripts->localize( 'mediaelement', 'mejsL10n', array(
        did_action( 'init' ) && $scripts->localize( 'mediaelement', 'mejsL10n', array(
-               'language' => get_bloginfo( 'language' ),
+               'language' => substr( get_bloginfo( 'language' ), 0, 2 ),
                'strings'  => array(
                        'Close'               => __( 'Close' ),
                        'Fullscreen'          => __( 'Fullscreen' ),
                'strings'  => array(
                        'Close'               => __( 'Close' ),
                        'Fullscreen'          => __( 'Fullscreen' ),
@@ -351,6 +346,7 @@ function wp_default_scripts( &$scripts ) {
        ) );
 
        $scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter' ), false, 1 );
        ) );
 
        $scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter' ), false, 1 );
+       $scripts->add( 'language-chooser', "/wp-admin/js/language-chooser$suffix.js", array( 'jquery' ), false, 1 );
 
        $scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
 
 
        $scripts->add( 'user-suggest', "/wp-admin/js/user-suggest$suffix.js", array( 'jquery-ui-autocomplete' ), false, 1 );
 
@@ -387,6 +383,7 @@ function wp_default_scripts( &$scripts ) {
        did_action( 'init' ) && $scripts->localize( 'customize-controls', '_wpCustomizeControlsL10n', array(
                'activate'  => __( 'Save &amp; Activate' ),
                'save'      => __( 'Save &amp; Publish' ),
        did_action( 'init' ) && $scripts->localize( 'customize-controls', '_wpCustomizeControlsL10n', array(
                'activate'  => __( 'Save &amp; Activate' ),
                'save'      => __( 'Save &amp; Publish' ),
+               'saveAlert' => __( 'The changes you made will be lost if you navigate away from this page.' ),
                'saved'     => __( 'Saved' ),
                'cancel'    => __( 'Cancel' ),
                'close'     => __( 'Close' ),
                'saved'     => __( 'Saved' ),
                'cancel'    => __( 'Cancel' ),
                'close'     => __( 'Close' ),
@@ -463,6 +460,8 @@ function wp_default_scripts( &$scripts ) {
                        'savingText' => __('Saving Draft&#8230;'),
                ) );
 
                        'savingText' => __('Saving Draft&#8230;'),
                ) );
 
+               $scripts->add( 'editor-expand', "/wp-admin/js/editor-expand$suffix.js", array( 'jquery' ), false, 1 );
+
                $scripts->add( 'link', "/wp-admin/js/link$suffix.js", array( 'wp-lists', 'postbox' ), false, 1 );
 
                $scripts->add( 'comment', "/wp-admin/js/comment$suffix.js", array( 'jquery', 'postbox' ) );
                $scripts->add( 'link', "/wp-admin/js/link$suffix.js", array( 'wp-lists', 'postbox' ), false, 1 );
 
                $scripts->add( 'comment', "/wp-admin/js/comment$suffix.js", array( 'jquery', 'postbox' ) );
@@ -482,7 +481,7 @@ function wp_default_scripts( &$scripts ) {
                        'error' => __('Error while saving the changes.'),
                        'ntdeltitle' => __('Remove From Bulk Edit'),
                        'notitle' => __('(no title)'),
                        'error' => __('Error while saving the changes.'),
                        'ntdeltitle' => __('Remove From Bulk Edit'),
                        'notitle' => __('(no title)'),
-                       'comma' => _x( ',', 'tag delimiter' ),
+                       'comma' => trim( _x( ',', 'tag delimiter' ) ),
                ) );
 
                $scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery' ), false, 1 );
                ) );
 
                $scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery' ), false, 1 );
@@ -513,6 +512,7 @@ function wp_default_scripts( &$scripts ) {
 
                $scripts->add( 'list-revisions', "/wp-includes/js/wp-list-revisions$suffix.js" );
 
 
                $scripts->add( 'list-revisions', "/wp-includes/js/wp-list-revisions$suffix.js" );
 
+               $scripts->add( 'media-grid', "/wp-includes/js/media-grid$suffix.js", array( 'media-editor' ), false, 1 );
                $scripts->add( 'media', "/wp-admin/js/media$suffix.js", array( 'jquery' ), false, 1 );
                did_action( 'init' ) && $scripts->localize( 'media', 'attachMediaBoxL10n', array(
                        'error' => __( 'An error has occurred. Please reload the page and try again.' ),
                $scripts->add( 'media', "/wp-admin/js/media$suffix.js", array( 'jquery' ), false, 1 );
                did_action( 'init' ) && $scripts->localize( 'media', 'attachMediaBoxL10n', array(
                        'error' => __( 'An error has occurred. Please reload the page and try again.' ),
@@ -536,7 +536,8 @@ function wp_default_scripts( &$scripts ) {
                did_action( 'init' ) && $scripts->localize( 'nav-menu', 'navMenuL10n', array(
                        'noResultsFound' => _x('No results found.', 'search results'),
                        'warnDeleteMenu' => __( "You are about to permanently delete this menu. \n 'Cancel' to stop, 'OK' to delete." ),
                did_action( 'init' ) && $scripts->localize( 'nav-menu', 'navMenuL10n', array(
                        'noResultsFound' => _x('No results found.', 'search results'),
                        'warnDeleteMenu' => __( "You are about to permanently delete this menu. \n 'Cancel' to stop, 'OK' to delete." ),
-                       'saveAlert' => __('The changes you made will be lost if you navigate away from this page.')
+                       'saveAlert' => __( 'The changes you made will be lost if you navigate away from this page.' ),
+                       'untitled' => _x( '(no label)', 'missing menu item navigation label' )
                ) );
 
                $scripts->add( 'custom-header', "/wp-admin/js/custom-header.js", array( 'jquery-masonry' ), false, 1 );
                ) );
 
                $scripts->add( 'custom-header', "/wp-admin/js/custom-header.js", array( 'jquery-masonry' ), false, 1 );
@@ -563,7 +564,7 @@ function wp_default_scripts( &$scripts ) {
  * @param object $styles
  */
 function wp_default_styles( &$styles ) {
  * @param object $styles
  */
 function wp_default_styles( &$styles ) {
-       include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
 
        if ( ! defined( 'SCRIPT_DEBUG' ) )
                define( 'SCRIPT_DEBUG', false !== strpos( $wp_version, '-src' ) );
 
        if ( ! defined( 'SCRIPT_DEBUG' ) )
                define( 'SCRIPT_DEBUG', false !== strpos( $wp_version, '-src' ) );
@@ -633,7 +634,7 @@ function wp_default_styles( &$styles ) {
        // External libraries and friends
        $styles->add( 'imgareaselect',       '/wp-includes/js/imgareaselect/imgareaselect.css', array(), '0.9.8' );
        $styles->add( 'wp-jquery-ui-dialog', "/wp-includes/css/jquery-ui-dialog$suffix.css", array( 'dashicons' ) );
        // External libraries and friends
        $styles->add( 'imgareaselect',       '/wp-includes/js/imgareaselect/imgareaselect.css', array(), '0.9.8' );
        $styles->add( 'wp-jquery-ui-dialog', "/wp-includes/css/jquery-ui-dialog$suffix.css", array( 'dashicons' ) );
-       $styles->add( 'mediaelement',        "/wp-includes/js/mediaelement/mediaelementplayer.min.css", array(), '2.13.0' );
+       $styles->add( 'mediaelement',        "/wp-includes/js/mediaelement/mediaelementplayer.min.css", array(), '2.15.0' );
        $styles->add( 'wp-mediaelement',     "/wp-includes/js/mediaelement/wp-mediaelement.css", array( 'mediaelement' ) );
        $styles->add( 'thickbox',            '/wp-includes/js/thickbox/thickbox.css', array( 'dashicons' ) );
 
        $styles->add( 'wp-mediaelement',     "/wp-includes/js/mediaelement/wp-mediaelement.css", array( 'mediaelement' ) );
        $styles->add( 'thickbox',            '/wp-includes/js/thickbox/thickbox.css', array( 'dashicons' ) );
 
@@ -924,17 +925,13 @@ function wp_enqueue_scripts() {
  * @since 2.8.0
  */
 function print_admin_styles() {
  * @since 2.8.0
  */
 function print_admin_styles() {
-       global $wp_styles, $concatenate_scripts, $compress_css;
+       global $wp_styles, $concatenate_scripts;
 
        if ( !is_a($wp_styles, 'WP_Styles') )
                $wp_styles = new WP_Styles();
 
        script_concat_settings();
        $wp_styles->do_concat = $concatenate_scripts;
 
        if ( !is_a($wp_styles, 'WP_Styles') )
                $wp_styles = new WP_Styles();
 
        script_concat_settings();
        $wp_styles->do_concat = $concatenate_scripts;
-       $zip = $compress_css ? 1 : 0;
-       if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
-               $zip = 'gzip';
-
        $wp_styles->do_items(false);
 
        /**
        $wp_styles->do_items(false);
 
        /**
diff --git a/wp-includes/session.php b/wp-includes/session.php
new file mode 100644 (file)
index 0000000..dca4d94
--- /dev/null
@@ -0,0 +1,425 @@
+<?php
+/**
+ * Abstract class for managing user session tokens.
+ *
+ * @since 4.0.0
+ */
+abstract class WP_Session_Tokens {
+
+       /**
+        * User ID.
+        *
+        * @since 4.0.0
+        * @access protected
+        * @var int User ID.
+        */
+       protected $user_id;
+
+       /**
+        * Protected constructor.
+        *
+        * @since 4.0.0
+        *
+        * @param int $user_id User whose session to manage.
+        */
+       protected function __construct( $user_id ) {
+               $this->user_id = $user_id;
+       }
+
+       /**
+        * Get a session token manager instance for a user.
+        *
+        * This method contains a filter that allows a plugin to swap out
+        * the session manager for a subclass of WP_Session_Tokens.
+        *
+        * @since 4.0.0
+        * @access public
+        * @static
+        *
+        * @param int $user_id User whose session to manage.
+        */
+       final public static function get_instance( $user_id ) {
+               /**
+                * Filter the session token manager used.
+                *
+                * @since 4.0.0
+                *
+                * @param string $session Name of class to use as the manager.
+                *                        Default 'WP_User_Meta_Session_Tokens'.
+                */
+               $manager = apply_filters( 'session_token_manager', 'WP_User_Meta_Session_Tokens' );
+               return new $manager( $user_id );
+       }
+
+       /**
+        * Hashes a session token for storage.
+        *
+        * @since 4.0.0
+        * @access private
+        *
+        * @param string $token Session token to hash.
+        * @return string A hash of the session token (a verifier).
+        */
+       final private function hash_token( $token ) {
+               return hash( 'sha256', $token );
+       }
+
+       /**
+        * Get a user's session.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $token Session token
+        * @return array User session
+        */
+       final public function get( $token ) {
+               $verifier = $this->hash_token( $token );
+               return $this->get_session( $verifier );
+       }
+
+       /**
+        * Validate a user's session token as authentic.
+        *
+        * Checks that the given token is present and hasn't expired.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $token Token to verify.
+        * @return bool Whether the token is valid for the user.
+        */
+       final public function verify( $token ) {
+               $verifier = $this->hash_token( $token );
+               return (bool) $this->get_session( $verifier );
+       }
+
+       /**
+        * Generate a session token and attach session information to it.
+        *
+        * A session token is a long, random string. It is used in a cookie
+        * link that cookie to an expiration time and to ensure the cookie
+        * becomes invalidated upon logout.
+        *
+        * This function generates a token and stores it with the associated
+        * expiration time (and potentially other session information via the
+        * `attach_session_information` filter).
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param int $expiration Session expiration timestamp.
+        * @return string Session token.
+        */
+       final public function create( $expiration ) {
+               /**
+                * Filter the information attached to the newly created session.
+                *
+                * Could be used in the future to attach information such as
+                * IP address or user agent to a session.
+                *
+                * @since 4.0.0
+                *
+                * @param array $session Array of extra data.
+                * @param int   $user_id User ID.
+                */
+               $session = apply_filters( 'attach_session_information', array(), $this->user_id );
+               $session['expiration'] = $expiration;
+
+               $token = wp_generate_password( 43, false, false );
+
+               $this->update( $token, $session );
+
+               return $token;
+       }
+
+       /**
+        * Update a session token.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $token Session token to update.
+        * @param array  $session Session information.
+        */
+       final public function update( $token, $session ) {
+               $verifier = $this->hash_token( $token );
+               $this->update_session( $verifier, $session );
+       }
+
+       /**
+        * Destroy a session token.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $token Session token to destroy.
+        */
+       final public function destroy( $token ) {
+               $verifier = $this->hash_token( $token );
+               $this->update_session( $verifier, null );
+       }
+
+       /**
+        * Destroy all session tokens for this user,
+        * except a single token, presumably the one in use.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $token_to_keep Session token to keep.
+        */
+       final public function destroy_others( $token_to_keep ) {
+               $verifier = $this->hash_token( $token_to_keep );
+               $session = $this->get_session( $verifier );
+               if ( $session ) {
+                       $this->destroy_other_sessions( $verifier );
+               } else {
+                       $this->destroy_all_sessions();
+               }
+       }
+
+       /**
+        * Determine whether a session token is still valid,
+        * based on expiration.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @param array $session Session to check.
+        * @return bool Whether session is valid.
+        */
+       final protected function is_still_valid( $session ) {
+               return $session['expiration'] >= time();
+       }
+
+       /**
+        * Destroy all session tokens for a user.
+        *
+        * @since 4.0.0
+        * @access public
+        */
+       final public function destroy_all() {
+               $this->destroy_all_sessions();
+       }
+
+       /**
+        * Destroy all session tokens for all users.
+        *
+        * @since 4.0.0
+        * @access public
+        * @static
+        */
+       final public static function destroy_all_for_all_users() {
+               $manager = apply_filters( 'session_token_manager', 'WP_User_Meta_Session_Tokens' );
+               call_user_func( array( $manager, 'drop_sessions' ) );
+       }
+
+       /**
+        * Retrieve all sessions of a user.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @return array Sessions of a user.
+        */
+       final public function get_all() {
+               return array_values( $this->get_sessions() );
+       }
+
+       /**
+        * This method should retrieve all sessions of a user, keyed by verifier.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @return array Sessions of a user, keyed by verifier.
+        */
+       abstract protected function get_sessions();
+
+       /**
+        * This method should look up a session by its verifier (token hash).
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @param string $verifier Verifier of the session to retrieve.
+        * @return array|null The session, or null if it does not exist.
+        */
+       abstract protected function get_session( $verifier );
+
+       /**
+        * This method should update a session by its verifier.
+        *
+        * Omitting the second argument should destroy the session.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @param string $verifier Verifier of the session to update.
+        */
+       abstract protected function update_session( $verifier, $session = null );
+
+       /**
+        * This method should destroy all session tokens for this user,
+        * except a single session passed.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @param string $verifier Verifier of the session to keep.
+        */
+       abstract protected function destroy_other_sessions( $verifier );
+
+       /**
+        * This method should destroy all sessions for a user.
+        *
+        * @since 4.0.0
+        * @access protected
+        */
+       abstract protected function destroy_all_sessions();
+
+       /**
+        * This static method should destroy all session tokens for all users.
+        *
+        * @since 4.0.0
+        * @access public
+        * @static
+        */
+       public static function drop_sessions() {}
+}
+
+/**
+ * Meta-based user sessions token manager.
+ *
+ * @since 4.0.0
+ */
+class WP_User_Meta_Session_Tokens extends WP_Session_Tokens {
+
+       /**
+        * Get all sessions of a user.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @return array Sessions of a user.
+        */
+       protected function get_sessions() {
+               $sessions = get_user_meta( $this->user_id, 'session_tokens', true );
+
+               if ( ! is_array( $sessions ) ) {
+                       return array();
+               }
+
+               $sessions = array_map( array( $this, 'prepare_session' ), $sessions );
+               return array_filter( $sessions, array( $this, 'is_still_valid' ) );
+       }
+
+       /**
+        * Converts an expiration to an array of session information.
+        *
+        * @param mixed $session Session or expiration.
+        * @return array Session.
+        */
+       protected function prepare_session( $session ) {
+               if ( is_int( $session ) ) {
+                       return array( 'expiration' => $session );
+               }
+
+               return $session;
+       }
+
+       /**
+        * Retrieve a session by its verifier (token hash).
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @param string $verifier Verifier of the session to retrieve.
+        * @return array|null The session, or null if it does not exist
+        */
+       protected function get_session( $verifier ) {
+               $sessions = $this->get_sessions();
+
+               if ( isset( $sessions[ $verifier ] ) ) {
+                       return $sessions[ $verifier ];
+               }
+
+               return null;
+       }
+
+       /**
+        * Update a session by its verifier.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @param string $verifier Verifier of the session to update.
+        * @param array  $session  Optional. Session. Omitting this argument destroys the session.
+        */
+       protected function update_session( $verifier, $session = null ) {
+               $sessions = $this->get_sessions();
+
+               if ( $session ) {
+                       $sessions[ $verifier ] = $session;
+               } else {
+                       unset( $sessions[ $verifier ] );
+               }
+
+               $this->update_sessions( $sessions );
+       }
+
+       /**
+        * Update a user's sessions in the usermeta table.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @param array $sessions Sessions.
+        */
+       protected function update_sessions( $sessions ) {
+               if ( ! has_filter( 'attach_session_information' ) ) {
+                       $sessions = wp_list_pluck( $sessions, 'expiration' );
+               }
+
+               if ( $sessions ) {
+                       update_user_meta( $this->user_id, 'session_tokens', $sessions );
+               } else {
+                       delete_user_meta( $this->user_id, 'session_tokens' );
+               }
+       }
+
+       /**
+        * Destroy all session tokens for a user, except a single session passed.
+        *
+        * @since 4.0.0
+        * @access protected
+        *
+        * @param string $verifier Verifier of the session to keep.
+        */
+       protected function destroy_other_sessions( $verifier ) {
+               $session = $this->get_session( $verifier );
+               $this->update_sessions( array( $verifier => $session ) );
+       }
+
+       /**
+        * Destroy all session tokens for a user.
+        *
+        * @since 4.0.0
+        * @access protected
+        */
+       protected function destroy_all_sessions() {
+               $this->update_sessions( array() );
+       }
+
+       /**
+        * Destroy all session tokens for all users.
+        *
+        * @since 4.0.0
+        * @access public
+        * @static
+        */
+       public static function drop_sessions() {
+               delete_metadata( 'user', false, 'session_tokens', false, true );
+       }
+}
index 15f8561d5b11d0a6d6bfac29a209407f7647c72a..55e64a1863f9f9891b42595b2c7bc02cb76ae8d4 100644 (file)
@@ -65,12 +65,12 @@ $shortcode_tags = array();
  * <code>
  * // [bartag foo="bar"]
  * function bartag_func($atts) {
  * <code>
  * // [bartag foo="bar"]
  * function bartag_func($atts) {
- *     extract(shortcode_atts(array(
+ *     $args = shortcode_atts(array(
  *             'foo' => 'no foo',
  *             'baz' => 'default baz',
  *             'foo' => 'no foo',
  *             'baz' => 'default baz',
- *     ), $atts));
+ *     ), $atts);
  *
  *
- *     return "foo = {$foo}";
+ *     return "foo = {$args['foo']}";
  * }
  * add_shortcode('bartag', 'bartag_func');
  * </code>
  * }
  * add_shortcode('bartag', 'bartag_func');
  * </code>
@@ -165,8 +165,11 @@ function has_shortcode( $content, $tag ) {
                        return false;
 
                foreach ( $matches as $shortcode ) {
                        return false;
 
                foreach ( $matches as $shortcode ) {
-                       if ( $tag === $shortcode[2] )
+                       if ( $tag === $shortcode[2] ) {
                                return true;
                                return true;
+                       } elseif ( ! empty( $shortcode[5] ) && has_shortcode( $shortcode[5], $tag ) ) {
+                               return true;
+                       }
                }
        }
        return false;
                }
        }
        return false;
index df209a50e14bab487b2e40579cfc49112ee06fdd..5846844631f49aaed2cdc9fa1841f9d7cbc1ed6f 100644 (file)
@@ -276,9 +276,9 @@ function is_taxonomy_hierarchical($taxonomy) {
  * - public - If the taxonomy should be publicly queryable; //@TODO not implemented.
  *     * Defaults to true.
  * - hierarchical - Whether the taxonomy is hierarchical (e.g. category). Defaults to false.
  * - public - If the taxonomy should be publicly queryable; //@TODO not implemented.
  *     * Defaults to true.
  * - hierarchical - Whether the taxonomy is hierarchical (e.g. category). Defaults to false.
- * - show_ui -Whether to generate a default UI for managing this taxonomy in the admin.
+ * - show_ui - Whether to generate a default UI for managing this taxonomy in the admin.
  *     * If not set, the default is inherited from public.
  *     * If not set, the default is inherited from public.
- * - show_in_menu - Where to show the taxonomy in the admin menu.
+ * - show_in_menu - Whether to show the taxonomy in the admin menu.
  *     * If true, the taxonomy is shown as a submenu of the object type menu.
  *     * If false, no menu is shown.
  *     * show_ui must be true.
  *     * If true, the taxonomy is shown as a submenu of the object type menu.
  *     * If false, no menu is shown.
  *     * show_ui must be true.
@@ -346,8 +346,10 @@ function register_taxonomy( $taxonomy, $object_type, $args = array() ) {
        );
        $args = wp_parse_args( $args, $defaults );
 
        );
        $args = wp_parse_args( $args, $defaults );
 
-       if ( strlen( $taxonomy ) > 32 )
+       if ( strlen( $taxonomy ) > 32 ) {
+               _doing_it_wrong( __FUNCTION__, __( 'Taxonomies cannot exceed 32 characters in length' ), '4.0' );
                return new WP_Error( 'taxonomy_too_long', __( 'Taxonomies cannot exceed 32 characters in length' ) );
                return new WP_Error( 'taxonomy_too_long', __( 'Taxonomies cannot exceed 32 characters in length' ) );
+       }
 
        if ( false !== $args['query_var'] && ! empty( $wp ) ) {
                if ( true === $args['query_var'] )
 
        if ( false !== $args['query_var'] && ! empty( $wp ) ) {
                if ( true === $args['query_var'] )
@@ -427,7 +429,7 @@ function register_taxonomy( $taxonomy, $object_type, $args = array() ) {
         *
         * @param string       $taxonomy    Taxonomy slug.
         * @param array|string $object_type Object type or array of object types.
         *
         * @param string       $taxonomy    Taxonomy slug.
         * @param array|string $object_type Object type or array of object types.
-        * @param array|string $args        Array or string of taxonomy registration arguments.
+        * @param array        $args        Array of taxonomy registration arguments.
         */
        do_action( 'registered_taxonomy', $taxonomy, $object_type, $args );
 }
         */
        do_action( 'registered_taxonomy', $taxonomy, $object_type, $args );
 }
@@ -576,22 +578,22 @@ function unregister_taxonomy_for_object_type( $taxonomy, $object_type ) {
 function get_objects_in_term( $term_ids, $taxonomies, $args = array() ) {
        global $wpdb;
 
 function get_objects_in_term( $term_ids, $taxonomies, $args = array() ) {
        global $wpdb;
 
-       if ( ! is_array( $term_ids ) )
+       if ( ! is_array( $term_ids ) ) {
                $term_ids = array( $term_ids );
                $term_ids = array( $term_ids );
-
-       if ( ! is_array( $taxonomies ) )
+       }
+       if ( ! is_array( $taxonomies ) ) {
                $taxonomies = array( $taxonomies );
                $taxonomies = array( $taxonomies );
-
+       }
        foreach ( (array) $taxonomies as $taxonomy ) {
        foreach ( (array) $taxonomies as $taxonomy ) {
-               if ( ! taxonomy_exists( $taxonomy ) )
+               if ( ! taxonomy_exists( $taxonomy ) ) {
                        return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy' ) );
                        return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy' ) );
+               }
        }
 
        $defaults = array( 'order' => 'ASC' );
        $args = wp_parse_args( $args, $defaults );
        }
 
        $defaults = array( 'order' => 'ASC' );
        $args = wp_parse_args( $args, $defaults );
-       extract( $args, EXTR_SKIP );
 
 
-       $order = ( 'desc' == strtolower( $order ) ) ? 'DESC' : 'ASC';
+       $order = ( 'desc' == strtolower( $args['order'] ) ) ? 'DESC' : 'ASC';
 
        $term_ids = array_map('intval', $term_ids );
 
 
        $term_ids = array_map('intval', $term_ids );
 
@@ -600,9 +602,9 @@ function get_objects_in_term( $term_ids, $taxonomies, $args = array() ) {
 
        $object_ids = $wpdb->get_col("SELECT tr.object_id FROM $wpdb->term_relationships AS tr INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ($taxonomies) AND tt.term_id IN ($term_ids) ORDER BY tr.object_id $order");
 
 
        $object_ids = $wpdb->get_col("SELECT tr.object_id FROM $wpdb->term_relationships AS tr INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ($taxonomies) AND tt.term_id IN ($term_ids) ORDER BY tr.object_id $order");
 
-       if ( ! $object_ids )
+       if ( ! $object_ids ){
                return array();
                return array();
-
+       }
        return $object_ids;
 }
 
        return $object_ids;
 }
 
@@ -632,15 +634,15 @@ class WP_Tax_Query {
 
        /**
         * List of taxonomy queries. A single taxonomy query is an associative array:
 
        /**
         * List of taxonomy queries. A single taxonomy query is an associative array:
-        * - 'taxonomy' string The taxonomy being queried
+        * - 'taxonomy' string The taxonomy being queried. Optional when using the term_taxonomy_id field.
         * - 'terms' string|array The list of terms
         * - 'field' string (optional) Which term field is being used.
         * - 'terms' string|array The list of terms
         * - 'field' string (optional) Which term field is being used.
-        *              Possible values: 'term_id', 'slug' or 'name'
+        *              Possible values: 'term_id', 'slug', 'name', or 'term_taxonomy_id'
         *              Default: 'term_id'
         * - 'operator' string (optional)
         *              Possible values: 'AND', 'IN' or 'NOT IN'.
         *              Default: 'IN'
         *              Default: 'term_id'
         * - 'operator' string (optional)
         *              Possible values: 'AND', 'IN' or 'NOT IN'.
         *              Default: 'IN'
-        * - 'include_children' bool (optional) Whether to include child terms.
+        * - 'include_children' bool (optional) Whether to include child terms. Requires that a taxonomy be specified.
         *              Default: true
         *
         * @since 3.1.0
         *              Default: true
         *
         * @since 3.1.0
@@ -738,17 +740,20 @@ class WP_Tax_Query {
                foreach ( $this->queries as $index => $query ) {
                        $this->clean_query( $query );
 
                foreach ( $this->queries as $index => $query ) {
                        $this->clean_query( $query );
 
-                       if ( is_wp_error( $query ) )
+                       if ( is_wp_error( $query ) ) {
                                return self::$no_results;
                                return self::$no_results;
+                       }
 
 
-                       extract( $query );
+                       $terms = $query['terms'];
+                       $operator = strtoupper( $query['operator'] );
 
                        if ( 'IN' == $operator ) {
 
                                if ( empty( $terms ) ) {
                                        if ( 'OR' == $this->relation ) {
 
                        if ( 'IN' == $operator ) {
 
                                if ( empty( $terms ) ) {
                                        if ( 'OR' == $this->relation ) {
-                                               if ( ( $index + 1 === $count ) && empty( $where ) )
+                                               if ( ( $index + 1 === $count ) && empty( $where ) ) {
                                                        return self::$no_results;
                                                        return self::$no_results;
+                                               }
                                                continue;
                                        } else {
                                                return self::$no_results;
                                                continue;
                                        } else {
                                                return self::$no_results;
@@ -766,8 +771,9 @@ class WP_Tax_Query {
                                $where[] = "$alias.term_taxonomy_id $operator ($terms)";
                        } elseif ( 'NOT IN' == $operator ) {
 
                                $where[] = "$alias.term_taxonomy_id $operator ($terms)";
                        } elseif ( 'NOT IN' == $operator ) {
 
-                               if ( empty( $terms ) )
+                               if ( empty( $terms ) ) {
                                        continue;
                                        continue;
+                               }
 
                                $terms = implode( ',', $terms );
 
 
                                $terms = implode( ',', $terms );
 
@@ -778,8 +784,9 @@ class WP_Tax_Query {
                                )";
                        } elseif ( 'AND' == $operator ) {
 
                                )";
                        } elseif ( 'AND' == $operator ) {
 
-                               if ( empty( $terms ) )
+                               if ( empty( $terms ) ) {
                                        continue;
                                        continue;
+                               }
 
                                $num_terms = count( $terms );
 
 
                                $num_terms = count( $terms );
 
@@ -796,11 +803,11 @@ class WP_Tax_Query {
                        $i++;
                }
 
                        $i++;
                }
 
-               if ( ! empty( $where ) )
+               if ( ! empty( $where ) ) {
                        $where = ' AND ( ' . implode( " $this->relation ", $where ) . ' )';
                        $where = ' AND ( ' . implode( " $this->relation ", $where ) . ' )';
-               else
+               } else {
                        $where = '';
                        $where = '';
-
+               }
                return compact( 'join', 'where' );
        }
 
                return compact( 'join', 'where' );
        }
 
@@ -813,7 +820,15 @@ class WP_Tax_Query {
         * @param array &$query The single query
         */
        private function clean_query( &$query ) {
         * @param array &$query The single query
         */
        private function clean_query( &$query ) {
-               if ( ! taxonomy_exists( $query['taxonomy'] ) ) {
+               if ( empty( $query['taxonomy'] ) ) {
+                       if ( 'term_taxonomy_id' !== $query['field'] ) {
+                               $query = new WP_Error( 'Invalid taxonomy' );
+                               return;
+                       }
+
+                       // so long as there are shared terms, include_children requires that a taxonomy is set
+                       $query['include_children'] = false;
+               } elseif ( ! taxonomy_exists( $query['taxonomy'] ) ) {
                        $query = new WP_Error( 'Invalid taxonomy' );
                        return;
                }
                        $query = new WP_Error( 'Invalid taxonomy' );
                        return;
                }
@@ -1196,91 +1211,65 @@ function get_term_to_edit( $id, $taxonomy ) {
  * The 'get_terms_fields' filter passes the fields for the SELECT query
  * along with the $args array.
  *
  * The 'get_terms_fields' filter passes the fields for the SELECT query
  * along with the $args array.
  *
- * The list of arguments that $args can contain, which will overwrite the defaults:
- *
- * orderby - Default is 'name'. Can be name, count, term_group, slug or nothing
- * (will use term_id), Passing a custom value other than these will cause it to
- * order based on the custom value.
- *
- * order - Default is ASC. Can use DESC.
- *
- * hide_empty - Default is true. Will not return empty terms, which means
- * terms whose count is 0 according to the given taxonomy.
- *
- * exclude - Default is an empty array. An array, comma- or space-delimited string
- * of term ids to exclude from the return array. If 'include' is non-empty,
- * 'exclude' is ignored.
- *
- * exclude_tree - Default is an empty array. An array, comma- or space-delimited
- * string of term ids to exclude from the return array, along with all of their
- * descendant terms according to the primary taxonomy. If 'include' is non-empty,
- * 'exclude_tree' is ignored.
- *
- * include - Default is an empty array. An array, comma- or space-delimited string
- * of term ids to include in the return array.
- *
- * number - The maximum number of terms to return. Default is to return them all.
- *
- * offset - The number by which to offset the terms query.
- *
- * fields - Default is 'all', which returns an array of term objects.
- * If 'fields' is 'ids' or 'names', returns an array of
- * integers or strings, respectively.
- *
- * slug - Returns terms whose "slug" matches this value. Default is empty string.
- *
- * hierarchical - Whether to include terms that have non-empty descendants
- * (even if 'hide_empty' is set to true).
- *
- * search - Returned terms' names will contain the value of 'search',
- * case-insensitive. Default is an empty string.
- *
- * name__like - Returned terms' names will contain the value of 'name__like',
- * case-insensitive. Default is empty string.
- *
- * description__like - Returned terms' descriptions will contain the value of
- *  'description__like', case-insensitive. Default is empty string.
- *
- * The argument 'pad_counts', if set to true will include the quantity of a term's
- * children in the quantity of each term's "count" object variable.
- *
- * The 'get' argument, if set to 'all' instead of its default empty string,
- * returns terms regardless of ancestry or whether the terms are empty.
- *
- * The 'child_of' argument, when used, should be set to the integer of a term ID. Its default
- * is 0. If set to a non-zero value, all returned terms will be descendants
- * of that term according to the given taxonomy. Hence 'child_of' is set to 0
- * if more than one taxonomy is passed in $taxonomies, because multiple taxonomies
- * make term ancestry ambiguous.
- *
- * The 'parent' argument, when used, should be set to the integer of a term ID. Its default is
- * the empty string '', which has a different meaning from the integer 0.
- * If set to an integer value, all returned terms will have as an immediate
- * ancestor the term whose ID is specified by that integer according to the given taxonomy.
- * The 'parent' argument is different from 'child_of' in that a term X is considered a 'parent'
- * of term Y only if term X is the father of term Y, not its grandfather or great-grandfather, etc.
- *
- * The 'cache_domain' argument enables a unique cache key to be produced when this query is stored
- * in object cache. For instance, if you are using one of this function's filters to modify the
- * query (such as 'terms_clauses'), setting 'cache_domain' to a unique value will not overwrite
- * the cache for similar queries. Default value is 'core'.
- *
  * @since 2.3.0
  *
  * @since 2.3.0
  *
- * @uses $wpdb
- * @uses wp_parse_args() Merges the defaults with those defined by $args and allows for strings.
+ * @global wpdb $wpdb WordPress database access abstraction object.
  *
  *
- * @param string|array $taxonomies Taxonomy name or list of Taxonomy names
- * @param string|array $args The values of what to search for when returning terms
- * @return array|WP_Error List of Term Objects and their children. Will return WP_Error, if any of $taxonomies do not exist.
+ * @param string|array $taxonomies Taxonomy name or list of Taxonomy names.
+ * @param array|string $args {
+ *     Optional. Array or string of arguments to get terms.
+ *
+ *     @type string   $orderby               Field(s) to order terms by. Accepts term fields, though
+ *                                           empty defaults to 'term_id'. Default 'name'.
+ *     @type string   $order                 Whether to order terms in ascending or descending order.
+ *                                           Accepts 'ASC' (ascending) or 'DESC' (descending).
+ *                                           Default 'ASC'.
+ *     @type bool|int     $hide_empty        Whether to hide terms not assigned to any posts. Accepts
+ *                                           1|true or 0|false. Default 1|true.
+ *     @type array|string $include           Array or comma/space-separated string of term ids to include.
+ *                                           Default empty array.
+ *     @type array|string $exclude           Array or comma/space-separated string of term ids to exclude.
+ *                                           If $include is non-empty, $exclude is ignored.
+ *                                           Default empty array.
+ *     @type array|string $exclude_tree      Array or comma/space-separated string of term ids to exclude
+ *                                           along with all of their descendant terms. If $include is
+ *                                           non-empty, $exclude_tree is ignored. Default empty array.
+ *     @type int          $number            Maximum number of terms to return. Accepts 1+ or -1 (all).
+ *                                           Default -1.
+ *     @type int          $offset            The number by which to offset the terms query. Default empty.
+ *     @type string       $fields            Term fields to query for. Accepts 'all' (returns an array of
+ *                                           term objects), 'ids' or 'names' (returns an array of integers
+ *                                           or strings, respectively. Default 'all'.
+ *     @type string       $slug              Slug to return term(s) for. Default empty.
+ *     @type bool         $hierarchical      Whether to include terms that have non-empty descendants (even
+ *                                           if $hide_empty is set to true). Default true.
+ *     @type string       $search            Search criteria to match terms. Will be SQL-formatted with
+ *                                           wildcards before and after. Default empty.
+ *     @type string       $name__like        Retrieve terms with criteria by which a term is LIKE $name__like.
+ *                                           Default empty.
+ *     @type string       $description__like Retrieve terms where the description is LIKE $description__like.
+ *                                           Default empty.
+ *     @type bool         $pad_counts        Whether to pad the quantity of a term's children in the quantity
+ *                                           of each term's "count" object variable. Default false.
+ *     @type string       $get               Whether to return terms regardless of ancestry or whether the terms
+ *                                           are empty. Accepts 'all' or empty (disabled). Default empty.
+ *     @type int          $child_of          Term ID to retrieve child terms of. If multiple taxonomies
+ *                                           are passed, $child_of is ignored. Default 0.
+ *     @type int|string   $parent            Parent term ID to retrieve direct-child terms of. Default empty.
+ *     @type string       $cache_domain      Unique cache key to be produced when this query is stored in an
+ *                                           object cache. Default is 'core'.
+ * }
+ * @return array|WP_Error List of Term Objects and their children. Will return WP_Error, if any of $taxonomies
+ *                        do not exist.
  */
  */
-function get_terms($taxonomies, $args = '') {
+function get_terms( $taxonomies, $args = '' ) {
        global $wpdb;
        $empty_array = array();
 
        $single_taxonomy = ! is_array( $taxonomies ) || 1 === count( $taxonomies );
        global $wpdb;
        $empty_array = array();
 
        $single_taxonomy = ! is_array( $taxonomies ) || 1 === count( $taxonomies );
-       if ( ! is_array( $taxonomies ) )
+       if ( ! is_array( $taxonomies ) ) {
                $taxonomies = array( $taxonomies );
                $taxonomies = array( $taxonomies );
+       }
 
        foreach ( $taxonomies as $taxonomy ) {
                if ( ! taxonomy_exists($taxonomy) ) {
 
        foreach ( $taxonomies as $taxonomy ) {
                if ( ! taxonomy_exists($taxonomy) ) {
@@ -1321,23 +1310,25 @@ function get_terms($taxonomies, $args = '') {
         */
        $args = apply_filters( 'get_terms_args', $args, $taxonomies );
 
         */
        $args = apply_filters( 'get_terms_args', $args, $taxonomies );
 
-       extract($args, EXTR_SKIP);
-
+       $child_of = $args['child_of'];
        if ( $child_of ) {
                $hierarchy = _get_term_hierarchy( reset( $taxonomies ) );
        if ( $child_of ) {
                $hierarchy = _get_term_hierarchy( reset( $taxonomies ) );
-               if ( ! isset( $hierarchy[ $child_of ] ) )
+               if ( ! isset( $hierarchy[ $child_of ] ) ) {
                        return $empty_array;
                        return $empty_array;
+               }
        }
 
        }
 
+       $parent = $args['parent'];
        if ( $parent ) {
                $hierarchy = _get_term_hierarchy( reset( $taxonomies ) );
        if ( $parent ) {
                $hierarchy = _get_term_hierarchy( reset( $taxonomies ) );
-               if ( ! isset( $hierarchy[ $parent ] ) )
+               if ( ! isset( $hierarchy[ $parent ] ) ) {
                        return $empty_array;
                        return $empty_array;
+               }
        }
 
        // $args can be whatever, only use the args defined in defaults to compute the key
        $filter_key = ( has_filter('list_terms_exclusions') ) ? serialize($GLOBALS['wp_filter']['list_terms_exclusions']) : '';
        }
 
        // $args can be whatever, only use the args defined in defaults to compute the key
        $filter_key = ( has_filter('list_terms_exclusions') ) ? serialize($GLOBALS['wp_filter']['list_terms_exclusions']) : '';
-       $key = md5( serialize( compact(array_keys($defaults)) ) . serialize( $taxonomies ) . $filter_key );
+       $key = md5( serialize( wp_array_slice_assoc( $args, array_keys( $defaults ) ) ) . serialize( $taxonomies ) . $filter_key );
        $last_changed = wp_cache_get( 'last_changed', 'terms' );
        if ( ! $last_changed ) {
                $last_changed = microtime();
        $last_changed = wp_cache_get( 'last_changed', 'terms' );
        if ( ! $last_changed ) {
                $last_changed = microtime();
@@ -1360,22 +1351,22 @@ function get_terms($taxonomies, $args = '') {
                return $cache;
        }
 
                return $cache;
        }
 
-       $_orderby = strtolower($orderby);
-       if ( 'count' == $_orderby )
+       $_orderby = strtolower( $args['orderby'] );
+       if ( 'count' == $_orderby ) {
                $orderby = 'tt.count';
                $orderby = 'tt.count';
-       else if ( 'name' == $_orderby )
+       } else if ( 'name' == $_orderby ) {
                $orderby = 't.name';
                $orderby = 't.name';
-       else if ( 'slug' == $_orderby )
+       } else if ( 'slug' == $_orderby ) {
                $orderby = 't.slug';
                $orderby = 't.slug';
-       else if ( 'term_group' == $_orderby )
+       } else if ( 'term_group' == $_orderby ) {
                $orderby = 't.term_group';
                $orderby = 't.term_group';
-       else if ( 'none' == $_orderby )
+       } else if ( 'none' == $_orderby ) {
                $orderby = '';
                $orderby = '';
-       elseif ( empty($_orderby) || 'id' == $_orderby )
+       } elseif ( empty($_orderby) || 'id' == $_orderby ) {
                $orderby = 't.term_id';
                $orderby = 't.term_id';
-       else
+       } else {
                $orderby = 't.name';
                $orderby = 't.name';
-
+       }
        /**
         * Filter the ORDERBY clause of the terms query.
         *
        /**
         * Filter the ORDERBY clause of the terms query.
         *
@@ -1387,16 +1378,23 @@ function get_terms($taxonomies, $args = '') {
         */
        $orderby = apply_filters( 'get_terms_orderby', $orderby, $args, $taxonomies );
 
         */
        $orderby = apply_filters( 'get_terms_orderby', $orderby, $args, $taxonomies );
 
-       if ( !empty($orderby) )
+       $order = strtoupper( $args['order'] );
+       if ( ! empty( $orderby ) ) {
                $orderby = "ORDER BY $orderby";
                $orderby = "ORDER BY $orderby";
-       else
+       } else {
                $order = '';
                $order = '';
+       }
 
 
-       $order = strtoupper( $order );
-       if ( '' !== $order && !in_array( $order, array( 'ASC', 'DESC' ) ) )
+       if ( '' !== $order && ! in_array( $order, array( 'ASC', 'DESC' ) ) ) {
                $order = 'ASC';
                $order = 'ASC';
+       }
 
        $where = "tt.taxonomy IN ('" . implode("', '", $taxonomies) . "')";
 
        $where = "tt.taxonomy IN ('" . implode("', '", $taxonomies) . "')";
+
+       $exclude = $args['exclude'];
+       $exclude_tree = $args['exclude_tree'];
+       $include = $args['include'];
+
        $inclusions = '';
        if ( ! empty( $include ) ) {
                $exclude = '';
        $inclusions = '';
        if ( ! empty( $include ) ) {
                $exclude = '';
@@ -1409,7 +1407,6 @@ function get_terms($taxonomies, $args = '') {
                $where .= $inclusions;
        }
 
                $where .= $inclusions;
        }
 
-       $exclusions = '';
        if ( ! empty( $exclude_tree ) ) {
                $exclude_tree = wp_parse_id_list( $exclude_tree );
                $excluded_children = $exclude_tree;
        if ( ! empty( $exclude_tree ) ) {
                $exclude_tree = wp_parse_id_list( $exclude_tree );
                $excluded_children = $exclude_tree;
@@ -1420,18 +1417,22 @@ function get_terms($taxonomies, $args = '') {
                        );
                }
                $exclusions = implode( ',', array_map( 'intval', $excluded_children ) );
                        );
                }
                $exclusions = implode( ',', array_map( 'intval', $excluded_children ) );
+       } else {
+               $exclusions = '';
        }
 
        if ( ! empty( $exclude ) ) {
                $exterms = wp_parse_id_list( $exclude );
        }
 
        if ( ! empty( $exclude ) ) {
                $exterms = wp_parse_id_list( $exclude );
-               if ( empty( $exclusions ) )
+               if ( empty( $exclusions ) ) {
                        $exclusions = implode( ',', $exterms );
                        $exclusions = implode( ',', $exterms );
-               else
+               } else {
                        $exclusions .= ', ' . implode( ',', $exterms );
                        $exclusions .= ', ' . implode( ',', $exterms );
+               }
        }
 
        }
 
-       if ( ! empty( $exclusions ) )
+       if ( ! empty( $exclusions ) ) {
                $exclusions = ' AND t.term_id NOT IN (' . $exclusions . ')';
                $exclusions = ' AND t.term_id NOT IN (' . $exclusions . ')';
+       }
 
        /**
         * Filter the terms to exclude from the terms query.
 
        /**
         * Filter the terms to exclude from the terms query.
@@ -1444,22 +1445,21 @@ function get_terms($taxonomies, $args = '') {
         */
        $exclusions = apply_filters( 'list_terms_exclusions', $exclusions, $args, $taxonomies );
 
         */
        $exclusions = apply_filters( 'list_terms_exclusions', $exclusions, $args, $taxonomies );
 
-       if ( ! empty( $exclusions ) )
+       if ( ! empty( $exclusions ) ) {
                $where .= $exclusions;
                $where .= $exclusions;
+       }
 
 
-       if ( !empty($slug) ) {
-               $slug = sanitize_title($slug);
+       if ( ! empty( $args['slug'] ) ) {
+               $slug = sanitize_title( $args['slug'] );
                $where .= " AND t.slug = '$slug'";
        }
 
                $where .= " AND t.slug = '$slug'";
        }
 
-       if ( !empty($name__like) ) {
-               $name__like = like_escape( $name__like );
-               $where .= $wpdb->prepare( " AND t.name LIKE %s", '%' . $name__like . '%' );
+       if ( ! empty( $args['name__like'] ) ) {
+               $where .= $wpdb->prepare( " AND t.name LIKE %s", '%' . $wpdb->esc_like( $args['name__like'] ) . '%' );
        }
 
        }
 
-       if ( ! empty( $description__like ) ) {
-               $description__like = like_escape( $description__like );
-               $where .= $wpdb->prepare( " AND tt.description LIKE %s", '%' . $description__like . '%' );
+       if ( ! empty( $args['description__like'] ) ) {
+               $where .= $wpdb->prepare( " AND tt.description LIKE %s", '%' . $wpdb->esc_like( $args['description__like'] ) . '%' );
        }
 
        if ( '' !== $parent ) {
        }
 
        if ( '' !== $parent ) {
@@ -1467,29 +1467,35 @@ function get_terms($taxonomies, $args = '') {
                $where .= " AND tt.parent = '$parent'";
        }
 
                $where .= " AND tt.parent = '$parent'";
        }
 
-       if ( 'count' == $fields )
+       $hierarchical = $args['hierarchical'];
+       if ( 'count' == $args['fields'] ) {
                $hierarchical = false;
                $hierarchical = false;
-
-       if ( $hide_empty && !$hierarchical )
+       }
+       if ( $args['hide_empty'] && !$hierarchical ) {
                $where .= ' AND tt.count > 0';
                $where .= ' AND tt.count > 0';
+       }
+
+       $number = $args['number'];
+       $offset = $args['offset'];
 
        // don't limit the query results when we have to descend the family tree
        if ( $number && ! $hierarchical && ! $child_of && '' === $parent ) {
 
        // don't limit the query results when we have to descend the family tree
        if ( $number && ! $hierarchical && ! $child_of && '' === $parent ) {
-               if ( $offset )
+               if ( $offset ) {
                        $limits = 'LIMIT ' . $offset . ',' . $number;
                        $limits = 'LIMIT ' . $offset . ',' . $number;
-               else
+               } else {
                        $limits = 'LIMIT ' . $number;
                        $limits = 'LIMIT ' . $number;
+               }
        } else {
                $limits = '';
        }
 
        } else {
                $limits = '';
        }
 
-       if ( ! empty( $search ) ) {
-               $search = like_escape( $search );
-               $where .= $wpdb->prepare( ' AND ((t.name LIKE %s) OR (t.slug LIKE %s))', '%' . $search . '%', '%' . $search . '%' );
+       if ( ! empty( $args['search'] ) ) {
+               $like = '%' . $wpdb->esc_like( $args['search'] ) . '%';
+               $where .= $wpdb->prepare( ' AND ((t.name LIKE %s) OR (t.slug LIKE %s))', $like, $like );
        }
 
        $selects = array();
        }
 
        $selects = array();
-       switch ( $fields ) {
+       switch ( $args['fields'] ) {
                case 'all':
                        $selects = array( 't.*', 'tt.*' );
                        break;
                case 'all':
                        $selects = array( 't.*', 'tt.*' );
                        break;
@@ -1513,7 +1519,7 @@ function get_terms($taxonomies, $args = '') {
                        break;
        }
 
                        break;
        }
 
-       $_fields = $fields;
+       $_fields = $args['fields'];
 
        /**
         * Filter the fields to select in the terms query.
 
        /**
         * Filter the fields to select in the terms query.
@@ -1540,20 +1546,22 @@ function get_terms($taxonomies, $args = '') {
         * @param array        $args       An array of terms query arguments.
         */
        $clauses = apply_filters( 'terms_clauses', compact( $pieces ), $taxonomies, $args );
         * @param array        $args       An array of terms query arguments.
         */
        $clauses = apply_filters( 'terms_clauses', compact( $pieces ), $taxonomies, $args );
-       foreach ( $pieces as $piece )
-               $$piece = isset( $clauses[ $piece ] ) ? $clauses[ $piece ] : '';
+       $fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
+       $join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
+       $where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
+       $orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
+       $order = isset( $clauses[ 'order' ] ) ? $clauses[ 'order' ] : '';
+       $limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
 
        $query = "SELECT $fields FROM $wpdb->terms AS t $join WHERE $where $orderby $order $limits";
 
 
        $query = "SELECT $fields FROM $wpdb->terms AS t $join WHERE $where $orderby $order $limits";
 
-       $fields = $_fields;
-
-       if ( 'count' == $fields ) {
+       if ( 'count' == $_fields ) {
                $term_count = $wpdb->get_var($query);
                return $term_count;
        }
 
        $terms = $wpdb->get_results($query);
                $term_count = $wpdb->get_var($query);
                return $term_count;
        }
 
        $terms = $wpdb->get_results($query);
-       if ( 'all' == $fields ) {
+       if ( 'all' == $_fields ) {
                update_term_cache($terms);
        }
 
                update_term_cache($terms);
        }
 
@@ -1567,16 +1575,17 @@ function get_terms($taxonomies, $args = '') {
 
        if ( $child_of ) {
                $children = _get_term_hierarchy( reset( $taxonomies ) );
 
        if ( $child_of ) {
                $children = _get_term_hierarchy( reset( $taxonomies ) );
-               if ( ! empty( $children ) )
+               if ( ! empty( $children ) ) {
                        $terms = _get_term_children( $child_of, $terms, reset( $taxonomies ) );
                        $terms = _get_term_children( $child_of, $terms, reset( $taxonomies ) );
+               }
        }
 
        // Update term counts to include children.
        }
 
        // Update term counts to include children.
-       if ( $pad_counts && 'all' == $fields )
+       if ( $args['pad_counts'] && 'all' == $_fields ) {
                _pad_term_counts( $terms, reset( $taxonomies ) );
                _pad_term_counts( $terms, reset( $taxonomies ) );
-
+       }
        // Make sure we show empty categories that have children.
        // Make sure we show empty categories that have children.
-       if ( $hierarchical && $hide_empty && is_array( $terms ) ) {
+       if ( $hierarchical && $args['hide_empty'] && is_array( $terms ) ) {
                foreach ( $terms as $k => $term ) {
                        if ( ! $term->count ) {
                                $children = get_term_children( $term->term_id, reset( $taxonomies ) );
                foreach ( $terms as $k => $term ) {
                        if ( ! $term->count ) {
                                $children = get_term_children( $term->term_id, reset( $taxonomies ) );
@@ -1597,28 +1606,35 @@ function get_terms($taxonomies, $args = '') {
        reset( $terms );
 
        $_terms = array();
        reset( $terms );
 
        $_terms = array();
-       if ( 'id=>parent' == $fields ) {
-               while ( $term = array_shift( $terms ) )
+       if ( 'id=>parent' == $_fields ) {
+               while ( $term = array_shift( $terms ) ) {
                        $_terms[$term->term_id] = $term->parent;
                        $_terms[$term->term_id] = $term->parent;
-       } elseif ( 'ids' == $fields ) {
-               while ( $term = array_shift( $terms ) )
+               }
+       } elseif ( 'ids' == $_fields ) {
+               while ( $term = array_shift( $terms ) ) {
                        $_terms[] = $term->term_id;
                        $_terms[] = $term->term_id;
-       } elseif ( 'names' == $fields ) {
-               while ( $term = array_shift( $terms ) )
+               }
+       } elseif ( 'names' == $_fields ) {
+               while ( $term = array_shift( $terms ) ) {
                        $_terms[] = $term->name;
                        $_terms[] = $term->name;
-       } elseif ( 'id=>name' == $fields ) {
-               while ( $term = array_shift( $terms ) )
+               }
+       } elseif ( 'id=>name' == $_fields ) {
+               while ( $term = array_shift( $terms ) ) {
                        $_terms[$term->term_id] = $term->name;
                        $_terms[$term->term_id] = $term->name;
-       } elseif ( 'id=>slug' == $fields ) {
-               while ( $term = array_shift( $terms ) )
+               }
+       } elseif ( 'id=>slug' == $_fields ) {
+               while ( $term = array_shift( $terms ) ) {
                        $_terms[$term->term_id] = $term->slug;
                        $_terms[$term->term_id] = $term->slug;
+               }
        }
 
        }
 
-       if ( ! empty( $_terms ) )
+       if ( ! empty( $_terms ) ) {
                $terms = $_terms;
                $terms = $_terms;
+       }
 
 
-       if ( $number && is_array( $terms ) && count( $terms ) > $number )
+       if ( $number && is_array( $terms ) && count( $terms ) > $number ) {
                $terms = array_slice( $terms, $offset, $number );
                $terms = array_slice( $terms, $offset, $number );
+       }
 
        wp_cache_add( $cache_key, $terms, 'terms', DAY_IN_SECONDS );
 
 
        wp_cache_add( $cache_key, $terms, 'terms', DAY_IN_SECONDS );
 
@@ -1640,7 +1656,8 @@ function get_terms($taxonomies, $args = '') {
  * @param string $taxonomy The taxonomy name to use
  * @param int $parent ID of parent term under which to confine the exists search.
  * @return mixed Returns 0 if the term does not exist. Returns the term ID if no taxonomy is specified
  * @param string $taxonomy The taxonomy name to use
  * @param int $parent ID of parent term under which to confine the exists search.
  * @return mixed Returns 0 if the term does not exist. Returns the term ID if no taxonomy is specified
- *     and the term ID exists. Returns an array of the term ID and the taxonomy if the pairing exists.
+ *               and the term ID exists. Returns an array of the term ID and the term taxonomy ID
+ *               if the taxonomy is specified and the pairing exists.
  */
 function term_exists($term, $taxonomy = '', $parent = 0) {
        global $wpdb;
  */
 function term_exists($term, $taxonomy = '', $parent = 0) {
        global $wpdb;
@@ -2028,12 +2045,16 @@ function wp_delete_term( $term, $taxonomy, $args = array() ) {
        }
 
        $args = wp_parse_args($args, $defaults);
        }
 
        $args = wp_parse_args($args, $defaults);
-       extract($args, EXTR_SKIP);
 
 
-       if ( isset( $default ) ) {
-               $default = (int) $default;
-               if ( ! term_exists($default, $taxonomy) )
-                       unset($default);
+       if ( isset( $args['default'] ) ) {
+               $default = (int) $args['default'];
+               if ( ! term_exists( $default, $taxonomy ) ) {
+                       unset( $default );
+               }
+       }
+
+       if ( isset( $args['force_default'] ) ) {
+               $force_default = $args['force_default'];
        }
 
        // Update children to point to new parent
        }
 
        // Update children to point to new parent
@@ -2224,7 +2245,9 @@ function wp_get_object_terms($object_ids, $taxonomies, $args = array()) {
                        $args = array_merge($args, $t->args);
        }
 
                        $args = array_merge($args, $t->args);
        }
 
-       extract($args, EXTR_SKIP);
+       $orderby = $args['orderby'];
+       $order = $args['order'];
+       $fields = $args['fields'];
 
        if ( 'count' == $orderby )
                $orderby = 'tt.count';
 
        if ( 'count' == $orderby )
                $orderby = 'tt.count';
@@ -2271,6 +2294,7 @@ function wp_get_object_terms($object_ids, $taxonomies, $args = array()) {
 
        $query = "SELECT $select_this FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN $wpdb->term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ($taxonomies) AND tr.object_id IN ($object_ids) $orderby $order";
 
 
        $query = "SELECT $select_this FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN $wpdb->term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ($taxonomies) AND tr.object_id IN ($object_ids) $orderby $order";
 
+       $objects = false;
        if ( 'all' == $fields || 'all_with_object_id' == $fields ) {
                $_terms = $wpdb->get_results( $query );
                foreach ( $_terms as $key => $term ) {
        if ( 'all' == $fields || 'all_with_object_id' == $fields ) {
                $_terms = $wpdb->get_results( $query );
                foreach ( $_terms as $key => $term ) {
@@ -2278,6 +2302,7 @@ function wp_get_object_terms($object_ids, $taxonomies, $args = array()) {
                }
                $terms = array_merge( $terms, $_terms );
                update_term_cache( $terms );
                }
                $terms = array_merge( $terms, $_terms );
                update_term_cache( $terms );
+               $objects = true;
        } else if ( 'ids' == $fields || 'names' == $fields || 'slugs' == $fields ) {
                $_terms = $wpdb->get_col( $query );
                $_field = ( 'ids' == $fields ) ? 'term_id' : 'name';
        } else if ( 'ids' == $fields || 'names' == $fields || 'slugs' == $fields ) {
                $_terms = $wpdb->get_col( $query );
                $_field = ( 'ids' == $fields ) ? 'term_id' : 'name';
@@ -2292,9 +2317,23 @@ function wp_get_object_terms($object_ids, $taxonomies, $args = array()) {
                }
        }
 
                }
        }
 
-       if ( ! $terms )
+       if ( ! $terms ) {
                $terms = array();
                $terms = array();
+       } elseif ( $objects && 'all_with_object_id' !== $fields ) {
+               $_tt_ids = array();
+               $_terms = array();
+               foreach ( $terms as $term ) {
+                       if ( in_array( $term->term_taxonomy_id, $_tt_ids ) ) {
+                               continue;
+                       }
 
 
+                       $_tt_ids[] = $term->term_taxonomy_id;
+                       $_terms[] = $term;
+               }
+               $terms = $_terms;
+       } elseif ( ! $objects ) {
+               $terms = array_values( array_unique( $terms ) );
+       }
        /**
         * Filter the terms for a given object or objects.
         *
        /**
         * Filter the terms for a given object or objects.
         *
@@ -2357,9 +2396,9 @@ function wp_get_object_terms($object_ids, $taxonomies, $args = array()) {
 function wp_insert_term( $term, $taxonomy, $args = array() ) {
        global $wpdb;
 
 function wp_insert_term( $term, $taxonomy, $args = array() ) {
        global $wpdb;
 
-       if ( ! taxonomy_exists($taxonomy) )
+       if ( ! taxonomy_exists($taxonomy) ) {
                return new WP_Error('invalid_taxonomy', __('Invalid taxonomy'));
                return new WP_Error('invalid_taxonomy', __('Invalid taxonomy'));
-
+       }
        /**
         * Filter a term before it is sanitized and inserted into the database.
         *
        /**
         * Filter a term before it is sanitized and inserted into the database.
         *
@@ -2369,34 +2408,46 @@ function wp_insert_term( $term, $taxonomy, $args = array() ) {
         * @param string $taxonomy Taxonomy slug.
         */
        $term = apply_filters( 'pre_insert_term', $term, $taxonomy );
         * @param string $taxonomy Taxonomy slug.
         */
        $term = apply_filters( 'pre_insert_term', $term, $taxonomy );
-               if ( is_wp_error( $term ) )
-                       return $term;
-
-       if ( is_int($term) && 0 == $term )
+       if ( is_wp_error( $term ) ) {
+               return $term;
+       }
+       if ( is_int($term) && 0 == $term ) {
                return new WP_Error('invalid_term_id', __('Invalid term ID'));
                return new WP_Error('invalid_term_id', __('Invalid term ID'));
-
-       if ( '' == trim($term) )
+       }
+       if ( '' == trim($term) ) {
                return new WP_Error('empty_term_name', __('A name is required for this term'));
                return new WP_Error('empty_term_name', __('A name is required for this term'));
-
+       }
        $defaults = array( 'alias_of' => '', 'description' => '', 'parent' => 0, 'slug' => '');
        $defaults = array( 'alias_of' => '', 'description' => '', 'parent' => 0, 'slug' => '');
-       $args = wp_parse_args($args, $defaults);
+       $args = wp_parse_args( $args, $defaults );
+
+       if ( $args['parent'] > 0 && ! term_exists( (int) $args['parent'] ) ) {
+               return new WP_Error( 'missing_parent', __( 'Parent term does not exist.' ) );
+       }
        $args['name'] = $term;
        $args['taxonomy'] = $taxonomy;
        $args = sanitize_term($args, $taxonomy, 'db');
        $args['name'] = $term;
        $args['taxonomy'] = $taxonomy;
        $args = sanitize_term($args, $taxonomy, 'db');
-       extract($args, EXTR_SKIP);
 
        // expected_slashed ($name)
 
        // expected_slashed ($name)
-       $name = wp_unslash($name);
-       $description = wp_unslash($description);
+       $name = wp_unslash( $args['name'] );
+       $description = wp_unslash( $args['description'] );
+       $parent = (int) $args['parent'];
 
 
-       $slug_provided = ! empty( $slug );
+       $slug_provided = ! empty( $args['slug'] );
        if ( ! $slug_provided ) {
        if ( ! $slug_provided ) {
-               $slug = sanitize_title($name);
+               $_name = trim( $name );
+               $existing_term = get_term_by( 'name', $_name, $taxonomy );
+               if ( $existing_term ) {
+                       $slug = $existing_term->slug;
+               } else {
+                       $slug = sanitize_title( $name );
+               }
+       } else {
+               $slug = $args['slug'];
        }
 
        $term_group = 0;
        }
 
        $term_group = 0;
-       if ( $alias_of ) {
-               $alias = $wpdb->get_row( $wpdb->prepare( "SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $alias_of) );
+       if ( $args['alias_of'] ) {
+               $alias = $wpdb->get_row( $wpdb->prepare( "SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $args['alias_of'] ) );
                if ( $alias->term_group ) {
                        // The alias we want is already in a group, so let's use that one.
                        $term_group = $alias->term_group;
                if ( $alias->term_group ) {
                        // The alias we want is already in a group, so let's use that one.
                        $term_group = $alias->term_group;
@@ -2432,7 +2483,7 @@ function wp_insert_term( $term, $taxonomy, $args = array() ) {
                // We've got an existing term in the same taxonomy, which matches the name of the new term:
                if ( is_taxonomy_hierarchical($taxonomy) && $existing_term['name'] == $name && $exists = term_exists( (int) $term_id, $taxonomy ) ) {
                        // Hierarchical, and it matches an existing term, Do not allow same "name" in the same level.
                // We've got an existing term in the same taxonomy, which matches the name of the new term:
                if ( is_taxonomy_hierarchical($taxonomy) && $existing_term['name'] == $name && $exists = term_exists( (int) $term_id, $taxonomy ) ) {
                        // Hierarchical, and it matches an existing term, Do not allow same "name" in the same level.
-                       $siblings = get_terms($taxonomy, array('fields' => 'names', 'get' => 'all', 'parent' => (int)$parent) );
+                       $siblings = get_terms($taxonomy, array('fields' => 'names', 'get' => 'all', 'parent' => $parent ) );
                        if ( in_array($name, $siblings) ) {
                                if ( $slug_provided ) {
                                        return new WP_Error( 'term_exists', __( 'A term with the name and slug provided already exists with this parent.' ), $exists['term_id'] );
                        if ( in_array($name, $siblings) ) {
                                if ( $slug_provided ) {
                                        return new WP_Error( 'term_exists', __( 'A term with the name and slug provided already exists with this parent.' ), $exists['term_id'] );
@@ -2441,15 +2492,17 @@ function wp_insert_term( $term, $taxonomy, $args = array() ) {
                                }
                        } else {
                                $slug = wp_unique_term_slug($slug, (object) $args);
                                }
                        } else {
                                $slug = wp_unique_term_slug($slug, (object) $args);
-                               if ( false === $wpdb->insert( $wpdb->terms, compact( 'name', 'slug', 'term_group' ) ) )
+                               if ( false === $wpdb->insert( $wpdb->terms, compact( 'name', 'slug', 'term_group' ) ) ) {
                                        return new WP_Error('db_insert_error', __('Could not insert term into the database'), $wpdb->last_error);
                                        return new WP_Error('db_insert_error', __('Could not insert term into the database'), $wpdb->last_error);
+                               }
                                $term_id = (int) $wpdb->insert_id;
                        }
                } elseif ( $existing_term['name'] != $name ) {
                        // We've got an existing term, with a different name, Create the new term.
                        $slug = wp_unique_term_slug($slug, (object) $args);
                                $term_id = (int) $wpdb->insert_id;
                        }
                } elseif ( $existing_term['name'] != $name ) {
                        // We've got an existing term, with a different name, Create the new term.
                        $slug = wp_unique_term_slug($slug, (object) $args);
-                       if ( false === $wpdb->insert( $wpdb->terms, compact( 'name', 'slug', 'term_group' ) ) )
+                       if ( false === $wpdb->insert( $wpdb->terms, compact( 'name', 'slug', 'term_group' ) ) ) {
                                return new WP_Error('db_insert_error', __('Could not insert term into the database'), $wpdb->last_error);
                                return new WP_Error('db_insert_error', __('Could not insert term into the database'), $wpdb->last_error);
+                       }
                        $term_id = (int) $wpdb->insert_id;
                } elseif ( $exists = term_exists( (int) $term_id, $taxonomy ) )  {
                        // Same name, same slug.
                        $term_id = (int) $wpdb->insert_id;
                } elseif ( $exists = term_exists( (int) $term_id, $taxonomy ) )  {
                        // Same name, same slug.
@@ -2458,8 +2511,9 @@ function wp_insert_term( $term, $taxonomy, $args = array() ) {
        } else {
                // This term does not exist at all in the database, Create it.
                $slug = wp_unique_term_slug($slug, (object) $args);
        } else {
                // This term does not exist at all in the database, Create it.
                $slug = wp_unique_term_slug($slug, (object) $args);
-               if ( false === $wpdb->insert( $wpdb->terms, compact( 'name', 'slug', 'term_group' ) ) )
+               if ( false === $wpdb->insert( $wpdb->terms, compact( 'name', 'slug', 'term_group' ) ) ) {
                        return new WP_Error('db_insert_error', __('Could not insert term into the database'), $wpdb->last_error);
                        return new WP_Error('db_insert_error', __('Could not insert term into the database'), $wpdb->last_error);
+               }
                $term_id = (int) $wpdb->insert_id;
        }
 
                $term_id = (int) $wpdb->insert_id;
        }
 
@@ -2477,9 +2531,9 @@ function wp_insert_term( $term, $taxonomy, $args = array() ) {
 
        $tt_id = $wpdb->get_var( $wpdb->prepare( "SELECT tt.term_taxonomy_id FROM $wpdb->term_taxonomy AS tt INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.term_id = %d", $taxonomy, $term_id ) );
 
 
        $tt_id = $wpdb->get_var( $wpdb->prepare( "SELECT tt.term_taxonomy_id FROM $wpdb->term_taxonomy AS tt INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.term_id = %d", $taxonomy, $term_id ) );
 
-       if ( !empty($tt_id) )
+       if ( !empty($tt_id) ) {
                return array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id);
                return array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id);
-
+       }
        $wpdb->insert( $wpdb->term_taxonomy, compact( 'term_id', 'taxonomy', 'description', 'parent') + array( 'count' => 0 ) );
        $tt_id = (int) $wpdb->insert_id;
 
        $wpdb->insert( $wpdb->term_taxonomy, compact( 'term_id', 'taxonomy', 'description', 'parent') + array( 'count' => 0 ) );
        $tt_id = (int) $wpdb->insert_id;
 
@@ -2554,14 +2608,14 @@ function wp_insert_term( $term, $taxonomy, $args = array() ) {
  * @since 2.3.0
  * @uses wp_remove_object_terms()
  *
  * @since 2.3.0
  * @uses wp_remove_object_terms()
  *
- * @param int $object_id The object to relate to.
- * @param array|int|string $terms The slug or id of the term, will replace all existing
- * related terms in this taxonomy.
- * @param array|string $taxonomy The context in which to relate the term to the object.
- * @param bool $append If false will delete difference of terms.
- * @return array|WP_Error Affected Term IDs
+ * @param int              $object_id The object to relate to.
+ * @param array|int|string $terms     A single term slug, single term id, or array of either term slugs or ids.
+ *                                    Will replace all existing related terms in this taxonomy.
+ * @param array|string     $taxonomy  The context in which to relate the term to the object.
+ * @param bool             $append    Optional. If false will delete difference of terms. Default false.
+ * @return array|WP_Error Affected Term IDs.
  */
  */
-function wp_set_object_terms($object_id, $terms, $taxonomy, $append = false) {
+function wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) {
        global $wpdb;
 
        $object_id = (int) $object_id;
        global $wpdb;
 
        $object_id = (int) $object_id;
@@ -2881,23 +2935,31 @@ function wp_update_term( $term_id, $taxonomy, $args = array() ) {
        $defaults = array( 'alias_of' => '', 'description' => '', 'parent' => 0, 'slug' => '');
        $args = wp_parse_args($args, $defaults);
        $args = sanitize_term($args, $taxonomy, 'db');
        $defaults = array( 'alias_of' => '', 'description' => '', 'parent' => 0, 'slug' => '');
        $args = wp_parse_args($args, $defaults);
        $args = sanitize_term($args, $taxonomy, 'db');
-       extract($args, EXTR_SKIP);
+       $parsed_args = $args;
 
        // expected_slashed ($name)
 
        // expected_slashed ($name)
-       $name = wp_unslash($name);
-       $description = wp_unslash($description);
+       $name = wp_unslash( $args['name'] );
+       $description = wp_unslash( $args['description'] );
+
+       $parsed_args['name'] = $name;
+       $parsed_args['description'] = $description;
 
        if ( '' == trim($name) )
                return new WP_Error('empty_term_name', __('A name is required for this term'));
 
        $empty_slug = false;
 
        if ( '' == trim($name) )
                return new WP_Error('empty_term_name', __('A name is required for this term'));
 
        $empty_slug = false;
-       if ( empty($slug) ) {
+       if ( empty( $args['slug'] ) ) {
                $empty_slug = true;
                $slug = sanitize_title($name);
                $empty_slug = true;
                $slug = sanitize_title($name);
+       } else {
+               $slug = $args['slug'];
        }
 
        }
 
-       if ( $alias_of ) {
-               $alias = $wpdb->get_row( $wpdb->prepare( "SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $alias_of) );
+       $parsed_args['slug'] = $slug;
+
+       $term_group = isset( $parsed_args['term_group'] ) ? $parsed_args['term_group'] : 0;
+       if ( $args['alias_of'] ) {
+               $alias = $wpdb->get_row( $wpdb->prepare( "SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $args['alias_of'] ) );
                if ( $alias->term_group ) {
                        // The alias we want is already in a group, so let's use that one.
                        $term_group = $alias->term_group;
                if ( $alias->term_group ) {
                        // The alias we want is already in a group, so let's use that one.
                        $term_group = $alias->term_group;
@@ -2912,6 +2974,8 @@ function wp_update_term( $term_id, $taxonomy, $args = array() ) {
                        /** This action is documented in wp-includes/taxonomy.php */
                        do_action( 'edited_terms', $alias->term_id, $taxonomy );
                }
                        /** This action is documented in wp-includes/taxonomy.php */
                        do_action( 'edited_terms', $alias->term_id, $taxonomy );
                }
+
+               $parsed_args['term_group'] = $term_group;
        }
 
        /**
        }
 
        /**
@@ -2921,13 +2985,13 @@ function wp_update_term( $term_id, $taxonomy, $args = array() ) {
         *
         * @since 3.1.0
         *
         *
         * @since 3.1.0
         *
-        * @param int    $parent   ID of the parent term.
-        * @param int    $term_id  Term ID.
-        * @param string $taxonomy Taxonomy slug.
-        * @param array  $args     Compacted array of update arguments for the given term.
-        * @param array  $args     An array of update arguments for the given term.
+        * @param int    $parent      ID of the parent term.
+        * @param int    $term_id     Term ID.
+        * @param string $taxonomy    Taxonomy slug.
+        * @param array  $parsed_args An array of potentially altered update arguments for the given term.
+        * @param array  $args        An array of update arguments for the given term.
         */
         */
-       $parent = apply_filters( 'wp_update_term_parent', $parent, $term_id, $taxonomy, compact( array_keys( $args ) ), $args );
+       $parent = apply_filters( 'wp_update_term_parent', $args['parent'], $term_id, $taxonomy, $parsed_args, $args );
 
        // Check for duplicate slug
        $id = $wpdb->get_var( $wpdb->prepare( "SELECT term_id FROM $wpdb->terms WHERE slug = %s", $slug ) );
 
        // Check for duplicate slug
        $id = $wpdb->get_var( $wpdb->prepare( "SELECT term_id FROM $wpdb->terms WHERE slug = %s", $slug ) );
@@ -3110,8 +3174,6 @@ function wp_update_term_count( $terms, $taxonomy, $do_deferred=false ) {
  * @return bool Always true when complete.
  */
 function wp_update_term_count_now( $terms, $taxonomy ) {
  * @return bool Always true when complete.
  */
 function wp_update_term_count_now( $terms, $taxonomy ) {
-       global $wpdb;
-
        $terms = array_map('intval', $terms);
 
        $taxonomy = get_taxonomy($taxonomy);
        $terms = array_map('intval', $terms);
 
        $taxonomy = get_taxonomy($taxonomy);
@@ -3685,19 +3747,19 @@ function get_term_link( $term, $taxonomy = '') {
  *
  * @param array $args Override the defaults.
  */
  *
  * @param array $args Override the defaults.
  */
-function the_taxonomies($args = array()) {
+function the_taxonomies( $args = array() ) {
        $defaults = array(
                'post' => 0,
                'before' => '',
                'sep' => ' ',
                'after' => '',
        $defaults = array(
                'post' => 0,
                'before' => '',
                'sep' => ' ',
                'after' => '',
-               'template' => '%s: %l.'
+               /* translators: %s: taxonomy label, %l: list of term links */
+               'template' => __( '%s: %l.' )
        );
 
        $r = wp_parse_args( $args, $defaults );
        );
 
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
 
 
-       echo $before . join($sep, get_the_taxonomies($post, $r)) . $after;
+       echo $r['before'] . join( $r['sep'], get_the_taxonomies( $r['post'], $r ) ) . $r['after'];
 }
 
 /**
 }
 
 /**
@@ -3708,43 +3770,48 @@ function the_taxonomies($args = array()) {
  *
  * @since 2.5.0
  *
  *
  * @since 2.5.0
  *
- * @param int|WP_Post $post Optional. Post ID or post object.
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
  * @param array $args Override the defaults.
  * @param array $args Override the defaults.
- * @return array
+ * @return array List of taxonomies.
  */
  */
-function get_the_taxonomies($post = 0, $args = array() ) {
+function get_the_taxonomies( $post = 0, $args = array() ) {
        $post = get_post( $post );
 
        $args = wp_parse_args( $args, array(
        $post = get_post( $post );
 
        $args = wp_parse_args( $args, array(
-               'template' => '%s: %l.',
+               /* translators: %s: taxonomy label, %l: list of term links */
+               'template' => __( '%s: %l.' ),
        ) );
        ) );
-       extract( $args, EXTR_SKIP );
 
        $taxonomies = array();
 
 
        $taxonomies = array();
 
-       if ( !$post )
+       if ( ! $post ) {
                return $taxonomies;
                return $taxonomies;
+       }
 
 
-       foreach ( get_object_taxonomies($post) as $taxonomy ) {
-               $t = (array) get_taxonomy($taxonomy);
-               if ( empty($t['label']) )
+       foreach ( get_object_taxonomies( $post ) as $taxonomy ) {
+               $t = (array) get_taxonomy( $taxonomy );
+               if ( empty( $t['label'] ) ) {
                        $t['label'] = $taxonomy;
                        $t['label'] = $taxonomy;
-               if ( empty($t['args']) )
+               }
+               if ( empty( $t['args'] ) ) {
                        $t['args'] = array();
                        $t['args'] = array();
-               if ( empty($t['template']) )
-                       $t['template'] = $template;
-
-               $terms = get_object_term_cache($post->ID, $taxonomy);
-               if ( false === $terms )
-                       $terms = wp_get_object_terms($post->ID, $taxonomy, $t['args']);
+               }
+               if ( empty( $t['template'] ) ) {
+                       $t['template'] = $args['template'];
+               }
 
 
+               $terms = get_object_term_cache( $post->ID, $taxonomy );
+               if ( false === $terms ) {
+                       $terms = wp_get_object_terms( $post->ID, $taxonomy, $t['args'] );
+               }
                $links = array();
 
                $links = array();
 
-               foreach ( $terms as $term )
-                       $links[] = "<a href='" . esc_attr( get_term_link($term) ) . "'>$term->name</a>";
-
-               if ( $links )
-                       $taxonomies[$taxonomy] = wp_sprintf($t['template'], $t['label'], $links, $terms);
+               foreach ( $terms as $term ) {
+                       $links[] = "<a href='" . esc_attr( get_term_link( $term ) ) . "'>$term->name</a>";
+               }
+               if ( $links ) {
+                       $taxonomies[$taxonomy] = wp_sprintf( $t['template'], $t['label'], $links, $terms );
+               }
        }
        return $taxonomies;
 }
        }
        return $taxonomies;
 }
@@ -3753,12 +3820,13 @@ function get_the_taxonomies($post = 0, $args = array() ) {
  * Retrieve all taxonomies of a post with just the names.
  *
  * @since 2.5.0
  * Retrieve all taxonomies of a post with just the names.
  *
  * @since 2.5.0
+ *
  * @uses get_object_taxonomies()
  *
  * @uses get_object_taxonomies()
  *
- * @param int|WP_Post $post Optional. Post ID or post object.
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
  * @return array
  */
  * @return array
  */
-function get_post_taxonomies($post = 0) {
+function get_post_taxonomies( $post = 0 ) {
        $post = get_post( $post );
 
        return get_object_taxonomies($post);
        $post = get_post( $post );
 
        return get_object_taxonomies($post);
@@ -3931,4 +3999,4 @@ function wp_check_term_hierarchy_for_loops( $parent, $term_id, $taxonomy ) {
                wp_update_term( $loop_member, $taxonomy, array( 'parent' => 0 ) );
 
        return $parent;
                wp_update_term( $loop_member, $taxonomy, array( 'parent' => 0 ) );
 
        return $parent;
-}
\ No newline at end of file
+}
index 29871b0fd2b0a7b4e5eee5b0c874eda7c535a21f..15751fe1b0a61fe1837e1a77cb581ddb78e81d68 100644 (file)
@@ -41,7 +41,6 @@ while( have_posts()) : the_post();
 <?php
 // this line is WordPress' motor, do not delete it.
 $commenter = wp_get_current_commenter();
 <?php
 // this line is WordPress' motor, do not delete it.
 $commenter = wp_get_current_commenter();
-extract($commenter);
 $comments = get_approved_comments($id);
 $post = get_post($id);
 if ( post_password_required($post) ) {  // and it doesn't match the cookie
 $comments = get_approved_comments($id);
 $post = get_post($id);
 if ( post_password_required($post) ) {  // and it doesn't match the cookie
@@ -71,17 +70,17 @@ if ( post_password_required($post) ) {  // and it doesn't match the cookie
        <p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out &raquo;</a>'), get_edit_user_link(), $user_identity, wp_logout_url(get_permalink())); ?></p>
 <?php else : ?>
        <p>
        <p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out &raquo;</a>'), get_edit_user_link(), $user_identity, wp_logout_url(get_permalink())); ?></p>
 <?php else : ?>
        <p>
-         <input type="text" name="author" id="author" class="textarea" value="<?php echo esc_attr($comment_author); ?>" size="28" tabindex="1" />
+         <input type="text" name="author" id="author" class="textarea" value="<?php echo esc_attr( $commenter['comment_author'] ); ?>" size="28" tabindex="1" />
           <label for="author"><?php _e('Name'); ?></label>
        </p>
 
        <p>
           <label for="author"><?php _e('Name'); ?></label>
        </p>
 
        <p>
-         <input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="28" tabindex="2" />
+         <input type="text" name="email" id="email" value="<?php echo esc_attr( $commenter['comment_author_email'] ); ?>" size="28" tabindex="2" />
           <label for="email"><?php _e('E-mail'); ?></label>
        </p>
 
        <p>
           <label for="email"><?php _e('E-mail'); ?></label>
        </p>
 
        <p>
-         <input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="28" tabindex="3" />
+         <input type="text" name="url" id="url" value="<?php echo esc_attr( $commenter['comment_author_url'] ); ?>" size="28" tabindex="3" />
           <label for="url"><?php _e('<abbr title="Universal Resource Locator">URL</abbr>'); ?></label>
        </p>
 <?php endif; ?>
           <label for="url"><?php _e('<abbr title="Universal Resource Locator">URL</abbr>'); ?></label>
        </p>
 <?php endif; ?>
index 00b3c39d1f49eca50a892d2ed59f9a475d6ced43..85119eda1eaa3b9480afe51ca4d03ac08981f2e0 100644 (file)
@@ -137,7 +137,7 @@ function is_child_theme() {
  * The theme name that the administrator has currently set the front end theme
  * as.
  *
  * The theme name that the administrator has currently set the front end theme
  * as.
  *
- * For all extensive purposes, the template name and the stylesheet name are
+ * For all intents and purposes, the template name and the stylesheet name are
  * going to be the same for most cases.
  *
  * @since 1.5.0
  * going to be the same for most cases.
  *
  * @since 1.5.0
@@ -370,11 +370,19 @@ function register_theme_directory( $directory ) {
                // Try prepending as the theme directory could be relative to the content directory
                $directory = WP_CONTENT_DIR . '/' . $directory;
                // If this directory does not exist, return and do not register
                // Try prepending as the theme directory could be relative to the content directory
                $directory = WP_CONTENT_DIR . '/' . $directory;
                // If this directory does not exist, return and do not register
-               if ( ! file_exists( $directory ) )
+               if ( ! file_exists( $directory ) ) {
                        return false;
                        return false;
+               }
        }
 
        }
 
-       $wp_theme_directories[] = $directory;
+       if ( ! is_array( $wp_theme_directories ) ) {
+               $wp_theme_directories = array();
+       }
+
+       $untrailed = untrailingslashit( $directory );
+       if ( ! empty( $untrailed ) && ! in_array( $untrailed, $wp_theme_directories ) ) {
+               $wp_theme_directories[] = $untrailed;
+       }
 
        return true;
 }
 
        return true;
 }
@@ -1394,6 +1402,54 @@ function remove_editor_styles() {
        return true;
 }
 
        return true;
 }
 
+/**
+ * Retrieve any registered editor stylesheets
+ *
+ * @since 4.0.0
+ *
+ * @global $editor_styles Registered editor stylesheets
+ *
+ * @return array If registered, a list of editor stylesheet URLs.
+ */
+function get_editor_stylesheets() {
+       $stylesheets = array();
+       // load editor_style.css if the current theme supports it
+       if ( ! empty( $GLOBALS['editor_styles'] ) && is_array( $GLOBALS['editor_styles'] ) ) {
+               $editor_styles = $GLOBALS['editor_styles'];
+
+               $editor_styles = array_unique( array_filter( $editor_styles ) );
+               $style_uri = get_stylesheet_directory_uri();
+               $style_dir = get_stylesheet_directory();
+
+               // Support externally referenced styles (like, say, fonts).
+               foreach ( $editor_styles as $key => $file ) {
+                       if ( preg_match( '~^(https?:)?//~', $file ) ) {
+                               $stylesheets[] = esc_url_raw( $file );
+                               unset( $editor_styles[ $key ] );
+                       }
+               }
+
+               // Look in a parent theme first, that way child theme CSS overrides.
+               if ( is_child_theme() ) {
+                       $template_uri = get_template_directory_uri();
+                       $template_dir = get_template_directory();
+
+                       foreach ( $editor_styles as $key => $file ) {
+                               if ( $file && file_exists( "$template_dir/$file" ) ) {
+                                       $stylesheets[] = "$template_uri/$file";
+                               }
+                       }
+               }
+
+               foreach ( $editor_styles as $file ) {
+                       if ( $file && file_exists( "$style_dir/$file" ) ) {
+                               $stylesheets[] = "$style_uri/$file";
+                       }
+               }
+       }
+       return $stylesheets;
+}
+
 /**
  * Allows a theme to register its support of a certain feature
  *
 /**
  * Allows a theme to register its support of a certain feature
  *
@@ -1437,7 +1493,6 @@ function add_theme_support( $feature ) {
 
                case 'custom-header-uploads' :
                        return add_theme_support( 'custom-header', array( 'uploads' => true ) );
 
                case 'custom-header-uploads' :
                        return add_theme_support( 'custom-header', array( 'uploads' => true ) );
-                       break;
 
                case 'custom-header' :
                        if ( ! is_array( $args ) )
 
                case 'custom-header' :
                        if ( ! is_array( $args ) )
@@ -1618,10 +1673,9 @@ function get_theme_support( $feature ) {
                        if ( isset( $_wp_theme_features[ $feature ][0][ $args[0] ] ) )
                                return $_wp_theme_features[ $feature ][0][ $args[0] ];
                        return false;
                        if ( isset( $_wp_theme_features[ $feature ][0][ $args[0] ] ) )
                                return $_wp_theme_features[ $feature ][0][ $args[0] ];
                        return false;
-                       break;
+
                default :
                        return $_wp_theme_features[ $feature ];
                default :
                        return $_wp_theme_features[ $feature ];
-                       break;
        }
 }
 
        }
 }
 
@@ -1720,7 +1774,6 @@ function current_theme_supports( $feature ) {
                                return true;
                        $content_type = $args[0];
                        return in_array( $content_type, $_wp_theme_features[$feature][0] );
                                return true;
                        $content_type = $args[0];
                        return in_array( $content_type, $_wp_theme_features[$feature][0] );
-                       break;
 
                case 'html5':
                case 'post-formats':
 
                case 'html5':
                case 'post-formats':
@@ -1731,7 +1784,6 @@ function current_theme_supports( $feature ) {
 
                        $type = $args[0];
                        return in_array( $type, $_wp_theme_features[$feature][0] );
 
                        $type = $args[0];
                        return in_array( $type, $_wp_theme_features[$feature][0] );
-                       break;
 
                case 'custom-header':
                case 'custom-background' :
 
                case 'custom-header':
                case 'custom-background' :
@@ -1739,7 +1791,6 @@ function current_theme_supports( $feature ) {
                        // an array to add_theme_support()
                        $header_support = $args[0];
                        return ( isset( $_wp_theme_features[$feature][0][$header_support] ) && $_wp_theme_features[$feature][0][$header_support] );
                        // an array to add_theme_support()
                        $header_support = $args[0];
                        return ( isset( $_wp_theme_features[$feature][0][$header_support] ) && $_wp_theme_features[$feature][0][$header_support] );
-                       break;
        }
 
        /**
        }
 
        /**
@@ -1879,6 +1930,9 @@ function _wp_customize_loader_settings() {
                'url'           => esc_url( admin_url( 'customize.php' ) ),
                'isCrossDomain' => $cross_domain,
                'browser'       => $browser,
                'url'           => esc_url( admin_url( 'customize.php' ) ),
                'isCrossDomain' => $cross_domain,
                'browser'       => $browser,
+               'l10n'          => array(
+                       'saveAlert' => __( 'The changes you made will be lost if you navigate away from this page.' ),
+               ),
        );
 
        $script = 'var _wpCustomizeLoaderSettings = ' . json_encode( $settings ) . ';';
        );
 
        $script = 'var _wpCustomizeLoaderSettings = ' . json_encode( $settings ) . ';';
@@ -1943,3 +1997,18 @@ function wp_customize_support_script() {
        </script>
        <?php
 }
        </script>
        <?php
 }
+
+/**
+ * Whether the site is being previewed in the Customizer.
+ *
+ * @since 4.0.0
+ *
+ * @global WP_Customize_Manager $wp_customize Customizer instance.
+ *
+ * @return bool True if the site is being previewed in the Customizer, false otherwise.
+ */
+function is_customize_preview() {
+       global $wp_customize;
+
+       return is_a( $wp_customize, 'WP_Customize_Manager' ) && $wp_customize->is_preview();
+}
index 3639907b799af6e911be8a05fdee223198ae46cd..a9e25a87187b9d9509a9632a7435d8b5ce4bcbde 100644 (file)
@@ -25,7 +25,7 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
                return;
 
        global $wpdb, $wp_local_package;
                return;
 
        global $wpdb, $wp_local_package;
-       include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
        $php_version = phpversion();
 
        $current = get_site_transient( 'update_core' );
        $php_version = phpversion();
 
        $current = get_site_transient( 'update_core' );
@@ -183,7 +183,7 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
  * @return mixed Returns null if update is unsupported. Returns false if check is too soon.
  */
 function wp_update_plugins( $extra_stats = array() ) {
  * @return mixed Returns null if update is unsupported. Returns false if check is too soon.
  */
 function wp_update_plugins( $extra_stats = array() ) {
-       include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
 
        if ( defined('WP_INSTALLING') )
                return false;
 
        if ( defined('WP_INSTALLING') )
                return false;
@@ -264,12 +264,20 @@ function wp_update_plugins( $extra_stats = array() ) {
         */
        $locales = apply_filters( 'plugins_update_check_locales', $locales );
 
         */
        $locales = apply_filters( 'plugins_update_check_locales', $locales );
 
+       if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
+               $timeout = 30;
+       } else {
+               // Three seconds, plus one extra second for every 10 plugins
+               $timeout = 3 + (int) ( count( $plugins ) / 10 );
+       }
+
        $options = array(
        $options = array(
-               'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3),
+               'timeout' => $timeout,
                'body' => array(
                        'plugins'      => json_encode( $to_send ),
                        'translations' => json_encode( $translations ),
                        'locale'       => json_encode( $locales ),
                'body' => array(
                        'plugins'      => json_encode( $to_send ),
                        'translations' => json_encode( $translations ),
                        'locale'       => json_encode( $locales ),
+                       'all'          => json_encode( true ),
                ),
                'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
        );
                ),
                'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
        );
@@ -296,13 +304,20 @@ function wp_update_plugins( $extra_stats = array() ) {
                $plugin = (object) $plugin;
        }
        unset( $plugin );
                $plugin = (object) $plugin;
        }
        unset( $plugin );
+       foreach ( $response['no_update'] as &$plugin ) {
+               $plugin = (object) $plugin;
+       }
+       unset( $plugin );
 
        if ( is_array( $response ) ) {
                $new_option->response = $response['plugins'];
                $new_option->translations = $response['translations'];
 
        if ( is_array( $response ) ) {
                $new_option->response = $response['plugins'];
                $new_option->translations = $response['translations'];
+               // TODO: Perhaps better to store no_update in a separate transient with an expiry?
+               $new_option->no_update = $response['no_update'];
        } else {
                $new_option->response = array();
                $new_option->translations = array();
        } else {
                $new_option->response = array();
                $new_option->translations = array();
+               $new_option->no_update = array();
        }
 
        set_site_transient( 'update_plugins', $new_option );
        }
 
        set_site_transient( 'update_plugins', $new_option );
@@ -322,7 +337,7 @@ function wp_update_plugins( $extra_stats = array() ) {
  * @return mixed Returns null if update is unsupported. Returns false if check is too soon.
  */
 function wp_update_themes( $extra_stats = array() ) {
  * @return mixed Returns null if update is unsupported. Returns false if check is too soon.
  */
 function wp_update_themes( $extra_stats = array() ) {
-       include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
 
        if ( defined( 'WP_INSTALLING' ) )
                return false;
 
        if ( defined( 'WP_INSTALLING' ) )
                return false;
@@ -412,8 +427,15 @@ function wp_update_themes( $extra_stats = array() ) {
         */
        $locales = apply_filters( 'themes_update_check_locales', $locales );
 
         */
        $locales = apply_filters( 'themes_update_check_locales', $locales );
 
+       if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
+               $timeout = 30;
+       } else {
+               // Three seconds, plus one extra second for every 10 themes
+               $timeout = 3 + (int) ( count( $themes ) / 10 );
+       }
+
        $options = array(
        $options = array(
-               'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3),
+               'timeout' => $timeout,
                'body' => array(
                        'themes'       => json_encode( $request ),
                        'translations' => json_encode( $translations ),
                'body' => array(
                        'themes'       => json_encode( $request ),
                        'translations' => json_encode( $translations ),
@@ -459,8 +481,8 @@ function wp_update_themes( $extra_stats = array() ) {
  * @since 3.7.0
  */
 function wp_maybe_auto_update() {
  * @since 3.7.0
  */
 function wp_maybe_auto_update() {
-       include_once ABSPATH . '/wp-admin/includes/admin.php';
-       include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
+       include_once( ABSPATH . '/wp-admin/includes/admin.php' );
+       include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' );
 
        $upgrader = new WP_Automatic_Updater;
        $upgrader->run();
 
        $upgrader = new WP_Automatic_Updater;
        $upgrader->run();
@@ -550,7 +572,7 @@ function wp_get_update_data() {
 }
 
 function _maybe_update_core() {
 }
 
 function _maybe_update_core() {
-       include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
+       include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
 
        $current = get_site_transient( 'update_core' );
 
 
        $current = get_site_transient( 'update_core' );
 
index 5a9dc466ac9fbdf760d629dfb673e051917438e7..af0286457faa968be1d224782c13c9040744c043 100644 (file)
@@ -134,7 +134,7 @@ function wp_authenticate_username_password($user, $username, $password) {
        $user = get_user_by('login', $username);
 
        if ( !$user )
        $user = get_user_by('login', $username);
 
        if ( !$user )
-               return new WP_Error( 'invalid_username', sprintf( __( '<strong>ERROR</strong>: Invalid username. <a href="%s" title="Password Lost and Found">Lost your password</a>?' ), wp_lostpassword_url() ) );
+               return new WP_Error( 'invalid_username', sprintf( __( '<strong>ERROR</strong>: Invalid username. <a href="%s">Lost your password</a>?' ), wp_lostpassword_url() ) );
 
        /**
         * Filter whether the given user can be authenticated with the provided $password.
 
        /**
         * Filter whether the given user can be authenticated with the provided $password.
@@ -150,7 +150,7 @@ function wp_authenticate_username_password($user, $username, $password) {
                return $user;
 
        if ( !wp_check_password($password, $user->user_pass, $user->ID) )
                return $user;
 
        if ( !wp_check_password($password, $user->user_pass, $user->ID) )
-               return new WP_Error( 'incorrect_password', sprintf( __( '<strong>ERROR</strong>: The password you entered for the username <strong>%1$s</strong> is incorrect. <a href="%2$s" title="Password Lost and Found">Lost your password</a>?' ),
+               return new WP_Error( 'incorrect_password', sprintf( __( '<strong>ERROR</strong>: The password you entered for the username <strong>%1$s</strong> is incorrect. <a href="%2$s">Lost your password</a>?' ),
                $username, wp_lostpassword_url() ) );
 
        return $user;
                $username, wp_lostpassword_url() ) );
 
        return $user;
@@ -449,7 +449,7 @@ class WP_User_Query {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $query_vars = array();
+       public $query_vars = array();
 
        /**
         * List of found user ids
 
        /**
         * List of found user ids
@@ -458,7 +458,7 @@ class WP_User_Query {
         * @access private
         * @var array
         */
         * @access private
         * @var array
         */
-       var $results;
+       private $results;
 
        /**
         * Total number of found users for the current query
 
        /**
         * Total number of found users for the current query
@@ -467,14 +467,14 @@ class WP_User_Query {
         * @access private
         * @var int
         */
         * @access private
         * @var int
         */
-       var $total_users = 0;
+       private $total_users = 0;
 
        // SQL clauses
 
        // SQL clauses
-       var $query_fields;
-       var $query_from;
-       var $query_where;
-       var $query_orderby;
-       var $query_limit;
+       public $query_fields;
+       public $query_from;
+       public $query_where;
+       public $query_orderby;
+       public $query_limit;
 
        /**
         * PHP5 constructor.
 
        /**
         * PHP5 constructor.
@@ -484,7 +484,7 @@ class WP_User_Query {
         * @param string|array $args Optional. The query variables.
         * @return WP_User_Query
         */
         * @param string|array $args Optional. The query variables.
         * @return WP_User_Query
         */
-       function __construct( $query = null ) {
+       public function __construct( $query = null ) {
                if ( ! empty( $query ) ) {
                        $this->prepare_query( $query );
                        $this->query();
                if ( ! empty( $query ) ) {
                        $this->prepare_query( $query );
                        $this->query();
@@ -498,7 +498,7 @@ class WP_User_Query {
         *
         * @param string|array $args Optional. The query variables.
         */
         *
         * @param string|array $args Optional. The query variables.
         */
-       function prepare_query( $query = array() ) {
+       public function prepare_query( $query = array() ) {
                global $wpdb;
 
                if ( empty( $this->query_vars ) || ! empty( $query ) ) {
                global $wpdb;
 
                if ( empty( $this->query_vars ) || ! empty( $query ) ) {
@@ -523,6 +523,19 @@ class WP_User_Query {
                        ) );
                }
 
                        ) );
                }
 
+               /**
+                * Fires before the WP_User_Query has been parsed.
+                *
+                * The passed WP_User_Query object contains the query variables, not
+                * yet passed into SQL.
+                *
+                * @since 4.0.0
+                *
+                * @param WP_User_Query $this The current WP_User_Query instance,
+                *                            passed by reference.
+                */
+               do_action( 'pre_get_users', $this );
+
                $qv =& $this->query_vars;
 
                if ( is_array( $qv['fields'] ) ) {
                $qv =& $this->query_vars;
 
                if ( is_array( $qv['fields'] ) ) {
@@ -712,7 +725,7 @@ class WP_User_Query {
         *
         * @global wpdb $wpdb WordPress database object for queries.
         */
         *
         * @global wpdb $wpdb WordPress database object for queries.
         */
-       function query() {
+       public function query() {
                global $wpdb;
 
                $qv =& $this->query_vars;
                global $wpdb;
 
                $qv =& $this->query_vars;
@@ -764,7 +777,7 @@ class WP_User_Query {
         * @param string $query_var Query variable key.
         * @return mixed
         */
         * @param string $query_var Query variable key.
         * @return mixed
         */
-       function get( $query_var ) {
+       public function get( $query_var ) {
                if ( isset( $this->query_vars[$query_var] ) )
                        return $this->query_vars[$query_var];
 
                if ( isset( $this->query_vars[$query_var] ) )
                        return $this->query_vars[$query_var];
 
@@ -780,7 +793,7 @@ class WP_User_Query {
         * @param string $query_var Query variable key.
         * @param mixed $value Query variable value.
         */
         * @param string $query_var Query variable key.
         * @param mixed $value Query variable value.
         */
-       function set( $query_var, $value ) {
+       public function set( $query_var, $value ) {
                $this->query_vars[$query_var] = $value;
        }
 
                $this->query_vars[$query_var] = $value;
        }
 
@@ -796,17 +809,20 @@ class WP_User_Query {
         *  single site. Single site allows leading and trailing wildcards, Network Admin only trailing.
         * @return string
         */
         *  single site. Single site allows leading and trailing wildcards, Network Admin only trailing.
         * @return string
         */
-       function get_search_sql( $string, $cols, $wild = false ) {
-               $string = esc_sql( $string );
+       protected function get_search_sql( $string, $cols, $wild = false ) {
+               global $wpdb;
 
                $searches = array();
                $leading_wild = ( 'leading' == $wild || 'both' == $wild ) ? '%' : '';
                $trailing_wild = ( 'trailing' == $wild || 'both' == $wild ) ? '%' : '';
 
                $searches = array();
                $leading_wild = ( 'leading' == $wild || 'both' == $wild ) ? '%' : '';
                $trailing_wild = ( 'trailing' == $wild || 'both' == $wild ) ? '%' : '';
+               $like = $leading_wild . $wpdb->esc_like( $string ) . $trailing_wild;
+
                foreach ( $cols as $col ) {
                foreach ( $cols as $col ) {
-                       if ( 'ID' == $col )
-                               $searches[] = "$col = '$string'";
-                       else
-                               $searches[] = "$col LIKE '$leading_wild" . like_escape($string) . "$trailing_wild'";
+                       if ( 'ID' == $col ) {
+                               $searches[] = $wpdb->prepare( "$col = %s", $string );
+                       } else {
+                               $searches[] = $wpdb->prepare( "$col LIKE %s", $like );
+                       }
                }
 
                return ' AND (' . implode(' OR ', $searches) . ')';
                }
 
                return ' AND (' . implode(' OR ', $searches) . ')';
@@ -820,7 +836,7 @@ class WP_User_Query {
         *
         * @return array Array of results.
         */
         *
         * @return array Array of results.
         */
-       function get_results() {
+       public function get_results() {
                return $this->results;
        }
 
                return $this->results;
        }
 
@@ -832,9 +848,75 @@ class WP_User_Query {
         *
         * @return array Array of total users.
         */
         *
         * @return array Array of total users.
         */
-       function get_total() {
+       public function get_total() {
                return $this->total_users;
        }
                return $this->total_users;
        }
+
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
+       /**
+        * Make private/protected methods readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param callable $name      Method to call.
+        * @param array    $arguments Arguments to pass when calling.
+        * @return mixed|bool Return value of the callback, false otherwise.
+        */
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this, $name ), $arguments );
+       }
 }
 
 /**
 }
 
 /**
@@ -1092,7 +1174,7 @@ function count_users($strategy = 'time') {
                // Build a CPU-intensive query that will return concise information.
                $select_count = array();
                foreach ( $avail_roles as $this_role => $name ) {
                // Build a CPU-intensive query that will return concise information.
                $select_count = array();
                foreach ( $avail_roles as $this_role => $name ) {
-                       $select_count[] = "COUNT(NULLIF(`meta_value` LIKE '%\"" . like_escape( $this_role ) . "\"%', false))";
+                       $select_count[] = $wpdb->prepare( "COUNT(NULLIF(`meta_value` LIKE %s, false))", '%' . $wpdb->esc_like( '"' . $this_role . '"' ) . '%');
                }
                $select_count = implode(', ', $select_count);
 
                }
                $select_count = implode(', ', $select_count);
 
@@ -1192,33 +1274,49 @@ function setup_userdata($for_user_id = '') {
  * used, either 'include' or 'exclude', but not both.
  *
  * The available arguments are as follows:
  * used, either 'include' or 'exclude', but not both.
  *
  * The available arguments are as follows:
- * <ol>
- * <li>show_option_all - Text to show all and whether HTML option exists.</li>
- * <li>show_option_none - Text for show none and whether HTML option exists.</li>
- * <li>hide_if_only_one_author - Don't create the dropdown if there is only one user.</li>
- * <li>orderby - SQL order by clause for what order the users appear. Default is 'display_name'.</li>
- * <li>order - Default is 'ASC'. Can also be 'DESC'.</li>
- * <li>include - User IDs to include.</li>
- * <li>exclude - User IDs to exclude.</li>
- * <li>multi - Default is 'false'. Whether to skip the ID attribute on the 'select' element. A 'true' value is overridden when id argument is set.</li>
- * <li>show - Default is 'display_name'. User table column to display. If the selected item is empty then the user_login will be displayed in parentheses</li>
- * <li>echo - Default is '1'. Whether to display or retrieve content.</li>
- * <li>selected - Which User ID is selected.</li>
- * <li>include_selected - Always include the selected user ID in the dropdown. Default is false.</li>
- * <li>name - Default is 'user'. Name attribute of select element.</li>
- * <li>id - Default is the value of the 'name' parameter. ID attribute of select element.</li>
- * <li>class - Class attribute of select element.</li>
- * <li>blog_id - ID of blog (Multisite only). Defaults to ID of current blog.</li>
- * <li>who - Which users to query. Currently only 'authors' is supported. Default is all users.</li>
- * </ol>
  *
  * @since 2.3.0
  *
  * @global wpdb $wpdb WordPress database object for queries.
  *
  *
  * @since 2.3.0
  *
  * @global wpdb $wpdb WordPress database object for queries.
  *
- * @todo Hash-notate arguments array.
- *
- * @param string|array $args Optional. Array of user arguments.
+ * @param array|string $args {
+ *     Optional. Array or string of arguments to generate a drop-down of users.
+ *     {@see WP_User_Query::prepare_query() for additional available arguments.
+ *
+ *     @type string       $show_option_all         Text to show as the drop-down default (all).
+ *                                                 Default empty.
+ *     @type string       $show_option_none        Text to show as the drop-down default when no
+ *                                                 users were found. Default empty.
+ *     @type int|string   $option_none_value       Value to use for $show_option_non when no users
+ *                                                 were found. Default -1.
+ *     @type string       $hide_if_only_one_author Whether to skip generating the drop-down
+ *                                                 if only one user was found. Default empty.
+ *     @type string       $orderby                 Field to order found users by. Accepts user fields.
+ *                                                 Default 'display_name'.
+ *     @type string       $order                   Whether to order users in ascending or descending
+ *                                                 order. Accepts 'ASC' (ascending) or 'DESC' (descending).
+ *                                                 Default 'ASC'.
+ *     @type array|string $include                 Array or comma-separated list of user IDs to include.
+ *                                                 Default empty.
+ *     @type array|string $exclude                 Array or comma-separated list of user IDs to exclude.
+ *                                                 Default empty.
+ *     @type bool|int     $multi                   Whether to skip the ID attribute on the 'select' element.
+ *                                                 Accepts 1|true or 0|false. Default 0|false.
+ *     @type string       $show                    User table column to display. If the selected item is empty
+ *                                                 then the 'user_login' will be displayed in parentheses.
+ *                                                 Accepts user fields. Default 'display_name'.
+ *     @type int|bool     $echo                    Whether to echo or return the drop-down. Accepts 1|true (echo)
+ *                                                 or 0|false (return). Default 1|true.
+ *     @type int          $selected                Which user ID should be selected. Default 0.
+ *     @type bool         $include_selected        Whether to always include the selected user ID in the drop-
+ *                                                 down. Default false.
+ *     @type string       $name                    Name attribute of select element. Default 'user'.
+ *     @type string       $id                      ID attribute of the select element. Default is the value of $name.
+ *     @type string       $class                   Class attribute of the select element. Default empty.
+ *     @type int          $blog_id                 ID of blog (Multisite only). Default is ID of the current blog.
+ *     @type string       $who                     Which type of users to query. Accepts only an empty string or
+ *                                                 'authors'. Default empty.
+ * }
  * @return string|null Null on display. String of HTML content on retrieve.
  */
 function wp_dropdown_users( $args = '' ) {
  * @return string|null Null on display. String of HTML content on retrieve.
  */
 function wp_dropdown_users( $args = '' ) {
@@ -1228,51 +1326,57 @@ function wp_dropdown_users( $args = '' ) {
                'include' => '', 'exclude' => '', 'multi' => 0,
                'show' => 'display_name', 'echo' => 1,
                'selected' => 0, 'name' => 'user', 'class' => '', 'id' => '',
                'include' => '', 'exclude' => '', 'multi' => 0,
                'show' => 'display_name', 'echo' => 1,
                'selected' => 0, 'name' => 'user', 'class' => '', 'id' => '',
-               'blog_id' => $GLOBALS['blog_id'], 'who' => '', 'include_selected' => false
+               'blog_id' => $GLOBALS['blog_id'], 'who' => '', 'include_selected' => false,
+               'option_none_value' => -1
        );
 
        $defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;
 
        $r = wp_parse_args( $args, $defaults );
        );
 
        $defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;
 
        $r = wp_parse_args( $args, $defaults );
-       extract( $r, EXTR_SKIP );
+       $show = $r['show'];
+       $show_option_all = $r['show_option_all'];
+       $show_option_none = $r['show_option_none'];
+       $option_none_value = $r['option_none_value'];
 
        $query_args = wp_array_slice_assoc( $r, array( 'blog_id', 'include', 'exclude', 'orderby', 'order', 'who' ) );
        $query_args['fields'] = array( 'ID', 'user_login', $show );
        $users = get_users( $query_args );
 
        $output = '';
 
        $query_args = wp_array_slice_assoc( $r, array( 'blog_id', 'include', 'exclude', 'orderby', 'order', 'who' ) );
        $query_args['fields'] = array( 'ID', 'user_login', $show );
        $users = get_users( $query_args );
 
        $output = '';
-       if ( !empty($users) && ( empty($hide_if_only_one_author) || count($users) > 1 ) ) {
-               $name = esc_attr( $name );
-               if ( $multi && ! $id )
+       if ( ! empty( $users ) && ( empty( $r['hide_if_only_one_author'] ) || count( $users ) > 1 ) ) {
+               $name = esc_attr( $r['name'] );
+               if ( $r['multi'] && ! $r['id'] ) {
                        $id = '';
                        $id = '';
-               else
-                       $id = $id ? " id='" . esc_attr( $id ) . "'" : " id='$name'";
-
-               $output = "<select name='{$name}'{$id} class='$class'>\n";
+               } else {
+                       $id = $r['id'] ? " id='" . esc_attr( $r['id'] ) . "'" : " id='$name'";
+               }
+               $output = "<select name='{$name}'{$id} class='" . $r['class'] . "'>\n";
 
 
-               if ( $show_option_all )
+               if ( $show_option_all ) {
                        $output .= "\t<option value='0'>$show_option_all</option>\n";
                        $output .= "\t<option value='0'>$show_option_all</option>\n";
+               }
 
                if ( $show_option_none ) {
 
                if ( $show_option_none ) {
-                       $_selected = selected( -1, $selected, false );
-                       $output .= "\t<option value='-1'$_selected>$show_option_none</option>\n";
+                       $_selected = selected( $option_none_value, $r['selected'], false );
+                       $output .= "\t<option value='" . esc_attr( $option_none_value ) . "'$_selected>$show_option_none</option>\n";
                }
 
                $found_selected = false;
                foreach ( (array) $users as $user ) {
                        $user->ID = (int) $user->ID;
                }
 
                $found_selected = false;
                foreach ( (array) $users as $user ) {
                        $user->ID = (int) $user->ID;
-                       $_selected = selected( $user->ID, $selected, false );
-                       if ( $_selected )
+                       $_selected = selected( $user->ID, $r['selected'], false );
+                       if ( $_selected ) {
                                $found_selected = true;
                                $found_selected = true;
-                       $display = !empty($user->$show) ? $user->$show : '('. $user->user_login . ')';
-                       $output .= "\t<option value='$user->ID'$_selected>" . esc_html($display) . "</option>\n";
+                       }
+                       $display = ! empty( $user->$show ) ? $user->$show : '('. $user->user_login . ')';
+                       $output .= "\t<option value='$user->ID'$_selected>" . esc_html( $display ) . "</option>\n";
                }
 
                }
 
-               if ( $include_selected && ! $found_selected && ( $selected > 0 ) ) {
-                       $user = get_userdata( $selected );
-                       $_selected = selected( $user->ID, $selected, false );
-                       $display = !empty($user->$show) ? $user->$show : '('. $user->user_login . ')';
-                       $output .= "\t<option value='$user->ID'$_selected>" . esc_html($display) . "</option>\n";
+               if ( $r['include_selected'] && ! $found_selected && ( $r['selected'] > 0 ) ) {
+                       $user = get_userdata( $r['selected'] );
+                       $_selected = selected( $user->ID, $r['selected'], false );
+                       $display = ! empty( $user->$show ) ? $user->$show : '('. $user->user_login . ')';
+                       $output .= "\t<option value='$user->ID'$_selected>" . esc_html( $display ) . "</option>\n";
                }
 
                $output .= "</select>";
                }
 
                $output .= "</select>";
@@ -1285,12 +1389,12 @@ function wp_dropdown_users( $args = '' ) {
         *
         * @param string $output HTML output generated by wp_dropdown_users().
         */
         *
         * @param string $output HTML output generated by wp_dropdown_users().
         */
-       $output = apply_filters( 'wp_dropdown_users', $output );
-
-       if ( $echo )
-               echo $output;
+       $html = apply_filters( 'wp_dropdown_users', $output );
 
 
-       return $output;
+       if ( $r['echo'] ) {
+               echo $html;
+       }
+       return $html;
 }
 
 /**
 }
 
 /**
@@ -1497,59 +1601,60 @@ function validate_username( $username ) {
  * by the field name. An example using 'description' would have the filter
  * called, 'pre_user_description' that can be hooked into.
  *
  * by the field name. An example using 'description' would have the filter
  * called, 'pre_user_description' that can be hooked into.
  *
- * The $userdata array can contain the following fields:
- * 'ID' - An integer that will be used for updating an existing user.
- * 'user_pass' - A string that contains the plain text password for the user.
- * 'user_login' - A string that contains the user's username for logging in.
- * 'user_nicename' - A string that contains a URL-friendly name for the user.
- *             The default is the user's username.
- * 'user_url' - A string containing the user's URL for the user's web site.
- * 'user_email' - A string containing the user's email address.
- * 'display_name' - A string that will be shown on the site. Defaults to user's
- *             username. It is likely that you will want to change this, for appearance.
- * 'nickname' - The user's nickname, defaults to the user's username.
- * 'first_name' - The user's first name.
- * 'last_name' - The user's last name.
- * 'description' - A string containing content about the user.
- * 'rich_editing' - A string for whether to enable the rich editor. False
- *             if not empty.
- * 'user_registered' - The date the user registered. Format is 'Y-m-d H:i:s'.
- * 'role' - A string used to set the user's role.
- * 'jabber' - User's Jabber account.
- * 'aim' - User's AOL IM account.
- * 'yim' - User's Yahoo IM account.
- *
  * @since 2.0.0
  *
  * @global wpdb $wpdb WordPress database object for queries.
  *
  * @since 2.0.0
  *
  * @global wpdb $wpdb WordPress database object for queries.
  *
- * @todo Hash-notate arguments array.
- *
- * @param mixed $userdata An array of user data or a user object of type stdClass or WP_User.
- * @return int|WP_Error The newly created user's ID or a WP_Error object if the user could not be created.
+ * @param array $userdata {
+ *     An array, object, or WP_User object of user data arguments.
+ *
+ *     @type int         $ID              User ID. If supplied, the user will be updated.
+ *     @type string      $user_pass       The plain-text user password.
+ *     @type string      $user_login      The user's login username.
+ *     @type string      $user_nicename   The URL-friendly user name.
+ *     @type string      $user_url        The user URL.
+ *     @type string      $user_email      The user email address.
+ *     @type string      $display_name    The user's display name.
+ *                                        Default is the the user's username.
+ *     @type string      $nickname        The user's nickname. Default
+ *                                        Default is the the user's username.
+ *     @type string      $first_name      The user's first name. For new users, will be used
+ *                                        to build $display_name if unspecified.
+ *     @type stirng      $last_name       The user's last name. For new users, will be used
+ *                                        to build $display_name if unspecified.
+ *     @type string|bool $rich_editing    Whether to enable the rich-editor for the user. False
+ *                                        if not empty.
+ *     @type string      $date_registered Date the user registered. Format is 'Y-m-d H:i:s'.
+ *     @type string      $role            User's role.
+ *     @type string      $jabber          User's Jabber account username.
+ *     @type string      $aim             User's AIM account username.
+ *     @type string      $yim             User's Yahoo! messenger username.
+ * }
+ * @return int|WP_Error The newly created user's ID or a WP_Error object if the user could not
+ *                      be created.
  */
 function wp_insert_user( $userdata ) {
        global $wpdb;
 
  */
 function wp_insert_user( $userdata ) {
        global $wpdb;
 
-       if ( is_a( $userdata, 'stdClass' ) )
+       if ( is_a( $userdata, 'stdClass' ) ) {
                $userdata = get_object_vars( $userdata );
                $userdata = get_object_vars( $userdata );
-       elseif ( is_a( $userdata, 'WP_User' ) )
+       } elseif ( is_a( $userdata, 'WP_User' ) ) {
                $userdata = $userdata->to_array();
                $userdata = $userdata->to_array();
-
-       extract( $userdata, EXTR_SKIP );
-
+       }
        // Are we updating or creating?
        // Are we updating or creating?
-       if ( !empty($ID) ) {
-               $ID = (int) $ID;
+       if ( ! empty( $userdata['ID'] ) ) {
+               $ID = (int) $userdata['ID'];
                $update = true;
                $old_user_data = WP_User::get_data_by( 'id', $ID );
                $update = true;
                $old_user_data = WP_User::get_data_by( 'id', $ID );
+               // hashed in wp_update_user(), plaintext if called directly
+               $user_pass = $userdata['user_pass'];
        } else {
                $update = false;
                // Hash the password
        } else {
                $update = false;
                // Hash the password
-               $user_pass = wp_hash_password($user_pass);
+               $user_pass = wp_hash_password( $userdata['user_pass'] );
        }
 
        }
 
-       $user_login = sanitize_user($user_login, true);
+       $sanitized_user_login = sanitize_user( $userdata['user_login'], true );
 
        /**
         * Filter a username after it has been sanitized.
 
        /**
         * Filter a username after it has been sanitized.
@@ -1558,21 +1663,27 @@ function wp_insert_user( $userdata ) {
         *
         * @since 2.0.3
         *
         *
         * @since 2.0.3
         *
-        * @param string $user_login Username after it has been sanitized.
+        * @param string $sanitized_user_login Username after it has been sanitized.
         */
         */
-       $user_login = apply_filters( 'pre_user_login', $user_login );
+       $pre_user_login = apply_filters( 'pre_user_login', $sanitized_user_login );
 
        //Remove any non-printable chars from the login string to see if we have ended up with an empty username
 
        //Remove any non-printable chars from the login string to see if we have ended up with an empty username
-       $user_login = trim($user_login);
+       $user_login = trim( $pre_user_login );
 
 
-       if ( empty($user_login) )
+       if ( empty( $user_login ) ) {
                return new WP_Error('empty_user_login', __('Cannot create a user with an empty login name.') );
                return new WP_Error('empty_user_login', __('Cannot create a user with an empty login name.') );
-
-       if ( !$update && username_exists( $user_login ) )
+       }
+       if ( ! $update && username_exists( $user_login ) ) {
                return new WP_Error( 'existing_user_login', __( 'Sorry, that username already exists!' ) );
                return new WP_Error( 'existing_user_login', __( 'Sorry, that username already exists!' ) );
-
-       if ( empty($user_nicename) )
+       }
+       if ( empty( $userdata['user_nicename'] ) ) {
                $user_nicename = sanitize_title( $user_login );
                $user_nicename = sanitize_title( $user_login );
+       } else {
+               $user_nicename = $userdata['user_nicename'];
+       }
+
+       // Store values to save in user meta.
+       $meta = array();
 
        /**
         * Filter a user's nicename before the user is created or updated.
 
        /**
         * Filter a user's nicename before the user is created or updated.
@@ -1583,35 +1694,32 @@ function wp_insert_user( $userdata ) {
         */
        $user_nicename = apply_filters( 'pre_user_nicename', $user_nicename );
 
         */
        $user_nicename = apply_filters( 'pre_user_nicename', $user_nicename );
 
-       if ( empty($user_url) )
-               $user_url = '';
+       $raw_user_url = empty( $userdata['user_url'] ) ? '' : $userdata['user_url'];
 
        /**
         * Filter a user's URL before the user is created or updated.
         *
         * @since 2.0.3
         *
 
        /**
         * Filter a user's URL before the user is created or updated.
         *
         * @since 2.0.3
         *
-        * @param string $user_url The user's URL.
+        * @param string $raw_user_url The user's URL.
         */
         */
-       $user_url = apply_filters( 'pre_user_url', $user_url );
+       $user_url = apply_filters( 'pre_user_url', $raw_user_url );
 
 
-       if ( empty($user_email) )
-               $user_email = '';
+       $raw_user_email = empty( $userdata['user_email'] ) ? '' : $userdata['user_email'];
 
        /**
         * Filter a user's email before the user is created or updated.
         *
         * @since 2.0.3
         *
 
        /**
         * Filter a user's email before the user is created or updated.
         *
         * @since 2.0.3
         *
-        * @param string $user_email The user's email.
+        * @param string $raw_user_email The user's email.
         */
         */
-       $user_email = apply_filters( 'pre_user_email', $user_email );
+       $user_email = apply_filters( 'pre_user_email', $raw_user_email );
 
 
-       if ( !$update && ! defined( 'WP_IMPORTING' ) && email_exists($user_email) )
+       if ( ! $update && ! defined( 'WP_IMPORTING' ) && email_exists( $user_email ) ) {
                return new WP_Error( 'existing_user_email', __( 'Sorry, that email address is already used!' ) );
                return new WP_Error( 'existing_user_email', __( 'Sorry, that email address is already used!' ) );
-
-       if ( empty($nickname) )
-               $nickname = $user_login;
+       }
+       $nickname = empty( $userdata['nickname'] ) ? $user_login : $userdata['nickname'];
 
        /**
         * Filter a user's nickname before the user is created or updated.
 
        /**
         * Filter a user's nickname before the user is created or updated.
@@ -1620,10 +1728,9 @@ function wp_insert_user( $userdata ) {
         *
         * @param string $nickname The user's nickname.
         */
         *
         * @param string $nickname The user's nickname.
         */
-       $nickname = apply_filters( 'pre_user_nickname', $nickname );
+       $meta['nickname'] = apply_filters( 'pre_user_nickname', $nickname );
 
 
-       if ( empty($first_name) )
-               $first_name = '';
+       $first_name = empty( $userdata['first_name'] ) ? '' : $userdata['first_name'];
 
        /**
         * Filter a user's first name before the user is created or updated.
 
        /**
         * Filter a user's first name before the user is created or updated.
@@ -1632,10 +1739,9 @@ function wp_insert_user( $userdata ) {
         *
         * @param string $first_name The user's first name.
         */
         *
         * @param string $first_name The user's first name.
         */
-       $first_name = apply_filters( 'pre_user_first_name', $first_name );
+       $meta['first_name'] = apply_filters( 'pre_user_first_name', $first_name );
 
 
-       if ( empty($last_name) )
-               $last_name = '';
+       $last_name = empty( $userdata['last_name'] ) ? '' : $userdata['last_name'];
 
        /**
         * Filter a user's last name before the user is created or updated.
 
        /**
         * Filter a user's last name before the user is created or updated.
@@ -1644,20 +1750,23 @@ function wp_insert_user( $userdata ) {
         *
         * @param string $last_name The user's last name.
         */
         *
         * @param string $last_name The user's last name.
         */
-       $last_name = apply_filters( 'pre_user_last_name', $last_name );
+       $meta['last_name'] = apply_filters( 'pre_user_last_name', $last_name );
 
 
-       if ( empty( $display_name ) ) {
-               if ( $update )
+       if ( empty( $userdata['display_name'] ) ) {
+               if ( $update ) {
                        $display_name = $user_login;
                        $display_name = $user_login;
-               elseif ( $first_name && $last_name )
+               } elseif ( $meta['first_name'] && $meta['last_name'] ) {
                        /* translators: 1: first name, 2: last name */
                        /* translators: 1: first name, 2: last name */
-                       $display_name = sprintf( _x( '%1$s %2$s', 'Display name based on first name and last name' ), $first_name, $last_name );
-               elseif ( $first_name )
-                       $display_name = $first_name;
-               elseif ( $last_name )
-                       $display_name = $last_name;
-               else
+                       $display_name = sprintf( _x( '%1$s %2$s', 'Display name based on first name and last name' ), $meta['first_name'], $meta['last_name'] );
+               } elseif ( $meta['first_name'] ) {
+                       $display_name = $meta['first_name'];
+               } elseif ( $meta['last_name'] ) {
+                       $display_name = $meta['last_name'];
+               } else {
                        $display_name = $user_login;
                        $display_name = $user_login;
+               }
+       } else {
+               $display_name = $userdata['display_name'];
        }
 
        /**
        }
 
        /**
@@ -1669,8 +1778,7 @@ function wp_insert_user( $userdata ) {
         */
        $display_name = apply_filters( 'pre_user_display_name', $display_name );
 
         */
        $display_name = apply_filters( 'pre_user_display_name', $display_name );
 
-       if ( empty($description) )
-               $description = '';
+       $description = empty( $userdata['description'] ) ? '' : $userdata['description'];
 
        /**
         * Filter a user's description before the user is created or updated.
 
        /**
         * Filter a user's description before the user is created or updated.
@@ -1679,26 +1787,20 @@ function wp_insert_user( $userdata ) {
         *
         * @param string $description The user's description.
         */
         *
         * @param string $description The user's description.
         */
-       $description = apply_filters( 'pre_user_description', $description );
+       $meta['description'] = apply_filters( 'pre_user_description', $description );
 
 
-       if ( empty($rich_editing) )
-               $rich_editing = 'true';
+       $meta['rich_editing'] = empty( $userdata['rich_editing'] ) ? 'true' : $userdata['rich_editing'];
 
 
-       if ( empty($comment_shortcuts) )
-               $comment_shortcuts = 'false';
+       $meta['comment_shortcuts'] = empty( $userdata['comment_shortcuts'] ) ? 'false' : $userdata['comment_shortcuts'];
 
 
-       if ( empty($admin_color) )
-               $admin_color = 'fresh';
-       $admin_color = preg_replace('|[^a-z0-9 _.\-@]|i', '', $admin_color);
+       $admin_color = empty( $userdata['admin_color'] ) ? 'fresh' : $userdata['admin_color'];
+       $meta['admin_color'] = preg_replace( '|[^a-z0-9 _.\-@]|i', '', $admin_color );
 
 
-       if ( empty($use_ssl) )
-               $use_ssl = 0;
+       $meta['use_ssl'] = empty( $userdata['use_ssl'] ) ? 0 : $userdata['use_ssl'];
 
 
-       if ( empty($user_registered) )
-               $user_registered = gmdate('Y-m-d H:i:s');
+       $user_registered = empty( $userdata['user_registered'] ) ? gmdate( 'Y-m-d H:i:s' ) : $userdata['user_registered'];
 
 
-       if ( empty($show_admin_bar_front) )
-               $show_admin_bar_front = 'true';
+       $meta['show_admin_bar_front'] = empty( $userdata['show_admin_bar_front'] ) ? 'true' : $userdata['show_admin_bar_front'];
 
        $user_nicename_check = $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND user_login != %s LIMIT 1" , $user_nicename, $user_login));
 
 
        $user_nicename_check = $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND user_login != %s LIMIT 1" , $user_nicename, $user_login));
 
@@ -1712,8 +1814,8 @@ function wp_insert_user( $userdata ) {
                $user_nicename = $alt_user_nicename;
        }
 
                $user_nicename = $alt_user_nicename;
        }
 
-       $data = compact( 'user_pass', 'user_email', 'user_url', 'user_nicename', 'display_name', 'user_registered' );
-       $data = wp_unslash( $data );
+       $compacted = compact( 'user_pass', 'user_email', 'user_url', 'user_nicename', 'display_name', 'user_registered' );
+       $data = wp_unslash( $compacted );
 
        if ( $update ) {
                $wpdb->update( $wpdb->users, $data, compact( 'ID' ) );
 
        if ( $update ) {
                $wpdb->update( $wpdb->users, $data, compact( 'ID' ) );
@@ -1725,18 +1827,24 @@ function wp_insert_user( $userdata ) {
 
        $user = new WP_User( $user_id );
 
 
        $user = new WP_User( $user_id );
 
-       foreach ( _get_additional_user_keys( $user ) as $key ) {
-               if ( isset( $$key ) )
-                       update_user_meta( $user_id, $key, $$key );
+       // Update user meta.
+       foreach ( $meta as $key => $value ) {
+               update_user_meta( $user_id, $key, $value );
        }
 
        }
 
-       if ( isset($role) )
-               $user->set_role($role);
-       elseif ( !$update )
-               $user->set_role(get_option('default_role'));
+       foreach ( wp_get_user_contact_methods( $user ) as $key => $value ) {
+               if ( isset( $userdata[ $key ] ) ) {
+                       update_user_meta( $user_id, $key, $userdata[ $key ] );
+               }
+       }
 
 
-       wp_cache_delete($user_id, 'users');
-       wp_cache_delete($user_login, 'userlogins');
+       if ( isset( $userdata['role'] ) ) {
+               $user->set_role( $userdata['role'] );
+       } elseif ( ! $update ) {
+               $user->set_role(get_option('default_role'));
+       }
+       wp_cache_delete( $user_id, 'users' );
+       wp_cache_delete( $user_login, 'userlogins' );
 
        if ( $update ) {
                /**
 
        if ( $update ) {
                /**
@@ -1818,7 +1926,15 @@ function wp_update_user($userdata) {
        if ( $current_user->ID == $ID ) {
                if ( isset($plaintext_pass) ) {
                        wp_clear_auth_cookie();
        if ( $current_user->ID == $ID ) {
                if ( isset($plaintext_pass) ) {
                        wp_clear_auth_cookie();
-                       wp_set_auth_cookie($ID);
+
+                       // Here we calculate the expiration length of the current auth cookie and compare it to the default expiration.
+                       // If it's greater than this, then we know the user checked 'Remember Me' when they logged in.
+                       $logged_in_cookie    = wp_parse_auth_cookie( '', 'logged_in' );
+                       /** This filter is documented in wp-includes/pluggable.php */
+                       $default_cookie_life = apply_filters( 'auth_cookie_expiration', ( 2 * DAY_IN_SECONDS ), $ID, false );
+                       $remember            = ( ( $logged_in_cookie['expiration'] - time() ) > $default_cookie_life );
+
+                       wp_set_auth_cookie( $ID, $remember );
                }
        }
 
                }
        }
 
@@ -1933,7 +2049,7 @@ function check_password_reset_key($key, $login) {
                return new WP_Error('invalid_key', __('Invalid key'));
 
        if ( empty( $wp_hasher ) ) {
                return new WP_Error('invalid_key', __('Invalid key'));
 
        if ( empty( $wp_hasher ) ) {
-               require_once ABSPATH . 'wp-includes/class-phpass.php';
+               require_once ABSPATH . WPINC . '/class-phpass.php';
                $wp_hasher = new PasswordHash( 8, true );
        }
 
                $wp_hasher = new PasswordHash( 8, true );
        }
 
@@ -2070,3 +2186,62 @@ function register_new_user( $user_login, $user_email ) {
 
        return $user_id;
 }
 
        return $user_id;
 }
+
+/**
+ * Retrieve the current session token from the logged_in cookie.
+ *
+ * @since 4.0.0
+ *
+ * @return string Token.
+ */
+function wp_get_session_token() {
+       $cookie = wp_parse_auth_cookie( '', 'logged_in' );
+       return ! empty( $cookie['token'] ) ? $cookie['token'] : '';
+}
+
+/**
+ * Retrieve a list of sessions for the current user.
+ *
+ * @since 4.0.0
+ * @return array Array of sessions.
+ */
+function wp_get_all_sessions() {
+       $manager = WP_Session_Tokens::get_instance( get_current_user_id() );
+       return $manager->get_all();
+}
+
+/**
+ * Remove the current session token from the database.
+ *
+ * @since 4.0.0
+ */
+function wp_destroy_current_session() {
+       $token = wp_get_session_token();
+       if ( $token ) {
+               $manager = WP_Session_Tokens::get_instance( get_current_user_id() );
+               $manager->destroy( $token );
+       }
+}
+
+/**
+ * Remove all but the current session token for the current user for the database.
+ *
+ * @since 4.0.0
+ */
+function wp_destroy_other_sessions() {
+       $token = wp_get_session_token();
+       if ( $token ) {
+               $manager = WP_Session_Tokens::get_instance( get_current_user_id() );
+               $manager->destroy_others( $token );
+       }
+}
+
+/**
+ * Remove all session tokens for the current user from the database.
+ *
+ * @since 4.0.0
+ */
+function wp_destroy_all_sessions() {
+       $manager = WP_Session_Tokens::get_instance( get_current_user_id() );
+       $manager->destroy_all();
+}
index 17a1b0ad55b3009ef70b00ac305709a1e9af7f10..55c6b4c817b76c3bff37a882660298633d74a2cf 100644 (file)
@@ -4,21 +4,21 @@
  *
  * @global string $wp_version
  */
  *
  * @global string $wp_version
  */
-$wp_version = '3.9.2';
+$wp_version = '4.0';
 
 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
  *
  * @global int $wp_db_version
  */
 
 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
  *
  * @global int $wp_db_version
  */
-$wp_db_version = 27916;
+$wp_db_version = 29630;
 
 /**
  * Holds the TinyMCE version
  *
  * @global string $tinymce_version
  */
 
 /**
  * Holds the TinyMCE version
  *
  * @global string $tinymce_version
  */
-$tinymce_version = '4021-20140423';
+$tinymce_version = '4104-20140822';
 
 /**
  * Holds the required PHP version
 
 /**
  * Holds the required PHP version
index 97c875e7c855767b9d5accd5bf71ee0c74951226..94220a26b942c62fdb33c8abf716476840a76845 100644 (file)
  */
 class WP_Widget {
 
  */
 class WP_Widget {
 
-       var $id_base;                   // Root id for all widgets of this type.
-       var $name;                              // Name for this widget type.
-       var $widget_options;    // Option array passed to wp_register_sidebar_widget()
-       var $control_options;   // Option array passed to wp_register_widget_control()
+       public $id_base;                        // Root id for all widgets of this type.
+       public $name;                           // Name for this widget type.
+       public $widget_options; // Option array passed to wp_register_sidebar_widget()
+       public $control_options;        // Option array passed to wp_register_widget_control()
 
 
-       var $number = false;    // Unique ID number of the current instance.
-       var $id = false;                // Unique ID string of the current instance (id_base-number)
-       var $updated = false;   // Set true when we update the data after a POST submit - makes sure we don't do it twice.
+       public $number = false; // Unique ID number of the current instance.
+       public $id = false;             // Unique ID string of the current instance (id_base-number)
+       public $updated = false;        // Set true when we update the data after a POST submit - makes sure we don't do it twice.
 
        // Member functions that you must over-ride.
 
 
        // Member functions that you must over-ride.
 
@@ -41,7 +41,7 @@ class WP_Widget {
         * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget.
         * @param array $instance The settings for the particular instance of the widget
         */
         * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget.
         * @param array $instance The settings for the particular instance of the widget
         */
-       function widget($args, $instance) {
+       public function widget($args, $instance) {
                die('function WP_Widget::widget() must be over-ridden in a sub-class.');
        }
 
                die('function WP_Widget::widget() must be over-ridden in a sub-class.');
        }
 
@@ -55,7 +55,7 @@ class WP_Widget {
         * @param array $old_instance Old settings for this instance
         * @return array Settings to save or bool false to cancel saving
         */
         * @param array $old_instance Old settings for this instance
         * @return array Settings to save or bool false to cancel saving
         */
-       function update($new_instance, $old_instance) {
+       public function update($new_instance, $old_instance) {
                return $new_instance;
        }
 
                return $new_instance;
        }
 
@@ -63,7 +63,7 @@ class WP_Widget {
         *
         * @param array $instance Current settings
         */
         *
         * @param array $instance Current settings
         */
-       function form($instance) {
+       public function form($instance) {
                echo '<p class="no-options-widget">' . __('There are no options for this widget.') . '</p>';
                return 'noform';
        }
                echo '<p class="no-options-widget">' . __('There are no options for this widget.') . '</p>';
                return 'noform';
        }
@@ -83,7 +83,7 @@ class WP_Widget {
         *       - width: required if more than 250px
         *       - height: currently not used but may be needed in the future
         */
         *       - width: required if more than 250px
         *       - height: currently not used but may be needed in the future
         */
-       function __construct( $id_base, $name, $widget_options = array(), $control_options = array() ) {
+       public function __construct( $id_base, $name, $widget_options = array(), $control_options = array() ) {
                $this->id_base = empty($id_base) ? preg_replace( '/(wp_)?widget_/', '', strtolower(get_class($this)) ) : strtolower($id_base);
                $this->name = $name;
                $this->option_name = 'widget_' . $this->id_base;
                $this->id_base = empty($id_base) ? preg_replace( '/(wp_)?widget_/', '', strtolower(get_class($this)) ) : strtolower($id_base);
                $this->name = $name;
                $this->option_name = 'widget_' . $this->id_base;
@@ -94,7 +94,7 @@ class WP_Widget {
        /**
         * PHP4 constructor
         */
        /**
         * PHP4 constructor
         */
-       function WP_Widget( $id_base, $name, $widget_options = array(), $control_options = array() ) {
+       public function WP_Widget( $id_base, $name, $widget_options = array(), $control_options = array() ) {
                WP_Widget::__construct( $id_base, $name, $widget_options, $control_options );
        }
 
                WP_Widget::__construct( $id_base, $name, $widget_options, $control_options );
        }
 
@@ -106,7 +106,7 @@ class WP_Widget {
         * @param string $field_name Field name
         * @return string Name attribute for $field_name
         */
         * @param string $field_name Field name
         * @return string Name attribute for $field_name
         */
-       function get_field_name($field_name) {
+       public function get_field_name($field_name) {
                return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']';
        }
 
                return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']';
        }
 
@@ -118,13 +118,13 @@ class WP_Widget {
         * @param string $field_name Field name
         * @return string ID attribute for $field_name
         */
         * @param string $field_name Field name
         * @return string ID attribute for $field_name
         */
-       function get_field_id($field_name) {
+       public function get_field_id($field_name) {
                return 'widget-' . $this->id_base . '-' . $this->number . '-' . $field_name;
        }
 
        // Private Functions. Don't worry about these.
 
                return 'widget-' . $this->id_base . '-' . $this->number . '-' . $field_name;
        }
 
        // Private Functions. Don't worry about these.
 
-       function _register() {
+       public function _register() {
                $settings = $this->get_settings();
                $empty = true;
 
                $settings = $this->get_settings();
                $empty = true;
 
@@ -146,20 +146,20 @@ class WP_Widget {
                }
        }
 
                }
        }
 
-       function _set($number) {
+       public function _set($number) {
                $this->number = $number;
                $this->id = $this->id_base . '-' . $number;
        }
 
                $this->number = $number;
                $this->id = $this->id_base . '-' . $number;
        }
 
-       function _get_display_callback() {
+       public function _get_display_callback() {
                return array($this, 'display_callback');
        }
 
                return array($this, 'display_callback');
        }
 
-       function _get_update_callback() {
+       public function _get_update_callback() {
                return array($this, 'update_callback');
        }
 
                return array($this, 'update_callback');
        }
 
-       function _get_form_callback() {
+       public function _get_form_callback() {
                return array($this, 'form_callback');
        }
 
                return array($this, 'form_callback');
        }
 
@@ -173,7 +173,7 @@ class WP_Widget {
         *
         * @return bool True if Customizer is on, false if not.
         */
         *
         * @return bool True if Customizer is on, false if not.
         */
-       function is_preview() {
+       public function is_preview() {
                global $wp_customize;
                return ( isset( $wp_customize ) && $wp_customize->is_preview() ) ;
        }
                global $wp_customize;
                return ( isset( $wp_customize ) && $wp_customize->is_preview() ) ;
        }
@@ -181,7 +181,7 @@ class WP_Widget {
        /** Generate the actual widget content.
         *      Just finds the instance and calls widget().
         *      Do NOT over-ride this function. */
        /** Generate the actual widget content.
         *      Just finds the instance and calls widget().
         *      Do NOT over-ride this function. */
-       function display_callback( $args, $widget_args = 1 ) {
+       public function display_callback( $args, $widget_args = 1 ) {
                if ( is_numeric($widget_args) )
                        $widget_args = array( 'number' => $widget_args );
 
                if ( is_numeric($widget_args) )
                        $widget_args = array( 'number' => $widget_args );
 
@@ -229,7 +229,7 @@ class WP_Widget {
         *
         * @param mixed $deprecated Not used.
         */
         *
         * @param mixed $deprecated Not used.
         */
-       function update_callback( $deprecated = 1 ) {
+       public function update_callback( $deprecated = 1 ) {
                global $wp_registered_widgets;
 
                $all_instances = $this->get_settings();
                global $wp_registered_widgets;
 
                $all_instances = $this->get_settings();
@@ -238,8 +238,6 @@ class WP_Widget {
                if ( $this->updated )
                        return;
 
                if ( $this->updated )
                        return;
 
-               $sidebars_widgets = wp_get_sidebars_widgets();
-
                if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) {
                        // Delete the settings for this instance of the widget
                        if ( isset($_POST['the-widget-id']) )
                if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) {
                        // Delete the settings for this instance of the widget
                        if ( isset($_POST['the-widget-id']) )
@@ -311,7 +309,7 @@ class WP_Widget {
         *
         * Do NOT over-ride this function.
         */
         *
         * Do NOT over-ride this function.
         */
-       function form_callback( $widget_args = 1 ) {
+       public function form_callback( $widget_args = 1 ) {
                if ( is_numeric($widget_args) )
                        $widget_args = array( 'number' => $widget_args );
 
                if ( is_numeric($widget_args) )
                        $widget_args = array( 'number' => $widget_args );
 
@@ -365,18 +363,18 @@ class WP_Widget {
        }
 
        /** Helper function: Registers a single instance. */
        }
 
        /** Helper function: Registers a single instance. */
-       function _register_one($number = -1) {
+       public function _register_one($number = -1) {
                wp_register_sidebar_widget(     $this->id, $this->name, $this->_get_display_callback(), $this->widget_options, array( 'number' => $number ) );
                _register_widget_update_callback( $this->id_base, $this->_get_update_callback(), $this->control_options, array( 'number' => -1 ) );
                _register_widget_form_callback( $this->id, $this->name, $this->_get_form_callback(), $this->control_options, array( 'number' => $number ) );
        }
 
                wp_register_sidebar_widget(     $this->id, $this->name, $this->_get_display_callback(), $this->widget_options, array( 'number' => $number ) );
                _register_widget_update_callback( $this->id_base, $this->_get_update_callback(), $this->control_options, array( 'number' => -1 ) );
                _register_widget_form_callback( $this->id, $this->name, $this->_get_form_callback(), $this->control_options, array( 'number' => $number ) );
        }
 
-       function save_settings($settings) {
+       public function save_settings($settings) {
                $settings['_multiwidget'] = 1;
                update_option( $this->option_name, $settings );
        }
 
                $settings['_multiwidget'] = 1;
                update_option( $this->option_name, $settings );
        }
 
-       function get_settings() {
+       public function get_settings() {
                $settings = get_option($this->option_name);
 
                if ( false === $settings && isset($this->alt_option_name) )
                $settings = get_option($this->option_name);
 
                if ( false === $settings && isset($this->alt_option_name) )
@@ -403,22 +401,22 @@ class WP_Widget {
  * @since 2.8.0
  */
 class WP_Widget_Factory {
  * @since 2.8.0
  */
 class WP_Widget_Factory {
-       var $widgets = array();
+       public $widgets = array();
 
 
-       function WP_Widget_Factory() {
+       public function WP_Widget_Factory() {
                add_action( 'widgets_init', array( $this, '_register_widgets' ), 100 );
        }
 
                add_action( 'widgets_init', array( $this, '_register_widgets' ), 100 );
        }
 
-       function register($widget_class) {
+       public function register($widget_class) {
                $this->widgets[$widget_class] = new $widget_class();
        }
 
                $this->widgets[$widget_class] = new $widget_class();
        }
 
-       function unregister($widget_class) {
+       public function unregister($widget_class) {
                if ( isset($this->widgets[$widget_class]) )
                        unset($this->widgets[$widget_class]);
        }
 
                if ( isset($this->widgets[$widget_class]) )
                        unset($this->widgets[$widget_class]);
        }
 
-       function _register_widgets() {
+       public function _register_widgets() {
                global $wp_registered_widgets;
                $keys = array_keys($this->widgets);
                $registered = array_keys($wp_registered_widgets);
                global $wp_registered_widgets;
                $keys = array_keys($this->widgets);
                $registered = array_keys($wp_registered_widgets);
@@ -691,9 +689,9 @@ function unregister_sidebar( $name ) {
 /**
  * Register widget for use in sidebars.
  *
 /**
  * Register widget for use in sidebars.
  *
- * The default widget option is 'classname' that can be override.
+ * The default widget option is 'classname' that can be overridden.
  *
  *
- * The function can also be used to unregister widgets when $output_callback
+ * The function can also be used to un-register widgets when $output_callback
  * parameter is an empty string.
  *
  * @since 2.2.0
  * parameter is an empty string.
  *
  * @since 2.2.0
@@ -1144,8 +1142,9 @@ function is_active_widget($callback = false, $widget_id = false, $id_base = fals
 
        if ( is_array($sidebars_widgets) ) {
                foreach ( $sidebars_widgets as $sidebar => $widgets ) {
 
        if ( is_array($sidebars_widgets) ) {
                foreach ( $sidebars_widgets as $sidebar => $widgets ) {
-                       if ( $skip_inactive && 'wp_inactive_widgets' == $sidebar )
+                       if ( $skip_inactive && ( 'wp_inactive_widgets' === $sidebar || 'orphaned_widgets' === substr( $sidebar, 0, 16 ) ) ) {
                                continue;
                                continue;
+                       }
 
                        if ( is_array($widgets) ) {
                                foreach ( $widgets as $widget ) {
 
                        if ( is_array($widgets) ) {
                                foreach ( $widgets as $widget ) {
@@ -1426,8 +1425,9 @@ function retrieve_widgets( $theme_changed = false ) {
                }
 
                foreach ( $_sidebars_widgets as $sidebar => $widgets ) {
                }
 
                foreach ( $_sidebars_widgets as $sidebar => $widgets ) {
-                       if ( 'wp_inactive_widgets' == $sidebar || 'orphaned_widgets' == substr( $sidebar, 0, 16 ) )
+                       if ( 'wp_inactive_widgets' === $sidebar || 'orphaned_widgets' === substr( $sidebar, 0, 16 ) ) {
                                continue;
                                continue;
+                       }
 
                        if ( !in_array( $sidebar, $registered_sidebar_keys ) ) {
                                $_sidebars_widgets['orphaned_widgets_' . ++$orphaned] = $widgets;
 
                        if ( !in_array( $sidebar, $registered_sidebar_keys ) ) {
                                $_sidebars_widgets['orphaned_widgets_' . ++$orphaned] = $widgets;
index c72a644c420a6a78efc3228c90a666d391fcdf81..f30ad79146d9bb6d526920796d4ceee6a1b6c5a5 100644 (file)
@@ -52,7 +52,10 @@ define( 'ARRAY_N', 'ARRAY_N' );
 class wpdb {
 
        /**
 class wpdb {
 
        /**
-        * Whether to show SQL/DB errors
+        * Whether to show SQL/DB errors.
+        *
+        * Default behavior is to show errors if both WP_DEBUG and WP_DEBUG_DISPLAY
+        * evaluated to true.
         *
         * @since 0.71
         * @access private
         *
         * @since 0.71
         * @access private
@@ -75,7 +78,7 @@ class wpdb {
         * @since 2.5.0
         * @var string
         */
         * @since 2.5.0
         * @var string
         */
-       var $last_error = '';
+       public $last_error = '';
 
        /**
         * Amount of queries made
 
        /**
         * Amount of queries made
@@ -206,7 +209,7 @@ class wpdb {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $blogid = 0;
+       public $blogid = 0;
 
        /**
         * {@internal Missing Description}}
 
        /**
         * {@internal Missing Description}}
@@ -215,7 +218,7 @@ class wpdb {
         * @access public
         * @var int
         */
         * @access public
         * @var int
         */
-       var $siteid = 0;
+       public $siteid = 0;
 
        /**
         * List of WordPress per-blog tables
 
        /**
         * List of WordPress per-blog tables
@@ -268,7 +271,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $comments;
+       public $comments;
 
        /**
         * WordPress Comment Metadata table
 
        /**
         * WordPress Comment Metadata table
@@ -277,7 +280,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $commentmeta;
+       public $commentmeta;
 
        /**
         * WordPress Links table
 
        /**
         * WordPress Links table
@@ -286,7 +289,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $links;
+       public $links;
 
        /**
         * WordPress Options table
 
        /**
         * WordPress Options table
@@ -295,7 +298,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $options;
+       public $options;
 
        /**
         * WordPress Post Metadata table
 
        /**
         * WordPress Post Metadata table
@@ -304,7 +307,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $postmeta;
+       public $postmeta;
 
        /**
         * WordPress Posts table
 
        /**
         * WordPress Posts table
@@ -313,7 +316,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $posts;
+       public $posts;
 
        /**
         * WordPress Terms table
 
        /**
         * WordPress Terms table
@@ -322,7 +325,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $terms;
+       public $terms;
 
        /**
         * WordPress Term Relationships table
 
        /**
         * WordPress Term Relationships table
@@ -331,7 +334,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $term_relationships;
+       public $term_relationships;
 
        /**
         * WordPress Term Taxonomy table
 
        /**
         * WordPress Term Taxonomy table
@@ -340,7 +343,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $term_taxonomy;
+       public $term_taxonomy;
 
        /*
         * Global and Multisite tables
 
        /*
         * Global and Multisite tables
@@ -353,7 +356,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $usermeta;
+       public $usermeta;
 
        /**
         * WordPress Users table
 
        /**
         * WordPress Users table
@@ -362,7 +365,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $users;
+       public $users;
 
        /**
         * Multisite Blogs table
 
        /**
         * Multisite Blogs table
@@ -371,7 +374,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $blogs;
+       public $blogs;
 
        /**
         * Multisite Blog Versions table
 
        /**
         * Multisite Blog Versions table
@@ -380,7 +383,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $blog_versions;
+       public $blog_versions;
 
        /**
         * Multisite Registration Log table
 
        /**
         * Multisite Registration Log table
@@ -389,7 +392,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $registration_log;
+       public $registration_log;
 
        /**
         * Multisite Signups table
 
        /**
         * Multisite Signups table
@@ -398,7 +401,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $signups;
+       public $signups;
 
        /**
         * Multisite Sites table
 
        /**
         * Multisite Sites table
@@ -407,7 +410,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $site;
+       public $site;
 
        /**
         * Multisite Sitewide Terms table
 
        /**
         * Multisite Sitewide Terms table
@@ -416,7 +419,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $sitecategories;
+       public $sitecategories;
 
        /**
         * Multisite Site Metadata table
 
        /**
         * Multisite Site Metadata table
@@ -425,7 +428,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $sitemeta;
+       public $sitemeta;
 
        /**
         * Format specifiers for DB columns. Columns not listed here default to %s. Initialized during WP load.
 
        /**
         * Format specifiers for DB columns. Columns not listed here default to %s. Initialized during WP load.
@@ -441,7 +444,7 @@ class wpdb {
         * @access public
         * @var array
         */
         * @access public
         * @var array
         */
-       var $field_types = array();
+       public $field_types = array();
 
        /**
         * Database table columns charset
 
        /**
         * Database table columns charset
@@ -450,7 +453,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $charset;
+       public $charset;
 
        /**
         * Database table columns collate
 
        /**
         * Database table columns collate
@@ -459,7 +462,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $collate;
+       public $collate;
 
        /**
         * Database Username
 
        /**
         * Database Username
@@ -513,7 +516,7 @@ class wpdb {
         * @access public
         * @var string
         */
         * @access public
         * @var string
         */
-       var $func_call;
+       public $func_call;
 
        /**
         * Whether MySQL is used as the database engine.
 
        /**
         * Whether MySQL is used as the database engine.
@@ -572,7 +575,7 @@ class wpdb {
         * @param string $dbname MySQL database name
         * @param string $dbhost MySQL database host
         */
         * @param string $dbname MySQL database name
         * @param string $dbhost MySQL database host
         */
-       function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) {
+       public function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) {
                register_shutdown_function( array( $this, '__destruct' ) );
 
                if ( WP_DEBUG && WP_DEBUG_DISPLAY )
                register_shutdown_function( array( $this, '__destruct' ) );
 
                if ( WP_DEBUG && WP_DEBUG_DISPLAY )
@@ -601,6 +604,11 @@ class wpdb {
                $this->dbname = $dbname;
                $this->dbhost = $dbhost;
 
                $this->dbname = $dbname;
                $this->dbhost = $dbhost;
 
+               // wp-config.php creation will manually connect when ready.
+               if ( defined( 'WP_SETUP_CONFIG' ) ) {
+                       return;
+               }
+
                $this->db_connect();
        }
 
                $this->db_connect();
        }
 
@@ -611,7 +619,7 @@ class wpdb {
         * @since 2.0.8
         * @return bool true
         */
         * @since 2.0.8
         * @return bool true
         */
-       function __destruct() {
+       public function __destruct() {
                return true;
        }
 
                return true;
        }
 
@@ -623,7 +631,7 @@ class wpdb {
         * @param string $name The private member to get, and optionally process
         * @return mixed The private member
         */
         * @param string $name The private member to get, and optionally process
         * @return mixed The private member
         */
-       function __get( $name ) {
+       public function __get( $name ) {
                if ( 'col_info' == $name )
                        $this->load_col_info();
 
                if ( 'col_info' == $name )
                        $this->load_col_info();
 
@@ -631,19 +639,19 @@ class wpdb {
        }
 
        /**
        }
 
        /**
-        * Magic function, for backwards compatibility
+        * Magic function, for backwards compatibility.
         *
         * @since 3.5.0
         *
         * @param string $name  The private member to set
         * @param mixed  $value The value to set
         */
         *
         * @since 3.5.0
         *
         * @param string $name  The private member to set
         * @param mixed  $value The value to set
         */
-       function __set( $name, $value ) {
+       public function __set( $name, $value ) {
                $this->$name = $value;
        }
 
        /**
                $this->$name = $value;
        }
 
        /**
-        * Magic function, for backwards compatibility
+        * Magic function, for backwards compatibility.
         *
         * @since 3.5.0
         *
         *
         * @since 3.5.0
         *
@@ -651,18 +659,18 @@ class wpdb {
         *
         * @return bool If the member is set or not
         */
         *
         * @return bool If the member is set or not
         */
-       function __isset( $name ) {
+       public function __isset( $name ) {
                return isset( $this->$name );
        }
 
        /**
                return isset( $this->$name );
        }
 
        /**
-        * Magic function, for backwards compatibility
+        * Magic function, for backwards compatibility.
         *
         * @since 3.5.0
         *
         * @param string $name  The private member to unset
         */
         *
         * @since 3.5.0
         *
         * @param string $name  The private member to unset
         */
-       function __unset( $name ) {
+       public function __unset( $name ) {
                unset( $this->$name );
        }
 
                unset( $this->$name );
        }
 
@@ -671,7 +679,7 @@ class wpdb {
         *
         * @since 3.1.0
         */
         *
         * @since 3.1.0
         */
-       function init_charset() {
+       public function init_charset() {
                if ( function_exists('is_multisite') && is_multisite() ) {
                        $this->charset = 'utf8';
                        if ( defined( 'DB_COLLATE' ) && DB_COLLATE )
                if ( function_exists('is_multisite') && is_multisite() ) {
                        $this->charset = 'utf8';
                        if ( defined( 'DB_COLLATE' ) && DB_COLLATE )
@@ -695,7 +703,7 @@ class wpdb {
         * @param string   $charset The character set (optional)
         * @param string   $collate The collation (optional)
         */
         * @param string   $charset The character set (optional)
         * @param string   $collate The collation (optional)
         */
-       function set_charset( $dbh, $charset = null, $collate = null ) {
+       public function set_charset( $dbh, $charset = null, $collate = null ) {
                if ( ! isset( $charset ) )
                        $charset = $this->charset;
                if ( ! isset( $collate ) )
                if ( ! isset( $charset ) )
                        $charset = $this->charset;
                if ( ! isset( $collate ) )
@@ -733,7 +741,7 @@ class wpdb {
         *
         * @param array $modes Optional. A list of SQL modes to set.
         */
         *
         * @param array $modes Optional. A list of SQL modes to set.
         */
-       function set_sql_mode( $modes = array() ) {
+       public function set_sql_mode( $modes = array() ) {
                if ( empty( $modes ) ) {
                        if ( $this->use_mysqli ) {
                                $res = mysqli_query( $this->dbh, 'SELECT @@SESSION.sql_mode' );
                if ( empty( $modes ) ) {
                        if ( $this->use_mysqli ) {
                                $res = mysqli_query( $this->dbh, 'SELECT @@SESSION.sql_mode' );
@@ -799,7 +807,7 @@ class wpdb {
         * @param bool $set_table_names Optional. Whether the table names, e.g. wpdb::$posts, should be updated or not.
         * @return string|WP_Error Old prefix or WP_Error on error
         */
         * @param bool $set_table_names Optional. Whether the table names, e.g. wpdb::$posts, should be updated or not.
         * @return string|WP_Error Old prefix or WP_Error on error
         */
-       function set_prefix( $prefix, $set_table_names = true ) {
+       public function set_prefix( $prefix, $set_table_names = true ) {
 
                if ( preg_match( '|[^a-z0-9_]|i', $prefix ) )
                        return new WP_Error('invalid_db_prefix', 'Invalid database prefix' );
 
                if ( preg_match( '|[^a-z0-9_]|i', $prefix ) )
                        return new WP_Error('invalid_db_prefix', 'Invalid database prefix' );
@@ -838,7 +846,7 @@ class wpdb {
         * @param int $site_id Optional.
         * @return string previous blog id
         */
         * @param int $site_id Optional.
         * @return string previous blog id
         */
-       function set_blog_id( $blog_id, $site_id = 0 ) {
+       public function set_blog_id( $blog_id, $site_id = 0 ) {
                if ( ! empty( $site_id ) )
                        $this->siteid = $site_id;
 
                if ( ! empty( $site_id ) )
                        $this->siteid = $site_id;
 
@@ -864,7 +872,7 @@ class wpdb {
         * @param int $blog_id Optional.
         * @return string Blog prefix.
         */
         * @param int $blog_id Optional.
         * @return string Blog prefix.
         */
-       function get_blog_prefix( $blog_id = null ) {
+       public function get_blog_prefix( $blog_id = null ) {
                if ( is_multisite() ) {
                        if ( null === $blog_id )
                                $blog_id = $this->blogid;
                if ( is_multisite() ) {
                        if ( null === $blog_id )
                                $blog_id = $this->blogid;
@@ -906,7 +914,7 @@ class wpdb {
         * @param int $blog_id Optional. The blog_id to prefix. Defaults to wpdb::$blogid. Used only when prefix is requested.
         * @return array Table names. When a prefix is requested, the key is the unprefixed table name.
         */
         * @param int $blog_id Optional. The blog_id to prefix. Defaults to wpdb::$blogid. Used only when prefix is requested.
         * @return array Table names. When a prefix is requested, the key is the unprefixed table name.
         */
-       function tables( $scope = 'all', $prefix = true, $blog_id = 0 ) {
+       public function tables( $scope = 'all', $prefix = true, $blog_id = 0 ) {
                switch ( $scope ) {
                        case 'all' :
                                $tables = array_merge( $this->global_tables, $this->tables );
                switch ( $scope ) {
                        case 'all' :
                                $tables = array_merge( $this->global_tables, $this->tables );
@@ -929,7 +937,6 @@ class wpdb {
                                break;
                        default :
                                return array();
                                break;
                        default :
                                return array();
-                               break;
                }
 
                if ( $prefix ) {
                }
 
                if ( $prefix ) {
@@ -968,7 +975,7 @@ class wpdb {
         * @param resource $dbh Optional link identifier.
         * @return null Always null.
         */
         * @param resource $dbh Optional link identifier.
         * @return null Always null.
         */
-       function select( $db, $dbh = null ) {
+       public function select( $db, $dbh = null ) {
                if ( is_null($dbh) )
                        $dbh = $this->dbh;
 
                if ( is_null($dbh) )
                        $dbh = $this->dbh;
 
@@ -1077,7 +1084,7 @@ class wpdb {
         * @param mixed $data
         * @return mixed
         */
         * @param mixed $data
         * @return mixed
         */
-       function escape( $data ) {
+       public function escape( $data ) {
                if ( func_num_args() === 1 && function_exists( '_deprecated_function' ) )
                        _deprecated_function( __METHOD__, '3.6', 'wpdb::prepare() or esc_sql()' );
                if ( is_array( $data ) ) {
                if ( func_num_args() === 1 && function_exists( '_deprecated_function' ) )
                        _deprecated_function( __METHOD__, '3.6', 'wpdb::prepare() or esc_sql()' );
                if ( is_array( $data ) ) {
@@ -1102,7 +1109,7 @@ class wpdb {
         * @param string $string to escape
         * @return void
         */
         * @param string $string to escape
         * @return void
         */
-       function escape_by_ref( &$string ) {
+       public function escape_by_ref( &$string ) {
                if ( ! is_float( $string ) )
                        $string = $this->_real_escape( $string );
        }
                if ( ! is_float( $string ) )
                        $string = $this->_real_escape( $string );
        }
@@ -1144,7 +1151,7 @@ class wpdb {
         * @return null|false|string Sanitized query string, null if there is no query, false if there is an error and string
         *      if there was something to prepare
         */
         * @return null|false|string Sanitized query string, null if there is no query, false if there is an error and string
         *      if there was something to prepare
         */
-       function prepare( $query, $args ) {
+       public function prepare( $query, $args ) {
                if ( is_null( $query ) )
                        return;
 
                if ( is_null( $query ) )
                        return;
 
@@ -1166,6 +1173,32 @@ class wpdb {
                return @vsprintf( $query, $args );
        }
 
                return @vsprintf( $query, $args );
        }
 
+       /**
+        * First half of escaping for LIKE special characters % and _ before preparing for MySQL.
+        *
+        * Use this only before wpdb::prepare() or esc_sql().  Reversing the order is very bad for security.
+        *
+        * Example Prepared Statement:
+        *  $wild = '%';
+        *  $find = 'only 43% of planets';
+        *  $like = $wild . $wpdb->esc_like( $find ) . $wild;
+        *  $sql  = $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_content LIKE %s", $like );
+        *
+        * Example Escape Chain:
+        *  $sql  = esc_sql( $wpdb->esc_like( $input ) );
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $text The raw text to be escaped. The input typed by the user should have no
+        *                     extra or deleted slashes.
+        * @return string Text in the form of a LIKE phrase. The output is not SQL safe. Call $wpdb::prepare()
+        *                or real_escape next.
+        */
+       public function esc_like( $text ) {
+               return addcslashes( $text, '_%\\' );
+       }
+
        /**
         * Print SQL/DB error.
         *
        /**
         * Print SQL/DB error.
         *
@@ -1175,7 +1208,7 @@ class wpdb {
         * @param string $str The error to display
         * @return bool False if the showing of errors is disabled.
         */
         * @param string $str The error to display
         * @return bool False if the showing of errors is disabled.
         */
-       function print_error( $str = '' ) {
+       public function print_error( $str = '' ) {
                global $EZSQL_ERROR;
 
                if ( !$str ) {
                global $EZSQL_ERROR;
 
                if ( !$str ) {
@@ -1235,7 +1268,7 @@ class wpdb {
         * @param bool $show Whether to show or hide errors
         * @return bool Old value for showing errors.
         */
         * @param bool $show Whether to show or hide errors
         * @return bool Old value for showing errors.
         */
-       function show_errors( $show = true ) {
+       public function show_errors( $show = true ) {
                $errors = $this->show_errors;
                $this->show_errors = $show;
                return $errors;
                $errors = $this->show_errors;
                $this->show_errors = $show;
                return $errors;
@@ -1251,7 +1284,7 @@ class wpdb {
         *
         * @return bool Whether showing of errors was active
         */
         *
         * @return bool Whether showing of errors was active
         */
-       function hide_errors() {
+       public function hide_errors() {
                $show = $this->show_errors;
                $this->show_errors = false;
                return $show;
                $show = $this->show_errors;
                $this->show_errors = false;
                return $show;
@@ -1268,7 +1301,7 @@ class wpdb {
         * @param bool $suppress Optional. New value. Defaults to true.
         * @return bool Old value
         */
         * @param bool $suppress Optional. New value. Defaults to true.
         * @return bool Old value
         */
-       function suppress_errors( $suppress = true ) {
+       public function suppress_errors( $suppress = true ) {
                $errors = $this->suppress_errors;
                $this->suppress_errors = (bool) $suppress;
                return $errors;
                $errors = $this->suppress_errors;
                $this->suppress_errors = (bool) $suppress;
                return $errors;
@@ -1280,7 +1313,7 @@ class wpdb {
         * @since 0.71
         * @return void
         */
         * @since 0.71
         * @return void
         */
-       function flush() {
+       public function flush() {
                $this->last_result = array();
                $this->col_info    = null;
                $this->last_query  = null;
                $this->last_result = array();
                $this->col_info    = null;
                $this->last_query  = null;
@@ -1308,10 +1341,14 @@ class wpdb {
         * @param bool $allow_bail Optional. Allows the function to bail. Default true.
         * @return bool True with a successful connection, false on failure.
         */
         * @param bool $allow_bail Optional. Allows the function to bail. Default true.
         * @return bool True with a successful connection, false on failure.
         */
-       function db_connect( $allow_bail = true ) {
+       public function db_connect( $allow_bail = true ) {
 
                $this->is_mysql = true;
 
 
                $this->is_mysql = true;
 
+               /*
+                * Deprecated in 3.9+ when using MySQLi. No equivalent
+                * $new_link parameter exists for mysqli_* functions.
+                */
                $new_link = defined( 'MYSQL_NEW_LINK' ) ? MYSQL_NEW_LINK : true;
                $client_flags = defined( 'MYSQL_CLIENT_FLAGS' ) ? MYSQL_CLIENT_FLAGS : 0;
 
                $new_link = defined( 'MYSQL_NEW_LINK' ) ? MYSQL_NEW_LINK : true;
                $client_flags = defined( 'MYSQL_CLIENT_FLAGS' ) ? MYSQL_CLIENT_FLAGS : 0;
 
@@ -1423,7 +1460,7 @@ class wpdb {
         * @param bool $allow_bail Optional. Allows the function to bail. Default true.
         * @return bool True if the connection is up.
         */
         * @param bool $allow_bail Optional. Allows the function to bail. Default true.
         * @return bool True if the connection is up.
         */
-       function check_connection( $allow_bail = true ) {
+       public function check_connection( $allow_bail = true ) {
                if ( $this->use_mysqli ) {
                        if ( @mysqli_ping( $this->dbh ) ) {
                                return true;
                if ( $this->use_mysqli ) {
                        if ( @mysqli_ping( $this->dbh ) ) {
                                return true;
@@ -1495,7 +1532,7 @@ class wpdb {
         * @param string $query Database query
         * @return int|false Number of rows affected/selected or false on error
         */
         * @param string $query Database query
         * @return int|false Number of rows affected/selected or false on error
         */
-       function query( $query ) {
+       public function query( $query ) {
                if ( ! $this->ready )
                        return false;
 
                if ( ! $this->ready )
                        return false;
 
@@ -1511,7 +1548,6 @@ class wpdb {
                 */
                $query = apply_filters( 'query', $query );
 
                 */
                $query = apply_filters( 'query', $query );
 
-               $return_val = 0;
                $this->flush();
 
                // Log how the function was called
                $this->flush();
 
                // Log how the function was called
@@ -1644,7 +1680,7 @@ class wpdb {
         *      A format is one of '%d', '%f', '%s' (integer, float, string). If omitted, all values in $data will be treated as strings unless otherwise specified in wpdb::$field_types.
         * @return int|false The number of rows inserted, or false on error.
         */
         *      A format is one of '%d', '%f', '%s' (integer, float, string). If omitted, all values in $data will be treated as strings unless otherwise specified in wpdb::$field_types.
         * @return int|false The number of rows inserted, or false on error.
         */
-       function insert( $table, $data, $format = null ) {
+       public function insert( $table, $data, $format = null ) {
                return $this->_insert_replace_helper( $table, $data, $format, 'INSERT' );
        }
 
                return $this->_insert_replace_helper( $table, $data, $format, 'INSERT' );
        }
 
@@ -1667,7 +1703,7 @@ class wpdb {
         *      A format is one of '%d', '%f', '%s' (integer, float, string). If omitted, all values in $data will be treated as strings unless otherwise specified in wpdb::$field_types.
         * @return int|false The number of rows affected, or false on error.
         */
         *      A format is one of '%d', '%f', '%s' (integer, float, string). If omitted, all values in $data will be treated as strings unless otherwise specified in wpdb::$field_types.
         * @return int|false The number of rows affected, or false on error.
         */
-       function replace( $table, $data, $format = null ) {
+       public function replace( $table, $data, $format = null ) {
                return $this->_insert_replace_helper( $table, $data, $format, 'REPLACE' );
        }
 
                return $this->_insert_replace_helper( $table, $data, $format, 'REPLACE' );
        }
 
@@ -1730,7 +1766,7 @@ class wpdb {
         * @param array|string $where_format Optional. An array of formats to be mapped to each of the values in $where. If string, that format will be used for all of the items in $where. A format is one of '%d', '%f', '%s' (integer, float, string). If omitted, all values in $where will be treated as strings.
         * @return int|false The number of rows updated, or false on error.
         */
         * @param array|string $where_format Optional. An array of formats to be mapped to each of the values in $where. If string, that format will be used for all of the items in $where. A format is one of '%d', '%f', '%s' (integer, float, string). If omitted, all values in $where will be treated as strings.
         * @return int|false The number of rows updated, or false on error.
         */
-       function update( $table, $data, $where, $format = null, $where_format = null ) {
+       public function update( $table, $data, $where, $format = null, $where_format = null ) {
                if ( ! is_array( $data ) || ! is_array( $where ) )
                        return false;
 
                if ( ! is_array( $data ) || ! is_array( $where ) )
                        return false;
 
@@ -1779,11 +1815,11 @@ class wpdb {
         * @param array|string $where_format Optional. An array of formats to be mapped to each of the values in $where. If string, that format will be used for all of the items in $where. A format is one of '%d', '%f', '%s' (integer, float, string). If omitted, all values in $where will be treated as strings unless otherwise specified in wpdb::$field_types.
         * @return int|false The number of rows updated, or false on error.
         */
         * @param array|string $where_format Optional. An array of formats to be mapped to each of the values in $where. If string, that format will be used for all of the items in $where. A format is one of '%d', '%f', '%s' (integer, float, string). If omitted, all values in $where will be treated as strings unless otherwise specified in wpdb::$field_types.
         * @return int|false The number of rows updated, or false on error.
         */
-       function delete( $table, $where, $where_format = null ) {
+       public function delete( $table, $where, $where_format = null ) {
                if ( ! is_array( $where ) )
                        return false;
 
                if ( ! is_array( $where ) )
                        return false;
 
-               $bits = $wheres = array();
+               $wheres = array();
 
                $where_formats = $where_format = (array) $where_format;
 
 
                $where_formats = $where_format = (array) $where_format;
 
@@ -1818,7 +1854,7 @@ class wpdb {
         * @param int $y Optional. Row of value to return. Indexed from 0.
         * @return string|null Database query result (as string), or null on failure
         */
         * @param int $y Optional. Row of value to return. Indexed from 0.
         * @return string|null Database query result (as string), or null on failure
         */
-       function get_var( $query = null, $x = 0, $y = 0 ) {
+       public function get_var( $query = null, $x = 0, $y = 0 ) {
                $this->func_call = "\$db->get_var(\"$query\", $x, $y)";
                if ( $query )
                        $this->query( $query );
                $this->func_call = "\$db->get_var(\"$query\", $x, $y)";
                if ( $query )
                        $this->query( $query );
@@ -1845,7 +1881,7 @@ class wpdb {
         * @param int $y Optional. Row to return. Indexed from 0.
         * @return mixed Database query result in format specified by $output or null on failure
         */
         * @param int $y Optional. Row to return. Indexed from 0.
         * @return mixed Database query result in format specified by $output or null on failure
         */
-       function get_row( $query = null, $output = OBJECT, $y = 0 ) {
+       public function get_row( $query = null, $output = OBJECT, $y = 0 ) {
                $this->func_call = "\$db->get_row(\"$query\",$output,$y)";
                if ( $query )
                        $this->query( $query );
                $this->func_call = "\$db->get_row(\"$query\",$output,$y)";
                if ( $query )
                        $this->query( $query );
@@ -1882,7 +1918,7 @@ class wpdb {
         * @param int $x Optional. Column to return. Indexed from 0.
         * @return array Database query result. Array indexed from 0 by SQL result row number.
         */
         * @param int $x Optional. Column to return. Indexed from 0.
         * @return array Database query result. Array indexed from 0 by SQL result row number.
         */
-       function get_col( $query = null , $x = 0 ) {
+       public function get_col( $query = null , $x = 0 ) {
                if ( $query )
                        $this->query( $query );
 
                if ( $query )
                        $this->query( $query );
 
@@ -1907,7 +1943,7 @@ class wpdb {
         *      With OBJECT_K, return an associative array of row objects keyed by the value of each row's first column's value. Duplicate keys are discarded.
         * @return mixed Database query results
         */
         *      With OBJECT_K, return an associative array of row objects keyed by the value of each row's first column's value. Duplicate keys are discarded.
         * @return mixed Database query results
         */
-       function get_results( $query = null, $output = OBJECT ) {
+       public function get_results( $query = null, $output = OBJECT ) {
                $this->func_call = "\$db->get_results(\"$query\", $output)";
 
                if ( $query )
                $this->func_call = "\$db->get_results(\"$query\", $output)";
 
                if ( $query )
@@ -1981,7 +2017,7 @@ class wpdb {
         * @param int $col_offset Optional. 0: col name. 1: which table the col's in. 2: col's max length. 3: if the col is numeric. 4: col's type
         * @return mixed Column Results
         */
         * @param int $col_offset Optional. 0: col name. 1: which table the col's in. 2: col's max length. 3: if the col is numeric. 4: col's type
         * @return mixed Column Results
         */
-       function get_col_info( $info_type = 'name', $col_offset = -1 ) {
+       public function get_col_info( $info_type = 'name', $col_offset = -1 ) {
                $this->load_col_info();
 
                if ( $this->col_info ) {
                $this->load_col_info();
 
                if ( $this->col_info ) {
@@ -2006,7 +2042,7 @@ class wpdb {
         *
         * @return true
         */
         *
         * @return true
         */
-       function timer_start() {
+       public function timer_start() {
                $this->time_start = microtime( true );
                return true;
        }
                $this->time_start = microtime( true );
                return true;
        }
@@ -2018,7 +2054,7 @@ class wpdb {
         *
         * @return float Total time spent on the query, in seconds
         */
         *
         * @return float Total time spent on the query, in seconds
         */
-       function timer_stop() {
+       public function timer_stop() {
                return ( microtime( true ) - $this->time_start );
        }
 
                return ( microtime( true ) - $this->time_start );
        }
 
@@ -2033,7 +2069,7 @@ class wpdb {
         * @param string $error_code Optional. A Computer readable string to identify the error.
         * @return false|void
         */
         * @param string $error_code Optional. A Computer readable string to identify the error.
         * @return false|void
         */
-       function bail( $message, $error_code = '500' ) {
+       public function bail( $message, $error_code = '500' ) {
                if ( !$this->show_errors ) {
                        if ( class_exists( 'WP_Error' ) )
                                $this->error = new WP_Error($error_code, $message);
                if ( !$this->show_errors ) {
                        if ( class_exists( 'WP_Error' ) )
                                $this->error = new WP_Error($error_code, $message);
@@ -2053,7 +2089,7 @@ class wpdb {
         *
         * @return WP_Error
         */
         *
         * @return WP_Error
         */
-       function check_database_version() {
+       public function check_database_version() {
                global $wp_version, $required_mysql_version;
                // Make sure the server has the required MySQL version
                if ( version_compare($this->db_version(), $required_mysql_version, '<') )
                global $wp_version, $required_mysql_version;
                // Make sure the server has the required MySQL version
                if ( version_compare($this->db_version(), $required_mysql_version, '<') )
@@ -2071,7 +2107,7 @@ class wpdb {
         *
         * @return bool True if collation is supported, false if version does not
         */
         *
         * @return bool True if collation is supported, false if version does not
         */
-       function supports_collation() {
+       public function supports_collation() {
                _deprecated_function( __FUNCTION__, '3.5', 'wpdb::has_cap( \'collation\' )' );
                return $this->has_cap( 'collation' );
        }
                _deprecated_function( __FUNCTION__, '3.5', 'wpdb::has_cap( \'collation\' )' );
                return $this->has_cap( 'collation' );
        }
@@ -2103,7 +2139,7 @@ class wpdb {
         * @param string $db_cap The feature to check for.
         * @return bool
         */
         * @param string $db_cap The feature to check for.
         * @return bool
         */
-       function has_cap( $db_cap ) {
+       public function has_cap( $db_cap ) {
                $version = $this->db_version();
 
                switch ( strtolower( $db_cap ) ) {
                $version = $this->db_version();
 
                switch ( strtolower( $db_cap ) ) {
@@ -2128,7 +2164,7 @@ class wpdb {
         *
         * @return string The name of the calling function
         */
         *
         * @return string The name of the calling function
         */
-       function get_caller() {
+       public function get_caller() {
                return wp_debug_backtrace_summary( __CLASS__ );
        }
 
                return wp_debug_backtrace_summary( __CLASS__ );
        }
 
@@ -2139,7 +2175,7 @@ class wpdb {
         *
         * @return false|string false on failure, version number on success
         */
         *
         * @return false|string false on failure, version number on success
         */
-       function db_version() {
+       public function db_version() {
                if ( $this->use_mysqli ) {
                        $server_info = mysqli_get_server_info( $this->dbh );
                } else {
                if ( $this->use_mysqli ) {
                        $server_info = mysqli_get_server_info( $this->dbh );
                } else {
index dc335e30e4c034c6388792204be2c0d9ed5ab0e8..4901a4376bf8ae008f011ff475f28ca8e67bc786 100644 (file)
@@ -28,18 +28,18 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
        /**
         * @see Text_Diff_Renderer::_leading_context_lines
         * @var int
        /**
         * @see Text_Diff_Renderer::_leading_context_lines
         * @var int
-        * @access protected
+        * @access public
         * @since 2.6.0
         */
         * @since 2.6.0
         */
-       var $_leading_context_lines  = 10000;
+       public $_leading_context_lines  = 10000;
 
        /**
         * @see Text_Diff_Renderer::_trailing_context_lines
         * @var int
 
        /**
         * @see Text_Diff_Renderer::_trailing_context_lines
         * @var int
-        * @access protected
+        * @access public
         * @since 2.6.0
         */
         * @since 2.6.0
         */
-       var $_trailing_context_lines = 10000;
+       public $_trailing_context_lines = 10000;
 
        /**
         * {@internal Missing Description}}
 
        /**
         * {@internal Missing Description}}
@@ -48,7 +48,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @access protected
         * @since 2.6.0
         */
         * @access protected
         * @since 2.6.0
         */
-       var $_diff_threshold = 0.6;
+       protected $_diff_threshold = 0.6;
 
        /**
         * Inline display helper object name.
 
        /**
         * Inline display helper object name.
@@ -57,7 +57,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @access protected
         * @since 2.6.0
         */
         * @access protected
         * @since 2.6.0
         */
-       var $inline_diff_renderer = 'WP_Text_Diff_Renderer_inline';
+       protected $inline_diff_renderer = 'WP_Text_Diff_Renderer_inline';
 
        /**
         * Should we show the split view or not
 
        /**
         * Should we show the split view or not
@@ -66,7 +66,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @access protected
         * @since 3.6.0
         */
         * @access protected
         * @since 3.6.0
         */
-       var $_show_split_view = true;
+       protected $_show_split_view = true;
 
        /**
         * Constructor - Call parent constructor with params array.
 
        /**
         * Constructor - Call parent constructor with params array.
@@ -77,7 +77,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         *
         * @param array $params
         */
         *
         * @param array $params
         */
-       function __construct( $params = array() ) {
+       public function __construct( $params = array() ) {
                parent::__construct( $params );
                if ( isset( $params[ 'show_split_view' ] ) )
                        $this->_show_split_view = $params[ 'show_split_view' ];
                parent::__construct( $params );
                if ( isset( $params[ 'show_split_view' ] ) )
                        $this->_show_split_view = $params[ 'show_split_view' ];
@@ -89,7 +89,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @param string $header
         * @return string
         */
         * @param string $header
         * @return string
         */
-       function _startBlock( $header ) {
+       public function _startBlock( $header ) {
                return '';
        }
 
                return '';
        }
 
@@ -99,7 +99,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @param array $lines
         * @param string $prefix
         */
         * @param array $lines
         * @param string $prefix
         */
-       function _lines( $lines, $prefix=' ' ) {
+       public function _lines( $lines, $prefix=' ' ) {
        }
 
        /**
        }
 
        /**
@@ -108,7 +108,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @param string $line HTML-escape the value.
         * @return string
         */
         * @param string $line HTML-escape the value.
         * @return string
         */
-       function addedLine( $line ) {
+       public function addedLine( $line ) {
                return "<td class='diff-addedline'>{$line}</td>";
 
        }
                return "<td class='diff-addedline'>{$line}</td>";
 
        }
@@ -119,7 +119,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @param string $line HTML-escape the value.
         * @return string
         */
         * @param string $line HTML-escape the value.
         * @return string
         */
-       function deletedLine( $line ) {
+       public function deletedLine( $line ) {
                return "<td class='diff-deletedline'>{$line}</td>";
        }
 
                return "<td class='diff-deletedline'>{$line}</td>";
        }
 
@@ -129,7 +129,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @param string $line HTML-escape the value.
         * @return string
         */
         * @param string $line HTML-escape the value.
         * @return string
         */
-       function contextLine( $line ) {
+       public function contextLine( $line ) {
                return "<td class='diff-context'>{$line}</td>";
        }
 
                return "<td class='diff-context'>{$line}</td>";
        }
 
@@ -138,19 +138,19 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         *
         * @return string
         */
         *
         * @return string
         */
-       function emptyLine() {
+       public function emptyLine() {
                return '<td>&nbsp;</td>';
        }
 
        /**
         * @ignore
                return '<td>&nbsp;</td>';
        }
 
        /**
         * @ignore
-        * @access private
+        * @access public
         *
         * @param array $lines
         * @param bool $encode
         * @return string
         */
         *
         * @param array $lines
         * @param bool $encode
         * @return string
         */
-       function _added( $lines, $encode = true ) {
+       public function _added( $lines, $encode = true ) {
                $r = '';
                foreach ($lines as $line) {
                        if ( $encode )
                $r = '';
                foreach ($lines as $line) {
                        if ( $encode )
@@ -166,13 +166,13 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
 
        /**
         * @ignore
 
        /**
         * @ignore
-        * @access private
+        * @access public
         *
         * @param array $lines
         * @param bool $encode
         * @return string
         */
         *
         * @param array $lines
         * @param bool $encode
         * @return string
         */
-       function _deleted( $lines, $encode = true ) {
+       public function _deleted( $lines, $encode = true ) {
                $r = '';
                foreach ($lines as $line) {
                        if ( $encode )
                $r = '';
                foreach ($lines as $line) {
                        if ( $encode )
@@ -189,13 +189,13 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
 
        /**
         * @ignore
 
        /**
         * @ignore
-        * @access private
+        * @access public
         *
         * @param array $lines
         * @param bool $encode
         * @return string
         */
         *
         * @param array $lines
         * @param bool $encode
         * @return string
         */
-       function _context( $lines, $encode = true ) {
+       public function _context( $lines, $encode = true ) {
                $r = '';
                foreach ($lines as $line) {
                        if ( $encode )
                $r = '';
                foreach ($lines as $line) {
                        if ( $encode )
@@ -215,14 +215,14 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * (TRAC style) sometimes these lines can actually be deleted or added rows.
         * We do additional processing to figure that out
         *
         * (TRAC style) sometimes these lines can actually be deleted or added rows.
         * We do additional processing to figure that out
         *
-        * @access private
+        * @access public
         * @since 2.6.0
         *
         * @param array $orig
         * @param array $final
         * @return string
         */
         * @since 2.6.0
         *
         * @param array $orig
         * @param array $final
         * @return string
         */
-       function _changed( $orig, $final ) {
+       public function _changed( $orig, $final ) {
                $r = '';
 
                // Does the aforementioned additional processing
                $r = '';
 
                // Does the aforementioned additional processing
@@ -313,7 +313,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @param unknown_type $final
         * @return unknown
         */
         * @param unknown_type $final
         * @return unknown
         */
-       function interleave_changed_lines( $orig, $final ) {
+       public function interleave_changed_lines( $orig, $final ) {
 
                // Contains all pairwise string comparisons. Keys are such that this need only be a one dimensional array.
                $matches = array();
 
                // Contains all pairwise string comparisons. Keys are such that this need only be a one dimensional array.
                $matches = array();
@@ -402,7 +402,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @param string $string2
         * @return int
         */
         * @param string $string2
         * @return int
         */
-       function compute_string_distance( $string1, $string2 ) {
+       public function compute_string_distance( $string1, $string2 ) {
                // Vectors containing character frequency for all chars in each string
                $chars1 = count_chars($string1);
                $chars2 = count_chars($string2);
                // Vectors containing character frequency for all chars in each string
                $chars1 = count_chars($string1);
                $chars2 = count_chars($string2);
@@ -414,7 +414,7 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
                if ( !$string1 )
                        return $difference;
 
                if ( !$string1 )
                        return $difference;
 
-               // Return distance per charcter (of string1)
+               // Return distance per character (of string1).
                return $difference / strlen($string1);
        }
 
                return $difference / strlen($string1);
        }
 
@@ -426,10 +426,75 @@ class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
         * @param int $b
         * @return int
         */
         * @param int $b
         * @return int
         */
-       function difference( $a, $b ) {
+       public function difference( $a, $b ) {
                return abs( $a - $b );
        }
 
                return abs( $a - $b );
        }
 
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to check if set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
+       /**
+        * Make private/protected methods readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param callable $name      Method to call.
+        * @param array    $arguments Arguments to pass when calling.
+        * @return mixed|bool Return value of the callback, false otherwise.
+        */
+       public function __call( $name, $arguments ) {
+               return call_user_func_array( array( $this, $name ), $arguments );
+       }
 }
 
 /**
 }
 
 /**
@@ -448,7 +513,7 @@ class WP_Text_Diff_Renderer_inline extends Text_Diff_Renderer_inline {
         * @param string $newlineEscape
         * @return string
         */
         * @param string $newlineEscape
         * @return string
         */
-       function _splitOnWords($string, $newlineEscape = "\n") {
+       public function _splitOnWords($string, $newlineEscape = "\n") {
                $string = str_replace("\0", '', $string);
                $words  = preg_split( '/([^\w])/u', $string, -1, PREG_SPLIT_DELIM_CAPTURE );
                $words  = str_replace( "\n", $newlineEscape, $words );
                $string = str_replace("\0", '', $string);
                $words  = preg_split( '/([^\w])/u', $string, -1, PREG_SPLIT_DELIM_CAPTURE );
                $words  = str_replace( "\n", $newlineEscape, $words );
index fb859533c36f0b6b4f9002d6d8c008e1d40200fc..9021ceb7475866cfbeca7b615b7375089b06df87 100644 (file)
@@ -38,12 +38,7 @@ if ( file_exists( ABSPATH . 'wp-config.php') ) {
        // A config file doesn't exist
 
        define( 'WPINC', 'wp-includes' );
        // A config file doesn't exist
 
        define( 'WPINC', 'wp-includes' );
-       define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
        require_once( ABSPATH . WPINC . '/load.php' );
        require_once( ABSPATH . WPINC . '/load.php' );
-       require_once( ABSPATH . WPINC . '/version.php' );
-
-       wp_check_php_mysql_versions();
-       wp_load_translations_early();
 
        // Standardize $_SERVER variables across setups.
        wp_fix_server_vars();
 
        // Standardize $_SERVER variables across setups.
        wp_fix_server_vars();
@@ -52,6 +47,22 @@ if ( file_exists( ABSPATH . 'wp-config.php') ) {
 
        $path = wp_guess_url() . '/wp-admin/setup-config.php';
 
 
        $path = wp_guess_url() . '/wp-admin/setup-config.php';
 
+       /*
+        * We're going to redirect to setup-config.php. While this shouldn't result
+        * in an infinite loop, that's a silly thing to assume, don't you think? If
+        * we're traveling in circles, our last-ditch effort is "Need more help?"
+        */
+       if ( false === strpos( $_SERVER['REQUEST_URI'], 'setup-config' ) ) {
+               header( 'Location: ' . $path );
+               exit;
+       }
+
+       define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
+       require_once( ABSPATH . WPINC . '/version.php' );
+
+       wp_check_php_mysql_versions();
+       wp_load_translations_early();
+
        // Die with an error message
        $die  = __( "There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started." ) . '</p>';
        $die .= '<p>' . __( "Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>." ) . '</p>';
        // Die with an error message
        $die  = __( "There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started." ) . '</p>';
        $die .= '<p>' . __( "Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>." ) . '</p>';
index 0197167f65cb1c00d6ded3ec669b017177b59917..b9dbd61e52b4ea5fb93c9b0c47decc66db43bdd9 100644 (file)
@@ -25,10 +25,9 @@ if ( force_ssl_admin() && ! is_ssl() ) {
 /**
  * Output the login page header.
  *
 /**
  * Output the login page header.
  *
- * @param string $title    Optional. WordPress Log In Page title to display in <title/> element. Default 'Log In'.
- * @param string $message  Optional. Message to display in header. Default empty.
- * @param string $wp_error Optional. The error to pass. Default empty.
- * @param WP_Error $wp_error Optional. WordPress Error Object
+ * @param string   $title    Optional. WordPress Log In Page title to display in <title> element. Default 'Log In'.
+ * @param string   $message  Optional. Message to display in header. Default empty.
+ * @param WP_Error $wp_error Optional. The error to pass. Default empty.
  */
 function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
        global $error, $interim_login, $action;
  */
 function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
        global $error, $interim_login, $action;
@@ -70,9 +69,11 @@ function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
 
        wp_admin_css( 'login', true );
 
 
        wp_admin_css( 'login', true );
 
-       // Remove all stored post data on logging out.
-       // This could be added by add_action('login_head'...) like wp_shake_js()
-       // but maybe better if it's not removable by plugins
+       /*
+        * Remove all stored post data on logging out.
+        * This could be added by add_action('login_head'...) like wp_shake_js(),
+        * but maybe better if it's not removable by plugins
+        */
        if ( 'loggedout' == $wp_error->get_error_code() ) {
                ?>
                <script>if("sessionStorage" in window){try{for(var key in sessionStorage){if(key.indexOf("wp-autosave-")!=-1){sessionStorage.removeItem(key)}}}catch(e){}};</script>
        if ( 'loggedout' == $wp_error->get_error_code() ) {
                ?>
                <script>if("sessionStorage" in window){try{for(var key in sessionStorage){if(key.indexOf("wp-autosave-")!=-1){sessionStorage.removeItem(key)}}}catch(e){}};</script>
@@ -147,7 +148,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
        </head>
        <body class="login <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
        <div id="login">
        </head>
        <body class="login <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
        <div id="login">
-               <h1><a href="<?php echo esc_url( $login_header_url ); ?>" title="<?php echo esc_attr( $login_header_title ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
+               <h1><a href="<?php echo esc_url( $login_header_url ); ?>" title="<?php echo esc_attr( $login_header_title ); ?>" tabindex="-1"><?php bloginfo( 'name' ); ?></a></h1>
        <?php
 
        unset( $login_header_url, $login_header_title );
        <?php
 
        unset( $login_header_url, $login_header_title );
@@ -173,12 +174,12 @@ function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
                $errors = '';
                $messages = '';
                foreach ( $wp_error->get_error_codes() as $code ) {
                $errors = '';
                $messages = '';
                foreach ( $wp_error->get_error_codes() as $code ) {
-                       $severity = $wp_error->get_error_data($code);
-                       foreach ( $wp_error->get_error_messages($code) as $error ) {
+                       $severity = $wp_error->get_error_data( $code );
+                       foreach ( $wp_error->get_error_messages( $code ) as $error_message ) {
                                if ( 'message' == $severity )
                                if ( 'message' == $severity )
-                                       $messages .= '  ' . $error . "<br />\n";
+                                       $messages .= '  ' . $error_message . "<br />\n";
                                else
                                else
-                                       $errors .= '    ' . $error . "<br />\n";
+                                       $errors .= '    ' . $error_message . "<br />\n";
                        }
                }
                if ( ! empty( $errors ) ) {
                        }
                }
                if ( ! empty( $errors ) ) {
@@ -297,7 +298,7 @@ function retrieve_password() {
                return $errors;
        }
 
                return $errors;
        }
 
-       // redefining user_login ensures we return the right case in the email
+       // Redefining user_login ensures we return the right case in the email.
        $user_login = $user_data->user_login;
        $user_email = $user_data->user_email;
 
        $user_login = $user_data->user_login;
        $user_email = $user_data->user_email;
 
@@ -310,6 +311,7 @@ function retrieve_password() {
         * @param string $user_login The user login name.
         */
        do_action( 'retreive_password', $user_login );
         * @param string $user_login The user login name.
         */
        do_action( 'retreive_password', $user_login );
+
        /**
         * Fires before a new password is retrieved.
         *
        /**
         * Fires before a new password is retrieved.
         *
@@ -349,7 +351,7 @@ function retrieve_password() {
 
        // Now insert the key, hashed, into the DB.
        if ( empty( $wp_hasher ) ) {
 
        // Now insert the key, hashed, into the DB.
        if ( empty( $wp_hasher ) ) {
-               require_once ABSPATH . 'wp-includes/class-phpass.php';
+               require_once ABSPATH . WPINC . '/class-phpass.php';
                $wp_hasher = new PasswordHash( 8, true );
        }
        $hashed = $wp_hasher->HashPassword( $key );
                $wp_hasher = new PasswordHash( 8, true );
        }
        $hashed = $wp_hasher->HashPassword( $key );
@@ -365,8 +367,10 @@ function retrieve_password() {
        if ( is_multisite() )
                $blogname = $GLOBALS['current_site']->site_name;
        else
        if ( is_multisite() )
                $blogname = $GLOBALS['current_site']->site_name;
        else
-               // The blogname option is escaped with esc_html on the way into the database in sanitize_option
-               // we want to reverse this for the plain text arena of emails.
+               /*
+                * The blogname option is escaped with esc_html on the way into the database
+                * in sanitize_option we want to reverse this for the plain text arena of emails.
+                */
                $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
 
        $title = sprintf( __('[%s] Password Reset'), $blogname );
                $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
 
        $title = sprintf( __('[%s] Password Reset'), $blogname );
@@ -423,9 +427,10 @@ if ( defined( 'RELOCATE' ) && RELOCATE ) { // Move flag is set
 }
 
 //Set a cookie now to see if they are supported by the browser.
 }
 
 //Set a cookie now to see if they are supported by the browser.
-setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);
+$secure = ( 'https' === parse_url( site_url(), PHP_URL_SCHEME ) && 'https' === parse_url( home_url(), PHP_URL_SCHEME ) );
+setcookie( TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN, $secure );
 if ( SITECOOKIEPATH != COOKIEPATH )
 if ( SITECOOKIEPATH != COOKIEPATH )
-       setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN);
+       setcookie( TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN, $secure );
 
 /**
  * Fires when the login form is initialized.
 
 /**
  * Fires when the login form is initialized.
@@ -450,7 +455,7 @@ $interim_login = isset($_REQUEST['interim-login']);
 switch ($action) {
 
 case 'postpass' :
 switch ($action) {
 
 case 'postpass' :
-       require_once ABSPATH . 'wp-includes/class-phpass.php';
+       require_once ABSPATH . WPINC . '/class-phpass.php';
        $hasher = new PasswordHash( 8, true );
 
        /**
        $hasher = new PasswordHash( 8, true );
 
        /**
@@ -464,13 +469,12 @@ case 'postpass' :
         * @param int $expires The expiry time, as passed to setcookie().
         */
        $expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS );
         * @param int $expires The expiry time, as passed to setcookie().
         */
        $expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS );
-       setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH );
+       $secure = ( 'https' === parse_url( home_url(), PHP_URL_SCHEME ) );
+       setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH, COOKIE_DOMAIN, $secure );
 
        wp_safe_redirect( wp_get_referer() );
        exit();
 
 
        wp_safe_redirect( wp_get_referer() );
        exit();
 
-break;
-
 case 'logout' :
        check_admin_referer('log-out');
        wp_logout();
 case 'logout' :
        check_admin_referer('log-out');
        wp_logout();
@@ -479,8 +483,6 @@ case 'logout' :
        wp_safe_redirect( $redirect_to );
        exit();
 
        wp_safe_redirect( $redirect_to );
        exit();
 
-break;
-
 case 'lostpassword' :
 case 'retrievepassword' :
 
 case 'lostpassword' :
 case 'retrievepassword' :
 
@@ -523,7 +525,7 @@ case 'retrievepassword' :
 
 ?>
 
 
 ?>
 
-<form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
+<form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
        <p>
                <label for="user_login" ><?php _e('Username or E-mail:') ?><br />
                <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" /></label>
        <p>
                <label for="user_login" ><?php _e('Username or E-mail:') ?><br />
                <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" /></label>
@@ -544,13 +546,8 @@ case 'retrievepassword' :
 <?php
 if ( get_option( 'users_can_register' ) ) :
        $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
 <?php
 if ( get_option( 'users_can_register' ) ) :
        $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
-       /**
-        * Filter the registration URL below the login form.
-        *
-        * @since 1.5.0
-        *
-        * @param string $registration_url Registration URL.
-        */
+
+       /** This filter is documented in wp-includes/general-template.php */
        echo ' | ' . apply_filters( 'register', $registration_url );
 endif;
 ?>
        echo ' | ' . apply_filters( 'register', $registration_url );
 endif;
 ?>
@@ -616,7 +613,7 @@ case 'rp' :
        login_header(__('Reset Password'), '<p class="message reset-pass">' . __('Enter your new password below.') . '</p>', $errors );
 
 ?>
        login_header(__('Reset Password'), '<p class="message reset-pass">' . __('Enter your new password below.') . '</p>', $errors );
 
 ?>
-<form name="resetpassform" id="resetpassform" action="<?php echo esc_url( site_url( 'wp-login.php?action=resetpass', 'login_post' ) ); ?>" method="post" autocomplete="off">
+<form name="resetpassform" id="resetpassform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=resetpass', 'login_post' ) ); ?>" method="post" autocomplete="off">
        <input type="hidden" id="user_login" value="<?php echo esc_attr( $rp_login ); ?>" autocomplete="off" />
 
        <p>
        <input type="hidden" id="user_login" value="<?php echo esc_attr( $rp_login ); ?>" autocomplete="off" />
 
        <p>
@@ -651,7 +648,8 @@ case 'rp' :
 <?php
 if ( get_option( 'users_can_register' ) ) :
        $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
 <?php
 if ( get_option( 'users_can_register' ) ) :
        $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
-       /** This filter is documented in wp-login.php */
+
+       /** This filter is documented in wp-includes/general-template.php */
        echo ' | ' . apply_filters( 'register', $registration_url );
 endif;
 ?>
        echo ' | ' . apply_filters( 'register', $registration_url );
 endif;
 ?>
@@ -663,7 +661,6 @@ break;
 
 case 'register' :
        if ( is_multisite() ) {
 
 case 'register' :
        if ( is_multisite() ) {
-               $sign_up_url = network_site_url( 'wp-signup.php' );
                /**
                 * Filter the Multisite sign up URL.
                 *
                /**
                 * Filter the Multisite sign up URL.
                 *
@@ -671,7 +668,7 @@ case 'register' :
                 *
                 * @param string $sign_up_url The sign up URL.
                 */
                 *
                 * @param string $sign_up_url The sign up URL.
                 */
-               wp_redirect( apply_filters( 'wp_signup_location', $sign_up_url ) );
+               wp_redirect( apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) ) );
                exit;
        }
 
                exit;
        }
 
@@ -705,14 +702,14 @@ case 'register' :
        login_header(__('Registration Form'), '<p class="message register">' . __('Register For This Site') . '</p>', $errors);
 ?>
 
        login_header(__('Registration Form'), '<p class="message register">' . __('Register For This Site') . '</p>', $errors);
 ?>
 
-<form name="registerform" id="registerform" action="<?php echo esc_url( site_url('wp-login.php?action=register', 'login_post') ); ?>" method="post">
+<form name="registerform" id="registerform" action="<?php echo esc_url( site_url('wp-login.php?action=register', 'login_post') ); ?>" method="post" novalidate="novalidate">
        <p>
                <label for="user_login"><?php _e('Username') ?><br />
                <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(wp_unslash($user_login)); ?>" size="20" /></label>
        </p>
        <p>
                <label for="user_email"><?php _e('E-mail') ?><br />
        <p>
                <label for="user_login"><?php _e('Username') ?><br />
                <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(wp_unslash($user_login)); ?>" size="20" /></label>
        </p>
        <p>
                <label for="user_email"><?php _e('E-mail') ?><br />
-               <input type="text" name="user_email" id="user_email" class="input" value="<?php echo esc_attr(wp_unslash($user_email)); ?>" size="25" /></label>
+               <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" /></label>
        </p>
        <?php
        /**
        </p>
        <?php
        /**
@@ -766,12 +763,6 @@ default:
 
        $reauth = empty($_REQUEST['reauth']) ? false : true;
 
 
        $reauth = empty($_REQUEST['reauth']) ? false : true;
 
-       // If the user was redirected to a secure login form from a non-secure admin page, and secure login is required but secure admin is not, then don't use a secure
-       // cookie and redirect back to the referring non-secure admin page. This allows logins to always be POSTed over SSL while allowing the user to choose visiting
-       // the admin via http or https.
-       if ( !$secure_cookie && is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, 'https') ) && ( 0 === strpos($redirect_to, 'http') ) )
-               $secure_cookie = false;
-
        $user = wp_signon( '', $secure_cookie );
 
        if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {
        $user = wp_signon( '', $secure_cookie );
 
        if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {
@@ -847,7 +838,7 @@ default:
                elseif  ( isset($_GET['checkemail']) && 'registered' == $_GET['checkemail'] )
                        $errors->add('registered', __('Registration complete. Please check your e-mail.'), 'message');
                elseif ( strpos( $redirect_to, 'about.php?updated' ) )
                elseif  ( isset($_GET['checkemail']) && 'registered' == $_GET['checkemail'] )
                        $errors->add('registered', __('Registration complete. Please check your e-mail.'), 'message');
                elseif ( strpos( $redirect_to, 'about.php?updated' ) )
-                       $errors->add('updated', __( '<strong>You have successfully updated WordPress!</strong> Please log back in to experience the awesomeness.' ), 'message' );
+                       $errors->add('updated', __( '<strong>You have successfully updated WordPress!</strong> Please log back in to see what&#8217;s new.' ), 'message' );
        }
 
        /**
        }
 
        /**
@@ -908,7 +899,8 @@ default:
 <?php if ( ! isset( $_GET['checkemail'] ) || ! in_array( $_GET['checkemail'], array( 'confirm', 'newpass' ) ) ) :
        if ( get_option( 'users_can_register' ) ) :
                $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
 <?php if ( ! isset( $_GET['checkemail'] ) || ! in_array( $_GET['checkemail'], array( 'confirm', 'newpass' ) ) ) :
        if ( get_option( 'users_can_register' ) ) :
                $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
-               /** This filter is documented in wp-login.php */
+
+               /** This filter is documented in wp-includes/general-template.php */
                echo apply_filters( 'register', $registration_url ) . ' | ';
        endif;
        ?>
                echo apply_filters( 'register', $registration_url ) . ' | ';
        endif;
        ?>
@@ -920,7 +912,7 @@ default:
 <script type="text/javascript">
 function wp_attempt_focus(){
 setTimeout( function(){ try{
 <script type="text/javascript">
 function wp_attempt_focus(){
 setTimeout( function(){ try{
-<?php if ( $user_login || $interim_login ) { ?>
+<?php if ( $user_login ) { ?>
 d = document.getElementById('user_pass');
 d.value = '';
 <?php } else { ?>
 d = document.getElementById('user_pass');
 d.value = '';
 <?php } else { ?>
index 550c28cac5793c91bc2004bbc4a40508f53a0012..6775de8a2764364feacfdf72538153a049ad0952 100644 (file)
@@ -68,7 +68,7 @@ for ( $i = 1; $i <= $count; $i++ ) {
        $author_found = false;
        $dmonths = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
        foreach ($message as $line) {
        $author_found = false;
        $dmonths = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
        foreach ($message as $line) {
-               // body signal
+               // Body signal.
                if ( strlen($line) < 3 )
                        $bodysignal = true;
                if ( $bodysignal ) {
                if ( strlen($line) < 3 )
                        $bodysignal = true;
                if ( $bodysignal ) {
@@ -108,8 +108,10 @@ for ( $i = 1; $i <= $count; $i++ ) {
                                $subject = $subject[0];
                        }
 
                                $subject = $subject[0];
                        }
 
-                       // Set the author using the email address (From or Reply-To, the last used)
-                       // otherwise use the site admin
+                       /*
+                        * Set the author using the email address (From or Reply-To, the last used)
+                        * otherwise use the site admin.
+                        */
                        if ( ! $author_found && preg_match( '/^(From|Reply-To): /', $line ) ) {
                                if ( preg_match('|[a-z0-9_.-]+@[a-z0-9_.-]+(?!.*<)|i', $line, $matches) )
                                        $author = $matches[0];
                        if ( ! $author_found && preg_match( '/^(From|Reply-To): /', $line ) ) {
                                if ( preg_match('|[a-z0-9_.-]+@[a-z0-9_.-]+(?!.*<)|i', $line, $matches) )
                                        $author = $matches[0];
@@ -171,7 +173,8 @@ for ( $i = 1; $i <= $count; $i++ ) {
        if ( $content_type == 'multipart/alternative' ) {
                $content = explode('--'.$boundary, $content);
                $content = $content[2];
        if ( $content_type == 'multipart/alternative' ) {
                $content = explode('--'.$boundary, $content);
                $content = $content[2];
-               // match case-insensitive content-transfer-encoding
+
+               // Match case-insensitive content-transfer-encoding.
                if ( preg_match( '/Content-Transfer-Encoding: quoted-printable/i', $content, $delim) ) {
                        $content = explode($delim[0], $content);
                        $content = $content[1];
                if ( preg_match( '/Content-Transfer-Encoding: quoted-printable/i', $content, $delim) ) {
                        $content = explode($delim[0], $content);
                        $content = $content[1];
index 9f731950236c55811ab0e704cfa5ff231e987200..97959716b32e0e56a16d130962c5b1e8890234cd 100644 (file)
@@ -119,6 +119,7 @@ require( ABSPATH . WPINC . '/theme.php' );
 require( ABSPATH . WPINC . '/class-wp-theme.php' );
 require( ABSPATH . WPINC . '/template.php' );
 require( ABSPATH . WPINC . '/user.php' );
 require( ABSPATH . WPINC . '/class-wp-theme.php' );
 require( ABSPATH . WPINC . '/template.php' );
 require( ABSPATH . WPINC . '/user.php' );
+require( ABSPATH . WPINC . '/session.php' );
 require( ABSPATH . WPINC . '/meta.php' );
 require( ABSPATH . WPINC . '/general-template.php' );
 require( ABSPATH . WPINC . '/link-template.php' );
 require( ABSPATH . WPINC . '/meta.php' );
 require( ABSPATH . WPINC . '/general-template.php' );
 require( ABSPATH . WPINC . '/link-template.php' );
index d4e4a75404218a51cf29d4f6fb77c42f4bd83d57..94722e34c0bb87e7a6c8ddeb4b136582adbc3d94 100644 (file)
@@ -188,7 +188,7 @@ function show_user_form($user_name = '', $user_email = '', $errors = '') {
        <?php if ( $errmsg = $errors->get_error_message('user_email') ) { ?>
                <p class="error"><?php echo $errmsg ?></p>
        <?php } ?>
        <?php if ( $errmsg = $errors->get_error_message('user_email') ) { ?>
                <p class="error"><?php echo $errmsg ?></p>
        <?php } ?>
-       <input name="user_email" type="text" id="user_email" value="<?php  echo esc_attr($user_email) ?>" maxlength="200" /><br /><?php _e('We send your registration email to this address. (Double-check your email address before continuing.)') ?>
+       <input name="user_email" type="email" id="user_email" value="<?php  echo esc_attr($user_email) ?>" maxlength="200" /><br /><?php _e('We send your registration email to this address. (Double-check your email address before continuing.)') ?>
        <?php
        if ( $errmsg = $errors->get_error_message('generic') ) {
                echo '<p class="error">' . $errmsg . '</p>';
        <?php
        if ( $errmsg = $errors->get_error_message('generic') ) {
                echo '<p class="error">' . $errmsg . '</p>';
@@ -315,7 +315,13 @@ function validate_another_blog_signup() {
                die();
 
        $result = validate_blog_form();
                die();
 
        $result = validate_blog_form();
-       extract($result);
+
+       // Extracted values set/overwrite globals.
+       $domain = $result['domain'];
+       $path = $result['path'];
+       $blogname = $result['blogname'];
+       $blog_title = $result['blog_title'];
+       $errors = $result['errors'];
 
        if ( $errors->get_error_code() ) {
                signup_another_blog($blogname, $blog_title, $errors);
 
        if ( $errors->get_error_code() ) {
                signup_another_blog($blogname, $blog_title, $errors);
@@ -337,7 +343,7 @@ function validate_another_blog_signup() {
         *
         * @param array $blog_meta_defaults An array of default blog meta variables.
         */
         *
         * @param array $blog_meta_defaults An array of default blog meta variables.
         */
-       $meta = apply_filters( 'signup_create_blog_meta', $blog_meta_defaults );
+       $meta_defaults = apply_filters( 'signup_create_blog_meta', $blog_meta_defaults );
        /**
         * Filter the new default site meta variables.
         *
        /**
         * Filter the new default site meta variables.
         *
@@ -350,7 +356,7 @@ function validate_another_blog_signup() {
         *     @type int $blog_public Whether search engines should be discouraged from indexing the site. 1 for true, 0 for false.
         * }
         */
         *     @type int $blog_public Whether search engines should be discouraged from indexing the site. 1 for true, 0 for false.
         * }
         */
-       $meta = apply_filters( 'add_signup_meta', $meta );
+       $meta = apply_filters( 'add_signup_meta', $meta_defaults );
 
        wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, $wpdb->siteid );
        confirm_another_blog_signup($domain, $path, $blog_title, $current_user->user_login, $current_user->user_email, $meta);
 
        wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, $wpdb->siteid );
        confirm_another_blog_signup($domain, $path, $blog_title, $current_user->user_login, $current_user->user_email, $meta);
@@ -429,7 +435,7 @@ function signup_user( $user_name = '', $user_email = '', $errors = '' ) {
        ?>
 
        <h2><?php printf( __( 'Get your own %s account in seconds' ), get_current_site()->site_name ) ?></h2>
        ?>
 
        <h2><?php printf( __( 'Get your own %s account in seconds' ), get_current_site()->site_name ) ?></h2>
-       <form id="setupform" method="post" action="wp-signup.php">
+       <form id="setupform" method="post" action="wp-signup.php" novalidate="novalidate">
                <input type="hidden" name="stage" value="validate-user-signup" />
                <?php
                /** This action is documented in wp-signup.php */
                <input type="hidden" name="stage" value="validate-user-signup" />
                <?php
                /** This action is documented in wp-signup.php */
@@ -468,7 +474,9 @@ function signup_user( $user_name = '', $user_email = '', $errors = '' ) {
  */
 function validate_user_signup() {
        $result = validate_user_form();
  */
 function validate_user_signup() {
        $result = validate_user_form();
-       extract($result);
+       $user_name = $result['user_name'];
+       $user_email = $result['user_email'];
+       $errors = $result['errors'];
 
        if ( $errors->get_error_code() ) {
                signup_user($user_name, $user_email, $errors);
 
        if ( $errors->get_error_code() ) {
                signup_user($user_name, $user_email, $errors);
@@ -585,16 +593,22 @@ function signup_blog($user_name = '', $user_email = '', $blogname = '', $blog_ti
  */
 function validate_blog_signup() {
        // Re-validate user info.
  */
 function validate_blog_signup() {
        // Re-validate user info.
-       $result = wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
-       extract($result);
+       $user_result = wpmu_validate_user_signup( $_POST['user_name'], $_POST['user_email'] );
+       $user_name = $user_result['user_name'];
+       $user_email = $user_result['user_email'];
+       $user_errors = $user_result['errors'];
 
 
-       if ( $errors->get_error_code() ) {
-               signup_user($user_name, $user_email, $errors);
+       if ( $user_errors->get_error_code() ) {
+               signup_user( $user_name, $user_email, $user_errors );
                return false;
        }
 
                return false;
        }
 
-       $result = wpmu_validate_blog_signup($_POST['blogname'], $_POST['blog_title']);
-       extract($result);
+       $result = wpmu_validate_blog_signup( $_POST['blogname'], $_POST['blog_title'] );
+       $domain = $result['domain'];
+       $path = $result['path'];
+       $blogname = $result['blogname'];
+       $blog_title = $result['blog_title'];
+       $errors = $result['errors'];
 
        if ( $errors->get_error_code() ) {
                signup_blog($user_name, $user_email, $blogname, $blog_title, $errors);
 
        if ( $errors->get_error_code() ) {
                signup_blog($user_name, $user_email, $blogname, $blog_title, $errors);
@@ -602,10 +616,10 @@ function validate_blog_signup() {
        }
 
        $public = (int) $_POST['blog_public'];
        }
 
        $public = (int) $_POST['blog_public'];
-       $meta = array ('lang_id' => 1, 'public' => $public);
+       $signup_meta = array ('lang_id' => 1, 'public' => $public);
 
        /** This filter is documented in wp-signup.php */
 
        /** This filter is documented in wp-signup.php */
-       $meta = apply_filters( 'add_signup_meta', $meta );
+       $meta = apply_filters( 'add_signup_meta', $signup_meta );
 
        wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, $meta);
        confirm_blog_signup($domain, $path, $blog_title, $user_name, $user_email, $meta);
 
        wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, $meta);
        confirm_blog_signup($domain, $path, $blog_title, $user_name, $user_email, $meta);