YouTube - Version 11.7

Version Description

Download this release

Release Info

Developer embedplus
Plugin Icon 128x128 YouTube
Version 11.7
Comparing to
See all releases

Code changes from version 11.6 to 11.7

images/btn_embedplusstats.png DELETED
Binary file
images/btn_embedplusstatsoff.png DELETED
Binary file
images/icon-playlist-gallery.jpg ADDED
Binary file
images/icon-playlist-self.jpg ADDED
Binary file
images/ythealth.png ADDED
Binary file
readme.txt CHANGED
@@ -4,10 +4,10 @@ Plugin Name: YouTube Embed
4
  Tags: youtube live, live stream, youtube channel, video gallery, youtube galleries, channel gallery, gallery, playlist gallery, youtube gallery, accessibility, analytics, api, blocked youtube videos, cache, caching, channel, deleted youtube videos, effects, embed youtube, embedding youtube, featured image, get_locale, i18n, internationalization, lazy, lazy load, locale, localization, mute, no-cookie, oembed, page speed, playlist, playlists, plugin, Reddit, responsive, seo, short code, shortcode, ssl, subtitles, thumbnail, thumbnail image, thumbnails, tinymce, video, video analytics, video plugin, video seo, video shortcode, video thumbnails, view count, volume, widget, wordpress security, wordpress youtube embed, youtube, youtube api, youtube analytics, youtube embed, youtube impressions, youtube player, youtube playlist, youtube plugin, youtube shortcode, youtube snippets, youtube takedowns, youtube thumbnails, youtube plugin migration
5
  Requires at least: 3.6.1
6
  Tested up to: 4.7
7
- Stable tag: 11.6
8
  License: GPLv3 or later
9
 
10
- YouTube Embed WordPress Plugin. Embed a responsive video, YouTube channel gallery, or playlist gallery. Add thumbnails, analytics, caching...
11
 
12
  == Description ==
13
 
@@ -32,27 +32,14 @@ YouTube Embed WordPress Plugin. Embed a responsive video, YouTube channel galler
32
  * Default HTML5 YouTube player support
33
  * YouTube plugin migration support
34
 
35
- You can even extend the plugin with PRO features like:
36
-
37
- * Alternate playlist and channel gallery styling (list layouts and slider layouts, popup/lightbox player, and more)
38
- * Caching to avoid making frequent requests to YouTube.com and speed up your page loads
39
- * Automatic video thumbnail images: each post or page that contains at least one video will have the thumbnail of its first video serve as its featured image
40
- * [Lazy loading YouTube embeds >>](http://www.embedplus.com/add-special-effects-to-youtube-embeds-in-wordpress.aspx) with eye-catching effects and animations
41
- * Automatic tagging for video SEO
42
- * Automatic Open Graph tagging for Facebook
43
- * Deleted video alerts (i.e., did Google remove or take down videos I previously embedded?)
44
- * Mobile compatibility checking (i.e., see if your embeds have restrictions that can block your site's mobile visitors from viewing)
45
- * Alerts when visitors from different countries are blocked from viewing your embeds
46
- * And more features and analytics...
47
-
48
  **Click the Download button to start exploring now, or take a look at some details below.**
49
 
50
  This plugin helps you easily manage the growing complexity of YouTube embedding. It provides a spectrum of basic and advanced features of the YouTube embedded player and will have you posting videos in seconds after installing it. **All you have to do is simply paste an unformatted YouTube link on its own line (shortcodes are also supported).** Your YouTube embeds will then show up when you preview or publish the post.
51
 
52
- The settings page has plenty of default options that you can automatically apply to all your embedded YouTube videos. **Check out the free options below:**
53
 
54
- * Make your videos responsive so that they dynamically fit in all screen sizes (smart phone, PC and tablet)
55
- * Modest branding - hide YouTube logo while playing
56
  * Turn on/off all annotations by default
57
  * Automatically center all your videos
58
  * Automatically start playing your videos
@@ -85,16 +72,30 @@ You can also start and end each individual video at particular times. Like the a
85
  * start - Sets the time (in seconds) to start the video. Example: `"http://www.youtube.com/watch?v=quwebVjAEJA&width=500&height=350&start=20"`
86
  * end - Sets the time (in seconds) to stop the video. Example: `"http://www.youtube.com/watch?v=quwebVjAEJA&width=500&height=350&end=100"`
87
 
88
- **About the PRO version:**
89
-
90
- Beyond the above features, you have the option of upgrading to PRO to add enhanced features like the full visual embedding wizard (so you can avoid memorizing codes), gallery styling for channel and playlist embeds, priority support, and security/performance. As a PRO user, you also get access to our deleted video alerts to help avoid showing embedded videos that are later removed from YouTube.com. You even get an embedder-centric analytics dashboard that adds view tracking to each of your embeds so that you can answers questions like:
91
-
92
- * How much are your visitors actually watching the videos you post?
93
- * How does the view activity on your site compare to other sites like it?
94
- * What and when are your best and worst performing YouTube embeds?
95
- * How much do the producers of the YouTube videos you embed rely on **your site**, versus other sites and YouTube.com, for views?
96
- * Are you embedding videos that are blocked in other countries?
97
- * Have your visitors tried to view a page and/or gallery on your site with deleted/unavailable videos?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
 
99
  See more details after installing. Enjoy!
100
 
@@ -150,6 +151,11 @@ You can also start and end each individual video at particular times. Like the a
150
 
151
  == Changelog ==
152
 
 
 
 
 
 
153
  = WordPress YouTube Embed 11.6 =
154
  * Fixed issue where Free version had some remnants of Pro analytics codebase supporting features here: https://www.embedplus.com/dashboard/easy-youtube-analytics-preview.aspx?platform=sim
155
  * New feature: live streaming from a channel
4
  Tags: youtube live, live stream, youtube channel, video gallery, youtube galleries, channel gallery, gallery, playlist gallery, youtube gallery, accessibility, analytics, api, blocked youtube videos, cache, caching, channel, deleted youtube videos, effects, embed youtube, embedding youtube, featured image, get_locale, i18n, internationalization, lazy, lazy load, locale, localization, mute, no-cookie, oembed, page speed, playlist, playlists, plugin, Reddit, responsive, seo, short code, shortcode, ssl, subtitles, thumbnail, thumbnail image, thumbnails, tinymce, video, video analytics, video plugin, video seo, video shortcode, video thumbnails, view count, volume, widget, wordpress security, wordpress youtube embed, youtube, youtube api, youtube analytics, youtube embed, youtube impressions, youtube player, youtube playlist, youtube plugin, youtube shortcode, youtube snippets, youtube takedowns, youtube thumbnails, youtube plugin migration
5
  Requires at least: 3.6.1
6
  Tested up to: 4.7
7
+ Stable tag: 11.7
8
  License: GPLv3 or later
9
 
10
+ YouTube Embed WordPress Plugin. Embed a responsive video, YouTube channel gallery, playlist gallery, or live YouTube.com stream
11
 
12
  == Description ==
13
 
32
  * Default HTML5 YouTube player support
33
  * YouTube plugin migration support
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  **Click the Download button to start exploring now, or take a look at some details below.**
36
 
37
  This plugin helps you easily manage the growing complexity of YouTube embedding. It provides a spectrum of basic and advanced features of the YouTube embedded player and will have you posting videos in seconds after installing it. **All you have to do is simply paste an unformatted YouTube link on its own line (shortcodes are also supported).** Your YouTube embeds will then show up when you preview or publish the post.
38
 
39
+ The settings page has plenty of default options that you can automatically apply to all your embedded YouTube videos:
40
 
41
+ * Make your videos, galleries, and live streams responsive so that they dynamically fit in all screen sizes (smart phone, PC and tablet)
42
+ * Modest branding - hide YouTube logo while playing (note that the YouTube watermark is shown instead)
43
  * Turn on/off all annotations by default
44
  * Automatically center all your videos
45
  * Automatically start playing your videos
72
  * start - Sets the time (in seconds) to start the video. Example: `"http://www.youtube.com/watch?v=quwebVjAEJA&width=500&height=350&start=20"`
73
  * end - Sets the time (in seconds) to stop the video. Example: `"http://www.youtube.com/watch?v=quwebVjAEJA&width=500&height=350&end=100"`
74
 
75
+ > **About [YouTube PRO](https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx)**
76
+ >
77
+ > If you like this free version, you may even upgrade to a separate Pro plugin with features like:
78
+ >
79
+ > * Full visual embedding wizard
80
+ > * Alternate playlist and channel gallery styling (list layouts and slider layouts, popup/lightbox player, and more)
81
+ > * Caching to avoid making frequent requests to YouTube.com and speed up your page loads
82
+ > * Automatic video thumbnail images: each post or page that contains at least one video will have the thumbnail of its first video serve as its featured image
83
+ > * [Lazy loading YouTube embeds >>](http://www.embedplus.com/add-special-effects-to-youtube-embeds-in-wordpress.aspx) with eye-catching effects and animations
84
+ > * Automatic tagging for video SEO
85
+ > * Automatic Open Graph tagging for Facebook
86
+ > * Deleted video alerts (i.e., did Google remove or take down videos I previously embedded?)
87
+ > * Mobile compatibility checking (i.e., see if your embeds have restrictions that can block your site's mobile visitors from viewing)
88
+ > * Alerts when visitors from different countries are blocked from viewing your embeds
89
+ > * Priority support
90
+ >
91
+ > You also get access to our deleted video alerts to help avoid showing embedded videos that are later removed from YouTube.com. You even get an embedder-centric [analytics dashboard](https://www.embedplus.com/dashboard/easy-youtube-analytics-preview.aspx?platform=sim) that adds view tracking to each of your embeds so that you can answers questions like:
92
+ >
93
+ > * How much are your visitors actually watching the videos you post?
94
+ > * How does the view activity on your site compare to other sites like it?
95
+ > * What and when are your best and worst performing YouTube embeds?
96
+ > * How much do the producers of the YouTube videos you embed rely on **your site**, versus other sites and YouTube.com, for views?
97
+ > * Are you embedding videos that are blocked in other countries?
98
+ > * Have your visitors tried to view a page and/or gallery on your site with deleted/unavailable videos?
99
 
100
  See more details after installing. Enjoy!
101
 
151
 
152
  == Changelog ==
153
 
154
+ = WordPress YouTube Embed 11.7 =
155
+ * Separate Free and Pro codebases
156
+ * Remove deprecated features
157
+ * Clean up code
158
+
159
  = WordPress YouTube Embed 11.6 =
160
  * Fixed issue where Free version had some remnants of Pro analytics codebase supporting features here: https://www.embedplus.com/dashboard/easy-youtube-analytics-preview.aspx?platform=sim
161
  * New feature: live streaming from a channel
scripts/btn_embedplusstats.png DELETED
Binary file
scripts/btn_embedplusstatsoff.png DELETED
Binary file
scripts/embdyn.js DELETED
@@ -1,18 +0,0 @@
1
- !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){function i(){var b,c,d={height:f.innerHeight,width:f.innerWidth};return d.height||(b=e.compatMode,(b||!a.support.boxModel)&&(c="CSS1Compat"===b?g:e.body,d={height:c.clientHeight,width:c.clientWidth})),d}function j(){return{top:f.pageYOffset||g.scrollTop||e.body.scrollTop,left:f.pageXOffset||g.scrollLeft||e.body.scrollLeft}}function k(){if(b.length){var e=0,f=a.map(b,function(a){var b=a.data.selector,c=a.$element;return b?c.find(b):c});for(c=c||i(),d=d||j();e<b.length;e++)if(a.contains(g,f[e][0])){var h=a(f[e]),k={height:h[0].offsetHeight,width:h[0].offsetWidth},l=h.offset(),m=h.data("inview");if(!d||!c)return;l.top+k.height>d.top&&l.top<d.top+c.height&&l.left+k.width>d.left&&l.left<d.left+c.width?m||h.data("inview",!0).trigger("inview",[!0]):m&&h.data("inview",!1).trigger("inview",[!1])}}}var c,d,h,b=[],e=document,f=window,g=e.documentElement;a.event.special.inview={add:function(c){b.push({data:c,$element:a(this),element:this}),!h&&b.length&&(h=setInterval(k,250))},remove:function(a){for(var c=0;c<b.length;c++){var d=b[c];if(d.element===this&&d.data.guid===a.guid){b.splice(c,1);break}}b.length||(clearInterval(h),h=null)}},a(f).on("scroll resize scrollstop",function(){c=d=null}),!g.addEventListener&&g.attachEvent&&g.attachEvent("onfocusin",function(){d=null})});
2
-
3
- (function($){
4
- $(window).on('load._EPYT_', function () {
5
- $('iframe[data-ep-src]').one('inview', function(event, isInView, visiblePartX, visiblePartY) {
6
- if (isInView) {
7
- var $vid = $(this);
8
- $vid.attr('src', $vid.attr('data-ep-src'));
9
- $vid.removeAttr('data-ep-src');
10
- _EPADashboard_.setupevents(this.id);
11
- setTimeout(function(){
12
- $vid.addClass('animated ' + $vid.attr('data-ep-a'));
13
- }, 1);
14
- }
15
- });
16
- });
17
- })(window.jQuery || window.Zepto || window.$);
18
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/embdyn.min.css DELETED
@@ -1 +0,0 @@
1
- @charset "UTF-8"; .animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,100%,20%,53%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755,.050,.855,.060);transition-timing-function:cubic-bezier(0.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}100%{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{0%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}100%{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}100%{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}100%{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}100%{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}100%{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{0%,100%,60%,75%,90%{-webkit-transition-timing-function:cubic-bezier(0.215,.61,.355,1);transition-timing-function:cubic-bezier(0.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}100%{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.55,.055,.675,.19);animation-timing-function:cubic-bezier(0.55,.055,.675,.19)}100%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,.885,.32,1);animation-timing-function:cubic-bezier(0.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInDown{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translateX(100%);transform:translateX(100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight{0%{-webkit-transform:translateX(100%);transform:translateX(100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(100%);transform:translateX(100%)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}
 
scripts/embdyn.min.js DELETED
@@ -1,4 +0,0 @@
1
- !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){function q(){var e,d,b={height:l.innerHeight,width:l.innerWidth};return b.height||(e=m.compatMode,(e||!a.support.boxModel)&&(d="CSS1Compat"===e?h:m.body,b={height:d.clientHeight,width:d.clientWidth})),b}function n(){if(g.length){var e=0,d=a.map(g,function(a){var b=a.data.selector;a=a.$element;return b?a.find(b):a});k=k||q();for(f=f||{top:l.pageYOffset||
2
- h.scrollTop||m.body.scrollTop,left:l.pageXOffset||h.scrollLeft||m.body.scrollLeft};e<g.length;e++)if(a.contains(h,d[e][0])){var b=a(d[e]),c=b[0].offsetHeight,n=b[0].offsetWidth,p=b.offset(),r=b.data("inview");if(!f||!k)break;p.top+c>f.top&&p.top<f.top+k.height&&p.left+n>f.left&&p.left<f.left+k.width?r||b.data("inview",!0).trigger("inview",[!0]):r&&b.data("inview",!1).trigger("inview",[!1])}}}var k,f,c,g=[],m=document,l=window,h=m.documentElement;a.event.special.inview={add:function(e){g.push({data:e,
3
- $element:a(this),element:this});!c&&g.length&&(c=setInterval(n,250))},remove:function(a){for(var d=0;d<g.length;d++){var b=g[d];if(b.element===this&&b.data.guid===a.guid){g.splice(d,1);break}}g.length||(clearInterval(c),c=null)}};a(l).on("scroll resize scrollstop",function(){k=f=null});!h.addEventListener&&h.attachEvent&&h.attachEvent("onfocusin",function(){f=null})});
4
- (function(a){a(window).on("load._EPYT_",function(){a("iframe[data-ep-src]").one("inview",function(q,n,k,f){if(n){var c=a(this);c.attr("src",c.attr("data-ep-src"));c.removeAttr("data-ep-src");_EPADashboard_.setupevents(this.id);setTimeout(function(){c.addClass("animated "+c.attr("data-ep-a"))},1)}})})})(window.jQuery||window.Zepto||window.$);
 
 
 
 
scripts/embedplus_mce.css CHANGED
@@ -20,21 +20,6 @@
20
  }
21
 
22
 
23
-
24
-
25
- .wp_themeSkin span.mce_embedplusstats, span.mce_embedplusstats,
26
- .wp_themeSkin span.mce_embedplusstats_youtubeprefs, span.mce_embedplusstats_youtubeprefs
27
-
28
- {
29
- background: transparent url("../images/btn_embedplusstatsoff.png") no-repeat scroll center center !important;
30
- }
31
-
32
- .wp_themeSkin span.mce_embedplusstats:hover, span.mce_embedplusstats:hover,
33
- .wp_themeSkin span.mce_embedplusstats_youtubeprefs:hover, span.mce_embedplusstats_youtubeprefs:hover
34
- {
35
- background-image: url("../images/btn_embedplusstats.png") !important;
36
- }
37
-
38
  /********** media button */
39
 
40
  .wp-core-ui a.ytprefs_media_link span, a.ytprefs_media_link span, #media-buttons a.ytprefs_media_link span
20
  }
21
 
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  /********** media button */
24
 
25
  .wp-core-ui a.ytprefs_media_link span, a.ytprefs_media_link span, #media-buttons a.ytprefs_media_link span
scripts/embedplus_mce.js DELETED
@@ -1,54 +0,0 @@
1
- (function() {
2
- var is_epy_pro = (epprokey && epprokey.length > 0);
3
- tinymce.create('tinymce.plugins.Embedpluswiz_youtubeprefs', {
4
- init : function(ed, url) {
5
- var plep = new Image();
6
- plep.src = url+'/../images/wizbutton.png';
7
- ed.addButton('embedpluswiz_youtubeprefs', {
8
- title : is_epy_pro ? 'Visual YouTube Wizard - An easier embedding option' : "YouTube Settings Shortcut (Opens new tab)",
9
- onclick : function(ev) {
10
-
11
- if (is_epy_pro)
12
- {
13
- modalw = Math.round(jQuery(window).width() *.9);
14
- modalh = Math.round(jQuery(window).height() *.8);
15
- ed.windowManager.open({
16
- title : "Visual YouTube Wizard - An easier embedding option",
17
- file : epbasesite + '/wpembedcode-simple.aspx?blogwidth=' + epblogwidth + '&domain=' + escape(window.location.toString()) + '&prokey=' + escape(epprokey) + '&myytdefaults=' + escape(myytdefaults),
18
- width : 950,
19
- height : modalh,
20
- inline : true,
21
- resizable: true,
22
- scrollbars: true
23
- }, {
24
- plugin_url : url, // Plugin absolute URL
25
- some_custom_arg : '' // Custom argument
26
- });
27
- }
28
- else
29
- {
30
- window.open(eppluginadminurl);
31
- }
32
-
33
-
34
-
35
- }
36
- });
37
- },
38
- createControl : function(n, cm) {
39
- return null;
40
- },
41
- getInfo : function() {
42
- return {
43
- longname : "Visual YouTube Wizard - An easier embedding option",
44
- author : 'EmbedPlus',
45
- authorurl : 'http://www.embedplus.com/',
46
- infourl : 'http://www.embedplus.com/',
47
- version : epversion
48
- };
49
- }
50
- });
51
- tinymce.PluginManager.add('embedpluswiz_youtubeprefs', tinymce.plugins.Embedpluswiz_youtubeprefs);
52
-
53
-
54
- })();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/embedplus_mce.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .wp_themeSkin span.mce_embedplus_youtubeprefs,span.mce_embedplus_youtubeprefs{background:url(../images/btnprefsoff.png) center center no-repeat!important}.wp_themeSkin span.mce_embedplus_youtubeprefs:hover,span.mce_embedplus_youtubeprefs:hover{background-image:url(../images/btnprefson.png)!important}.wp_themeSkin span.mce_embedplus_youtubeprefs_wiz,span.mce_embedplus_youtubeprefs_wiz{background:url(../images/btnwizoff.png) center center no-repeat!important}.wp_themeSkin span.mce_embedplus_youtubeprefs_wiz:hover,span.mce_embedplus_youtubeprefs_wiz:hover{background-image:url(../images/btnwizon.png)!important}#media-buttons a.ytprefs_media_link span,.wp-core-ui a.ytprefs_media_link span,a.ytprefs_media_link span{background:url(../images/btnwizoff.png) top left no-repeat;display:inline-block;height:16px;margin:2px 2px 0 0;vertical-align:top;width:16px}#media-buttons a.ytprefs_media_link:hover span,.wp-core-ui a.ytprefs_media_link:hover span,a.ytprefs_media_link:hover span{background-image:url(../images/btnwizon.png)}body #TB_overlay,body #TB_window{z-index:100000000}#media-buttons a.ytprefs_media_link,.wp-core-ui a.ytprefs_media_link,a.ytprefs_media_link{background-attachment:scroll;background-clip:border-box;background-color:#F3F3F3;background-image:linear-gradient(#FEFEFE,#F4F4F4);background-origin:padding-box;background-size:auto;border-radius:3px;border:1px solid #bbb;box-sizing:border-box;cursor:pointer;display:inline-block;margin:0 5px 0 0;padding:0 10px 1px .4em;text-decoration:none;text-shadow:#FFF 0 1px 0;white-space:nowrap;outline:#333 0}#dashboard_right_now .page-count a.ytprefs_glance_button:before,#dashboard_right_now .page-count span.ytprefs_glance_button:before{content:'';width:20px;height:20px;background:url(../images/youtubeicon16off.png) 0 1px no-repeat}#toplevel_page_youtube-my-preferences>ul>li.wp-first-item{display:none}#wpadminbar #wp-admin-bar-ytprefs-bar-cache>.ab-item:before{content:"\f311";top:2px}
scripts/embedplus_mce_prefs.js DELETED
@@ -1,30 +0,0 @@
1
- (function() {
2
-
3
- tinymce.create('tinymce.plugins.Embedplus_youtubeprefs', {
4
- init : function(ed, url) {
5
- var plep = new Image();
6
- plep.src = url+'/../images/btnprefsoff.png';
7
- ed.addButton('embedplus_youtubeprefs', {
8
- title : "YouTube Settings Page Shortcut (Opens new tab to leave this editor tab intact)",
9
- onclick : function(ev) {
10
- window.open(eppluginadminurl);
11
- }
12
- });
13
- },
14
- createControl : function(n, cm) {
15
- return null;
16
- },
17
- getInfo : function() {
18
- return {
19
- longname : "YouTube Settings",
20
- author : 'EmbedPlus',
21
- authorurl : 'http://www.embedplus.com/',
22
- infourl : 'http://www.embedplus.com/',
23
- version : epversion
24
- };
25
- }
26
- });
27
-
28
- tinymce.PluginManager.add('embedplus_youtubeprefs', tinymce.plugins.Embedplus_youtubeprefs);
29
-
30
- })();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/embedplus_mce_wiz.js DELETED
@@ -1,46 +0,0 @@
1
- (function() {
2
-
3
- tinymce.create('tinymce.plugins.Embedplus_youtubeprefs_wiz', {
4
- init : function(ed, url) {
5
- var plep = new Image();
6
- plep.src = url+'/../images/btnwizoff.png';
7
- ed.addButton('embedplus_youtubeprefs_wiz', {
8
- title : 'Visual YouTube Search Tool and Wizard - An easier embedding option',
9
- onclick : function(ev) {
10
-
11
- modalw = Math.round(jQuery(window).width() *.9);
12
- modalh = Math.round(jQuery(window).height() *.8);
13
- window.ytembedplus_wizard_window =
14
- ed.windowManager.open({
15
- title : "Visual YouTube Search Tool and Wizard - An easier embedding option",
16
- file : epbasesite + '/wpembedcode-simple-search.aspx?pluginversion=' + epversion + '&blogwidth=' + epblogwidth + '&domain=' + escape(window.location.toString()) + '&prokey=' + escape(epprokey) + '&myytdefaults=' + escape(myytdefaults),
17
- width : 950,
18
- height : modalh,
19
- inline : true,
20
- resizable: true,
21
- scrollbars: true
22
- }, {
23
- plugin_url : url, // Plugin absolute URL
24
- some_custom_arg : '' // Custom argument
25
- });
26
- }
27
- });
28
- },
29
- createControl : function(n, cm) {
30
- return null;
31
- },
32
- getInfo : function() {
33
- return {
34
- longname : "Visual YouTube Search Tool and Wizard - An easier embedding option",
35
- author : 'EmbedPlus',
36
- authorurl : 'http://www.embedplus.com/',
37
- infourl : 'http://www.embedplus.com/',
38
- version : epversion
39
- };
40
- }
41
- });
42
-
43
- tinymce.PluginManager.add('embedplus_youtubeprefs_wiz', tinymce.plugins.Embedplus_youtubeprefs_wiz);
44
-
45
-
46
- })();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/embedplusstats_mce.js DELETED
@@ -1,29 +0,0 @@
1
- (function() {
2
- tinymce.create('tinymce.plugins.Embedplusstats_youtubeprefs', {
3
- init : function(ed, url) {
4
- var plep = new Image();
5
- plep.src = url+'/../btn_embedplusstats.png';
6
- ed.addButton('embedplusstats_youtubeprefs', {
7
- title : 'How much are your visitors actually watching the videos you post? Click here to start using this popular feature from EmbedPlus Labs »',
8
- onclick : function(ev) {
9
- window.open(epbasesite + '/dashboard/pro-easy-video-analytics.aspx?ref=wysiwygbutton&prokey=' + epprokey + '&domain=' + escape(window.location.toString()), '_blank');
10
- }
11
- });
12
-
13
- },
14
- createControl : function(n, cm) {
15
- return null;
16
- },
17
- getInfo : function() {
18
- return {
19
- longname : "Embedplus Video Analytics Dashboard",
20
- author : 'EmbedPlus',
21
- authorurl : 'http://www.embedplus.com/',
22
- infourl : 'http://www.embedplus.com/',
23
- version : epversion
24
- };
25
- }
26
- });
27
- tinymce.PluginManager.add('embedplusstats_youtubeprefs', tinymce.plugins.Embedplusstats_youtubeprefs);
28
-
29
- })();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/jqueryfit.min.js DELETED
@@ -1,7 +0,0 @@
1
- /*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
2
- //@ sourceMappingURL=jquery.min.map
3
- */(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},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(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;
4
- return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.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))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(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}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.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)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.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+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===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]||st.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]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(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(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.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,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.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!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.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:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&&gt(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={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:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l)
5
- }b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.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(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,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"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
6
-
7
- epdofitvids(jQuery);
 
 
 
 
 
 
 
scripts/lity.css DELETED
@@ -1,194 +0,0 @@
1
- /*! Lity - v1.6.6 - 2016-04-22
2
- * http://sorgalla.com/lity/
3
- * Copyright (c) 2016 Jan Sorgalla; Licensed MIT */
4
- .lity {
5
- z-index: 9990;
6
- position: fixed;
7
- top: 0;
8
- right: 0;
9
- bottom: 0;
10
- left: 0;
11
- white-space: nowrap;
12
- background: #0b0b0b;
13
- background: rgba(0, 0, 0, 0.9);
14
- outline: none !important;
15
- opacity: 0;
16
- -webkit-transition: opacity 0.3s ease;
17
- -o-transition: opacity 0.3s ease;
18
- transition: opacity 0.3s ease;
19
- }
20
- .lity.lity-opened {
21
- opacity: 1;
22
- }
23
- .lity.lity-closed {
24
- opacity: 0;
25
- }
26
- .lity * {
27
- -webkit-box-sizing: border-box;
28
- -moz-box-sizing: border-box;
29
- box-sizing: border-box;
30
- }
31
- .lity-wrap {
32
- z-index: 9990;
33
- position: fixed;
34
- top: 0;
35
- right: 0;
36
- bottom: 0;
37
- left: 0;
38
- text-align: center;
39
- outline: none !important;
40
- }
41
- .lity-wrap:before {
42
- content: '';
43
- display: inline-block;
44
- height: 100%;
45
- vertical-align: middle;
46
- margin-right: -0.25em;
47
- }
48
- .lity-loader {
49
- z-index: 9991;
50
- color: #fff;
51
- position: absolute;
52
- top: 50%;
53
- margin-top: -0.8em;
54
- width: 100%;
55
- text-align: center;
56
- font-size: 14px;
57
- font-family: Arial, Helvetica, sans-serif;
58
- opacity: 0;
59
- -webkit-transition: opacity 0.3s ease;
60
- -o-transition: opacity 0.3s ease;
61
- transition: opacity 0.3s ease;
62
- }
63
- .lity-loading .lity-loader {
64
- opacity: 1;
65
- }
66
- .lity-container {
67
- z-index: 9992;
68
- position: relative;
69
- text-align: left;
70
- vertical-align: middle;
71
- display: inline-block;
72
- white-space: normal;
73
- max-width: 100%;
74
- max-height: 100%;
75
- outline: none !important;
76
- }
77
- .lity-content {
78
- z-index: 9993;
79
- width: 100%;
80
- -webkit-transform: scale(1);
81
- -ms-transform: scale(1);
82
- -o-transform: scale(1);
83
- transform: scale(1);
84
- -webkit-transition: -webkit-transform 0.3s ease;
85
- -o-transition: -o-transform 0.3s ease;
86
- transition: transform 0.3s ease;
87
- }
88
- .lity-loading .lity-content,
89
- .lity-closed .lity-content {
90
- -webkit-transform: scale(0.8);
91
- -ms-transform: scale(0.8);
92
- -o-transform: scale(0.8);
93
- transform: scale(0.8);
94
- }
95
- .lity-content:after {
96
- content: '';
97
- position: absolute;
98
- left: 0;
99
- top: 0;
100
- bottom: 0;
101
- display: block;
102
- right: 0;
103
- width: auto;
104
- height: auto;
105
- z-index: -1;
106
- -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
107
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
108
- }
109
- .lity-close {
110
- z-index: 9994;
111
- width: 35px;
112
- height: 35px;
113
- position: fixed;
114
- right: 0;
115
- top: 0;
116
- -webkit-appearance: none;
117
- cursor: pointer;
118
- text-decoration: none;
119
- text-align: center;
120
- padding: 0;
121
- color: #fff;
122
- font-style: normal;
123
- font-size: 35px;
124
- font-family: Arial, Baskerville, monospace;
125
- line-height: 35px;
126
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
127
- border: 0;
128
- background: none;
129
- outline: none;
130
- -webkit-box-shadow: none;
131
- box-shadow: none;
132
- }
133
- .lity-close::-moz-focus-inner {
134
- border: 0;
135
- padding: 0;
136
- }
137
- .lity-close:hover,
138
- .lity-close:focus,
139
- .lity-close:active,
140
- .lity-close:visited {
141
- text-decoration: none;
142
- text-align: center;
143
- padding: 0;
144
- color: #fff;
145
- font-style: normal;
146
- font-size: 35px;
147
- font-family: Arial, Baskerville, monospace;
148
- line-height: 35px;
149
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
150
- border: 0;
151
- background: none;
152
- outline: none;
153
- -webkit-box-shadow: none;
154
- box-shadow: none;
155
- }
156
- .lity-close:active {
157
- top: 1px;
158
- }
159
- /* Image */
160
- .lity-image img {
161
- max-width: 100%;
162
- display: block;
163
- line-height: 0;
164
- border: 0;
165
- }
166
- /* iFrame */
167
- .lity-iframe .lity-container {
168
- width: 100%;
169
- max-width: 964px;
170
- }
171
- .lity-iframe-container {
172
- width: 100%;
173
- height: 0;
174
- padding-top: 56.25%;
175
- overflow: auto;
176
- pointer-events: auto;
177
- -webkit-transform: translateZ(0);
178
- transform: translateZ(0);
179
- -webkit-overflow-scrolling: touch;
180
- }
181
- .lity-iframe-container iframe {
182
- position: absolute;
183
- display: block;
184
- top: 0;
185
- left: 0;
186
- width: 100%;
187
- height: 100%;
188
- -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
189
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
190
- background: #000;
191
- }
192
- .lity-hide {
193
- display: none;
194
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/lity.js DELETED
@@ -1,437 +0,0 @@
1
- /*! Lity - v1.6.6 - 2016-04-22
2
- * http://sorgalla.com/lity/
3
- * Copyright (c) 2016 Jan Sorgalla; Licensed MIT */
4
- (function(window, factory) {
5
- if (typeof define === 'function' && define.amd) {
6
- define(['jquery'], function($) {
7
- return factory(window, $);
8
- });
9
- } else if (typeof module === 'object' && typeof module.exports === 'object') {
10
- module.exports = factory(window, require('jquery'));
11
- } else {
12
- window.lity = factory(window, window.jQuery || window.Zepto);
13
- }
14
- }(typeof window !== "undefined" ? window : this, function(window, $) {
15
- 'use strict';
16
-
17
- var document = window.document;
18
-
19
- var _win = $(window);
20
- var _html = $('html');
21
- var _instanceCount = 0;
22
-
23
- var _imageRegexp = /(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i;
24
- var _youtubeRegex = /(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i;
25
- var _vimeoRegex = /(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/;
26
- var _googlemapsRegex = /((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i;
27
-
28
- var _defaultHandlers = {
29
- image: imageHandler,
30
- inline: inlineHandler,
31
- iframe: iframeHandler
32
- };
33
-
34
- var _defaultOptions = {
35
- esc: true,
36
- handler: null,
37
- template: '<div class="lity" tabindex="-1"><div class="lity-wrap" data-lity-close><div class="lity-loader">Loading...</div><div class="lity-container"><div class="lity-content"></div><button class="lity-close" type="button" title="Close (Esc)" data-lity-close>×</button></div></div></div>'
38
- };
39
-
40
- function globalToggle() {
41
- _html[_instanceCount > 0 ? 'addClass' : 'removeClass']('lity-active');
42
- }
43
-
44
- var transitionEndEvent = (function() {
45
- var el = document.createElement('div');
46
-
47
- var transEndEventNames = {
48
- WebkitTransition: 'webkitTransitionEnd',
49
- MozTransition: 'transitionend',
50
- OTransition: 'oTransitionEnd otransitionend',
51
- transition: 'transitionend'
52
- };
53
-
54
- for (var name in transEndEventNames) {
55
- if (el.style[name] !== undefined) {
56
- return transEndEventNames[name];
57
- }
58
- }
59
-
60
- return false;
61
- })();
62
-
63
- function transitionEnd(element) {
64
- var deferred = $.Deferred();
65
-
66
- if (!transitionEndEvent) {
67
- deferred.resolve();
68
- } else {
69
- element.one(transitionEndEvent, deferred.resolve);
70
- setTimeout(deferred.resolve, 500);
71
- }
72
-
73
- return deferred.promise();
74
- }
75
-
76
- function settings(currSettings, key, value) {
77
- if (arguments.length === 1) {
78
- return $.extend({}, currSettings);
79
- }
80
-
81
- if (typeof key === 'string') {
82
- if (typeof value === 'undefined') {
83
- return typeof currSettings[key] === 'undefined' ?
84
- null :
85
- currSettings[key];
86
- }
87
- currSettings[key] = value;
88
- } else {
89
- $.extend(currSettings, key);
90
- }
91
-
92
- return this;
93
- }
94
-
95
- function parseQueryParams(params){
96
- var pairs = decodeURI(params).split('&');
97
- var obj = {}, p;
98
-
99
- for (var i = 0, n = pairs.length; i < n; i++) {
100
- if (!pairs[i]) {
101
- continue;
102
- }
103
-
104
- p = pairs[i].split('=');
105
- obj[p[0]] = p[1];
106
- }
107
-
108
- return obj;
109
- }
110
-
111
- function appendQueryParams(url, params) {
112
- return url + (url.indexOf('?') > -1 ? '&' : '?') + $.param(params);
113
- }
114
-
115
- function error(msg) {
116
- return $('<span class="lity-error"/>').append(msg);
117
- }
118
-
119
- function imageHandler(target) {
120
- if (!_imageRegexp.test(target)) {
121
- return false;
122
- }
123
-
124
- var img = $('<img src="' + target + '">');
125
- var deferred = $.Deferred();
126
- var failed = function() {
127
- deferred.reject(error('Failed loading image'));
128
- };
129
-
130
- img
131
- .on('load', function() {
132
- if (this.naturalWidth === 0) {
133
- return failed();
134
- }
135
-
136
- deferred.resolve(img);
137
- })
138
- .on('error', failed)
139
- ;
140
-
141
- return deferred.promise();
142
- }
143
-
144
- function inlineHandler(target) {
145
- var el;
146
-
147
- try {
148
- el = $(target);
149
- } catch (e) {
150
- return false;
151
- }
152
-
153
- if (!el.length) {
154
- return false;
155
- }
156
-
157
- var placeholder = $('<span style="display:none !important" class="lity-inline-placeholder"/>');
158
-
159
- return el
160
- .after(placeholder)
161
- .on('lity:ready', function(e, instance) {
162
- instance.one('lity:remove', function() {
163
- placeholder
164
- .before(el.addClass('lity-hide'))
165
- .remove()
166
- ;
167
- });
168
- })
169
- ;
170
- }
171
-
172
- function iframeHandler(target) {
173
- var matches, url = target;
174
-
175
- matches = _youtubeRegex.exec(target);
176
-
177
- if (matches) {
178
- url = appendQueryParams(
179
- 'https://www.youtube' + (matches[2] || '') + '.com/embed/' + matches[4],
180
- $.extend(
181
- {
182
- autoplay: 1
183
- },
184
- parseQueryParams(matches[5] || '')
185
- )
186
- );
187
- }
188
-
189
- matches = _vimeoRegex.exec(target);
190
-
191
- if (matches) {
192
- url = appendQueryParams(
193
- 'https://player.vimeo.com/video/' + matches[3],
194
- $.extend(
195
- {
196
- autoplay: 1
197
- },
198
- parseQueryParams(matches[4] || '')
199
- )
200
- );
201
- }
202
-
203
- matches = _googlemapsRegex.exec(target);
204
-
205
- if (matches) {
206
- url = appendQueryParams(
207
- 'https://www.google.' + matches[3] + '/maps?' + matches[6],
208
- {
209
- output: matches[6].indexOf('layer=c') > 0 ? 'svembed' : 'embed'
210
- }
211
- );
212
- }
213
-
214
- return '<div class="lity-iframe-container"><iframe frameborder="0" allowfullscreen src="' + url + '"></iframe></div>';
215
- }
216
-
217
- function lity(options) {
218
- var _options = {},
219
- _handlers = {},
220
- _instance,
221
- _content,
222
- _ready = $.Deferred().resolve();
223
-
224
- function keyup(e) {
225
- if (e.keyCode === 27) {
226
- close();
227
- }
228
- }
229
-
230
- function resize() {
231
- var height = document.documentElement.clientHeight ? document.documentElement.clientHeight : Math.round(_win.height());
232
-
233
- _content
234
- .css('max-height', Math.floor(height) + 'px')
235
- .trigger('lity:resize', [_instance])
236
- ;
237
- }
238
-
239
- function ready(el, content) {
240
- if (!_instance) {
241
- return;
242
- }
243
-
244
- _content = $(content);
245
-
246
- _win.on('resize', resize);
247
- resize();
248
-
249
- _instance
250
- .find('.lity-loader')
251
- .each(function() {
252
- var el = $(this);
253
- transitionEnd(el).always(function() {
254
- el.remove();
255
- });
256
- })
257
- ;
258
-
259
- _instance
260
- .removeClass('lity-loading')
261
- .find('.lity-content')
262
- .empty()
263
- .append(_content)
264
- ;
265
-
266
- _content
267
- .removeClass('lity-hide')
268
- .trigger('lity:ready', [_instance, el])
269
- ;
270
-
271
- _ready.resolve();
272
- }
273
-
274
- function init(handler, content, options, el) {
275
- _ready = $.Deferred();
276
-
277
- _instanceCount++;
278
- globalToggle();
279
-
280
- _instance = $(options.template)
281
- .addClass('lity-loading')
282
- .appendTo('body');
283
-
284
- if (!!options.esc) {
285
- _win.on('keyup', keyup);
286
- }
287
-
288
- setTimeout(function() {
289
- _instance
290
- .addClass('lity-opened lity-' + handler)
291
- .on('click', '[data-lity-close]', function(e) {
292
- if ($(e.target).is('[data-lity-close]')) {
293
- close();
294
- }
295
- })
296
- .trigger('lity:open', [_instance, el])
297
- ;
298
-
299
- $.when(content).always($.proxy(ready, null, el));
300
- }, 0);
301
- }
302
-
303
- function open(target, options, el) {
304
- var handler, content, handlers = $.extend({}, _defaultHandlers, _handlers);
305
-
306
- options = $.extend(
307
- {},
308
- _defaultOptions,
309
- _options,
310
- options
311
- );
312
-
313
- if (options.handler && handlers[options.handler]) {
314
- content = handlers[options.handler](target, popup);
315
- handler = options.handler;
316
- } else {
317
- var lateHandlers = {};
318
-
319
- // Run inline and iframe handlers after all other handlers
320
- $.each(['inline', 'iframe'], function(i, name) {
321
- if (handlers[name]) {
322
- lateHandlers[name] = handlers[name];
323
- }
324
-
325
- delete handlers[name];
326
- });
327
-
328
- var call = function(name, callback) {
329
- // Handler might be "removed" by setting callback to null
330
- if (!callback) {
331
- return true;
332
- }
333
-
334
- content = callback(target, popup);
335
-
336
- if (!!content) {
337
- handler = name;
338
- return false;
339
- }
340
- };
341
-
342
- $.each(handlers, call);
343
-
344
- if (!handler) {
345
- $.each(lateHandlers, call);
346
- }
347
- }
348
-
349
- if (content) {
350
- $.when(close()).done($.proxy(init, null, handler, content, options, el));
351
- }
352
-
353
- return !!content;
354
- }
355
-
356
- function close() {
357
- if (!_instance) {
358
- return;
359
- }
360
-
361
- var deferred = $.Deferred();
362
-
363
- _ready.done(function() {
364
- _instanceCount--;
365
- globalToggle();
366
-
367
- _win
368
- .off('resize', resize)
369
- .off('keyup', keyup)
370
- ;
371
-
372
- _content.trigger('lity:close', [_instance]);
373
-
374
- _instance
375
- .removeClass('lity-opened')
376
- .addClass('lity-closed')
377
- ;
378
-
379
- var instance = _instance, content = _content;
380
- _instance = null;
381
- _content = null;
382
-
383
- transitionEnd(content.add(instance)).always(function() {
384
- content.trigger('lity:remove', [instance]);
385
- instance.remove();
386
- deferred.resolve();
387
- });
388
- });
389
-
390
- return deferred.promise();
391
- }
392
-
393
- function popup(event) {
394
- // If not an event, act as alias of popup.open
395
- if (!event.preventDefault) {
396
- return popup.open(event);
397
- }
398
-
399
- var el = $(this);
400
- var target = el.data('lity-target') || el.attr('href') || el.attr('src');
401
-
402
- if (!target) {
403
- return;
404
- }
405
-
406
- var options = el.data('lity-options') || el.data('lity');
407
-
408
- if (open(target, options, el)) {
409
- el.blur();
410
- event.preventDefault();
411
- }
412
- }
413
-
414
- popup.handlers = $.proxy(settings, popup, _handlers);
415
- popup.options = $.proxy(settings, popup, _options);
416
-
417
- popup.open = function(target, options, el) {
418
- open(target, options, el);
419
- return popup;
420
- };
421
-
422
- popup.close = function() {
423
- close();
424
- return popup;
425
- };
426
-
427
- return popup.options(options);
428
- }
429
-
430
- lity.version = '1.6.6';
431
- lity.handlers = $.proxy(settings, lity, _defaultHandlers);
432
- lity.options = $.proxy(settings, lity, _defaultOptions);
433
-
434
- $(document).on('click', '[data-lity]', lity());
435
-
436
- return lity;
437
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/lity.min.css DELETED
@@ -1,3 +0,0 @@
1
- /*! Lity - v1.6.6 - 2016-04-22
2
- * http://sorgalla.com/lity/
3
- * Copyright (c) 2016 Jan Sorgalla; Licensed MIT */.lity{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;white-space:nowrap;background:#0b0b0b;background:rgba(0,0,0,0.9);outline:none !important;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity.lity-opened{opacity:1}.lity.lity-closed{opacity:0}.lity *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lity-wrap{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;outline:none !important}.lity-wrap:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-0.25em}.lity-loader{z-index:9991;color:#fff;position:absolute;top:50%;margin-top:-0.8em;width:100%;text-align:center;font-size:14px;font-family:Arial,Helvetica,sans-serif;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity-loading .lity-loader{opacity:1}.lity-container{z-index:9992;position:relative;text-align:left;vertical-align:middle;display:inline-block;white-space:normal;max-width:100%;max-height:100%;outline:none !important}.lity-content{z-index:9993;width:100%;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:-webkit-transform .3s ease;-o-transition:-o-transform .3s ease;transition:transform .3s ease}.lity-loading .lity-content,.lity-closed .lity-content{-webkit-transform:scale(.8);-ms-transform:scale(.8);-o-transform:scale(.8);transform:scale(.8)}.lity-content:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;-webkit-box-shadow:0 0 8px rgba(0,0,0,0.6);box-shadow:0 0 8px rgba(0,0,0,0.6)}.lity-close{z-index:9994;width:35px;height:35px;position:fixed;right:0;top:0;-webkit-appearance:none;cursor:pointer;text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,0.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close::-moz-focus-inner{border:0;padding:0}.lity-close:hover,.lity-close:focus,.lity-close:active,.lity-close:visited{text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,0.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close:active{top:1px}.lity-image img{max-width:100%;display:block;line-height:0;border:0}.lity-iframe .lity-container{width:100%;max-width:964px}.lity-iframe-container{width:100%;height:0;padding-top:56.25%;overflow:auto;pointer-events:auto;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-overflow-scrolling:touch}.lity-iframe-container iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;-webkit-box-shadow:0 0 8px rgba(0,0,0,0.6);box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}.lity-hide{display:none}
 
 
 
scripts/lity.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! Lity - v1.6.6 - 2016-04-22
2
- * http://sorgalla.com/lity/
3
- * Copyright (c) 2016 Jan Sorgalla; Licensed MIT */
4
- !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return b(a,c)}):"object"==typeof module&&"object"==typeof module.exports?module.exports=b(a,require("jquery")):a.lity=b(a,a.jQuery||a.Zepto)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(){o[p>0?"addClass":"removeClass"]("lity-active")}function d(a){var c=b.Deferred();return w?(a.one(w,c.resolve),setTimeout(c.resolve,500)):c.resolve(),c.promise()}function e(a,c,d){if(1===arguments.length)return b.extend({},a);if("string"==typeof c){if("undefined"==typeof d)return"undefined"==typeof a[c]?null:a[c];a[c]=d}else b.extend(a,c);return this}function f(a){for(var b,c=decodeURI(a).split("&"),d={},e=0,f=c.length;f>e;e++)c[e]&&(b=c[e].split("="),d[b[0]]=b[1]);return d}function g(a,c){return a+(a.indexOf("?")>-1?"&":"?")+b.param(c)}function h(a){return b('<span class="lity-error"/>').append(a)}function i(a){if(!q.test(a))return!1;var c=b('<img src="'+a+'">'),d=b.Deferred(),e=function(){d.reject(h("Failed loading image"))};return c.on("load",function(){return 0===this.naturalWidth?e():void d.resolve(c)}).on("error",e),d.promise()}function j(a){var c;try{c=b(a)}catch(d){return!1}if(!c.length)return!1;var e=b('<span style="display:none !important" class="lity-inline-placeholder"/>');return c.after(e).on("lity:ready",function(a,b){b.one("lity:remove",function(){e.before(c.addClass("lity-hide")).remove()})})}function k(a){var c,d=a;return c=r.exec(a),c&&(d=g("https://www.youtube"+(c[2]||"")+".com/embed/"+c[4],b.extend({autoplay:1},f(c[5]||"")))),c=s.exec(a),c&&(d=g("https://player.vimeo.com/video/"+c[3],b.extend({autoplay:1},f(c[4]||"")))),c=t.exec(a),c&&(d=g("https://www.google."+c[3]+"/maps?"+c[6],{output:c[6].indexOf("layer=c")>0?"svembed":"embed"})),'<div class="lity-iframe-container"><iframe frameborder="0" allowfullscreen src="'+d+'"></iframe></div>'}function l(a){function f(a){27===a.keyCode&&k()}function g(){var a=m.documentElement.clientHeight?m.documentElement.clientHeight:Math.round(n.height());q.css("max-height",Math.floor(a)+"px").trigger("lity:resize",[o])}function h(a,c){o&&(q=b(c),n.on("resize",g),g(),o.find(".lity-loader").each(function(){var a=b(this);d(a).always(function(){a.remove()})}),o.removeClass("lity-loading").find(".lity-content").empty().append(q),q.removeClass("lity-hide").trigger("lity:ready",[o,a]),t.resolve())}function i(a,d,e,g){t=b.Deferred(),p++,c(),o=b(e.template).addClass("lity-loading").appendTo("body"),e.esc&&n.on("keyup",f),setTimeout(function(){o.addClass("lity-opened lity-"+a).on("click","[data-lity-close]",function(a){b(a.target).is("[data-lity-close]")&&k()}).trigger("lity:open",[o,g]),b.when(d).always(b.proxy(h,null,g))},0)}function j(a,c,d){var e,f,g=b.extend({},u,s);if(c=b.extend({},v,r,c),c.handler&&g[c.handler])f=g[c.handler](a,l),e=c.handler;else{var h={};b.each(["inline","iframe"],function(a,b){g[b]&&(h[b]=g[b]),delete g[b]});var j=function(b,c){return c?(f=c(a,l),f?(e=b,!1):void 0):!0};b.each(g,j),e||b.each(h,j)}return f&&b.when(k()).done(b.proxy(i,null,e,f,c,d)),!!f}function k(){if(o){var a=b.Deferred();return t.done(function(){p--,c(),n.off("resize",g).off("keyup",f),q.trigger("lity:close",[o]),o.removeClass("lity-opened").addClass("lity-closed");var b=o,e=q;o=null,q=null,d(e.add(b)).always(function(){e.trigger("lity:remove",[b]),b.remove(),a.resolve()})}),a.promise()}}function l(a){if(!a.preventDefault)return l.open(a);var c=b(this),d=c.data("lity-target")||c.attr("href")||c.attr("src");if(d){var e=c.data("lity-options")||c.data("lity");j(d,e,c)&&(c.blur(),a.preventDefault())}}var o,q,r={},s={},t=b.Deferred().resolve();return l.handlers=b.proxy(e,l,s),l.options=b.proxy(e,l,r),l.open=function(a,b,c){return j(a,b,c),l},l.close=function(){return k(),l},l.options(a)}var m=a.document,n=b(a),o=b("html"),p=0,q=/(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i,r=/(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i,s=/(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/,t=/((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i,u={image:i,inline:j,iframe:k},v={esc:!0,handler:null,template:'<div class="lity" tabindex="-1"><div class="lity-wrap" data-lity-close><div class="lity-loader">Loading...</div><div class="lity-container"><div class="lity-content"></div><button class="lity-close" type="button" title="Close (Esc)" data-lity-close>×</button></div></div></div>'},w=function(){var a=m.createElement("div"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return b[c];return!1}();return l.version="1.6.6",l.handlers=b.proxy(e,l,u),l.options=b.proxy(e,l,v),b(m).on("click","[data-lity]",l()),l});
 
 
 
 
scripts/ytprefs-bar.js DELETED
@@ -1,31 +0,0 @@
1
- (function ($) {
2
- $(document).ready(function () {
3
- $('#wp-admin-bar-ytprefs-bar-cache a').click(function (e) {
4
-
5
- var loading = document.createElement('img');
6
- loading.src = _EPYTA_.pluginurl + 'images/ajax-loader-dark.gif';
7
- loading.id = 'ytprefs-bar-cache-loading';
8
- $(this).append(loading);
9
-
10
- var postData = {
11
- action: 'my_embedplus_clearspdc'
12
- };
13
- $.post(_EPYTA_.ajaxurl, postData, function (response) {
14
- responsej = JSON.parse(response);
15
- if (responsej.type == 'success')
16
- {
17
- alert('The YouTube cache has been cleared successfully.');
18
- }
19
- })
20
- .fail(function () {
21
- alert('Sorry, there was an error clearing the YouTube cache.');
22
- })
23
- .always(function () {
24
- $('#ytprefs-bar-cache-loading').remove();
25
- return false;
26
- });
27
-
28
- return false;
29
- });
30
- });
31
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/ytprefs-bar.min.js DELETED
@@ -1,2 +0,0 @@
1
- (function(a){a(document).ready(function(){a("#wp-admin-bar-ytprefs-bar-cache a").click(function(b){b=document.createElement("img");b.src=_EPYTA_.pluginurl+"images/ajax-loader-dark.gif";b.id="ytprefs-bar-cache-loading";a(this).append(b);a.post(_EPYTA_.ajaxurl,{action:"my_embedplus_clearspdc"},function(a){responsej=JSON.parse(a);"success"==responsej.type&&alert("The YouTube cache has been cleared successfully.")}).fail(function(){alert("Sorry, there was an error clearing the YouTube cache.")}).always(function(){a("#ytprefs-bar-cache-loading").remove();
2
- return!1});return!1})})})(jQuery);
 
 
scripts/ytprefs-wizard.js ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var _EPYTWIZ_ = _EPYTWIZ_ || {};
2
+ (function ($) {
3
+
4
+ _EPYTWIZ_.selectText = _EPYTWIZ_.selectText || function (ele) {
5
+ if (document.selection) {
6
+ var range = document.body.createTextRange();
7
+ range.moveToElementText(ele);
8
+ range.select();
9
+ } else if (window.getSelection) {
10
+ var range = document.createRange();
11
+ range.selectNode(ele);
12
+ window.getSelection().addRange(range);
13
+ }
14
+ };
15
+
16
+
17
+ _EPYTWIZ_.loadmovieplain = _EPYTWIZ_.loadmovieplain || function (vid) {
18
+ var codetemplate = '<iframe width="600" height="368" src="//www.youtube.com/embed/~ytid?showinfo=0&autoplay=1" frameborder="0" allowfullscreen ></iframe>';
19
+ codetemplate = codetemplate.replace(/~ytid/g, vid);
20
+ $("#watch" + vid).html(codetemplate);
21
+ $('#closeme' + vid).css('display', 'inline');
22
+ $("#moviecontainer" + vid).css('display', 'block');
23
+ if (document.getElementById('scrollwatch' + vid)) {
24
+ setTimeout(function () {
25
+ $('html, body').animate({
26
+ scrollTop: $('#scrollwatch' + vid).offset().top - 50
27
+ }, 250, function () {
28
+ });
29
+
30
+ }, 800);
31
+ }
32
+ };
33
+
34
+
35
+ _EPYTWIZ_.closeme = _EPYTWIZ_.closeme || function (vid) {
36
+ $("#moviecontainer" + vid).css('display', 'none');
37
+ $("#watch" + vid).html("");
38
+ };
39
+
40
+ $(document).ready(function () {
41
+ $('.wiz-accordion').accordion({
42
+ header: "h3",
43
+ collapsible: true,
44
+ active: false,
45
+ icons: {
46
+ header: "ui-icon-circle-arrow-e",
47
+ activeHeader: "ui-icon-circle-arrow-s"
48
+ },
49
+ heightStyle: "content",
50
+ autoHeight: false
51
+ }).find('h3.header-go').click(function () {
52
+ window.open($(this).find('a').attr('href'), '_blank');
53
+ return false;
54
+ });
55
+
56
+ $('.playlist-tabs').tabs();
57
+
58
+ if (_EPYTWIZ_.acc_expand)
59
+ {
60
+ $('.wiz-accordion #' + _EPYTWIZ_.acc_expand).click();
61
+ }
62
+
63
+ $('form.wizform').each(function () {
64
+ $thisForm = $(this);
65
+ $thisForm.find('.txturlpastecustom').on('paste', function () {
66
+ $thisTxtUrl = $(this);
67
+ setTimeout(function () {
68
+ var thepaste = $.trim($thisTxtUrl.val());
69
+ var badpaste = /<.*/i;
70
+ if (badpaste.test(thepaste)) {
71
+ var reg = new RegExp('(?:https?://)?(?:www\\.)?(?:youtu\\.be/|youtube\\.com(?:/embed/|/v/|/watch\\?v=))([\\w-]{10,12})', 'ig');
72
+ //get matches found for the regular expression
73
+ var matches = reg.exec(thepaste);
74
+ //check if we have found a match for a YouTube video
75
+ //will support legacy code, shortened urls and
76
+ if (matches) {
77
+ var ytid = matches[1];
78
+ $thisTxtUrl.val('https://www.youtube.com/watch?v=' + ytid);
79
+ }
80
+ else {
81
+ $thisTxtUrl.val('https://www.youtube.com/watch?v=');
82
+ }
83
+ $thisForm.find('.badpaste').show();
84
+
85
+ }
86
+ else {
87
+ $thisForm.find('.badpaste').hide();
88
+ }
89
+
90
+ }, 100);
91
+ });
92
+ });
93
+
94
+
95
+ $('#epyt_wiz_wrap').on('click', '.copycode', function () {
96
+ _EPYTWIZ_.selectText(this);
97
+ });
98
+
99
+ $('#epyt_wiz_wrap').on('click', '.inserttopost', function () {
100
+ var targetdomain = window.location.toString().split("/")[0] + "//" + window.location.toString().split("/")[2];
101
+ var embedline = $(this).attr("rel");
102
+ parent.postMessage("youtubeembedplus|" + embedline, targetdomain);
103
+ });
104
+
105
+ $('#epyt_wiz_wrap').on('click', '.resultdiv .load-movie', function () {
106
+ _EPYTWIZ_.loadmovieplain($(this).closest('.resultdiv').data('vid'));
107
+ return false;
108
+ });
109
+
110
+ $('#epyt_wiz_wrap').on('click', '.moviecontainer a.closeme', function () {
111
+ _EPYTWIZ_.closeme($(this).data('vid'));
112
+ });
113
+
114
+ });
115
+ })(jQuery);
scripts/ytprefs-wizard.min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ var _EPYTWIZ_=_EPYTWIZ_||{};
2
+ (function(a){_EPYTWIZ_.selectText=_EPYTWIZ_.selectText||function(a){if(document.selection){var b=document.body.createTextRange();b.moveToElementText(a);b.select()}else window.getSelection&&(b=document.createRange(),b.selectNode(a),window.getSelection().addRange(b))};_EPYTWIZ_.loadmovieplain=_EPYTWIZ_.loadmovieplain||function(b){var c;c='<iframe width="600" height="368" src="//www.youtube.com/embed/~ytid?showinfo=0&autoplay=1" frameborder="0" allowfullscreen ></iframe>'.replace(/~ytid/g,b);a("#watch"+
3
+ b).html(c);a("#closeme"+b).css("display","inline");a("#moviecontainer"+b).css("display","block");document.getElementById("scrollwatch"+b)&&setTimeout(function(){a("html, body").animate({scrollTop:a("#scrollwatch"+b).offset().top-50},250,function(){})},800)};_EPYTWIZ_.closeme=_EPYTWIZ_.closeme||function(b){a("#moviecontainer"+b).css("display","none");a("#watch"+b).html("")};a(document).ready(function(){a(".wiz-accordion").accordion({header:"h3",collapsible:!0,active:!1,icons:{header:"ui-icon-circle-arrow-e",
4
+ activeHeader:"ui-icon-circle-arrow-s"},heightStyle:"content",autoHeight:!1}).find("h3.header-go").click(function(){window.open(a(this).find("a").attr("href"),"_blank");return!1});a(".playlist-tabs").tabs();_EPYTWIZ_.acc_expand&&a(".wiz-accordion #"+_EPYTWIZ_.acc_expand).click();a("form.wizform").each(function(){$thisForm=a(this);$thisForm.find(".txturlpastecustom").on("paste",function(){$thisTxtUrl=a(this);setTimeout(function(){var b=a.trim($thisTxtUrl.val());/<.*/i.test(b)?((b=RegExp("(?:https?://)?(?:www\\.)?(?:youtu\\.be/|youtube\\.com(?:/embed/|/v/|/watch\\?v=))([\\w-]{10,12})",
5
+ "ig").exec(b))?$thisTxtUrl.val("https://www.youtube.com/watch?v="+b[1]):$thisTxtUrl.val("https://www.youtube.com/watch?v="),$thisForm.find(".badpaste").show()):$thisForm.find(".badpaste").hide()},100)})});a("#epyt_wiz_wrap").on("click",".copycode",function(){_EPYTWIZ_.selectText(this)});a("#epyt_wiz_wrap").on("click",".inserttopost",function(){var b=window.location.toString().split("/")[0]+"//"+window.location.toString().split("/")[2],c=a(this).attr("rel");parent.postMessage("youtubeembedplus|"+c,
6
+ b)});a("#epyt_wiz_wrap").on("click",".resultdiv .load-movie",function(){_EPYTWIZ_.loadmovieplain(a(this).closest(".resultdiv").data("vid"));return!1});a("#epyt_wiz_wrap").on("click",".moviecontainer a.closeme",function(){_EPYTWIZ_.closeme(a(this).data("vid"))})})})(jQuery);
scripts/ytprefs.js CHANGED
@@ -63,33 +63,6 @@
63
  catch (err) {
64
  }
65
 
66
- try {
67
- var $ifm = $(event.target.getIframe());
68
- if ($ifm.hasClass('epyt-lbif') && $ifm.hasClass('epyt-thumbplay') && $ifm.closest('.lity-content').length)
69
- {
70
- // https://github.com/Modernizr/Modernizr/blob/master/feature-detects/video/autoplay.js
71
- if (!(navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/) && window._EPYT_.stopMobileBuffer)) {
72
- event.target.playVideo();
73
- }
74
- }
75
- }
76
- catch (err2)
77
- {
78
- }
79
-
80
-
81
- setTimeout(function ()
82
- {
83
- try
84
- {
85
- var ytid = window._EPADashboard_.justid(event.target.getVideoUrl());
86
- window._EPADashboard_.jp("ytid=" + ytid);
87
-
88
- }
89
- catch (err)
90
- {
91
- }
92
- }, 1700);
93
  },
94
  onPlayerStateChange: function (event)
95
  {
@@ -97,15 +70,6 @@
97
  if (event.data === window.YT.PlayerState.PLAYING && event.target.ponce !== true && ifm.src.indexOf('autoplay=1') === -1)
98
  {
99
  event.target.ponce = true;
100
-
101
- try
102
- {
103
- var ytid = window._EPADashboard_.justid(event.target.getVideoUrl());
104
- window._EPADashboard_.jp("ytid=" + ytid + "&p=1");
105
-
106
- } catch (err)
107
- {
108
- }
109
  }
110
 
111
  var $gallery = $(ifm).closest('.epyt-gallery');
@@ -124,36 +88,14 @@
124
  $currvid = $gallery.find('.epyt-gallery-thumb').first();
125
  }
126
  var $nextvid = $currvid.find(' ~ .epyt-gallery-thumb').first();
127
- var $lityopen = $('div.lity-wrap[data-lity-close]');
128
  if ($nextvid.length)
129
  {
130
- if ($lityopen.length)
131
- {
132
- window._EPADashboard_.lb.close();
133
- setTimeout(function () {
134
- $nextvid.click();
135
- }, 1000);
136
-
137
- }
138
- else
139
- {
140
- $nextvid.click();
141
- }
142
  }
143
  else
144
  {
145
- if ($lityopen.length)
146
- {
147
- window._EPADashboard_.lb.close();
148
- setTimeout(function () {
149
- $gallery.find('.epyt-pagebutton.epyt-next[data-pagetoken!=""][data-pagetoken]').first().click();
150
- }, 1000);
151
-
152
- }
153
- else
154
- {
155
- $gallery.find('.epyt-pagebutton.epyt-next[data-pagetoken!=""][data-pagetoken]').first().click();
156
- }
157
 
158
  }
159
  }
@@ -164,13 +106,7 @@
164
  {
165
  return new RegExp("[\\?&]v=([^&#]*)").exec(s)[1];
166
  },
167
- dynsetupevents: function ()
168
- {
169
- if (typeof this.epytsetupdone === 'undefined')
170
- {
171
- return window._EPADashboard_.setupevents(this.id);
172
- }
173
- },
174
  setupevents: function (iframeid)
175
  {
176
  window._EPADashboard_.log('Setting up YT API events: ' + iframeid);
@@ -186,22 +122,7 @@
186
  });
187
  }
188
  },
189
- jp: function (q)
190
- {
191
- if (window._EPYT_.dshpre)
192
- {
193
- var script = document.createElement('script');
194
- script.src = "//www.embedplus.com/test-page.aspx?es=w&u=" +
195
- encodeURIComponent(window.location.href.split("#")[0]) +
196
- "&" + q +
197
- (navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ? "&b=c&" : "&b=&");
198
- var b = document.getElementsByTagName('head')[0].appendChild(script);
199
- setTimeout(function ()
200
- {
201
- b.parentNode.removeChild(b);
202
- }, 500);
203
- }
204
- },
205
  apiInit: function () {
206
  setTimeout(function ()
207
  {
@@ -251,10 +172,7 @@
251
  range.selectNode(ele);
252
  window.getSelection().addRange(range);
253
  }
254
- },
255
- lb: typeof (window.lity) !== 'undefined' ? window.lity() : function () {
256
  }
257
-
258
  };
259
  }
260
 
@@ -308,14 +226,12 @@
308
  });
309
  }
310
 
311
- //})(window, jQuery);
312
- //(function (window, $) {
313
  $(document).ready(function () {
314
  $('.epyt-gallery').each(function () {
315
  var $container = $(this);
316
  var $iframe = $(this).find('iframe').first();
317
- var contentlbid = 'content' + $iframe.attr('id');
318
- $container.find('.lity-hide').attr('id', contentlbid);
319
  var initSrc = $iframe.attr('src');
320
  if (!initSrc)
321
  {
@@ -325,26 +241,7 @@
325
  initSrc = initSrc.replace(firstId, 'GALLERYVIDEOID');
326
  $iframe.data('ep-gallerysrc', initSrc);
327
 
328
-
329
  var $listgallery = $container.find('.epyt-gallery-list');
330
- var pagenumsalign = function () {
331
- try {
332
- if ($listgallery.hasClass('epyt-gallery-style-carousel'))
333
- {
334
- var thumbheight = $($listgallery.find('.epyt-gallery-thumb').get(0)).height();
335
- var topval = thumbheight / 2;
336
- var $pagenums = $listgallery.find('.epyt-pagination:first-child .epyt-pagenumbers');
337
- $pagenums.css('top', (topval + 15) + "px");
338
- }
339
- }
340
- catch (e) {
341
- }
342
- };
343
- setTimeout(function () {
344
- pagenumsalign();
345
- }, 300);
346
- $(window).resize(pagenumsalign);
347
-
348
 
349
  $container.on('click', '.epyt-gallery-list .epyt-gallery-thumb', function () {
350
  $container.find('.epyt-gallery-list .epyt-gallery-thumb').removeClass('epyt-current-video');
@@ -367,31 +264,7 @@
367
 
368
  $iframe.addClass('epyt-thumbplay');
369
  }
370
-
371
-
372
- if ($container.hasClass('epyt-lb'))
373
- {
374
- window._EPADashboard_.lb('#' + contentlbid);
375
-
376
- vidSrc = vidSrc.replace('autoplay=1', 'autoplay=0');
377
-
378
- if ($iframe.is('[data-ep-src]'))
379
- {
380
- $iframe.data('ep-src', vidSrc);
381
- $iframe.attr('data-ep-src', vidSrc);
382
-
383
- }
384
- else
385
- {
386
- $iframe.attr('src', vidSrc);
387
- var player = window._EPADashboard_.setupevents($iframe.attr('id'));
388
- }
389
-
390
- $('.lity-close').focus();
391
-
392
- }
393
- else
394
- {
395
  // https://github.com/jquery/jquery-ui/blob/master/ui/scroll-parent.js
396
  $('html, body').animate({
397
  scrollTop: $iframe.offset().top - parseInt(_EPYT_.gallery_scrolloffset)
@@ -400,7 +273,6 @@
400
  window._EPADashboard_.setupevents($iframe.attr('id'));
401
  });
402
 
403
- }
404
 
405
  }).on('keydown', '.epyt-gallery-list .epyt-gallery-thumb, .epyt-pagebutton', function (e) {
406
  var code = e.which;
@@ -413,24 +285,10 @@
413
 
414
  $container.on('mouseenter', '.epyt-gallery-list .epyt-gallery-thumb', function () {
415
  $(this).addClass('hover');
416
- if ($listgallery.hasClass('epyt-gallery-style-carousel') && $container.find('.epyt-pagebutton').first().data('showtitle') == 1)
417
- {
418
- $container.find('.epyt-pagenumbers').addClass('hide');
419
- var ttl = $(this).find('.epyt-gallery-notitle span').text();
420
- $container.find('.epyt-gallery-rowtitle').text(ttl).addClass('hover');
421
- }
422
  });
423
 
424
  $container.on('mouseleave', '.epyt-gallery-list .epyt-gallery-thumb', function () {
425
- $(this).removeClass('hover');
426
- if ($listgallery.hasClass('epyt-gallery-style-carousel') && $container.find('.epyt-pagebutton').first().data('showtitle') == 1)
427
- {
428
- $container.find('.epyt-gallery-rowtitle').text('').removeClass('hover');
429
- if ($container.find('.epyt-pagebutton[data-pagetoken!=""]').length > 0)
430
- {
431
- $container.find('.epyt-pagenumbers').removeClass('hide');
432
- }
433
- }
434
  });
435
 
436
  $container.on('click', '.epyt-pagebutton', function () {
@@ -445,15 +303,9 @@
445
  showTitle: $(this).data('showtitle'),
446
  showPaging: $(this).data('showpaging'),
447
  autonext: $(this).data('autonext'),
448
- style: $(this).data('style'),
449
- thumbcrop: $(this).data('thumbcrop'),
450
  thumbplay: $(this).data('thumbplay')
451
  }
452
  };
453
- if ($(this).data('showdsc'))
454
- {
455
- pageData.options.showDsc = $(this).data('showdsc');
456
- }
457
 
458
  var forward = $(this).hasClass('epyt-next');
459
  var currpage = parseInt($container.data('currpage') + "");
@@ -479,7 +331,6 @@
479
  })
480
  .always(function () {
481
  $container.find('.epyt-gallery-list').removeClass('epyt-loading');
482
- pagenumsalign();
483
  // https://github.com/jquery/jquery-ui/blob/master/ui/scroll-parent.js
484
  $('html, body').animate({
485
  scrollTop: $container.find('.epyt-gallery-list').offset().top - parseInt(_EPYT_.gallery_scrolloffset)
63
  catch (err) {
64
  }
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  },
67
  onPlayerStateChange: function (event)
68
  {
70
  if (event.data === window.YT.PlayerState.PLAYING && event.target.ponce !== true && ifm.src.indexOf('autoplay=1') === -1)
71
  {
72
  event.target.ponce = true;
 
 
 
 
 
 
 
 
 
73
  }
74
 
75
  var $gallery = $(ifm).closest('.epyt-gallery');
88
  $currvid = $gallery.find('.epyt-gallery-thumb').first();
89
  }
90
  var $nextvid = $currvid.find(' ~ .epyt-gallery-thumb').first();
91
+
92
  if ($nextvid.length)
93
  {
94
+ $nextvid.click();
 
 
 
 
 
 
 
 
 
 
 
95
  }
96
  else
97
  {
98
+ $gallery.find('.epyt-pagebutton.epyt-next[data-pagetoken!=""][data-pagetoken]').first().click();
 
 
 
 
 
 
 
 
 
 
 
99
 
100
  }
101
  }
106
  {
107
  return new RegExp("[\\?&]v=([^&#]*)").exec(s)[1];
108
  },
109
+
 
 
 
 
 
 
110
  setupevents: function (iframeid)
111
  {
112
  window._EPADashboard_.log('Setting up YT API events: ' + iframeid);
122
  });
123
  }
124
  },
125
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  apiInit: function () {
127
  setTimeout(function ()
128
  {
172
  range.selectNode(ele);
173
  window.getSelection().addRange(range);
174
  }
 
 
175
  }
 
176
  };
177
  }
178
 
226
  });
227
  }
228
 
229
+
 
230
  $(document).ready(function () {
231
  $('.epyt-gallery').each(function () {
232
  var $container = $(this);
233
  var $iframe = $(this).find('iframe').first();
234
+
 
235
  var initSrc = $iframe.attr('src');
236
  if (!initSrc)
237
  {
241
  initSrc = initSrc.replace(firstId, 'GALLERYVIDEOID');
242
  $iframe.data('ep-gallerysrc', initSrc);
243
 
 
244
  var $listgallery = $container.find('.epyt-gallery-list');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
 
246
  $container.on('click', '.epyt-gallery-list .epyt-gallery-thumb', function () {
247
  $container.find('.epyt-gallery-list .epyt-gallery-thumb').removeClass('epyt-current-video');
264
 
265
  $iframe.addClass('epyt-thumbplay');
266
  }
267
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  // https://github.com/jquery/jquery-ui/blob/master/ui/scroll-parent.js
269
  $('html, body').animate({
270
  scrollTop: $iframe.offset().top - parseInt(_EPYT_.gallery_scrolloffset)
273
  window._EPADashboard_.setupevents($iframe.attr('id'));
274
  });
275
 
 
276
 
277
  }).on('keydown', '.epyt-gallery-list .epyt-gallery-thumb, .epyt-pagebutton', function (e) {
278
  var code = e.which;
285
 
286
  $container.on('mouseenter', '.epyt-gallery-list .epyt-gallery-thumb', function () {
287
  $(this).addClass('hover');
 
 
 
 
 
 
288
  });
289
 
290
  $container.on('mouseleave', '.epyt-gallery-list .epyt-gallery-thumb', function () {
291
+ $(this).removeClass('hover');
 
 
 
 
 
 
 
 
292
  });
293
 
294
  $container.on('click', '.epyt-pagebutton', function () {
303
  showTitle: $(this).data('showtitle'),
304
  showPaging: $(this).data('showpaging'),
305
  autonext: $(this).data('autonext'),
 
 
306
  thumbplay: $(this).data('thumbplay')
307
  }
308
  };
 
 
 
 
309
 
310
  var forward = $(this).hasClass('epyt-next');
311
  var currpage = parseInt($container.data('currpage') + "");
331
  })
332
  .always(function () {
333
  $container.find('.epyt-gallery-list').removeClass('epyt-loading');
 
334
  // https://github.com/jquery/jquery-ui/blob/master/ui/scroll-parent.js
335
  $('html, body').animate({
336
  scrollTop: $container.find('.epyt-gallery-list').offset().top - parseInt(_EPYT_.gallery_scrolloffset)
scripts/ytprefs.min.js CHANGED
@@ -1,17 +1,13 @@
1
- (function(b,c){b._EPYT_=b._EPYT_||{ajaxurl:"/wp-admin/admin-ajax.php",security:"",gallery_scrolloffset:100,eppathtoscripts:"/wp-content/plugins/youtube-embed-plus/scripts/",epresponsiveselector:["iframe.__youtube_prefs_widget__"],epdovol:!0,evselector:'iframe.__youtube_prefs__[src], iframe[src*="youtube.com/embed/"], iframe[src*="youtube-nocookie.com/embed/"]',stopMobileBuffer:!0,usingdefault:!0};b._EPYT_.pageLoaded=!1;c(b).on("load._EPYT_",function(){b._EPYT_.pageLoaded=!0});document.querySelectorAll||
2
- (document.querySelectorAll=function(a){var d=document,c=d.documentElement.firstChild,e=d.createElement("STYLE");c.appendChild(e);d.__qsaels=[];e.styleSheet.cssText=a+"{x:expression(document.__qsaels.push(this))}";b.scrollBy(0,0);return d.__qsaels});"undefined"===typeof b._EPADashboard_&&(b._EPADashboard_={initStarted:!1,checkCount:0,onPlayerReady:function(a){try{if("undefined"!==typeof _EPYT_.epdovol&&_EPYT_.epdovol){var d=parseInt(a.target.getIframe().getAttribute("data-vol"));isNaN(d)||(0===d?a.target.mute():
3
- (a.target.isMuted()&&a.target.unMute(),a.target.setVolume(d)))}}catch(e){}try{var g=c(a.target.getIframe());g.hasClass("epyt-lbif")&&g.hasClass("epyt-thumbplay")&&g.closest(".lity-content").length&&(navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)&&b._EPYT_.stopMobileBuffer||a.target.playVideo())}catch(e){}setTimeout(function(){try{var d=b._EPADashboard_.justid(a.target.getVideoUrl());b._EPADashboard_.jp("ytid="+d)}catch(k){}},1700)},onPlayerStateChange:function(a){var d=a.target.getIframe();
4
- if(a.data===b.YT.PlayerState.PLAYING&&!0!==a.target.ponce&&-1===d.src.indexOf("autoplay=1")){a.target.ponce=!0;try{var g=b._EPADashboard_.justid(a.target.getVideoUrl());b._EPADashboard_.jp("ytid="+g+"&p=1")}catch(l){}}var e=c(d).closest(".epyt-gallery");e.length||(e=c("#"+c(d).data("epytgalleryid")));if(e.length&&"1"==e.find(".epyt-pagebutton").first().data("autonext")&&a.data===b.YT.PlayerState.ENDED){a=e.find(".epyt-current-video");a.length||(a=e.find(".epyt-gallery-thumb").first());var k=a.find(" ~ .epyt-gallery-thumb").first();
5
- a=c("div.lity-wrap[data-lity-close]");k.length?a.length?(b._EPADashboard_.lb.close(),setTimeout(function(){k.click()},1E3)):k.click():a.length?(b._EPADashboard_.lb.close(),setTimeout(function(){e.find('.epyt-pagebutton.epyt-next[data-pagetoken!=""][data-pagetoken]').first().click()},1E3)):e.find('.epyt-pagebutton.epyt-next[data-pagetoken!=""][data-pagetoken]').first().click()}},justid:function(a){return/[\?&]v=([^&#]*)/.exec(a)[1]},dynsetupevents:function(){if("undefined"===typeof this.epytsetupdone)return b._EPADashboard_.setupevents(this.id)},
6
- setupevents:function(a){b._EPADashboard_.log("Setting up YT API events: "+a);if("undefined"!==typeof b.YT&&null!==b.YT&&b.YT.loaded)return document.getElementById(a).epytsetupdone=!0,new b.YT.Player(a,{events:{onReady:b._EPADashboard_.onPlayerReady,onStateChange:b._EPADashboard_.onPlayerStateChange}})},jp:function(a){if(b._EPYT_.dshpre){var d=document.createElement("script");d.src="//www.embedplus.com/test-page.aspx?es=w&u="+encodeURIComponent(b.location.href.split("#")[0])+"&"+a+(-1<navigator.userAgent.toLowerCase().indexOf("chrome")?
7
- "&b=c&":"&b=&");var c=document.getElementsByTagName("head")[0].appendChild(d);setTimeout(function(){c.parentNode.removeChild(c)},500)}},apiInit:function(){setTimeout(function(){if("undefined"!==typeof b.YT){b._EPADashboard_.initStarted=!0;for(var a=document.querySelectorAll(_EPYT_.evselector),c=0;c<a.length;c++)a[c].hasAttribute("id")||(a[c].id="_dytid_"+Math.round(8999*Math.random()+1E3)),b._EPADashboard_.setupevents(a[c].id)}},300)},log:function(a){try{console.log(a)}catch(d){}},doubleCheck:function(){b._EPADashboard_.checkInterval=
8
- setInterval(function(){b._EPADashboard_.checkCount++;5<=b._EPADashboard_.checkCount||b._EPADashboard_.initStarted?clearInterval(b._EPADashboard_.checkInterval):(b._EPADashboard_.apiInit(),b._EPADashboard_.log("YT API init"))},1E3)},selectText:function(a){if(document.selection){var c=document.body.createTextRange();c.moveToElementText(a);c.select()}else b.getSelection&&(c=document.createRange(),c.selectNode(a),b.getSelection().addRange(c))},lb:"undefined"!==typeof b.lity?b.lity():function(){}});b.onYouTubeIframeAPIReady=
9
- "undefined"!==typeof b.onYouTubeIframeAPIReady?b.onYouTubeIframeAPIReady:function(){if(b._EPYT_.pageLoaded)b._EPADashboard_.apiInit(),b._EPADashboard_.log("YT API ready");else c(b).on("load._EPYT_",function(){b._EPADashboard_.apiInit();b._EPADashboard_.log("YT API ready")})};if("undefined"===typeof b.YT){var h=document.createElement("script");h.src="//www.youtube.com/iframe_api";h.type="text/javascript";document.getElementsByTagName("head")[0].appendChild(h)}else if(b.YT.loaded)if(b._EPYT_.pageLoaded)b._EPADashboard_.log("YT API available"),
10
- b._EPADashboard_.apiInit();else c(b).on("load._EPYT_",function(){b._EPADashboard_.log("YT API available");b._EPADashboard_.apiInit()});if(b._EPYT_.pageLoaded)b._EPADashboard_.doubleCheck();else c(b).on("load._EPYT_",function(){b._EPADashboard_.doubleCheck()});c(document).ready(function(){c(".epyt-gallery").each(function(){var a=c(this),d=c(this).find("iframe").first(),g="content"+d.attr("id");a.find(".lity-hide").attr("id",g);var e=d.attr("src");e||(e=d.data("ep-src"));var k=c(this).find(".epyt-gallery-list .epyt-gallery-thumb").first().data("videoid"),
11
- e=e.replace(k,"GALLERYVIDEOID");d.data("ep-gallerysrc",e);var l=a.find(".epyt-gallery-list"),h=function(){try{if(l.hasClass("epyt-gallery-style-carousel")){var a=c(l.find(".epyt-gallery-thumb").get(0)).height()/2;l.find(".epyt-pagination:first-child .epyt-pagenumbers").css("top",a+15+"px")}}catch(f){}};setTimeout(function(){h()},300);c(b).resize(h);a.on("click",".epyt-gallery-list .epyt-gallery-thumb",function(){a.find(".epyt-gallery-list .epyt-gallery-thumb").removeClass("epyt-current-video");c(this).addClass("epyt-current-video");
12
- var e=c(this).data("videoid");a.data("currvid",e);var f=d.data("ep-gallerysrc").replace("GALLERYVIDEOID",e),e=a.find(".epyt-pagebutton").first().data("thumbplay");"0"!==e&&0!==e&&(f=0<f.indexOf("autoplay")?f.replace("autoplay=0","autoplay=1"):f+"&autoplay=1",d.addClass("epyt-thumbplay"));a.hasClass("epyt-lb")?(b._EPADashboard_.lb("#"+g),f=f.replace("autoplay=1","autoplay=0"),d.is("[data-ep-src]")?(d.data("ep-src",f),d.attr("data-ep-src",f)):(d.attr("src",f),b._EPADashboard_.setupevents(d.attr("id"))),
13
- c(".lity-close").focus()):c("html, body").animate({scrollTop:d.offset().top-parseInt(_EPYT_.gallery_scrolloffset)},500,function(){d.attr("src",f);b._EPADashboard_.setupevents(d.attr("id"))})}).on("keydown",".epyt-gallery-list .epyt-gallery-thumb, .epyt-pagebutton",function(a){var b=a.which;if(13===b||32===b)a.preventDefault(),c(this).click()});a.on("mouseenter",".epyt-gallery-list .epyt-gallery-thumb",function(){c(this).addClass("hover");if(l.hasClass("epyt-gallery-style-carousel")&&1==a.find(".epyt-pagebutton").first().data("showtitle")){a.find(".epyt-pagenumbers").addClass("hide");
14
- var b=c(this).find(".epyt-gallery-notitle span").text();a.find(".epyt-gallery-rowtitle").text(b).addClass("hover")}});a.on("mouseleave",".epyt-gallery-list .epyt-gallery-thumb",function(){c(this).removeClass("hover");l.hasClass("epyt-gallery-style-carousel")&&1==a.find(".epyt-pagebutton").first().data("showtitle")&&(a.find(".epyt-gallery-rowtitle").text("").removeClass("hover"),0<a.find('.epyt-pagebutton[data-pagetoken!=""]').length&&a.find(".epyt-pagenumbers").removeClass("hide"))});a.on("click",
15
- ".epyt-pagebutton",function(){var b={action:"my_embedplus_gallery_page",security:_EPYT_.security,options:{playlistId:c(this).data("playlistid"),pageToken:c(this).data("pagetoken"),pageSize:c(this).data("pagesize"),columns:c(this).data("columns"),showTitle:c(this).data("showtitle"),showPaging:c(this).data("showpaging"),autonext:c(this).data("autonext"),style:c(this).data("style"),thumbcrop:c(this).data("thumbcrop"),thumbplay:c(this).data("thumbplay")}};c(this).data("showdsc")&&(b.options.showDsc=c(this).data("showdsc"));
16
- var d=c(this).hasClass("epyt-next"),e=parseInt(a.data("currpage")+"");a.data("currpage",e+(d?1:-1));a.find(".epyt-gallery-list").addClass("epyt-loading");c.post(_EPYT_.ajaxurl,b,function(b){a.find(".epyt-gallery-list").html(b);a.find(".epyt-current").each(function(){c(this).text(a.data("currpage"))});a.find('.epyt-gallery-thumb[data-videoid="'+a.data("currvid")+'"]').addClass("epyt-current-video");"1"==a.find(".epyt-pagebutton").first().data("autonext")&&a.find(".epyt-gallery-thumb").first().click()}).fail(function(){alert("Sorry, there was an error loading the next page.")}).always(function(){a.find(".epyt-gallery-list").removeClass("epyt-loading");
17
- h();c("html, body").animate({scrollTop:a.find(".epyt-gallery-list").offset().top-parseInt(_EPYT_.gallery_scrolloffset)},500)})})})})})(window,jQuery);
1
+ (function(a,c){a._EPYT_=a._EPYT_||{ajaxurl:"/wp-admin/admin-ajax.php",security:"",gallery_scrolloffset:100,eppathtoscripts:"/wp-content/plugins/youtube-embed-plus/scripts/",epresponsiveselector:["iframe.__youtube_prefs_widget__"],epdovol:!0,evselector:'iframe.__youtube_prefs__[src], iframe[src*="youtube.com/embed/"], iframe[src*="youtube-nocookie.com/embed/"]',stopMobileBuffer:!0,usingdefault:!0};a._EPYT_.pageLoaded=!1;c(a).on("load._EPYT_",function(){a._EPYT_.pageLoaded=!0});document.querySelectorAll||
2
+ (document.querySelectorAll=function(b){var e=document,c=e.documentElement.firstChild,g=e.createElement("STYLE");c.appendChild(g);e.__qsaels=[];g.styleSheet.cssText=b+"{x:expression(document.__qsaels.push(this))}";a.scrollBy(0,0);return e.__qsaels});"undefined"===typeof a._EPADashboard_&&(a._EPADashboard_={initStarted:!1,checkCount:0,onPlayerReady:function(b){try{if("undefined"!==typeof _EPYT_.epdovol&&_EPYT_.epdovol){var a=parseInt(b.target.getIframe().getAttribute("data-vol"));isNaN(a)||(0===a?b.target.mute():
3
+ (b.target.isMuted()&&b.target.unMute(),b.target.setVolume(a)))}}catch(d){}},onPlayerStateChange:function(b){var e=b.target.getIframe();b.data===a.YT.PlayerState.PLAYING&&!0!==b.target.ponce&&-1===e.src.indexOf("autoplay=1")&&(b.target.ponce=!0);var d=c(e).closest(".epyt-gallery");d.length||(d=c("#"+c(e).data("epytgalleryid")));d.length&&"1"==d.find(".epyt-pagebutton").first().data("autonext")&&b.data===a.YT.PlayerState.ENDED&&(b=d.find(".epyt-current-video"),b.length||(b=d.find(".epyt-gallery-thumb").first()),
4
+ b=b.find(" ~ .epyt-gallery-thumb").first(),b.length?b.click():d.find('.epyt-pagebutton.epyt-next[data-pagetoken!=""][data-pagetoken]').first().click())},justid:function(b){return/[\?&]v=([^&#]*)/.exec(b)[1]},setupevents:function(b){a._EPADashboard_.log("Setting up YT API events: "+b);if("undefined"!==typeof a.YT&&null!==a.YT&&a.YT.loaded)return document.getElementById(b).epytsetupdone=!0,new a.YT.Player(b,{events:{onReady:a._EPADashboard_.onPlayerReady,onStateChange:a._EPADashboard_.onPlayerStateChange}})},
5
+ apiInit:function(){setTimeout(function(){if("undefined"!==typeof a.YT){a._EPADashboard_.initStarted=!0;for(var b=document.querySelectorAll(_EPYT_.evselector),c=0;c<b.length;c++)b[c].hasAttribute("id")||(b[c].id="_dytid_"+Math.round(8999*Math.random()+1E3)),a._EPADashboard_.setupevents(b[c].id)}},300)},log:function(b){try{console.log(b)}catch(e){}},doubleCheck:function(){a._EPADashboard_.checkInterval=setInterval(function(){a._EPADashboard_.checkCount++;5<=a._EPADashboard_.checkCount||a._EPADashboard_.initStarted?
6
+ clearInterval(a._EPADashboard_.checkInterval):(a._EPADashboard_.apiInit(),a._EPADashboard_.log("YT API init"))},1E3)},selectText:function(b){if(document.selection){var c=document.body.createTextRange();c.moveToElementText(b);c.select()}else a.getSelection&&(c=document.createRange(),c.selectNode(b),a.getSelection().addRange(c))}});a.onYouTubeIframeAPIReady="undefined"!==typeof a.onYouTubeIframeAPIReady?a.onYouTubeIframeAPIReady:function(){if(a._EPYT_.pageLoaded)a._EPADashboard_.apiInit(),a._EPADashboard_.log("YT API ready");
7
+ else c(a).on("load._EPYT_",function(){a._EPADashboard_.apiInit();a._EPADashboard_.log("YT API ready")})};if("undefined"===typeof a.YT){var h=document.createElement("script");h.src="//www.youtube.com/iframe_api";h.type="text/javascript";document.getElementsByTagName("head")[0].appendChild(h)}else if(a.YT.loaded)if(a._EPYT_.pageLoaded)a._EPADashboard_.log("YT API available"),a._EPADashboard_.apiInit();else c(a).on("load._EPYT_",function(){a._EPADashboard_.log("YT API available");a._EPADashboard_.apiInit()});
8
+ if(a._EPYT_.pageLoaded)a._EPADashboard_.doubleCheck();else c(a).on("load._EPYT_",function(){a._EPADashboard_.doubleCheck()});c(document).ready(function(){c(".epyt-gallery").each(function(){var b=c(this),e=c(this).find("iframe").first(),d=e.attr("src");d||(d=e.data("ep-src"));var g=c(this).find(".epyt-gallery-list .epyt-gallery-thumb").first().data("videoid"),d=d.replace(g,"GALLERYVIDEOID");e.data("ep-gallerysrc",d);b.find(".epyt-gallery-list");b.on("click",".epyt-gallery-list .epyt-gallery-thumb",
9
+ function(){b.find(".epyt-gallery-list .epyt-gallery-thumb").removeClass("epyt-current-video");c(this).addClass("epyt-current-video");var d=c(this).data("videoid");b.data("currvid",d);var f=e.data("ep-gallerysrc").replace("GALLERYVIDEOID",d),d=b.find(".epyt-pagebutton").first().data("thumbplay");"0"!==d&&0!==d&&(f=0<f.indexOf("autoplay")?f.replace("autoplay=0","autoplay=1"):f+"&autoplay=1",e.addClass("epyt-thumbplay"));c("html, body").animate({scrollTop:e.offset().top-parseInt(_EPYT_.gallery_scrolloffset)},
10
+ 500,function(){e.attr("src",f);a._EPADashboard_.setupevents(e.attr("id"))})}).on("keydown",".epyt-gallery-list .epyt-gallery-thumb, .epyt-pagebutton",function(b){var a=b.which;if(13===a||32===a)b.preventDefault(),c(this).click()});b.on("mouseenter",".epyt-gallery-list .epyt-gallery-thumb",function(){c(this).addClass("hover")});b.on("mouseleave",".epyt-gallery-list .epyt-gallery-thumb",function(){c(this).removeClass("hover")});b.on("click",".epyt-pagebutton",function(){var a={action:"my_embedplus_gallery_page",
11
+ security:_EPYT_.security,options:{playlistId:c(this).data("playlistid"),pageToken:c(this).data("pagetoken"),pageSize:c(this).data("pagesize"),columns:c(this).data("columns"),showTitle:c(this).data("showtitle"),showPaging:c(this).data("showpaging"),autonext:c(this).data("autonext"),thumbplay:c(this).data("thumbplay")}},d=c(this).hasClass("epyt-next"),e=parseInt(b.data("currpage")+"");b.data("currpage",e+(d?1:-1));b.find(".epyt-gallery-list").addClass("epyt-loading");c.post(_EPYT_.ajaxurl,a,function(a){b.find(".epyt-gallery-list").html(a);
12
+ b.find(".epyt-current").each(function(){c(this).text(b.data("currpage"))});b.find('.epyt-gallery-thumb[data-videoid="'+b.data("currvid")+'"]').addClass("epyt-current-video");"1"==b.find(".epyt-pagebutton").first().data("autonext")&&b.find(".epyt-gallery-thumb").first().click()}).fail(function(){alert("Sorry, there was an error loading the next page.")}).always(function(){b.find(".epyt-gallery-list").removeClass("epyt-loading");c("html, body").animate({scrollTop:b.find(".epyt-gallery-list").offset().top-
13
+ parseInt(_EPYT_.gallery_scrolloffset)},500)})})})})})(window,jQuery);
 
 
 
 
styles/images/ui-bg_glass_65_ffffff_1x400.png ADDED
Binary file
styles/images/ui-bg_glass_75_dadada_1x400.png ADDED
Binary file
styles/images/ui-bg_glass_75_e6e6e6_1x400.png ADDED
Binary file
styles/images/ui-bg_highlight-soft_75_cccccc_1x100.png ADDED
Binary file
styles/images/ui-icons_222222_256x240.png ADDED
Binary file
styles/images/ui-icons_454545_256x240.png ADDED
Binary file
styles/images/ui-icons_888888_256x240.png ADDED
Binary file
styles/jquery-ui.css ADDED
@@ -0,0 +1,1311 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.12.1 - 2016-09-14
2
+ * http://jqueryui.com
3
+ * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden {
10
+ display: none;
11
+ }
12
+ .ui-helper-hidden-accessible {
13
+ border: 0;
14
+ clip: rect(0 0 0 0);
15
+ height: 1px;
16
+ margin: -1px;
17
+ overflow: hidden;
18
+ padding: 0;
19
+ position: absolute;
20
+ width: 1px;
21
+ }
22
+ .ui-helper-reset {
23
+ margin: 0;
24
+ padding: 0;
25
+ border: 0;
26
+ outline: 0;
27
+ line-height: 1.3;
28
+ text-decoration: none;
29
+ font-size: 100%;
30
+ list-style: none;
31
+ }
32
+ .ui-helper-clearfix:before,
33
+ .ui-helper-clearfix:after {
34
+ content: "";
35
+ display: table;
36
+ border-collapse: collapse;
37
+ }
38
+ .ui-helper-clearfix:after {
39
+ clear: both;
40
+ }
41
+ .ui-helper-zfix {
42
+ width: 100%;
43
+ height: 100%;
44
+ top: 0;
45
+ left: 0;
46
+ position: absolute;
47
+ opacity: 0;
48
+ filter:Alpha(Opacity=0); /* support: IE8 */
49
+ }
50
+
51
+ .ui-front {
52
+ z-index: 100;
53
+ }
54
+
55
+
56
+ /* Interaction Cues
57
+ ----------------------------------*/
58
+ .ui-state-disabled {
59
+ cursor: default !important;
60
+ pointer-events: none;
61
+ }
62
+
63
+
64
+ /* Icons
65
+ ----------------------------------*/
66
+ .ui-icon {
67
+ display: inline-block;
68
+ vertical-align: middle;
69
+ margin-top: -.25em;
70
+ position: relative;
71
+ text-indent: -99999px;
72
+ overflow: hidden;
73
+ background-repeat: no-repeat;
74
+ }
75
+
76
+ .ui-widget-icon-block {
77
+ left: 50%;
78
+ margin-left: -8px;
79
+ display: block;
80
+ }
81
+
82
+ /* Misc visuals
83
+ ----------------------------------*/
84
+
85
+ /* Overlays */
86
+ .ui-widget-overlay {
87
+ position: fixed;
88
+ top: 0;
89
+ left: 0;
90
+ width: 100%;
91
+ height: 100%;
92
+ }
93
+ .ui-accordion .ui-accordion-header {
94
+ display: block;
95
+ cursor: pointer;
96
+ position: relative;
97
+ margin: 2px 0 0 0;
98
+ padding: .5em .5em .5em .7em;
99
+ font-size: 100%;
100
+ }
101
+ .ui-accordion .ui-accordion-content {
102
+ padding: 1em 2.2em;
103
+ border-top: 0;
104
+ overflow: auto;
105
+ }
106
+ .ui-autocomplete {
107
+ position: absolute;
108
+ top: 0;
109
+ left: 0;
110
+ cursor: default;
111
+ }
112
+ .ui-menu {
113
+ list-style: none;
114
+ padding: 0;
115
+ margin: 0;
116
+ display: block;
117
+ outline: 0;
118
+ }
119
+ .ui-menu .ui-menu {
120
+ position: absolute;
121
+ }
122
+ .ui-menu .ui-menu-item {
123
+ margin: 0;
124
+ cursor: pointer;
125
+ /* support: IE10, see #8844 */
126
+ list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
127
+ }
128
+ .ui-menu .ui-menu-item-wrapper {
129
+ position: relative;
130
+ padding: 3px 1em 3px .4em;
131
+ }
132
+ .ui-menu .ui-menu-divider {
133
+ margin: 5px 0;
134
+ height: 0;
135
+ font-size: 0;
136
+ line-height: 0;
137
+ border-width: 1px 0 0 0;
138
+ }
139
+ .ui-menu .ui-state-focus,
140
+ .ui-menu .ui-state-active {
141
+ margin: -1px;
142
+ }
143
+
144
+ /* icon support */
145
+ .ui-menu-icons {
146
+ position: relative;
147
+ }
148
+ .ui-menu-icons .ui-menu-item-wrapper {
149
+ padding-left: 2em;
150
+ }
151
+
152
+ /* left-aligned */
153
+ .ui-menu .ui-icon {
154
+ position: absolute;
155
+ top: 0;
156
+ bottom: 0;
157
+ left: .2em;
158
+ margin: auto 0;
159
+ }
160
+
161
+ /* right-aligned */
162
+ .ui-menu .ui-menu-icon {
163
+ left: auto;
164
+ right: 0;
165
+ }
166
+ .ui-button {
167
+ padding: .4em 1em;
168
+ display: inline-block;
169
+ position: relative;
170
+ line-height: normal;
171
+ margin-right: .1em;
172
+ cursor: pointer;
173
+ vertical-align: middle;
174
+ text-align: center;
175
+ -webkit-user-select: none;
176
+ -moz-user-select: none;
177
+ -ms-user-select: none;
178
+ user-select: none;
179
+
180
+ /* Support: IE <= 11 */
181
+ overflow: visible;
182
+ }
183
+
184
+ .ui-button,
185
+ .ui-button:link,
186
+ .ui-button:visited,
187
+ .ui-button:hover,
188
+ .ui-button:active {
189
+ text-decoration: none;
190
+ }
191
+
192
+ /* to make room for the icon, a width needs to be set here */
193
+ .ui-button-icon-only {
194
+ width: 2em;
195
+ box-sizing: border-box;
196
+ text-indent: -9999px;
197
+ white-space: nowrap;
198
+ }
199
+
200
+ /* no icon support for input elements */
201
+ input.ui-button.ui-button-icon-only {
202
+ text-indent: 0;
203
+ }
204
+
205
+ /* button icon element(s) */
206
+ .ui-button-icon-only .ui-icon {
207
+ position: absolute;
208
+ top: 50%;
209
+ left: 50%;
210
+ margin-top: -8px;
211
+ margin-left: -8px;
212
+ }
213
+
214
+ .ui-button.ui-icon-notext .ui-icon {
215
+ padding: 0;
216
+ width: 2.1em;
217
+ height: 2.1em;
218
+ text-indent: -9999px;
219
+ white-space: nowrap;
220
+
221
+ }
222
+
223
+ input.ui-button.ui-icon-notext .ui-icon {
224
+ width: auto;
225
+ height: auto;
226
+ text-indent: 0;
227
+ white-space: normal;
228
+ padding: .4em 1em;
229
+ }
230
+
231
+ /* workarounds */
232
+ /* Support: Firefox 5 - 40 */
233
+ input.ui-button::-moz-focus-inner,
234
+ button.ui-button::-moz-focus-inner {
235
+ border: 0;
236
+ padding: 0;
237
+ }
238
+ .ui-controlgroup {
239
+ vertical-align: middle;
240
+ display: inline-block;
241
+ }
242
+ .ui-controlgroup > .ui-controlgroup-item {
243
+ float: left;
244
+ margin-left: 0;
245
+ margin-right: 0;
246
+ }
247
+ .ui-controlgroup > .ui-controlgroup-item:focus,
248
+ .ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
249
+ z-index: 9999;
250
+ }
251
+ .ui-controlgroup-vertical > .ui-controlgroup-item {
252
+ display: block;
253
+ float: none;
254
+ width: 100%;
255
+ margin-top: 0;
256
+ margin-bottom: 0;
257
+ text-align: left;
258
+ }
259
+ .ui-controlgroup-vertical .ui-controlgroup-item {
260
+ box-sizing: border-box;
261
+ }
262
+ .ui-controlgroup .ui-controlgroup-label {
263
+ padding: .4em 1em;
264
+ }
265
+ .ui-controlgroup .ui-controlgroup-label span {
266
+ font-size: 80%;
267
+ }
268
+ .ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
269
+ border-left: none;
270
+ }
271
+ .ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
272
+ border-top: none;
273
+ }
274
+ .ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
275
+ border-right: none;
276
+ }
277
+ .ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
278
+ border-bottom: none;
279
+ }
280
+
281
+ /* Spinner specific style fixes */
282
+ .ui-controlgroup-vertical .ui-spinner-input {
283
+
284
+ /* Support: IE8 only, Android < 4.4 only */
285
+ width: 75%;
286
+ width: calc( 100% - 2.4em );
287
+ }
288
+ .ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
289
+ border-top-style: solid;
290
+ }
291
+
292
+ .ui-checkboxradio-label .ui-icon-background {
293
+ box-shadow: inset 1px 1px 1px #ccc;
294
+ border-radius: .12em;
295
+ border: none;
296
+ }
297
+ .ui-checkboxradio-radio-label .ui-icon-background {
298
+ width: 16px;
299
+ height: 16px;
300
+ border-radius: 1em;
301
+ overflow: visible;
302
+ border: none;
303
+ }
304
+ .ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
305
+ .ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
306
+ background-image: none;
307
+ width: 8px;
308
+ height: 8px;
309
+ border-width: 4px;
310
+ border-style: solid;
311
+ }
312
+ .ui-checkboxradio-disabled {
313
+ pointer-events: none;
314
+ }
315
+ .ui-datepicker {
316
+ width: 17em;
317
+ padding: .2em .2em 0;
318
+ display: none;
319
+ }
320
+ .ui-datepicker .ui-datepicker-header {
321
+ position: relative;
322
+ padding: .2em 0;
323
+ }
324
+ .ui-datepicker .ui-datepicker-prev,
325
+ .ui-datepicker .ui-datepicker-next {
326
+ position: absolute;
327
+ top: 2px;
328
+ width: 1.8em;
329
+ height: 1.8em;
330
+ }
331
+ .ui-datepicker .ui-datepicker-prev-hover,
332
+ .ui-datepicker .ui-datepicker-next-hover {
333
+ top: 1px;
334
+ }
335
+ .ui-datepicker .ui-datepicker-prev {
336
+ left: 2px;
337
+ }
338
+ .ui-datepicker .ui-datepicker-next {
339
+ right: 2px;
340
+ }
341
+ .ui-datepicker .ui-datepicker-prev-hover {
342
+ left: 1px;
343
+ }
344
+ .ui-datepicker .ui-datepicker-next-hover {
345
+ right: 1px;
346
+ }
347
+ .ui-datepicker .ui-datepicker-prev span,
348
+ .ui-datepicker .ui-datepicker-next span {
349
+ display: block;
350
+ position: absolute;
351
+ left: 50%;
352
+ margin-left: -8px;
353
+ top: 50%;
354
+ margin-top: -8px;
355
+ }
356
+ .ui-datepicker .ui-datepicker-title {
357
+ margin: 0 2.3em;
358
+ line-height: 1.8em;
359
+ text-align: center;
360
+ }
361
+ .ui-datepicker .ui-datepicker-title select {
362
+ font-size: 1em;
363
+ margin: 1px 0;
364
+ }
365
+ .ui-datepicker select.ui-datepicker-month,
366
+ .ui-datepicker select.ui-datepicker-year {
367
+ width: 45%;
368
+ }
369
+ .ui-datepicker table {
370
+ width: 100%;
371
+ font-size: .9em;
372
+ border-collapse: collapse;
373
+ margin: 0 0 .4em;
374
+ }
375
+ .ui-datepicker th {
376
+ padding: .7em .3em;
377
+ text-align: center;
378
+ font-weight: bold;
379
+ border: 0;
380
+ }
381
+ .ui-datepicker td {
382
+ border: 0;
383
+ padding: 1px;
384
+ }
385
+ .ui-datepicker td span,
386
+ .ui-datepicker td a {
387
+ display: block;
388
+ padding: .2em;
389
+ text-align: right;
390
+ text-decoration: none;
391
+ }
392
+ .ui-datepicker .ui-datepicker-buttonpane {
393
+ background-image: none;
394
+ margin: .7em 0 0 0;
395
+ padding: 0 .2em;
396
+ border-left: 0;
397
+ border-right: 0;
398
+ border-bottom: 0;
399
+ }
400
+ .ui-datepicker .ui-datepicker-buttonpane button {
401
+ float: right;
402
+ margin: .5em .2em .4em;
403
+ cursor: pointer;
404
+ padding: .2em .6em .3em .6em;
405
+ width: auto;
406
+ overflow: visible;
407
+ }
408
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
409
+ float: left;
410
+ }
411
+
412
+ /* with multiple calendars */
413
+ .ui-datepicker.ui-datepicker-multi {
414
+ width: auto;
415
+ }
416
+ .ui-datepicker-multi .ui-datepicker-group {
417
+ float: left;
418
+ }
419
+ .ui-datepicker-multi .ui-datepicker-group table {
420
+ width: 95%;
421
+ margin: 0 auto .4em;
422
+ }
423
+ .ui-datepicker-multi-2 .ui-datepicker-group {
424
+ width: 50%;
425
+ }
426
+ .ui-datepicker-multi-3 .ui-datepicker-group {
427
+ width: 33.3%;
428
+ }
429
+ .ui-datepicker-multi-4 .ui-datepicker-group {
430
+ width: 25%;
431
+ }
432
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
433
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
434
+ border-left-width: 0;
435
+ }
436
+ .ui-datepicker-multi .ui-datepicker-buttonpane {
437
+ clear: left;
438
+ }
439
+ .ui-datepicker-row-break {
440
+ clear: both;
441
+ width: 100%;
442
+ font-size: 0;
443
+ }
444
+
445
+ /* RTL support */
446
+ .ui-datepicker-rtl {
447
+ direction: rtl;
448
+ }
449
+ .ui-datepicker-rtl .ui-datepicker-prev {
450
+ right: 2px;
451
+ left: auto;
452
+ }
453
+ .ui-datepicker-rtl .ui-datepicker-next {
454
+ left: 2px;
455
+ right: auto;
456
+ }
457
+ .ui-datepicker-rtl .ui-datepicker-prev:hover {
458
+ right: 1px;
459
+ left: auto;
460
+ }
461
+ .ui-datepicker-rtl .ui-datepicker-next:hover {
462
+ left: 1px;
463
+ right: auto;
464
+ }
465
+ .ui-datepicker-rtl .ui-datepicker-buttonpane {
466
+ clear: right;
467
+ }
468
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button {
469
+ float: left;
470
+ }
471
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
472
+ .ui-datepicker-rtl .ui-datepicker-group {
473
+ float: right;
474
+ }
475
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
476
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
477
+ border-right-width: 0;
478
+ border-left-width: 1px;
479
+ }
480
+
481
+ /* Icons */
482
+ .ui-datepicker .ui-icon {
483
+ display: block;
484
+ text-indent: -99999px;
485
+ overflow: hidden;
486
+ background-repeat: no-repeat;
487
+ left: .5em;
488
+ top: .3em;
489
+ }
490
+ .ui-dialog {
491
+ position: absolute;
492
+ top: 0;
493
+ left: 0;
494
+ padding: .2em;
495
+ outline: 0;
496
+ }
497
+ .ui-dialog .ui-dialog-titlebar {
498
+ padding: .4em 1em;
499
+ position: relative;
500
+ }
501
+ .ui-dialog .ui-dialog-title {
502
+ float: left;
503
+ margin: .1em 0;
504
+ white-space: nowrap;
505
+ width: 90%;
506
+ overflow: hidden;
507
+ text-overflow: ellipsis;
508
+ }
509
+ .ui-dialog .ui-dialog-titlebar-close {
510
+ position: absolute;
511
+ right: .3em;
512
+ top: 50%;
513
+ width: 20px;
514
+ margin: -10px 0 0 0;
515
+ padding: 1px;
516
+ height: 20px;
517
+ }
518
+ .ui-dialog .ui-dialog-content {
519
+ position: relative;
520
+ border: 0;
521
+ padding: .5em 1em;
522
+ background: none;
523
+ overflow: auto;
524
+ }
525
+ .ui-dialog .ui-dialog-buttonpane {
526
+ text-align: left;
527
+ border-width: 1px 0 0 0;
528
+ background-image: none;
529
+ margin-top: .5em;
530
+ padding: .3em 1em .5em .4em;
531
+ }
532
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
533
+ float: right;
534
+ }
535
+ .ui-dialog .ui-dialog-buttonpane button {
536
+ margin: .5em .4em .5em 0;
537
+ cursor: pointer;
538
+ }
539
+ .ui-dialog .ui-resizable-n {
540
+ height: 2px;
541
+ top: 0;
542
+ }
543
+ .ui-dialog .ui-resizable-e {
544
+ width: 2px;
545
+ right: 0;
546
+ }
547
+ .ui-dialog .ui-resizable-s {
548
+ height: 2px;
549
+ bottom: 0;
550
+ }
551
+ .ui-dialog .ui-resizable-w {
552
+ width: 2px;
553
+ left: 0;
554
+ }
555
+ .ui-dialog .ui-resizable-se,
556
+ .ui-dialog .ui-resizable-sw,
557
+ .ui-dialog .ui-resizable-ne,
558
+ .ui-dialog .ui-resizable-nw {
559
+ width: 7px;
560
+ height: 7px;
561
+ }
562
+ .ui-dialog .ui-resizable-se {
563
+ right: 0;
564
+ bottom: 0;
565
+ }
566
+ .ui-dialog .ui-resizable-sw {
567
+ left: 0;
568
+ bottom: 0;
569
+ }
570
+ .ui-dialog .ui-resizable-ne {
571
+ right: 0;
572
+ top: 0;
573
+ }
574
+ .ui-dialog .ui-resizable-nw {
575
+ left: 0;
576
+ top: 0;
577
+ }
578
+ .ui-draggable .ui-dialog-titlebar {
579
+ cursor: move;
580
+ }
581
+ .ui-draggable-handle {
582
+ -ms-touch-action: none;
583
+ touch-action: none;
584
+ }
585
+ .ui-resizable {
586
+ position: relative;
587
+ }
588
+ .ui-resizable-handle {
589
+ position: absolute;
590
+ font-size: 0.1px;
591
+ display: block;
592
+ -ms-touch-action: none;
593
+ touch-action: none;
594
+ }
595
+ .ui-resizable-disabled .ui-resizable-handle,
596
+ .ui-resizable-autohide .ui-resizable-handle {
597
+ display: none;
598
+ }
599
+ .ui-resizable-n {
600
+ cursor: n-resize;
601
+ height: 7px;
602
+ width: 100%;
603
+ top: -5px;
604
+ left: 0;
605
+ }
606
+ .ui-resizable-s {
607
+ cursor: s-resize;
608
+ height: 7px;
609
+ width: 100%;
610
+ bottom: -5px;
611
+ left: 0;
612
+ }
613
+ .ui-resizable-e {
614
+ cursor: e-resize;
615
+ width: 7px;
616
+ right: -5px;
617
+ top: 0;
618
+ height: 100%;
619
+ }
620
+ .ui-resizable-w {
621
+ cursor: w-resize;
622
+ width: 7px;
623
+ left: -5px;
624
+ top: 0;
625
+ height: 100%;
626
+ }
627
+ .ui-resizable-se {
628
+ cursor: se-resize;
629
+ width: 12px;
630
+ height: 12px;
631
+ right: 1px;
632
+ bottom: 1px;
633
+ }
634
+ .ui-resizable-sw {
635
+ cursor: sw-resize;
636
+ width: 9px;
637
+ height: 9px;
638
+ left: -5px;
639
+ bottom: -5px;
640
+ }
641
+ .ui-resizable-nw {
642
+ cursor: nw-resize;
643
+ width: 9px;
644
+ height: 9px;
645
+ left: -5px;
646
+ top: -5px;
647
+ }
648
+ .ui-resizable-ne {
649
+ cursor: ne-resize;
650
+ width: 9px;
651
+ height: 9px;
652
+ right: -5px;
653
+ top: -5px;
654
+ }
655
+ .ui-progressbar {
656
+ height: 2em;
657
+ text-align: left;
658
+ overflow: hidden;
659
+ }
660
+ .ui-progressbar .ui-progressbar-value {
661
+ margin: -1px;
662
+ height: 100%;
663
+ }
664
+ .ui-progressbar .ui-progressbar-overlay {
665
+ background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
666
+ height: 100%;
667
+ filter: alpha(opacity=25); /* support: IE8 */
668
+ opacity: 0.25;
669
+ }
670
+ .ui-progressbar-indeterminate .ui-progressbar-value {
671
+ background-image: none;
672
+ }
673
+ .ui-selectable {
674
+ -ms-touch-action: none;
675
+ touch-action: none;
676
+ }
677
+ .ui-selectable-helper {
678
+ position: absolute;
679
+ z-index: 100;
680
+ border: 1px dotted black;
681
+ }
682
+ .ui-selectmenu-menu {
683
+ padding: 0;
684
+ margin: 0;
685
+ position: absolute;
686
+ top: 0;
687
+ left: 0;
688
+ display: none;
689
+ }
690
+ .ui-selectmenu-menu .ui-menu {
691
+ overflow: auto;
692
+ overflow-x: hidden;
693
+ padding-bottom: 1px;
694
+ }
695
+ .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
696
+ font-size: 1em;
697
+ font-weight: bold;
698
+ line-height: 1.5;
699
+ padding: 2px 0.4em;
700
+ margin: 0.5em 0 0 0;
701
+ height: auto;
702
+ border: 0;
703
+ }
704
+ .ui-selectmenu-open {
705
+ display: block;
706
+ }
707
+ .ui-selectmenu-text {
708
+ display: block;
709
+ margin-right: 20px;
710
+ overflow: hidden;
711
+ text-overflow: ellipsis;
712
+ }
713
+ .ui-selectmenu-button.ui-button {
714
+ text-align: left;
715
+ white-space: nowrap;
716
+ width: 14em;
717
+ }
718
+ .ui-selectmenu-icon.ui-icon {
719
+ float: right;
720
+ margin-top: 0;
721
+ }
722
+ .ui-slider {
723
+ position: relative;
724
+ text-align: left;
725
+ }
726
+ .ui-slider .ui-slider-handle {
727
+ position: absolute;
728
+ z-index: 2;
729
+ width: 1.2em;
730
+ height: 1.2em;
731
+ cursor: default;
732
+ -ms-touch-action: none;
733
+ touch-action: none;
734
+ }
735
+ .ui-slider .ui-slider-range {
736
+ position: absolute;
737
+ z-index: 1;
738
+ font-size: .7em;
739
+ display: block;
740
+ border: 0;
741
+ background-position: 0 0;
742
+ }
743
+
744
+ /* support: IE8 - See #6727 */
745
+ .ui-slider.ui-state-disabled .ui-slider-handle,
746
+ .ui-slider.ui-state-disabled .ui-slider-range {
747
+ filter: inherit;
748
+ }
749
+
750
+ .ui-slider-horizontal {
751
+ height: .8em;
752
+ }
753
+ .ui-slider-horizontal .ui-slider-handle {
754
+ top: -.3em;
755
+ margin-left: -.6em;
756
+ }
757
+ .ui-slider-horizontal .ui-slider-range {
758
+ top: 0;
759
+ height: 100%;
760
+ }
761
+ .ui-slider-horizontal .ui-slider-range-min {
762
+ left: 0;
763
+ }
764
+ .ui-slider-horizontal .ui-slider-range-max {
765
+ right: 0;
766
+ }
767
+
768
+ .ui-slider-vertical {
769
+ width: .8em;
770
+ height: 100px;
771
+ }
772
+ .ui-slider-vertical .ui-slider-handle {
773
+ left: -.3em;
774
+ margin-left: 0;
775
+ margin-bottom: -.6em;
776
+ }
777
+ .ui-slider-vertical .ui-slider-range {
778
+ left: 0;
779
+ width: 100%;
780
+ }
781
+ .ui-slider-vertical .ui-slider-range-min {
782
+ bottom: 0;
783
+ }
784
+ .ui-slider-vertical .ui-slider-range-max {
785
+ top: 0;
786
+ }
787
+ .ui-sortable-handle {
788
+ -ms-touch-action: none;
789
+ touch-action: none;
790
+ }
791
+ .ui-spinner {
792
+ position: relative;
793
+ display: inline-block;
794
+ overflow: hidden;
795
+ padding: 0;
796
+ vertical-align: middle;
797
+ }
798
+ .ui-spinner-input {
799
+ border: none;
800
+ background: none;
801
+ color: inherit;
802
+ padding: .222em 0;
803
+ margin: .2em 0;
804
+ vertical-align: middle;
805
+ margin-left: .4em;
806
+ margin-right: 2em;
807
+ }
808
+ .ui-spinner-button {
809
+ width: 1.6em;
810
+ height: 50%;
811
+ font-size: .5em;
812
+ padding: 0;
813
+ margin: 0;
814
+ text-align: center;
815
+ position: absolute;
816
+ cursor: default;
817
+ display: block;
818
+ overflow: hidden;
819
+ right: 0;
820
+ }
821
+ /* more specificity required here to override default borders */
822
+ .ui-spinner a.ui-spinner-button {
823
+ border-top-style: none;
824
+ border-bottom-style: none;
825
+ border-right-style: none;
826
+ }
827
+ .ui-spinner-up {
828
+ top: 0;
829
+ }
830
+ .ui-spinner-down {
831
+ bottom: 0;
832
+ }
833
+ .ui-tabs {
834
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
835
+ padding: .2em;
836
+ }
837
+ .ui-tabs .ui-tabs-nav {
838
+ margin: 0;
839
+ padding: .2em .2em 0;
840
+ }
841
+ .ui-tabs .ui-tabs-nav li {
842
+ list-style: none;
843
+ float: left;
844
+ position: relative;
845
+ top: 0;
846
+ margin: 1px .2em 0 0;
847
+ border-bottom-width: 0;
848
+ padding: 0;
849
+ white-space: nowrap;
850
+ }
851
+ .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
852
+ float: left;
853
+ padding: .5em 1em;
854
+ text-decoration: none;
855
+ }
856
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active {
857
+ margin-bottom: -1px;
858
+ padding-bottom: 1px;
859
+ }
860
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
861
+ .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
862
+ .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
863
+ cursor: text;
864
+ }
865
+ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
866
+ cursor: pointer;
867
+ }
868
+ .ui-tabs .ui-tabs-panel {
869
+ display: block;
870
+ border-width: 0;
871
+ padding: 1em 1.4em;
872
+ background: none;
873
+ }
874
+ .ui-tooltip {
875
+ padding: 8px;
876
+ position: absolute;
877
+ z-index: 9999;
878
+ max-width: 300px;
879
+ }
880
+ body .ui-tooltip {
881
+ border-width: 2px;
882
+ }
883
+ /* Component containers
884
+ ----------------------------------*/
885
+ .ui-widget {
886
+ font-family: Verdana,Arial,sans-serif;
887
+ font-size: 1.1em;
888
+ }
889
+ .ui-widget .ui-widget {
890
+ font-size: 1em;
891
+ }
892
+ .ui-widget input,
893
+ .ui-widget select,
894
+ .ui-widget textarea,
895
+ .ui-widget button {
896
+ font-family: Verdana,Arial,sans-serif;
897
+ font-size: 1em;
898
+ }
899
+ .ui-widget.ui-widget-content {
900
+ border: 1px solid #d3d3d3;
901
+ }
902
+ .ui-widget-content {
903
+ border: 1px solid #aaaaaa;
904
+ background: #ffffff;
905
+ color: #222222;
906
+ }
907
+ .ui-widget-content a {
908
+ color: #222222;
909
+ }
910
+ .ui-widget-header {
911
+ border: 1px solid #aaaaaa;
912
+ background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
913
+ color: #222222;
914
+ font-weight: bold;
915
+ }
916
+ .ui-widget-header a {
917
+ color: #222222;
918
+ }
919
+
920
+ /* Interaction states
921
+ ----------------------------------*/
922
+ .ui-state-default,
923
+ .ui-widget-content .ui-state-default,
924
+ .ui-widget-header .ui-state-default,
925
+ .ui-button,
926
+
927
+ /* We use html here because we need a greater specificity to make sure disabled
928
+ works properly when clicked or hovered */
929
+ html .ui-button.ui-state-disabled:hover,
930
+ html .ui-button.ui-state-disabled:active {
931
+ border: 1px solid #d3d3d3;
932
+ background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
933
+ font-weight: normal;
934
+ color: #555555;
935
+ }
936
+ .ui-state-default a,
937
+ .ui-state-default a:link,
938
+ .ui-state-default a:visited,
939
+ a.ui-button,
940
+ a:link.ui-button,
941
+ a:visited.ui-button,
942
+ .ui-button {
943
+ color: #555555;
944
+ text-decoration: none;
945
+ }
946
+ .ui-state-hover,
947
+ .ui-widget-content .ui-state-hover,
948
+ .ui-widget-header .ui-state-hover,
949
+ .ui-state-focus,
950
+ .ui-widget-content .ui-state-focus,
951
+ .ui-widget-header .ui-state-focus,
952
+ .ui-button:hover,
953
+ .ui-button:focus {
954
+ border: 1px solid #999999;
955
+ background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
956
+ font-weight: normal;
957
+ color: #212121;
958
+ }
959
+ .ui-state-hover a,
960
+ .ui-state-hover a:hover,
961
+ .ui-state-hover a:link,
962
+ .ui-state-hover a:visited,
963
+ .ui-state-focus a,
964
+ .ui-state-focus a:hover,
965
+ .ui-state-focus a:link,
966
+ .ui-state-focus a:visited,
967
+ a.ui-button:hover,
968
+ a.ui-button:focus {
969
+ color: #212121;
970
+ text-decoration: none;
971
+ }
972
+
973
+ .ui-visual-focus {
974
+ box-shadow: 0 0 3px 1px rgb(94, 158, 214);
975
+ }
976
+ .ui-state-active,
977
+ .ui-widget-content .ui-state-active,
978
+ .ui-widget-header .ui-state-active,
979
+ a.ui-button:active,
980
+ .ui-button:active,
981
+ .ui-button.ui-state-active:hover {
982
+ border: 1px solid #aaaaaa;
983
+ background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
984
+ font-weight: normal;
985
+ color: #212121;
986
+ }
987
+ .ui-icon-background,
988
+ .ui-state-active .ui-icon-background {
989
+ border: #aaaaaa;
990
+ background-color: #212121;
991
+ }
992
+ .ui-state-active a,
993
+ .ui-state-active a:link,
994
+ .ui-state-active a:visited {
995
+ color: #212121;
996
+ text-decoration: none;
997
+ }
998
+
999
+ /* Interaction Cues
1000
+ ----------------------------------*/
1001
+ .ui-state-highlight,
1002
+ .ui-widget-content .ui-state-highlight,
1003
+ .ui-widget-header .ui-state-highlight {
1004
+ border: 1px solid #fcefa1;
1005
+ background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
1006
+ color: #363636;
1007
+ }
1008
+ .ui-state-checked {
1009
+ border: 1px solid #fcefa1;
1010
+ background: #fbf9ee;
1011
+ }
1012
+ .ui-state-highlight a,
1013
+ .ui-widget-content .ui-state-highlight a,
1014
+ .ui-widget-header .ui-state-highlight a {
1015
+ color: #363636;
1016
+ }
1017
+ .ui-state-error,
1018
+ .ui-widget-content .ui-state-error,
1019
+ .ui-widget-header .ui-state-error {
1020
+ border: 1px solid #cd0a0a;
1021
+ background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
1022
+ color: #cd0a0a;
1023
+ }
1024
+ .ui-state-error a,
1025
+ .ui-widget-content .ui-state-error a,
1026
+ .ui-widget-header .ui-state-error a {
1027
+ color: #cd0a0a;
1028
+ }
1029
+ .ui-state-error-text,
1030
+ .ui-widget-content .ui-state-error-text,
1031
+ .ui-widget-header .ui-state-error-text {
1032
+ color: #cd0a0a;
1033
+ }
1034
+ .ui-priority-primary,
1035
+ .ui-widget-content .ui-priority-primary,
1036
+ .ui-widget-header .ui-priority-primary {
1037
+ font-weight: bold;
1038
+ }
1039
+ .ui-priority-secondary,
1040
+ .ui-widget-content .ui-priority-secondary,
1041
+ .ui-widget-header .ui-priority-secondary {
1042
+ opacity: .7;
1043
+ filter:Alpha(Opacity=70); /* support: IE8 */
1044
+ font-weight: normal;
1045
+ }
1046
+ .ui-state-disabled,
1047
+ .ui-widget-content .ui-state-disabled,
1048
+ .ui-widget-header .ui-state-disabled {
1049
+ opacity: .35;
1050
+ filter:Alpha(Opacity=35); /* support: IE8 */
1051
+ background-image: none;
1052
+ }
1053
+ .ui-state-disabled .ui-icon {
1054
+ filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
1055
+ }
1056
+
1057
+ /* Icons
1058
+ ----------------------------------*/
1059
+
1060
+ /* states and images */
1061
+ .ui-icon {
1062
+ width: 16px;
1063
+ height: 16px;
1064
+ }
1065
+ .ui-icon,
1066
+ .ui-widget-content .ui-icon {
1067
+ background-image: url("images/ui-icons_222222_256x240.png");
1068
+ }
1069
+ .ui-widget-header .ui-icon {
1070
+ background-image: url("images/ui-icons_222222_256x240.png");
1071
+ }
1072
+ .ui-state-hover .ui-icon,
1073
+ .ui-state-focus .ui-icon,
1074
+ .ui-button:hover .ui-icon,
1075
+ .ui-button:focus .ui-icon {
1076
+ background-image: url("images/ui-icons_454545_256x240.png");
1077
+ }
1078
+ .ui-state-active .ui-icon,
1079
+ .ui-button:active .ui-icon {
1080
+ background-image: url("images/ui-icons_454545_256x240.png");
1081
+ }
1082
+ .ui-state-highlight .ui-icon,
1083
+ .ui-button .ui-state-highlight.ui-icon {
1084
+ background-image: url("images/ui-icons_2e83ff_256x240.png");
1085
+ }
1086
+ .ui-state-error .ui-icon,
1087
+ .ui-state-error-text .ui-icon {
1088
+ background-image: url("images/ui-icons_cd0a0a_256x240.png");
1089
+ }
1090
+ .ui-button .ui-icon {
1091
+ background-image: url("images/ui-icons_888888_256x240.png");
1092
+ }
1093
+
1094
+ /* positioning */
1095
+ .ui-icon-blank { background-position: 16px 16px; }
1096
+ .ui-icon-caret-1-n { background-position: 0 0; }
1097
+ .ui-icon-caret-1-ne { background-position: -16px 0; }
1098
+ .ui-icon-caret-1-e { background-position: -32px 0; }
1099
+ .ui-icon-caret-1-se { background-position: -48px 0; }
1100
+ .ui-icon-caret-1-s { background-position: -65px 0; }
1101
+ .ui-icon-caret-1-sw { background-position: -80px 0; }
1102
+ .ui-icon-caret-1-w { background-position: -96px 0; }
1103
+ .ui-icon-caret-1-nw { background-position: -112px 0; }
1104
+ .ui-icon-caret-2-n-s { background-position: -128px 0; }
1105
+ .ui-icon-caret-2-e-w { background-position: -144px 0; }
1106
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
1107
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
1108
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
1109
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
1110
+ .ui-icon-triangle-1-s { background-position: -65px -16px; }
1111
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
1112
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
1113
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
1114
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
1115
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
1116
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
1117
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
1118
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
1119
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
1120
+ .ui-icon-arrow-1-s { background-position: -65px -32px; }
1121
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
1122
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
1123
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
1124
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
1125
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
1126
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
1127
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
1128
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
1129
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
1130
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
1131
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
1132
+ .ui-icon-arrowthick-1-n { background-position: 1px -48px; }
1133
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
1134
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
1135
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
1136
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
1137
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1138
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1139
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1140
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1141
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1142
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1143
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1144
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1145
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1146
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1147
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1148
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1149
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1150
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1151
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1152
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1153
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1154
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1155
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1156
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1157
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1158
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1159
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1160
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
1161
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1162
+ .ui-icon-extlink { background-position: -32px -80px; }
1163
+ .ui-icon-newwin { background-position: -48px -80px; }
1164
+ .ui-icon-refresh { background-position: -64px -80px; }
1165
+ .ui-icon-shuffle { background-position: -80px -80px; }
1166
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
1167
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1168
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
1169
+ .ui-icon-folder-open { background-position: -16px -96px; }
1170
+ .ui-icon-document { background-position: -32px -96px; }
1171
+ .ui-icon-document-b { background-position: -48px -96px; }
1172
+ .ui-icon-note { background-position: -64px -96px; }
1173
+ .ui-icon-mail-closed { background-position: -80px -96px; }
1174
+ .ui-icon-mail-open { background-position: -96px -96px; }
1175
+ .ui-icon-suitcase { background-position: -112px -96px; }
1176
+ .ui-icon-comment { background-position: -128px -96px; }
1177
+ .ui-icon-person { background-position: -144px -96px; }
1178
+ .ui-icon-print { background-position: -160px -96px; }
1179
+ .ui-icon-trash { background-position: -176px -96px; }
1180
+ .ui-icon-locked { background-position: -192px -96px; }
1181
+ .ui-icon-unlocked { background-position: -208px -96px; }
1182
+ .ui-icon-bookmark { background-position: -224px -96px; }
1183
+ .ui-icon-tag { background-position: -240px -96px; }
1184
+ .ui-icon-home { background-position: 0 -112px; }
1185
+ .ui-icon-flag { background-position: -16px -112px; }
1186
+ .ui-icon-calendar { background-position: -32px -112px; }
1187
+ .ui-icon-cart { background-position: -48px -112px; }
1188
+ .ui-icon-pencil { background-position: -64px -112px; }
1189
+ .ui-icon-clock { background-position: -80px -112px; }
1190
+ .ui-icon-disk { background-position: -96px -112px; }
1191
+ .ui-icon-calculator { background-position: -112px -112px; }
1192
+ .ui-icon-zoomin { background-position: -128px -112px; }
1193
+ .ui-icon-zoomout { background-position: -144px -112px; }
1194
+ .ui-icon-search { background-position: -160px -112px; }
1195
+ .ui-icon-wrench { background-position: -176px -112px; }
1196
+ .ui-icon-gear { background-position: -192px -112px; }
1197
+ .ui-icon-heart { background-position: -208px -112px; }
1198
+ .ui-icon-star { background-position: -224px -112px; }
1199
+ .ui-icon-link { background-position: -240px -112px; }
1200
+ .ui-icon-cancel { background-position: 0 -128px; }
1201
+ .ui-icon-plus { background-position: -16px -128px; }
1202
+ .ui-icon-plusthick { background-position: -32px -128px; }
1203
+ .ui-icon-minus { background-position: -48px -128px; }
1204
+ .ui-icon-minusthick { background-position: -64px -128px; }
1205
+ .ui-icon-close { background-position: -80px -128px; }
1206
+ .ui-icon-closethick { background-position: -96px -128px; }
1207
+ .ui-icon-key { background-position: -112px -128px; }
1208
+ .ui-icon-lightbulb { background-position: -128px -128px; }
1209
+ .ui-icon-scissors { background-position: -144px -128px; }
1210
+ .ui-icon-clipboard { background-position: -160px -128px; }
1211
+ .ui-icon-copy { background-position: -176px -128px; }
1212
+ .ui-icon-contact { background-position: -192px -128px; }
1213
+ .ui-icon-image { background-position: -208px -128px; }
1214
+ .ui-icon-video { background-position: -224px -128px; }
1215
+ .ui-icon-script { background-position: -240px -128px; }
1216
+ .ui-icon-alert { background-position: 0 -144px; }
1217
+ .ui-icon-info { background-position: -16px -144px; }
1218
+ .ui-icon-notice { background-position: -32px -144px; }
1219
+ .ui-icon-help { background-position: -48px -144px; }
1220
+ .ui-icon-check { background-position: -64px -144px; }
1221
+ .ui-icon-bullet { background-position: -80px -144px; }
1222
+ .ui-icon-radio-on { background-position: -96px -144px; }
1223
+ .ui-icon-radio-off { background-position: -112px -144px; }
1224
+ .ui-icon-pin-w { background-position: -128px -144px; }
1225
+ .ui-icon-pin-s { background-position: -144px -144px; }
1226
+ .ui-icon-play { background-position: 0 -160px; }
1227
+ .ui-icon-pause { background-position: -16px -160px; }
1228
+ .ui-icon-seek-next { background-position: -32px -160px; }
1229
+ .ui-icon-seek-prev { background-position: -48px -160px; }
1230
+ .ui-icon-seek-end { background-position: -64px -160px; }
1231
+ .ui-icon-seek-start { background-position: -80px -160px; }
1232
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1233
+ .ui-icon-seek-first { background-position: -80px -160px; }
1234
+ .ui-icon-stop { background-position: -96px -160px; }
1235
+ .ui-icon-eject { background-position: -112px -160px; }
1236
+ .ui-icon-volume-off { background-position: -128px -160px; }
1237
+ .ui-icon-volume-on { background-position: -144px -160px; }
1238
+ .ui-icon-power { background-position: 0 -176px; }
1239
+ .ui-icon-signal-diag { background-position: -16px -176px; }
1240
+ .ui-icon-signal { background-position: -32px -176px; }
1241
+ .ui-icon-battery-0 { background-position: -48px -176px; }
1242
+ .ui-icon-battery-1 { background-position: -64px -176px; }
1243
+ .ui-icon-battery-2 { background-position: -80px -176px; }
1244
+ .ui-icon-battery-3 { background-position: -96px -176px; }
1245
+ .ui-icon-circle-plus { background-position: 0 -192px; }
1246
+ .ui-icon-circle-minus { background-position: -16px -192px; }
1247
+ .ui-icon-circle-close { background-position: -32px -192px; }
1248
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1249
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1250
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1251
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1252
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1253
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1254
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1255
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1256
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
1257
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
1258
+ .ui-icon-circle-check { background-position: -208px -192px; }
1259
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1260
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1261
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
1262
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1263
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1264
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
1265
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1266
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1267
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1268
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1269
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1270
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1271
+
1272
+
1273
+ /* Misc visuals
1274
+ ----------------------------------*/
1275
+
1276
+ /* Corner radius */
1277
+ .ui-corner-all,
1278
+ .ui-corner-top,
1279
+ .ui-corner-left,
1280
+ .ui-corner-tl {
1281
+ border-top-left-radius: 4px;
1282
+ }
1283
+ .ui-corner-all,
1284
+ .ui-corner-top,
1285
+ .ui-corner-right,
1286
+ .ui-corner-tr {
1287
+ border-top-right-radius: 4px;
1288
+ }
1289
+ .ui-corner-all,
1290
+ .ui-corner-bottom,
1291
+ .ui-corner-left,
1292
+ .ui-corner-bl {
1293
+ border-bottom-left-radius: 4px;
1294
+ }
1295
+ .ui-corner-all,
1296
+ .ui-corner-bottom,
1297
+ .ui-corner-right,
1298
+ .ui-corner-br {
1299
+ border-bottom-right-radius: 4px;
1300
+ }
1301
+
1302
+ /* Overlays */
1303
+ .ui-widget-overlay {
1304
+ background: #aaaaaa;
1305
+ opacity: .3;
1306
+ filter: Alpha(Opacity=30); /* support: IE8 */
1307
+ }
1308
+ .ui-widget-shadow {
1309
+ -webkit-box-shadow: -8px -8px 8px #aaaaaa;
1310
+ box-shadow: -8px -8px 8px #aaaaaa;
1311
+ }
styles/jquery-ui.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.12.1 - 2016-09-14
2
+ * http://jqueryui.com
3
+ * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
+ * Copyright jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa}
styles/ytprefs-wizard.css ADDED
@@ -0,0 +1,185 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/ */
2
+ #wphead {display:none;}
3
+ #wpbody{margin-left: 0px;}
4
+ #adminmenuback {display: none;}
5
+ #adminmenu, adminmenuwrap {display: none;}
6
+ #wpcontent, .auto-fold #wpcontent {margin-left: 0px;}
7
+ #wpadminbar {display:none;}
8
+ html.wp-toolbar {padding: 0px;}
9
+ #footer, #wpfooter, .auto-fold #wpfooter {display: none;}
10
+ #wpfooter {clear: both}
11
+ .clearboth {clear: both;}
12
+ .pad20 {padding: 20px;}
13
+ .center {text-align: center;}
14
+ .bold {font-weight: bold;}
15
+ .orange{color:#f85d00; }
16
+ .smallnote {
17
+ font-size: small;
18
+ font-style: italic;
19
+ }
20
+
21
+ .ui-accordion .ui-accordion-header {
22
+ margin-top: 15px;
23
+ font-weight: bold;
24
+ }
25
+
26
+ .ui-accordion .ui-accordion-content.header-go-content {
27
+ display: none !important;
28
+ height: 0 !important;
29
+ }
30
+
31
+ input.ui-widget[type=text] {
32
+ margin: 0;
33
+ padding: .4em 1em;
34
+ width: 450px;
35
+
36
+ }
37
+
38
+ .txt-button-align input.ui-widget[type=text],
39
+ .txt-button-align button {
40
+ vertical-align: top;
41
+
42
+ }
43
+
44
+ #epyt_wiz_wrap .ui-button {
45
+ font-weight: bold;
46
+ }
47
+
48
+ .ui-button .ui-icon {
49
+ transform: scale(1.35,1.35);
50
+ }
51
+
52
+ .copycode {
53
+ background-color: #eeeeff;
54
+ border: 2px solid #c7d6e4;
55
+ display: inline-block;
56
+ font-size: .9em;
57
+ overflow-x: hidden;
58
+ vertical-align: middle;
59
+ white-space: nowrap;
60
+ width: 400px;
61
+ padding-left: 15px;
62
+ padding-right: 15px;
63
+ }
64
+
65
+ .pointer {
66
+ cursor: pointer;
67
+ }
68
+
69
+ .relative {
70
+ position: relative;
71
+ }
72
+
73
+ .epyt-search-results a.pointer.thumb.load-movie {
74
+ float: left;
75
+ width: 160px;
76
+ height: 90px;
77
+ background-position: center;
78
+ background-size: cover;
79
+ display: block;
80
+ margin: 0 25px 10px 0;
81
+ }
82
+
83
+ .epyt-search-results .resultdiv {
84
+ margin-bottom: 40px;
85
+ }
86
+
87
+ .epyt-search-results .resultinfo {
88
+ text-align: left;
89
+ }
90
+
91
+ .epyt-search-results .resulttitle {
92
+ font-weight: bold;
93
+ }
94
+
95
+ .epyt-search-results .moviecontainer {
96
+ margin-bottom: 40px;
97
+ margin-top: -30px;
98
+ }
99
+
100
+ .epyt-search-results .closeme {
101
+ right: 110px;
102
+ top: -10px;
103
+ position: absolute;
104
+ font-weight: bold;
105
+ font-size: 50px;
106
+ cursor: pointer;
107
+ }
108
+
109
+ .epyt-search-results .resulttitle .ui-icon {
110
+ transform: scale(1.35,1.35);
111
+ }
112
+
113
+ .epyt-pagination {
114
+ clear: both;
115
+ text-align: center;
116
+ padding: 10px 8px 10px 8px;
117
+ display: none;
118
+ }
119
+
120
+ .epyt-pagination > div, .epyt-pagenumbers > div {
121
+ display: inline-block;
122
+ padding: 0 2px 0 2px;
123
+ vertical-align: middle;
124
+ }
125
+
126
+ .epyt-pagination .epyt-pagebutton {
127
+ cursor: pointer;
128
+ display: inline-block;
129
+ padding: 0 10px 0 10px;
130
+ }
131
+ .epyt-pagebutton > div {
132
+ display: inline;
133
+ }
134
+
135
+ .epyt-pagination .epyt-loader {
136
+ display: none;
137
+ }
138
+
139
+ .epyt-gallery-list.epyt-loading .epyt-pagination .epyt-loader {
140
+ display: inline-block;
141
+ }
142
+
143
+ .epyt-pagebutton.hide, .epyt-pagenumbers.hide {
144
+ display: none !important;
145
+ opacity: 0 !important;
146
+ visibility: hidden !important;
147
+ }
148
+
149
+ .ui-tabs .ui-tabs-anchor {
150
+ font-weight: bold;
151
+ }
152
+
153
+ .playlist-tabs {
154
+ margin-bottom: 20px;
155
+ }
156
+ .icon-playlist {
157
+ float: left;
158
+ height: auto;
159
+ margin: 15px 30px 0 0;
160
+ max-width: 150px;
161
+ }
162
+
163
+
164
+ a.ythealth {
165
+ clear: both;
166
+ float: right;
167
+ margin-top: 15px;
168
+ position: relative;
169
+ }
170
+
171
+ a.ythealth .tip {
172
+ position: absolute;
173
+ width: 450px;
174
+ right: 0;
175
+ top: -100px;
176
+ display: none;
177
+ background-color: #ffffff;
178
+ padding: 20px;
179
+ border: 2px solid #dddddd;
180
+ border-radius: 5px;
181
+ }
182
+
183
+ a.ythealth:hover .tip {
184
+ display: block;
185
+ }
styles/ytprefs-wizard.min.css ADDED
@@ -0,0 +1 @@
 
1
+ #adminmenu,#adminmenuback,#footer,#wpadminbar,#wpfooter,#wphead,.auto-fold #wpfooter,adminmenuwrap{display:none}.epyt-search-results .resulttitle .ui-icon,.ui-button .ui-icon{transform:scale(1.35,1.35)}#epyt_wiz_wrap .ui-button,.bold,.epyt-search-results .closeme,.epyt-search-results .resulttitle,.ui-tabs .ui-tabs-anchor{font-weight:700}#wpfooter,.clearboth,a.ythealth{clear:both}#wpbody,#wpcontent,.auto-fold #wpcontent{margin-left:0}html.wp-toolbar{padding:0}.pad20{padding:20px}.center{text-align:center}.orange{color:#f85d00}.smallnote{font-size:small;font-style:italic}.ui-accordion .ui-accordion-header{margin-top:15px;font-weight:700}.ui-accordion .ui-accordion-content.header-go-content{display:none!important;height:0!important}input.ui-widget[type=text]{margin:0;padding:.4em 1em;width:450px}.txt-button-align button,.txt-button-align input.ui-widget[type=text]{vertical-align:top}.copycode{background-color:#eef;border:2px solid #c7d6e4;display:inline-block;font-size:.9em;overflow-x:hidden;vertical-align:middle;white-space:nowrap;width:400px;padding-left:15px;padding-right:15px}.pointer{cursor:pointer}.relative{position:relative}.epyt-search-results a.pointer.thumb.load-movie{float:left;width:160px;height:90px;background-position:center;background-size:cover;display:block;margin:0 25px 10px 0}.epyt-search-results .resultdiv{margin-bottom:40px}.epyt-search-results .resultinfo{text-align:left}.epyt-search-results .moviecontainer{margin-bottom:40px;margin-top:-30px}.epyt-search-results .closeme{right:110px;top:-10px;position:absolute;font-size:50px;cursor:pointer}.epyt-pagination{clear:both;text-align:center;padding:10px 8px;display:none}.epyt-pagenumbers>div,.epyt-pagination>div{display:inline-block;padding:0 2px;vertical-align:middle}.epyt-pagination .epyt-pagebutton{cursor:pointer;display:inline-block;padding:0 10px}.epyt-pagebutton>div{display:inline}.epyt-pagination .epyt-loader{display:none}.epyt-gallery-list.epyt-loading .epyt-pagination .epyt-loader{display:inline-block}.epyt-pagebutton.hide,.epyt-pagenumbers.hide{display:none!important;opacity:0!important;visibility:hidden!important}.playlist-tabs{margin-bottom:20px}.icon-playlist{float:left;height:auto;margin:15px 30px 0 0;max-width:150px}a.ythealth{float:right;margin-top:15px;position:relative}a.ythealth .tip{position:absolute;width:450px;right:0;top:-100px;display:none;background-color:#fff;padding:20px;border:2px solid #ddd;border-radius:5px}a.ythealth:hover .tip{display:block}
styles/ytprefs.css CHANGED
@@ -145,49 +145,6 @@ iframe.__youtube_prefs__
145
  transition: opacity linear .2s;
146
  }
147
 
148
- .epyt-gallery-list.epyt-gallery-style-listview {
149
- margin-left: 0;
150
- margin-right: 0;
151
- margin-bottom: 25px;
152
- }
153
-
154
- .epyt-gallery-thumb.epyt-listview {
155
- width: 100% !important;
156
- padding: 0;
157
- margin: 8px 0 8px 0;
158
- }
159
-
160
- .epyt-gallery-thumb.epyt-listview + .epyt-gallery-rowbreak {
161
- display: none;
162
- }
163
-
164
- .epyt-gallery-thumb.epyt-listview .epyt-gallery-img-box {
165
- float: left;
166
- width: 150px;
167
- max-width: 25%;
168
- margin-right: 20px;
169
- margin-bottom: 6px;
170
- }
171
-
172
- .epyt-gallery-thumb.epyt-listview .epyt-gallery-title {
173
- padding: 10px;
174
- text-align: left;
175
- }
176
-
177
- .epyt-gallery-thumb.epyt-listview .epyt-gallery-dsc {
178
- font-size: 75%;
179
- line-height: 120%;
180
- padding: 5px 10px 12px 10px;
181
- text-align: left;
182
- }
183
-
184
- .epyt-gallery-thumb.epyt-listview.hover {
185
- position: relative;
186
- background-color: #dddddd;
187
- color: black;
188
- transition: background-color ease-out .3s, color ease-out .3s;
189
- }
190
-
191
  .epyt-gallery-rowbreak {
192
  clear: both;
193
  }
@@ -314,94 +271,7 @@ columns
314
  .epyt-gallery-allthumbs.epyt-cols-20 .epyt-gallery-thumb {
315
  width: 5%;
316
  }
317
- /*
318
- shape
319
- */
320
-
321
- .epyt-gallery-allthumbs.epyt-thumb-portal .epyt-gallery-thumb .epyt-gallery-img {
322
- border-radius: 50%;
323
- padding-top: 100% !important;
324
- }
325
-
326
- /*
327
- Carousel
328
- */
329
- .epyt-gallery-list.epyt-gallery-style-carousel {
330
- margin: 0 0 50px 0;
331
- }
332
 
333
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-pagination {
334
- display: none;
335
- }
336
-
337
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-pagination:first-child {
338
- position: absolute;
339
- width: 100%;
340
- display: block;
341
- margin: auto;
342
- top: 0;
343
- bottom: 0;
344
- padding: 0;
345
- height: 30px;
346
-
347
- }
348
-
349
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-pagenumbers.hide {
350
- opacity: 0;
351
- }
352
-
353
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-gallery-allthumbs {
354
- margin: 15px 35px 15px 35px;
355
- }
356
-
357
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-gallery-thumb {
358
- padding-bottom: 0;
359
- float: none;
360
- display: inline-block !important;
361
- }
362
-
363
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-pagebutton > div {
364
- display: none;
365
- }
366
-
367
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-pagebutton > div.arrow {
368
- background: transparent url(../images/arrow-right.svg) no-repeat scroll 0 0;
369
- background-size: contain;
370
- width: 20px;
371
- height: 100%;
372
- display: block;
373
- text-indent: -99999px;
374
- opacity: .7;
375
- }
376
-
377
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-pagebutton > div.arrow:hover {
378
- opacity: 1;
379
- }
380
-
381
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-pagebutton.epyt-prev > div.arrow {
382
- background-image: url(../images/arrow-left.svg);
383
- }
384
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-pagebutton {
385
- padding: 0;
386
- margin-top: -2px;
387
- }
388
-
389
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-next {
390
- float: right;
391
- }
392
-
393
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-prev {
394
- float: left;
395
- }
396
-
397
-
398
-
399
- .epyt-gallery-list.epyt-gallery-style-carousel .epyt-pagenumbers {
400
- position: absolute;
401
- top: 100%;
402
- left: 0;
403
- right: 0;
404
- }
405
 
406
  .epyt-pagebutton.hide, .epyt-pagenumbers.hide {
407
  display: none !important;
@@ -433,8 +303,3 @@ Carousel
433
  background: transparent;
434
  }
435
 
436
- #wpadminbar #wp-admin-bar-ytprefs-bar-cache > .ab-item:before {
437
- content: "\f311";
438
- top: 2px;
439
- }
440
-
145
  transition: opacity linear .2s;
146
  }
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  .epyt-gallery-rowbreak {
149
  clear: both;
150
  }
271
  .epyt-gallery-allthumbs.epyt-cols-20 .epyt-gallery-thumb {
272
  width: 5%;
273
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
 
276
  .epyt-pagebutton.hide, .epyt-pagenumbers.hide {
277
  display: none !important;
303
  background: transparent;
304
  }
305
 
 
 
 
 
 
youtube.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: YouTube
4
  Plugin URI: http://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx
5
  Description: YouTube embed plugin. Embed a responsive YouTube video, playlist gallery, or channel gallery. Add video thumbnails, analytics, SEO, caching...
6
- Version: 11.6
7
  Author: EmbedPlus Team
8
  Author URI: http://www.embedplus.com
9
  */
@@ -33,7 +33,7 @@ class YouTubePrefs
33
  {
34
 
35
  public static $curltimeout = 20;
36
- public static $version = '11.6';
37
  public static $opt_version = 'version';
38
  public static $optembedwidth = null;
39
  public static $optembedheight = null;
@@ -57,13 +57,8 @@ class YouTubePrefs
57
  public static $opt_theme = 'theme';
58
  public static $opt_color = 'color';
59
  public static $opt_listType = 'listType';
60
- public static $opt_wmode = 'wmode';
61
- public static $opt_vq = 'vq';
62
- public static $opt_html5 = 'html5';
63
  public static $opt_dohl = 'dohl';
64
  public static $opt_hl = 'hl';
65
- public static $opt_ssl = 'ssl';
66
- public static $opt_ogvideo = 'ogvideo';
67
  public static $opt_nocookie = 'nocookie';
68
  public static $opt_playlistorder = 'playlistorder';
69
  public static $opt_acctitle = 'acctitle';
@@ -81,25 +76,14 @@ class YouTubePrefs
81
  public static $opt_defaultvol = 'defaultvol';
82
  public static $opt_vol = 'vol';
83
  public static $opt_apikey = 'apikey';
84
- public static $opt_schemaorg = 'schemaorg';
85
- public static $opt_ftpostimg = 'ftpostimg';
86
- public static $opt_spdc = 'spdc';
87
- public static $opt_spdcab = 'spdcab';
88
- public static $opt_spdcexp = 'spdcexp';
89
- public static $opt_dashpre = 'dashpre';
90
  public static $opt_migrate = 'migrate';
91
  public static $opt_migrate_youtube = 'migrate_youtube';
92
  public static $opt_migrate_embedplusvideo = 'migrate_embedplusvideo';
93
- public static $spdcprefix = 'ytpref';
94
- public static $spdcall = 'youtubeprefs_spdcall';
95
- public static $opt_dynload = 'dynload';
96
- public static $opt_dyntype = 'dyntype';
97
  public static $opt_gallery_pagesize = 'gallery_pagesize';
98
  public static $opt_gallery_apikey = 'gallery_apikey';
99
  public static $opt_gallery_columns = 'gallery_columns';
100
  public static $opt_gallery_collapse_grid = 'gallery_collapse_grid';
101
  public static $opt_gallery_collapse_grid_breaks = 'gallery_collapse_grid_breaks';
102
- public static $opt_gallery_style = 'gallery_style';
103
  public static $opt_gallery_scrolloffset = 'gallery_scrolloffset';
104
  public static $opt_gallery_showtitle = 'gallery_showtitle';
105
  public static $opt_gallery_showpaging = 'gallery_showpaging';
@@ -111,9 +95,6 @@ class YouTubePrefs
111
  public static $opt_gallery_customarrows = 'gallery_customarrows';
112
  public static $opt_gallery_customprev = 'gallery_customprev';
113
  public static $opt_gallery_customnext = 'gallery_customnext';
114
- public static $opt_gallery_showdsc = 'gallery_showdsc';
115
- public static $opt_gallery_thumbcrop = 'gallery_thumbcrop';
116
- public static $opt_gallery_disptype = 'gallery_disptype';
117
  public static $opt_not_live_content = 'not_live_content';
118
  public static $opt_admin_off_scripts = 'admin_off_scripts';
119
  public static $opt_alloptions = 'youtubeprefs_alloptions';
@@ -127,29 +108,27 @@ class YouTubePrefs
127
  public static $min = '.min';
128
  public static $badentities = array('&#215;', '×', '&#8211;', '–', '&amp;', '&#038;', '&#38;');
129
  public static $goodliterals = array('x', 'x', '--', '--', '&', '&', '&');
 
 
130
  ///////////////////////////////////////////////////////////////////////////////////////////////////
131
  ///////////////////////////////////////////////////////////////////////////////////////////////////
132
  ///////////////////////////////////////////////////////////////////////////////////////////////////
133
- ///////////////////////////////////////////////////////////////////////////////////////////////////
134
- ///////////////////////////////////////////////////////////////////////////////////////////////////
135
- //public static $ytregex = '@^[\r\n]{0,1}[[:blank:]]*https?://(?:www\.)?(?:(?:youtube.com/watch\?)|(?:youtu.be/))([^\s"]+)[[:blank:]]*[\r\n]{0,1}$@im';
136
  public static $oldytregex = '@^\s*https?://(?:www\.)?(?:(?:youtube.com/(?:(?:watch)|(?:embed)|(?:playlist))/{0,1}\?)|(?:youtu.be/))([^\s"]+)\s*$@im';
137
  public static $ytregex = '@^[\r\t ]*https?://(?:www\.)?(?:(?:youtube.com/(?:(?:watch)|(?:embed)|(?:playlist))/{0,1}\?)|(?:youtu.be/))([^\s"]+)[\r\t ]*$@im';
138
  public static $justurlregex = '@https?://(?:www\.)?(?:(?:youtube.com/(?:(?:watch)|(?:embed)|(?:playlist))/{0,1}\?)|(?:youtu.be/))([^\[\s"]+)@i';
139
 
140
- ///////////////////////////////////////////////////////////////////////////////////////////////////
141
- ///////////////////////////////////////////////////////////////////////////////////////////////////
142
- ///////////////////////////////////////////////////////////////////////////////////////////////////
143
  ///////////////////////////////////////////////////////////////////////////////////////////////////
144
  ///////////////////////////////////////////////////////////////////////////////////////////////////
145
  ///////////////////////////////////////////////////////////////////////////////////////////////////
146
 
147
  public function __construct()
148
  {
149
-
150
  add_action('admin_init', array("YouTubePrefs", 'check_double_plugin_warning'));
151
-
152
  self::$alloptions = get_option(self::$opt_alloptions);
 
 
 
153
  if (self::$alloptions == false || version_compare(self::$alloptions[self::$opt_version], self::$version, '<'))
154
  {
155
  self::initoptions();
@@ -174,13 +153,10 @@ class YouTubePrefs
174
  self::$opt_playsinline,
175
  self::$opt_autohide,
176
  self::$opt_controls,
177
- self::$opt_html5,
178
  self::$opt_hl,
179
  self::$opt_theme,
180
  self::$opt_color,
181
  self::$opt_listType,
182
- //self::$opt_wmode,
183
- //self::$opt_vq,
184
  'index',
185
  'list',
186
  'start',
@@ -194,123 +170,919 @@ class YouTubePrefs
194
  add_action('admin_menu', 'YouTubePrefs::ytprefs_plugin_menu');
195
  add_filter('plugin_action_links_' . plugin_basename(__FILE__), array('YouTubePrefs', 'my_plugin_action_links'));
196
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
 
 
 
 
 
 
198
 
199
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 8)
 
 
200
  {
201
- add_action('admin_bar_menu', 'YouTubePrefs::ytprefs_admin_bar', 100);
202
- add_action('wp_enqueue_scripts', array('YouTubePrefs', 'ytprefs_admin_bar_scripts'));
203
- add_action('admin_enqueue_scripts', array('YouTubePrefs', 'ytprefs_admin_bar_scripts'));
204
  }
205
 
 
 
206
 
207
- if (!is_admin())
208
  {
 
 
 
 
 
209
 
 
210
 
211
- if (self::$alloptions[self::$opt_old_script_method] == 1)
 
 
212
  {
213
- add_action('wp_print_scripts', array('YouTubePrefs', 'jsvars'));
214
- add_action('wp_enqueue_scripts', array('YouTubePrefs', 'jsvars'));
 
 
215
  }
 
 
 
216
 
217
- add_action('wp_enqueue_scripts', array('YouTubePrefs', 'ytprefsscript'), 100);
218
- add_action('wp_enqueue_scripts', array('YouTubePrefs', 'fitvids'), 101);
219
-
220
-
221
 
222
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0 && self::$alloptions[self::$opt_ogvideo] == 1)
223
- {
224
- add_action('wp_head', array('YouTubePrefs', 'do_ogvideo'));
225
- }
 
226
  }
227
 
228
- if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG)
229
  {
230
- self::$min = '';
231
  }
232
- }
233
 
234
- public static function my_plugin_action_links($links)
235
- {
236
- $links[] = '<a href="' . esc_url(admin_url('admin.php?page=youtube-my-preferences')) . '">Settings</a>';
237
- $links[] = '<a href="https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx" target="_blank">Pro Version</a>';
238
- return $links;
239
- }
240
 
241
- public static function ytprefs_admin_bar_scripts()
242
- {
243
- if (current_user_can('edit_posts'))
244
  {
245
- wp_enqueue_script('__ytprefs__bar', plugins_url('scripts/ytprefs-bar' . self::$min . '.js', __FILE__), array('jquery'));
246
- wp_localize_script('__ytprefs__bar', '_EPYTA_', array(
247
- 'ajaxurl' => admin_url('admin-ajax.php'),
248
- 'security' => wp_create_nonce('embedplus-nonce'),
249
- 'pluginurl' => plugins_url('/', __FILE__)
250
- ));
251
- }
252
- }
253
 
254
- public static function ytprefs_admin_bar($wp_admin_bar)
255
- {
256
 
257
- if (current_user_can('edit_posts') && self::$alloptions[self::$opt_spdc] == 1 && self::$alloptions[self::$opt_spdcab] == 1)
258
- {
259
- $args = array(
260
- 'id' => 'ytprefs-bar-cache',
261
- 'title' => 'Clear YouTube Cache',
262
- 'href' => '#',
263
- 'meta' => array(
264
- 'class' => ''
265
- )
266
- );
267
- $wp_admin_bar->add_node($args);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  }
269
- }
270
 
271
- public static function show_glance_list()
272
- {
273
- $glancehref = self::show_glance();
274
- $cnt = self::get_glance_count();
275
 
276
- //display via list
277
- return
278
- '<li class="page-count">
279
- <a href="' . $glancehref . '" class="thickbox ytprefs_glance_button" id="ytprefs_glance_button" title="YouTube Embeds At a Glance">
280
- ' . number_format_i18n($cnt) . ' With YouTube
281
- </a>
282
- </li>';
283
- }
284
 
285
- public static function show_glance_table()
286
- {
287
- $glancehref = self::show_glance();
288
- $cnt = self::get_glance_count();
289
- return
290
- '<tr>
291
- <td class="first b"><a title="YouTube Embeds At a Glance" href="' . $glancehref . '" class="thickbox ytprefs_glance_button">' . number_format_i18n($cnt) . '</a></td>
292
- <td class="t"><a title="YouTube Embeds At a Glance" href="' . $glancehref . '" id="ytprefs_glance_button" class="thickbox ytprefs_glance_button">With YouTube</a></td>
293
- </tr>';
294
- }
295
 
296
- public static function get_glance_count()
297
- {
298
- global $wpdb;
299
- $query_sql = "
300
- SELECT count(*) as mytotal
301
- FROM $wpdb->posts
302
- WHERE (post_content LIKE '%youtube.com/%' OR post_content LIKE '%youtu.be/%')
303
- AND post_status = 'publish'";
304
 
305
- $query_result = $wpdb->get_results($query_sql, OBJECT);
 
 
306
 
307
- return intval($query_result[0]->mytotal);
 
 
 
 
 
 
 
 
 
 
308
  }
309
 
310
- public static function show_glance()
311
  {
312
- $glancehref = admin_url('admin.php?page=youtube-ep-glance') . '&random=' . rand(1, 1000) . '&TB_iframe=true&width=780&height=800';
313
- return $glancehref;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
314
  }
315
 
316
  public static function glance_page()
@@ -358,7 +1130,6 @@ class YouTubePrefs
358
  var $acctitle = $j(this);
359
  var $accbox = $j(this).parent().children('.accbox');
360
  var pid = $accbox.attr("data-postid");
361
-
362
  $acctitle.prepend('<img alt="loading" class="accloader" src="<?php echo plugins_url('images/ajax-loader.gif', __FILE__) ?>" />');
363
  jQuery.ajax({
364
  type: "post",
@@ -367,7 +1138,7 @@ class YouTubePrefs
367
  url: wpajaxurl,
368
  data: {action: 'my_embedplus_glance_vids', postid: pid},
369
  success: function (response) {
370
- if (response.type == "success") {
371
  $accbox.html(response.data),
372
  $accbox.show(400);
373
  }
@@ -382,14 +1153,9 @@ class YouTubePrefs
382
  }
383
 
384
  });
385
-
386
-
387
  });
388
  });
389
- })(jQuery);
390
-
391
-
392
- </script>
393
  <?php
394
  global $wpdb;
395
  $query_sql = "
@@ -408,7 +1174,7 @@ class YouTubePrefs
408
  echo '<h2><img alt="YouTube Plugin Icon" src="' . plugins_url('images/youtubeicon16.png', __FILE__) . '" /> 10 Latest Posts/Pages with YouTube Videos (' . $total . ' Total)</h2>';
409
  ?>
410
 
411
- We recommend using this page as an easy way to check the results of the global default settings you make (e.g. hide annotations) on your recent embeds. Or, simply use it as an index to jump right to your posts that contain YouTube embeds.
412
 
413
  <?php
414
  if ($total > 0)
@@ -495,11 +1261,7 @@ class YouTubePrefs
495
  else
496
  {
497
  $thehtml .= '<p class="center bold orange">This <a target="_blank" href="' . $postlink . '">post/page</a> contains a video that has been removed from YouTube.';
498
-
499
- if (!(self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0))
500
- {
501
- $thehtml .='<br><a target="_blank" href="https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx">Activate delete video tracking to catch these cases &raquo;</a>';
502
- }
503
  $thehtml .= '</strong>';
504
  }
505
  }
@@ -531,11 +1293,7 @@ class YouTubePrefs
531
  else
532
  {
533
  $thehtml .= '<p class="center bold orange">This <a target="_blank" href="' . $postlink . '">post/page</a> contains a video that has been removed from YouTube.';
534
-
535
- if (!(self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0))
536
- {
537
- $thehtml .='<br><a target="_blank" href="https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx">Activate delete video tracking to catch these cases &raquo;</a>';
538
- }
539
  $thehtml .= '</strong>';
540
  }
541
  }
@@ -609,18 +1367,16 @@ class YouTubePrefs
609
  {
610
  add_thickbox();
611
 
612
- $wizhref = self::$epbase . '/wpembedcode-simple-search-' . YouTubePrefs::$version . '.aspx?pluginversion=' . YouTubePrefs::$version .
613
- '&wpversion=' . get_bloginfo('version') .
614
- '&settingsurl=' . urlencode(admin_url('admin.php?page=youtube-my-preferences#jumpdefaults')) .
615
- '&dashurl=' . urlencode(admin_url('admin.php?page=youtube-ep-analytics-dashboard')) .
616
- '&blogwidth=' . YouTubePrefs::get_blogwidth() .
617
- '&domain=' . urlencode(site_url()) .
618
- '&prokey=' . urlencode(YouTubePrefs::$alloptions[YouTubePrefs::$opt_pro]) .
619
- '&myytdefaults=' . urlencode(http_build_query(YouTubePrefs::$alloptions)) .
620
  '&random=' . rand(1, 1000) .
621
  '&TB_iframe=true&width=950&height=800';
622
  ?>
623
- <a href="<?php echo $wizhref; ?>" class="thickbox button ytprefs_media_link" id="ytprefs_wiz_button" title="Visual YouTube Search Tool and Wizard - An easier embedding option"><span></span> YouTube</a>
624
  <?php
625
  }
626
 
@@ -629,7 +1385,6 @@ class YouTubePrefs
629
  if (is_plugin_active('embedplus-for-wordpress/embedplus.php'))
630
  {
631
  add_action('admin_notices', array("YouTubePrefs", "double_plugin_warning"));
632
- //self::$double_plugin = true;
633
  }
634
  }
635
 
@@ -688,10 +1443,8 @@ class YouTubePrefs
688
  }
689
  });
690
  });
691
-
692
  });
693
- })(jQuery);
694
- </script>
695
  <?php
696
  }
697
  }
@@ -731,13 +1484,8 @@ class YouTubePrefs
731
  version: "<?php echo self::$alloptions[self::$opt_version] ?>",
732
  epdovol: true,
733
  evselector: '<?php echo self::get_evselector(); ?>',
734
- <?php
735
- if (isset(self::$alloptions[self::$opt_pro]) && strlen(trim(self::$alloptions[self::$opt_pro])) > 8 && isset(self::$alloptions[self::$opt_dashpre]) && self::$alloptions[self::$opt_dashpre] == '1')
736
- {
737
- ?> dshpre:true,<?php } ?>
738
  stopMobileBuffer: <?php echo self::$alloptions[self::$opt_stop_mobile_buffer] == '1' ? 'true' : 'false' ?>
739
- };
740
- </script>
741
  <?php
742
  }
743
  }
@@ -753,6 +1501,19 @@ class YouTubePrefs
753
 
754
  public static function initoptions()
755
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
756
  //vanilla defaults
757
  $_center = 0;
758
  $_glance = 1;
@@ -763,17 +1524,13 @@ class YouTubePrefs
763
  $_modestbranding = get_option('youtubeprefs_modestbranding', 0);
764
  $_rel = get_option('youtubeprefs_rel', 1);
765
  $_showinfo = get_option('youtubeprefs_showinfo', 1);
766
- $_html5 = get_option('youtubeprefs_html5', 0);
767
  $_theme = get_option('youtubeprefs_theme', 'dark');
768
  $_color = get_option('youtubeprefs_color', 'red');
769
- $_vq = get_option('youtubeprefs_vq', '');
770
  $_autohide = 2;
771
  $_pro = '';
772
- $_ssl = 0;
773
  $_nocookie = 0;
774
  $_playlistorder = 0;
775
  $_acctitle = 0;
776
- $_ogvideo = 0;
777
  $_migrate = 0;
778
  $_migrate_youtube = 0;
779
  $_migrate_embedplusvideo = 0;
@@ -784,15 +1541,6 @@ class YouTubePrefs
784
  $_widgetfit = 1;
785
  $_evselector_light = 0;
786
  $_stop_mobile_buffer = 1;
787
- $_schemaorg = 0;
788
- $_ftpostimg = 0;
789
- $_spdc = 0;
790
- $_spdcexp = 24;
791
- $_dashpre = 0;
792
- $_spdcab = 1;
793
- $_dynload = 0;
794
- $_dyntype = '';
795
- $_wmode = 'opaque';
796
  $_defaultdims = 0;
797
  $_defaultwidth = '';
798
  $_defaultheight = '';
@@ -818,71 +1566,50 @@ class YouTubePrefs
818
  $_gallery_customprev = 'Prev';
819
  $_gallery_customnext = 'Next';
820
  $_gallery_pagesize = 15;
821
- $_gallery_style = 'grid';
822
- $_gallery_showdsc = 0;
823
- $_gallery_thumbcrop = 'box';
824
- $_gallery_disptype = 'default';
825
  $_not_live_content = '';
826
  $_debugmode = 0;
827
  $_admin_off_scripts = 0;
828
  $_old_script_method = 0;
829
 
830
- $arroptions = get_option(self::$opt_alloptions);
831
-
832
  //update vanilla to previous settings if exists
833
  if ($arroptions !== false)
834
  {
835
  $_center = self::tryget($arroptions, self::$opt_center, 0);
836
  $_glance = self::tryget($arroptions, self::$opt_glance, 1);
837
  $_autoplay = self::tryget($arroptions, self::$opt_autoplay, 0);
838
- $_debugmode = self::tryget($arroptions, self::$opt_debugmode, 0);
839
- $_old_script_method = self::tryget($arroptions, self::$opt_old_script_method, 0);
840
  $_cc_load_policy = self::tryget($arroptions, self::$opt_cc_load_policy, 0);
841
  $_iv_load_policy = self::tryget($arroptions, self::$opt_iv_load_policy, 1);
842
  $_loop = self::tryget($arroptions, self::$opt_loop, 0);
843
  $_modestbranding = self::tryget($arroptions, self::$opt_modestbranding, 0);
844
  $_rel = self::tryget($arroptions, self::$opt_rel, 1);
845
  $_showinfo = self::tryget($arroptions, self::$opt_showinfo, 1);
846
- $_playsinline = self::tryget($arroptions, self::$opt_playsinline, 0);
847
- $_origin = self::tryget($arroptions, self::$opt_origin, 0);
848
- $_html5 = self::tryget($arroptions, self::$opt_html5, 0);
849
- $_hl = self::tryget($arroptions, self::$opt_hl, '');
850
- $_dohl = self::tryget($arroptions, self::$opt_dohl, 0);
851
  $_theme = self::tryget($arroptions, self::$opt_theme, 'dark');
852
  $_color = self::tryget($arroptions, self::$opt_color, 'red');
853
- $_wmode = self::tryget($arroptions, self::$opt_wmode, 'opaque');
854
- $_vq = self::tryget($arroptions, self::$opt_vq, '');
855
  $_pro = self::tryget($arroptions, self::$opt_pro, '');
856
- $_ssl = self::tryget($arroptions, self::$opt_ssl, 0);
857
  $_nocookie = self::tryget($arroptions, self::$opt_nocookie, 0);
858
  $_playlistorder = self::tryget($arroptions, self::$opt_playlistorder, 0);
859
  $_acctitle = self::tryget($arroptions, self::$opt_acctitle, 0);
860
- $_ogvideo = self::tryget($arroptions, self::$opt_ogvideo, 0);
861
  $_migrate = self::tryget($arroptions, self::$opt_migrate, 0);
862
  $_migrate_youtube = self::tryget($arroptions, self::$opt_migrate_youtube, 0);
863
  $_migrate_embedplusvideo = self::tryget($arroptions, self::$opt_migrate_embedplusvideo, 0);
864
  $_controls = self::tryget($arroptions, self::$opt_controls, 2);
865
- $_autohide = self::tryget($arroptions, self::$opt_autohide, 2);
866
  $_oldspacing = self::tryget($arroptions, self::$opt_oldspacing, 1);
867
  $_responsive = self::tryget($arroptions, self::$opt_responsive, 0);
868
  $_responsive_all = self::tryget($arroptions, self::$opt_responsive_all, 1);
869
  $_widgetfit = self::tryget($arroptions, self::$opt_widgetfit, 1);
870
  $_evselector_light = self::tryget($arroptions, self::$opt_evselector_light, 0);
871
  $_stop_mobile_buffer = self::tryget($arroptions, self::$opt_stop_mobile_buffer, 1);
872
- $_schemaorg = self::tryget($arroptions, self::$opt_schemaorg, 0);
873
- $_ftpostimg = self::tryget($arroptions, self::$opt_ftpostimg, 0);
874
- $_spdc = self::tryget($arroptions, self::$opt_spdc, 0);
875
- $_spdcexp = self::tryget($arroptions, self::$opt_spdcexp, 24);
876
- $_dashpre = self::tryget($arroptions, self::$opt_dashpre, 0);
877
- $_spdcab = self::tryget($arroptions, self::$opt_spdcab, 1);
878
- $_dynload = self::tryget($arroptions, self::$opt_dynload, 0);
879
- $_dyntype = self::tryget($arroptions, self::$opt_dyntype, '');
880
  $_defaultdims = self::tryget($arroptions, self::$opt_defaultdims, 0);
881
  $_defaultwidth = self::tryget($arroptions, self::$opt_defaultwidth, '');
882
  $_defaultheight = self::tryget($arroptions, self::$opt_defaultheight, '');
 
 
883
  $_defaultvol = self::tryget($arroptions, self::$opt_defaultvol, 0);
884
  $_vol = self::tryget($arroptions, self::$opt_vol, '');
885
  $_apikey = self::tryget($arroptions, self::$opt_apikey, '');
 
 
886
  $_gallery_pagesize = self::tryget($arroptions, self::$opt_gallery_pagesize, 15);
887
  $_gallery_columns = self::tryget($arroptions, self::$opt_gallery_columns, 3);
888
  $_gallery_collapse_grid = self::tryget($arroptions, self::$opt_gallery_collapse_grid, 0);
@@ -892,18 +1619,16 @@ class YouTubePrefs
892
  $_gallery_showpaging = self::tryget($arroptions, self::$opt_gallery_showpaging, 1);
893
  $_gallery_autonext = self::tryget($arroptions, self::$opt_gallery_autonext, 0);
894
  $_gallery_thumbplay = self::tryget($arroptions, self::$opt_gallery_thumbplay, 1);
895
- $_gallery_style = self::tryget($arroptions, self::$opt_gallery_style, 'grid');
896
- $_gallery_thumbcrop = self::tryget($arroptions, self::$opt_gallery_thumbcrop, 'box');
897
- $_gallery_disptype = self::tryget($arroptions, self::$opt_gallery_disptype, 'default');
898
  $_gallery_channelsub = self::tryget($arroptions, self::$opt_gallery_channelsub, $_gallery_channelsub);
899
  $_gallery_channelsublink = self::tryget($arroptions, self::$opt_gallery_channelsublink, $_gallery_channelsublink);
900
  $_gallery_channelsubtext = self::tryget($arroptions, self::$opt_gallery_channelsubtext, $_gallery_channelsubtext);
901
  $_gallery_customarrows = self::tryget($arroptions, self::$opt_gallery_customarrows, $_gallery_customarrows);
902
  $_gallery_customnext = self::tryget($arroptions, self::$opt_gallery_customnext, $_gallery_customnext);
903
  $_gallery_customprev = self::tryget($arroptions, self::$opt_gallery_customprev, $_gallery_customprev);
904
- $_gallery_showdsc = self::tryget($arroptions, self::$opt_gallery_showdsc, $_gallery_showdsc);
905
  $_not_live_content = self::tryget($arroptions, self::$opt_not_live_content, $_not_live_content);
 
906
  $_admin_off_scripts = self::tryget($arroptions, self::$opt_admin_off_scripts, $_admin_off_scripts);
 
907
  }
908
  else
909
  {
@@ -921,22 +1646,13 @@ class YouTubePrefs
921
  self::$opt_modestbranding => $_modestbranding,
922
  self::$opt_rel => $_rel,
923
  self::$opt_showinfo => $_showinfo,
924
- self::$opt_playsinline => $_playsinline,
925
- self::$opt_origin => $_origin,
926
- self::$opt_autohide => $_autohide,
927
- self::$opt_html5 => $_html5,
928
- self::$opt_hl => $_hl,
929
- self::$opt_dohl => $_dohl,
930
  self::$opt_theme => $_theme,
931
  self::$opt_color => $_color,
932
- self::$opt_wmode => $_wmode,
933
- self::$opt_vq => $_vq,
934
  self::$opt_pro => $_pro,
935
- self::$opt_ssl => $_ssl,
936
  self::$opt_nocookie => $_nocookie,
937
  self::$opt_playlistorder => $_playlistorder,
938
  self::$opt_acctitle => $_acctitle,
939
- self::$opt_ogvideo => $_ogvideo,
940
  self::$opt_migrate => $_migrate,
941
  self::$opt_migrate_youtube => $_migrate_youtube,
942
  self::$opt_migrate_embedplusvideo => $_migrate_embedplusvideo,
@@ -947,20 +1663,16 @@ class YouTubePrefs
947
  self::$opt_widgetfit => $_widgetfit,
948
  self::$opt_evselector_light => $_evselector_light,
949
  self::$opt_stop_mobile_buffer => $_stop_mobile_buffer,
950
- self::$opt_schemaorg => $_schemaorg,
951
- self::$opt_ftpostimg => $_ftpostimg,
952
- self::$opt_spdc => $_spdc,
953
- self::$opt_spdcexp => $_spdcexp,
954
- self::$opt_dashpre => $_dashpre,
955
- self::$opt_spdcab => $_spdcab,
956
- self::$opt_dynload => $_dynload,
957
- self::$opt_dyntype => $_dyntype,
958
  self::$opt_defaultdims => $_defaultdims,
959
  self::$opt_defaultwidth => $_defaultwidth,
960
  self::$opt_defaultheight => $_defaultheight,
 
 
961
  self::$opt_defaultvol => $_defaultvol,
962
  self::$opt_vol => $_vol,
963
  self::$opt_apikey => $_apikey,
 
 
964
  self::$opt_gallery_columns => $_gallery_columns,
965
  self::$opt_gallery_collapse_grid => $_gallery_collapse_grid,
966
  self::$opt_gallery_collapse_grid_breaks => $_gallery_collapse_grid_breaks,
@@ -973,12 +1685,8 @@ class YouTubePrefs
973
  self::$opt_gallery_channelsublink => $_gallery_channelsublink,
974
  self::$opt_gallery_channelsubtext => $_gallery_channelsubtext,
975
  self::$opt_gallery_customarrows => $_gallery_customarrows,
976
- self::$opt_gallery_customnext => $_gallery_customnext,
977
  self::$opt_gallery_customprev => $_gallery_customprev,
978
- self::$opt_gallery_showdsc => $_gallery_showdsc,
979
- self::$opt_gallery_style => $_gallery_style,
980
- self::$opt_gallery_thumbcrop => $_gallery_thumbcrop,
981
- self::$opt_gallery_disptype => $_gallery_disptype,
982
  self::$opt_gallery_pagesize => $_gallery_pagesize,
983
  self::$opt_not_live_content => $_not_live_content,
984
  self::$opt_debugmode => $_debugmode,
@@ -989,19 +1697,6 @@ class YouTubePrefs
989
  update_option(self::$opt_alloptions, $all);
990
  update_option('embed_autourls', 1);
991
  self::$alloptions = get_option(self::$opt_alloptions);
992
-
993
- try
994
- {
995
- if (self::$alloptions[self::$opt_spdc] == 1)
996
- {
997
- self::spdcpurge();
998
- wp_remote_get(site_url(), array('timeout' => self::$curltimeout));
999
- }
1000
- }
1001
- catch (Exception $ex)
1002
- {
1003
-
1004
- }
1005
  }
1006
 
1007
  public static function tryget($array, $key, $default = null)
@@ -1040,13 +1735,6 @@ class YouTubePrefs
1040
  }
1041
  }
1042
  }
1043
- else
1044
- {
1045
- if (self::$alloptions[self::$opt_ftpostimg] == 1 && self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0)
1046
- {
1047
- add_action('save_post', array('YouTubePrefs', 'doftpostimg'), 110, 3);
1048
- }
1049
- }
1050
  }
1051
 
1052
  public static function ao_override_jsexclude($exclude)
@@ -1146,9 +1834,6 @@ class YouTubePrefs
1146
  $options->showPaging = intval($options->showPaging);
1147
  $options->autonext = intval($options->autonext);
1148
  $options->thumbplay = intval($options->thumbplay);
1149
- $options->showDsc = intval($options->showDsc);
1150
- $options->thumbcrop = sanitize_html_class($options->thumbcrop);
1151
- $options->style = sanitize_html_class($options->style);
1152
 
1153
  if (empty($options->apiKey))
1154
  {
@@ -1163,26 +1848,6 @@ class YouTubePrefs
1163
  {
1164
  $apiEndpoint .= '&pageToken=' . $options->pageToken;
1165
  }
1166
- $spdckey = '';
1167
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 9 && self::$alloptions[self::$opt_spdc] == 1)
1168
- {
1169
- try
1170
- {
1171
- $optionsstr = json_encode($options);
1172
- $spdckey = self::$spdcprefix . '_' . md5($apiEndpoint . $optionsstr);
1173
- $spdcval = get_transient($spdckey);
1174
- if (!empty($spdcval))
1175
- {
1176
- //self::debuglog((microtime(true) - $time_start) . "\t" . $spdckey . "\t" . $spdcval . "\r\n");
1177
- $gallobj->html = $spdcval;
1178
- return $gallobj;
1179
- }
1180
- }
1181
- catch (Exception $ex)
1182
- {
1183
-
1184
- }
1185
- }
1186
 
1187
  $code = '';
1188
  $init_id = null;
@@ -1239,26 +1904,11 @@ class YouTubePrefs
1239
  }
1240
 
1241
  $cnt = 0;
1242
- $colclass = '';
1243
- if (in_array($options->style, array('grid', '')))
1244
- {
1245
- $colclass = ' epyt-cols-' . $options->columns . ' ';
1246
- }
1247
-
1248
- $cropclass = '';
1249
- if (!in_array($options->thumbcrop, array('box', '')))
1250
- {
1251
- $cropclass = ' epyt-thumb-' . $options->thumbcrop . ' ';
1252
- }
1253
-
1254
- $code.= '<div class="epyt-gallery-allthumbs ' . $cropclass . $colclass . '">';
1255
-
1256
-
1257
-
1258
 
1259
  if (isset($jsonResult->items) && $jsonResult->items != null && is_array($jsonResult->items))
1260
  {
1261
-
1262
  foreach ($jsonResult->items as $item)
1263
  {
1264
 
@@ -1274,11 +1924,6 @@ class YouTubePrefs
1274
  $init_id = $thumb->id;
1275
  }
1276
 
1277
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0 && $options->style == 'listview')
1278
- {
1279
- $thumb->dsc = $options->showDsc ? $item->snippet->description : '';
1280
- }
1281
-
1282
  if ($thumb->privacyStatus == 'private')
1283
  {
1284
  $thumb->img = plugins_url('/images/private.png', __FILE__);
@@ -1311,7 +1956,7 @@ class YouTubePrefs
1311
  $code .= self::get_thumbnail_html($thumb, $options);
1312
  $cnt++;
1313
 
1314
- if ($cnt % $options->columns === 0 && $options->style !== 'carousel')
1315
  {
1316
  $code .= '<div class="epyt-gallery-rowbreak"></div>';
1317
  }
@@ -1320,12 +1965,6 @@ class YouTubePrefs
1320
 
1321
  $code .= '<div class="epyt-gallery-clear"></div></div>';
1322
 
1323
- if ($options->style === 'carousel' && $options->showTitle)
1324
- {
1325
- $code .= '<div class="epyt-gallery-rowtitle"></div>';
1326
- }
1327
-
1328
-
1329
  $totalPages = ceil($totalResults / $resultsPerPage);
1330
  $pagination = '<div class="epyt-pagination">';
1331
 
@@ -1333,14 +1972,11 @@ class YouTubePrefs
1333
  $pagination .= '<div tabindex="0" role="button" class="epyt-pagebutton epyt-prev ' . (empty($prevPageToken) ? ' hide ' : '') . '" data-playlistid="' . esc_attr($options->playlistId)
1334
  . '" data-pagesize="' . intval($options->pageSize)
1335
  . '" data-pagetoken="' . esc_attr($prevPageToken)
1336
- . '" data-style="' . esc_attr($options->style)
1337
  . '" data-columns="' . intval($options->columns)
1338
  . '" data-showtitle="' . intval($options->showTitle)
1339
  . '" data-showpaging="' . intval($options->showPaging)
1340
  . '" data-autonext="' . intval($options->autonext)
1341
  . '" data-thumbplay="' . intval($options->thumbplay)
1342
- . ((self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 9 && $options->style == 'listview' && $options->showDsc) ? '" data-showdsc="' . intval($options->showDsc) : '')
1343
- . ((self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 9 && !in_array($options->thumbcrop, array('box', ''))) ? '" data-thumbcrop="' . $options->thumbcrop : '')
1344
  . '"><div class="arrow">&laquo;</div> <div>' . $txtprev . '</div></div>';
1345
 
1346
 
@@ -1352,18 +1988,14 @@ class YouTubePrefs
1352
  $pagination .= '<div tabindex="0" role="button" class="epyt-pagebutton epyt-next' . (empty($nextPageToken) ? ' hide ' : '') . '" data-playlistid="' . esc_attr($options->playlistId)
1353
  . '" data-pagesize="' . intval($options->pageSize)
1354
  . '" data-pagetoken="' . esc_attr($nextPageToken)
1355
- . '" data-style="' . esc_attr($options->style)
1356
  . '" data-columns="' . intval($options->columns)
1357
  . '" data-showtitle="' . intval($options->showTitle)
1358
  . '" data-showpaging="' . intval($options->showPaging)
1359
  . '" data-autonext="' . intval($options->autonext)
1360
  . '" data-thumbplay="' . intval($options->thumbplay)
1361
- . ((self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0 && $options->style == 'listview' && $options->showDsc) ? '" data-showdsc="' . intval($options->showDsc) : '')
1362
- . ((self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 9 && !in_array($options->thumbcrop, array('box', ''))) ? '" data-thumbcrop="' . $options->thumbcrop : '')
1363
  . '"><div>' . $txtnext . '</div> <div class="arrow">&raquo;</div></div>';
1364
 
1365
  $pagination .= '<div class="epyt-loader"><img alt="loading" width="16" height="11" src="' . plugins_url('images/gallery-page-loader.gif', __FILE__) . '"></div>';
1366
-
1367
  $pagination .= '</div>';
1368
 
1369
  if ($options->showPaging == 0)
@@ -1371,48 +2003,20 @@ class YouTubePrefs
1371
  $pagination = '<div class="epyt-pagination"></div>';
1372
  }
1373
  $code = $pagination . $code . $pagination;
1374
-
1375
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0 && self::$alloptions[self::$opt_spdc] == 1)
1376
- {
1377
- $daysecs = self::$alloptions[self::$opt_spdcexp] * 60 * 60;
1378
- set_transient($spdckey, $code, $daysecs);
1379
- $allk = get_option(self::$spdcall, array());
1380
- $allk[] = $spdckey;
1381
- update_option(self::$spdcall, $allk);
1382
-
1383
- //self::debuglog((microtime(true) - $time_start) . "\t" . $spdckey . "\t" . $code . "\r\n");
1384
- }
1385
-
1386
  $gallobj->html = $code;
1387
  $gallobj->init_id = $init_id;
1388
  return $gallobj;
1389
- }
1390
-
1391
- public static function get_thumbnail_html($thumb, $options)
1392
- {
1393
- $escId = esc_attr($thumb->id);
1394
- $code = '';
1395
- $styleclass = '';
1396
- $rawstyle = '';
1397
- $dschtml = '';
1398
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0)
1399
- {
1400
- if ($options->style == 'listview')
1401
- {
1402
- $styleclass = 'epyt-listview';
1403
- $dschtml = isset($thumb->dsc) && !empty($thumb->dsc) ? '<div class="epyt-gallery-dsc">' . $thumb->dsc . '</div>' : '';
1404
- }
1405
- else if ($options->style == 'carousel')
1406
- {
1407
- $rawstyle = ' style="width: ' . (100.0 / floatval($options->pageSize)) . '%;" ';
1408
- }
1409
- }
1410
 
1411
- $code .= '<div tabindex="0" role="button" data-videoid="' . $escId . '" class="epyt-gallery-thumb ' . $styleclass . '" ' . $rawstyle . '>';
1412
- $code .= '<div class="epyt-gallery-img-box"><div class="epyt-gallery-img" style="background-image: url(' . esc_attr($thumb->img) . ')">' .
 
 
 
 
1413
  '<div class="epyt-gallery-playhover"><img alt="play" class="epyt-play-img" width="30" height="23" src="' . plugins_url('images/playhover.png', __FILE__) . '" /><div class="epyt-gallery-playcrutch"></div></div>' .
1414
  '</div></div>';
1415
- if ($options->style != 'carousel' && !empty($thumb->title))
1416
  {
1417
  $code .= '<div class="epyt-gallery-title">' . esc_html($thumb->title) . '</div>';
1418
  }
@@ -1420,9 +2024,7 @@ class YouTubePrefs
1420
  {
1421
  $code .= '<div class="epyt-gallery-notitle"><span>' . esc_html($thumb->title) . '</span></div>';
1422
  }
1423
- $code .= $dschtml . '</div>';
1424
-
1425
-
1426
  return $code;
1427
  }
1428
 
@@ -1502,42 +2104,11 @@ class YouTubePrefs
1502
  }
1503
 
1504
  $youtubebaseurl = 'youtube';
1505
- $schemaorgoutput = '';
1506
  $voloutput = '';
1507
- $dynsrc = '';
1508
- $dyntype = '';
1509
  $acctitle = '';
1510
- $videoseries = '';
1511
- $disptype = '';
1512
- $beginlb = '';
1513
- $endlb = '';
1514
- $disptypeif = '';
1515
 
1516
  $finalparams = $linkparams + self::$alloptions;
1517
 
1518
- $spdckey = '';
1519
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0 && self::$alloptions[self::$opt_spdc] == 1 && !isset($finalparams['live']))
1520
- {
1521
- try
1522
- {
1523
- $kparams = $finalparams;
1524
- $kparams['iscontent'] = $iscontent;
1525
- ksort($kparams);
1526
- $jparams = json_encode($kparams);
1527
- $spdckey = self::$spdcprefix . '_' . md5($jparams);
1528
- $spdcval = get_transient($spdckey);
1529
- if (!empty($spdcval))
1530
- {
1531
- //self::debuglog((microtime(true) - $time_start) . "\t" . $spdckey . "\t" . $spdcval . "\r\n");
1532
- return $spdcval;
1533
- }
1534
- }
1535
- catch (Exception $ex)
1536
- {
1537
-
1538
- }
1539
- }
1540
-
1541
  self::init_dimensions($link, $linkparams, $finalparams);
1542
 
1543
  if (self::$alloptions[self::$opt_nocookie] == 1)
@@ -1560,53 +2131,6 @@ class YouTubePrefs
1560
  unset($finalparams[self::$opt_hl]);
1561
  }
1562
 
1563
- if (isset($finalparams[self::$opt_html5]) && $finalparams[self::$opt_html5] == 0)
1564
- {
1565
- unset($finalparams[self::$opt_html5]);
1566
- }
1567
-
1568
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 10)
1569
- {
1570
-
1571
- if (self::$alloptions[self::$opt_schemaorg] == 1 && isset($finalparams['v']))
1572
- {
1573
- $schemaorgoutput = self::getschemaorgoutput($finalparams['v']);
1574
- }
1575
-
1576
- if (self::$alloptions[self::$opt_dynload] == 1
1577
- )
1578
- {
1579
- $dynsrc = 'data-ep-';
1580
- $dyntype = ' data-ep-a="' . self::$alloptions[self::$opt_dyntype] . '" ';
1581
- }
1582
-
1583
- if (isset($linkparams[self::$opt_vol]) && is_numeric(trim($linkparams[self::$opt_vol])))
1584
- {
1585
- $voloutput = ' data-vol="' . $linkparams[self::$opt_vol] . '" ';
1586
- }
1587
-
1588
-
1589
- if (isset($finalparams['layout']) && strtolower($finalparams['layout']) == 'gallery' && isset($finalparams['list']) && isset($finalparams[self::$opt_gallery_disptype]) && $finalparams[self::$opt_gallery_disptype] === 'lb')
1590
- {
1591
- $finalparams[self::$opt_autoplay] = 0;
1592
- $disptype = ' epyt-lb';
1593
- $beginlb = '<div class="lity-hide">';
1594
- $endlb = '</div>';
1595
- $disptypeif = ' epyt-lbif';
1596
- }
1597
- }
1598
- else
1599
- {
1600
- if (isset($finalparams[self::$opt_vol]))
1601
- {
1602
- unset($finalparams[self::$opt_vol]);
1603
- }
1604
- if (isset($finalparams[self::$opt_gallery_disptype]))
1605
- {
1606
- unset($finalparams[self::$opt_gallery_disptype]);
1607
- }
1608
- }
1609
-
1610
  $centercode = '';
1611
  if ($finalparams[self::$opt_center] == 1)
1612
  {
@@ -1627,7 +2151,7 @@ class YouTubePrefs
1627
 
1628
  if (isset($linkparams['list']))
1629
  {
1630
- $odata = self::get_oembed('http://youtube.com/playlist?list=' . $linkparams['list'], 1920, 1280);
1631
  if (is_object($odata) && isset($odata->title))
1632
  {
1633
  $acctitle = $odata->title;
@@ -1635,7 +2159,7 @@ class YouTubePrefs
1635
  }
1636
  else
1637
  {
1638
- $odata = self::get_oembed('http://youtube.com/watch?v=' . $linkparams['v'], 1920, 1280);
1639
  if (is_object($odata) && isset($odata->title))
1640
  {
1641
  $acctitle = $odata->title;
@@ -1690,9 +2214,6 @@ class YouTubePrefs
1690
  $gallery_options->showPaging = intval($finalparams[self::$opt_gallery_showpaging]);
1691
  $gallery_options->autonext = intval($finalparams[self::$opt_gallery_autonext]);
1692
  $gallery_options->thumbplay = intval($finalparams[self::$opt_gallery_thumbplay]);
1693
- $gallery_options->showDsc = intval($finalparams[self::$opt_gallery_showdsc]);
1694
- $gallery_options->style = $finalparams[self::$opt_gallery_style];
1695
- $gallery_options->thumbcrop = $finalparams[self::$opt_gallery_thumbcrop];
1696
  $gallery_options->apiKey = self::$alloptions[self::$opt_apikey];
1697
 
1698
  $galleryid = 'epyt_gallery_' . rand(10000, 99999);
@@ -1702,26 +2223,23 @@ class YouTubePrefs
1702
  if (self::$alloptions[self::$opt_gallery_channelsub] == 1)
1703
  {
1704
  $subbutton = '<div class="epyt-gallery-subscribe"><a target="_blank" class="epyt-gallery-subbutton" href="' .
1705
- esc_attr(self::$alloptions[self::$opt_gallery_channelsublink]) . '?sub_confirmation=1"><img alt="subscribe" src="' . plugins_url('images/play-subscribe.png', __FILE__) . '" />' .
1706
  htmlspecialchars(self::$alloptions[self::$opt_gallery_channelsubtext], ENT_QUOTES) . '</a></div>';
1707
  }
1708
 
1709
-
1710
  $gallery_page_obj = self::get_gallery_page($gallery_options);
1711
 
1712
- $galleryWrapper1 = '<div class="epyt-gallery ' . $disptype . '" data-currpage="1" id="' . $galleryid . '">';
1713
  $galleryWrapper2 = '</div>';
1714
- $galleryCode = $subbutton . '<div class="epyt-gallery-list epyt-gallery-style-' . esc_attr($gallery_options->style) . '">' .
1715
- $gallery_page_obj->html .
1716
- '</div>';
1717
  $videoidoutput = isset($gallery_page_obj->init_id) ? $gallery_page_obj->init_id : '';
1718
  }
1719
 
1720
 
1721
- $code1 = $beginlb . '<iframe ' . $dyntype . $centercode . ' id="_ytid_' . rand(10000, 99999) . '" width="' . self::$defaultwidth . '" height="' . self::$defaultheight .
1722
- '" ' . $dynsrc . 'src="https://www.' . $youtubebaseurl . '.com/embed/' . $videoseries . $videoidoutput . '?';
1723
- $code2 = '" class="__youtube_prefs__' . ($iscontent ? '' : ' __youtube_prefs_widget__') . $disptypeif .
1724
- '"' . $voloutput . $acctitle . $galleryid_ifm_data . ' allowfullscreen data-no-lazy="1"></iframe>' . $endlb . $schemaorgoutput;
1725
 
1726
  $origin = '';
1727
 
@@ -1770,17 +2288,6 @@ class YouTubePrefs
1770
  self::$defaultwidth = null;
1771
  self::$oembeddata = null;
1772
 
1773
-
1774
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0 && self::$alloptions[self::$opt_spdc] == 1 && !isset($finalparams['live']))
1775
- {
1776
- $daysecs = self::$alloptions[self::$opt_spdcexp] * 60 * 60;
1777
- set_transient($spdckey, $code, $daysecs);
1778
- $allk = get_option(self::$spdcall, array());
1779
- $allk[] = $spdckey;
1780
- update_option(self::$spdcall, $allk);
1781
-
1782
- //self::debuglog((microtime(true) - $time_start) . "\t" . $spdckey . "\t" . $code . "\r\n");
1783
- }
1784
  return $code;
1785
  }
1786
 
@@ -1791,551 +2298,147 @@ class YouTubePrefs
1791
  fclose($handle);
1792
  }
1793
 
1794
- public static function spdcpurge()
1795
- {
1796
- $allk = get_option(self::$spdcall, array());
1797
- if (is_array($allk))
1798
- {
1799
- foreach ($allk as $t)
1800
- {
1801
- $success = delete_transient($t);
1802
- }
1803
- }
1804
- update_option(self::$spdcall, array());
1805
- }
1806
-
1807
  public static function keyvalue($qry, $includev)
1808
  {
1809
  $ytvars = explode('&', $qry);
1810
  $ytkvp = array();
1811
  foreach ($ytvars as $k => $v)
1812
  {
1813
- $kvp = explode('=', $v);
1814
- if (count($kvp) == 2 && ($includev || strtolower($kvp[0]) != 'v'))
1815
- {
1816
- $ytkvp[$kvp[0]] = $kvp[1];
1817
- }
1818
- }
1819
-
1820
- return $ytkvp;
1821
- }
1822
-
1823
- public static function getschemaorgoutput($vidid)
1824
- {
1825
- $schemaorgcode = '';
1826
- try
1827
- {
1828
- $ytapilink = 'https://www.googleapis.com/youtube/v3/videos?id=' . $vidid . '&part=contentDetails,snippet&key=' . self::$alloptions[self::$opt_apikey];
1829
-
1830
-
1831
- $apidata = wp_remote_get($ytapilink, array('timeout' => self::$curltimeout));
1832
- if (!is_wp_error($apidata))
1833
- {
1834
- $raw = wp_remote_retrieve_body($apidata);
1835
- if (!empty($raw))
1836
- {
1837
- $json = json_decode($raw, true);
1838
- if (is_array($json))
1839
- {
1840
- $_name = esc_attr(sanitize_text_field(str_replace("@", "&#64;", $json['items'][0]['snippet']['title'])));
1841
- $_description = esc_attr(sanitize_text_field(str_replace("@", "&#64;", $json['items'][0]['snippet']['description'])));
1842
- $_thumbnailUrl = esc_url("https://i.ytimg.com/vi/" . $vidid . "/0.jpg");
1843
- $_duration = $json['items'][0]['contentDetails']['duration']; // "T0H9M35S" "PT9M35S"
1844
- $_uploadDate = sanitize_text_field($json['items'][0]['snippet']['publishedAt']); // "2014-10-03T15:30:12.000Z"
1845
-
1846
- $schemaorgcode = '<span itemprop="video" itemscope itemtype="http://schema.org/VideoObject">';
1847
- $schemaorgcode .= '<meta itemprop="embedUrl" content="https://www.youtube.com/embed/' . $vidid . '">';
1848
- $schemaorgcode .= '<meta itemprop="name" content="' . $_name . '">';
1849
- $schemaorgcode .= '<meta itemprop="description" content="' . $_description . '">';
1850
- $schemaorgcode .= '<meta itemprop="thumbnailUrl" content="' . $_thumbnailUrl . '">';
1851
- $schemaorgcode .= '<meta itemprop="duration" content="' . $_duration . '">';
1852
- $schemaorgcode .= '<meta itemprop="uploadDate" content="' . $_uploadDate . '">';
1853
- $schemaorgcode .= '</span>';
1854
- }
1855
- }
1856
- }
1857
- }
1858
- catch (Exception $ex)
1859
- {
1860
-
1861
- }
1862
- return $schemaorgcode;
1863
- }
1864
-
1865
- public static function secondsToDuration($seconds)
1866
- {
1867
- $remaining = $seconds;
1868
- $parts = array();
1869
- $multipliers = array(
1870
- 'hours' => 3600,
1871
- 'minutes' => 60,
1872
- 'seconds' => 1
1873
- );
1874
-
1875
- foreach ($multipliers as $type => $m)
1876
- {
1877
- $parts[$type] = (int) ($remaining / $m);
1878
- $remaining -= ($parts[$type] * $m);
1879
- }
1880
-
1881
- return $parts;
1882
- }
1883
-
1884
- public static function formatDuration($parts)
1885
- {
1886
- $default = array(
1887
- 'hours' => 0,
1888
- 'minutes' => 0,
1889
- 'seconds' => 0
1890
- );
1891
-
1892
- extract(array_merge($default, $parts));
1893
-
1894
- return "T{$hours}H{$minutes}M{$seconds}S";
1895
- }
1896
-
1897
- public static function init_dimensions($url, $urlkvp, $finalparams)
1898
- {
1899
- // get default dimensions; try embed size in settings, then try theme's content width, then just 480px
1900
- if (self::$defaultwidth == null)
1901
- {
1902
- global $content_width;
1903
- if (empty($content_width))
1904
- {
1905
- $content_width = $GLOBALS['content_width'];
1906
- }
1907
-
1908
- if (isset($urlkvp['width']) && is_numeric($urlkvp['width']))
1909
- {
1910
- self::$defaultwidth = $urlkvp['width'];
1911
- }
1912
- else if (self::$alloptions[self::$opt_defaultdims] == 1 && (isset(self::$alloptions[self::$opt_defaultwidth]) && is_numeric(self::$alloptions[self::$opt_defaultwidth])))
1913
- {
1914
- self::$defaultwidth = self::$alloptions[self::$opt_defaultwidth];
1915
- }
1916
- else if (self::$optembedwidth)
1917
- {
1918
- self::$defaultwidth = self::$optembedwidth;
1919
- }
1920
- else if ($content_width)
1921
- {
1922
- self::$defaultwidth = $content_width;
1923
- }
1924
- else
1925
- {
1926
- self::$defaultwidth = 480;
1927
- }
1928
-
1929
-
1930
-
1931
- if (isset($urlkvp['height']) && is_numeric($urlkvp['height']))
1932
- {
1933
- self::$defaultheight = $urlkvp['height'];
1934
- }
1935
- else if (self::$alloptions[self::$opt_defaultdims] == 1 && (isset(self::$alloptions[self::$opt_defaultheight]) && is_numeric(self::$alloptions[self::$opt_defaultheight])))
1936
- {
1937
- self::$defaultheight = self::$alloptions[self::$opt_defaultheight];
1938
- }
1939
- else
1940
- {
1941
- self::$defaultheight = self::get_aspect_height($url, $urlkvp, $finalparams);
1942
- }
1943
- }
1944
- }
1945
-
1946
- public static function get_oembed($url, $height, $width)
1947
- {
1948
- require_once( ABSPATH . WPINC . '/class-oembed.php' );
1949
- $oembed = _wp_oembed_get_object();
1950
- $args = array();
1951
- $args['width'] = $width;
1952
- $args['height'] = $height;
1953
- $args['discover'] = false;
1954
- self::$oembeddata = $oembed->fetch('https://www.youtube.com/oembed', $url, $args);
1955
- return self::$oembeddata;
1956
- }
1957
-
1958
- public static function get_aspect_height($url, $urlkvp, $finalparams)
1959
- {
1960
-
1961
- // attempt to get aspect ratio correct height from oEmbed
1962
- $aspectheight = round((self::$defaultwidth * 9) / 16, 0);
1963
-
1964
-
1965
- if ($url)
1966
- {
1967
- $odata = self::get_oembed($url, self::$defaultwidth, self::$defaultwidth);
1968
-
1969
- if ($odata)
1970
- {
1971
- $aspectheight = $odata->height;
1972
- }
1973
- }
1974
-
1975
- if ($finalparams[self::$opt_controls] != 0 && $finalparams[self::$opt_autohide] != 1)
1976
- {
1977
- //add 28 for YouTube's own bar: DEPRECATED
1978
- //$aspectheight += 28;
1979
- }
1980
- return $aspectheight;
1981
- }
1982
-
1983
- public static function doftpostimg($postid, $post, $update)
1984
- {
1985
- if (current_user_can('edit_posts'))
1986
- {
1987
- if ((defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) || !in_array($post->post_status, array('publish', 'pending', 'draft', 'future', 'private')))
1988
- {
1989
- return;
1990
- }
1991
- try
1992
- {
1993
- self::doftpostimgfor($post);
1994
- }
1995
- catch (Exception $ex)
1996
- {
1997
- // display error message
1998
- }
1999
- }
2000
- }
2001
-
2002
- public static function doftpostimgfor($post)
2003
- {
2004
- $search_content = isset($post->post_content) ? $post->post_content : '';
2005
- $search_content = substr(wp_strip_all_tags($search_content), 0, 5000);
2006
-
2007
- $search_content = apply_filters('youtube_embedplus_video_content', $search_content);
2008
-
2009
- $vid_match = null;
2010
- if ($search_content && $post->ID && !has_post_thumbnail($post->ID) && preg_match(self::$justurlregex, $search_content, $vid_match)
2011
- )
2012
- {
2013
-
2014
- $first_vid_link = trim(str_replace(self::$badentities, self::$goodliterals, $vid_match[0]));
2015
-
2016
- $first_vid_link = preg_replace('/\s/', '', $first_vid_link);
2017
- $linkparamstemp = explode('?', $first_vid_link);
2018
-
2019
- $linkparams = array();
2020
- if (count($linkparamstemp) > 1)
2021
- {
2022
- $linkparams = self::keyvalue($linkparamstemp[1], true);
2023
- }
2024
- if (strpos($linkparamstemp[0], 'youtu.be') !== false && !isset($linkparams['v']))
2025
- {
2026
- $vtemp = explode('/', $linkparamstemp[0]);
2027
- $linkparams['v'] = array_pop($vtemp);
2028
- }
2029
-
2030
- $just_id = $linkparams['v'];
2031
-
2032
- if ($just_id == null && isset($linkparams['list']))
2033
- {
2034
- $apiEndpoint = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,status&playlistId=' . $linkparams['list']
2035
- . '&maxResults=10&key=' . self::$alloptions[self::$opt_apikey];
2036
- try
2037
- {
2038
- $apiResult = wp_remote_get($apiEndpoint, array('timeout' => self::$curltimeout));
2039
- if (!is_wp_error($apiResult))
2040
- {
2041
- $jsonResult = json_decode($apiResult['body']);
2042
- if (!isset($jsonResult->error) && isset($jsonResult->items) && $jsonResult->items != null && is_array($jsonResult->items))
2043
- {
2044
-
2045
- $item = $jsonResult->items[0];
2046
- $just_id = isset($item->snippet->resourceId->videoId) ? $item->snippet->resourceId->videoId : null;
2047
- $just_id = $just_id ? $just_id : $item->id->videoId;
2048
- }
2049
- }
2050
- }
2051
- catch (Exception $ex)
2052
- {
2053
-
2054
- }
2055
- }
2056
-
2057
- if ($just_id != null)
2058
- {
2059
- $ftimgurl = "https://img.youtube.com/vi/" . $just_id . "/maxresdefault.jpg";
2060
- $ftimgid = self::media_sideload($ftimgurl, $post->ID, sanitize_title(preg_replace("/[^a-zA-Z0-9\s]/", "-", $post->post_title)));
2061
-
2062
- if (!ftimgid || is_wp_error($ftimgid))
2063
- {
2064
- $ftimgurl = null;
2065
- $ftimgid = 0;
2066
- if ($just_id)
2067
- {
2068
- require_once( ABSPATH . WPINC . '/class-oembed.php' );
2069
- $oembed = _wp_oembed_get_object();
2070
- $args = array();
2071
- $args['width'] = 1920;
2072
- $args['height'] = 1080;
2073
- $args['discover'] = false;
2074
- $odata = $oembed->fetch('https://www.youtube.com/oembed', 'http://youtube.com/watch?v=' . $just_id, $args);
2075
-
2076
- if ($odata)
2077
- {
2078
- $ftimgurl = $odata->thumbnail_url;
2079
- }
2080
- }
2081
-
2082
- $ftimgid = $ftimgurl && !is_wp_error($ftimgurl) ? self::media_sideload($ftimgurl, $post->ID, sanitize_title(preg_replace("/[^a-zA-Z0-9\s]/", "-", $post->title))) : 0;
2083
-
2084
- if (!$ftimgid || is_wp_error($ftimgid))
2085
- {
2086
- return;
2087
- }
2088
- }
2089
- set_post_thumbnail($post->ID, $ftimgid);
2090
  }
2091
  }
 
 
2092
  }
2093
 
2094
- public static function media_sideload($url, $post_id, $filename = null)
2095
  {
2096
- if (!$url || !$post_id)
2097
- {
2098
- return new WP_Error('missing', __('Please provide a valid URL and post ID', ''));
2099
- }
2100
-
2101
- $post_title = get_the_title($post_id);
2102
-
2103
- require_once(ABSPATH . 'wp-admin/includes/file.php');
2104
- $tmp = download_url($url);
2105
-
2106
- if (is_wp_error($tmp))
2107
- {
2108
- @unlink($file_array['tmp_name']);
2109
- $file_array['tmp_name'] = '';
2110
- return $tmp;
2111
- }
2112
-
2113
- preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $url, $matches);
2114
- $url_filename = basename($matches[0]);
2115
- $url_type = wp_check_filetype($url_filename);
2116
 
2117
- if (!empty($filename))
2118
  {
2119
- $filename = sanitize_file_name($filename);
2120
- $tmppath = pathinfo($tmp);
2121
- $new = $tmppath['dirname'] . '/' . $filename . '.' . $tmppath['extension'];
2122
- rename($tmp, $new);
2123
- $tmp = $new;
2124
  }
2125
 
2126
- $file_array['tmp_name'] = $tmp;
2127
- if (!empty($filename))
2128
- {
2129
- $file_array['name'] = $filename . '.' . $url_type['ext'];
2130
- }
2131
- else
2132
- {
2133
- $file_array['name'] = $url_filename;
2134
- }
2135
 
2136
- $post_data = array(
2137
- 'post_title' => $post_title,
2138
- 'post_parent' => $post_id,
 
 
 
2139
  );
2140
 
2141
- require_once( ABSPATH . 'wp-admin/includes/file.php' );
2142
- require_once( ABSPATH . 'wp-admin/includes/media.php' );
2143
- require_once( ABSPATH . 'wp-admin/includes/image.php' );
2144
-
2145
- $att_id = media_handle_sideload($file_array, $post_id, null, $post_data);
2146
-
2147
- if (is_wp_error($att_id))
2148
- {
2149
- @unlink($file_array['tmp_name']);
2150
- return $att_id;
2151
- }
2152
 
2153
- return $att_id;
2154
  }
2155
 
2156
- public static function do_ogvideo()
2157
  {
2158
- global $wp_query;
2159
- $the_content = $wp_query->post->post_content;
2160
- $matches = Array();
2161
- $ismatch = preg_match_all(self::$justurlregex, $the_content, $matches);
2162
-
2163
- if ($ismatch)
2164
  {
2165
- $match = $matches[0][0];
2166
-
2167
- $link = trim(preg_replace('/&amp;/i', '&', $match));
2168
- $link = preg_replace('/\s/', '', $link);
2169
- $link = trim(str_replace(self::$badentities, self::$goodliterals, $link));
2170
-
2171
- $linkparamstemp = explode('?', $link);
2172
 
2173
- $linkparams = array();
2174
- if (count($linkparamstemp) > 1)
2175
  {
2176
- $linkparams = self::keyvalue($linkparamstemp[1], true);
2177
  }
2178
- if (strpos($linkparamstemp[0], 'youtu.be') !== false && !isset($linkparams['v']))
2179
  {
2180
- $vtemp = explode('/', $linkparamstemp[0]);
2181
- $linkparams['v'] = array_pop($vtemp);
2182
  }
2183
-
2184
- if (isset($linkparams['v']))
2185
  {
2186
- ?>
2187
- <meta property="og:type" content="video">
2188
- <meta property="og:video" content="https://www.youtube.com/v/<?php echo $linkparams['v']; ?>?autohide=1&amp;version=3">
2189
- <meta property="og:video:type" content="application/x-shockwave-flash">
2190
- <meta property="og:video:width" content="480">
2191
- <meta property="og:video:height" content="360">
2192
- <meta property="og:image" content="https://img.youtube.com/vi/<?php echo $linkparams['v']; ?>/0.jpg">
2193
- <?php
2194
  }
2195
- }
2196
- }
2197
-
2198
- public static function ytprefs_plugin_menu()
2199
- {
2200
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0)
2201
- {
2202
- add_menu_page('YouTube Settings', 'YouTube PRO', 'manage_options', 'youtube-my-preferences', 'YouTubePrefs::ytprefs_show_options', plugins_url('images/youtubeicon16.png', __FILE__), '10.000392854349');
2203
- add_submenu_page('youtube-my-preferences', '', '', 'manage_options', 'youtube-my-preferences', 'YouTubePrefs::ytprefs_show_options');
2204
- add_submenu_page('youtube-my-preferences', 'YouTube Analytics Dashboard', '<img style="width: 16px; height: 16px; vertical-align: text-top;" src="' . plugins_url('images/epstats16.png', __FILE__) . '" />&nbsp;&nbsp;PRO Analytics', 'manage_options', 'youtube-ep-analytics-dashboard', 'YouTubePrefs::epstats_show_options');
2205
- }
2206
- else
2207
- {
2208
- add_menu_page('YouTube Settings', 'YouTube Free', 'manage_options', 'youtube-my-preferences', 'YouTubePrefs::ytprefs_show_options', plugins_url('images/youtubeicon16.png', __FILE__), '10.000392854349');
2209
- add_submenu_page('youtube-my-preferences', '', '', 'manage_options', 'youtube-my-preferences', 'YouTubePrefs::ytprefs_show_options');
2210
- add_submenu_page('youtube-my-preferences', 'YouTube PRO', '<img style="width: 16px; height: 16px; vertical-align: text-top;" src="' . plugins_url('images/iconwizard.png', __FILE__) . '" />&nbsp;&nbsp;YouTube PRO', 'manage_options', 'youtube-ep-analytics-dashboard', 'YouTubePrefs::epstats_show_options');
2211
- }
2212
- add_submenu_page(null, 'YouTube Posts', 'YouTube Posts', 'manage_options', 'youtube-ep-glance', 'YouTubePrefs::glance_page');
2213
- }
2214
-
2215
- public static function epstats_show_options()
2216
- {
2217
-
2218
- if (!current_user_can('manage_options'))
2219
- {
2220
- wp_die(__('You do not have sufficient permissions to access this page.'));
2221
- }
2222
-
2223
- if (self::$double_plugin)
2224
- {
2225
- //add_action('admin_notices', array("YouTubePrefs", "double_plugin_warning"));
2226
- self::double_plugin_warning();
2227
- }
2228
-
2229
-
2230
- // Now display the settings editing screen
2231
- ?>
2232
- <div class="wrap">
2233
- <style type="text/css">
2234
- .wrap {font-family: Arial;}
2235
- .epicon { width: 20px; height: 20px; vertical-align: middle; padding-right: 5px;}
2236
- .epindent {padding-left: 25px;}
2237
- iframe.shadow {-webkit-box-shadow: 0px 0px 20px 0px #000000; box-shadow: 0px 0px 20px 0px #000000;}
2238
- .bold {font-weight: bold;}
2239
- .orange {color: #f85d00;}
2240
- </style>
2241
- <br>
2242
- <?php
2243
- $thishost = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : "");
2244
- $thiskey = self::$alloptions[self::$opt_pro];
2245
-
2246
- $dashurl = self::$epbase . "/dashboard/pro-easy-video-analytics.aspx?ref=protab&domain=" . $thishost . "&prokey=" . $thiskey;
2247
-
2248
- if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0)
2249
  {
2250
- //// header
2251
- echo "<h2>" . '<img alt="YouTube Plugin Icon" src="' . plugins_url('images/epstats16.png', __FILE__) . '" /> ' . __('YouTube Analytics Dashboard') . "</h2>";
2252
- echo '<p><i>Logging you in below... (You can also <a class="button-primary" target="_blank" href="' . $dashurl . '">click here</a> to launch your dashboard in a new tab)</i></p>';
2253
  }
2254
  else
2255
  {
2256
- //// header
2257
- echo "<h2>" . '<img alt="YouTube Plugin Wizard" style="vertical-align: text-bottom;" src="' . plugins_url('images/iconwizard.png', __FILE__) . '" /> ' . __('YouTube Plugin PRO') . "</h2><p class='bold orange'>This tab is here to provide direct access to analytics. Graphs and other data about your site will show below after you activate PRO.</p><br>";
2258
  }
2259
- ?>
2260
- <iframe class="shadow" src="<?php echo $dashurl ?>" width="1060" height="3600" scrolling="auto"/>
2261
- </div>
2262
- <?php
2263
- }
2264
 
2265
- public static function my_embedplus_pro_record()
2266
- {
2267
- $result = array();
2268
- if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
2269
- {
2270
- $tmppro = preg_replace('/[^A-Za-z0-9-]/i', '', $_REQUEST[self::$opt_pro]);
2271
- $new_options = array();
2272
- $new_options[self::$opt_pro] = $tmppro;
2273
- $all = get_option(self::$opt_alloptions);
2274
- $all = $new_options + $all;
2275
- update_option(self::$opt_alloptions, $all);
2276
 
2277
- if (strlen($tmppro) > 0)
 
2278
  {
2279
- $result['type'] = 'success';
 
 
 
 
2280
  }
2281
  else
2282
  {
2283
- $result['type'] = 'error';
2284
  }
2285
- echo json_encode($result);
2286
- }
2287
- else
2288
- {
2289
- $result['type'] = 'error';
2290
- header("Location: " . $_SERVER["HTTP_REFERER"]);
2291
  }
2292
- die();
2293
  }
2294
 
2295
- public static function my_embedplus_dashpre()
2296
  {
2297
- $result = array();
2298
- if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
2299
- {
2300
- try
2301
- {
2302
- $tmp = intval($_REQUEST[self::$opt_dashpre]);
2303
- $new_options = array();
2304
- $new_options[self::$opt_dashpre] = $tmp;
2305
- $all = get_option(self::$opt_alloptions);
2306
- $all = $new_options + $all;
2307
- update_option(self::$opt_alloptions, $all);
2308
- }
2309
- catch (Exception $ex)
2310
- {
2311
-
2312
- }
2313
- }
2314
- die();
2315
  }
2316
 
2317
- public static function my_embedplus_clearspdc()
2318
  {
2319
- $result = array();
2320
- if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
 
 
 
 
2321
  {
2322
- try
2323
- {
2324
- self::spdcpurge();
2325
- $result['type'] = 'success';
2326
- }
2327
- catch (Exception $ex)
2328
  {
2329
- $result['type'] = 'error';
2330
  }
2331
- echo json_encode($result);
2332
  }
2333
- else
 
2334
  {
2335
- $result['type'] = 'error';
2336
- header("Location: " . $_SERVER["HTTP_REFERER"]);
2337
  }
2338
- die();
 
 
 
 
 
 
 
 
 
2339
  }
2340
 
2341
  public static function custom_admin_pointers_check()
@@ -2345,7 +2448,9 @@ class YouTubePrefs
2345
  foreach ($admin_pointers as $pointer => $array)
2346
  {
2347
  if ($array['active'])
 
2348
  return true;
 
2349
  }
2350
  }
2351
 
@@ -2372,11 +2477,11 @@ class YouTubePrefs
2372
  url: wpajaxurl,
2373
  data: {action: 'my_embedplus_glance_count'},
2374
  success: function (response) {
2375
- if (response.type == "success") {
2376
  $j(response.container).append(response.data);
2377
  $j(".ytprefs_glance_button").click(widen_ytprefs_glance);
2378
  $j(window).resize(widen_ytprefs_glance);
2379
- if (typeof ep_do_pointers == 'function')
2380
  {
2381
  //ep_do_pointers($j);
2382
  }
@@ -2390,11 +2495,8 @@ class YouTubePrefs
2390
  complete: function () {
2391
  }
2392
  });
2393
-
2394
  });
2395
-
2396
- })(jQuery);
2397
- </script>
2398
  <?php
2399
  }
2400
 
@@ -2448,11 +2550,11 @@ class YouTubePrefs
2448
  $new_pointer_content .= '<p>'; // ooopointer
2449
  if (!(self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0))
2450
  {
2451
- $new_pointer_content .= __("This update includes YouTube Live features and a few fixes/optimizations for the Free and (<a target=_blank href=" . self::$epbase . '/dashboard/pro-easy-video-analytics.aspx?ref=frompointer' . ">Pro versions &raquo;</a>)");
2452
  }
2453
  else
2454
  {
2455
- $new_pointer_content .= __("This update includes YouTube Live features and a few fixes/optimizations for the Free and Pro versions.");
2456
  }
2457
  $new_pointer_content .= '</p>';
2458
 
@@ -2467,9 +2569,90 @@ class YouTubePrefs
2467
  );
2468
  }
2469
 
2470
- public static function postchecked($idx)
2471
- {
2472
- return isset($_POST[$idx]) && $_POST[$idx] == (true || 'on');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2473
  }
2474
 
2475
  public static function ytprefs_show_options()
@@ -2482,12 +2665,9 @@ class YouTubePrefs
2482
 
2483
  if (self::$double_plugin)
2484
  {
2485
- //add_action('admin_notices', array("YouTubePrefs", "double_plugin_warning"));
2486
  self::double_plugin_warning();
2487
  }
2488
 
2489
-
2490
- // variables for the field and option names
2491
  $ytprefs_submitted = 'ytprefs_submitted';
2492
 
2493
  // Read in existing option values from database
@@ -2517,29 +2697,19 @@ class YouTubePrefs
2517
  $new_options[self::$opt_origin] = self::postchecked(self::$opt_origin) ? 1 : 0;
2518
  $new_options[self::$opt_controls] = self::postchecked(self::$opt_controls) ? 2 : 0;
2519
  $new_options[self::$opt_autohide] = self::postchecked(self::$opt_autohide) ? 1 : 2;
2520
- $new_options[self::$opt_html5] = self::postchecked(self::$opt_html5) ? 1 : 0;
2521
  $new_options[self::$opt_theme] = self::postchecked(self::$opt_theme) ? 'dark' : 'light';
2522
  $new_options[self::$opt_color] = self::postchecked(self::$opt_color) ? 'red' : 'white';
2523
- $new_options[self::$opt_wmode] = self::postchecked(self::$opt_wmode) ? 'opaque' : 'transparent';
2524
- $new_options[self::$opt_vq] = self::postchecked(self::$opt_vq) ? 'hd720' : '';
2525
  $new_options[self::$opt_nocookie] = self::postchecked(self::$opt_nocookie) ? 1 : 0;
2526
  $new_options[self::$opt_playlistorder] = self::postchecked(self::$opt_playlistorder) ? 1 : 0;
2527
  $new_options[self::$opt_acctitle] = self::postchecked(self::$opt_acctitle) ? 1 : 0;
2528
- $new_options[self::$opt_ogvideo] = self::postchecked(self::$opt_ogvideo) ? 1 : 0;
2529
  $new_options[self::$opt_migrate] = self::postchecked(self::$opt_migrate) ? 1 : 0;
2530
  $new_options[self::$opt_migrate_youtube] = self::postchecked(self::$opt_migrate_youtube) ? 1 : 0;
2531
  $new_options[self::$opt_migrate_embedplusvideo] = self::postchecked(self::$opt_migrate_embedplusvideo) ? 1 : 0;
2532
- //$new_options[self::$opt_ssl] = self::postchecked(self::$opt_ssl) ? 1 : 0;
2533
  $new_options[self::$opt_oldspacing] = self::postchecked(self::$opt_oldspacing) ? 1 : 0;
2534
  $new_options[self::$opt_responsive] = self::postchecked(self::$opt_responsive) ? 1 : 0;
2535
  $new_options[self::$opt_widgetfit] = self::postchecked(self::$opt_widgetfit) ? 1 : 0;
2536
  $new_options[self::$opt_evselector_light] = self::postchecked(self::$opt_evselector_light) ? 1 : 0;
2537
  $new_options[self::$opt_stop_mobile_buffer] = self::postchecked(self::$opt_stop_mobile_buffer) ? 1 : 0;
2538
- $new_options[self::$opt_schemaorg] = self::postchecked(self::$opt_schemaorg) ? 1 : 0;
2539
- $new_options[self::$opt_ftpostimg] = self::postchecked(self::$opt_ftpostimg) ? 1 : 0;
2540
- $new_options[self::$opt_spdc] = self::postchecked(self::$opt_spdc) ? 1 : 0;
2541
- $new_options[self::$opt_spdcab] = self::postchecked(self::$opt_spdcab) ? 1 : 0;
2542
- $new_options[self::$opt_dynload] = self::postchecked(self::$opt_dynload) ? 1 : 0;
2543
  $new_options[self::$opt_defaultdims] = self::postchecked(self::$opt_defaultdims) ? 1 : 0;
2544
  $new_options[self::$opt_defaultvol] = self::postchecked(self::$opt_defaultvol) ? 1 : 0;
2545
  $new_options[self::$opt_dohl] = self::postchecked(self::$opt_dohl) ? 1 : 0;
@@ -2549,7 +2719,6 @@ class YouTubePrefs
2549
  $new_options[self::$opt_gallery_thumbplay] = self::postchecked(self::$opt_gallery_thumbplay) ? 1 : 0;
2550
  $new_options[self::$opt_gallery_channelsub] = self::postchecked(self::$opt_gallery_channelsub) ? 1 : 0;
2551
  $new_options[self::$opt_gallery_customarrows] = self::postchecked(self::$opt_gallery_customarrows) ? 1 : 0;
2552
- $new_options[self::$opt_gallery_showdsc] = self::postchecked(self::$opt_gallery_showdsc) ? 1 : 0;
2553
  $new_options[self::$opt_gallery_collapse_grid] = self::postchecked(self::$opt_gallery_collapse_grid) ? 1 : 0;
2554
 
2555
  $_defaultwidth = '';
@@ -2596,7 +2765,7 @@ class YouTubePrefs
2596
  }
2597
  $new_options[self::$opt_vol] = $_vol;
2598
 
2599
- $_gallery_pagesize = 12;
2600
  try
2601
  {
2602
  $_gallery_pagesize = is_numeric(trim($_POST[self::$opt_gallery_pagesize])) ? intval(trim($_POST[self::$opt_gallery_pagesize])) : $_gallery_pagesize;
@@ -2644,51 +2813,6 @@ class YouTubePrefs
2644
  }
2645
  $new_options[self::$opt_gallery_scrolloffset] = $_gallery_scrolloffset;
2646
 
2647
- $_gallery_style = 'grid';
2648
- try
2649
- {
2650
- if (isset($_POST[self::$opt_gallery_style]))
2651
- {
2652
- $_gallery_style = trim(str_replace(array(' ', "'", '"'), array('', '', ''), strip_tags($_POST[self::$opt_gallery_style])));
2653
- }
2654
- }
2655
- catch (Exception $ex)
2656
- {
2657
- $_gallery_style = 'grid';
2658
- }
2659
- $new_options[self::$opt_gallery_style] = $_gallery_style;
2660
-
2661
-
2662
- $_gallery_thumbcrop = 'box';
2663
- try
2664
- {
2665
- if (isset($_POST[self::$opt_gallery_thumbcrop]))
2666
- {
2667
- $_gallery_thumbcrop = trim(str_replace(array(' ', "'", '"'), array('', '', ''), strip_tags($_POST[self::$opt_gallery_thumbcrop])));
2668
- }
2669
- }
2670
- catch (Exception $ex)
2671
- {
2672
- $_gallery_thumbcrop = 'box';
2673
- }
2674
- $new_options[self::$opt_gallery_thumbcrop] = $_gallery_thumbcrop;
2675
-
2676
-
2677
- $_gallery_disptype = 'default';
2678
- try
2679
- {
2680
- if (isset($_POST[self::$opt_gallery_disptype]))
2681
- {
2682
- $_gallery_disptype = trim(str_replace(array(' ', "'", '"'), array('', '', ''), strip_tags($_POST[self::$opt_gallery_disptype])));
2683
- }
2684
- }
2685
- catch (Exception $ex)
2686
- {
2687
- $_gallery_disptype = 'default';
2688
- }
2689
- $new_options[self::$opt_gallery_disptype] = $_gallery_disptype;
2690
-
2691
-
2692
  $_gallery_channelsublink = '';
2693
  try
2694
  {
@@ -2777,61 +2901,9 @@ class YouTubePrefs
2777
  }
2778
  $new_options[self::$opt_apikey] = $_apikey;
2779
 
2780
- // $_hl = '';
2781
- // try
2782
- // {
2783
- // $temphl = strtolower(trim($_POST[self::$opt_hl]));
2784
- // $_hl = preg_match('/^[a-z][a-z]$/i', $temphl) ? $temphl : '';
2785
- // }
2786
- // catch (Exception $ex)
2787
- // {
2788
- //
2789
- // }
2790
- // $new_options[self::$opt_hl] = $_hl;
2791
-
2792
- $_dyntype = '';
2793
- try
2794
- {
2795
- if (isset($_POST[self::$opt_dyntype]))
2796
- {
2797
- $tempdyntype = trim($_POST[self::$opt_dyntype]);
2798
- $_dyntype = preg_match('/^[a-zA-Z-]+$/i', $tempdyntype) ? $tempdyntype : '';
2799
- }
2800
- }
2801
- catch (Exception $ex)
2802
- {
2803
-
2804
- }
2805
- $new_options[self::$opt_dyntype] = $_dyntype;
2806
-
2807
- $_spdcexp = 24;
2808
- try
2809
- {
2810
- $_spdcexp = isset($_POST[self::$opt_spdcexp]) && is_numeric(trim($_POST[self::$opt_spdcexp])) ? intval(trim($_POST[self::$opt_spdcexp])) : $_spdcexp;
2811
- }
2812
- catch (Exception $ex)
2813
- {
2814
-
2815
- }
2816
- $new_options[self::$opt_spdcexp] = $_spdcexp;
2817
-
2818
-
2819
  $all = $new_options + $all;
2820
 
2821
  update_option(self::$opt_alloptions, $all);
2822
-
2823
- try
2824
- {
2825
- self::spdcpurge();
2826
- if ($all[self::$opt_spdc] == 1)
2827
- {
2828
- wp_remote_get(site_url(), array('timeout' => self::$curltimeout));
2829
- }
2830
- }
2831
- catch (Exception $ex)
2832
- {
2833
-
2834
- }
2835
  ?>
2836
  <div class="updated"><p><strong><?php _e('Changes saved.'); ?></strong></p></div>
2837
  <?php
@@ -2866,7 +2938,6 @@ class YouTubePrefs
2866
  .bold {font-weight: bold;}
2867
  .grey{color: #888888;}
2868
  #goprobox {border-radius: 15px; padding: 10px 15px 15px 15px; margin-top: 15px; border: 3px solid #CCE5EC; position: relative;}
2869
- #salenote {position: absolute; right: 10px; top: 10px; width: 75px; height: 30px;}
2870
  #nonprosupport {border-radius: 15px; padding: 10px 15px 20px 15px; border: 3px solid #ff6655;}
2871
  .pronon {font-weight: bold; color: #f85d00;}
2872
  ul.reglist li {margin: 0px 0px 0px 30px; list-style: disc outside none;}
@@ -2919,16 +2990,12 @@ class YouTubePrefs
2919
  input.checkbox[disabled], input[type=radio][disabled] {border: 1px dashed #444444;}
2920
  .pad10 {padding: 10px;}
2921
  #boxdohl {font-weight: bold; padding: 0px 10px; <?php echo $all[self::$opt_dohl] ? '' : 'display: none;' ?>}
2922
- #boxdyn {font-weight: bold; padding: 0px 10px; <?php echo $all[self::$opt_dynload] ? 'display: block;' : 'display: none;' ?>}
2923
- #boxspdc {padding: 0px 10px; border-left: 5px solid #eee; <?php echo $all[self::$opt_spdc] ? '' : 'display: none;' ?>}
2924
  #boxdefaultvol {font-weight: bold; padding: 0px 10px; <?php echo $all[self::$opt_defaultvol] ? '' : 'display: none;' ?>}
2925
  .vol-output {display: none; width: 30px; color: #008800;}
2926
  .vol-range {background-color: #dddddd; border-radius: 3px; cursor: pointer;}
2927
  input#vol {vertical-align: middle;}
2928
  .vol-seeslider {display: none;}
2929
- input#spdcexp {width: 70px;}
2930
  .indent-option {margin-left: 25px;}
2931
- #boxschemaorg { padding: 7px 0; <?php echo $all[self::$opt_schemaorg] ? 'display: block;' : 'display: none;' ?>}
2932
  #boxmigratelist { <?php echo $all[self::$opt_migrate] ? '' : 'display: none;' ?>}
2933
  #boxresponsive_all { <?php echo $all[self::$opt_responsive] ? '' : 'display: none;' ?> padding-left: 25px; border-left: 5px solid rgba(100, 100, 100,.1); margin-left: 5px;}
2934
  .apikey-msg {display: inline-block; width: 45%; vertical-align: top;}
@@ -2957,12 +3024,12 @@ class YouTubePrefs
2957
  <br>
2958
  <div id="jumphowto"></div>
2959
  <div class="ytnav">
2960
- <a href="#jumphowto">How To Embed</a>
 
2961
  <a href="#jumpwiz">Visual Wizard</a>
2962
  <a href="#jumpdefaults">Defaults</a>
2963
  <a href="#jumpcompat">Compatibility</a>
2964
  <a href="#jumpgallery">Galleries</a>
2965
- <a href="#jumpprosettings">PRO Settings</a>
2966
  <a href="#jumpoverride">Override Defaults</a>
2967
  <a target="_blank" href="<?php echo self::$epbase . "/dashboard/pro-easy-video-analytics.aspx?ref=protab" ?>" style="border-color: #888888;">Upgrade?</a>
2968
  <a href="#jumpsupport">Support</a>
@@ -2971,6 +3038,19 @@ class YouTubePrefs
2971
  <form name="form1" method="post" action="" id="ytform">
2972
  <input type="hidden" name="<?php echo $ytprefs_submitted; ?>" value="Y">
2973
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2974
  <h3 class="sect">
2975
  How to Insert a YouTube Video or Playlist &nbsp; <a class="smallnote" href="#jumpgallery">(For gallery directions, go here &raquo;)</a>
2976
  </h3>
@@ -3013,7 +3093,7 @@ class YouTubePrefs
3013
  you can click to directly embed the desired video link to your post without having to copy and paste.
3014
  </p>
3015
  <p>
3016
- <b class="orange">Even more options are available to PRO users!</b> Simply click the <a href="<?php echo self::$epbase . '/dashboard/pro-easy-video-analytics.aspx?ref=protab' ?>" target="_blank" class="button-primary cuz">&#9658; Customize</a> button on the wizard to further personalize your embeds without having to enter special codes yourself.
3017
  <br>
3018
  <br>
3019
 
@@ -3073,14 +3153,6 @@ class YouTubePrefs
3073
  <input name="<?php echo self::$opt_color; ?>" id="<?php echo self::$opt_color; ?>" <?php checked($all[self::$opt_color], 'red'); ?> type="checkbox" class="checkbox">
3074
  <label for="<?php echo self::$opt_color; ?>"><?php _e('<b class="chktitle">Red Progress Bar:</b> Use the red progress bar (uncheck to use a white progress bar). Note: Using white will disable the modestbranding option.') ?></label>
3075
  </p>
3076
- <p>
3077
- <input name="<?php echo self::$opt_vq; ?>" id="<?php echo self::$opt_vq; ?>" <?php checked($all[self::$opt_vq], 'hd720'); ?> type="checkbox" class="checkbox">
3078
- <label for="<?php echo self::$opt_vq; ?>"><?php _e('<b class="chktitle strike">HD Quality:</b> Force HD quality when available. <b>NOTE: YouTube has deprecated this unofficially supported option.</b>') ?> </label>
3079
- </p>
3080
- <p>
3081
- <input name="<?php echo self::$opt_wmode; ?>" id="<?php echo self::$opt_wmode; ?>" <?php checked($all[self::$opt_wmode], 'opaque'); ?> type="checkbox" class="checkbox">
3082
- <label for="<?php echo self::$opt_wmode; ?>"><?php _e('<b class="chktitle">Wmode:</b> Use "opaque" wmode (uncheck to use "transparent"). Opaque may have higher performance.') ?></label>
3083
- </p>
3084
  <p>
3085
  <input name="<?php echo self::$opt_defaultdims; ?>" id="<?php echo self::$opt_defaultdims; ?>" <?php checked($all[self::$opt_defaultdims], 1); ?> type="checkbox" class="checkbox">
3086
  <span id="boxdefaultdims">
@@ -3136,13 +3208,6 @@ class YouTubePrefs
3136
  <strong>Note: YouTube has deprecated this option, and will always autohide the controls.</strong>
3137
  </label>
3138
  </p>
3139
- <!-- <p>
3140
- <input name="<?php echo self::$opt_ssl; ?>" id="<?php echo self::$opt_ssl; ?>" <?php checked($all[self::$opt_ssl], 1); ?> type="checkbox" class="checkbox">
3141
- <label for="<?php echo self::$opt_ssl; ?>">
3142
- <b class="chktitle">HTTPS/SSL Player:</b> Do you have a website that uses HTTPS? Check this to use the secure YouTube player for all of your embeds.
3143
- This will go back and also secure your past embeds as they are loaded on their pages. Most web browsers will warn users when they access web pages via HTTPS that contain embedded content loaded via HTTP. If your main site is currently accessed via HTTPS, using HTTPS URLs for your YouTube embeds will prevent your users from running into that warning. If you're not currently supporting HTTPS/SSL, <a href="http://embedplus.com/convert-old-youtube-embeds-to-https-ssl.aspx" target="_blank">here's some motivation from Google &raquo;</a>
3144
- </label>
3145
- </p>-->
3146
  <p>
3147
  <input name="<?php echo self::$opt_defaultvol; ?>" id="<?php echo self::$opt_defaultvol; ?>" <?php checked($all[self::$opt_defaultvol], 1); ?> type="checkbox" class="checkbox">
3148
  <label for="<?php echo self::$opt_defaultvol; ?>">
@@ -3163,14 +3228,6 @@ class YouTubePrefs
3163
  <label for="<?php echo self::$opt_dohl; ?>"><b class="chktitle">Player Localization / Internationalization: </b>
3164
  Automatically detect your site's default language (using get_locale) and set your YouTube embeds interface language so that it matches. Specifically, this will set the player's tooltips and caption track if your language is natively supported by YouTube. We suggest checking this if English is not your site's default language. <a href="<?php echo self::$epbase ?>/youtube-iso-639-1-language-codes.aspx" target="_blank">See here for more details &raquo;</a></label>
3165
  </p>
3166
- <p>
3167
- <input name="<?php echo self::$opt_html5; ?>" id="<?php echo self::$opt_html5; ?>" <?php checked($all[self::$opt_html5], 1); ?> type="checkbox" class="checkbox">
3168
- <label for="<?php echo self::$opt_html5; ?>">
3169
- <b class="chktitle strike">HTML5 First:</b>
3170
- As of January 2015, YouTube began serving the HTML5 player by default; therefore, this plugin no longer needs a special HTML5 setting. This option is simply kept here as a notice.
3171
- </label>
3172
- </p>
3173
-
3174
  <p>
3175
  <input name="<?php echo self::$opt_playlistorder; ?>" id="<?php echo self::$opt_playlistorder; ?>" <?php checked($all[self::$opt_playlistorder], 1); ?> type="checkbox" class="checkbox">
3176
  <label for="<?php echo self::$opt_playlistorder; ?>">
@@ -3189,8 +3246,6 @@ class YouTubePrefs
3189
  wp_kses_post($all[self::$opt_not_live_content]), self::$opt_not_live_content, array('textarea_rows' => 5)
3190
  );
3191
  ?>
3192
-
3193
-
3194
  </p>
3195
 
3196
 
@@ -3248,7 +3303,7 @@ class YouTubePrefs
3248
  <input name="<?php echo self::$opt_stop_mobile_buffer; ?>" id="<?php echo self::$opt_stop_mobile_buffer; ?>" <?php checked($all[self::$opt_stop_mobile_buffer], 1); ?> type="checkbox" class="checkbox">
3249
  <label for="<?php echo self::$opt_stop_mobile_buffer; ?>">
3250
  <b class="chktitle">Mobile Autoplay Problems: </b>
3251
- Autoplay works for desktop, but mobile devices don't allow autoplay due to network carrier data charges. For mobile devices, this option allows the player to properly display the video for the visitor to click on.
3252
  </label>
3253
  </p>
3254
  <p>
@@ -3266,18 +3321,14 @@ class YouTubePrefs
3266
  <p>
3267
  <a target="_blank" href="<?php echo self::$epbase ?>/responsive-youtube-playlist-channel-gallery-for-wordpress.aspx">You can now make playlist embeds (and channel-playlist embeds) have a gallery layout &raquo;</a>. <strong>First, you must obtain your YouTube API key</strong>.
3268
  Don't worry, it's an easy process. Just <a href="https://www.youtube.com/watch?v=LpKDFT40V0U" target="_blank">click this link &raquo;</a> and follow the video on that page to get your API key. Since Google updates their API Key generation directions frequently, follow the general steps shown in the video.
3269
- Then paste your API key in the "YouTube API Key" box below, and click the "Save Changes" button.
3270
  </p>
3271
 
3272
  <p>
3273
  Below are the settings for galleries:
3274
  </p>
3275
  <div class="ytindent chx">
3276
- <p>
3277
- <b class="chktitle">YouTube API Key:</b>
3278
- <input type="text" name="<?php echo self::$opt_gallery_apikey; ?>" id="<?php echo self::$opt_gallery_apikey; ?>" value="<?php echo trim($all[self::$opt_apikey]); ?>" class="textinput" style="width: 250px;">
3279
- Required so your site can get the thumbnails, title text, and other content from YouTube's servers that used to render galleries. <a href="https://www.youtube.com/watch?v=LpKDFT40V0U" target="_blank">Click this link &raquo;</a> and follow the video to the right to get your API key.
3280
- </p>
3281
  <p>
3282
  <label for="<?php echo self::$opt_gallery_pagesize; ?>"><b class="chktitle">Gallery Page Size:</b></label>
3283
  <select name="<?php echo self::$opt_gallery_pagesize; ?>" id="<?php echo self::$opt_gallery_pagesize; ?>" style="width: 60px;">
@@ -3344,7 +3395,7 @@ class YouTubePrefs
3344
  <b class="chktitle">Show Subscribe Button: </b> Are you the channel owner for all your galleries? Check this box to add a "Subscribe" button to all your galleries as shown below. This might help you convert your site's visitors to YouTube subscribers of your channel.
3345
  </label>
3346
  <span id="boxchannelsub">
3347
- Channel URL: <input type="text" placeholder="https://www.youtube.com/user/YourChannel" name="<?php echo self::$opt_gallery_channelsublink; ?>" id="<?php echo self::$opt_gallery_channelsublink; ?>" value="<?php echo esc_attr(trim($all[self::$opt_gallery_channelsublink])); ?>" class="textinput" style="width: 200px;"> &nbsp;
3348
  Button text: <input type="text" name="<?php echo self::$opt_gallery_channelsubtext; ?>" id="<?php echo self::$opt_gallery_channelsubtext; ?>" value="<?php echo esc_attr(trim($all[self::$opt_gallery_channelsubtext])); ?>" class="textinput" style="width: 200px;">
3349
  </span>
3350
  </p>
@@ -3378,279 +3429,111 @@ class YouTubePrefs
3378
 
3379
  <div class="jumper" id="jumpprosettings"></div>
3380
  <div class="upgchecks">
3381
- <h3 class="sect">PRO Features</h3>
3382
- <?php
3383
- if ($all[self::$opt_pro] && strlen(trim($all[self::$opt_pro])) > 9)
3384
- {
3385
- ?>
3386
- <p class="smallnote orange">Below are PRO features for enhanced SEO and performance (works for even past embed links). Gallery options for PRO users will also be listed here.</p>
3387
- <p>
3388
- <img class="ssaltgallery" src="<?php echo plugins_url('images/ssaltgalleryall.jpg', __FILE__) ?>" />
3389
- <?php $cleanstyle = trim($all[self::$opt_gallery_style]); ?>
3390
- <select name="<?php echo self::$opt_gallery_style; ?>" id="<?php echo self::$opt_gallery_style; ?>" >
3391
- <option value="">Gallery Style</option>
3392
- <option value="grid" <?php echo 'grid' === $cleanstyle ? 'selected' : '' ?> >Grid (default)</option>
3393
- <option value="listview" <?php echo 'listview' === $cleanstyle ? 'selected' : '' ?> >Vertical List</option>
3394
- <option value="carousel" <?php echo 'carousel' === $cleanstyle ? 'selected' : '' ?> >Horizontal Slider</option>
3395
- </select>
3396
- <label for="<?php echo self::$opt_gallery_style; ?>">
3397
- <b>(PRO)</b> <b class="chktitle">Alternate Gallery Styling:</b></b>
3398
- Switch from the grid style of the FREE version to another gallery style. Right now, we provide a vertical (single column) and horizontal (single row) list style as alternatives to the grid, with more designs coming. These current alternatives were inspired by the standard YouTube playlist player's "table of contents," except our gallery's video lists are always visible and shown under the playing video.
3399
- <a target="_blank" href="<?php echo self::$epbase ?>/responsive-youtube-playlist-channel-gallery-for-wordpress.aspx">Read more here &raquo;</a>
3400
- </label>
3401
- </p>
3402
-
3403
- <div class="hr"></div>
3404
- <p>
3405
- <img class="ssaltgallery" src="<?php echo plugins_url('images/ssverticallayout.png', __FILE__) ?>" />
3406
- <input name="<?php echo self::$opt_gallery_showdsc; ?>" id="<?php echo self::$opt_gallery_showdsc; ?>" <?php checked($all[self::$opt_gallery_showdsc], 1); ?> type="checkbox" class="checkbox">
3407
- <label for="<?php echo self::$opt_gallery_showdsc; ?>">
3408
- <b>(PRO)</b> <b class="chktitle">Show Gallery Descriptions (for vertical list styling): </b>
3409
- For the vertical list layout, this option will show full video descriptions (taken directly from YouTube.com) with each thumbnail. Note: these descriptions only apply the vertical list layout; other layouts don't have enough room.
3410
- </label>
3411
- </p>
3412
- <div class="hr"></div>
3413
- <p>
3414
- <img class="ssaltgallery" src="<?php echo plugins_url('images/ssaltgallerycircles.jpg', __FILE__) ?>" />
3415
- <?php $cleancrop = trim($all[self::$opt_gallery_thumbcrop]); ?>
3416
- <label for="<?php echo self::$opt_gallery_thumbcrop; ?>">
3417
- <b>(PRO)</b> <b class="chktitle">Gallery Thumbnail Shape:</b></b>
3418
- Differentiate your gallery by showing different thumbnail shapes. We currently offer rectangle and circle shapes.
3419
- </label>
3420
- <br>
3421
- <select name="<?php echo self::$opt_gallery_thumbcrop; ?>" id="<?php echo self::$opt_gallery_thumbcrop; ?>" >
3422
- <option value="">Thumbnail Shape</option>
3423
- <option value="box" <?php echo 'box' === $cleancrop ? 'selected' : '' ?> >Rectangle (default)</option>
3424
- <option value="portal" <?php echo 'portal' === $cleancrop ? 'selected' : '' ?> >Circular</option>
3425
- </select>
3426
- </p>
3427
- <div class="hr"></div>
3428
- <p>
3429
- <img class="sspopupplayer" src="<?php echo plugins_url('images/sspopupplayer.jpg', __FILE__) ?>" />
3430
- <?php $cleandisp = trim($all[self::$opt_gallery_disptype]); ?>
3431
- <label for="<?php echo self::$opt_gallery_disptype; ?>">
3432
- <b>(PRO)</b> <b class="chktitle">Gallery Video Display Mode:</b> <sup class="orange">NEW</sup>
3433
- Display your gallery videos simply above the thumbnails (default), or as a popup lightbox.
3434
- </label>
3435
- <br>
3436
- <select name="<?php echo self::$opt_gallery_disptype; ?>" id="<?php echo self::$opt_gallery_disptype; ?>" >
3437
- <option value="">Display Type</option>
3438
- <option value="default" <?php echo 'default' === $cleandisp ? 'selected' : '' ?> >Above Thumbnails (default)</option>
3439
- <option value="lb" <?php echo 'lb' === $cleandisp ? 'selected' : '' ?> >Popup Lightbox</option>
3440
- </select>
3441
- </p>
3442
- <div class="hr"></div>
3443
-
3444
- <p>
3445
- <input name="<?php echo self::$opt_spdc; ?>" id="<?php echo self::$opt_spdc; ?>" <?php checked($all[self::$opt_spdc], 1); ?> type="checkbox" class="checkbox">
3446
- <label for="<?php echo self::$opt_spdc; ?>">
3447
- <b>(PRO)</b> <b class="chktitle">Faster Page Loads (Caching): </b>
3448
- Use embed caching to speed up your page loads. By default, WordPress needs to request information from YouTube.com's servers for every video you embed, every time a page is loaded. These data requests can add time to your total page load time. Turn on this feature to cache that data (instead of having to request for the same information every time you load a page). This should then make your pages that have videos load faster. It's been noted that even small speed ups in page load can help increase visitor engagement, retention, and conversions. Caching also makes galleries run faster.
3449
- </label>
3450
- <div class="indent-option">
3451
- <div id="boxspdc">
3452
- <div class="pad10">
3453
- <input type="button" class="button button-primary" value="Click to clear YouTube cache"/>
3454
- <span style="display: none;" id="clearspdcloading" class="orange bold">Clearing...</span>
3455
- <span class="orange bold" style="display: none;" id="clearspdcsuccess">Finished clearing YouTube cache.</span>
3456
- <span class="orange bold" style="display: none;" id="clearspdcfailed">Sorry, there seemed to be a problem clearing the cache.</span>
3457
- </div>
3458
- <label>
3459
- <b class="chktitle">Cache Liftime (hours): </b>
3460
- <input name="<?php echo self::$opt_spdcexp; ?>" id="<?php echo self::$opt_spdcexp; ?>" value="<?php echo trim($all[self::$opt_spdcexp]); ?>" type="number" min="1"/>
3461
- Tip: If your pages rarely change, you may wish to set this to a much higher value than 24 hours.
3462
- </label>
3463
- <br>
3464
- <br>
3465
- <label>
3466
- <input name="<?php echo self::$opt_spdcab; ?>" id="<?php echo self::$opt_spdcab; ?>" <?php checked($all[self::$opt_spdcab], 1); ?> type="checkbox" class="checkbox">
3467
- <b class="chktitle">Show "Clear YouTube Cache" Admin Bar Button: </b>
3468
- This will display the "Clear YouTube Cache" button conveniently in the top admin bar. Uncheck this if you wish to hide the button.
3469
- </label>
3470
-
3471
- </div>
3472
- </div>
3473
- </p>
3474
- <div class="hr"></div>
3475
-
3476
- <p>
3477
- <input name="<?php echo self::$opt_schemaorg; ?>" id="<?php echo self::$opt_schemaorg; ?>" <?php checked($all[self::$opt_schemaorg], 1); ?> type="checkbox" class="checkbox">
3478
- <label for="<?php echo self::$opt_schemaorg; ?>">
3479
- <b>(PRO)</b> <b class="chktitle">Video SEO Tags:</b> Update your YouTube embeds with Google, Bing, and Yahoo friendly schema markup for videos.
3480
- </label>
3481
- <span id="boxschemaorg">
3482
- <span class="apikey-msg">
3483
- The video SEO tags include data like the title, description, and thumbnail information of each video you embed. This plugin automatically extracts this data directly from YouTube using the version 3 API. This particular API version requires that you obtain an API key so that YouTube can authenticate the requests. <a href="https://www.youtube.com/watch?v=LpKDFT40V0U" target="_blank">Watch this video to see how to create your own key</a>. Then, paste it in the box below, and click the "Save Changes" button:
3484
- <br>
3485
- <span style="vertical-align: middle; display: inline-block;">
3486
- YouTube API Key: <input type="text" name="<?php echo self::$opt_apikey; ?>" id="<?php echo self::$opt_apikey; ?>" value="<?php echo trim($all[self::$opt_apikey]); ?>" class="textinput" style="width: 200px;">
3487
- </span>
3488
- </span>
3489
-
3490
- </span>
3491
- </p>
3492
- <div class="hr"></div>
3493
- <p>
3494
- <input name="<?php echo self::$opt_dynload; ?>" id="<?php echo self::$opt_dynload; ?>" <?php checked($all[self::$opt_dynload], 1); ?> type="checkbox" class="checkbox">
3495
- <label for="<?php echo self::$opt_dynload; ?>">
3496
- <b>(PRO)</b> <b class="chktitle">Special Lazy-Loading Effects:</b>
3497
- Add eye-catching special effects that will make your YouTube embeds bounce, flip, pulse, or slide as they lazy load on the screen. Check this box to select your desired effect. <a target="_blank" href="<?php echo self::$epbase ?>/add-special-effects-to-youtube-embeds-in-wordpress.aspx">Read more here &raquo;</a>
3498
- </label>
3499
- <br>
3500
- <span id="boxdyn">
3501
- Animation:
3502
- <?php $cleandyn = trim($all[self::$opt_dyntype]); ?>
3503
- <select name="<?php echo self::$opt_dyntype; ?>" id="<?php echo self::$opt_dyntype; ?>" >
3504
- <option value="">Select type</option>
3505
- <option value="rotateIn" <?php echo 'rotateIn' === $cleandyn ? 'selected' : '' ?> >rotate in</option>
3506
- <option value="slideInRight" <?php echo 'slideInRight' === $cleandyn ? 'selected' : '' ?> >slide from right</option>
3507
- <option value="slideInLeft" <?php echo 'slideInLeft' === $cleandyn ? 'selected' : '' ?> >slide from left</option>
3508
- <option value="bounceIn" <?php echo 'bounceIn' === $cleandyn ? 'selected' : '' ?> >bounce in</option>
3509
- <option value="flipInX" <?php echo 'flipInX' === $cleandyn ? 'selected' : '' ?> >flip up/down</option>
3510
- <option value="flipInY" <?php echo 'flipInY' === $cleandyn ? 'selected' : '' ?> >flip left/right</option>
3511
- <option value="pulse" <?php echo 'pulse' === $cleandyn ? 'selected' : '' ?> >pulse</option>
3512
- <option value="tada" <?php echo 'tada' === $cleandyn ? 'selected' : '' ?> >jiggle</option>
3513
- <option value="fadeIn" <?php echo 'fadeIn' === $cleandyn ? 'selected' : '' ?> >fade in</option>
3514
- <option value="fadeInDown" <?php echo 'fadeInDown' === $cleandyn ? 'selected' : '' ?> >fade in downward</option>
3515
- <option value="fadeInUp" <?php echo 'fadeInUp' === $cleandyn ? 'selected' : '' ?> >fade in upward</option>
3516
- <option value="zoomInDown" <?php echo 'zoomInDown' === $cleandyn ? 'selected' : '' ?> >zoom in downward</option>
3517
- <option value="zoomInUp" <?php echo 'zoomInUp' === $cleandyn ? 'selected' : '' ?> >zoom in upward</option>
3518
- </select>
3519
- </span>
3520
- </p>
3521
- <div class="hr"></div>
3522
- <p>
3523
- <input name="<?php echo self::$opt_ogvideo; ?>" id="<?php echo self::$opt_ogvideo; ?>" <?php checked($all[self::$opt_ogvideo], 1); ?> type="checkbox" class="checkbox">
3524
- <label for="<?php echo self::$opt_ogvideo; ?>">
3525
- <b>(PRO)</b> <b class="chktitle">Facebook Open Graph Markup:</b> Include Facebook Open Graph markup with the videos you embed with this plugin. We follow the guidelines for videos as described here: <a href="https://developers.facebook.com/docs/sharing/webmasters#media" target="_blank">https://developers.facebook.com/docs/sharing/webmasters#media</a>
3526
- </label>
3527
- </p>
3528
- <div class="hr"></div>
3529
- <p>
3530
- <img class="ssfb" src="<?php echo plugins_url('images/youtube_thumbnail_sample.jpg', __FILE__) ?>" />
3531
- <input name="<?php echo self::$opt_ftpostimg; ?>" id="<?php echo self::$opt_ftpostimg; ?>" <?php checked($all[self::$opt_ftpostimg], 1); ?> type="checkbox" class="checkbox">
3532
- <label for="<?php echo self::$opt_ftpostimg; ?>">
3533
- <b>(PRO)</b> <b class="chktitle">Featured Thumbnail Images: </b>
3534
- Automatically grab the thumbnail image of the first video embedded in each post or page, and use it as the featured image. If your theme can display featured images of posts on your blog home, you’ll see the thumbnails there as shown in the picture on the right. All you have to do is click Update on a post or page and the plugin does the rest!
3535
- (Example shown on the right) <a target="_blank" href="<?php echo self::$epbase ?>/add-youtube-video-thumbnails-featured-image-wordpress.aspx">Watch example here &raquo;</a>
3536
- </label>
3537
- </p>
3538
-
3539
- <?php
3540
- }
3541
- else
3542
- {
3543
- ?>
3544
- <p class="smallnote orange">Below are PRO features for enhanced SEO and performance (works for even past embed links). </p>
3545
- <p>
3546
- <img class="ssaltgallery" src="<?php echo plugins_url('images/ssaltgalleryall.jpg', __FILE__) ?>" />
3547
- <select disabled>
3548
- <option value="">Gallery Style</option>
3549
- </select>
3550
- <label>
3551
- <b class="chktitle">Alternate Gallery Styling: </b> <span class="pronon">(PRO Users)</span>
3552
- Switch from the grid style of the FREE version to another gallery style. Right now, we provide a vertical (single column) and horizontal (single row) list style as alternatives to the grid, with more designs coming. These current alternatives were inspired by the standard YouTube playlist player's "table of contents," except our gallery's video lists are always visible and shown under the playing video.
3553
- <a target="_blank" href="<?php echo self::$epbase ?>/responsive-youtube-playlist-channel-gallery-for-wordpress.aspx">Read more here &raquo;</a>
3554
- </label>
3555
- </p>
3556
-
3557
- <div class="hr"></div>
3558
- <p>
3559
- <img class="ssaltgallery" src="<?php echo plugins_url('images/ssverticallayout.png', __FILE__) ?>" />
3560
- <input disabled type="checkbox" class="checkbox">
3561
- <label>
3562
- <b class="chktitle">Show Gallery Descriptions (for vertical list styling): </b> <span class="pronon">(PRO Users)</span>
3563
- For the vertical list layout, this option will show full video descriptions (taken directly from YouTube.com) with each thumbnail. Note: these descriptions only apply the vertical list layout; other layouts don't have enough room.
3564
- </label>
3565
- </p>
3566
- <div class="hr"></div>
3567
- <p>
3568
- <img class="ssaltgallery" src="<?php echo plugins_url('images/ssaltgallerycircles.jpg', __FILE__) ?>" />
3569
- <select disabled>
3570
- <option value="">Select Thumbnail Shape</option>
3571
- </select>
3572
- <label>
3573
- <b class="chktitle">Gallery Thumbnail Shape: </b> <span class="pronon">(PRO Users)</span>
3574
- Differentiate your gallery by showing different thumbnail shapes. We currently offer rectangle and circle shapes.
3575
- <a target="_blank" href="<?php echo self::$epbase ?>/responsive-youtube-playlist-channel-gallery-for-wordpress.aspx">Read more here &raquo;</a>
3576
- </label>
3577
- </p>
3578
 
3579
- <div class="hr"></div>
3580
- <p>
3581
- <img class="sspopupplayer" src="<?php echo plugins_url('images/sspopupplayer.jpg', __FILE__) ?>" />
3582
- <label>
3583
- <b class="chktitle">Gallery Video Display Mode: </b> <sup class="orange">NEW</sup> <span class="pronon">(PRO Users)</span>
3584
- Display your gallery videos simply above the thumbnails (default), or as a popup lightbox.
3585
- </label>
3586
- <br>
3587
- <input type="radio" disabled> Default &nbsp; <input type="radio" disabled> Popup lightbox
3588
- </p>
 
 
 
 
 
 
 
 
 
 
 
3589
 
3590
- <div class="hr"></div>
3591
- <p>
3592
- <input disabled type="checkbox" class="checkbox">
3593
- <label>
3594
- <b class="chktitle">Faster Page Loads (Caching): </b> <span class="pronon">(PRO Users)</span>
3595
- Use embed caching to speed up your page loads. By default, WordPress needs to request information from YouTube.com's servers for every video you embed, every time a page is loaded. These data requests can add time to your total page load time. Turn on this feature to cache that data (instead of having to request for the same information every time you load a page). This should then make your pages that have videos load faster. It's been noted that even small speed ups in page load can help increase visitor engagement, retention, and conversions. Caching also makes galleries run faster.
3596
- </label>
3597
- <div class="indent-option">
3598
- <label>
3599
- <b class="chktitle">Cache Lifetime (hours): </b>
3600
- <input disabled value="24" type="number">
3601
- Tip: If your pages rarely change, you may wish to set this to a much higher value than 24 hours.
3602
- </label>
3603
- </div>
3604
- </p>
3605
- <div class="hr"></div>
3606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3607
 
3608
- <p>
3609
- <input disabled type="checkbox" class="checkbox">
3610
- <label>
3611
- <b class="chktitle">Video SEO Tags:</b> <span class="pronon">(PRO Users)</span> Update your YouTube embeds with Google, Bing, and Yahoo friendly schema markup for videos.
3612
- </label>
3613
- </p>
3614
- <div class="hr"></div>
3615
- <p>
3616
- <input disabled type="checkbox" class="checkbox">
3617
- <label>
3618
- <b class="chktitle">Special Lazy-Loading Effects:</b> <span class="pronon">(PRO Users)</span>
3619
- Add eye-catching special effects that will make your YouTube embeds bounce, flip, pulse, or slide as they lazy load on the screen. Check this box to select your desired effect. <a target="_blank" href="<?php echo self::$epbase ?>/add-special-effects-to-youtube-embeds-in-wordpress.aspx">Read more here &raquo;</a>
3620
- </label>
3621
- </p>
3622
- <div class="hr"></div>
3623
- <p>
3624
- <input disabled type="checkbox" class="checkbox">
3625
- <label>
3626
- <b class="chktitle">Facebook Open Graph Markup:</b> <span class="pronon">(PRO Users)</span> Include Facebook Open Graph markup with the videos you embed with this plugin. We follow the guidelines for videos as described here: <a href="https://developers.facebook.com/docs/sharing/webmasters#media" target="_blank">https://developers.facebook.com/docs/sharing/webmasters#media</a>
3627
- </label>
3628
- </p>
3629
- <div class="hr"></div>
3630
- <p>
3631
- <img class="ssfb" src="<?php echo plugins_url('images/youtube_thumbnail_sample.jpg', __FILE__) ?>" />
3632
- <input disabled type="checkbox" class="checkbox">
3633
- <label>
3634
- <b class="chktitle">Featured Thumbnail Images:</b> <span class="pronon">(PRO Users)</span>
3635
- Automatically grab the thumbnail image of the first video embedded in each post or page, and use it as the featured image.
3636
- All you have to do is click Update on a post or page and the plugin does the rest!
3637
- (Example shown on the right) <a target="_blank" href="<?php echo self::$epbase ?>/add-youtube-video-thumbnails-featured-image-wordpress.aspx">Read more here &raquo;</a>
3638
- </label>
3639
- </p>
3640
- <div class="hr"></div>
3641
- <p>
3642
- <a href="<?php echo self::$epbase ?>/dashboard/pro-easy-video-analytics.aspx" target="_blank">Activate the above and several other features &raquo;</a>
3643
- </p>
3644
- <?php
3645
- }
3646
- ?>
3647
  <div class="clearboth"></div>
3648
  </div>
3649
-
3650
 
3651
  <hr>
3652
 
3653
-
3654
  <div class="jumper" id="jumpoverride"></div>
3655
 
3656
  <h3 class="sect">
@@ -3671,7 +3554,6 @@ class YouTubePrefs
3671
  _e("<li><strong>showinfo</strong> - Set this to 0 to hide the video title and other info (or 1 to show it). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&showinfo=0</strong></em> </li>");
3672
  _e("<li><strong>theme</strong> - Set this to 'light' to make the player have the light-colored theme (or 'dark' for the dark theme). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&theme=light</strong></em> </li>");
3673
  _e("<li><strong>color</strong> - Set this to 'white' to make the player have a white progress bar (or 'red' for a red progress bar). Note: Using white will disable the modestbranding option. <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&color=white</strong></em> </li>");
3674
- _e("<li><strong>vq</strong> - Set this to 'hd720' or 'hd1080' to force the video to have HD quality. Leave blank to let YouTube decide. <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&vq=hd720</strong></em> </li>");
3675
  _e("<li><strong>controls</strong> - Set this to 0 to completely hide the video controls (or 2 to show it). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&controls=0</strong></em> </li>");
3676
  _e("<li><strong>autohide</strong> - Set this to 1 to slide away the control bar after the video starts playing. It will automatically slide back in again if you mouse over the video. (Set to 2 to always show it). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&autohide=1</strong></em> </li>");
3677
  _e("<li><strong>playsinline</strong> - Set this to 1 to allow videos play inline with the page on iOS browsers. (Set to 0 to have iOS launch videos in fullscreen instead). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&playsinline=1</strong></em> </li>");
@@ -3688,133 +3570,90 @@ class YouTubePrefs
3688
  </form>
3689
  <div class="jumper" id="jumppro"></div>
3690
  <div id="goprobox">
3691
- <?php
3692
- if ($all[self::$opt_pro] && strlen(trim($all[self::$opt_pro])) > 0)
3693
- {
3694
- echo "<h3>" . __('Thank you for going PRO.');
3695
- echo ' &nbsp;<input type="submit" name="showkey" class="button-primary" style="vertical-align: 15%;" id="showprokey" value="View my PRO key" />';
3696
- echo "</h3>";
3697
- ?>
3698
- <?php
3699
- }
3700
- else
3701
- {
3702
- ?>
3703
-
3704
- <h3 class="sect">
3705
- <a href="<?php echo self::$epbase ?>/dashboard/pro-easy-video-analytics.aspx" class="button-primary" target="_blank">Want to go PRO? (Low Prices) &raquo;</a> &nbsp;
3706
- PRO users help keep new features coming and our coffee cups filled. Go PRO and get these perks in return:
3707
- </h3>
3708
- <div class="procol">
3709
- <ul class="gopro">
3710
- <li>
3711
- <img src="<?php echo plugins_url('images/iconcache.png', __FILE__) ?>">
3712
- Faster Page Loads (Caching)
3713
- </li>
3714
- <li>
3715
- <img src="<?php echo plugins_url('images/iconwizard.png', __FILE__) ?>">
3716
- Full Visual Embedding Wizard (Easily customize embeds without memorizing codes)
3717
- </li>
3718
- <li>
3719
- <img src="<?php echo plugins_url('images/icongallery.png', __FILE__) ?>">
3720
- Alternate Gallery Styling (popup/lightbox player, slider and list layouts, and more)
3721
- </li>
3722
- <li>
3723
- <img src="<?php echo plugins_url('images/iconfx.png', __FILE__) ?>">
3724
- Add eye-catching special effects as your videos load
3725
- </li>
3726
- <li>
3727
- <img src="<?php echo plugins_url('images/deletechecker.png', __FILE__) ?>">
3728
- Deleted Video Checker (alerts you if YouTube deletes videos you embedded)
3729
- </li>
3730
- <li>
3731
- <img src="<?php echo plugins_url('images/globe.png', __FILE__) ?>">
3732
- Alerts when visitors from different countries are blocked from viewing your embeds
3733
- </li>
3734
- <li>
3735
- <img src="<?php echo plugins_url('images/mobilecompat.png', __FILE__) ?>">
3736
- Check if your embeds have restrictions that can block mobile viewing
3737
- </li>
3738
-
3739
- </ul>
3740
- </div>
3741
- <div class="procol" style="max-width: 465px;">
3742
- <ul class="gopro">
3743
- <li>
3744
- <img src="<?php echo plugins_url('images/videothumbs.png', __FILE__) ?>">
3745
- Featured thumbnail images (just click 'Update')
3746
- </li>
3747
- <li>
3748
- <img src="<?php echo plugins_url('images/prioritysupport.png', __FILE__) ?>">
3749
- Priority support (Puts your request in front)
3750
- </li>
3751
- <li>
3752
- <img src="<?php echo plugins_url('images/bulletgraph45.png', __FILE__) ?>">
3753
- User-friendly video analytics dashboard
3754
- </li>
3755
-
3756
- <li id="fbstuff">
3757
- <img src="<?php echo plugins_url('images/iconfb.png', __FILE__) ?>">
3758
- Automatic Open Graph tagging for Facebook
3759
- </li>
3760
- <!-- <li>
3761
- <img src="<?php echo plugins_url('images/iconythealth.png', __FILE__) ?>">
3762
- Instant YouTube embed diagnostic reports
3763
- </li> -->
3764
- <li>
3765
- <img src="<?php echo plugins_url('images/vseo.png', __FILE__) ?>">
3766
- Automatic tagging for video SEO (will even work for your old embeds)
3767
- </li>
3768
- <li>
3769
- <img src="<?php echo plugins_url('images/iconvolume.png', __FILE__) ?>">
3770
- Fine-Grained Volume Initialization – Individual video volume settings in the wizard
3771
- </li>
3772
-
3773
- <li>
3774
- <img src="<?php echo plugins_url('images/infinity.png', __FILE__) ?>">
3775
- Unlimited PRO upgrades and downloads
3776
- </li>
3777
- <!-- <li>
3778
- <img src="<?php echo plugins_url('images/questionsale.png', __FILE__) ?>">
3779
- What else? You tell us!
3780
- </li> -->
3781
- </ul>
3782
- </div>
3783
- <div style="clear: both;"></div>
3784
- <br>
3785
- <h3 class="bold">Enter and save your PRO key (emailed to you):</h3>
3786
- <?php } ?>
3787
- <form name="form2" method="post" action="" id="epform2" class="submitpro" <?php
3788
- if ($all[self::$opt_pro] && strlen(trim($all[self::$opt_pro])) > 0)
3789
- {
3790
- echo 'style="display: none;"';
3791
- }
3792
- ?>>
3793
-
3794
- <input name="<?php echo self::$opt_pro; ?>" id="opt_pro" value="<?php echo $all[self::$opt_pro]; ?>" type="text">
3795
- <input type="submit" name="Submit" class="button-primary" id="prokeysubmit" value="<?php _e('Save Key') ?>" />
3796
- <?php
3797
- if (!($all[self::$opt_pro] && strlen(trim($all[self::$opt_pro])) > 0))
3798
- {
3799
- ?>
3800
- &nbsp; &nbsp; &nbsp; <span style="font-size: 25px; color: #cccccc;">|</span> &nbsp; &nbsp; &nbsp; <a href="<?php echo self::$epbase ?>/dashboard/pro-easy-video-analytics.aspx" class="button-primary brightpro" target="_blank">Click here to go PRO &raquo;</a>
3801
- <?php
3802
- }
3803
- ?>
3804
- <br>
3805
- <span style="display: none;" id="prokeyloading" class="orange bold">Verifying...</span>
3806
- <span class="orange bold" style="display: none;" id="prokeysuccess">Success! Please refresh this page.</span>
3807
- <span class="orange bold" style="display: none;" id="prokeyfailed">Sorry, that seems to be an invalid key, or it has been used already. If you're behind a firewall, you may need to try activating on another network.</span>
3808
- <span class="orange bold" style="display: none;" id="prokeycancel">Your request is being processed. Response code: CR1.</span>
3809
-
3810
- </form>
3811
-
3812
- </div>
3813
- <div class="smallnote">
3814
- <!--&nbsp; *Upcoming: We've started developing a feature that will recommend YouTube embeds that you might want to include in a post while you're actually<br>
3815
- writing/editing. It will apply some experimental artificial intelligence techniques on your post content for these recommendations, all at the click of a button.
3816
- -->
3817
  </div>
 
3818
  <div class="jumper" id="jumpsupport"></div>
3819
  <div id="nonprosupport">
3820
  <h3 class="bold">Support tips for all users (Free and PRO)</h3>
@@ -3827,10 +3666,10 @@ class YouTubePrefs
3827
  <code>[embedyt]http://www.youtube.com/watch?v=ABCDEF&width=400&height=250[/embedyt] [embedyt]http://www.youtube.com/watch?v=GHIJK&width=400&height=250[/embedyt]</code>
3828
  <br> TIP: As shown above, decrease the size of each video so that they fit together on the same line (See the "How To Override Defaults" section for height and width instructions)
3829
  </li>
3830
- <li>If you upload a new video to a playlist or channel and that video is not yet showing up on a gallery you embedded, you should clear/reset any caching plugins you have. This will force your site to retrieve the freshest version of your playlist and/or channel video listing. If you don't reset you cache, then you'll have to wait until cache lifetime expires.</li>
3831
  <li>Finally, there's a slight chance your custom theme is the issue, if you have one. To know for sure, we suggest temporarily switching to one of the default WordPress themes (e.g., "Twenty Fourteen") just to see if your video does appear. If it suddenly works, then your custom theme is the issue. You can switch back when done testing.</li>
3832
  <li>If your videos always appear full size, try turning off "Responsive video sizing."</li>
3833
- <li>If none of the above work, you can contact us here if you still have issues: ext@embedplus.com. We'll try to respond within a week. PRO users should use the priority form below for faster replies.</li>
3834
  </ul>
3835
  <p>
3836
  Deactivating the No Cookies option has also been proven to solve player errors.
@@ -3840,32 +3679,14 @@ class YouTubePrefs
3840
  </p>
3841
  </div>
3842
  <br>
3843
- <h3 class="sect">
3844
- Priority Support <span class="pronon">(<a href="<?php echo self::$epbase ?>/dashboard/pro-easy-video-analytics.aspx" target="_blank">PRO Users &raquo;</a>)</span><a href="#top" class="totop">&#9650; top</a>
3845
- </h3>
3846
- <p>
3847
- <strong>PRO users:</strong> Below, We've enabled the ability to have priority support with our team. Use this to get one-on-one help with any issues you might have or to send us suggestions for future features. We typically respond within minutes during normal work hours. We're always happy to accept any testimonials you might have as well.
3848
- </p>
3849
-
3850
-
3851
- <iframe src="<?php echo self::$epbase ?>/dashboard/prosupport.aspx?simple=1&prokey=<?php echo $all[self::$opt_pro]; ?>&domain=<?php echo site_url(); ?>" width="500" height="<?php echo ($all[self::$opt_pro] && strlen(trim($all[self::$opt_pro])) > 0) ? "500" : "140"; ?>"></iframe>
3852
 
3853
- <?php
3854
- if (!($all[self::$opt_pro] && strlen(trim($all[self::$opt_pro])) > 0))
3855
- {
3856
- ?>
3857
- <br>
3858
- <br>
3859
- <iframe src="<?php echo self::$epbase ?>/dashboard/likecoupon.aspx" width="600" height="500"></iframe>
3860
- <?php }
3861
- ?>
3862
  <div class="ytnav">
3863
- <a href="#jumphowto">How To Embed</a>
 
3864
  <a href="#jumpwiz">Visual Wizard</a>
3865
  <a href="#jumpdefaults">Defaults</a>
3866
  <a href="#jumpcompat">Compatibility</a>
3867
  <a href="#jumpgallery">Galleries</a>
3868
- <a href="#jumpprosettings">PRO Settings</a>
3869
  <a href="#jumpoverride">Override Defaults</a>
3870
  <a target="_blank" href="<?php echo self::$epbase . "/dashboard/pro-easy-video-analytics.aspx?ref=protab" ?>" style="border-color: #888888;">Upgrade?</a>
3871
  <a href="#jumpsupport">Support</a>
@@ -3924,7 +3745,6 @@ class YouTubePrefs
3924
  jQuery(this).css("background-color", "#ffcccc").css("outline", "2px solid #000000");
3925
  }
3926
  });
3927
-
3928
  if (emptyStacks.length)
3929
  {
3930
  alertmessage += "Please enter a valid number for the gallery stacking screen width.";
@@ -3936,61 +3756,14 @@ class YouTubePrefs
3936
 
3937
  if (jQuery("#<?php echo self::$opt_defaultvol; ?>").is(":checked"))
3938
  {
3939
- if (!(jQuery.isNumeric(jQuery.trim(jQuery("#<?php echo self::$opt_vol; ?>").val()))))
3940
- {
3941
- alertmessage += "Please enter a number between 0 and 100 for the default volume, or uncheck the option.";
3942
- jQuery("#boxdefaultvol input").css("background-color", "#ffcccc").css("border", "2px solid #000000");
3943
- valid = false;
3944
- }
3945
- }
3946
-
3947
- if (jQuery("#<?php echo self::$opt_spdc; ?>").is(":checked"))
3948
- {
3949
- if (!(jQuery.isNumeric(jQuery.trim(jQuery("#<?php echo self::$opt_spdcexp; ?>").val()))))
3950
- {
3951
- alertmessage += "Please enter a valid number of hours (greater than 0) for the cache lifetime, or uncheck the option.";
3952
- jQuery("#boxspdc input[type=number], #boxspdc input[type=text]").css("background-color", "#ffcccc").css("border", "2px solid #000000");
3953
- valid = false;
3954
- }
3955
- }
3956
-
3957
-
3958
-
3959
- if (jQuery("#<?php echo self::$opt_schemaorg; ?>").is(":checked"))
3960
- {
3961
- if (!(jQuery.trim(jQuery("#<?php echo self::$opt_apikey; ?>").val()).length > 0))
3962
- {
3963
- alertmessage += "Please enter a valid YouTube API key, or uncheck the 'Video SEO Tags' option.";
3964
- jQuery("#boxschemaorg input").css("background-color", "#ffcccc").css("border", "2px solid #000000");
3965
- valid = false;
3966
- }
3967
- }
3968
-
3969
-
3970
-
3971
- if (jQuery("#<?php echo self::$opt_dynload; ?>").is(":checked"))
3972
- {
3973
- if (!(/^[A-Za-z-]+$/.test(jQuery.trim(jQuery("#<?php echo self::$opt_dyntype; ?>").val()))))
3974
  {
3975
- alertmessage += "Please select an animation, or uncheck the option.";
3976
- jQuery("#boxdyn select").css("background-color", "#ffcccc").css("border", "2px solid #000000");
3977
  valid = false;
3978
  }
3979
  }
3980
 
3981
-
3982
-
3983
-
3984
- // if (jQuery("#<?php echo self::$opt_dohl; ?>").is(":checked"))
3985
- // {
3986
- // if (!(/^[A-Za-z][A-Za-z]$/.test(jQuery.trim(jQuery("#<?php echo self::$opt_hl; ?>").val()))))
3987
- // {
3988
- // alertmessage += "Please enter a valid 2-letter language code.";
3989
- // jQuery("#boxdohl input").css("background-color", "#ffcccc").css("border", "2px solid #000000");
3990
- // valid = false;
3991
- // }
3992
- // }
3993
-
3994
  if (!valid)
3995
  {
3996
  alert(alertmessage);
@@ -3998,8 +3771,6 @@ class YouTubePrefs
3998
  return valid;
3999
  }
4000
 
4001
- var prokeyval;
4002
- var mydomain = escape("http://" + window.location.host.toString());
4003
 
4004
  jQuery(document).ready(function ($) {
4005
  jQuery('#<?php echo self::$opt_defaultdims; ?>').change(function ()
@@ -4014,7 +3785,6 @@ class YouTubePrefs
4014
  }
4015
 
4016
  });
4017
-
4018
  jQuery('#<?php echo self::$opt_gallery_customarrows; ?>').change(function ()
4019
  {
4020
  if (jQuery(this).is(":checked"))
@@ -4027,7 +3797,6 @@ class YouTubePrefs
4027
  }
4028
 
4029
  });
4030
-
4031
  jQuery('#<?php echo self::$opt_gallery_collapse_grid; ?>').change(function ()
4032
  {
4033
  if (jQuery(this).is(":checked"))
@@ -4039,7 +3808,6 @@ class YouTubePrefs
4039
  jQuery("#box_collapse_grid").hide(500);
4040
  }
4041
  });
4042
-
4043
  jQuery('#<?php echo self::$opt_gallery_channelsub; ?>').change(function ()
4044
  {
4045
  if (jQuery(this).is(":checked"))
@@ -4052,33 +3820,6 @@ class YouTubePrefs
4052
  }
4053
 
4054
  });
4055
-
4056
- jQuery('#<?php echo self::$opt_dynload; ?>').change(function ()
4057
- {
4058
- if (jQuery(this).is(":checked"))
4059
- {
4060
- jQuery("#boxdyn").show(500);
4061
- }
4062
- else
4063
- {
4064
- jQuery("#boxdyn").hide(500);
4065
- }
4066
-
4067
- });
4068
-
4069
- jQuery('#<?php echo self::$opt_spdc; ?>').change(function ()
4070
- {
4071
- if (jQuery(this).is(":checked"))
4072
- {
4073
- jQuery("#boxspdc").show(500);
4074
- }
4075
- else
4076
- {
4077
- jQuery("#boxspdc").hide(500);
4078
- }
4079
- });
4080
-
4081
-
4082
  jQuery('#<?php echo self::$opt_responsive; ?>').change(function ()
4083
  {
4084
  if (jQuery(this).is(":checked"))
@@ -4090,9 +3831,6 @@ class YouTubePrefs
4090
  jQuery("#boxresponsive_all").hide(500);
4091
  }
4092
  });
4093
-
4094
-
4095
-
4096
  jQuery('#<?php echo self::$opt_migrate; ?>').change(function ()
4097
  {
4098
  if (jQuery(this).is(":checked"))
@@ -4104,9 +3842,6 @@ class YouTubePrefs
4104
  jQuery("#boxmigratelist").hide(500);
4105
  }
4106
  });
4107
-
4108
-
4109
-
4110
  jQuery('#<?php echo self::$opt_nocookie; ?>').change(function ()
4111
  {
4112
  if (jQuery(this).is(":checked"))
@@ -4119,35 +3854,6 @@ class YouTubePrefs
4119
  }
4120
 
4121
  });
4122
-
4123
- jQuery('#<?php echo self::$opt_schemaorg; ?>').change(function ()
4124
- {
4125
- if (jQuery(this).is(":checked"))
4126
- {
4127
- jQuery("#boxschemaorg").show(500);
4128
- }
4129
- else
4130
- {
4131
- jQuery("#boxschemaorg").hide(500);
4132
- }
4133
- });
4134
-
4135
-
4136
- // jQuery('#<?php echo self::$opt_dohl; ?>').change(function()
4137
- // {
4138
- // if (jQuery(this).is(":checked"))
4139
- // {
4140
- // jQuery("#boxdohl").show(500);
4141
- // }
4142
- // else
4143
- // {
4144
- // jQuery("#boxdohl").hide(500);
4145
- // }
4146
- //
4147
- // });
4148
-
4149
-
4150
-
4151
  jQuery('#<?php echo self::$opt_defaultvol; ?>').change(function ()
4152
  {
4153
  if (jQuery(this).is(":checked"))
@@ -4160,7 +3866,6 @@ class YouTubePrefs
4160
  }
4161
 
4162
  });
4163
-
4164
  var rangedetect = document.createElement("input");
4165
  rangedetect.setAttribute("type", "range");
4166
  var canrange = rangedetect.type !== "text";
@@ -4179,123 +3884,7 @@ class YouTubePrefs
4179
  $("input#vol").width(40);
4180
  }
4181
 
4182
-
4183
- jQuery('#boxspdc input.button').click(function () {
4184
- jQuery('#clearspdcloading').show();
4185
- jQuery('#clearspdcfailed').hide();
4186
- jQuery('#clearspdcsuccess').hide();
4187
-
4188
- $clearbutton = jQuery(this);
4189
- $clearbutton.attr('disabled', 'disabled');
4190
-
4191
- jQuery.ajax({
4192
- type: "post",
4193
- dataType: "json",
4194
- timeout: 30000,
4195
- url: wpajaxurl,
4196
- data: {action: 'my_embedplus_clearspdc'},
4197
- success: function (response) {
4198
- if (response.type == "success") {
4199
- jQuery("#clearspdcsuccess").show();
4200
- }
4201
- else {
4202
- jQuery("#clearspdcfailed").show();
4203
- }
4204
- },
4205
- error: function (xhr, ajaxOptions, thrownError) {
4206
- jQuery("#clearspdcfailed").show();
4207
- },
4208
- complete: function () {
4209
- jQuery('#clearspdcloading').hide();
4210
- $clearbutton.removeAttr('disabled');
4211
- }
4212
-
4213
- });
4214
-
4215
- });
4216
-
4217
-
4218
-
4219
-
4220
- jQuery("#showcase-validate").click(function () {
4221
- window.open("<?php echo self::$epbase . "/showcase-validate.aspx?prokey=" . self::$alloptions[self::$opt_pro] ?>" + "&domain=" + mydomain);
4222
- });
4223
-
4224
- jQuery('#showprokey').click(function () {
4225
- jQuery('.submitpro').show(500);
4226
- return false;
4227
- });
4228
-
4229
- jQuery('#prokeysubmit').click(function () {
4230
- jQuery(this).attr('disabled', 'disabled');
4231
- jQuery('#prokeyfailed').hide();
4232
- jQuery('#prokeysuccess').hide();
4233
- jQuery('#prokeyloading').show();
4234
- prokeyval = jQuery('#opt_pro').val();
4235
-
4236
- var tempscript = document.createElement("script");
4237
- tempscript.src = "<?php echo self::$epbase ?>/dashboard/wordpress-pro-validatejp.aspx?simple=1&prokey=" + prokeyval + "&domain=" + mydomain;
4238
- var n = document.getElementsByTagName("head")[0].appendChild(tempscript);
4239
- setTimeout(function () {
4240
- n.parentNode.removeChild(n);
4241
- }, 500);
4242
- return false;
4243
- });
4244
-
4245
- window.embedplus_record_prokey = function (good) {
4246
-
4247
- jQuery.ajax({
4248
- type: "post",
4249
- dataType: "json",
4250
- timeout: 30000,
4251
- url: wpajaxurl,
4252
- data: {action: 'my_embedplus_pro_record', <?php echo self::$opt_pro; ?>: (good ? prokeyval : "")},
4253
- success: function (response) {
4254
- if (response.type == "success") {
4255
- jQuery("#prokeysuccess").show();
4256
- }
4257
- else {
4258
- jQuery("#prokeyfailed").show();
4259
- }
4260
- },
4261
- error: function (xhr, ajaxOptions, thrownError) {
4262
- jQuery('#prokeyfailed').show();
4263
- },
4264
- complete: function () {
4265
- jQuery('#prokeyloading').hide();
4266
- jQuery('#prokeysubmit').removeAttr('disabled');
4267
- }
4268
-
4269
- });
4270
-
4271
- };
4272
-
4273
-
4274
- window.embedplus_cancel_prokey = function () {
4275
-
4276
- jQuery.ajax({
4277
- type: "post",
4278
- dataType: "json",
4279
- timeout: 30000,
4280
- url: wpajaxurl,
4281
- data: {action: 'my_embedplus_pro_record', <?php echo self::$opt_pro; ?>: ""},
4282
- success: function (response) {
4283
- jQuery("#prokeycancel").show();
4284
- },
4285
- error: function (xhr, ajaxOptions, thrownError) {
4286
- jQuery('#prokeyfailed').show();
4287
- },
4288
- complete: function () {
4289
- jQuery('#prokeyloading').hide();
4290
- jQuery('#prokeysubmit').removeAttr('disabled');
4291
- }
4292
-
4293
- });
4294
-
4295
- };
4296
-
4297
- });
4298
- </script>
4299
  <?php
4300
  if (function_exists('add_thickbox'))
4301
  {
@@ -4318,9 +3907,7 @@ class YouTubePrefs
4318
  setTimeout(function () {
4319
  jQuery('input.ytprefs-submit').val('Save Changes');
4320
  }, 3000);
4321
- });
4322
-
4323
- </script>
4324
  <?php
4325
  }
4326
  ?>
@@ -4366,13 +3953,6 @@ class YouTubePrefs
4366
 
4367
  wp_add_inline_style('__EPYT__style', $custom_css);
4368
 
4369
-
4370
- if (!is_admin() && (isset(self::$alloptions[self::$opt_pro]) && strlen(trim(self::$alloptions[self::$opt_pro])) > 8))
4371
- {
4372
- wp_enqueue_style('__disptype__', plugins_url('scripts/lity' . self::$min . '.css', __FILE__));
4373
- wp_enqueue_script('__dispload__', plugins_url('scripts/lity' . self::$min . '.js', __FILE__), array('jquery'));
4374
- }
4375
-
4376
  wp_enqueue_script('__ytprefs__', plugins_url('scripts/ytprefs' . self::$min . '.js', __FILE__), array('jquery'));
4377
 
4378
  if (self::$alloptions[self::$opt_old_script_method] != 1)
@@ -4389,21 +3969,11 @@ class YouTubePrefs
4389
  'stopMobileBuffer' => self::$alloptions[self::$opt_stop_mobile_buffer] == '1' ? true : false
4390
  );
4391
 
4392
- if (isset(self::$alloptions[self::$opt_pro]) && strlen(trim(self::$alloptions[self::$opt_pro])) > 8 && isset(self::$alloptions[self::$opt_dashpre]) && self::$alloptions[self::$opt_dashpre] == '1')
4393
- {
4394
- $my_script_vars['dshpre'] = true;
4395
- }
4396
  wp_localize_script('__ytprefs__', '_EPYT_', $my_script_vars);
4397
  }
4398
 
4399
  ////////////////////// cloudflare accomodation
4400
  //add_filter('script_loader_tag', 'YouTubePrefs::set_cfasync', 10, 3);
4401
-
4402
- if (!is_admin() && (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0) && self::$alloptions[self::$opt_dynload] == 1)
4403
- {
4404
- wp_enqueue_style('__dyntype__', plugins_url('scripts/embdyn.min.css', __FILE__));
4405
- wp_enqueue_script('__dynload__', plugins_url('scripts/embdyn' . self::$min . '.js', __FILE__), array('jquery'));
4406
- }
4407
  }
4408
  }
4409
 
@@ -4449,6 +4019,32 @@ class YouTubePrefs
4449
  return $responsiveselector;
4450
  }
4451
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4452
  public static function get_blogwidth()
4453
  {
4454
  $blogwidth = null;
@@ -4476,241 +4072,9 @@ class YouTubePrefs
4476
 
4477
  }
4478
 
4479
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4480
- //class start
4481
- class Add_new_tinymce_btn_Youtubeprefs
4482
- {
4483
-
4484
- public $btn_arr;
4485
- public $js_file;
4486
-
4487
- /*
4488
- * call the constructor and set class variables
4489
- * From the constructor call the functions via wordpress action/filter
4490
- */
4491
-
4492
- function __construct($seperator, $btn_name, $javascrip_location)
4493
- {
4494
- $this->btn_arr = array("Seperator" => $seperator, "Name" => $btn_name);
4495
- $this->js_file = $javascrip_location;
4496
- add_action('init', array($this, 'add_tinymce_button'));
4497
- add_filter('tiny_mce_version', array($this, 'refresh_mce_version'));
4498
- }
4499
-
4500
- /*
4501
- * create the buttons only if the user has editing privs.
4502
- * If so we create the button and add it to the tinymce button array
4503
- */
4504
-
4505
- function add_tinymce_button()
4506
- {
4507
- if (!current_user_can('edit_posts') && !current_user_can('edit_pages'))
4508
- return;
4509
- if (get_user_option('rich_editing') == 'true')
4510
- {
4511
- //the function that adds the javascript
4512
- add_filter('mce_external_plugins', array($this, 'add_new_tinymce_plugin'));
4513
- //adds the button to the tinymce button array
4514
- add_filter('mce_buttons', array($this, 'register_new_button'));
4515
- }
4516
- }
4517
-
4518
- /*
4519
- * add the new button to the tinymce array
4520
- */
4521
-
4522
- function register_new_button($buttons)
4523
- {
4524
- array_push($buttons, $this->btn_arr["Seperator"], $this->btn_arr["Name"]);
4525
- return $buttons;
4526
- }
4527
-
4528
- /*
4529
- * Call the javascript file that loads the
4530
- * instructions for the new button
4531
- */
4532
-
4533
- function add_new_tinymce_plugin($plugin_array)
4534
- {
4535
- $plugin_array[$this->btn_arr['Name']] = $this->js_file;
4536
- return $plugin_array;
4537
- }
4538
-
4539
- /*
4540
- * This function tricks tinymce in thinking
4541
- * it needs to refresh the buttons
4542
- */
4543
-
4544
- function refresh_mce_version($ver)
4545
- {
4546
- $ver += 3;
4547
- return $ver;
4548
- }
4549
-
4550
- }
4551
-
4552
- //class end
4553
-
4554
-
4555
- register_activation_hook(__FILE__, array('YouTubePrefs', 'initoptions'));
4556
  $youtubeplgplus = new YouTubePrefs();
4557
 
4558
 
4559
- add_action("wp_ajax_my_embedplus_pro_record", array('YouTubePrefs', 'my_embedplus_pro_record'));
4560
- add_action("wp_ajax_my_embedplus_dashpre", array('YouTubePrefs', 'my_embedplus_dashpre'));
4561
- add_action("wp_ajax_my_embedplus_clearspdc", array('YouTubePrefs', 'my_embedplus_clearspdc'));
4562
- add_action("wp_ajax_my_embedplus_glance_vids", array('YouTubePrefs', 'my_embedplus_glance_vids'));
4563
- add_action("wp_ajax_my_embedplus_glance_count", array('YouTubePrefs', 'my_embedplus_glance_count'));
4564
- add_action("wp_ajax_my_embedplus_dismiss_double_plugin_warning", array('YouTubePrefs', 'my_embedplus_dismiss_double_plugin_warning'));
4565
- add_action("wp_ajax_my_embedplus_gallery_page", array('YouTubePrefs', 'my_embedplus_gallery_page'));
4566
- add_action("wp_ajax_nopriv_my_embedplus_gallery_page", array('YouTubePrefs', 'my_embedplus_gallery_page'));
4567
-
4568
- add_action('admin_enqueue_scripts', 'youtubeprefs_admin_enqueue_scripts');
4569
-
4570
- function youtubeprefs_admin_enqueue_scripts()
4571
- {
4572
- wp_enqueue_style('embedplusyoutube', plugins_url() . '/youtube-embed-plus/scripts/embedplus_mce.css');
4573
- add_action('wp_print_scripts', 'youtubeprefs_output_scriptvars');
4574
- wp_enqueue_script('__ytprefs_admin__', plugins_url('scripts/ytprefs-admin.min.js', __FILE__), array('jquery'));
4575
-
4576
- if (
4577
- //(!(isset(YouTubePrefs::$alloptions[YouTubePrefs::$opt_pro]) && strlen(trim(YouTubePrefs::$alloptions[YouTubePrefs::$opt_pro])) > 0)) && // display only if not pro ooopointer
4578
- (get_bloginfo('version') >= '3.3') && YouTubePrefs::custom_admin_pointers_check()
4579
- )
4580
- {
4581
- add_action('admin_print_footer_scripts', 'YouTubePrefs::custom_admin_pointers_footer');
4582
-
4583
- wp_enqueue_script('wp-pointer');
4584
- wp_enqueue_style('wp-pointer');
4585
- }
4586
-
4587
- if (YouTubePrefs::$alloptions['glance'] == 1)
4588
- {
4589
- add_action('admin_print_footer_scripts', 'YouTubePrefs::glance_script');
4590
- }
4591
- }
4592
-
4593
- function youtubeprefs_output_scriptvars()
4594
- {
4595
- YouTubePrefs::$scriptsprinted++;
4596
- if (YouTubePrefs::$scriptsprinted == 1)
4597
- {
4598
- $blogwidth = YouTubePrefs::get_blogwidth();
4599
- $epprokey = YouTubePrefs::$alloptions[YouTubePrefs::$opt_pro];
4600
- $myytdefaults = http_build_query(YouTubePrefs::$alloptions);
4601
- ?>
4602
- <script type="text/javascript">
4603
- var wpajaxurl = "<?php echo admin_url('admin-ajax.php') ?>";
4604
- if (window.location.toString().indexOf('https://') == 0)
4605
- {
4606
- wpajaxurl = wpajaxurl.replace("http://", "https://");
4607
- }
4608
-
4609
- var epblogwidth = <?php echo $blogwidth; ?>;
4610
- var epprokey = '<?php echo $epprokey; ?>';
4611
- var epbasesite = '<?php echo YouTubePrefs::$epbase; ?>';
4612
- var epversion = '<?php echo YouTubePrefs::$version; ?>';
4613
- var myytdefaults = '<?php echo $myytdefaults; ?>';
4614
- var eppluginadminurl = '<?php echo admin_url('admin.php?page=youtube-my-preferences'); ?>';
4615
-
4616
- // Create IE + others compatible event handler
4617
- var epeventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
4618
- var epeventer = window[epeventMethod];
4619
- var epmessageEvent = epeventMethod == "attachEvent" ? "onmessage" : "message";
4620
-
4621
- // Listen to message from child window
4622
- epeventer(epmessageEvent, function (e)
4623
- {
4624
- var embedcode = "";
4625
- try
4626
- {
4627
- if (e.data.indexOf("youtubeembedplus") === 0)
4628
- {
4629
- embedcode = e.data.split("|")[1];
4630
-
4631
- if (embedcode.indexOf("[") !== 0)
4632
- {
4633
- embedcode = "<p>" + embedcode + "</p>";
4634
- }
4635
-
4636
- if (window.tinyMCE !== null && window.tinyMCE.activeEditor !== null && !window.tinyMCE.activeEditor.isHidden())
4637
- {
4638
- if (typeof window.tinyMCE.execInstanceCommand !== 'undefined')
4639
- {
4640
- window.tinyMCE.execInstanceCommand(
4641
- window.tinyMCE.activeEditor.id,
4642
- 'mceInsertContent',
4643
- false,
4644
- embedcode);
4645
- }
4646
- else
4647
- {
4648
- send_to_editor(embedcode);
4649
- }
4650
- }
4651
- else
4652
- {
4653
- embedcode = embedcode.replace('<p>', '\n').replace('</p>', '\n');
4654
- if (typeof QTags.insertContent === 'function')
4655
- {
4656
- QTags.insertContent(embedcode);
4657
- }
4658
- else
4659
- {
4660
- send_to_editor(embedcode);
4661
- }
4662
- }
4663
- tb_remove();
4664
-
4665
-
4666
- }
4667
- else if (e.data.indexOf("youtubeextprop") === 0)
4668
- {
4669
- var extprop = e.data.split("|")[1];
4670
- var extpropval = extprop === 'xdash1' ? 1 : 0;
4671
- if (extpropval != <?php echo intval(YouTubePrefs::$alloptions[YouTubePrefs::$opt_dashpre]); ?>)
4672
- {
4673
- jQuery.ajax({
4674
- type: "post",
4675
- dataType: "json",
4676
- timeout: 30000,
4677
- url: wpajaxurl,
4678
- data: {action: 'my_embedplus_dashpre', <?php echo YouTubePrefs::$opt_dashpre; ?>: extpropval},
4679
- success: function (response) {
4680
- },
4681
- error: function (xhr, ajaxOptions, thrownError) {
4682
- },
4683
- complete: function () {
4684
- }
4685
- });
4686
-
4687
- }
4688
 
4689
 
4690
- }
4691
-
4692
- }
4693
- catch (err)
4694
- {
4695
-
4696
- }
4697
-
4698
-
4699
- }, false);
4700
-
4701
-
4702
-
4703
- </script>
4704
- <?php
4705
- }
4706
- }
4707
-
4708
- // function embedplus_strip_shortcode_from_excerpt($content)
4709
- // {
4710
- // $content = strip_shortcodes($content);
4711
- // return 'STRIPPED' . $content;
4712
- // }
4713
- //
4714
- // add_filter('the_excerpt', 'embedplus_strip_shortcode_from_excerpt', 5);
4715
- // add_filter('get_the_excerpt', 'embedplus_strip_shortcode_from_excerpt', 5);
4716
 
3
  Plugin Name: YouTube
4
  Plugin URI: http://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx
5
  Description: YouTube embed plugin. Embed a responsive YouTube video, playlist gallery, or channel gallery. Add video thumbnails, analytics, SEO, caching...
6
+ Version: 11.7
7
  Author: EmbedPlus Team
8
  Author URI: http://www.embedplus.com
9
  */
33
  {
34
 
35
  public static $curltimeout = 20;
36
+ public static $version = '11.7';
37
  public static $opt_version = 'version';
38
  public static $optembedwidth = null;
39
  public static $optembedheight = null;
57
  public static $opt_theme = 'theme';
58
  public static $opt_color = 'color';
59
  public static $opt_listType = 'listType';
 
 
 
60
  public static $opt_dohl = 'dohl';
61
  public static $opt_hl = 'hl';
 
 
62
  public static $opt_nocookie = 'nocookie';
63
  public static $opt_playlistorder = 'playlistorder';
64
  public static $opt_acctitle = 'acctitle';
76
  public static $opt_defaultvol = 'defaultvol';
77
  public static $opt_vol = 'vol';
78
  public static $opt_apikey = 'apikey';
 
 
 
 
 
 
79
  public static $opt_migrate = 'migrate';
80
  public static $opt_migrate_youtube = 'migrate_youtube';
81
  public static $opt_migrate_embedplusvideo = 'migrate_embedplusvideo';
 
 
 
 
82
  public static $opt_gallery_pagesize = 'gallery_pagesize';
83
  public static $opt_gallery_apikey = 'gallery_apikey';
84
  public static $opt_gallery_columns = 'gallery_columns';
85
  public static $opt_gallery_collapse_grid = 'gallery_collapse_grid';
86
  public static $opt_gallery_collapse_grid_breaks = 'gallery_collapse_grid_breaks';
 
87
  public static $opt_gallery_scrolloffset = 'gallery_scrolloffset';
88
  public static $opt_gallery_showtitle = 'gallery_showtitle';
89
  public static $opt_gallery_showpaging = 'gallery_showpaging';
95
  public static $opt_gallery_customarrows = 'gallery_customarrows';
96
  public static $opt_gallery_customprev = 'gallery_customprev';
97
  public static $opt_gallery_customnext = 'gallery_customnext';
 
 
 
98
  public static $opt_not_live_content = 'not_live_content';
99
  public static $opt_admin_off_scripts = 'admin_off_scripts';
100
  public static $opt_alloptions = 'youtubeprefs_alloptions';
108
  public static $min = '.min';
109
  public static $badentities = array('&#215;', '×', '&#8211;', '–', '&amp;', '&#038;', '&#38;');
110
  public static $goodliterals = array('x', 'x', '--', '--', '&', '&', '&');
111
+ public static $wizard_hook = '';
112
+ public static $get_api_key_msg = 'The ### feature now requires a (free) YouTube API key from Google. Please follow the easy steps <a href="https://www.youtube.com/watch?v=LpKDFT40V0U" target="_blank">in this video</a> to create and save your API key.';
113
  ///////////////////////////////////////////////////////////////////////////////////////////////////
114
  ///////////////////////////////////////////////////////////////////////////////////////////////////
115
  ///////////////////////////////////////////////////////////////////////////////////////////////////
116
+
 
 
117
  public static $oldytregex = '@^\s*https?://(?:www\.)?(?:(?:youtube.com/(?:(?:watch)|(?:embed)|(?:playlist))/{0,1}\?)|(?:youtu.be/))([^\s"]+)\s*$@im';
118
  public static $ytregex = '@^[\r\t ]*https?://(?:www\.)?(?:(?:youtube.com/(?:(?:watch)|(?:embed)|(?:playlist))/{0,1}\?)|(?:youtu.be/))([^\s"]+)[\r\t ]*$@im';
119
  public static $justurlregex = '@https?://(?:www\.)?(?:(?:youtube.com/(?:(?:watch)|(?:embed)|(?:playlist))/{0,1}\?)|(?:youtu.be/))([^\[\s"]+)@i';
120
 
 
 
 
121
  ///////////////////////////////////////////////////////////////////////////////////////////////////
122
  ///////////////////////////////////////////////////////////////////////////////////////////////////
123
  ///////////////////////////////////////////////////////////////////////////////////////////////////
124
 
125
  public function __construct()
126
  {
 
127
  add_action('admin_init', array("YouTubePrefs", 'check_double_plugin_warning'));
 
128
  self::$alloptions = get_option(self::$opt_alloptions);
129
+
130
+ add_action('admin_notices', array(get_class(), 'separate_version_message'));
131
+
132
  if (self::$alloptions == false || version_compare(self::$alloptions[self::$opt_version], self::$version, '<'))
133
  {
134
  self::initoptions();
153
  self::$opt_playsinline,
154
  self::$opt_autohide,
155
  self::$opt_controls,
 
156
  self::$opt_hl,
157
  self::$opt_theme,
158
  self::$opt_color,
159
  self::$opt_listType,
 
 
160
  'index',
161
  'list',
162
  'start',
170
  add_action('admin_menu', 'YouTubePrefs::ytprefs_plugin_menu');
171
  add_filter('plugin_action_links_' . plugin_basename(__FILE__), array('YouTubePrefs', 'my_plugin_action_links'));
172
 
173
+ if (!is_admin())
174
+ {
175
+ if (self::$alloptions[self::$opt_old_script_method] == 1)
176
+ {
177
+ add_action('wp_print_scripts', array('YouTubePrefs', 'jsvars'));
178
+ add_action('wp_enqueue_scripts', array('YouTubePrefs', 'jsvars'));
179
+ }
180
+
181
+ add_action('wp_enqueue_scripts', array('YouTubePrefs', 'ytprefsscript'), 100);
182
+ add_action('wp_enqueue_scripts', array('YouTubePrefs', 'fitvids'), 101);
183
+ }
184
+
185
+ if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG)
186
+ {
187
+ self::$min = '';
188
+ }
189
+
190
+ add_action("wp_ajax_my_embedplus_glance_vids", array('YouTubePrefs', 'my_embedplus_glance_vids'));
191
+ add_action("wp_ajax_my_embedplus_glance_count", array('YouTubePrefs', 'my_embedplus_glance_count'));
192
+ add_action("wp_ajax_my_embedplus_dismiss_double_plugin_warning", array('YouTubePrefs', 'my_embedplus_dismiss_double_plugin_warning'));
193
+ add_action("wp_ajax_my_embedplus_gallery_page", array('YouTubePrefs', 'my_embedplus_gallery_page'));
194
+ add_action("wp_ajax_nopriv_my_embedplus_gallery_page", array('YouTubePrefs', 'my_embedplus_gallery_page'));
195
+ add_action('admin_enqueue_scripts', array('YouTubePrefs', 'admin_enqueue_scripts'), 10, 1);
196
+ }
197
+
198
+ public static function separate_version_message()
199
+ {
200
+ if (self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 10)
201
+ {
202
+ $class = 'notice notice-error is-dismissible';
203
+ $message = 'Important message to YouTube Pro users: From version 11.7 onward, you must <a href="https://www.embedplus.com/youtube-pro/download/?prokey=' . esc_attr(self::$alloptions[self::$opt_pro]) . '" target="_blank">download the separate plugin here</a> to regain your Pro features. All your settings will automatically migrate after installing the separate Pro download. Thank you for your support and patience during this transition.';
204
+
205
+ printf('<div class="%1$s"><p>%2$s</p></div>', esc_attr($class), wp_kses_post($message));
206
+ }
207
+ }
208
+
209
+ public static function my_plugin_action_links($links)
210
+ {
211
+ $links[] = '<a href="' . esc_url(admin_url('admin.php?page=youtube-my-preferences')) . '">Settings</a>';
212
+ $links[] = '<a href="https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx" target="_blank">Pro Version</a>';
213
+ return $links;
214
+ }
215
+
216
+ public static function show_glance_list()
217
+ {
218
+ $glancehref = self::show_glance();
219
+ $cnt = self::get_glance_count();
220
+
221
+ //display via list
222
+ return
223
+ '<li class="page-count">
224
+ <a href="' . $glancehref . '" class="thickbox ytprefs_glance_button" id="ytprefs_glance_button" title="YouTube Embeds At a Glance">
225
+ ' . number_format_i18n($cnt) . ' With YouTube
226
+ </a>
227
+ </li>';
228
+ }
229
+
230
+ public static function show_glance_table()
231
+ {
232
+ $glancehref = self::show_glance();
233
+ $cnt = self::get_glance_count();
234
+ return
235
+ '<tr>
236
+ <td class="first b"><a title="YouTube Embeds At a Glance" href="' . $glancehref . '" class="thickbox ytprefs_glance_button">' . number_format_i18n($cnt) . '</a></td>
237
+ <td class="t"><a title="YouTube Embeds At a Glance" href="' . $glancehref . '" id="ytprefs_glance_button" class="thickbox ytprefs_glance_button">With YouTube</a></td>
238
+ </tr>';
239
+ }
240
+
241
+ public static function get_glance_count()
242
+ {
243
+ global $wpdb;
244
+ $query_sql = "
245
+ SELECT count(*) as mytotal
246
+ FROM $wpdb->posts
247
+ WHERE (post_content LIKE '%youtube.com/%' OR post_content LIKE '%youtu.be/%')
248
+ AND post_status = 'publish'";
249
+
250
+ $query_result = $wpdb->get_results($query_sql, OBJECT);
251
+
252
+ return intval($query_result[0]->mytotal);
253
+ }
254
+
255
+ public static function show_glance()
256
+ {
257
+ $glancehref = admin_url('admin.php?page=youtube-ep-glance') . '&random=' . rand(1, 1000) . '&TB_iframe=true&width=780&height=800';
258
+ return $glancehref;
259
+ }
260
+
261
+ public static function try_get_ytid($url)
262
+ {
263
+ $theytid = null;
264
+ if (strpos($url, 'v=') !== false)
265
+ {
266
+ $url_params = explode('?', $url);
267
+ $kvp = self::keyvalue($url_params[1], true);
268
+ $theytid = $kvp['v'];
269
+ }
270
+ else if (strpos($url, "youtu.be") !== false)
271
+ {
272
+ $shortpath = explode('/', parse_url($url, PHP_URL_PATH));
273
+ $theytid = $shortpath[1];
274
+ }
275
+ return $theytid;
276
+ }
277
+
278
+ public static function wizard()
279
+ {
280
+ ?>
281
+ <div class="wrap" id="epyt_wiz_wrap">
282
+ <div class="smallnote center"> Please periodically check the YouTube plugin tab on your admin panel to review the latest options. </div>
283
+
284
+ <?php
285
+ $form_valid = true;
286
+ $acc_expand = '';
287
+ $get_pro_link = self::$epbase . '/dashboard/pro-easy-video-analytics.aspx';
288
+
289
+
290
+
291
+ $step1_video_errors = '';
292
+ $step1_video_error_invalid = 'Sorry, that does not seem to be a link to an existing video. Please confirm that the link works in your browser, and then copy that full link in your address bar to paste here.';
293
+ $step1_playlist_errors = '';
294
+ $step1_playlist_error_invalid = 'Sorry, that does not seem to be a link to an existing playlist. Please confirm that the link works in your browser, and then copy that full link in your address bar to paste here.';
295
+ $step1_channel_errors = '';
296
+ $step1_channel_error_invalid = 'Sorry, that does not seem to be a link to an existing video. Please confirm that the link works in your browser, and then copy that full link in your address bar to paste here.';
297
+ $step1_live_errors = '';
298
+ $step1_live_error_invalid = 'Sorry, that does not seem to be a valid link to an existing video or channel. Please confirm that the link works in your browser, and then copy that full link in your address bar to paste here.';
299
+ $if_live_preview = false;
300
+ if (isset($_POST['wizform_submit']))
301
+ {
302
+ $submit_type = $_POST['wizform_submit'];
303
+ if ($submit_type === 'step1_video')
304
+ {
305
+ // validate
306
+ $search = sanitize_text_field(trim($_POST['txtUrl']));
307
+
308
+ try
309
+ {
310
+ if (empty($search))
311
+ {
312
+ throw new Exception();
313
+ }
314
+ if (preg_match(self::$justurlregex, $search))
315
+ {
316
+ //$search = esc_url($search);
317
+
318
+ try
319
+ {
320
+ $theytid = self::try_get_ytid($search);
321
+
322
+ if ($theytid == null)
323
+ {
324
+ $form_valid = false;
325
+ $step1_video_errors = $step1_video_error_invalid;
326
+ $acc_expand = 'h3_video';
327
+ }
328
+ else
329
+ {
330
+
331
+ $odata = self::get_oembed('http://youtube.com/watch?v=' . $theytid, 1920, 1280);
332
+ if (is_object($odata))
333
+ {
334
+ ?>
335
+
336
+ <div id="step2_video" class="center">
337
+
338
+ <h2>
339
+ <?php
340
+ if (isset($odata->title))
341
+ {
342
+ echo sanitize_text_field($odata->title);
343
+ }
344
+ ?>
345
+ </h2>
346
+ <p class="center">
347
+ <a class="ui-button ui-widget ui-corner-all" href="<?php echo $get_pro_link; ?>" target="_blank"><span class="ui-icon ui-icon-gear"></span> Customize (PRO)</a>
348
+ &nbsp; <a class="ui-button ui-widget ui-corner-all inserttopost" rel="[embedyt] https://www.youtube.com/watch?v=<?php echo esc_attr($theytid) ?>[/embedyt]"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span> Insert Into Editor</a>
349
+ </p>
350
+ &nbsp; Or Copy Code:
351
+ <span class="copycode">[embedyt] https://www.youtube.com/watch?v=<?php echo esc_attr($theytid) ?>[/embedyt]</span>
352
+ <div class="clearboth" style="height: 10px;">
353
+ </div>
354
+ <div class="center relative">
355
+ <iframe src="https://www.youtube.com/embed/<?php echo esc_attr($theytid) ?>?rel=0" allowfullscreen="" width="854" height="480" frameborder="0"></iframe>
356
+ </div>
357
+
358
+ </div>
359
+ <?php
360
+ }
361
+ else
362
+ {
363
+ $form_valid = false;
364
+ $step1_video_errors = $step1_video_error_invalid;
365
+ $acc_expand = 'h3_video';
366
+ }
367
+ }
368
+ }
369
+ catch (Exception $ex)
370
+ {
371
+ $form_valid = false;
372
+ $step1_video_errors = $step1_video_error_invalid;
373
+ $acc_expand = 'h3_video';
374
+ }
375
+ }
376
+ else
377
+ {
378
+ $search_options = new stdClass();
379
+ $search_options->q = $search;
380
+ $search_options->pageToken = null;
381
+ ?>
382
+ <div id="step2_video_search" class="center">
383
+ <h2>You searched for: <em class="orange"><?php echo sanitize_text_field($search); ?></em> </h2>
384
+
385
+ <?php
386
+ $search_page = self::get_search_page($search_options);
387
+ echo $search_page->html;
388
+ ?>
389
+ </div>
390
+ <?php
391
+ }
392
+
393
+ // // if valid, set and display next step
394
+ // if not,form_valid = false and set accordion expander and error messages
395
+ }
396
+ catch (Exception $ex)
397
+ {
398
+ $form_valid = false;
399
+ $step1_video_errors = $step1_video_error_invalid;
400
+ $acc_expand = 'h3_video';
401
+ }
402
+ }
403
+ else if ($submit_type === 'step1_playlist')
404
+ {
405
+ $search = sanitize_text_field(trim($_POST['txtUrlPlaylist']));
406
+ try
407
+ {
408
+ if (empty($search))
409
+ {
410
+ throw new Exception();
411
+ }
412
+ if (preg_match(self::$justurlregex, $search))
413
+ {
414
+ try
415
+ {
416
+ $theytid = null;
417
+ try
418
+ {
419
+ $theytid = self::try_get_ytid($search);
420
+ }
421
+ catch (Exception $ex)
422
+ {
423
+
424
+ }
425
+
426
+ $urlparams = explode('?', $search);
427
+ $qvars = array();
428
+ parse_str($urlparams[1], $qvars);
429
+ $theplaylistid = $qvars["list"];
430
+
431
+ $odata = self::get_oembed('https://youtube.com/playlist?list=' . $theplaylistid, 1920, 1280);
432
+
433
+ if (is_object($odata))
434
+ {
435
+ $rel = 'https://www.youtube.com/embed?listType=playlist&list=' . (esc_attr($theplaylistid) . (empty($theytid) ? '' : '&v=' . esc_attr($theytid)));
436
+ ?>
437
+
438
+ <div id="step2_playlist" class="center">
439
+
440
+ <h2>
441
+ <?php
442
+ if (isset($odata->title))
443
+ {
444
+ echo 'Playlist: ' . sanitize_text_field($odata->title);
445
+ }
446
+ ?>
447
+ </h2>
448
+ <p class="center">
449
+ <a class="ui-button ui-widget ui-corner-all inserttopost" rel="[embedyt] <?php echo $rel; ?>[/embedyt]"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span> Insert as Playlist</a>
450
+ &nbsp; <a class="ui-button ui-widget ui-corner-all inserttopost" rel="[embedyt] <?php echo $rel . '&layout=gallery'; ?>[/embedyt]"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span> Insert as Gallery</a>
451
+ &nbsp; <a class="ui-button ui-widget ui-corner-all" href="<?php echo $get_pro_link; ?>" target="_blank"><span class="ui-icon ui-icon-gear"></span> Customize (PRO)</a>
452
+ </p>
453
+ <p>
454
+ Or Copy Code:
455
+ </p>
456
+ <p>
457
+ Playlist Layout: <span class="copycode">[embedyt] <?php echo $rel; ?>[/embedyt]</span>
458
+ </p>
459
+ <p>
460
+ Gallery Layout: <span class="copycode">[embedyt] <?php echo $rel . '&layout=gallery'; ?>[/embedyt]</span>
461
+ </p>
462
+ <div class="clearboth" style="height: 10px;">
463
+ </div>
464
+ <div class="center relative">
465
+ <iframe src="<?php echo $rel; ?>" allowfullscreen="" width="854" height="480" frameborder="0"></iframe>
466
+ </div>
467
+ </div>
468
+ <?php
469
+ }
470
+ else
471
+ {
472
+ $form_valid = false;
473
+ $step1_playlist_errors = $step1_playlist_error_invalid;
474
+ $acc_expand = 'h3_playlist';
475
+ }
476
+ }
477
+ catch (Exception $ex)
478
+ {
479
+ $form_valid = false;
480
+ $step1_playlist_errors = $step1_playlist_error_invalid;
481
+ $acc_expand = 'h3_playlist';
482
+ }
483
+ }
484
+ }
485
+ catch (Exception $ex)
486
+ {
487
+ $form_valid = false;
488
+ $step1_playlist_errors = $step1_playlist_error_invalid;
489
+ $acc_expand = 'h3_playlist';
490
+ }
491
+ }
492
+ else if ($submit_type === 'step1_channel')
493
+ {
494
+ $search = sanitize_text_field(trim($_POST['txtUrlChannel']));
495
+ try
496
+ {
497
+ if (empty($search))
498
+ {
499
+ throw new Exception();
500
+ }
501
+ if (preg_match(self::$justurlregex, $search))
502
+ {
503
+ try
504
+ {
505
+ $theytid = null;
506
+ try
507
+ {
508
+ $theytid = self::try_get_ytid($search);
509
+ }
510
+ catch (Exception $ex)
511
+ {
512
+
513
+ }
514
+ $chanvid = self::get_video_snippet($theytid);
515
+ if ($chanvid)
516
+ {
517
+ $thechannel = self::get_channel_snippet($chanvid->snippet->channelId);
518
+
519
+ if ($thechannel)
520
+ {
521
+ $theplaylistid = $thechannel->contentDetails->relatedPlaylists->uploads;
522
+ $rel = 'https://www.youtube.com/embed?listType=playlist&list=' . (esc_attr($theplaylistid));
523
+ ?>
524
+
525
+ <div id="step2_channel" class="center">
526
+
527
+ <h2>
528
+ <?php
529
+ echo 'Channel: ' . sanitize_text_field($chanvid->snippet->channelTitle);
530
+ ?>
531
+ </h2>
532
+ <p class="center">
533
+ <a class="ui-button ui-widget ui-corner-all inserttopost" rel="[embedyt] <?php echo $rel; ?>[/embedyt]"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span> Insert as Playlist</a>
534
+ &nbsp; <a class="ui-button ui-widget ui-corner-all inserttopost" rel="[embedyt] <?php echo $rel . '&layout=gallery'; ?>[/embedyt]"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span> Insert as Gallery</a>
535
+ &nbsp; <a class="ui-button ui-widget ui-corner-all" href="<?php echo $get_pro_link; ?>" target="_blank"><span class="ui-icon ui-icon-gear"></span> Customize (PRO)</a>
536
+ </p>
537
+ <p>
538
+ Or Copy Code:
539
+ </p>
540
+ <p>
541
+ Playlist Layout: <span class="copycode">[embedyt] <?php echo $rel; ?>[/embedyt]</span>
542
+ </p>
543
+ <p>
544
+ Gallery Layout: <span class="copycode">[embedyt] <?php echo $rel . '&layout=gallery'; ?>[/embedyt]</span>
545
+ </p>
546
+ <div class="clearboth" style="height: 10px;">
547
+ </div>
548
+ <div class="center relative">
549
+ <iframe src="<?php echo $rel; ?>" allowfullscreen="" width="854" height="480" frameborder="0"></iframe>
550
+ </div>
551
+ </div>
552
+ <?php
553
+ }
554
+ else
555
+ {
556
+ $form_valid = false;
557
+ $step1_channel_errors = $step1_channel_error_invalid;
558
+ $acc_expand = 'h3_channel';
559
+ }
560
+ }
561
+ else
562
+ {
563
+ $form_valid = false;
564
+ $step1_channel_errors = $step1_channel_error_invalid;
565
+ $acc_expand = 'h3_channel';
566
+ }
567
+ }
568
+ catch (Exception $ex)
569
+ {
570
+ $form_valid = false;
571
+ $step1_channel_errors = $step1_channel_error_invalid;
572
+ $acc_expand = 'h3_channel';
573
+ }
574
+ }
575
+ }
576
+ catch (Exception $ex)
577
+ {
578
+ $form_valid = false;
579
+ $step1_channel_errors = $step1_channel_error_invalid;
580
+ $acc_expand = 'h3_channel';
581
+ }
582
+ }
583
+ else if ($submit_type === 'step1_live')
584
+ {
585
+ $search = sanitize_text_field(trim($_POST['txtUrlLive']));
586
+ try
587
+ {
588
+ if (empty($search))
589
+ {
590
+ throw new Exception();
591
+ }
592
+
593
+ try
594
+ {
595
+ $thechannel = false;
596
+ $chanmatch = array();
597
+ preg_match('@/channel/(.+)@', $search, $chanmatch);
598
+ if (!empty($chanmatch))
599
+ {
600
+ $thechannel = self::get_channel_snippet($chanmatch[1]);
601
+ }
602
+ else
603
+ {
604
+ $theytid = null;
605
+ try
606
+ {
607
+ $theytid = self::try_get_ytid($search);
608
+ }
609
+ catch (Exception $ex)
610
+ {
611
+
612
+ }
613
+ $chanvid = self::get_video_snippet($theytid);
614
+ if ($chanvid)
615
+ {
616
+ $thechannel = self::get_channel_snippet($chanvid->snippet->channelId);
617
+ }
618
+ }
619
+ if ($thechannel)
620
+ {
621
+ $live_attempt = self::get_live_snippet($thechannel->id);
622
+ if ($live_attempt)
623
+ {
624
+ $if_live_preview = $live_attempt->id->videoId;
625
+ }
626
+ $rel = 'https://www.youtube.com/embed?live=1&channel=' . (esc_attr($thechannel->id));
627
+ ?>
628
+
629
+ <div id="step2_channel" class="center">
630
+
631
+ <h2>
632
+ <?php
633
+ echo 'Live Stream From Channel: ' . sanitize_text_field($thechannel->snippet->title);
634
+ ?>
635
+ </h2>
636
+ <p class="center">
637
+ <a class="ui-button ui-widget ui-corner-all inserttopost" rel="[embedyt] <?php echo $rel; ?>[/embedyt]"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span> Insert Into Editor</a>
638
+ &nbsp; <a class="ui-button ui-widget ui-corner-all" href="<?php echo $get_pro_link; ?>" target="_blank"><span class="ui-icon ui-icon-gear"></span> Customize (PRO)</a>
639
+ </p>
640
+ <p>
641
+ Or Copy Code:
642
+ </p>
643
+ <p>
644
+ <span class="copycode">[embedyt] <?php echo $rel; ?>[/embedyt]</span>
645
+ </p>
646
+ <div class="clearboth" style="height: 10px;">
647
+ </div>
648
+ <?php
649
+ if ($if_live_preview)
650
+ {
651
+ ?>
652
+ <div class="center relative">
653
+ <iframe src="https://www.youtube.com/embed/<?php echo esc_attr($if_live_preview) ?>?rel=0" allowfullscreen="" width="854" height="480" frameborder="0"></iframe>
654
+ </div>
655
+ <?php
656
+ }
657
+ ?>
658
+
659
+ </div>
660
+ <?php
661
+ }
662
+ else
663
+ {
664
+ $form_valid = false;
665
+ $step1_live_errors = $step1_live_error_invalid;
666
+ $acc_expand = 'h3_live';
667
+ }
668
+ }
669
+ catch (Exception $ex)
670
+ {
671
+ $form_valid = false;
672
+ $step1_live_errors = $step1_live_error_invalid;
673
+ $acc_expand = 'h3_live';
674
+ }
675
+ }
676
+ catch (Exception $ex)
677
+ {
678
+ $form_valid = false;
679
+ $step1_live_errors = $step1_live_error_invalid;
680
+ $acc_expand = 'h3_live';
681
+ }
682
+ }
683
+ else
684
+ {
685
+ $form_valid = false;
686
+ $acc_expand = 'h3none';
687
+ }
688
+ }
689
+
690
+ if (!isset($_POST['wizform_submit']) || ($form_valid === false))
691
+ {
692
+ if ($form_valid === false)
693
+ {
694
+ ?>
695
+ <script type="text/javascript">
696
+ var _EPYTWIZ_ = _EPYTWIZ_ || {};
697
+ _EPYTWIZ_.acc_expand = '<?php echo sanitize_key($acc_expand) ?>';</script>
698
+ <?php
699
+ }
700
+ ?>
701
+
702
+ <div class="wiz-accordion">
703
+ <h3 class="header-go"><a href="<?php echo admin_url('admin.php?page=youtube-my-preferences#jumpdefaults'); ?>">Check my general YouTube embedding instructions and settings. </a></h3>
704
+ <div class="header-go-content"></div>
705
+ <h3 id="h3_video"><a href="#">Embed a single video.</a></h3>
706
+ <div>
707
+ <h4 class="center">Single video directions</h4>
708
+ <p>
709
+ Search YouTube videos by title below (example: <em>TED talks</em>). Or, if you already have the URL for the video, you can paste it below (example: <em>https://www.youtube.com/watch?v=YVvn8dpSAt0</em> )
710
+ </p>
711
+ <form name="wizform_video" method="post" action="" class="wizform" id="wizform_video">
712
+ <div class="center txt-button-align">
713
+ <input name="txtUrl" maxlength="200" id="txtUrl" class="txturlpastecustom ui-widget ui-widget-content ui-corner-all" placeholder="Search by title or paste URL here" type="text"> <button name="wizform_submit" class="ui-button ui-widget ui-corner-all" type="submit" value="step1_video">Submit</button>
714
+ </div>
715
+ <p class="badpaste orange bold" style="display: none;">
716
+ Please do not paste full embedcode above, only simple links to the YouTube video.
717
+ <br />
718
+ We have attempted to correct it above, but please doublecheck!
719
+ </p>
720
+ </form>
721
+ <?php echo $step1_video_errors ? '<p class="orange bold">' . $step1_video_errors . '</p>' : ''; ?>
722
+ </div>
723
+ <h3 id="h3_playlist"><a href="#">Embed a playlist. </a></h3>
724
+ <div>
725
+ <h4 class="center">Playlist directions</h4>
726
+ <div class="playlist-tabs">
727
+ <ul>
728
+ <li><a href="#ptabs-1">Self-contained layout directions</a></li>
729
+ <li><a href="#ptabs-2">Gallery layout directions</a></li>
730
+ </ul>
731
+ <div id="ptabs-1">
732
+ <img src="<?php echo plugins_url('/images/icon-playlist-self.jpg', __FILE__) ?>" class="icon-playlist" />
733
+ <ol>
734
+ <li>Go to the page for the playlist that lists all of its videos (<a href="https://www.youtube.com/playlist?list=PL70DEC2B0568B5469" target="_blank">Example &raquo;</a>). </li>
735
+ <li>You may then click on the video that you want the playlist to start with.</li>
736
+ <li>Copy the URL in your browser and paste it in the textbox below. You'll notice that a playlist URL contains the playlist ID (e.g. "PL...")</li>
737
+ <li>Click "Get Playlist" to continue.</li>
738
+ </ol>
739
+ <div class="clearboth">
740
+ </div>
741
+ </div>
742
+ <div id="ptabs-2">
743
+ <img src="<?php echo plugins_url('/images/icon-playlist-gallery.jpg', __FILE__) ?>" class="icon-playlist" />
744
+ <ol>
745
+ <li>Go to the page for the playlist that lists all of its videos (<a href="https://www.youtube.com/playlist?list=PL70DEC2B0568B5469" target="_blank">Example &raquo;</a>). </li>
746
+ <li>Copy the URL in your browser and paste it in the textbox below. You'll notice that a playlist URL contains the playlist ID (e.g. "PL...")</li>
747
+ <li>Click "Get Playlist" to continue.</li>
748
+ </ol>
749
+ <div class="clearboth">
750
+ </div>
751
+ </div>
752
+ </div>
753
+
754
+ <form name="wizform_playlist" method="post" action="" class="wizform" id="wizform_playlist">
755
+ <div class="center txt-button-align">
756
+ <input name="txtUrlPlaylist" maxlength="200" id="txtUrlPlaylist" class="txturlpastecustom ui-widget ui-widget-content ui-corner-all" placeholder="Paste the playlist link here" type="text">
757
+ <button name="wizform_submit" class="ui-button ui-widget ui-corner-all" type="submit" value="step1_playlist">Get Playlist</button>
758
+ </div>
759
+ </form>
760
+ <?php echo $step1_playlist_errors ? '<p class="orange bold">' . $step1_playlist_errors . '</p>' : ''; ?>
761
+ </div>
762
+ <h3 id="h3_channel"><a href="#">Embed a channel. </a></h3>
763
+ <div>
764
+ <h4 class="center">Channel directions</h4>
765
+ <?php
766
+ if (!self::has_api_key())
767
+ {
768
+ echo str_replace('###', '"search for channel"', self::$get_api_key_msg);
769
+ }
770
+ else
771
+ {
772
+ ?>
773
+ <p>
774
+ Enter a link to any video that belongs to the user's channel. Example: https://www.youtube.com/watch?v=YVvn8dpSAt0
775
+ </p>
776
+ <form name="wizform_channel" method="post" action="" class="wizform" id="wizform_channel">
777
+ <div class="center txt-button-align">
778
+ <input name="txtUrlChannel" maxlength="200" id="txtUrlChannel" class="txturlpastecustom ui-widget ui-widget-content ui-corner-all" placeholder="Paste YouTube link here" type="text"> <button name="wizform_submit" class="ui-button ui-widget ui-corner-all" type="submit" value="step1_channel">Get Channel</button>
779
+ </div>
780
+ <p class="badpaste orange bold" style="display: none;">
781
+ Please do not paste full embedcode above, only simple links to the YouTube video.
782
+ <br />
783
+ We have attempted to correct it above, but please doublecheck!
784
+ </p>
785
+ </form>
786
+ <?php echo $step1_channel_errors ? '<p class="orange bold">' . $step1_channel_errors . '</p>' : ''; ?>
787
+ <?php
788
+ }
789
+ ?>
790
+ </div>
791
+ <h3 id="h3_live"><a href="#">Embed a live stream. <sup class="orange">NEW</sup> </a></h3>
792
+ <div>
793
+ <h4 class="center">Live stream directions</h4>
794
+ <?php
795
+ if (!self::has_api_key())
796
+ {
797
+ echo str_replace('###', 'live stream', self::$get_api_key_msg);
798
+ }
799
+ else
800
+ {
801
+ ?>
802
+ <ol>
803
+ <li>Enter in the URL of the channel that the live feed belongs to.
804
+ <ul class="ul-disc">
805
+ <li><small>Example: https://www.youtube.com/<strong>channel</strong>/UCnM5iMGiKsZg-iOlIO2ZkdQ </small></li>
806
+ <li><small>(If you do not know the exact channel URL, enter in the URL to any single video that belongs to that channel, to automatically retrieve the channel URL. Example: https://www.youtube.com/watch?v=fIW8Vvfbojc )</small></li>
807
+ </ul>
808
+ </li>
809
+ <li>On the YouTube settings page, enter in the "Default Not Live Content" field what content should display while your channel is <em>not</em> currently streaming.
810
+ </li>
811
+ </ol>
812
+ <form name="wizform_live" method="post" action="" class="wizform" id="wizform_live">
813
+ <div class="center txt-button-align">
814
+ <input name="txtUrlLive" maxlength="200" id="txtUrlLive" class="ui-widget ui-widget-content ui-corner-all" placeholder="Paste YouTube link here" type="text"> <button name="wizform_submit" class="ui-button ui-widget ui-corner-all" type="submit" value="step1_live">Submit</button>
815
+ </div>
816
+ </form>
817
+ <?php echo $step1_live_errors ? '<p class="orange bold">' . $step1_live_errors . '</p>' : ''; ?>
818
+ <?php
819
+ }
820
+ ?>
821
+ </div>
822
+ <h3 class="header-go"><a href="<?php echo self::$epbase . '/dashboard/pro-easy-video-analytics.aspx'; ?>">Check my performance, blocked countries, deleted videos, etc. (PRO) </a></h3>
823
+ <div class="header-go-content"></div>
824
+ </div>
825
+ <a id="lnkYthealth" class="ythealth imglink" href="<?php echo self::$epbase ?>/dashboard/pro-easy-video-analytics.aspx" target="_blank">
826
+ <img src="<?php echo plugins_url('/images/ythealth.png', __FILE__) ?>">
827
+ <div class="tip">
828
+ <span class=orange>(PRO)</span> Click to request an instant YouTube diagnostic report to see what (if any) important service problems that Google/YouTube are having right now that might affect your embeds, playlists, and analytics. This report includes issues affecting all types of embeds (standard and advanced players) and sites (not just WordPress). It also considers different devices; e.g. phones, tablets, and PCs.
829
+ </div>
830
+ </a>
831
+ <?php
832
+ }
833
+ ?>
834
+ </div>
835
+ <?php
836
+ }
837
+
838
+ public static function has_api_key()
839
+ {
840
+ if (isset(self::$alloptions[self::$opt_apikey]) && strlen(trim(self::$alloptions[self::$opt_apikey])) > 0)
841
+ {
842
+ return true;
843
+ }
844
+
845
+ return false;
846
+ }
847
+
848
+ public static function get_live_snippet($channel)
849
+ {
850
+ $apiEndpoint = 'https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&maxResults=1&type=video&eventType=live&safeSearch=none&videoEmbeddable=true&key=' . self::$alloptions[self::$opt_apikey]
851
+ . '&channelId=' . urlencode($channel);
852
+ $apiResult = wp_remote_get($apiEndpoint, array('timeout' => self::$curltimeout));
853
+
854
+ if (is_wp_error($apiResult))
855
+ {
856
+ return false;
857
+ }
858
+
859
+ $jsonResult = json_decode($apiResult['body']);
860
+
861
+ if (isset($jsonResult->error))
862
+ {
863
+ return false;
864
+ }
865
+
866
+ if (isset($jsonResult->items) && $jsonResult->items != null && is_array($jsonResult->items) && count($jsonResult->items))
867
+ {
868
+ return $jsonResult->items[0];
869
+ }
870
+
871
+ return false;
872
+ }
873
+
874
+ public static function get_video_snippet($vid)
875
+ {
876
+ $apiEndpoint = 'https://www.googleapis.com/youtube/v3/videos?part=snippet&maxResults=1&key=' . self::$alloptions[self::$opt_apikey]
877
+ . '&id=' . urlencode($vid);
878
+ $apiResult = wp_remote_get($apiEndpoint, array('timeout' => self::$curltimeout));
879
+
880
+ if (is_wp_error($apiResult))
881
+ {
882
+ return false;
883
+ }
884
+
885
+ $jsonResult = json_decode($apiResult['body']);
886
+
887
+ if (isset($jsonResult->error))
888
+ {
889
+ return false;
890
+ }
891
+
892
+ if (isset($jsonResult->items) && $jsonResult->items != null && is_array($jsonResult->items) && count($jsonResult->items))
893
+ {
894
+ return $jsonResult->items[0];
895
+ }
896
+
897
+ return false;
898
+ }
899
+
900
+ public static function get_channel_snippet($channid)
901
+ {
902
+ $apiEndpoint = 'https://www.googleapis.com/youtube/v3/channels?part=contentDetails,snippet&key=' . self::$alloptions[self::$opt_apikey]
903
+ . '&id=' . urlencode($channid);
904
+ $apiResult = wp_remote_get($apiEndpoint, array('timeout' => self::$curltimeout));
905
+
906
+ if (is_wp_error($apiResult))
907
+ {
908
+ return false;
909
+ }
910
+
911
+ $jsonResult = json_decode($apiResult['body']);
912
+
913
+ if (isset($jsonResult->error))
914
+ {
915
+ return false;
916
+ }
917
+
918
+ if (isset($jsonResult->items) && $jsonResult->items != null && is_array($jsonResult->items) && count($jsonResult->items))
919
+ {
920
+ return $jsonResult->items[0];
921
+ }
922
+
923
+ return false;
924
+ }
925
+
926
+ public static function get_search_page($options)
927
+ {
928
+ $gallobj = new stdClass();
929
+ $pageSize = 20;
930
 
931
+ if (!self::has_api_key())
932
+ {
933
+ $gallobj->html = '<div>' . str_replace('###', 'search', self::$get_api_key_msg) . '</div>';
934
+ return $gallobj;
935
+ }
936
 
937
+ $apiEndpoint = 'https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=' . $pageSize . '&type=video&safeSearch=none&videoEmbeddable=true&key=' . self::$alloptions[self::$opt_apikey]
938
+ . '&q=' . urlencode($options->q);
939
+ if (!empty($options->pageToken))
940
  {
941
+ $apiEndpoint .= '&pageToken=' . $options->pageToken;
 
 
942
  }
943
 
944
+ $code = '';
945
+ $apiResult = wp_remote_get($apiEndpoint, array('timeout' => self::$curltimeout));
946
 
947
+ if (is_wp_error($apiResult))
948
  {
949
+ $gallobj->html = '<div>Sorry, there was a YouTube API error: <em>' . htmlspecialchars(strip_tags($apiResult->get_error_message())) . '</em>' .
950
+ ' Please make sure you performed the <a href="https://www.youtube.com/watch?v=LpKDFT40V0U" target="_blank">steps in this video</a> to create and save a proper server API key.' .
951
+ '</div>';
952
+ return $gallobj;
953
+ }
954
 
955
+ $jsonResult = json_decode($apiResult['body']);
956
 
957
+ if (isset($jsonResult->error))
958
+ {
959
+ if (isset($jsonResult->error->message))
960
  {
961
+ $gallobj->html = '<div>Sorry, there was a YouTube API error: <em>' . htmlspecialchars(strip_tags($jsonResult->error->message)) . '</em>' .
962
+ ' Please make sure you performed the <a href="https://www.youtube.com/watch?v=LpKDFT40V0U" target="_blank">steps in this video</a> to create and save a proper server API key.' .
963
+ '</div>';
964
+ return $gallobj;
965
  }
966
+ $gallobj->html = '<div>Sorry, there may be an issue with your YouTube API key. Please make sure you performed the <a href="https://www.youtube.com/watch?v=LpKDFT40V0U" target="_blank">steps in this video</a> to create and save a proper server API key.</div>';
967
+ return $gallobj;
968
+ }
969
 
970
+ $totalResults = $jsonResult->pageInfo->totalResults;
 
 
 
971
 
972
+ $nextPageToken = '';
973
+ $prevPageToken = '';
974
+ if (isset($jsonResult->nextPageToken))
975
+ {
976
+ $nextPageToken = $jsonResult->nextPageToken;
977
  }
978
 
979
+ if (isset($jsonResult->prevPageToken))
980
  {
981
+ $prevPageToken = $jsonResult->prevPageToken;
982
  }
 
983
 
984
+ $cnt = 0;
 
 
 
 
 
985
 
986
+ $code .= '<div class="epyt-search-results">';
987
+
988
+ if (isset($jsonResult->items) && $jsonResult->items != null && is_array($jsonResult->items))
989
  {
990
+ foreach ($jsonResult->items as $item)
991
+ {
 
 
 
 
 
 
992
 
993
+ $thumb = new stdClass();
 
994
 
995
+ $thumb->id = isset($item->snippet->resourceId->videoId) ? $item->snippet->resourceId->videoId : null;
996
+ $thumb->id = $thumb->id ? $thumb->id : $item->id->videoId;
997
+ $thumb->title = $item->snippet->title;
998
+
999
+ if (isset($item->snippet->thumbnails->high->url))
1000
+ {
1001
+ $thumb->img = $item->snippet->thumbnails->high->url;
1002
+ $thumb->quality = 'high';
1003
+ }
1004
+ elseif (isset($item->snippet->thumbnails->default->url))
1005
+ {
1006
+ $thumb->img = $item->snippet->thumbnails->default->url;
1007
+ $thumb->quality = 'default';
1008
+ }
1009
+ elseif (isset($item->snippet->thumbnails->medium->url))
1010
+ {
1011
+ $thumb->img = $item->snippet->thumbnails->medium->url;
1012
+ $thumb->quality = 'medium';
1013
+ }
1014
+ else
1015
+ {
1016
+ $thumb->img = plugins_url('/images/deleted-video-thumb.png', __FILE__);
1017
+ $thumb->quality = 'medium';
1018
+ }
1019
+
1020
+
1021
+ $code .= self::get_search_result_html($thumb, $options);
1022
+ $cnt++;
1023
+ $code .= '<div class="clear-both"></div>';
1024
+ }
1025
  }
 
1026
 
1027
+ $code .= '<div class="clear-both"></div></div>';
 
 
 
1028
 
1029
+ $totalPages = ceil($totalResults / $pageSize);
1030
+ $pagination = '<div class="epyt-pagination">';
 
 
 
 
 
 
1031
 
1032
+ $txtprev = self::$alloptions[self::$opt_gallery_customarrows] ? self::$alloptions[self::$opt_gallery_customprev] : _('Prev');
1033
+ $pagination .= '<div tabindex="0" role="button" class="epyt-pagebutton epyt-prev ' . (empty($prevPageToken) ? ' hide ' : '') . '" data-q="' . esc_attr($options->q)
1034
+ . '" data-pagetoken="' . esc_attr($prevPageToken)
1035
+ . '"><div class="arrow">&laquo;</div> <div>' . $txtprev . '</div></div>';
 
 
 
 
 
 
1036
 
 
 
 
 
 
 
 
 
1037
 
1038
+ $pagination .= '<div class="epyt-pagenumbers ' . ($totalPages > 1 ? '' : 'hide') . '">';
1039
+ $pagination .= '<div class="epyt-current">1</div><div class="epyt-pageseparator"> / </div><div class="epyt-totalpages">' . $totalPages . '</div>';
1040
+ $pagination .= '</div>';
1041
 
1042
+ $txtnext = self::$alloptions[self::$opt_gallery_customarrows] ? self::$alloptions[self::$opt_gallery_customnext] : _('Next');
1043
+ $pagination .= '<div tabindex="0" role="button" class="epyt-pagebutton epyt-next' . (empty($nextPageToken) ? ' hide ' : '') . '" data-q="' . esc_attr($options->q)
1044
+ . '" data-pagetoken="' . esc_attr($nextPageToken)
1045
+ . '"><div>' . $txtnext . '</div> <div class="arrow">&raquo;</div></div>';
1046
+
1047
+ $pagination .= '<div class="epyt-loader"><img alt="loading" width="16" height="11" src="' . plugins_url('images/gallery-page-loader.gif', __FILE__) . '"></div>';
1048
+ $pagination .= '</div>';
1049
+
1050
+ $code = $pagination . $code . $pagination;
1051
+ $gallobj->html = $code;
1052
+ return $gallobj;
1053
  }
1054
 
1055
+ public static function get_search_result_html($thumb, $options)
1056
  {
1057
+ $get_pro_link = self::$epbase . '/dashboard/pro-easy-video-analytics.aspx';
1058
+ $escId = esc_attr($thumb->id);
1059
+ $code = '';
1060
+
1061
+ $code .= '<div class="resultdiv" data-vid="' . $escId . '">
1062
+ <div class="resultinfo">
1063
+ <a class="pointer thumb load-movie" style="background-image: url(' . esc_url($thumb->img) . ')"></a>
1064
+ <a class="resulttitle pointer load-movie"><span class="ui-icon ui-icon-circle-triangle-e"></span> ' . sanitize_text_field($thumb->title) . '</a>
1065
+ <br>
1066
+ <span style="display: block;" id="scrollwatch' . $escId . '"></span>
1067
+ <div class="resultsubinfo">
1068
+ <p>
1069
+ <a class="ui-button ui-widget ui-corner-all" href="' . $get_pro_link . '" target="_blank"><span class="ui-icon ui-icon-gear"></span> Customize (PRO)</a>
1070
+ &nbsp; <a class="ui-button ui-widget ui-corner-all inserttopost" rel="[embedyt] https://www.youtube.com/watch?v=' . $escId . '[/embedyt]"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span> Insert Into Editor</a>
1071
+ </p>
1072
+ &nbsp; Or Copy Code:
1073
+ <span class="copycode">[embedyt] https://www.youtube.com/watch?v=' . $escId . '[/embedyt]</span>
1074
+ </div>
1075
+ </div>
1076
+ </div>
1077
+ <div id="moviecontainer' . $escId . '" class="center moviecontainer relative" style="display: none;">
1078
+ Preview: <a id="closeme' . $escId . '" class="closeme" data-vid="' . $escId . '">
1079
+ &times;
1080
+ </a>
1081
+ <div id="watch' . $escId . '">
1082
+ </div>
1083
+ </div>';
1084
+
1085
+ return $code;
1086
  }
1087
 
1088
  public static function glance_page()
1130
  var $acctitle = $j(this);
1131
  var $accbox = $j(this).parent().children('.accbox');
1132
  var pid = $accbox.attr("data-postid");
 
1133
  $acctitle.prepend('<img alt="loading" class="accloader" src="<?php echo plugins_url('images/ajax-loader.gif', __FILE__) ?>" />');
1134
  jQuery.ajax({
1135
  type: "post",
1138
  url: wpajaxurl,
1139
  data: {action: 'my_embedplus_glance_vids', postid: pid},
1140
  success: function (response) {
1141
+ if (response.type === "success") {
1142
  $accbox.html(response.data),
1143
  $accbox.show(400);
1144
  }
1153
  }
1154
 
1155
  });
 
 
1156
  });
1157
  });
1158
+ })(jQuery);</script>
 
 
 
1159
  <?php
1160
  global $wpdb;
1161
  $query_sql = "
1174
  echo '<h2><img alt="YouTube Plugin Icon" src="' . plugins_url('images/youtubeicon16.png', __FILE__) . '" /> 10 Latest Posts/Pages with YouTube Videos (' . $total . ' Total)</h2>';
1175
  ?>
1176
 
1177
+ We recommend using this page as an easy way to check the results of the global default settings you make on your recent embeds. Or, simply use it as an index to jump right to your posts that contain YouTube embeds.
1178
 
1179
  <?php
1180
  if ($total > 0)
1261
  else
1262
  {
1263
  $thehtml .= '<p class="center bold orange">This <a target="_blank" href="' . $postlink . '">post/page</a> contains a video that has been removed from YouTube.';
1264
+ $thehtml .='<br><a target="_blank" href="https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx">Activate delete video tracking to catch these cases &raquo;</a>';
 
 
 
 
1265
  $thehtml .= '</strong>';
1266
  }
1267
  }
1293
  else
1294
  {
1295
  $thehtml .= '<p class="center bold orange">This <a target="_blank" href="' . $postlink . '">post/page</a> contains a video that has been removed from YouTube.';
1296
+ $thehtml .='<br><a target="_blank" href="https://www.embedplus.com/dashboard/pro-easy-video-analytics.aspx">Activate delete video tracking to catch these cases &raquo;</a>';
 
 
 
 
1297
  $thehtml .= '</strong>';
1298
  }
1299
  }
1367
  {
1368
  add_thickbox();
1369
 
1370
+ $wizhref = admin_url('admin.php?page=youtube-ep-wizard') .
1371
+ // '&wpversion=' . get_bloginfo('version') .
1372
+ // '&settingsurl=' . urlencode(admin_url('admin.php?page=youtube-my-preferences#jumpdefaults')) .
1373
+ // '&blogwidth=' . YouTubePrefs::get_blogwidth() .
1374
+ // '&domain=' . urlencode(site_url()) .
1375
+ // '&myytdefaults=' . urlencode(http_build_query(YouTubePrefs::$alloptions)) .
 
 
1376
  '&random=' . rand(1, 1000) .
1377
  '&TB_iframe=true&width=950&height=800';
1378
  ?>
1379
+ <a href="<?php echo $wizhref; ?>" class="thickbox button ytprefs_media_link" id="ytprefs_wiz_button" title="Visual YouTube Search Tool and Wizard - For easier embedding"><span></span> YouTube</a>
1380
  <?php
1381
  }
1382
 
1385
  if (is_plugin_active('embedplus-for-wordpress/embedplus.php'))
1386
  {
1387
  add_action('admin_notices', array("YouTubePrefs", "double_plugin_warning"));
 
1388
  }
1389
  }
1390
 
1443
  }
1444
  });
1445
  });
 
1446
  });
1447
+ })(jQuery);</script>
 
1448
  <?php
1449
  }
1450
  }
1484
  version: "<?php echo self::$alloptions[self::$opt_version] ?>",
1485
  epdovol: true,
1486
  evselector: '<?php echo self::get_evselector(); ?>',
 
 
 
 
1487
  stopMobileBuffer: <?php echo self::$alloptions[self::$opt_stop_mobile_buffer] == '1' ? 'true' : 'false' ?>
1488
+ };</script>
 
1489
  <?php
1490
  }
1491
  }
1501
 
1502
  public static function initoptions()
1503
  {
1504
+ $arroptions = get_option(self::$opt_alloptions);
1505
+ if ($arroptions !== false)
1506
+ {
1507
+ $bak = str_replace('.', '_', $arroptions[self::$opt_version]);
1508
+ add_option(self::$opt_alloptions . '_backup_' . $bak, $arroptions);
1509
+ }
1510
+
1511
+ // backup settings for migration
1512
+ if (isset($arroptions[self::$opt_pro]) && strlen(trim($arroptions[self::$opt_pro])) > 10)
1513
+ {
1514
+ add_option(self::$opt_alloptions . '_migrate', $arroptions);
1515
+ }
1516
+
1517
  //vanilla defaults
1518
  $_center = 0;
1519
  $_glance = 1;
1524
  $_modestbranding = get_option('youtubeprefs_modestbranding', 0);
1525
  $_rel = get_option('youtubeprefs_rel', 1);
1526
  $_showinfo = get_option('youtubeprefs_showinfo', 1);
 
1527
  $_theme = get_option('youtubeprefs_theme', 'dark');
1528
  $_color = get_option('youtubeprefs_color', 'red');
 
1529
  $_autohide = 2;
1530
  $_pro = '';
 
1531
  $_nocookie = 0;
1532
  $_playlistorder = 0;
1533
  $_acctitle = 0;
 
1534
  $_migrate = 0;
1535
  $_migrate_youtube = 0;
1536
  $_migrate_embedplusvideo = 0;
1541
  $_widgetfit = 1;
1542
  $_evselector_light = 0;
1543
  $_stop_mobile_buffer = 1;
 
 
 
 
 
 
 
 
 
1544
  $_defaultdims = 0;
1545
  $_defaultwidth = '';
1546
  $_defaultheight = '';
1566
  $_gallery_customprev = 'Prev';
1567
  $_gallery_customnext = 'Next';
1568
  $_gallery_pagesize = 15;
 
 
 
 
1569
  $_not_live_content = '';
1570
  $_debugmode = 0;
1571
  $_admin_off_scripts = 0;
1572
  $_old_script_method = 0;
1573
 
 
 
1574
  //update vanilla to previous settings if exists
1575
  if ($arroptions !== false)
1576
  {
1577
  $_center = self::tryget($arroptions, self::$opt_center, 0);
1578
  $_glance = self::tryget($arroptions, self::$opt_glance, 1);
1579
  $_autoplay = self::tryget($arroptions, self::$opt_autoplay, 0);
 
 
1580
  $_cc_load_policy = self::tryget($arroptions, self::$opt_cc_load_policy, 0);
1581
  $_iv_load_policy = self::tryget($arroptions, self::$opt_iv_load_policy, 1);
1582
  $_loop = self::tryget($arroptions, self::$opt_loop, 0);
1583
  $_modestbranding = self::tryget($arroptions, self::$opt_modestbranding, 0);
1584
  $_rel = self::tryget($arroptions, self::$opt_rel, 1);
1585
  $_showinfo = self::tryget($arroptions, self::$opt_showinfo, 1);
 
 
 
 
 
1586
  $_theme = self::tryget($arroptions, self::$opt_theme, 'dark');
1587
  $_color = self::tryget($arroptions, self::$opt_color, 'red');
1588
+ $_autohide = self::tryget($arroptions, self::$opt_autohide, 2);
 
1589
  $_pro = self::tryget($arroptions, self::$opt_pro, '');
 
1590
  $_nocookie = self::tryget($arroptions, self::$opt_nocookie, 0);
1591
  $_playlistorder = self::tryget($arroptions, self::$opt_playlistorder, 0);
1592
  $_acctitle = self::tryget($arroptions, self::$opt_acctitle, 0);
 
1593
  $_migrate = self::tryget($arroptions, self::$opt_migrate, 0);
1594
  $_migrate_youtube = self::tryget($arroptions, self::$opt_migrate_youtube, 0);
1595
  $_migrate_embedplusvideo = self::tryget($arroptions, self::$opt_migrate_embedplusvideo, 0);
1596
  $_controls = self::tryget($arroptions, self::$opt_controls, 2);
 
1597
  $_oldspacing = self::tryget($arroptions, self::$opt_oldspacing, 1);
1598
  $_responsive = self::tryget($arroptions, self::$opt_responsive, 0);
1599
  $_responsive_all = self::tryget($arroptions, self::$opt_responsive_all, 1);
1600
  $_widgetfit = self::tryget($arroptions, self::$opt_widgetfit, 1);
1601
  $_evselector_light = self::tryget($arroptions, self::$opt_evselector_light, 0);
1602
  $_stop_mobile_buffer = self::tryget($arroptions, self::$opt_stop_mobile_buffer, 1);
 
 
 
 
 
 
 
 
1603
  $_defaultdims = self::tryget($arroptions, self::$opt_defaultdims, 0);
1604
  $_defaultwidth = self::tryget($arroptions, self::$opt_defaultwidth, '');
1605
  $_defaultheight = self::tryget($arroptions, self::$opt_defaultheight, '');
1606
+ $_playsinline = self::tryget($arroptions, self::$opt_playsinline, 0);
1607
+ $_origin = self::tryget($arroptions, self::$opt_origin, 0);
1608
  $_defaultvol = self::tryget($arroptions, self::$opt_defaultvol, 0);
1609
  $_vol = self::tryget($arroptions, self::$opt_vol, '');
1610
  $_apikey = self::tryget($arroptions, self::$opt_apikey, '');
1611
+ $_hl = self::tryget($arroptions, self::$opt_hl, '');
1612
+ $_dohl = self::tryget($arroptions, self::$opt_dohl, 0);
1613
  $_gallery_pagesize = self::tryget($arroptions, self::$opt_gallery_pagesize, 15);
1614
  $_gallery_columns = self::tryget($arroptions, self::$opt_gallery_columns, 3);
1615
  $_gallery_collapse_grid = self::tryget($arroptions, self::$opt_gallery_collapse_grid, 0);
1619
  $_gallery_showpaging = self::tryget($arroptions, self::$opt_gallery_showpaging, 1);
1620
  $_gallery_autonext = self::tryget($arroptions, self::$opt_gallery_autonext, 0);
1621
  $_gallery_thumbplay = self::tryget($arroptions, self::$opt_gallery_thumbplay, 1);
 
 
 
1622
  $_gallery_channelsub = self::tryget($arroptions, self::$opt_gallery_channelsub, $_gallery_channelsub);
1623
  $_gallery_channelsublink = self::tryget($arroptions, self::$opt_gallery_channelsublink, $_gallery_channelsublink);
1624
  $_gallery_channelsubtext = self::tryget($arroptions, self::$opt_gallery_channelsubtext, $_gallery_channelsubtext);
1625
  $_gallery_customarrows = self::tryget($arroptions, self::$opt_gallery_customarrows, $_gallery_customarrows);
1626
  $_gallery_customnext = self::tryget($arroptions, self::$opt_gallery_customnext, $_gallery_customnext);
1627
  $_gallery_customprev = self::tryget($arroptions, self::$opt_gallery_customprev, $_gallery_customprev);
 
1628
  $_not_live_content = self::tryget($arroptions, self::$opt_not_live_content, $_not_live_content);
1629
+ $_debugmode = self::tryget($arroptions, self::$opt_debugmode, 0);
1630
  $_admin_off_scripts = self::tryget($arroptions, self::$opt_admin_off_scripts, $_admin_off_scripts);
1631
+ $_old_script_method = self::tryget($arroptions, self::$opt_old_script_method, 0);
1632
  }
1633
  else
1634
  {
1646
  self::$opt_modestbranding => $_modestbranding,
1647
  self::$opt_rel => $_rel,
1648
  self::$opt_showinfo => $_showinfo,
 
 
 
 
 
 
1649
  self::$opt_theme => $_theme,
1650
  self::$opt_color => $_color,
1651
+ self::$opt_autohide => $_autohide,
 
1652
  self::$opt_pro => $_pro,
 
1653
  self::$opt_nocookie => $_nocookie,
1654
  self::$opt_playlistorder => $_playlistorder,
1655
  self::$opt_acctitle => $_acctitle,
 
1656
  self::$opt_migrate => $_migrate,
1657
  self::$opt_migrate_youtube => $_migrate_youtube,
1658
  self::$opt_migrate_embedplusvideo => $_migrate_embedplusvideo,
1663
  self::$opt_widgetfit => $_widgetfit,
1664
  self::$opt_evselector_light => $_evselector_light,
1665
  self::$opt_stop_mobile_buffer => $_stop_mobile_buffer,
 
 
 
 
 
 
 
 
1666
  self::$opt_defaultdims => $_defaultdims,
1667
  self::$opt_defaultwidth => $_defaultwidth,
1668
  self::$opt_defaultheight => $_defaultheight,
1669
+ self::$opt_playsinline => $_playsinline,
1670
+ self::$opt_origin => $_origin,
1671
  self::$opt_defaultvol => $_defaultvol,
1672
  self::$opt_vol => $_vol,
1673
  self::$opt_apikey => $_apikey,
1674
+ self::$opt_hl => $_hl,
1675
+ self::$opt_dohl => $_dohl,
1676
  self::$opt_gallery_columns => $_gallery_columns,
1677
  self::$opt_gallery_collapse_grid => $_gallery_collapse_grid,
1678
  self::$opt_gallery_collapse_grid_breaks => $_gallery_collapse_grid_breaks,
1685
  self::$opt_gallery_channelsublink => $_gallery_channelsublink,
1686
  self::$opt_gallery_channelsubtext => $_gallery_channelsubtext,
1687
  self::$opt_gallery_customarrows => $_gallery_customarrows,
 
1688
  self::$opt_gallery_customprev => $_gallery_customprev,
1689
+ self::$opt_gallery_customnext => $_gallery_customnext,
 
 
 
1690
  self::$opt_gallery_pagesize => $_gallery_pagesize,
1691
  self::$opt_not_live_content => $_not_live_content,
1692
  self::$opt_debugmode => $_debugmode,
1697
  update_option(self::$opt_alloptions, $all);
1698
  update_option('embed_autourls', 1);
1699
  self::$alloptions = get_option(self::$opt_alloptions);
 
 
 
 
 
 
 
 
 
 
 
 
 
1700
  }
1701
 
1702
  public static function tryget($array, $key, $default = null)
1735
  }
1736
  }
1737
  }
 
 
 
 
 
 
 
1738
  }
1739
 
1740
  public static function ao_override_jsexclude($exclude)
1834
  $options->showPaging = intval($options->showPaging);
1835
  $options->autonext = intval($options->autonext);
1836
  $options->thumbplay = intval($options->thumbplay);
 
 
 
1837
 
1838
  if (empty($options->apiKey))
1839
  {
1848
  {
1849
  $apiEndpoint .= '&pageToken=' . $options->pageToken;
1850
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1851
 
1852
  $code = '';
1853
  $init_id = null;
1904
  }
1905
 
1906
  $cnt = 0;
1907
+ $colclass = ' epyt-cols-' . $options->columns . ' ';
1908
+ $code .= '<div class="epyt-gallery-allthumbs ' . $colclass . '">';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1909
 
1910
  if (isset($jsonResult->items) && $jsonResult->items != null && is_array($jsonResult->items))
1911
  {
 
1912
  foreach ($jsonResult->items as $item)
1913
  {
1914
 
1924
  $init_id = $thumb->id;
1925
  }
1926
 
 
 
 
 
 
1927
  if ($thumb->privacyStatus == 'private')
1928
  {
1929
  $thumb->img = plugins_url('/images/private.png', __FILE__);
1956
  $code .= self::get_thumbnail_html($thumb, $options);
1957
  $cnt++;
1958
 
1959
+ if ($cnt % $options->columns === 0)
1960
  {
1961
  $code .= '<div class="epyt-gallery-rowbreak"></div>';
1962
  }
1965
 
1966
  $code .= '<div class="epyt-gallery-clear"></div></div>';
1967
 
 
 
 
 
 
 
1968
  $totalPages = ceil($totalResults / $resultsPerPage);
1969
  $pagination = '<div class="epyt-pagination">';
1970
 
1972
  $pagination .= '<div tabindex="0" role="button" class="epyt-pagebutton epyt-prev ' . (empty($prevPageToken) ? ' hide ' : '') . '" data-playlistid="' . esc_attr($options->playlistId)
1973
  . '" data-pagesize="' . intval($options->pageSize)
1974
  . '" data-pagetoken="' . esc_attr($prevPageToken)
 
1975
  . '" data-columns="' . intval($options->columns)
1976
  . '" data-showtitle="' . intval($options->showTitle)
1977
  . '" data-showpaging="' . intval($options->showPaging)
1978
  . '" data-autonext="' . intval($options->autonext)
1979
  . '" data-thumbplay="' . intval($options->thumbplay)
 
 
1980
  . '"><div class="arrow">&laquo;</div> <div>' . $txtprev . '</div></div>';
1981
 
1982
 
1988
  $pagination .= '<div tabindex="0" role="button" class="epyt-pagebutton epyt-next' . (empty($nextPageToken) ? ' hide ' : '') . '" data-playlistid="' . esc_attr($options->playlistId)
1989
  . '" data-pagesize="' . intval($options->pageSize)
1990
  . '" data-pagetoken="' . esc_attr($nextPageToken)
 
1991
  . '" data-columns="' . intval($options->columns)
1992
  . '" data-showtitle="' . intval($options->showTitle)
1993
  . '" data-showpaging="' . intval($options->showPaging)
1994
  . '" data-autonext="' . intval($options->autonext)
1995
  . '" data-thumbplay="' . intval($options->thumbplay)
 
 
1996
  . '"><div>' . $txtnext . '</div> <div class="arrow">&raquo;</div></div>';
1997
 
1998
  $pagination .= '<div class="epyt-loader"><img alt="loading" width="16" height="11" src="' . plugins_url('images/gallery-page-loader.gif', __FILE__) . '"></div>';
 
1999
  $pagination .= '</div>';
2000
 
2001
  if ($options->showPaging == 0)
2003
  $pagination = '<div class="epyt-pagination"></div>';
2004
  }
2005
  $code = $pagination . $code . $pagination;
 
 
 
 
 
 
 
 
 
 
 
 
2006
  $gallobj->html = $code;
2007
  $gallobj->init_id = $init_id;
2008
  return $gallobj;
2009
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2010
 
2011
+ public static function get_thumbnail_html($thumb, $options)
2012
+ {
2013
+ $escId = esc_attr($thumb->id);
2014
+ $code = '';
2015
+ $code .= '<div tabindex="0" role="button" data-videoid="' . $escId . '" class="epyt-gallery-thumb">';
2016
+ $code .= '<div class="epyt-gallery-img-box"><div class="epyt-gallery-img" style="background-image: url(' . esc_url($thumb->img) . ')">' .
2017
  '<div class="epyt-gallery-playhover"><img alt="play" class="epyt-play-img" width="30" height="23" src="' . plugins_url('images/playhover.png', __FILE__) . '" /><div class="epyt-gallery-playcrutch"></div></div>' .
2018
  '</div></div>';
2019
+ if (!empty($thumb->title))
2020
  {
2021
  $code .= '<div class="epyt-gallery-title">' . esc_html($thumb->title) . '</div>';
2022
  }
2024
  {
2025
  $code .= '<div class="epyt-gallery-notitle"><span>' . esc_html($thumb->title) . '</span></div>';
2026
  }
2027
+ $code .= '</div>';
 
 
2028
  return $code;
2029
  }
2030
 
2104
  }
2105
 
2106
  $youtubebaseurl = 'youtube';
 
2107
  $voloutput = '';
 
 
2108
  $acctitle = '';
 
 
 
 
 
2109
 
2110
  $finalparams = $linkparams + self::$alloptions;
2111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2112
  self::init_dimensions($link, $linkparams, $finalparams);
2113
 
2114
  if (self::$alloptions[self::$opt_nocookie] == 1)
2131
  unset($finalparams[self::$opt_hl]);
2132
  }
2133
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2134
  $centercode = '';
2135
  if ($finalparams[self::$opt_center] == 1)
2136
  {
2151
 
2152
  if (isset($linkparams['list']))
2153
  {
2154
+ $odata = self::get_oembed('https://youtube.com/playlist?list=' . $linkparams['list'], 1920, 1280);
2155
  if (is_object($odata) && isset($odata->title))
2156
  {
2157
  $acctitle = $odata->title;
2159
  }
2160
  else
2161
  {
2162
+ $odata = self::get_oembed('https://youtube.com/watch?v=' . $linkparams['v'], 1920, 1280);
2163
  if (is_object($odata) && isset($odata->title))
2164
  {
2165
  $acctitle = $odata->title;
2214
  $gallery_options->showPaging = intval($finalparams[self::$opt_gallery_showpaging]);
2215
  $gallery_options->autonext = intval($finalparams[self::$opt_gallery_autonext]);
2216
  $gallery_options->thumbplay = intval($finalparams[self::$opt_gallery_thumbplay]);
 
 
 
2217
  $gallery_options->apiKey = self::$alloptions[self::$opt_apikey];
2218
 
2219
  $galleryid = 'epyt_gallery_' . rand(10000, 99999);
2223
  if (self::$alloptions[self::$opt_gallery_channelsub] == 1)
2224
  {
2225
  $subbutton = '<div class="epyt-gallery-subscribe"><a target="_blank" class="epyt-gallery-subbutton" href="' .
2226
+ esc_url(self::$alloptions[self::$opt_gallery_channelsublink]) . '?sub_confirmation=1"><img alt="subscribe" src="' . plugins_url('images/play-subscribe.png', __FILE__) . '" />' .
2227
  htmlspecialchars(self::$alloptions[self::$opt_gallery_channelsubtext], ENT_QUOTES) . '</a></div>';
2228
  }
2229
 
 
2230
  $gallery_page_obj = self::get_gallery_page($gallery_options);
2231
 
2232
+ $galleryWrapper1 = '<div class="epyt-gallery" data-currpage="1" id="' . $galleryid . '">';
2233
  $galleryWrapper2 = '</div>';
2234
+ $galleryCode = $subbutton . '<div class="epyt-gallery-list">' . $gallery_page_obj->html . '</div>';
 
 
2235
  $videoidoutput = isset($gallery_page_obj->init_id) ? $gallery_page_obj->init_id : '';
2236
  }
2237
 
2238
 
2239
+ $code1 = '<iframe ' . $centercode . ' id="_ytid_' . rand(10000, 99999) . '" width="' . self::$defaultwidth . '" height="' . self::$defaultheight .
2240
+ '" src="https://www.' . $youtubebaseurl . '.com/embed/' . $videoidoutput . '?';
2241
+ $code2 = '" class="__youtube_prefs__' . ($iscontent ? '' : ' __youtube_prefs_widget__') .
2242
+ '"' . $voloutput . $acctitle . $galleryid_ifm_data . ' allowfullscreen data-no-lazy="1"></iframe>';
2243
 
2244
  $origin = '';
2245
 
2288
  self::$defaultwidth = null;
2289
  self::$oembeddata = null;
2290
 
 
 
 
 
 
 
 
 
 
 
 
2291
  return $code;
2292
  }
2293
 
2298
  fclose($handle);
2299
  }
2300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2301
  public static function keyvalue($qry, $includev)
2302
  {
2303
  $ytvars = explode('&', $qry);
2304
  $ytkvp = array();
2305
  foreach ($ytvars as $k => $v)
2306
  {
2307
+ $kvp = explode('=', $v);
2308
+ if (count($kvp) == 2 && ($includev || strtolower($kvp[0]) != 'v'))
2309
+ {
2310
+ $ytkvp[$kvp[0]] = $kvp[1];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2311
  }
2312
  }
2313
+
2314
+ return $ytkvp;
2315
  }
2316
 
2317
+ public static function secondsToDuration($seconds)
2318
  {
2319
+ $remaining = $seconds;
2320
+ $parts = array();
2321
+ $multipliers = array(
2322
+ 'hours' => 3600,
2323
+ 'minutes' => 60,
2324
+ 'seconds' => 1
2325
+ );
 
 
 
 
 
 
 
 
 
 
 
 
 
2326
 
2327
+ foreach ($multipliers as $type => $m)
2328
  {
2329
+ $parts[$type] = (int) ($remaining / $m);
2330
+ $remaining -= ($parts[$type] * $m);
 
 
 
2331
  }
2332
 
2333
+ return $parts;
2334
+ }
 
 
 
 
 
 
 
2335
 
2336
+ public static function formatDuration($parts)
2337
+ {
2338
+ $default = array(
2339
+ 'hours' => 0,
2340
+ 'minutes' => 0,
2341
+ 'seconds' => 0
2342
  );
2343
 
2344
+ extract(array_merge($default, $parts));
 
 
 
 
 
 
 
 
 
 
2345
 
2346
+ return "T{$hours}H{$minutes}M{$seconds}S";
2347
  }
2348
 
2349
+ public static function init_dimensions($url, $urlkvp, $finalparams)
2350
  {
2351
+ // get default dimensions; try embed size in settings, then try theme's content width, then just 480px
2352
+ if (self::$defaultwidth == null)
 
 
 
 
2353
  {
2354
+ global $content_width;
2355
+ if (empty($content_width))
2356
+ {
2357
+ $content_width = $GLOBALS['content_width'];
2358
+ }
 
 
2359
 
2360
+ if (isset($urlkvp['width']) && is_numeric($urlkvp['width']))
 
2361
  {
2362
+ self::$defaultwidth = $urlkvp['width'];
2363
  }
2364
+ else if (self::$alloptions[self::$opt_defaultdims] == 1 && (isset(self::$alloptions[self::$opt_defaultwidth]) && is_numeric(self::$alloptions[self::$opt_defaultwidth])))
2365
  {
2366
+ self::$defaultwidth = self::$alloptions[self::$opt_defaultwidth];
 
2367
  }
2368
+ else if (self::$optembedwidth)
 
2369
  {
2370
+ self::$defaultwidth = self::$optembedwidth;
 
 
 
 
 
 
 
2371
  }
2372
+ else if ($content_width)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2373
  {
2374
+ self::$defaultwidth = $content_width;
 
 
2375
  }
2376
  else
2377
  {
2378
+ self::$defaultwidth = 480;
 
2379
  }
 
 
 
 
 
2380
 
 
 
 
 
 
 
 
 
 
 
 
2381
 
2382
+
2383
+ if (isset($urlkvp['height']) && is_numeric($urlkvp['height']))
2384
  {
2385
+ self::$defaultheight = $urlkvp['height'];
2386
+ }
2387
+ else if (self::$alloptions[self::$opt_defaultdims] == 1 && (isset(self::$alloptions[self::$opt_defaultheight]) && is_numeric(self::$alloptions[self::$opt_defaultheight])))
2388
+ {
2389
+ self::$defaultheight = self::$alloptions[self::$opt_defaultheight];
2390
  }
2391
  else
2392
  {
2393
+ self::$defaultheight = self::get_aspect_height($url, $urlkvp, $finalparams);
2394
  }
 
 
 
 
 
 
2395
  }
 
2396
  }
2397
 
2398
+ public static function get_oembed($url, $height, $width)
2399
  {
2400
+ require_once( ABSPATH . WPINC . '/class-oembed.php' );
2401
+ $oembed = _wp_oembed_get_object();
2402
+ $args = array();
2403
+ $args['width'] = $width;
2404
+ $args['height'] = $height;
2405
+ $args['discover'] = false;
2406
+ self::$oembeddata = $oembed->fetch('https://www.youtube.com/oembed', $url, $args);
2407
+ return self::$oembeddata;
 
 
 
 
 
 
 
 
 
 
2408
  }
2409
 
2410
+ public static function get_aspect_height($url, $urlkvp, $finalparams)
2411
  {
2412
+
2413
+ // attempt to get aspect ratio correct height from oEmbed
2414
+ $aspectheight = round((self::$defaultwidth * 9) / 16, 0);
2415
+
2416
+
2417
+ if ($url)
2418
  {
2419
+ $odata = self::get_oembed($url, self::$defaultwidth, self::$defaultwidth);
2420
+
2421
+ if ($odata)
 
 
 
2422
  {
2423
+ $aspectheight = $odata->height;
2424
  }
 
2425
  }
2426
+
2427
+ if ($finalparams[self::$opt_controls] != 0 && $finalparams[self::$opt_autohide] != 1)
2428
  {
2429
+ //add 28 for YouTube's own bar: DEPRECATED
2430
+ //$aspectheight += 28;
2431
  }
2432
+ return $aspectheight;
2433
+ }
2434
+
2435
+ public static function ytprefs_plugin_menu()
2436
+ {
2437
+ add_menu_page('YouTube Settings', 'YouTube Free', 'manage_options', 'youtube-my-preferences', 'YouTubePrefs::ytprefs_show_options', plugins_url('images/youtubeicon16.png', __FILE__), '10.000392854349');
2438
+ add_submenu_page('youtube-my-preferences', '', '', 'manage_options', 'youtube-my-preferences', 'YouTubePrefs::ytprefs_show_options');
2439
+
2440
+ add_submenu_page(null, 'YouTube Posts', 'YouTube Posts', 'manage_options', 'youtube-ep-glance', 'YouTubePrefs::glance_page');
2441
+ self::$wizard_hook = add_submenu_page(null, 'YouTube Wizard', 'YouTube Wizard', 'edit_posts', 'youtube-ep-wizard', 'YouTubePrefs::wizard');
2442
  }
2443
 
2444
  public static function custom_admin_pointers_check()
2448
  foreach ($admin_pointers as $pointer => $array)
2449
  {
2450
  if ($array['active'])
2451
+ {
2452
  return true;
2453
+ }
2454
  }
2455
  }
2456
 
2477
  url: wpajaxurl,
2478
  data: {action: 'my_embedplus_glance_count'},
2479
  success: function (response) {
2480
+ if (response.type === "success") {
2481
  $j(response.container).append(response.data);
2482
  $j(".ytprefs_glance_button").click(widen_ytprefs_glance);
2483
  $j(window).resize(widen_ytprefs_glance);
2484
+ if (typeof ep_do_pointers === 'function')
2485
  {
2486
  //ep_do_pointers($j);
2487
  }
2495
  complete: function () {
2496
  }
2497
  });
 
2498
  });
2499
+ })(jQuery);</script>
 
 
2500
  <?php
2501
  }
2502
 
2550
  $new_pointer_content .= '<p>'; // ooopointer
2551
  if (!(self::$alloptions[self::$opt_pro] && strlen(trim(self::$alloptions[self::$opt_pro])) > 0))
2552
  {
2553
+ $new_pointer_content .= __("This update has code refactoring to separate and streamline the Free and <a target=_blank href=" . self::$epbase . '/dashboard/pro-easy-video-analytics.aspx?ref=frompointer' . ">Pro versions &raquo;</a>");
2554
  }
2555
  else
2556
  {
2557
+ $new_pointer_content .= __("This update has code refactoring to separate and streamline the Free and Pro versions. " . '<strong>Important message to YouTube Pro users</strong>: From version 11.7 onward, you must <a href="https://www.embedplus.com/youtube-pro/download/?prokey=' . esc_attr(self::$alloptions[self::$opt_pro]) . '" target="_blank">download the separate plugin here</a> to regain your Pro features. All your settings will automatically migrate after installing the separate Pro download. Thank you for your support and patience during this transition.');
2558
  }
2559
  $new_pointer_content .= '</p>';
2560
 
2569
  );
2570
  }
2571
 
2572
+ public static function postchecked($idx)
2573
+ {
2574
+ return isset($_POST[$idx]) && $_POST[$idx] == (true || 'on');
2575
+ }
2576
+
2577
+ public static function output_scriptvars()
2578
+ {
2579
+ self::$scriptsprinted++;
2580
+ if (self::$scriptsprinted == 1)
2581
+ {
2582
+ $blogwidth = self::get_blogwidth();
2583
+ $epprokey = self::$alloptions[self::$opt_pro];
2584
+ $myytdefaults = http_build_query(self::$alloptions);
2585
+ ?>
2586
+ <script type="text/javascript">
2587
+ var wpajaxurl = "<?php echo admin_url('admin-ajax.php') ?>";
2588
+ if (window.location.toString().indexOf('https://') === 0)
2589
+ {
2590
+ wpajaxurl = wpajaxurl.replace("http://", "https://");
2591
+ }
2592
+
2593
+ var epblogwidth = <?php echo $blogwidth; ?>;
2594
+ var epprokey = '<?php echo $epprokey; ?>';
2595
+ var epbasesite = '<?php echo self::$epbase; ?>';
2596
+ var epversion = '<?php echo self::$version; ?>';
2597
+ var myytdefaults = '<?php echo $myytdefaults; ?>';
2598
+ var eppluginadminurl = '<?php echo admin_url('admin.php?page=youtube-my-preferences'); ?>';
2599
+ // Create IE + others compatible event handler
2600
+ var epeventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
2601
+ var epeventer = window[epeventMethod];
2602
+ var epmessageEvent = epeventMethod === "attachEvent" ? "onmessage" : "message";
2603
+ // Listen to message from child window
2604
+ epeventer(epmessageEvent, function (e)
2605
+ {
2606
+ var embedcode = "";
2607
+ try
2608
+ {
2609
+ if (e.data.indexOf("youtubeembedplus") === 0)
2610
+ {
2611
+ embedcode = e.data.split("|")[1];
2612
+ if (embedcode.indexOf("[") !== 0)
2613
+ {
2614
+ embedcode = "<p>" + embedcode + "</p>";
2615
+ }
2616
+
2617
+ if (window.tinyMCE !== null && window.tinyMCE.activeEditor !== null && !window.tinyMCE.activeEditor.isHidden())
2618
+ {
2619
+ if (typeof window.tinyMCE.execInstanceCommand !== 'undefined')
2620
+ {
2621
+ window.tinyMCE.execInstanceCommand(
2622
+ window.tinyMCE.activeEditor.id,
2623
+ 'mceInsertContent',
2624
+ false,
2625
+ embedcode);
2626
+ }
2627
+ else
2628
+ {
2629
+ send_to_editor(embedcode);
2630
+ }
2631
+ }
2632
+ else
2633
+ {
2634
+ embedcode = embedcode.replace('<p>', '\n').replace('</p>', '\n');
2635
+ if (typeof QTags.insertContent === 'function')
2636
+ {
2637
+ QTags.insertContent(embedcode);
2638
+ }
2639
+ else
2640
+ {
2641
+ send_to_editor(embedcode);
2642
+ }
2643
+ }
2644
+ tb_remove();
2645
+ }
2646
+ }
2647
+ catch (err)
2648
+ {
2649
+
2650
+ }
2651
+
2652
+
2653
+ }, false);</script>
2654
+ <?php
2655
+ }
2656
  }
2657
 
2658
  public static function ytprefs_show_options()
2665
 
2666
  if (self::$double_plugin)
2667
  {
 
2668
  self::double_plugin_warning();
2669
  }
2670
 
 
 
2671
  $ytprefs_submitted = 'ytprefs_submitted';
2672
 
2673
  // Read in existing option values from database
2697
  $new_options[self::$opt_origin] = self::postchecked(self::$opt_origin) ? 1 : 0;
2698
  $new_options[self::$opt_controls] = self::postchecked(self::$opt_controls) ? 2 : 0;
2699
  $new_options[self::$opt_autohide] = self::postchecked(self::$opt_autohide) ? 1 : 2;
 
2700
  $new_options[self::$opt_theme] = self::postchecked(self::$opt_theme) ? 'dark' : 'light';
2701
  $new_options[self::$opt_color] = self::postchecked(self::$opt_color) ? 'red' : 'white';
 
 
2702
  $new_options[self::$opt_nocookie] = self::postchecked(self::$opt_nocookie) ? 1 : 0;
2703
  $new_options[self::$opt_playlistorder] = self::postchecked(self::$opt_playlistorder) ? 1 : 0;
2704
  $new_options[self::$opt_acctitle] = self::postchecked(self::$opt_acctitle) ? 1 : 0;
 
2705
  $new_options[self::$opt_migrate] = self::postchecked(self::$opt_migrate) ? 1 : 0;
2706
  $new_options[self::$opt_migrate_youtube] = self::postchecked(self::$opt_migrate_youtube) ? 1 : 0;
2707
  $new_options[self::$opt_migrate_embedplusvideo] = self::postchecked(self::$opt_migrate_embedplusvideo) ? 1 : 0;
 
2708
  $new_options[self::$opt_oldspacing] = self::postchecked(self::$opt_oldspacing) ? 1 : 0;
2709
  $new_options[self::$opt_responsive] = self::postchecked(self::$opt_responsive) ? 1 : 0;
2710
  $new_options[self::$opt_widgetfit] = self::postchecked(self::$opt_widgetfit) ? 1 : 0;
2711
  $new_options[self::$opt_evselector_light] = self::postchecked(self::$opt_evselector_light) ? 1 : 0;
2712
  $new_options[self::$opt_stop_mobile_buffer] = self::postchecked(self::$opt_stop_mobile_buffer) ? 1 : 0;
 
 
 
 
 
2713
  $new_options[self::$opt_defaultdims] = self::postchecked(self::$opt_defaultdims) ? 1 : 0;
2714
  $new_options[self::$opt_defaultvol] = self::postchecked(self::$opt_defaultvol) ? 1 : 0;
2715
  $new_options[self::$opt_dohl] = self::postchecked(self::$opt_dohl) ? 1 : 0;
2719
  $new_options[self::$opt_gallery_thumbplay] = self::postchecked(self::$opt_gallery_thumbplay) ? 1 : 0;
2720
  $new_options[self::$opt_gallery_channelsub] = self::postchecked(self::$opt_gallery_channelsub) ? 1 : 0;
2721
  $new_options[self::$opt_gallery_customarrows] = self::postchecked(self::$opt_gallery_customarrows) ? 1 : 0;
 
2722
  $new_options[self::$opt_gallery_collapse_grid] = self::postchecked(self::$opt_gallery_collapse_grid) ? 1 : 0;
2723
 
2724
  $_defaultwidth = '';
2765
  }
2766
  $new_options[self::$opt_vol] = $_vol;
2767
 
2768
+ $_gallery_pagesize = 15;
2769
  try
2770
  {
2771
  $_gallery_pagesize = is_numeric(trim($_POST[self::$opt_gallery_pagesize])) ? intval(trim($_POST[self::$opt_gallery_pagesize])) : $_gallery_pagesize;
2813
  }
2814
  $new_options[self::$opt_gallery_scrolloffset] = $_gallery_scrolloffset;
2815
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2816
  $_gallery_channelsublink = '';
2817
  try
2818
  {
2901
  }
2902
  $new_options[self::$opt_apikey] = $_apikey;
2903
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2904
  $all = $new_options + $all;
2905
 
2906
  update_option(self::$opt_alloptions, $all);
 
 
 
 
 
 
 
 
 
 
 
 
 
2907
  ?>
2908
  <div class="updated"><p><strong><?php _e('Changes saved.'); ?></strong></p></div>
2909
  <?php
2938
  .bold {font-weight: bold;}
2939
  .grey{color: #888888;}
2940
  #goprobox {border-radius: 15px; padding: 10px 15px 15px 15px; margin-top: 15px; border: 3px solid #CCE5EC; position: relative;}
 
2941
  #nonprosupport {border-radius: 15px; padding: 10px 15px 20px 15px; border: 3px solid #ff6655;}
2942
  .pronon {font-weight: bold; color: #f85d00;}
2943
  ul.reglist li {margin: 0px 0px 0px 30px; list-style: disc outside none;}
2990
  input.checkbox[disabled], input[type=radio][disabled] {border: 1px dashed #444444;}
2991
  .pad10 {padding: 10px;}
2992
  #boxdohl {font-weight: bold; padding: 0px 10px; <?php echo $all[self::$opt_dohl] ? '' : 'display: none;' ?>}
 
 
2993
  #boxdefaultvol {font-weight: bold; padding: 0px 10px; <?php echo $all[self::$opt_defaultvol] ? '' : 'display: none;' ?>}
2994
  .vol-output {display: none; width: 30px; color: #008800;}
2995
  .vol-range {background-color: #dddddd; border-radius: 3px; cursor: pointer;}
2996
  input#vol {vertical-align: middle;}
2997
  .vol-seeslider {display: none;}
 
2998
  .indent-option {margin-left: 25px;}
 
2999
  #boxmigratelist { <?php echo $all[self::$opt_migrate] ? '' : 'display: none;' ?>}
3000
  #boxresponsive_all { <?php echo $all[self::$opt_responsive] ? '' : 'display: none;' ?> padding-left: 25px; border-left: 5px solid rgba(100, 100, 100,.1); margin-left: 5px;}
3001
  .apikey-msg {display: inline-block; width: 45%; vertical-align: top;}
3024
  <br>
3025
  <div id="jumphowto"></div>
3026
  <div class="ytnav">
3027
+ <a href="#jumpapikey">API Key</a>
3028
+ <a href="#jumphowto">How To</a>
3029
  <a href="#jumpwiz">Visual Wizard</a>
3030
  <a href="#jumpdefaults">Defaults</a>
3031
  <a href="#jumpcompat">Compatibility</a>
3032
  <a href="#jumpgallery">Galleries</a>
 
3033
  <a href="#jumpoverride">Override Defaults</a>
3034
  <a target="_blank" href="<?php echo self::$epbase . "/dashboard/pro-easy-video-analytics.aspx?ref=protab" ?>" style="border-color: #888888;">Upgrade?</a>
3035
  <a href="#jumpsupport">Support</a>
3038
  <form name="form1" method="post" action="" id="ytform">
3039
  <input type="hidden" name="<?php echo $ytprefs_submitted; ?>" value="Y">
3040
 
3041
+ <div class="jumper" id="jumpapikey"></div>
3042
+ <h3 class="sect">
3043
+ YouTube API Key
3044
+ </h3>
3045
+ <p>
3046
+ Some features (such as galleries, and some wizard features) now require you to create a free YouTube API key from Google.
3047
+ </p>
3048
+ <p>
3049
+ <b class="chktitle">YouTube API Key:</b>
3050
+ <input type="text" name="<?php echo self::$opt_gallery_apikey; ?>" id="<?php echo self::$opt_gallery_apikey; ?>" value="<?php echo trim($all[self::$opt_apikey]); ?>" class="textinput" style="width: 250px;">
3051
+ <a href="https://www.youtube.com/watch?v=LpKDFT40V0U" target="_blank">Click this link &raquo;</a> and follow the video to get your API key. Don't worry, it's an easy process.
3052
+ </p>
3053
+
3054
  <h3 class="sect">
3055
  How to Insert a YouTube Video or Playlist &nbsp; <a class="smallnote" href="#jumpgallery">(For gallery directions, go here &raquo;)</a>
3056
  </h3>
3093
  you can click to directly embed the desired video link to your post without having to copy and paste.
3094
  </p>
3095
  <p>
3096
+ <b class="orange">Even more options are available to PRO users!</b> If you download our PRO version, you can simply click the <a href="<?php echo self::$epbase . '/dashboard/pro-easy-video-analytics.aspx?ref=protab' ?>" target="_blank" class="button-primary cuz">&#9658; Customize</a> button within the wizard to further personalize your embeds without having to enter special codes yourself.
3097
  <br>
3098
  <br>
3099
 
3153
  <input name="<?php echo self::$opt_color; ?>" id="<?php echo self::$opt_color; ?>" <?php checked($all[self::$opt_color], 'red'); ?> type="checkbox" class="checkbox">
3154
  <label for="<?php echo self::$opt_color; ?>"><?php _e('<b class="chktitle">Red Progress Bar:</b> Use the red progress bar (uncheck to use a white progress bar). Note: Using white will disable the modestbranding option.') ?></label>
3155
  </p>
 
 
 
 
 
 
 
 
3156
  <p>
3157
  <input name="<?php echo self::$opt_defaultdims; ?>" id="<?php echo self::$opt_defaultdims; ?>" <?php checked($all[self::$opt_defaultdims], 1); ?> type="checkbox" class="checkbox">
3158
  <span id="boxdefaultdims">
3208
  <strong>Note: YouTube has deprecated this option, and will always autohide the controls.</strong>
3209
  </label>
3210
  </p>
 
 
 
 
 
 
 
3211
  <p>
3212
  <input name="<?php echo self::$opt_defaultvol; ?>" id="<?php echo self::$opt_defaultvol; ?>" <?php checked($all[self::$opt_defaultvol], 1); ?> type="checkbox" class="checkbox">
3213
  <label for="<?php echo self::$opt_defaultvol; ?>">
3228
  <label for="<?php echo self::$opt_dohl; ?>"><b class="chktitle">Player Localization / Internationalization: </b>
3229
  Automatically detect your site's default language (using get_locale) and set your YouTube embeds interface language so that it matches. Specifically, this will set the player's tooltips and caption track if your language is natively supported by YouTube. We suggest checking this if English is not your site's default language. <a href="<?php echo self::$epbase ?>/youtube-iso-639-1-language-codes.aspx" target="_blank">See here for more details &raquo;</a></label>
3230
  </p>
 
 
 
 
 
 
 
 
3231
  <p>
3232
  <input name="<?php echo self::$opt_playlistorder; ?>" id="<?php echo self::$opt_playlistorder; ?>" <?php checked($all[self::$opt_playlistorder], 1); ?> type="checkbox" class="checkbox">
3233
  <label for="<?php echo self::$opt_playlistorder; ?>">
3246
  wp_kses_post($all[self::$opt_not_live_content]), self::$opt_not_live_content, array('textarea_rows' => 5)
3247
  );
3248
  ?>
 
 
3249
  </p>
3250
 
3251
 
3303
  <input name="<?php echo self::$opt_stop_mobile_buffer; ?>" id="<?php echo self::$opt_stop_mobile_buffer; ?>" <?php checked($all[self::$opt_stop_mobile_buffer], 1); ?> type="checkbox" class="checkbox">
3304
  <label for="<?php echo self::$opt_stop_mobile_buffer; ?>">
3305
  <b class="chktitle">Mobile Autoplay Problems: </b>
3306
+ Autoplay works for desktop, but mobile devices don't allow autoplay due to network carrier data charges. For mobile devices, this option may help the player to properly display the video for the visitor to click on.
3307
  </label>
3308
  </p>
3309
  <p>
3321
  <p>
3322
  <a target="_blank" href="<?php echo self::$epbase ?>/responsive-youtube-playlist-channel-gallery-for-wordpress.aspx">You can now make playlist embeds (and channel-playlist embeds) have a gallery layout &raquo;</a>. <strong>First, you must obtain your YouTube API key</strong>.
3323
  Don't worry, it's an easy process. Just <a href="https://www.youtube.com/watch?v=LpKDFT40V0U" target="_blank">click this link &raquo;</a> and follow the video on that page to get your API key. Since Google updates their API Key generation directions frequently, follow the general steps shown in the video.
3324
+ Then paste your API key in the "YouTube API Key" box at the top of this screen, and click the "Save Changes" button.
3325
  </p>
3326
 
3327
  <p>
3328
  Below are the settings for galleries:
3329
  </p>
3330
  <div class="ytindent chx">
3331
+
 
 
 
 
3332
  <p>
3333
  <label for="<?php echo self::$opt_gallery_pagesize; ?>"><b class="chktitle">Gallery Page Size:</b></label>
3334
  <select name="<?php echo self::$opt_gallery_pagesize; ?>" id="<?php echo self::$opt_gallery_pagesize; ?>" style="width: 60px;">
3395
  <b class="chktitle">Show Subscribe Button: </b> Are you the channel owner for all your galleries? Check this box to add a "Subscribe" button to all your galleries as shown below. This might help you convert your site's visitors to YouTube subscribers of your channel.
3396
  </label>
3397
  <span id="boxchannelsub">
3398
+ Channel URL: <input type="text" placeholder="https://www.youtube.com/user/YourChannel" name="<?php echo self::$opt_gallery_channelsublink; ?>" id="<?php echo self::$opt_gallery_channelsublink; ?>" value="<?php echo esc_url(trim($all[self::$opt_gallery_channelsublink])); ?>" class="textinput" style="width: 200px;"> &nbsp;
3399
  Button text: <input type="text" name="<?php echo self::$opt_gallery_channelsubtext; ?>" id="<?php echo self::$opt_gallery_channelsubtext; ?>" value="<?php echo esc_attr(trim($all[self::$opt_gallery_channelsubtext])); ?>" class="textinput" style="width: 200px;">
3400
  </span>
3401
  </p>
3429
 
3430
  <div class="jumper" id="jumpprosettings"></div>
3431
  <div class="upgchecks">
3432
+ <h3 class="sect">Want the PRO Features?</h3>
3433
+ <p class="orange">Below are descriptions for some of our PRO features for enhanced SEO and performance, once you purchase and install our separate PRO plugin (the PRO plugin works for all your past embed links).</p>
3434
+ <p>
3435
+ <img class="ssaltgallery" src="<?php echo plugins_url('images/ssaltgalleryall.jpg', __FILE__) ?>" />
3436
+ <select disabled>
3437
+ <option value="">Gallery Style</option>
3438
+ </select>
3439
+ <label>
3440
+ <b class="chktitle">Alternate Gallery Styling: </b> <span class="pronon">(PRO Users)</span>
3441
+ Switch from the grid style of the FREE version to another gallery style. Right now, we provide a vertical (single column) and horizontal (single row) list style as alternatives to the grid, with more designs coming. These current alternatives were inspired by the standard YouTube playlist player's "table of contents," except our gallery's video lists are always visible and shown under the playing video.
3442
+ <a target="_blank" href="<?php echo self::$epbase ?>/responsive-youtube-playlist-channel-gallery-for-wordpress.aspx">Read more here &raquo;</a>
3443
+ </label>
3444
+ </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3445
 
3446
+ <div class="hr"></div>
3447
+ <p>
3448
+ <img class="ssaltgallery" src="<?php echo plugins_url('images/ssverticallayout.png', __FILE__) ?>" />
3449
+ <input disabled type="checkbox" class="checkbox">
3450
+ <label>
3451
+ <b class="chktitle">Show Gallery Descriptions (for vertical list styling): </b> <span class="pronon">(PRO Users)</span>
3452
+ For the vertical list layout, this option will show full video descriptions (taken directly from YouTube.com) with each thumbnail. Note: these descriptions only apply the vertical list layout; other layouts don't have enough room.
3453
+ </label>
3454
+ </p>
3455
+ <div class="hr"></div>
3456
+ <p>
3457
+ <img class="ssaltgallery" src="<?php echo plugins_url('images/ssaltgallerycircles.jpg', __FILE__) ?>" />
3458
+ <select disabled>
3459
+ <option value="">Select Thumbnail Shape</option>
3460
+ </select>
3461
+ <label>
3462
+ <b class="chktitle">Gallery Thumbnail Shape: </b> <span class="pronon">(PRO Users)</span>
3463
+ Differentiate your gallery by showing different thumbnail shapes. We currently offer rectangle and circle shapes.
3464
+ <a target="_blank" href="<?php echo self::$epbase ?>/responsive-youtube-playlist-channel-gallery-for-wordpress.aspx">Read more here &raquo;</a>
3465
+ </label>
3466
+ </p>
3467
 
3468
+ <div class="hr"></div>
3469
+ <p>
3470
+ <img class="sspopupplayer" src="<?php echo plugins_url('images/sspopupplayer.jpg', __FILE__) ?>" />
3471
+ <label>
3472
+ <b class="chktitle">Gallery Video Display Mode: </b> <sup class="orange">NEW</sup> <span class="pronon">(PRO Users)</span>
3473
+ Display your gallery videos simply above the thumbnails (default), or as a popup lightbox.
3474
+ </label>
3475
+ <br>
3476
+ <input type="radio" disabled> Default &nbsp; <input type="radio" disabled> Popup lightbox
3477
+ </p>
 
 
 
 
 
 
3478
 
3479
+ <div class="hr"></div>
3480
+ <p>
3481
+ <input disabled type="checkbox" class="checkbox">
3482
+ <label>
3483
+ <b class="chktitle">Faster Page Loads (Caching): </b> <span class="pronon">(PRO Users)</span>
3484
+ Use embed caching to speed up your page loads. By default, WordPress needs to request information from YouTube.com's servers for every video you embed, every time a page is loaded. These data requests can add time to your total page load time. Turn on this feature to cache that data (instead of having to request for the same information every time you load a page). This should then make your pages that have videos load faster. It's been noted that even small speed ups in page load can help increase visitor engagement, retention, and conversions. Caching also makes galleries run faster.
3485
+ </label>
3486
+ <div class="indent-option">
3487
+ <label>
3488
+ <b class="chktitle">Cache Lifetime (hours): </b>
3489
+ <input disabled value="24" type="number">
3490
+ Tip: If your pages rarely change, you may wish to set this to a much higher value than 24 hours.
3491
+ </label>
3492
+ </div>
3493
+ </p>
3494
+ <div class="hr"></div>
3495
 
3496
+ <p>
3497
+ <input disabled type="checkbox" class="checkbox">
3498
+ <label>
3499
+ <b class="chktitle">Video SEO Tags:</b> <span class="pronon">(PRO Users)</span> Update your YouTube embeds with Google, Bing, and Yahoo friendly schema markup for videos.
3500
+ </label>
3501
+ </p>
3502
+ <div class="hr"></div>
3503
+ <p>
3504
+ <input disabled type="checkbox" class="checkbox">
3505
+ <label>
3506
+ <b class="chktitle">Special Lazy-Loading Effects:</b> <span class="pronon">(PRO Users)</span>
3507
+ Add eye-catching special effects that will make your YouTube embeds bounce, flip, pulse, or slide as they lazy load on the screen. Check this box to select your desired effect. <a target="_blank" href="<?php echo self::$epbase ?>/add-special-effects-to-youtube-embeds-in-wordpress.aspx">Read more here &raquo;</a>
3508
+ </label>
3509
+ </p>
3510
+ <div class="hr"></div>
3511
+ <p>
3512
+ <input disabled type="checkbox" class="checkbox">
3513
+ <label>
3514
+ <b class="chktitle">Facebook Open Graph Markup:</b> <span class="pronon">(PRO Users)</span> Include Facebook Open Graph markup with the videos you embed with this plugin. We follow the guidelines for videos as described here: <a href="https://developers.facebook.com/docs/sharing/webmasters#media" target="_blank">https://developers.facebook.com/docs/sharing/webmasters#media</a>
3515
+ </label>
3516
+ </p>
3517
+ <div class="hr"></div>
3518
+ <p>
3519
+ <img class="ssfb" src="<?php echo plugins_url('images/youtube_thumbnail_sample.jpg', __FILE__) ?>" />
3520
+ <input disabled type="checkbox" class="checkbox">
3521
+ <label>
3522
+ <b class="chktitle">Featured Thumbnail Images:</b> <span class="pronon">(PRO Users)</span>
3523
+ Automatically grab the thumbnail image of the first video embedded in each post or page, and use it as the featured image.
3524
+ All you have to do is click Update on a post or page and the plugin does the rest!
3525
+ (Example shown on the right) <a target="_blank" href="<?php echo self::$epbase ?>/add-youtube-video-thumbnails-featured-image-wordpress.aspx">Read more here &raquo;</a>
3526
+ </label>
3527
+ </p>
3528
+ <div class="hr"></div>
3529
+ <p>
3530
+ <a href="<?php echo self::$epbase ?>/dashboard/pro-easy-video-analytics.aspx" target="_blank">Purchase and download the PRO plugin to get the above and several other features &raquo;</a>
3531
+ </p>
 
 
 
3532
  <div class="clearboth"></div>
3533
  </div>
 
3534
 
3535
  <hr>
3536
 
 
3537
  <div class="jumper" id="jumpoverride"></div>
3538
 
3539
  <h3 class="sect">
3554
  _e("<li><strong>showinfo</strong> - Set this to 0 to hide the video title and other info (or 1 to show it). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&showinfo=0</strong></em> </li>");
3555
  _e("<li><strong>theme</strong> - Set this to 'light' to make the player have the light-colored theme (or 'dark' for the dark theme). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&theme=light</strong></em> </li>");
3556
  _e("<li><strong>color</strong> - Set this to 'white' to make the player have a white progress bar (or 'red' for a red progress bar). Note: Using white will disable the modestbranding option. <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&color=white</strong></em> </li>");
 
3557
  _e("<li><strong>controls</strong> - Set this to 0 to completely hide the video controls (or 2 to show it). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&controls=0</strong></em> </li>");
3558
  _e("<li><strong>autohide</strong> - Set this to 1 to slide away the control bar after the video starts playing. It will automatically slide back in again if you mouse over the video. (Set to 2 to always show it). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&autohide=1</strong></em> </li>");
3559
  _e("<li><strong>playsinline</strong> - Set this to 1 to allow videos play inline with the page on iOS browsers. (Set to 0 to have iOS launch videos in fullscreen instead). <em>Example: http://www.youtube.com/watch?v=quwebVjAEJA<strong>&playsinline=1</strong></em> </li>");
3570
  </form>
3571
  <div class="jumper" id="jumppro"></div>
3572
  <div id="goprobox">
3573
+ <h3 class="sect">
3574
+ <a href="<?php echo self::$epbase ?>/dashboard/pro-easy-video-analytics.aspx" class="button-primary" target="_blank">Want to go PRO? (Low Prices) &raquo;</a> &nbsp;
3575
+ PRO users help keep new features coming and our coffee cups filled. Go PRO and get these perks in return:
3576
+ </h3>
3577
+ <div class="procol">
3578
+ <ul class="gopro">
3579
+ <li>
3580
+ <img src="<?php echo plugins_url('images/iconcache.png', __FILE__) ?>">
3581
+ Faster Page Loads (Caching)
3582
+ </li>
3583
+ <li>
3584
+ <img src="<?php echo plugins_url('images/iconwizard.png', __FILE__) ?>">
3585
+ Full Visual Embedding Wizard (Easily customize embeds without memorizing codes)
3586
+ </li>
3587
+ <li>
3588
+ <img src="<?php echo plugins_url('images/icongallery.png', __FILE__) ?>">
3589
+ Alternate Gallery Styling (popup/lightbox player, slider and list layouts, and more)
3590
+ </li>
3591
+ <li>
3592
+ <img src="<?php echo plugins_url('images/iconfx.png', __FILE__) ?>">
3593
+ Add eye-catching special effects as your videos load
3594
+ </li>
3595
+ <li>
3596
+ <img src="<?php echo plugins_url('images/deletechecker.png', __FILE__) ?>">
3597
+ Deleted Video Checker (alerts you if YouTube deletes videos you embedded)
3598
+ </li>
3599
+ <li>
3600
+ <img src="<?php echo plugins_url('images/globe.png', __FILE__) ?>">
3601
+ Alerts when visitors from different countries are blocked from viewing your embeds
3602
+ </li>
3603
+ <li>
3604
+ <img src="<?php echo plugins_url('images/mobilecompat.png', __FILE__) ?>">
3605
+ Check if your embeds have restrictions that can block mobile viewing
3606
+ </li>
3607
+
3608
+ </ul>
3609
+ </div>
3610
+ <div class="procol" style="max-width: 465px;">
3611
+ <ul class="gopro">
3612
+ <li>
3613
+ <img src="<?php echo plugins_url('images/videothumbs.png', __FILE__) ?>">
3614
+ Featured thumbnail images (just click 'Update')
3615
+ </li>
3616
+ <li>
3617
+ <img src="<?php echo plugins_url('images/prioritysupport.png', __FILE__) ?>">
3618
+ Priority support (Puts your request in front)
3619
+ </li>
3620
+ <li>
3621
+ <img src="<?php echo plugins_url('images/bulletgraph45.png', __FILE__) ?>">
3622
+ User-friendly video analytics dashboard
3623
+ </li>
3624
+
3625
+ <li id="fbstuff">
3626
+ <img src="<?php echo plugins_url('images/iconfb.png', __FILE__) ?>">
3627
+ Automatic Open Graph tagging for Facebook
3628
+ </li>
3629
+ <!-- <li>
3630
+ <img src="<?php echo plugins_url('images/iconythealth.png', __FILE__) ?>">
3631
+ Instant YouTube embed diagnostic reports
3632
+ </li> -->
3633
+ <li>
3634
+ <img src="<?php echo plugins_url('images/vseo.png', __FILE__) ?>">
3635
+ Automatic tagging for video SEO (will even work for your old embeds)
3636
+ </li>
3637
+ <li>
3638
+ <img src="<?php echo plugins_url('images/iconvolume.png', __FILE__) ?>">
3639
+ Fine-Grained Volume Initialization Individual video volume settings in the wizard
3640
+ </li>
3641
+
3642
+ <li>
3643
+ <img src="<?php echo plugins_url('images/infinity.png', __FILE__) ?>">
3644
+ Unlimited PRO upgrades and downloads
3645
+ </li>
3646
+ <!-- <li>
3647
+ <img src="<?php echo plugins_url('images/questionsale.png', __FILE__) ?>">
3648
+ What else? You tell us!
3649
+ </li> -->
3650
+ </ul>
3651
+ </div>
3652
+ <div style="clear: both;"></div>
3653
+ <br>
3654
+ <a href="<?php echo self::$epbase ?>/dashboard/pro-easy-video-analytics.aspx" class="button-primary brightpro" target="_blank">Click here to go PRO &raquo;</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3655
  </div>
3656
+
3657
  <div class="jumper" id="jumpsupport"></div>
3658
  <div id="nonprosupport">
3659
  <h3 class="bold">Support tips for all users (Free and PRO)</h3>
3666
  <code>[embedyt]http://www.youtube.com/watch?v=ABCDEF&width=400&height=250[/embedyt] [embedyt]http://www.youtube.com/watch?v=GHIJK&width=400&height=250[/embedyt]</code>
3667
  <br> TIP: As shown above, decrease the size of each video so that they fit together on the same line (See the "How To Override Defaults" section for height and width instructions)
3668
  </li>
3669
+ <li>If you upload a new video to a playlist or channel and that video is not yet showing up on a gallery you embedded, you should clear/reset any caching plugins you have. This will force your site to retrieve the freshest version of your playlist and/or channel video listing. If you don't reset you cache, then you'll have to wait until cache lifetime expires.</li>
3670
  <li>Finally, there's a slight chance your custom theme is the issue, if you have one. To know for sure, we suggest temporarily switching to one of the default WordPress themes (e.g., "Twenty Fourteen") just to see if your video does appear. If it suddenly works, then your custom theme is the issue. You can switch back when done testing.</li>
3671
  <li>If your videos always appear full size, try turning off "Responsive video sizing."</li>
3672
+ <li>If none of the above work, you can contact us here if you still have issues: ext@embedplus.com. We'll try to respond within a week.</li>
3673
  </ul>
3674
  <p>
3675
  Deactivating the No Cookies option has also been proven to solve player errors.
3679
  </p>
3680
  </div>
3681
  <br>
 
 
 
 
 
 
 
 
 
3682
 
 
 
 
 
 
 
 
 
 
3683
  <div class="ytnav">
3684
+ <a href="#jumpapikey">API Key</a>
3685
+ <a href="#jumphowto">How To</a>
3686
  <a href="#jumpwiz">Visual Wizard</a>
3687
  <a href="#jumpdefaults">Defaults</a>
3688
  <a href="#jumpcompat">Compatibility</a>
3689
  <a href="#jumpgallery">Galleries</a>
 
3690
  <a href="#jumpoverride">Override Defaults</a>
3691
  <a target="_blank" href="<?php echo self::$epbase . "/dashboard/pro-easy-video-analytics.aspx?ref=protab" ?>" style="border-color: #888888;">Upgrade?</a>
3692
  <a href="#jumpsupport">Support</a>
3745
  jQuery(this).css("background-color", "#ffcccc").css("outline", "2px solid #000000");
3746
  }
3747
  });
 
3748
  if (emptyStacks.length)
3749
  {
3750
  alertmessage += "Please enter a valid number for the gallery stacking screen width.";
3756
 
3757
  if (jQuery("#<?php echo self::$opt_defaultvol; ?>").is(":checked"))
3758
  {
3759
+ if (!(jQuery.isNumeric(jQuery.trim(jQuery("#<?php echo self::$opt_vol; ?>").val()))))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3760
  {
3761
+ alertmessage += "Please enter a number between 0 and 100 for the default volume, or uncheck the option.";
3762
+ jQuery("#boxdefaultvol input").css("background-color", "#ffcccc").css("border", "2px solid #000000");
3763
  valid = false;
3764
  }
3765
  }
3766
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3767
  if (!valid)
3768
  {
3769
  alert(alertmessage);
3771
  return valid;
3772
  }
3773
 
 
 
3774
 
3775
  jQuery(document).ready(function ($) {
3776
  jQuery('#<?php echo self::$opt_defaultdims; ?>').change(function ()
3785
  }
3786
 
3787
  });
 
3788
  jQuery('#<?php echo self::$opt_gallery_customarrows; ?>').change(function ()
3789
  {
3790
  if (jQuery(this).is(":checked"))
3797
  }
3798
 
3799
  });
 
3800
  jQuery('#<?php echo self::$opt_gallery_collapse_grid; ?>').change(function ()
3801
  {
3802
  if (jQuery(this).is(":checked"))
3808
  jQuery("#box_collapse_grid").hide(500);
3809
  }
3810
  });
 
3811
  jQuery('#<?php echo self::$opt_gallery_channelsub; ?>').change(function ()
3812
  {
3813
  if (jQuery(this).is(":checked"))
3820
  }
3821
 
3822
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3823
  jQuery('#<?php echo self::$opt_responsive; ?>').change(function ()
3824
  {
3825
  if (jQuery(this).is(":checked"))
3831
  jQuery("#boxresponsive_all").hide(500);
3832
  }
3833
  });
 
 
 
3834
  jQuery('#<?php echo self::$opt_migrate; ?>').change(function ()
3835
  {
3836
  if (jQuery(this).is(":checked"))
3842
  jQuery("#boxmigratelist").hide(500);
3843
  }
3844
  });
 
 
 
3845
  jQuery('#<?php echo self::$opt_nocookie; ?>').change(function ()
3846
  {
3847
  if (jQuery(this).is(":checked"))
3854
  }
3855
 
3856
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3857
  jQuery('#<?php echo self::$opt_defaultvol; ?>').change(function ()
3858
  {
3859
  if (jQuery(this).is(":checked"))
3866
  }
3867
 
3868
  });
 
3869
  var rangedetect = document.createElement("input");
3870
  rangedetect.setAttribute("type", "range");
3871
  var canrange = rangedetect.type !== "text";
3884
  $("input#vol").width(40);
3885
  }
3886
 
3887
+ });</script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3888
  <?php
3889
  if (function_exists('add_thickbox'))
3890
  {
3907
  setTimeout(function () {
3908
  jQuery('input.ytprefs-submit').val('Save Changes');
3909
  }, 3000);
3910
+ });</script>
 
 
3911
  <?php
3912
  }
3913
  ?>
3953
 
3954
  wp_add_inline_style('__EPYT__style', $custom_css);
3955
 
 
 
 
 
 
 
 
3956
  wp_enqueue_script('__ytprefs__', plugins_url('scripts/ytprefs' . self::$min . '.js', __FILE__), array('jquery'));
3957
 
3958
  if (self::$alloptions[self::$opt_old_script_method] != 1)
3969
  'stopMobileBuffer' => self::$alloptions[self::$opt_stop_mobile_buffer] == '1' ? true : false
3970
  );
3971
 
 
 
 
 
3972
  wp_localize_script('__ytprefs__', '_EPYT_', $my_script_vars);
3973
  }
3974
 
3975
  ////////////////////// cloudflare accomodation
3976
  //add_filter('script_loader_tag', 'YouTubePrefs::set_cfasync', 10, 3);
 
 
 
 
 
 
3977
  }
3978
  }
3979
 
4019
  return $responsiveselector;
4020
  }
4021
 
4022
+ public static function admin_enqueue_scripts($hook)
4023
+ {
4024
+ wp_enqueue_style('embedplusyoutube', plugins_url() . '/youtube-embed-plus/scripts/embedplus_mce' . self::$min . '.css');
4025
+ add_action('wp_print_scripts', array('YouTubePrefs', 'output_scriptvars'));
4026
+ wp_enqueue_script('__ytprefs_admin__', plugins_url('scripts/ytprefs-admin' . self::$min . '.js', __FILE__), array('jquery'));
4027
+
4028
+ if ((get_bloginfo('version') >= '3.3') && YouTubePrefs::custom_admin_pointers_check())
4029
+ {
4030
+ add_action('admin_print_footer_scripts', array('YouTubePrefs', 'custom_admin_pointers_footer'));
4031
+ wp_enqueue_script('wp-pointer');
4032
+ wp_enqueue_style('wp-pointer');
4033
+ }
4034
+
4035
+ if (YouTubePrefs::$alloptions['glance'] == 1)
4036
+ {
4037
+ add_action('admin_print_footer_scripts', 'YouTubePrefs::glance_script');
4038
+ }
4039
+
4040
+ if ($hook == self::$wizard_hook)
4041
+ {
4042
+ wp_enqueue_style('__ytprefs_admin__wizard_ui', plugins_url() . '/youtube-embed-plus/styles/jquery-ui' . self::$min . '.css');
4043
+ wp_enqueue_style('__ytprefs_admin__wizard', plugins_url() . '/youtube-embed-plus/styles/ytprefs-wizard' . self::$min . '.css');
4044
+ wp_enqueue_script('__ytprefs_admin__wizard_script', plugins_url('scripts/ytprefs-wizard' . self::$min . '.js', __FILE__), array('jquery-ui-accordion', 'jquery-ui-tabs'));
4045
+ }
4046
+ }
4047
+
4048
  public static function get_blogwidth()
4049
  {
4050
  $blogwidth = null;
4072
 
4073
  }
4074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4075
  $youtubeplgplus = new YouTubePrefs();
4076
 
4077
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4078
 
4079
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4080