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.