PageSourceSearch

https://www.technicalcareershs.com/js/youtube-video-player.jquery.min.js

js technicalcareershs.com collected 2026-10-08 12:08:00 UTC 55,949 bytes, 693 lines download raw bytes

1/*!
2 *
3 * Modern HTML5 Responsive Youtube Playlist Player
4 * For jQuery 1.9 and above
5 *
6 * @author  Rik de Vos
7 * @link    http://rikdevos.com/
8 * @version 1.11.0
9 *
10 * This is not free software. Visit http://codecanyon.net/item/modern-html5-responsive-youtube-playlist-player/8619272?ref=RikdeVos to purchase a license
11 *
12 */
13function captionFunction(e) {
14    var press = jQuery.Event("keypress");
15    press.c = false;
16    press.which = 67;
17    $('#playlist_yt').trigger(press);
18}
19
20function onYouTubeIframeAPIReady() {
21    
22    var e = setInterval(function() {
23        
24        window.localStorage.getItem("yesp-cookies-accept") && (jQuery("body").addClass("yesp-youtube-iframe-ready"), clearInterval(e))
25    }, 100)
26}! function(p) {
27    p.youtube_video = function(e, o) {
28        var u = this;
29        u.$el = p(e), u.el = e, u.$el.data("youtube_video", u), u.init = function() {
30            if (u.options = p.extend({}, p.youtube_video.defaultOptions, o), u.options_copy = p.extend({}, p.youtube_video.defaultOptions, o), u.api_key = u.options.api_key, u.$el.addClass("yesp"), u.$logo = [], (u.type = !1) !== u.options.playlist) u.id = "yt_player_" + u.options.playlist.replace(/[^a-z0-9]/gi, ""), u.type = "playlist";
31            else if (!1 !== u.options.channel) u.id = "yt_player_" + u.options.channel.replace(/[^a-z0-9]/gi, ""), u.type = "channel";
32            else if (!1 !== u.options.user) u.id = "yt_player_" + u.options.user.replace(/[^a-z0-9]/gi, ""), u.type = "user";
33            else {
34                if (!1 === u.options.videos) return void u.display_error("No playlist/channel/user/videos entered. Set at least 1.", !0);
35                "string" == typeof u.options.videos && (u.options.videos = [u.options.videos]), u.id = "yt_player_" + u.options.videos[0].replace(/[^a-z0-9]/gi, ""), u.type = "videos"
36            }
37            void 0 !== u.options.player_id && !1 !== u.options.player_id && (u.id = u.options.player_id), void 0 !== u.$el.attr("id") && !1 !== u.$el.attr("id") ? u.id = u.$el.attr("id") : u.$el.attr("id", u.id), 50 < u.options.max_results && (u.options.max_results = 50), u.$controls = [], u.$title = null, u.$container = u.$el.find(".yesp-container"), u.youtube = null, u.playlist_items = [], u.playlist_count = 0, u.info = {
38                width: 0,
39                height: 0,
40                duration: 0,
41                current_time: 0,
42                previous_time: 0,
43                volume: u.options.volume,
44                time_drag: !1,
45                volume_drag: !1,
46                ie: u.detect_ie(),
47                ie_previous_time: 0,
48                touch: u.detect_touch(),
49                youtube_loaded: !1,
50                ios: !!navigator.userAgent.match(/(iPad|iPhone|iPod)/g),
51                mobile: !!navigator.userAgent.match(/(Android|webOS|iPad|iPhone|iPod|BlackBerry|Windows Phone)/g),
52                ipad: !!navigator.userAgent.match(/(iPad)/g),
53                state: !1,
54                index: 0,
55                hover: !0,
56                fullscreen: !1,
57                idle_time: 0,
58                idle_controls_hidden: !1,
59                playlist_shown: !0,
60                horizontal_playlist_shown: !0,
61                playlist_width: 200,
62                playlist_animating: !1,
63                first_play: !1,
64                current_video_url: "",
65                next_page_token: !1,
66                playlist_i: 0,
67                alternative_api_ready_check: !1,
68                youtube_logo_timer: !1,
69                show_cookie_accept: !1,
70                cookies_accepted: !1
71            },u.info.ios && (u.$el.addClass("yesp-ios"), u.options.volume_control = !1, u.options_copy.volume_control = !1), u.info.mobile && (u.options.show_controls_on_load = !0, u.options.show_controls_on_pause = !0, u.options.show_controls_on_play = !0, u.$el.addClass("yesp-mobile")), u.info.ie && u.$el.addClass("yesp-ie"), u.$el[0].requestFullScreen || u.$el[0].mozRequestFullScreen || u.$el[0].webkitRequestFullScreen || (u.options.fullscreen_control = !1), u.create_player_element(), u.init_playlist(), u.create_controls(), u.create_title(), u.create_overlays(), u.show_controls(), u.bind_controls(), p(window).on("resize", u.resize), u.resize(), u.init_time_slider(), u.init_volume_slider(), u.set_style(), !1 !== u.options.width && (u.$el.css("width", u.options.width), u.resize()), u.options.show_controls_on_load || u.hide_controls(), "horizontal" === u.options.playlist_type ? (u.hide_playlist(!0), u.options.show_playlist ? u.show_horizontal_playlist() : u.hide_horizontal_playlist()) : (u.hide_horizontal_playlist(), u.options.show_playlist || u.hide_playlist(!0)), document.addEventListener("fullscreenchange", function() {
72                document.fullscreen || u.exit_fullscreen()
73            }, !1), document.addEventListener("mozfullscreenchange", function() {
74                document.mozFullScreen || u.exit_fullscreen()
75            }, !1), document.addEventListener("webkitfullscreenchange", function() {
76                document.webkitIsFullScreen || u.exit_fullscreen()
77            }, !1), document.addEventListener("msfullscreenchange", function() {
78                document.msFullscreenElement || u.exit_fullscreen()
79            }, !1), setInterval(function() {
80                u.info.mobile || (u.info.idle_time += 500, u.info.fullscreen && 2e3 < u.info.idle_time && (u.info.idle_controls_hidden = !0, u.hide_controls(!0)))
81            }, 500), u.$el.mousemove(function(e) {
82                u.info.idle_time = 0, u.info.idle_controls_hidden && u.info.fullscreen && (u.info.idle_controls_hidden = !1, u.show_controls())
83            }), u.$el.keypress(function(e) {
84                u.info.idle_time = 0, u.info.idle_controls_hidden && u.info.fullscreen && (u.info.idle_controls_hidden = !1, u.show_controls())
85            }), u.info.touch && u.$el.addClass("yesp-touch"), u.options.require_cookie_accept ? window.localStorage.getItem("yesp-cookies-accept") || (u.$el.find(".yesp-cookie-alert").show(), u.info.show_cookie_accept = !0) : window.localStorage.setItem("yesp-cookies-accept", !0), setTimeout(function() {
86                var e = setInterval(function() {
87                    window.localStorage.getItem("yesp-cookies-accept") && (u.info.alternative_api_ready_check = !0, clearInterval(e))
88                }, 100)
89            }, 1e3)
90        }, u.display_error = function(e, o) {
91            0 === u.$el.find(".yesp-error").html('<i class="yesp-icon yesp-icon-warning"></i>' + e).slideDown().length && alert(e), !0 === o && (u.$el.find(".yesp-video").remove(), u.$el.find(".yesp-container, .yesp-hp").css("background-image", "none"))
92        }, u.remove_next_page = function() {
93            u.info.next_page_token = !1, u.$el.find(".yesp-next-page").remove(), u.$el.find(".yesp-hp-next-page").remove(), u.$el.find(".yesp-hp-videos").css("width", 160 * u.playlist_count)
94
95        }, u.get_playlist_next = function() {
96            !1 !== u.info.next_page_token ? (u.$el.find(".yesp-next-page").html('<i class="yesp-icon yesp-icon-spinner yesp-icon-spin"></i>'), u.get_playlist(u.info.next_page_token, u.options.playlist)) : u.remove_next_page(
96)
97        }, u.get_playlist = function(e, o) {
98            through_pagination = void 0 !== e && !1 !== e || (e = !1);
99
100            var t = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,status&maxResults=" + u.options.max_results + "&playlistId=" + o + "&key=" + u.options.api_key;
101            //var t = localStorage['playlist_youtube_'+sID];
102            var currVideoID = u.id;
103            var vIdArray = currVideoID.split("_");
104            var vID = vIdArray[1];
105            if (videoObj[vID] == '') {
106
107                !0 === through_pagination && (t += "&pageToken=" + e), p.getJSON(t, function(e) {
108                    if (void 0 !== e.items) {
109                        0 === e.items.length && u.display_error("This playlist is empty.", !0), u.options.shuffle && (e.items = u.shuffle_array(e.items));
110
111                        var o = u.create_playlist(through_pagination, e.items, e.items.length);
112                        $.ajax({
113                            url: "/includes/ajax/youtube_cache.php",
114                            type: "POST",
115                            data: {
116                                videoData: JSON.stringify(e),
117                                itemID: vIdArray[1]
118                            },
119
120                            success: function(result) {
121
122                            }
123                        });
124
125                        u.playlist_items = u.playlist_items.concat(o.items), u.playlist_count += o.count, !0 === u.options.pagination ? void 0 === e.nextPageToken ? u.remove_next_page() : (u.info.next_page_token = e.nextPageToken, u.$el.find(".yesp-next-page").html('<i class="yesp-icon yesp-icon-plus"></i>' + u.options.load_more_text).show()) : u.info.next_page_token = !1, u.playlist_count < 2 && !through_pagination && !1 === u.info.next_page_token && (u.hide_playlist(!0), u.options.show_playlist =
126                        !1, u.options.playlist_toggle_control = !1, u.$controls.playlist_toggle.hide(), u.options.fwd_bck_control = !1, u.options_copy.fwd_bck_control = !1, u.$controls.forward.hide(), u.$controls.backward.hide(), u.resize(), 0 === u.playlist_count && u.display_error("This playlist is empty.", !0))
127                    } else u.display_error("An error occured while retrieving the playlist.", !0)
128                    // cache here
129
130                }).fail(function(e) {
131                    var o = "An error occured while retrieving the playlist.";
132                    if (void 0 !== e.responseText) {
133                        var t = p.parseJSON(e.responseText);
134                        o = "404" == t.error.code ? "The playlist was not found." : "403" == t.error.code ? t.error.message : "400" == t.error.code ? "The API key you have entered is invalid." : "An error occured while retrieving the playlist.<br /><em>" + t.error.message + "</em>"
135                    }
136                    u.display_error(o, !0), u.hide_playlist(!0)
137                })
138            } else {
139                if (void 0 !== videoObj[vID].items) {
140
141                    0 === videoObj[vID].items.length && u.display_error("This playlist is empty.", !0), u.options.shuffle && (videoObj[vID].items = u.shuffle_array(videoObj[vID].items));
142                    var o = u.create_playlist(through_pagination, videoObj[vID].items, videoObj[vID].items.length);
143                    u.playlist_items = u.playlist_items.concat(o.items),
144                    u.playlist_count += o.count,
145                    !0 === u.options.pagination ? void 0 === videoObj[vID].nextPageToken ? u.remove_next_page() : (u.info.next_page_token = videoObj[vID].nextPageToken,
146                    u.$el.find(".yesp-next-page").html('<i class="yesp-icon yesp-icon-plus"></i>' + u.options.load_more_text).show()) : u.info.next_page_token = !1,
147                    u.playlist_count < 2 && !through_pagination && !1 === u.info.next_page_token && (u.hide_playlist(!0),
148                    u.options.show_playlist =!1,
149                    u.options.playlist_toggle_control = !1, u.$controls.playlist_toggle.hide(),
150                    u.options.fwd_bck_control = !1, u.options_copy.fwd_bck_control = !1,
151                    u.$controls.forward.hide(),
152                    u.$controls.backward.hide(),
153                    u.resize(),
154                    0 === u.playlist_count && u.display_error("This playlist is empty.", !0))
155                } else u.display_error("An error occured while retrieving the playlistdsddd.", !0)
156            }
157        }, u.get_channel = function(e, o) {
158            var currUserVideoID = u.id;
159            var vUserIdArray = currUserVideoID.split("_");
160            var userVidID = vUserIdArray[1];
161            var userdecompstuff = userVideoObj[userVidID];
162            if (userVideoObj[userVidID] == '') {
163
164                var channelBase = "https://www.googleapis.com/youtube/v3/ch
164annels?part=contentDetails&maxResults=" + u.options.max_results + "&key=" + u.api_key;
165                var handleChannelResponse = function(e) {
166                    try {
167                        if (void 0 !== typeof e.items && 1 == e.items.length) {
168                            var setUserInfo = e;
169                            var o = e.items[0].contentDetails.relatedPlaylists.uploads;
170                            u.options.playlist = o, u.get_playlist(!1, u.options.playlist)
171                            $.ajax({
172                                url: "/includes/ajax/youtube_cache.php",
173                                type: "POST",
174                                data: {
175                                    videoData: JSON.stringify(setUserInfo),
176                                    itemID: vUserIdArray[1],
177                                    type: 'user'
178                                },
179
180                                success: function(result) {
181
182                                }
183                            });
184                            return !0
185                        }
186                    }
187                    catch(error) {}
188                    return !1
189                };
190                var showChannelError = function() {
191                    u.display_error("An error occured while retrieving the channel/user.", !0)
192                };
193                if ("user" === e) {
194                    var lookupName = 0 === o.indexOf("@") ? o.substring(1) : o;
195                    var tryUsername = function() {
196                        p.getJSON(channelBase + "&forUsername=" + encodeURIComponent(lookupName), function(e) {
197                            handleChannelResponse(e) || showChannelError()
198                        }).fail(showChannelError)
199                    };
200                    p.getJSON(channelBase + "&forHandle=" + encodeURIComponent(lookupName), function(e) {
201                        handleChannelResponse(e) || tryUsername()
202                    }).fail(tryUsername)
203                } else {
204                    p.getJSON(channelBase + "&id=" + o, function(e) {
205                        handleChannelResponse(e) || showChannelError()
206                    })
207                }
208            } else {
209                if (void 0 !== typeof userVideoObj[userVidID].items && 1 == userVideoObj[userVidID].items.length) {
210                    var o = userVideoObj[userVidID].items[0].contentDetails.relatedPlaylists.uploads;
211                    u.options.playlist = o, u.get_playlist(!1, u.options.playlist)
212                } else u.display_error("An error occured while retrieving the channel/user.", !0)
213
214            }
215        }, u.get_videos = function(e) {
216            for (var o = "", t = e.length, i = 0; i < t; i++) o += i !== t - 1 ? e[i] + "," : e[i];
217            var n = "https://www.googleapis.com/youtube/v3/videos?part=snippet,status&maxResults=" + u.options.max_results + "&id=" + o + "&key=" + u.api_key;
218            p.getJSON(n, function(e) {
219                if (void 0 !== e.items) {
220                    for (var o = 0; o < e.items.length; o++) e.items[o].snippet.resourceId = {
221                        videoId: e.items[o].id
222                    };
223                    var t = u.create_playlist(!1, e.items, e.items.length);
224                    u.playlist_items = u.playlist_items.concat(t.items), u.playlist_count += t.count, u.playlist_count < 2 && (u.hide_playlist(!0), u.options.show_playlist = !1, u.options.playlist_toggle_control = !1, u.$controls.playlist_toggle.hide(), u.options.fwd_bck_control = !1, u.options_copy.fwd_bck_control = !1, u.$controls.forward.hide(), u.$controls.backward.hide(), u.resize(), 0 === u.playlist_count && u.display_error("This playlist is empty, or the video's were not found.", !0))
225                } else u.display_error("An error occured while retrieving the video(s).", !0)
226            })
227        }, u.init_playlist = function() {
228            "playlist" !== u.type ? "channel" != u.type ? "user" != u.type ? "videos" != u.type || u.get_videos(u.options.videos) : u.get_channel("user", u.options.user) : u.get_channel("channel", u.options.channel) : u.get_playlist(!1, u.options.playlist)
229        }, u.create_playlist = function(e, o, t) {
230            var thisVideoID = u.id;
231            var cIDArray = thisVideoID.split("_");
232            var cID = cIDArray[1];
233            e || u.create_youtube_element();
234            videoObj[cID] == '' ? '' : u.create_controls();
235            for (var i = 0; void 0 !== o[i];) o[i].status && "private" != o[i].status.privacyStatus && void 0 !== o[i].snippet.thumbnails ? i++ : (o.splice(i, 1), t--);
236            for (u.options.on_done_loading(o), u.info.playlist_i; u.info.playlist_i < u.playlist_count + t; u.info.playlist_i++) {
237                var n = o[u.info.playlist_i - u.playlist_count],
238                    s = "";
239                void 0 !== n.snippet.thumbnails.medium && n.snippet.thumbnails.medium.width / n.snippet.thumbnails.medium.height == 16 / 9 ? s = n.snippet.thumbnails.medium.url : void 0 !== n.snippet.thumbnails.medium ? s = n.snippet.thumbnails.medium.url : void 0 !== n.snippet.thumbnails.high ? s = n.snippet.thumbnails.high.url : void 0 !== n.snippet.thumbnails.default && (s = n.snippet.thumbnails.default.url);
240                n.snippet.title;
241                85 < n.snippet.title.length && (n.snippet.title = n.snippet.title.substr(0, 85) + "..."), 20 < n.snippet.channelTitle.length && (n.snippet.channelTitle = n.snippet.channelTitle.substr(0, 20) + "...");
242                var l = p('<div class="yesp-playlist-video" data-playing="0" data-index="' + u.info.playlist_i + '"><img alt="' + n.snippet.description.substring(0,70) +'... Click For More Info" src="' + s + '" width="200" /><div class="yesp-playlist-overlay"><div aria-label="' + n.snippet.title + '" class="yesp-playlist-title">' + n.snippet.title + '</div><div class="yesp-playlist-channel">' + n.snippet.channelTitle + '</div></div><div class="yesp-playlist-current"><i class="yesp-icon yesp-icon-play"></i><span>' + u.options.now_playing_text + "</span></div></div>");
243                l.attr("data-description", n.snippet.description), l.click(function(e) {
244                    e.preventDefault(), u.options.show_controls_on_play || u.hide_controls(), u.play_video(parseFloat(p(this).attr("data-index")))
245                }), 0 == u.options.show_channel_in_playlist && l.find(".yesp-playlist-channel").remove(), l.insertBefore(u.$el.find(".yesp-playlist .yesp-next-page")), u.$el.find(".yesp-playlist, .yesp-hp").css("background-image", "none");
246                var a = n.snippet.title;
247                45 < a.length && (a = n.snippet.title.substring(0, 45) + "...");
248                var r = p('<div class="yesp-hp-video" data-playing="0" data-index="' + u.info.playlist_i + '"><img alt="'+n.snippet.description.substring(0,70)+'... Click For More Info" src="' + s + '" width="200" /><div class="yesp-hp-overlay"><div class="yesp-hp-title">' + a + '</div><div class="yesp-hp-channel">' + n.snippet.channelTitle + '</div></div><div class="yesp-hp-current"><i class="yesp-icon yesp-icon-play"></i><span>' + u.options.now_playing_text + "</span></div></div>");
249                r.attr("data-description", n.snippet.description), r.click(function(e) {
250                    e.preventDefault(), u.options.show_controls_on_play || u.hide_controls(), u.play_video(parseFloat(p(this).attr("data-index")))
251                }), 0 == u.options.show_channel_in_playlist && r.find(".yesp-hp-channel").remove(), r.insertBefore(u.$el.find(".yesp-hp .yesp-hp-next-page"))
252            }
253            return u.$el.find(".yesp-hp-videos").css("width", 160 * u.info.playlist_i + 50), !1 === e && (u.$el.find(".yesp-playlist").perfectScrollbar({
254                suppressScrollX: !0
255            }), u.$el.find(".yesp-hp").perfectScrollbar({
256                suppressScrollY: !0,
257                useBothWheelAxes: !0
258            }), u.resize(!1, !0)), !0 === e && setTimeout(function() {
259                u.update_scroll_position(!1, Math.floor(u.info.playlist_width / 16 * 9) * (u.playlist_count - t))
260            }, 10), {
261                items: o,
262                count: t
263            }
264        }, u.check_youtube_api_ready = function() {
265            if (u.info.alternative_api_ready_check) {
266                if (typeof YT != typeof {}) return !1;
267                if (0 == YT.loaded) return !1
268            } else if (!p("body").hasClass("yesp-youtube-iframe-ready")) return !1;
269            return !0
270        }, u.create_youtube_element = function() {
271            if (u.check_youtube_api_ready()) {
272                if (!u.info.youtube_loaded) {
273                    u.info.youtube_loaded = !0;
274                    var e = {
275                        controls: 1,//set to 0 to hide defaut controls glenn
276                        showinfo: 0,
277                        fullscreen: 0,
278                        iv_load_policy: u.options.show_annotations ? 1 : 3,
279                        fs: 0,
280                        rel: u.options.related ? 1 : 0,
281                        wmode: "opaque"
282                    };
283                    for (var o in u.options.force_hd && (e.vq = "hd720"), u.options.hide_youtube_logo && (e.modestbranding = 1), u.options.player_vars) e[o] = u.options.player_vars[o];
284                    window.YTConfig = {
285                        host: "https://www.youtube.com"
286                    }, u.youtube = new YT.Player(u.id + "_yt", {
287                        playerVars: e,
288                        events: {
289                            onReady: u.youtube_ready,
290                            onStateChange: u.youtube_state_change
291                        }
292                    })
293                }
294            } else setTimeout(u.create_youtube_element, 10)
295        }, u.youtube_ready = function() {
296            setInterval(u.youtube_player_updates, 500), 0 != u.playlist_count && (u.play_video(u.options.first_video, !u.options.autoplay, !0), !1 !== u.options.volume && u.update_volume(0, u.options.volume), u.$el.find(".yesp-container").hover(function() {
297                u.info.hover = !0, u.show_controls()
298            }, function() {
299                u.info.hover = !1;
300                var e = u.youtube.getPlayerState();
301                (!u.options.show_controls_on_pause || -1 != e && 0 != e && 2 != e && 5 != e) && (u.options.show_controls_on_play || u.hide_controls()), u.hide_share()
302            }))
303        }, u.youtube_player_updates = function() {
304            if (u.info.current_time = u.youtube.getCurrentTime(), u.youtube.getCurrentTime() || (u.info.current_time = 0), u.info.duration = u.youtube.getDuration(), u.info.duration && u.info.current_time != u.info.previous_time) {
305                u.info.previous_time = u.info.current_time, "full" == u.options.time_indicator ? u.$controls.time.html(u.format_time(u.info.current_time) + " / " + u.format_time(u.info.duration)) : u.$controls.time.html(u.format_time(u.info.current_time));
306                var e = Math.round(u.info.current_time);
307                0 == e ? u.$controls.youtube.attr("href", u.$controls.youtube.attr("data-href")) : u.$controls.youtube.attr("href", u.$controls.youtube.attr("data-href") + "#t=" + e), u.info.current_video_url = u.$controls.youtube.attr("data-href");
308                var o = 100 * u.info.current_time / u.info.duration;
309                u.$controls.time_bar_time.css("width", o + "%"), u.$controls.time_bar_buffer.css("width", 100 * u.youtube.getVideoLoadedFraction() + "%"), u.options.on_time_update(u.info.current_time)
310            }
311        }, u.youtube_state_change = function(e) {
312            var o = e.data;
313            0 == o ? u.options.continuous ? u.forward() : (u.play_video(u.info.index, !0), u.$controls.play.removeClass("yesp-icon-play").removeClass("yesp-icon-pause").addClass("yesp-icon-undo"), u.show_controls()) : 1 == o || 3 == o ? u.$controls.play.removeClass("yesp-icon-play").addClass("yesp-icon-pause").removeClass("yesp-icon-undo") : 2 == o && u.$controls.play.addClass("yesp-icon-play").removeClass("yesp-icon-pause").removeClass("yesp-icon-undo"), u.info.first_play || -1 === o || 5 === o || (u.info.first_play = !0), u.youtube_player_updates(), u.options.on_state_change(o)
314        }, u.create_player_element = function() {
315            u.$el.css("width", "100%").addClass("yesp").html('<div class="yesp-container"><div class="yesp-cookie-alert"><div class="yesp-cookie-alert__inside"></div></div><div class="yesp-autoposter"><div class="yesp-autoposter-icon"><div></div></div></div><div class="yesp-video-container"><div class="yesp-video" id="' + u.id + '_yt"></div><div class="yesp-error"></div></div></div><div class="yesp-playlist"><div class="yesp-next-page"><a href="#"><i class="yesp-icon yesp-icon-plus"></i>Load More</a></div></div><div class="yesp-hp"><div class="yesp-hp-videos"><div class="yesp-hp-next-page"><i class="yesp-icon yesp-icon-plus"></i></div></div></div>'), u.$el.find(".yesp-video-container").click(function(e) {
316                u.play_pause()
317            }), u.info.show_cookie_accept ? u.$el.find(".yesp-cookie-alert").show() : u.$el.find(".yesp-cookie-alert").hide(), u.$el.find(".yesp-cookie-alert__inside").html(u.options.require_cookie_accept_message), u.$el.find(".youtube-accept-button").click(function(e) {
318                window.localStorage.setItem("yesp-cookies-accept", 1), u.info.show_cookie_accept = !1, u.$el.find(".yesp-cookie-alert").hide()
319            }), "horizontal" == u.options.playlist_type && u.$el.find(".yesp-playlist").remove(), u.$el.find(".yesp-next-page, .yesp-hp-next-page").click(function(e) {
320                if (u.type == 'channel') {
321                    var channelID = u.options.channel;
322                    window.open('https://www.youtube.com/channel/' + channelID, '_blank');
323                }
324                if (u.type == 'playlist') {
325                    window.open('https://www.youtube.com/playlist?list=' + u.options.playlist, '_blank');
326                }
327                if (u.type == 'user') {
328                    window.open('https://www.youtube.com/user/' + u.options.user, '_blank');
329                }
330            }), u.$el.find(".yesp-autoposter").click(function(e) {
331                e.preventDefault(), u.play()
332            })
333        }, u.create_controls = function() {
334            var e = p('<div class="yesp-controls"></div>');
335            var playbar = '';
336            e.html('<div class="yesp-controls-wrapper"><a href="#" class="yesp-play yesp-icon yesp-icon-play"><span class="sr-only">Play Video</span></a><!--<i class="yesp-closed-captioning yesp-icon yesp-icon-cc" style="font-size:18px !important;"></i>--><div class="yesp-time">00:00 / 00:00</div>'+playbar+'<div class="yesp-volume"><a href="#" class="yesp-volume-icon yesp-iconcyesp-icon-volume-up" title="Toggle Mute"><span class="sr-only">Volume</span></a><div class="yesp-volume-bar"><div class="yesp-volume-amount"></div></div></div><span class="yesp-share yesp-icon yesp-icon-share-square-o" title="Share"><span class="sr-only">Share</span></span><a href="#" target="_blank" rel="noopener noreferrer" class="yesp-youtube yesp-icon yesp-icon-youtube-play" title="Open in YouTube"><span class="sr-only">Open In Youtube</span></a><span class="yesp-backward yesp-icon yesp-icon-backward" title="Previous Video"><span class="sr-only">Previous Video</span></span><span class="yesp-forward yesp-icon yesp-icon-forward" title="Forward Video"><span class="sr-only">Next Video</span></span><span class="yesp-playlist-toggle yesp-icon yesp-icon-align-justify yesp-icon-rotate-180" title="Toggle Playlist"><span class="sr-only">Playlist Toggle</span></span><span class="yesp-fullscreen yesp-icon yesp-icon-expand" title="Toggle Fullscreen"><span class="sr-only">Full Screen</span></span></div>'), u.$controls.play = e.find(".yesp-play"), u.$controls.time = e.find(".yesp-time"), u.$controls.time_bar = e.find(".yesp-bar"), u.$controls.time_bar_buffer = e.find(".yesp-bar-buffer"), u.$controls.time_bar_time = e.find(".yesp-bar-time"), u.$controls.volume = e.find(".yesp-volume"), u.$controls.volume_icon = e.find(".yesp-volume-icon"), u.$controls.volume_bar = e.find(".yesp-volume-bar"), u.$controls.volume_amount = e.find(".yesp-volume-amount"), u.$controls.share = e.find(".yesp-share"), u.$controls.youtube = e.find(".yesp-youtube"), u.$controls.forward = e.find(".yesp-forward"), u.$controls.backward = e.find(".yesp-backward"), u.$controls.playlist_toggle = e.find(".yesp-playlist-toggle"), u.$controls.fullscreen = e.find(".yesp-fullscreen"), u.options.play_control || u.$controls.play.hide(), u.options.time_indicator ? "full" == u.options.time_indicator && u.$controls.time.addClass("yesp-full-time") : u.$controls.time.hide(), u.options.volume_control || u.$controls.volume.hide(), u.options.share_control || u.$controls.share.hide(), u.options.youtube_link_control || u.$controls.youtube.hide(), u.options.fwd_bck_control || (u.$controls.backward.hide(), u.$controls.forward.hide()), u.options.fullscreen_control || u.$controls.fullscreen.hide(), u.options.playlist_toggle_control || u.$controls.playlist_toggle.hide(), e.appendTo(this.$el.find(".yesp-container")), u.$logo = p('<
336a href="#" target="_blank" rel="noopener noreferrer" class="yesp-youtube-logo"><span class="sr-only">Youtube Logo</span></a>'), u.$logo.appendTo(this.$el.find(".yesp-container")), (u.options.hide_youtube_logo || u.info.mobile) && (u.$logo.hide(), u.options.hide_youtube_logo = !0)
337        }, u.create_title = function() {
338            u.$title = p('<div class="yesp-title"></div>'), u.$title.html('<div class="yesp-title-wrapper"></div>'), u.$title.appendTo(u.$el.find(".yesp-container")), u.options.description_toggle && (u.info.$desc_btn = p('<a href="#" title="Video Description" class="yesp-description-toggle-button"><i class="yesp-icon yesp-icon-info-circle"></i></a>').appendTo(u.$title), u.info.$desc = p('<div class="yesp-description-toggle"><a href="#" class="yesp-description-toggle-close"><i class="yesp-icon yesp-icon-times"></i></a><div class="yesp-description-toggle-inside">Earth From Space Full HD  Nova The groundbreaking two-hour special that reveals a spectacular new space-based vision of our planet. Produced in extensive consultation with NASA scientists, NOVA takes data from earth-observing satellites and transforms it into dazzling visual sequences, each one exposing the intricate and surprising web of forces that sustains life on earth.</div></div>').appendTo(this.$el.find(".yesp-container .yesp-video-container")), u.info.$desc_btn.click(function(e) {
339                e.preventDefault(), u.info.$desc.slideToggle()
340            }))
341        }, u.update_title = function(e, o, t) {
342            u.options.show_channel_in_title ? u.$title.find("div.yesp-title-wrapper").html('<a href="' + t + '" target="_blank" rel="noopener noreferrer" class="yesp-subtitle">' + o + " - " + e + "</a>") : u.$title.find("div.yesp-title-wrapper").html(e)
343        }, u.create_overlays = function() {
344            /* CRO-15316 — the Facebook/Twitter/Google+ share overlay is removed.
345               $social stays an empty jQuery set so toggle_share/show_share/hide_share
346               remain no-ops: youtube_state_change() calls hide_share() on every pause
347               regardless of whether a share control exists. */
348            u.$social = p()
349        }, u.bind_controls = function() {
350            u.$controls.play.click(function(e) {
351                e.preventDefault(), u.play_pause()
352            }), u.$controls.volume_icon.click(function(e) {
353                if (e.preventDefault(), u.youtube.isMuted()) 0 == u.info.volume && (u.info.volume = u.options.volume), u.update_volume(0, u.info.volume);
354                else {
355                    var o = u.youtube.getVolume() / 100;
356                    u.update_volume(0, 0), u.info.volume = o
357                }
358            }), u.$controls.share.click(function(e) {
359                e.preventDefault(), u.toggle_share()
360            }), u.$controls.youtube.click(function(e) {
361                u.pause()
362            }), u.$controls.backward.click(function(e) {
363                e.preventDefault(), u.backward()
364            }), u.$controls.forward.click(function(e) {
365                e.preventDefault(), u.forward()
366            }), u.$controls.fullscreen.click(function(e) {
367                e.preventDefault(), u.info.fullscreen ? u.exit_fullscreen(!0) : u.enter_fullscreen()
368            }), u.$controls.playlist_toggle.click(function(e) {
369                e.preventDefault(), u.toggle_playlist()
370            })
371        }, u.show_controls = function() {
372            u.$title.stop().animate({
373                opacity: 1
374            }, 250), u.$el.find(".yesp-controls").stop().animate({
375                left: 0,
376//                 bottom:0,
377                opacity: 1
378            }, 250), u.options.hide_youtube_logo || u.info.mobile || (u.info.youtube_logo_timer = setTimeout(function() {
379                u.$logo.stop().fadeTo(250, .25, function() {
380                    u.$logo.css("opacity", "")
381                })
382            }, 250))
383        }, u.hide_controls = function(e) {
384            void 0 !== e && 1 == e ? u.$el.find(".yesp-controls").stop().animate({
385//                 bottom: 0,
386                opacity: 0
387            }, 250) : u.$el.find(".yesp-controls").stop().animate({
388                left: -50
389            }, 250), !1 !== u.info.youtube_logo_timer && clearTimeout(u.info.youtube_logo_timer), u.$el.find(".yesp-youtube-logo").stop().fadeTo(350, 0, function() {}), u.info.ios || u.$title.stop().animate({
390                opacity: 0
391            }, 250)
392        }, u.play_pause = function() {
393            var e = u.youtube.getPlayerState();
394            2 == e ? u.play() : 0 == e ? (u.youtube.seekTo(0), u.play()) : 5 == e ? u.play() : u.pause()
395        }, u.play = function() {
396            u.youtube.playVideo(), u.$el.find(".yesp-autoposter").hide(), u.$controls.play.removeClass("yesp-icon-play").addClass("yesp-icon-pause").removeClass("yesp-icon-undo")
397        }, u.pause = function() {
398            u.youtube.pauseVideo(), u.$controls.play.addClass("yesp-icon-play").removeClass("yesp-icon-pause").removeClass("yesp-icon-undo")
399        }, u.stop = function() {
400            u.pause(), u.youtube.stopVideo()
401        }, u.forward = function() {
402            u.info.index++, u.info.index >= u.playlist_count && (u.info.index = 0), u.play_video(u.info.index)
403        }, u.backward = function() {
404            u.info.index--, u.info.index < 0 && (u.info.index = u.playlist_count - 1), u.play_video(u.info.index)
405        }, u.play_video = function(e, o, t) {
406            if (parseFloat(e, 10) == e && parseFloat(e, 10) <= u.playlist_items.length) e = parseFloat(e, 10);
407            else
408                for (var i = e, n = e = 0; n < u.playlist_items.length; n++)
409                    if (u.playlist_items[n].snippet.resourceId.videoId === i) {
410                        e = n;
411                        break
412                    } var s = u.playlist_items[e];
413            if (null != s) {
414                void 0 === t && (t = !1), u.info.mobile && !u.info.first_play && (o = !0);
415                var l = s.snippet.title,
416                    a = s.snippet.channelTitle,
417                    r = "https://www.youtube.com/channel/" + s.snippet.channelId,
418                    p = "https://www.youtube.com/watch?v=" + (i = s.snippet.resourceId.videoId);
419                if (u.update_title(l, a, p), void 0 === o || 0 == o ? u.youtube.loadVideoById(i) : u.youtube.cueVideoById(i), u.options.description_toggle && (u.info.$desc.slideUp(300, function() {
420                        var e = u.nl2br(s.snippet.description);
421                        "" == e && (e = "No Description Available"), u.info.$desc.find(".yesp-description-toggle-inside").html(e)
422                    }), console.log('')), u.$logo.attr("href", p), u.$controls.youtube.attr("href", p).attr("data-href", p), u.info.current_video_url = p, u.$el.find(".yesp-playlist-video").attr("data-playing", "0"), u.$el.find(".yesp-playlist-video[data-index=" + e + "]").attr("data-playing", "1"), u.$el.find(".yesp-hp-video").attr("data-playing", "0"), u.$el.find(".yesp-hp-video[data-index=" + e + "]").attr("data-playing", "1"), "full" == u.options.time_indicator ? u.$controls.time.html("00:00 / 00:00") : u.$controls.time.html("00:00"), u.$controls.time_bar_time.css("width", 0), u.$controls.time_bar_buffer.css("width", 0), u.info.index = e, u.update_scroll_position(t), !0 !== o || u.info.mobile) u.$el.find(".yesp-autoposter").hide();
423                else {
424                    var c = !1;
425                    void 0 !== s.snippet.thumbnails.maxres ? c = s.snippet.thumbnails.maxres.url : void 0 !== s.snippet.thumbnails.high ? c = s.snippet.thumbnails.high.url : void 0 !== s.snippet.thumbnails.medium ? c = s.snippet.thumbnails.medium.url : void 0 !== s.snippet.thumbnails.standard ? c = s.snippet.thumbnails.standard.url : void 0 !== s.snippet.thumbnails.default && (c = s.snippet.thumbnails.default.url), !1 !== c && u.$el.find(".yesp-autoposter").css("background-image", 'url("' + c + '")').show()
426                }
427                u.options.on_load(s.snippet)
428            }
429        }, u.update_scroll_position = function(e, o) {
430            if ("horizontal" === u.options.playlist_type) {
431                var t = 160 * u.info.index;
432                return void 0 !== o && (t = o), void(1 == e ? (u.$el.find(".yesp-hp").scrollLeft(t), u.$el.find(".yesp-hp").perfectScrollbar("update")) : u.$el.find(".yesp-hp").stop().animate({
433                    scrollLeft: t
434                }, 500, function() {
435                    u.$el.find(".yesp-hp").perfectScrollbar("update")
436                }))
437            }
438            t = Math.floor(u.info.playlist_width / 16 * 9) * u.info.index;
439            void 0 !== o && (t = o), t < 0 && (t = 0);
440            var i = u.$el.find(".yesp-playlist").innerHeight(),
441                n = Math.floor(u.info.playlist_width / 16 * 9) * u.playlist_count - i;
442            u.info.next_page_token && (n += 50), n < t && (t = n), 1 == e ? (u.$el.find(".yesp-playlist").scrollTop(t), u.$el.find(".yesp-playlist").perfectScrollbar("update")) : u.$el.find(".yesp-playlist").stop().animate({
443                scrollTop: t
444            }, 500, function() {
445                u.$el.find(".yesp-playlist").perfectScrollbar("update")
446            })
447        }, u.toggle_fullscreen = function() {
448            u.info.fullscreen ? u.exit_fullscreen(!0) : u.enter_fullscreen()
449        }, u.enter_fullscreen = function() {
450            u.info.mobile;
451            var e = u.$el.find(".yesp-container")[0].webkitRequestFullScreen || u.$el.find(".yesp-container")[0].requestFullScreen || u.$el.find(".yesp-container")[0].mozRequestFullScreen;
452            if (e) {
453                var o = p(window).width(),
454                    t = p(window).height();
455                u.info.fullscreen = !0, u.$el.find(".yesp-container, .yesp-container iframe").css({
456                    width: "100%",
457                    height: "100%"
458                }), u.youtube.setSize(o, t), e.bind(u.$el.find(".yesp-container")[0])()
459            }
460        }, u.exit_fullscreen = function(e) {
461            void 0 !== e && e && (document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitCancelFullScreen ? document.webkitCancelFullScreen() : document.msExitFullscreen && document.msExitFullscreen()), u.info.fullscreen = !1, u.resize()
462        }, u.toggle_playlist = function() {
463            "horizontal" === u.options.playlist_type ? u.info.horizontal_playlist_shown ? u.hide_horizontal_playlist() : u.show_horizontal_playlist() : (u.info.playlist_shown ? u.hide_playlist(!1) : u.show_playlist(!1), "auto" !== u.options.show_playlist && u.resize())
464        }, u.show_playlist = function(e, o) {
465            if ("horizontal" != u.options.playlist_type && (void 0 === o && (o = !0), !0, !u.info.playlist_animating)) {
466                u.info.playlist_animating = !0;
467                var t = u.$el.find(".yesp-playlist");
468                return u.$el.find(".yesp-icon-list").removeClass("yesp-icon-list").addClass("yesp-icon-align-justify"), t.css("width", u.info.playlist_width), u.info.playlist_shown = !0, u.info.playlist_animating = !1, void(o && u.resize(!0))
469            }
470        }, u.hide_playlist = function(e, o) {
471            if (void 0 === o && (o = !0), !0, !u.info.playlist_animating) {
472                u.info.playlist_animating = !0;
473                var t = u.$el.find(".yesp-playlist");
474                return "vertical" == u.options.playlist_type && u.$el.find(".yesp-icon-align-justify").removeClass("yesp-icon-align-justify").addClass("yesp-icon-list"), t.css("width", 0), u.info.playlist_shown = !1, u.info.playlist_animating = !1, void(o && u.resize(!0))
475            }
476        }, u.show_horizontal_playlist = function() {
477            u.info.horizontal_playlist_shown = !0, u.$el.find(".yesp-hp").show(), u.$el.find(".yesp-icon-list").removeClass("yesp-icon-list").addClass("yesp-icon-align-justify")
478        }, u.hide_horizontal_playlist = function() {
479            u.info.horizontal_playlist_shown = !1, u.$el.find(".yesp-hp").hide(), u.$el.find(".yesp-icon-align-justify").removeClass("yesp-icon-align-justify").addClass("yesp-icon-list")
480        }, u.set_playlist_width = function(e) {
481            u.info.playlist_shown && (u.info.playlist_width = e);
482            var o = Math.floor(e / 16 * 9);
483            u.$el.find(".yesp-playlist").css({
484                width: e
485            }).find(".yesp-playlist-video").css({
486                width: e,
487                height: o
488            }), u.$el.find(".yesp-playlist .yesp-playlist-current").css("width", e - 20), e <= 100 ? (u.$el.find(".yesp-playlist").addClass("yesp-playlist-simple"), u.$el.find(".yesp-playlist .yesp-playlist-current").css("width", 10)) : u.$el.find(".yesp-playlist").removeClass("yesp-playlist-simple")
489        }, u.resize = function(e, o) {
490            void 0 !== e && typeof e != typeof {} || (e = !1);
491            var t = u.$el.innerWidth();
492            "auto" == u.options.show_playlist && 0 == e ? (t < 660 && (1 == o || 200 == u.info.playlist_width) && (u.set_playlist_width(100), u.update_scroll_position(!0)), t 
492< 500 && (1 == o || 1 == u.info.playlist_shown) && (u.hide_playlist(!1, !1), u.update_scroll_position(!0)), 500 <= t && (1 == o || 0 == u.info.playlist_shown) && (u.show_playlist(!1, !1), u.update_scroll_position(!0)), 660 <= t && (1 == o || 100 == u.info.playlist_width) && (u.set_playlist_width(200), u.update_scroll_position(!0))) : 0 == e && (o = !0, t < 660 && (1 == o || 200 == u.info.playlist_width) && (u.set_playlist_width(100), u.update_scroll_position(!0)), 660 <= t && (1 == o || 100 == u.info.playlist_width) && (u.set_playlist_width(200), u.update_scroll_position(!0)), 0 == u.info.playlist_shown && u.hide_playlist(!0, !1));
493
494            var i = t - (u.info.playlist_shown ? u.info.playlist_width : 0),
495                n = i / 16 * 9;
496            u.info.fullscreen && (i = t = p(window).width(), n = p(window).height()), u.$el.find(".yesp-container, .yesp-playlist, .yesp-video").css("height", n), u.$el.find(".yesp-container, .yesp-video").css("width", i), u.$el.find(".yesp-playlist").perfectScrollbar("update"), u.info.width = i, u.info.height = n;
497            var s = i - 20;
498            i < 600 && "full" == u.options.time_indicator && (u.options.time_indicator = !0, u.$controls.time.html(u.format_time(u.info.current_time)), u.$controls.time.removeClass("yesp-full-time")), i < 530 && (u.options.fwd_bck_control = !1, u.options.youtube_link_control = !1, u.$controls.forward.hide(), u.$controls.backward.hide(), u.$controls.youtube.hide()), i < 400 && (u.options.volume_control = !1, u.$controls.volume.hide()), i < 300 && (u.options.time_indicator = !1, u.$controls.time.hide(), u.options.share_control = !1, u.$controls.share.hide()), 300 <= i && (1 == u.options_copy.time_indicator || "full" == u.options_copy.time_indicator) && (u.options.time_indicator = !0, u.$controls.time.show()), 300 <= i && 1 == u.options_copy.share_control && (u.options.share_control = !0, u.$controls.share.show()), 400 <= i && 1 == u.options_copy.volume_control && (u.options.volume_control = !0, u.$controls.volume.show()), 530 <= i && 1 == u.options_copy.fwd_bck_control && (u.options.fwd_bck_control = !0, u.$controls.forward.show(), u.$controls.backward.show()), 530 <= i && 1 == u.options_copy.youtube_link_control && (u.options.youtube_link_control = !0, u.$controls.youtube.show()), 600 <= i && "full" == u.options_copy.time_indicator && (u.options.time_indicator = "full", u.$controls.time.html(u.format_time(u.info.current_time) + " / " + u.format_time(u.info.duration)), u.$controls.time.addClass("yesp-full-time")), u.options.play_control && (s -= 30), u.options.time_indicator && (s -= 58), "full" == u.options.time_indicator && (s -= 40), u.options.volume_control && (s -= 110), u.options.share_control && (s -= 30), u.options.youtube_link_control && (s -= 30), u.options.fwd_bck_control && (s -= 60), u.options.fullscreen_control && (s -= 30), u.options.playlist_toggle_control && (s -= 30), s -= 18, u.$controls.time_bar.css("width", s)
499        }, u.init_time_slider = function() {
500            u.$controls.time_bar.on("mousedown", function(e) {
501                u.info.ipad || (u.info.time_drag = !0), u.update_time_slider(e.pageX)
502            }), p(document).on("mouseup", function(e) {
503                u.info.time_drag && (u.info.time_drag = !1, u.update_time_slider(e.pageX))
504            }), p(document).on("mousemove", function(e) {
505                u.info.time_drag && u.update_time_slider(e.pageX)
506            })
507        }, u.update_time_slider = function(e) {
508            if (0 != u.info.duration) {
509                var o = u.info.duration,
510                    t = 100 * (e - u.$controls.time_bar.offset().left) / u.$controls.time_bar.width();
511                100 < t && (t = 100), t < 0 && (t = 0);
512                var i = Math.round(o * t / 100);
513                u.$controls.time_bar_time.css("width", t + "%"), u.youtube.seekTo(i), u.options.on_seek(o * t / 100)
514            }
515        }, u.init_volume_slider = function() {
516            u.$controls.volume_bar.on("mousedown", function(e) {
517                u.info.volume_drag = !0, u.$controls.volume_icon.removeClass("yesp-icon-volume-off").addClass("yesp-icon-volume-up"), u.update_volume(e.pageX)
518            }), p(document).on("mouseup", function(e) {
519                u.info.volume_drag && (u.info.volume_drag = !1, u.update_volume(e.pageX))
520            }), p(document).on("mousemove", function(e) {
521                u.info.volume_drag && u.update_volume(e.pageX)
522            })
523        }, u.update_volume = function(e, o) {
524            var t;
525            o ? t = 100 * o : t = 100 * (e - u.$controls.volume_bar.offset().left) / u.$controls.volume_bar.width();
526            100 < t && (t = 100), t < 0 && (t = 0), u.$controls.volume_amount.css("width", t + "%"), u.youtube.setVolume(t), 0 == t ? u.youtube.mute() : u.youtube.isMuted() && u.youtube.unMute(), 0 == t ? u.$controls.volume_icon.addClass("yesp-icon-volume-off").removeClass("yesp-icon-volume-up") : u.$controls.volume_icon.removeClass("yesp-icon-volume-off").addClass("yesp-icon-volume-up"), u.options.on_volume(t / 100)
527        }, u.toggle_share = function() {
528            "1" == u.$social.attr("show") ? u.hide_share() : u.show_share()
529        }, u.show_share = function() {
530            u.$social.attr("show", "1").stop().animate({
531                right: 10
532            }, 200)
533        }, u.hide_share = function() {
534            u.$social.attr("show", "0").stop().animate({
535                right: -140
536            }, 200)
537        }, u.set_style = function() {
538            var e = p("<style />"),
539                o = {
540                    controls_bg: "rgba(0,0,0,.75)",
541                    buttons: "rgba(255,255,255,.5)",
542                    buttons_hover: "rgba(255,255,255,1)",
543                    buttons_active: "rgba(255,255,255,1)",
544                    time_text: "#FFFFFF",
545                    bar_bg: "rgba(255,255,255,.5)",
546                    buffer: "rgba(255,255,255,.25)",
547                    fill: "#FFFFFF",
548                    video_title: "#FFFFFF",
549                    video_channel: "#DFF76D",
550                    playlist_overlay: "rgba(0,0,0,.5)",
551                    playlist_title: "#FFFFFF",
552                    playlist_channel: "#DFF76D",
553                    scrollbar: "#FFFFFF",
554                    scrollbar_bg: "rgba(255,255,255,.25)",
555                    load_more_bg: "#000000",
556                    load_more_text: "#FFFFFF"
557                };
558
559            for (key in u.options.colors) o[key] = u.options.colors[key];
560            e.html("#" + u.id + ".yesp .yesp-controls{background:" + o.controls_bg + "!important}#" + u.id + ".yesp .yesp-controls a{color:" + o.buttons + "!important}#" + u.id + ".yesp .yesp-controls a:hover{color:" + o.buttons_hover + "!important}#" + u.id + ".yesp .yesp-controls a:active{color:" + o.buttons_active + "!important}#" + u.id + ".yesp .yesp-time{color:" + o.time_text + "!important}#" + u.id + ".yesp .yesp-bar,#" + u.id + ".yesp .yesp-volume .yesp-volume-bar{background:" + o.bar_bg + "!important}#" + u.id + ".yesp .yesp-bar .yesp-bar-buffer{background:" + o.buffer + "!important}#" + u.id + ".yesp .yesp-bar .yesp-bar-time,#" + u.id + ".yesp .yesp-volume .yesp-volume-bar .yesp-volume-amount{background:" + o.fill + "!important}#" + u.id + ".yesp .yesp-title-wrapper{color:" + o.video_title + "!important}#" + u.id + ".yesp .yesp-title a.yesp-subtitle{border-color:" + o.video_title + "!important}#" + u.id + ".yesp .yesp-title-wrapper a{color:" + o.video_channel + "!important}#" + u.id + ".yesp .yesp-playlist-overlay,#" + u.id + ".yesp .yesp-hp-overlay,#" + u.id + ".yesp .yesp-playlist-current,#" + u.id + ".yesp .yesp-hp-current{background: " + o.playlist_overlay + " !important;}#" + u.id + ".yesp .yesp-playlist-overlay .yesp-playlist-title,#" + u.id + ".yesp .yesp-hp-overlay .yesp-hp-title,#" + u.id + ".yesp .yesp-playlist-current,#" + u.id + ".yesp .yesp-hp-current{color: " + o.playlist_title + " !important;}#" + u.id + ".yesp .yesp-playlist-overlay .yesp-playlist-channel,#" + u.id + ".yesp .yesp-hp-overlay .yesp-hp-channel {color: " + o.playlist_channel + " !important;}#" + u.id + ".yesp .ps-scrollbar-y-rail, #" + u.id + ".yesp .ps-scrollbar-x-rail {background: " + o.scrollbar_bg + " !important;}#" + u.id + ".yesp .ps-scrollbar-y,#" + u.id + ".yesp .ps-scrollbar-x {background: " + o.scrollbar + " !important;}#" + u.id + ".yesp .yesp-next-page,#" + u.id + ".yesp .yesp-hp-next-page {background:" + o.load_more_bg + " !important;color:" + o.load_more_text + " !important;}"), e.appendTo("body")
561        }, u.format_time = function(e) {
562            var o = Math.floor(e / 60) < 10 ? "0" + Math.floor(e / 60) : Math.floor(e / 60);
563            return o + ":" + (Math.floor(e - 60 * o) < 10 ? "0" + Math.floor(e - 60 * o) : Math.floor(e - 60 * o))
564        }, u.cut_text = function(i) {
565            return function(e, o) {
566                var t = o.substr(0, i);
567                return /^\S/.test(o.substr(i)) ? t.replace(/\s+\S*$/, "") : t
568            }
569        }, u.detect_ie = function() {
570            var e = window.navigator.userAgent,
571                o = e.indexOf("MSIE "),
572                t = e.indexOf("Trident/");
573            if (0 < o) return parseInt(e.substring(o + 5, e.indexOf(".", o)), 10);
574            if (0 < t) {
575                var i = e.indexOf("rv:");
576                return parseInt(e.substring(i + 3, e.indexOf(".", i)), 10)
577            }
578            return !1
579        }, u.detect_touch = function() {
580            return !!("ontouchstart" in window) || !!("onmsgesturechange" in window)
581        }, u.shuffle_array = function(e) {
582            for (var o = e.length - 1; 0 < o; o--) {
583                var t = Math.floor(Math.random() * (o + 1)),
584                    i = e[o];
585                e[o] = e[t], e[t] = i
586            }
587            return e
588        }, u.nl2br = function(e, o) {
589            return (e + "").replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, "$1" + (o || void 0 === o ? "<br />" : "<br>") + "$2")
590        }
590, u.init()
591    }, p.youtube_video.defaultOptions = {
592        playlist: !1,
593        channel: !1,
594        user: !1,
595        videos: !1,
596        player_id: !1,
597        shuffle: !1,
598        api_key: "AIzaSyA1jMWPGRPj6mXtSOiGvy7ZcMTkpo2UDnw",
599        max_results: 50,
600        pagination: !0,
601        continuous: !0,
602        first_video: 0,
603        show_playlist: "auto",
604        playlist_type: "vertical",
605        show_channel_in_playlist: !0,
606        show_channel_in_title: !0,
607        width: !1,
608        show_annotations: !1,
609        now_playing_text: "Now Playing",
610        load_more_text: "Load More",
611        force_hd: !1,
612        hide_youtube_logo: !1,
613        autoplay: !1,
614        description_toggle: !1,
615        play_control: !0,
616        time_indicator: "full",
617        volume_control: !0,
618        share_control: !0,
619        fwd_bck_control: !0,
620        youtube_link_control: !0,
621        fullscreen_control: !0,
622        playlist_toggle_control: !0,
623        volume: !1,
624        show_controls_on_load: !0,
625        show_controls_on_pause: !0,
626        show_controls_on_play: !1,
627        related: !1,
628        require_cookie_accept: !0,
629        require_cookie_accept_message: "Click here to accept youtube cookies to play this video. By accepting you will be accessing a service provided by a third party external to this website.",
630        player_vars: {},
631        colors: {},
632        on_load: function(e) {},
633        on_done_loading: function(e) {},
634        on_state_change: function(e) {},
635        on_seek: function(e) {},
636        on_volume: function(e) {},
637        on_time_update: function(e) {}
638    }, p.fn.youtube_video = function(e) {
639        return this.each(function() {
640            new p.youtube_video(this, e)
641        })
642    }, p.fn.youtube_video_play = function() {
643        return this.each(function() {
644            new p.youtube_video_play(this)
645        })
646    }, p.youtube_video_play = function(e) {
647        p(e).data("youtube_video").play()
648    }, p.fn.youtube_video_pause = function() {
649        return this.each(function() {
650            new p.youtube_video_pause(this)
651        })
652    }, p.youtube_video_pause = function(e) {
653        p(e).data("youtube_video").pause()
654    }, p.fn.youtube_video_stop = function() {
655        return this.each(function() {
656            new p.youtube_video_stop(this)
657        })
658    }, p.youtube_video_stop = function(e) {
659        p(e).data("youtube_video").stop()
660    }, p.fn.youtube_video_seek = function(e) {
661        return this.each(function() {
662            new p.youtube_video_seek(this, e)
663        })
664    }, p.youtube_video_seek = function(e, o) {
665        var t = p(e).data("youtube_video"),
666            i = t.info.duration,
667            n = o / i * 100;
668        t.$controls.time_bar_time.css("width", n + "%"), t.youtube.seekTo(i * n / 100), t.options.on_seek(o)
669    }, p.fn.youtube_video_load = function(e) {
670        return this.each(function() {
671            new p.youtube_video_load(this, e)
672        })
673    }, p.youtube_video_load = function(e, o) {
674        p(e).data("youtube_video").play_video(o)
675    }, p.fn.youtube_video_volume = function(e) {
676        return this.each(function() {
677            new p.youtube_video_volume(this, e)
678        })
679    }, p.youtube_video_volume = function(e, o) {
680        p(e).data("youtube_video").update_volume(0, o)
681    }, p.fn.youtube_show_controls = function() {
682        return this.each(function() {
683            new p.youtube_show_controls(this)
684        })
685    }, p.youtube_show_controls = function(e) {
686        p(e).data("youtube_video").show_controls()
687    }
688}(jQuery);
689
690var tag = document.createElement("script");
691tag.src = "https://www.youtube.com/iframe_api";
692var firstScriptTag = document.getElementsByTagName("script")[0];
693firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.